]> granicus.if.org Git - libvpx/commitdiff
Merge "Allow large tx_size in lossless coding with transform skipping" into nextgen
authorpunksu <huisu@google.com>
Sun, 28 Dec 2014 04:52:36 +0000 (20:52 -0800)
committerGerrit Code Review <gerrit@gerrit.golo.chromium.org>
Sun, 28 Dec 2014 04:52:36 +0000 (20:52 -0800)
1  2 
vp9/decoder/vp9_decodeframe.c
vp9/decoder/vp9_decodemv.c
vp9/encoder/vp9_bitstream.c
vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_rdopt.c

Simple merge
Simple merge
index 92682dc9feecd0ac5dac11e10ba05e9f5b92ff2a,75bde4011eb329206af332e90841b2c099720175..8b3689477c93715087212d80aaea4878bf6dd730
@@@ -437,15 -401,36 +437,36 @@@ static void pack_inter_mode_mvs(VP9_COM
      int q_idx = cm->base_qindex;
  #else
      int q_idx = vp9_get_qindex(seg, segment_id, cm->base_qindex);
- #endif
+ #endif  // CONFIG_SUPERTX
      int try_tx_skip = is_inter ? q_idx <= TX_SKIP_Q_THRESH_INTER :
                                   q_idx <= TX_SKIP_Q_THRESH_INTRA;
+ #if CONFIG_SUPERTX
      if (try_tx_skip) {
-       vp9_write(w, mbmi->tx_skip[0], cm->fc.y_tx_skip_prob[is_inter]);
-       vp9_write(w, mbmi->tx_skip[1], cm->fc.uv_tx_skip_prob[mbmi->tx_skip[0]]);
+ #else
+     if (try_tx_skip && !skip) {
+ #endif  // CONFIG_SUPERTX
+       if (xd->lossless) {
+ #if CONFIG_SUPERTX
+         if (1)
+ #else
+         if (mbmi->tx_size == TX_4X4)
+ #endif  // CONFIG_SUPERTX
+           vp9_write(w, mbmi->tx_skip[0], cm->fc.y_tx_skip_prob[is_inter]);
+ #if CONFIG_SUPERTX
+         if (1)
+ #else
+         if (get_uv_tx_size(mbmi, &xd->plane[1]) == TX_4X4)
+ #endif  // CONFIG_SUPERTX
+           vp9_write(w, mbmi->tx_skip[1],
+                     cm->fc.uv_tx_skip_prob[mbmi->tx_skip[0]]);
+       } else {
+         vp9_write(w, mbmi->tx_skip[0], cm->fc.y_tx_skip_prob[is_inter]);
+         vp9_write(w, mbmi->tx_skip[1],
+                   cm->fc.uv_tx_skip_prob[mbmi->tx_skip[0]]);
+       }
      }
    }
 -#endif
 +#endif  // CONFIG_TX_SKIP
  
    if (!is_inter) {
      if (bsize >= BLOCK_8X8) {
Simple merge
Simple merge