ref: d9439fdc3685bcd40b21ffe85302a06481697f43
parent: b8c2a4eb0c47b633096f5c428b70607e7bf8d570
author: Ronald S. Bultje <[email protected]>
date: Mon Jan 4 10:20:50 EST 2016
vp10: skip coding of txsz for lossless-segment blocks. Change-Id: Ic23c10b6d2a9fed3abe69c6bf10e910832444f2c
--- a/vp10/decoder/decodemv.c
+++ b/vp10/decoder/decodemv.c
@@ -100,6 +100,8 @@
TX_MODE tx_mode = cm->tx_mode;
BLOCK_SIZE bsize = xd->mi[0]->mbmi.sb_type;
const TX_SIZE max_tx_size = max_txsize_lookup[bsize];
+ if (xd->lossless[xd->mi[0]->mbmi.segment_id])
+ return TX_4X4;
if (allow_select && tx_mode == TX_MODE_SELECT && bsize >= BLOCK_8X8)
return read_selected_tx_size(cm, xd, max_tx_size, r);
else
--- a/vp10/encoder/bitstream.c
+++ b/vp10/encoder/bitstream.c
@@ -303,7 +303,7 @@
vpx_write(w, is_inter, vp10_get_intra_inter_prob(cm, xd));
if (bsize >= BLOCK_8X8 && cm->tx_mode == TX_MODE_SELECT &&
- !(is_inter && skip)) {
+ !(is_inter && skip) && !xd->lossless[segment_id]) {
write_selected_tx_size(cm, xd, w);
}
@@ -391,7 +391,8 @@
write_skip(cm, xd, mbmi->segment_id, mi, w);
- if (bsize >= BLOCK_8X8 && cm->tx_mode == TX_MODE_SELECT)
+ if (bsize >= BLOCK_8X8 && cm->tx_mode == TX_MODE_SELECT &&
+ !xd->lossless[mbmi->segment_id])
write_selected_tx_size(cm, xd, w);
if (bsize >= BLOCK_8X8) {