Mercurial > libavcodec.hg
comparison mpegvideo.c @ 487:cee02f2f4a5a libavcodec
grayscale only encoding
| author | michaelni |
|---|---|
| date | Sun, 09 Jun 2002 14:04:36 +0000 |
| parents | 20108840b0e5 |
| children | 8b7a54d58549 |
comparison
equal
deleted
inserted
replaced
| 486:fde314e1aaa1 | 487:cee02f2f4a5a |
|---|---|
| 1419 get_pixels(s->block[0], ptr , wrap); | 1419 get_pixels(s->block[0], ptr , wrap); |
| 1420 get_pixels(s->block[1], ptr + 8, wrap); | 1420 get_pixels(s->block[1], ptr + 8, wrap); |
| 1421 get_pixels(s->block[2], ptr + 8 * wrap , wrap); | 1421 get_pixels(s->block[2], ptr + 8 * wrap , wrap); |
| 1422 get_pixels(s->block[3], ptr + 8 * wrap + 8, wrap); | 1422 get_pixels(s->block[3], ptr + 8 * wrap + 8, wrap); |
| 1423 | 1423 |
| 1424 wrap >>=1; | 1424 if(s->flags&CODEC_FLAG_GRAY){ |
| 1425 ptr = s->new_picture[1] + (mb_y * 8 * wrap) + mb_x * 8; | 1425 skip_dct[4]= 1; |
| 1426 get_pixels(s->block[4], ptr, wrap); | 1426 skip_dct[5]= 1; |
| 1427 | 1427 }else{ |
| 1428 ptr = s->new_picture[2] + (mb_y * 8 * wrap) + mb_x * 8; | 1428 wrap >>=1; |
| 1429 get_pixels(s->block[5], ptr, wrap); | 1429 ptr = s->new_picture[1] + (mb_y * 8 * wrap) + mb_x * 8; |
| 1430 get_pixels(s->block[4], ptr, wrap); | |
| 1431 | |
| 1432 ptr = s->new_picture[2] + (mb_y * 8 * wrap) + mb_x * 8; | |
| 1433 get_pixels(s->block[5], ptr, wrap); | |
| 1434 } | |
| 1430 }else{ | 1435 }else{ |
| 1431 op_pixels_func *op_pix; | 1436 op_pixels_func *op_pix; |
| 1432 qpel_mc_func *op_qpix; | 1437 qpel_mc_func *op_qpix; |
| 1433 UINT8 *dest_y, *dest_cb, *dest_cr; | 1438 UINT8 *dest_y, *dest_cb, *dest_cr; |
| 1434 UINT8 *ptr_y, *ptr_cb, *ptr_cr; | 1439 UINT8 *ptr_y, *ptr_cb, *ptr_cr; |
| 1464 | 1469 |
| 1465 diff_pixels(s->block[0], ptr_y , dest_y , wrap_y); | 1470 diff_pixels(s->block[0], ptr_y , dest_y , wrap_y); |
| 1466 diff_pixels(s->block[1], ptr_y + 8, dest_y + 8, wrap_y); | 1471 diff_pixels(s->block[1], ptr_y + 8, dest_y + 8, wrap_y); |
| 1467 diff_pixels(s->block[2], ptr_y + 8 * wrap_y , dest_y + 8 * wrap_y , wrap_y); | 1472 diff_pixels(s->block[2], ptr_y + 8 * wrap_y , dest_y + 8 * wrap_y , wrap_y); |
| 1468 diff_pixels(s->block[3], ptr_y + 8 * wrap_y + 8, dest_y + 8 * wrap_y + 8, wrap_y); | 1473 diff_pixels(s->block[3], ptr_y + 8 * wrap_y + 8, dest_y + 8 * wrap_y + 8, wrap_y); |
| 1469 diff_pixels(s->block[4], ptr_cb, dest_cb, wrap_c); | 1474 |
| 1470 diff_pixels(s->block[5], ptr_cr, dest_cr, wrap_c); | 1475 if(s->flags&CODEC_FLAG_GRAY){ |
| 1471 | 1476 skip_dct[4]= 1; |
| 1477 skip_dct[5]= 1; | |
| 1478 }else{ | |
| 1479 diff_pixels(s->block[4], ptr_cb, dest_cb, wrap_c); | |
| 1480 diff_pixels(s->block[5], ptr_cr, dest_cr, wrap_c); | |
| 1481 } | |
| 1482 | |
| 1472 /* pre quantization */ | 1483 /* pre quantization */ |
| 1473 if(s->mc_mb_var[s->mb_width*mb_y+ mb_x]<2*s->qscale*s->qscale){ | 1484 if(s->mc_mb_var[s->mb_width*mb_y+ mb_x]<2*s->qscale*s->qscale){ |
| 1474 if(pix_abs8x8(ptr_y , dest_y , wrap_y) < 20*s->qscale) skip_dct[0]= 1; | 1485 if(pix_abs8x8(ptr_y , dest_y , wrap_y) < 20*s->qscale) skip_dct[0]= 1; |
| 1475 if(pix_abs8x8(ptr_y + 8, dest_y + 8, wrap_y) < 20*s->qscale) skip_dct[1]= 1; | 1486 if(pix_abs8x8(ptr_y + 8, dest_y + 8, wrap_y) < 20*s->qscale) skip_dct[1]= 1; |
| 1476 if(pix_abs8x8(ptr_y + 8*wrap_y , dest_y + 8*wrap_y , wrap_y) < 20*s->qscale) skip_dct[2]= 1; | 1487 if(pix_abs8x8(ptr_y + 8*wrap_y , dest_y + 8*wrap_y , wrap_y) < 20*s->qscale) skip_dct[2]= 1; |
| 1542 for(i=0; i<4; i++) | 1553 for(i=0; i<4; i++) |
| 1543 dct_single_coeff_elimination(s, i, s->luma_elim_threshold, 0); | 1554 dct_single_coeff_elimination(s, i, s->luma_elim_threshold, 0); |
| 1544 if(s->chroma_elim_threshold && !s->mb_intra) | 1555 if(s->chroma_elim_threshold && !s->mb_intra) |
| 1545 for(i=4; i<6; i++) | 1556 for(i=4; i<6; i++) |
| 1546 dct_single_coeff_elimination(s, i, s->chroma_elim_threshold, 1); | 1557 dct_single_coeff_elimination(s, i, s->chroma_elim_threshold, 1); |
| 1558 } | |
| 1559 | |
| 1560 if((s->flags&CODEC_FLAG_GRAY) && s->mb_intra){ | |
| 1561 s->block_last_index[4]= | |
| 1562 s->block_last_index[5]= 0; | |
| 1563 s->block[4][0]= | |
| 1564 s->block[5][0]= 128; | |
| 1547 } | 1565 } |
| 1548 | 1566 |
| 1549 /* huffman encode */ | 1567 /* huffman encode */ |
| 1550 switch(s->out_format) { | 1568 switch(s->out_format) { |
| 1551 case FMT_MPEG1: | 1569 case FMT_MPEG1: |
