change to enable use_largest_txform feature
authorYaowu Xu <yaowu@google.com>
Mon, 24 Jun 2013 23:43:26 +0000 (16:43 -0700)
committerYaowu Xu <yaowu@google.com>
Mon, 24 Jun 2013 23:43:26 +0000 (16:43 -0700)
for all regular inter frames at speed 1

Change-Id: I0a8b301273ecf2b8730ab1f6b7a05f89f4d498e0

vp9/encoder/vp9_encodeframe.c
vp9/encoder/vp9_onyx_if.c

index f655d45..836a234 100644 (file)
@@ -1617,6 +1617,12 @@ static void switch_lossless_mode(VP9_COMP *cpi, int lossless) {
   }
 }
 
+static void switch_txfm_mode(VP9_COMP *cpi) {
+  if (cpi->sf.use_largest_txform &&
+      cpi->common.txfm_mode >= ALLOW_32X32)
+    cpi->common.txfm_mode = ALLOW_32X32;
+}
+
 static void encode_frame_internal(VP9_COMP *cpi) {
   int mi_row;
   MACROBLOCK * const x = &cpi->mb;
@@ -1661,6 +1667,7 @@ static void encode_frame_internal(VP9_COMP *cpi) {
 
   vp9_initialize_rd_consts(cpi, cm->base_qindex + cm->y_dc_delta_q);
   vp9_initialize_me_consts(cpi, cm->base_qindex);
+  switch_txfm_mode(cpi);
 
   if (cpi->oxcf.tuning == VP8_TUNE_SSIM) {
     // Initialize encode frame context.
index e02e732..48a8b48 100644 (file)
@@ -724,6 +724,9 @@ void vp9_set_speed_features(VP9_COMP *cpi) {
         sf->first_step = 1;
         sf->use_avoid_tested_higherror = 1;
         sf->adjust_thresholds_by_speed = 1;
+        sf->use_largest_txform = !(cpi->common.frame_type == KEY_FRAME ||
+                                   cpi->common.intra_only ||
+                                   cpi->common.show_frame == 0);
       }
       if (speed == 2) {
         sf->comp_inter_joint_search_thresh = BLOCK_SIZE_SB8X8;