Improved vp9_ihtllm_c
As suggested by Yaowu, we can use eob to reduce the complexity of the vp9_ihtllm_c function. For the 1080p test clip used, the decoder performance improved by 17%. Change-Id: I32486f2f06f9b8f60467d2a574209aa3a3daa435
This commit is contained in:
@@ -70,7 +70,7 @@ void vp9_encode_intra4x4block(MACROBLOCK *x, int ib) {
|
||||
if (tx_type != DCT_DCT) {
|
||||
vp9_fht(be->src_diff, 32, be->coeff, tx_type, 4);
|
||||
vp9_ht_quantize_b_4x4(be, b, tx_type);
|
||||
vp9_ihtllm(b->dqcoeff, b->diff, 32, tx_type, 4);
|
||||
vp9_ihtllm(b->dqcoeff, b->diff, 32, tx_type, 4, b->eob);
|
||||
} else {
|
||||
x->vp9_short_fdct4x4(be->src_diff, be->coeff, 32);
|
||||
x->quantize_b_4x4(be, b) ;
|
||||
@@ -191,7 +191,7 @@ void vp9_encode_intra8x8(MACROBLOCK *x, int ib) {
|
||||
tx_type, 8);
|
||||
x->quantize_b_8x8(x->block + idx, xd->block + idx);
|
||||
vp9_ihtllm(xd->block[idx].dqcoeff, xd->block[ib].diff, 32,
|
||||
tx_type, 8);
|
||||
tx_type, 8, xd->block[idx].eob);
|
||||
} else {
|
||||
x->vp9_short_fdct8x8(be->src_diff, (x->block + idx)->coeff, 32);
|
||||
x->quantize_b_8x8(x->block + idx, xd->block + idx);
|
||||
@@ -205,7 +205,7 @@ void vp9_encode_intra8x8(MACROBLOCK *x, int ib) {
|
||||
if (tx_type != DCT_DCT) {
|
||||
vp9_fht_c(be->src_diff, 32, be->coeff, tx_type, 4);
|
||||
vp9_ht_quantize_b_4x4(be, b, tx_type);
|
||||
vp9_ihtllm(b->dqcoeff, b->diff, 32, tx_type, 4);
|
||||
vp9_ihtllm(b->dqcoeff, b->diff, 32, tx_type, 4, b->eob);
|
||||
} else {
|
||||
x->vp9_short_fdct4x4(be->src_diff, be->coeff, 32);
|
||||
x->quantize_b_4x4(be, b);
|
||||
|
Reference in New Issue
Block a user