Mercurial > libavcodec.hg
changeset 3005:6f6f307cffac libavcodec
fix asymmetric CQMs with pre-transposed DCT.
author | lorenm |
---|---|
date | Sat, 31 Dec 2005 14:14:38 +0000 |
parents | a22cf6e46b0e |
children | 4007989367bc |
files | h264.c |
diffstat | 1 files changed, 3 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/h264.c Sat Dec 31 13:20:24 2005 +0000 +++ b/h264.c Sat Dec 31 14:14:38 2005 +0000 @@ -2973,6 +2973,7 @@ static void init_dequant4_coeff_table(H264Context *h){ int i,j,q,x; + const int transpose = (h->s.dsp.h264_idct_add != ff_h264_idct_add_c); //FIXME ugly for(i=0; i<6; i++ ){ h->dequant4_coeff[i] = h->dequant4_buffer[i]; for(j=0; j<i; j++){ @@ -2988,7 +2989,8 @@ int shift = div6[q] + 2; int idx = rem6[q]; for(x=0; x<16; x++) - h->dequant4_coeff[i][q][x] = ((uint32_t)dequant4_coeff_init[idx][(x&1) + ((x>>2)&1)] * + h->dequant4_coeff[i][q][transpose ? (x>>2)|((x<<2)&0xF) : x] = + ((uint32_t)dequant4_coeff_init[idx][(x&1) + ((x>>2)&1)] * h->pps.scaling_matrix4[i][x]) << shift; } }