def _run_on_asset(self, asset): vmaf_fassembler = self._get_feature_assembler_instance(asset) vmaf_fassembler.run() feature_result = vmaf_fassembler.results[0] result_dict = {} result_dict.update(feature_result.result_dict.copy()) # add feature result result_dict[self.get_scores_key()] = feature_result.result_dict[ STMADFeatureExtractor.get_scores_key('stmad')] # add strred score del result_dict[STMADFeatureExtractor.get_scores_key('stmad')] # delete redundant return Result(asset, self.executor_id, result_dict)
def test_run_strredOpt_fextractor(self): ref_path, dis_path, asset, asset_original = set_default_576_324_videos_for_testing( ) self.fextractor = StrredOptFeatureExtractor([asset, asset_original], None, fifo_mode=True, result_store=None) self.fextractor.run(parallelize=False) results = self.fextractor.results # notice that these numbers are the same with ST-RRED, since the opt version should always produce identical results self.assertAlmostEqual(results[0]['STRREDOpt_feature_srred_score'], 3.0166328541666663, places=4) self.assertAlmostEqual(results[0]['STRREDOpt_feature_trred_score'], 7.338665770833333, places=4) self.assertAlmostEqual(results[0]['STRREDOpt_feature_strred_score'], 22.336452104611016, places=4) self.assertAlmostEqual(results[1]['STRREDOpt_feature_srred_score'], 0.0, places=4) self.assertAlmostEqual(results[1]['STRREDOpt_feature_trred_score'], 0.0, places=4) self.assertAlmostEqual(results[1]['STRREDOpt_feature_strred_score'], 0.0, places=4)
def test_run_strred_fextractor(self): ref_path, dis_path, asset, asset_original = set_default_576_324_videos_for_testing( ) self.fextractor = StrredFeatureExtractor([asset, asset_original], None, fifo_mode=True, result_store=None) self.fextractor.run(parallelize=False) results = self.fextractor.results self.assertAlmostEqual(results[0]['STRRED_feature_srred_score'], 3.0166328541666663, places=4) self.assertAlmostEqual(results[0]['STRRED_feature_trred_score'], 7.338665770833333, places=4) self.assertAlmostEqual(results[0]['STRRED_feature_strred_score'], 22.336452104611016, places=4) self.assertAlmostEqual( results[0]['STRRED_feature_strred_all_same_score'], 22.138060270044175, places=4) self.assertAlmostEqual(results[1]['STRRED_feature_srred_score'], 0.0, places=4) self.assertAlmostEqual(results[1]['STRRED_feature_trred_score'], 0.0, places=4) self.assertAlmostEqual(results[1]['STRRED_feature_strred_score'], 0.0, places=4)
def test_run_stmad_fextractor(self): ref_path, dis_path, asset, asset_original = set_default_576_324_videos_for_testing() self.fextractor = STMADFeatureExtractor( [asset, asset_original], None, fifo_mode=True, result_store=None ) self.fextractor.run(parallelize=False) results = self.fextractor.results self.assertAlmostEqual(results[0].result_dict['STMAD_feature_smad_all_same_scores'][0], 2.889626, places=4) self.assertAlmostEqual(results[0].result_dict['STMAD_feature_tmad_all_same_scores'][0], 5.649214, places=4) self.assertAlmostEqual(results[0].result_dict['STMAD_feature_stmad_all_same_scores'][0], 4.983220, places=4) self.assertAlmostEqual(results[1].result_dict['STMAD_feature_smad_all_same_scores'][0], 1.000000, places=4) self.assertAlmostEqual(results[1].result_dict['STMAD_feature_tmad_all_same_scores'][0], 0.000000, places=4) self.assertAlmostEqual(results[1].result_dict['STMAD_feature_stmad_all_same_scores'][0], -1.818097, places=4)
def test_run_SpEED_matlab_fextractor(self): ref_path, dis_path, asset, asset_original = set_default_576_324_videos_for_testing() self.fextractor = SpEEDMatlabFeatureExtractor( [asset, asset_original], None, fifo_mode=True, result_store=None ) self.fextractor.run(parallelize=False) results = self.fextractor.results # S-SpEED assertions on first frame self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_sspeed_2_scores'][0], 13.510418, places=4) self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_sspeed_3_scores'][0], 7.211881, places=4) self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_sspeed_4_scores'][0], 4.921501, places=4) # T-SpEED assertions on third frame self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_tspeed_2_scores'][2], 32.994605, places=4) self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_tspeed_3_scores'][2], 22.404285, places=4) self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_tspeed_4_scores'][2], 15.233468, places=4)
class MatlabFeatureExtractorTest(unittest.TestCase): def tearDown(self): if hasattr(self, 'fextractor'): self.fextractor.remove_results() pass def test_run_strred_fextractor(self): print 'test on running STRRED feature extractor, no parallelization...' ref_path, dis_path, asset, asset_original = set_default_576_324_videos_for_testing() self.fextractor = StrredFeatureExtractor( [asset, asset_original], None, fifo_mode=True, result_store=None ) self.fextractor.run(parallelize=False) results = self.fextractor.results self.assertAlmostEqual(results[0]['STRRED_feature_srred_score'], 3.0166328541666663, places=4) self.assertAlmostEqual(results[0]['STRRED_feature_trred_score'], 7.338665770833333, places=4) self.assertAlmostEqual(results[0]['STRRED_feature_strred_score'], 22.336452104611016, places=4) self.assertAlmostEqual(results[0]['STRRED_feature_strred_all_same_score'], 22.138060270044175, places=4) self.assertAlmostEqual(results[1]['STRRED_feature_srred_score'], 0.0, places=4) self.assertAlmostEqual(results[1]['STRRED_feature_trred_score'], 0.0, places=4) self.assertAlmostEqual(results[1]['STRRED_feature_strred_score'], 0.0, places=4) def test_run_strredOpt_fextractor(self): print 'test on running STRREDopt feature extractor, no parallelization...' ref_path, dis_path, asset, asset_original = set_default_576_324_videos_for_testing() self.fextractor = StrredOptFeatureExtractor( [asset, asset_original], None, fifo_mode=True, result_store=None ) self.fextractor.run(parallelize=False) results = self.fextractor.results # notice that these numbers are the same with ST-RRED, since the opt version should always produce identical results self.assertAlmostEqual(results[0]['STRREDOpt_feature_srred_score'], 3.0166328541666663, places=4) self.assertAlmostEqual(results[0]['STRREDOpt_feature_trred_score'], 7.338665770833333, places=4) self.assertAlmostEqual(results[0]['STRREDOpt_feature_strred_score'], 22.336452104611016, places=4) self.assertAlmostEqual(results[1]['STRREDOpt_feature_srred_score'], 0.0, places=4) self.assertAlmostEqual(results[1]['STRREDOpt_feature_trred_score'], 0.0, places=4) self.assertAlmostEqual(results[1]['STRREDOpt_feature_strred_score'], 0.0, places=4) def test_run_SpEED_matlab_fextractor(self): print 'test on running SpEED (Matlab) feature extractor, no paralellization...' ref_path, dis_path, asset, asset_original = set_default_576_324_videos_for_testing() self.fextractor = SpEEDMatlabFeatureExtractor( [asset, asset_original], None, fifo_mode=True, result_store=None ) self.fextractor.run(parallelize=False) results = self.fextractor.results # S-SpEED assertions on first frame self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_sspeed_2_scores'][0], 13.510418, places=4) self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_sspeed_3_scores'][0], 7.211881, places=4) self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_sspeed_4_scores'][0], 4.921501, places=4) # T-SpEED assertions on third frame self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_tspeed_2_scores'][2], 32.994605, places=4) self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_tspeed_3_scores'][2], 22.404285, places=4) self.assertAlmostEqual(results[0].result_dict[self.fextractor.TYPE + '_tspeed_4_scores'][2], 15.233468, places=4) @unittest.skip("Need signal processing toolbox in Matlab.") def test_run_stmad_fextractor(self): print 'test on running STMAD (Matlab) feature extractor, no parallelization...' ref_path, dis_path, asset, asset_original = set_default_576_324_videos_for_testing() self.fextractor = STMADFeatureExtractor( [asset, asset_original], None, fifo_mode=True, result_store=None ) self.fextractor.run(parallelize=False) results = self.fextractor.results self.assertAlmostEqual(results[0].result_dict['STMAD_feature_smad_all_same_scores'][0], 2.889626, places=4) self.assertAlmostEqual(results[0].result_dict['STMAD_feature_tmad_all_same_scores'][0], 5.649214, places=4) self.assertAlmostEqual(results[0].result_dict['STMAD_feature_stmad_all_same_scores'][0], 4.983220, places=4) self.assertAlmostEqual(results[1].result_dict['STMAD_feature_smad_all_same_scores'][0], 1.000000, places=4) self.assertAlmostEqual(results[1].result_dict['STMAD_feature_tmad_all_same_scores'][0], 0.000000, places=4) self.assertAlmostEqual(results[1].result_dict['STMAD_feature_stmad_all_same_scores'][0], -1.818097, places=4)