diff options
Diffstat (limited to 'vp8/decoder/idct_blk.c')
-rw-r--r-- | vp8/decoder/idct_blk.c | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/vp8/decoder/idct_blk.c b/vp8/decoder/idct_blk.c index 44a223157..2015d5255 100644 --- a/vp8/decoder/idct_blk.c +++ b/vp8/decoder/idct_blk.c @@ -30,13 +30,10 @@ void vp8_dequant_dc_idct_add_y_block_c { for (j = 0; j < 4; j++) { - if (*eobs++ <= 1) - { - vp8_dc_only_idct_add_c (dc[0], pre, dst, 16, stride); - } - - else + if (*eobs++ > 1) vp8_dequant_dc_idct_add_c (q, dq, pre, dst, 16, stride, dc[0]); + else + vp8_dc_only_idct_add_c (dc[0], pre, dst, 16, stride); q += 16; pre += 4; @@ -59,13 +56,14 @@ void vp8_dequant_idct_add_y_block_c { for (j = 0; j < 4; j++) { - if (*eobs++ <= 1) + if (*eobs++ > 1) + vp8_dequant_idct_add_c (q, dq, pre, dst, 16, stride); + else { vp8_dc_only_idct_add_c (q[0]*dq[0], pre, dst, 16, stride); ((int *)q)[0] = 0; } - else - vp8_dequant_idct_add_c (q, dq, pre, dst, 16, stride); + q += 16; pre += 4; dst += 4; @@ -86,13 +84,14 @@ void vp8_dequant_idct_add_uv_block_c { for (j = 0; j < 2; j++) { - if (*eobs++ <= 1) + if (*eobs++ > 1) + vp8_dequant_idct_add_c (q, dq, pre, dstu, 8, stride); + else { vp8_dc_only_idct_add_c (q[0]*dq[0], pre, dstu, 8, stride); ((int *)q)[0] = 0; } - else - vp8_dequant_idct_add_c (q, dq, pre, dstu, 8, stride); + q += 16; pre += 4; dstu += 4; @@ -106,14 +105,14 @@ void vp8_dequant_idct_add_uv_block_c { for (j = 0; j < 2; j++) { - if (*eobs++ <= 1) + if (*eobs++ > 1) + vp8_dequant_idct_add_c (q, dq, pre, dstv, 8, stride); + else { vp8_dc_only_idct_add_c (q[0]*dq[0], pre, dstv, 8, stride); ((int *)q)[0] = 0; } - else - vp8_dequant_idct_add_c (q, dq, pre, dstv, 8, stride); q += 16; pre += 4; dstv += 4; |