Structured the mode ordering code to avoid redundant memcpy
authorRanjit Kumar Tulabandu <ranjit.tulabandu@ittiam.com>
Thu, 16 Feb 2017 14:07:39 +0000 (19:37 +0530)
committerRanjit Kumar Tulabandu <ranjit.tulabandu@ittiam.com>
Thu, 16 Feb 2017 14:12:33 +0000 (14:12 +0000)
Change-Id: I4f5d6b54018bd1928cd9e5e42619e6f55b334803

vp9/encoder/vp9_rdopt.c

index 8d1006b..0500e60 100644 (file)
@@ -3169,22 +3169,21 @@ void vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, TileDataEnc *tile_data,
 
   midx = sf->schedule_mode_search ? mode_skip_start : 0;
 
-  memcpy(mode_map, tile_mode_map, sizeof(mode_map));
-
   while (midx > 4) {
     uint8_t end_pos = 0;
     for (i = 5; i < midx; ++i) {
-      if (mode_threshold[mode_map[i - 1]] > mode_threshold[mode_map[i]]) {
-        uint8_t tmp = mode_map[i];
-        mode_map[i] = mode_map[i - 1];
-        mode_map[i - 1] = tmp;
+      if (mode_threshold[tile_mode_map[i - 1]] >
+          mode_threshold[tile_mode_map[i]]) {
+        uint8_t tmp = tile_mode_map[i];
+        tile_mode_map[i] = tile_mode_map[i - 1];
+        tile_mode_map[i - 1] = tmp;
         end_pos = i;
       }
     }
     midx = end_pos;
   }
 
-  memcpy(tile_mode_map, mode_map, sizeof(mode_map));
+  memcpy(mode_map, tile_mode_map, sizeof(mode_map));
 
 #if CONFIG_MULTITHREAD
   if (NULL != tile_data->enc_row_mt_mutex)