vp9-svc unitests: Add more tests for key frame periods.
Change-Id: Iea237760b508d87dab057dd824e26d2e66fa8433
This commit is contained in:
		@@ -920,9 +920,9 @@ TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc2SpatialLayers) {
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Check basic rate targeting for 1 pass CBR SVC: 2 spatial layers and
 | 
			
		||||
// 3 temporal layers. Run CIF clip with 1 thread. Use short key frame period.
 | 
			
		||||
TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc2SpatialLayersSmallKf_dist) {
 | 
			
		||||
// Check basic rate targeting for 1 pass CBR SVC: 2 spatial layers and 3
 | 
			
		||||
// temporal layers. Run CIF clip with 1 thread, and few short key frame periods.
 | 
			
		||||
TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc2SpatialLayersSmallKf) {
 | 
			
		||||
  cfg_.rc_buf_initial_sz = 500;
 | 
			
		||||
  cfg_.rc_buf_optimal_sz = 500;
 | 
			
		||||
  cfg_.rc_buf_sz = 1000;
 | 
			
		||||
@@ -943,13 +943,13 @@ TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc2SpatialLayersSmallKf_dist) {
 | 
			
		||||
  svc_params_.scaling_factor_num[1] = 288;
 | 
			
		||||
  svc_params_.scaling_factor_den[1] = 288;
 | 
			
		||||
  cfg_.rc_dropframe_thresh = 10;
 | 
			
		||||
  cfg_.kf_max_dist = 64;
 | 
			
		||||
  ::libvpx_test::I420VideoSource video("hantro_collage_w352h288.yuv", 352, 288,
 | 
			
		||||
                                       30, 1, 0, 200);
 | 
			
		||||
  // TODO(wonkap/marpan): Check that effective_datarate for each layer hits the
 | 
			
		||||
  // layer target_bitrate. Also check if test can pass at lower bitrate (~200k).
 | 
			
		||||
  for (int i = 400; i <= 800; i += 200) {
 | 
			
		||||
    cfg_.rc_target_bitrate = i;
 | 
			
		||||
  cfg_.rc_target_bitrate = 400;
 | 
			
		||||
  // For this 3 temporal layer case, pattern repeats every 4 frames, so choose
 | 
			
		||||
  // 4 key neighboring key frame periods (so key frame will land on 0-2-1-2).
 | 
			
		||||
  for (int j = 64; j <= 67; j++) {
 | 
			
		||||
    cfg_.kf_max_dist = j;
 | 
			
		||||
    ResetModel();
 | 
			
		||||
    assign_layer_bitrates(&cfg_, &svc_params_, cfg_.ss_number_layers,
 | 
			
		||||
        cfg_.ts_number_layers, cfg_.temporal_layering_mode);
 | 
			
		||||
@@ -1040,8 +1040,8 @@ TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc3SpatialLayers) {
 | 
			
		||||
  EXPECT_EQ(static_cast<unsigned int>(0), GetMismatchFrames());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Check basic rate targeting for 1 pass CBR SVC: 3 spatial layers and
 | 
			
		||||
// 3 temporal layers. Run CIF clip with 1 thread. Use short key frame period.
 | 
			
		||||
// Check basic rate targeting for 1 pass CBR SVC: 3 spatial layers and 3
 | 
			
		||||
// temporal layers. Run CIF clip with 1 thread, and few short key frame periods.
 | 
			
		||||
TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc3SpatialLayersSmallKf) {
 | 
			
		||||
  cfg_.rc_buf_initial_sz = 500;
 | 
			
		||||
  cfg_.rc_buf_optimal_sz = 500;
 | 
			
		||||
@@ -1065,10 +1065,13 @@ TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc3SpatialLayersSmallKf) {
 | 
			
		||||
  svc_params_.scaling_factor_num[2] = 288;
 | 
			
		||||
  svc_params_.scaling_factor_den[2] = 288;
 | 
			
		||||
  cfg_.rc_dropframe_thresh = 10;
 | 
			
		||||
  cfg_.kf_max_dist = 32;
 | 
			
		||||
  ::libvpx_test::I420VideoSource video("niklas_1280_720_30.y4m", 1280, 720,
 | 
			
		||||
                                       30, 1, 0, 300);
 | 
			
		||||
  cfg_.rc_target_bitrate = 800;
 | 
			
		||||
  // For this 3 temporal layer case, pattern repeats every 4 frames, so choose
 | 
			
		||||
  // 4 key neighboring key frame periods (so key frame will land on 0-2-1-2).
 | 
			
		||||
  for (int j = 32; j <= 35; j++) {
 | 
			
		||||
    cfg_.kf_max_dist = j;
 | 
			
		||||
    ResetModel();
 | 
			
		||||
    assign_layer_bitrates(&cfg_, &svc_params_, cfg_.ss_number_layers,
 | 
			
		||||
       cfg_.ts_number_layers, cfg_.temporal_layering_mode);
 | 
			
		||||
@@ -1079,6 +1082,7 @@ TEST_P(DatarateOnePassCbrSvc, OnePassCbrSvc3SpatialLayersSmallKf) {
 | 
			
		||||
        << " The datarate for the file is lower than the target by too much!";
 | 
			
		||||
    EXPECT_EQ(static_cast<unsigned int>(0), GetMismatchFrames());
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Check basic rate targeting for 1 pass CBR SVC: 3 spatial layers and
 | 
			
		||||
// 3 temporal layers. Run HD clip with 4 threads.
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user