| Index: source/libvpx/vp9/encoder/vp9_encodemb.c
|
| ===================================================================
|
| --- source/libvpx/vp9/encoder/vp9_encodemb.c (revision 291857)
|
| +++ source/libvpx/vp9/encoder/vp9_encodemb.c (working copy)
|
| @@ -476,20 +476,24 @@
|
| }
|
|
|
| if (!x->skip_recode) {
|
| - if (x->skip_txfm[plane] == 0) {
|
| - // full forward transform and quantization
|
| - if (x->quant_fp)
|
| - vp9_xform_quant_fp(x, plane, block, plane_bsize, tx_size);
|
| - else
|
| - vp9_xform_quant(x, plane, block, plane_bsize, tx_size);
|
| - } else if (x->skip_txfm[plane] == 2) {
|
| - // fast path forward transform and quantization
|
| - vp9_xform_quant_dc(x, plane, block, plane_bsize, tx_size);
|
| + if (max_txsize_lookup[plane_bsize] == tx_size) {
|
| + if (x->skip_txfm[(plane << 2) + (block >> (tx_size << 1))] == 0) {
|
| + // full forward transform and quantization
|
| + if (x->quant_fp)
|
| + vp9_xform_quant_fp(x, plane, block, plane_bsize, tx_size);
|
| + else
|
| + vp9_xform_quant(x, plane, block, plane_bsize, tx_size);
|
| + } else if (x->skip_txfm[(plane << 2) + (block >> (tx_size << 1))] == 2) {
|
| + // fast path forward transform and quantization
|
| + vp9_xform_quant_dc(x, plane, block, plane_bsize, tx_size);
|
| + } else {
|
| + // skip forward transform
|
| + p->eobs[block] = 0;
|
| + *a = *l = 0;
|
| + return;
|
| + }
|
| } else {
|
| - // skip forward transform
|
| - p->eobs[block] = 0;
|
| - *a = *l = 0;
|
| - return;
|
| + vp9_xform_quant(x, plane, block, plane_bsize, tx_size);
|
| }
|
| }
|
|
|
|
|