]> granicus.if.org Git - libvpx/commitdiff
vp10: skip coding of txsz for lossless-segment blocks.
authorRonald S. Bultje <rsbultje@gmail.com>
Mon, 4 Jan 2016 20:20:50 +0000 (15:20 -0500)
committerRonald S. Bultje <rsbultje@gmail.com>
Mon, 4 Jan 2016 20:21:02 +0000 (15:21 -0500)
Change-Id: Ic23c10b6d2a9fed3abe69c6bf10e910832444f2c

vp10/decoder/decodemv.c
vp10/encoder/bitstream.c

index b516333e0dd5e199888e962dbf9522e89e328889..2bad07a516473b5c932c552bad3bae1b20ec0957 100644 (file)
@@ -100,6 +100,8 @@ static TX_SIZE read_tx_size(VP10_COMMON *cm, MACROBLOCKD *xd,
   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
index 361ac9962a502f69981c8204c57f520c6a09eed0..477752aa751136088abd5d72434dcb16367d8385 100644 (file)
@@ -303,7 +303,7 @@ static void pack_inter_mode_mvs(VP10_COMP *cpi, const MODE_INFO *mi,
     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 @@ static void write_mb_modes_kf(const VP10_COMMON *cm, const MACROBLOCKD *xd,
 
   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) {