Merge "Added per pixel inter rd hit count stats"
This commit is contained in:
		@@ -1725,6 +1725,10 @@ VP9_PTR vp9_create_compressor(VP9_CONFIG *oxcf) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  vp9_zero(cpi->y_uv_mode_count)
 | 
					  vp9_zero(cpi->y_uv_mode_count)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef MODE_TEST_HIT_STATS
 | 
				
			||||||
 | 
					  vp9_zero(cpi->mode_test_hits)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  return (VP9_PTR) cpi;
 | 
					  return (VP9_PTR) cpi;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1806,6 +1810,34 @@ void vp9_remove_compressor(VP9_PTR *ptr) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef MODE_TEST_HIT_STATS
 | 
				
			||||||
 | 
					    if (cpi->pass != 1) {
 | 
				
			||||||
 | 
					      double norm_per_pixel_mode_tests = 0;
 | 
				
			||||||
 | 
					      double norm_counts[BLOCK_SIZES];
 | 
				
			||||||
 | 
					      int i;
 | 
				
			||||||
 | 
					      int sb64_per_frame;
 | 
				
			||||||
 | 
					      int norm_factors[BLOCK_SIZES] =
 | 
				
			||||||
 | 
					        {256, 128, 128, 64, 32, 32, 16, 8, 8, 4, 2, 2, 1};
 | 
				
			||||||
 | 
					      FILE *f = fopen("mode_hit_stats.stt", "a");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // On average, how many mode tests do we do
 | 
				
			||||||
 | 
					      for (i = 0; i < BLOCK_SIZES; ++i) {
 | 
				
			||||||
 | 
					        norm_counts[i] = (double)cpi->mode_test_hits[i] /
 | 
				
			||||||
 | 
					                         (double)norm_factors[i];
 | 
				
			||||||
 | 
					        norm_per_pixel_mode_tests += norm_counts[i];
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      // Convert to a number per 64x64 and per frame
 | 
				
			||||||
 | 
					      sb64_per_frame = ((cpi->common.height + 63) / 64) *
 | 
				
			||||||
 | 
					                       ((cpi->common.width + 63) / 64);
 | 
				
			||||||
 | 
					      norm_per_pixel_mode_tests =
 | 
				
			||||||
 | 
					        norm_per_pixel_mode_tests /
 | 
				
			||||||
 | 
					        (double)(cpi->common.current_video_frame * sb64_per_frame);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      fprintf(f, "%6.4f\n", norm_per_pixel_mode_tests);
 | 
				
			||||||
 | 
					      fclose(f);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef ENTROPY_STATS
 | 
					#ifdef ENTROPY_STATS
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      int i, j, k;
 | 
					      int i, j, k;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,6 +36,8 @@
 | 
				
			|||||||
#define DISABLE_RC_LONG_TERM_MEM 0
 | 
					#define DISABLE_RC_LONG_TERM_MEM 0
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// #define MODE_TEST_HIT_STATS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// #define SPEEDSTATS 1
 | 
					// #define SPEEDSTATS 1
 | 
				
			||||||
#if CONFIG_MULTIPLE_ARF
 | 
					#if CONFIG_MULTIPLE_ARF
 | 
				
			||||||
// Set MIN_GF_INTERVAL to 1 for the full decomposition.
 | 
					// Set MIN_GF_INTERVAL to 1 for the full decomposition.
 | 
				
			||||||
@@ -664,6 +666,12 @@ typedef struct VP9_COMP {
 | 
				
			|||||||
#ifdef ENTROPY_STATS
 | 
					#ifdef ENTROPY_STATS
 | 
				
			||||||
  int64_t mv_ref_stats[INTER_MODE_CONTEXTS][INTER_MODES - 1][2];
 | 
					  int64_t mv_ref_stats[INTER_MODE_CONTEXTS][INTER_MODES - 1][2];
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef MODE_TEST_HIT_STATS
 | 
				
			||||||
 | 
					  // Debug / test stats
 | 
				
			||||||
 | 
					  int64_t mode_test_hits[BLOCK_SIZES];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
} VP9_COMP;
 | 
					} VP9_COMP;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int get_ref_frame_idx(VP9_COMP *cpi, MV_REFERENCE_FRAME ref_frame) {
 | 
					static int get_ref_frame_idx(VP9_COMP *cpi, MV_REFERENCE_FRAME ref_frame) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3341,6 +3341,12 @@ int64_t vp9_rd_pick_inter_mode_sb(VP9_COMP *cpi, MACROBLOCK *x,
 | 
				
			|||||||
      continue;
 | 
					      continue;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef MODE_TEST_HIT_STATS
 | 
				
			||||||
 | 
					    // TEST/DEBUG CODE
 | 
				
			||||||
 | 
					    // Keep a rcord of the number of test hits at each size
 | 
				
			||||||
 | 
					    cpi->mode_test_hits[bsize]++;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (this_mode == I4X4_PRED) {
 | 
					    if (this_mode == I4X4_PRED) {
 | 
				
			||||||
      int rate;
 | 
					      int rate;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user