mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
fix asymmetric CQMs with pre-transposed DCT.
Originally committed as revision 4799 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
f23af3d825
commit
ab2e3e2c80
@ -2973,6 +2973,7 @@ static void init_dequant8_coeff_table(H264Context *h){
|
|||||||
|
|
||||||
static void init_dequant4_coeff_table(H264Context *h){
|
static void init_dequant4_coeff_table(H264Context *h){
|
||||||
int i,j,q,x;
|
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++ ){
|
for(i=0; i<6; i++ ){
|
||||||
h->dequant4_coeff[i] = h->dequant4_buffer[i];
|
h->dequant4_coeff[i] = h->dequant4_buffer[i];
|
||||||
for(j=0; j<i; j++){
|
for(j=0; j<i; j++){
|
||||||
@ -2988,7 +2989,8 @@ static void init_dequant4_coeff_table(H264Context *h){
|
|||||||
int shift = div6[q] + 2;
|
int shift = div6[q] + 2;
|
||||||
int idx = rem6[q];
|
int idx = rem6[q];
|
||||||
for(x=0; x<16; x++)
|
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;
|
h->pps.scaling_matrix4[i][x]) << shift;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user