shithub: libvpx

Download patch

ref: e3869e9cfc3cb659525be45b35c8ad37103e573c
parent: b10b8879070ee788731fd06452e602f96efa7d59
author: Yaowu Xu <yaowu@google.com>
date: Tue May 14 06:35:11 EDT 2013

Removed Q threshold in the usage of ADST

Test on cif set showed small but consistent compression gain for
almost all encodings with overall impact of .08%. The gains average
aournd .12% combined with D63 adst change.

Test encoding on std-hd set is ongoing..

Change-Id: If4d94799cf0486fb9c770b193e5c386d13d99d59

--- a/vp9/common/vp9_blockd.h
+++ b/vp9/common/vp9_blockd.h
@@ -566,12 +566,6 @@
   return subsize;
 }
 
-#define ACTIVE_HT   110                // quantization stepsize threshold
-
-#define ACTIVE_HT8  300
-
-#define ACTIVE_HT16 300
-
 // convert MB_PREDICTION_MODE to B_PREDICTION_MODE
 static B_PREDICTION_MODE pred_mode_conv(MB_PREDICTION_MODE mode) {
   switch (mode) {
@@ -632,12 +626,10 @@
 #endif
   if (xd->lossless)
     return DCT_DCT;
-  if (xd->mode_info_context->mbmi.mode == I4X4_PRED &&
-      xd->q_index < ACTIVE_HT) {
+  if (xd->mode_info_context->mbmi.mode == I4X4_PRED) {
     tx_type = txfm_map(
         xd->mode_info_context->bmi[ib].as_mode.first);
-  } else if (xd->mode_info_context->mbmi.mode <= TM_PRED &&
-             xd->q_index < ACTIVE_HT) {
+  } else if (xd->mode_info_context->mbmi.mode <= TM_PRED) {
 #if USE_ADST_FOR_I16X16_4X4
 #if USE_ADST_PERIPHERY_ONLY
     const int hmax = 1 << wb;
@@ -680,8 +672,7 @@
 #endif
   if (ib >= (1 << (wb + hb)))  // no chroma adst
     return tx_type;
-  if (xd->mode_info_context->mbmi.mode <= TM_PRED &&
-      xd->q_index < ACTIVE_HT8) {
+  if (xd->mode_info_context->mbmi.mode <= TM_PRED) {
 #if USE_ADST_FOR_I16X16_8X8
 #if USE_ADST_PERIPHERY_ONLY
     const int hmax = 1 << wb;
@@ -722,8 +713,7 @@
 #endif
   if (ib >= (1 << (wb + hb)))
     return tx_type;
-  if (xd->mode_info_context->mbmi.mode <= TM_PRED &&
-      xd->q_index < ACTIVE_HT16) {
+  if (xd->mode_info_context->mbmi.mode <= TM_PRED) {
     tx_type = txfm_map(pred_mode_conv(xd->mode_info_context->mbmi.mode));
 #if USE_ADST_PERIPHERY_ONLY
     if (sb_type > BLOCK_SIZE_MB16X16) {