]> granicus.if.org Git - libvpx/commitdiff
Fix for lossless with rect-tx
authorPeter de Rivaz <peter.derivaz@argondesign.com>
Wed, 10 Aug 2016 09:19:09 +0000 (10:19 +0100)
committerPeter de Rivaz <peter.derivaz@argondesign.com>
Wed, 10 Aug 2016 12:00:55 +0000 (12:00 +0000)
Change-Id: Ibb1e5d5137c7717bc6a8683ad78d842c3e5f052e

vp10/encoder/rdopt.c

index ffb88b18e2498c3634a81540941efc46e831b082..130433da76f3ba3ec13694fa5ce65f36e20897e4 100644 (file)
@@ -4448,7 +4448,9 @@ static int64_t encode_inter_mb_segment(VP10_COMP *cpi,
   const int num_4x4_h = num_4x4_blocks_high_txsize_lookup[tx_size];
 
 #if CONFIG_EXT_TX && CONFIG_RECT_TX && !CONFIG_VAR_TX
-  assert(tx_size == max_txsize_rect_lookup[mi->mbmi.sb_type]);
+  assert(IMPLIES(xd->lossless[mi->mbmi.segment_id], tx_size == TX_4X4));
+  assert(IMPLIES(!xd->lossless[mi->mbmi.segment_id],
+                 tx_size == max_txsize_rect_lookup[mi->mbmi.sb_type]));
 #else
   assert(tx_size == TX_4X4);
 #endif  // CONFIG_EXT_TX && CONFIG_RECT_TX && !CONFIG_VAR_TX
@@ -5006,7 +5008,8 @@ static int64_t rd_pick_best_sub8x8_mode(
   const int inter_mode_mask = cpi->sf.inter_mode_mask[bsize];
   MB_MODE_INFO_EXT *const mbmi_ext = x->mbmi_ext;
 #if CONFIG_EXT_TX && CONFIG_RECT_TX && !CONFIG_VAR_TX
-  mbmi->tx_size = max_txsize_rect_lookup[bsize];
+  mbmi->tx_size =
+    xd->lossless[mbmi->segment_id] ? TX_4X4 : max_txsize_rect_lookup[bsize];
 #else
   mbmi->tx_size = TX_4X4;
 #endif  // CONFIG_EXT_TX && CONFIG_RECT_TX && !CONFIG_VAR_TX