diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2010-03-03 14:41:43 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2010-03-03 14:41:43 +0000 |
commit | 70118abd687be136b5ae9fdc7cd75dfa002677ee (patch) | |
tree | a8e877e1295c47862189339fba843b0f48fb06d5 /libavcodec/h264.c | |
parent | 72f86ec013714d15cdef4e9e541ab87f34b670ec (diff) | |
download | ffmpeg-70118abd687be136b5ae9fdc7cd75dfa002677ee.tar.gz |
Merge weight & offset tables, 15 cpu cycles faster.
Originally committed as revision 22169 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/h264.c')
-rw-r--r-- | libavcodec/h264.c | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 0bc8739ce3..8ead923a1b 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -495,14 +495,14 @@ static inline void mc_part_weighted(H264Context *h, int n, int square, int chrom chroma_weight_avg(dest_cr, tmp_cr, h->mb_uvlinesize, 5, weight0, weight1, 0); }else{ luma_weight_avg(dest_y, tmp_y, h->mb_linesize, h->luma_log2_weight_denom, - h->luma_weight[0][refn0], h->luma_weight[1][refn1], - h->luma_offset[0][refn0] + h->luma_offset[1][refn1]); + h->luma_weight[0][refn0][0], h->luma_weight[1][refn1][0], + h->luma_weight[0][refn0][1] + h->luma_weight[1][refn1][1]); chroma_weight_avg(dest_cb, tmp_cb, h->mb_uvlinesize, h->chroma_log2_weight_denom, - h->chroma_weight[0][refn0][0], h->chroma_weight[1][refn1][0], - h->chroma_offset[0][refn0][0] + h->chroma_offset[1][refn1][0]); + h->chroma_weight[0][refn0][0][0], h->chroma_weight[1][refn1][0][0], + h->chroma_weight[0][refn0][0][1] + h->chroma_weight[1][refn1][0][1]); chroma_weight_avg(dest_cr, tmp_cr, h->mb_uvlinesize, h->chroma_log2_weight_denom, - h->chroma_weight[0][refn0][1], h->chroma_weight[1][refn1][1], - h->chroma_offset[0][refn0][1] + h->chroma_offset[1][refn1][1]); + h->chroma_weight[0][refn0][1][0], h->chroma_weight[1][refn1][1][0], + h->chroma_weight[0][refn0][1][1] + h->chroma_weight[1][refn1][1][1]); } }else{ int list = list1 ? 1 : 0; @@ -513,12 +513,12 @@ static inline void mc_part_weighted(H264Context *h, int n, int square, int chrom qpix_put, chroma_put); luma_weight_op(dest_y, h->mb_linesize, h->luma_log2_weight_denom, - h->luma_weight[list][refn], h->luma_offset[list][refn]); + h->luma_weight[list][refn][0], h->luma_weight[list][refn][1]); if(h->use_weight_chroma){ chroma_weight_op(dest_cb, h->mb_uvlinesize, h->chroma_log2_weight_denom, - h->chroma_weight[list][refn][0], h->chroma_offset[list][refn][0]); + h->chroma_weight[list][refn][0][0], h->chroma_weight[list][refn][0][1]); chroma_weight_op(dest_cr, h->mb_uvlinesize, h->chroma_log2_weight_denom, - h->chroma_weight[list][refn][1], h->chroma_offset[list][refn][1]); + h->chroma_weight[list][refn][1][0], h->chroma_weight[list][refn][1][1]); } } } @@ -1368,16 +1368,16 @@ static int pred_weight_table(H264Context *h){ luma_weight_flag= get_bits1(&s->gb); if(luma_weight_flag){ - h->luma_weight[list][i]= get_se_golomb(&s->gb); - h->luma_offset[list][i]= get_se_golomb(&s->gb); - if( h->luma_weight[list][i] != luma_def - || h->luma_offset[list][i] != 0) { + h->luma_weight[list][i][0]= get_se_golomb(&s->gb); + h->luma_weight[list][i][1]= get_se_golomb(&s->gb); + if( h->luma_weight[list][i][0] != luma_def + || h->luma_weight[list][i][1] != 0) { h->use_weight= 1; h->luma_weight_flag[list]= 1; } }else{ - h->luma_weight[list][i]= luma_def; - h->luma_offset[list][i]= 0; + h->luma_weight[list][i][0]= luma_def; + h->luma_weight[list][i][1]= 0; } if(CHROMA){ @@ -1385,10 +1385,10 @@ static int pred_weight_table(H264Context *h){ if(chroma_weight_flag){ int j; for(j=0; j<2; j++){ - h->chroma_weight[list][i][j]= get_se_golomb(&s->gb); - h->chroma_offset[list][i][j]= get_se_golomb(&s->gb); - if( h->chroma_weight[list][i][j] != chroma_def - || h->chroma_offset[list][i][j] != 0) { + h->chroma_weight[list][i][j][0]= get_se_golomb(&s->gb); + h->chroma_weight[list][i][j][1]= get_se_golomb(&s->gb); + if( h->chroma_weight[list][i][j][0] != chroma_def + || h->chroma_weight[list][i][j][1] != 0) { h->use_weight_chroma= 1; h->chroma_weight_flag[list]= 1; } @@ -1396,8 +1396,8 @@ static int pred_weight_table(H264Context *h){ }else{ int j; for(j=0; j<2; j++){ - h->chroma_weight[list][i][j]= chroma_def; - h->chroma_offset[list][i][j]= 0; + h->chroma_weight[list][i][j][0]= chroma_def; + h->chroma_weight[list][i][j][1]= 0; } } } |