diff options
author | Mans Rullgard <mans@mansr.com> | 2011-12-12 23:21:39 +0000 |
---|---|---|
committer | Mans Rullgard <mans@mansr.com> | 2011-12-13 12:05:34 +0000 |
commit | 40901fc14e1ae1a1074a70931a133b2bc2604a1c (patch) | |
tree | 0b750e2a3314cb1454a1909ab497ce0a37926230 /libavcodec/rv34.c | |
parent | 5cd56e193fd3c9f04075ef95be2d4eade87ca870 (diff) | |
download | ffmpeg-40901fc14e1ae1a1074a70931a133b2bc2604a1c.tar.gz |
rv34: move 4x4 dequant to RV34DSPContext
Signed-off-by: Mans Rullgard <mans@mansr.com>
Diffstat (limited to 'libavcodec/rv34.c')
-rw-r--r-- | libavcodec/rv34.c | 18 |
1 files changed, 2 insertions, 16 deletions
diff --git a/libavcodec/rv34.c b/libavcodec/rv34.c index 295a633f38..7023ec1223 100644 --- a/libavcodec/rv34.c +++ b/libavcodec/rv34.c @@ -289,20 +289,6 @@ static inline void rv34_decode_block(DCTELEM *dst, GetBitContext *gb, RV34VLC *r } /** - * Dequantize ordinary 4x4 block. - * @todo optimize - */ -static inline void rv34_dequant4x4(DCTELEM *block, int Qdc, int Q) -{ - int i, j; - - block[0] = (block[0] * Qdc + 8) >> 4; - for(i = 0; i < 4; i++) - for(j = !i; j < 4; j++) - block[j + i*8] = (block[j + i*8] * Q + 8) >> 4; -} - -/** * Dequantize 4x4 block of DC values for 16x16 macroblock. * @todo optimize */ @@ -1159,7 +1145,7 @@ static int rv34_decode_macroblock(RV34DecContext *r, int8_t *intra_types) blkoff = ((i & 1) << 2) + ((i & 4) << 3); if(cbp & 1) rv34_decode_block(s->block[blknum] + blkoff, gb, r->cur_vlcs, r->luma_vlc, 0); - rv34_dequant4x4(s->block[blknum] + blkoff, rv34_qscale_tab[s->qscale],rv34_qscale_tab[s->qscale]); + r->rdsp.rv34_dequant4x4(s->block[blknum] + blkoff, rv34_qscale_tab[s->qscale],rv34_qscale_tab[s->qscale]); if(r->is16) //FIXME: optimize s->block[blknum][blkoff] = block16[(i & 3) | ((i & 0xC) << 1)]; r->rdsp.rv34_inv_transform_tab[0](s->block[blknum] + blkoff); @@ -1171,7 +1157,7 @@ static int rv34_decode_macroblock(RV34DecContext *r, int8_t *intra_types) blknum = ((i & 4) >> 2) + 4; blkoff = ((i & 1) << 2) + ((i & 2) << 4); rv34_decode_block(s->block[blknum] + blkoff, gb, r->cur_vlcs, r->chroma_vlc, 1); - rv34_dequant4x4(s->block[blknum] + blkoff, rv34_qscale_tab[rv34_chroma_quant[1][s->qscale]],rv34_qscale_tab[rv34_chroma_quant[0][s->qscale]]); + r->rdsp.rv34_dequant4x4(s->block[blknum] + blkoff, rv34_qscale_tab[rv34_chroma_quant[1][s->qscale]],rv34_qscale_tab[rv34_chroma_quant[0][s->qscale]]); r->rdsp.rv34_inv_transform_tab[0](s->block[blknum] + blkoff); } if (IS_INTRA(s->current_picture_ptr->f.mb_type[mb_pos])) |