From d4fd07dcdee389a0e344f9f4a69e510d848019b5 Mon Sep 17 00:00:00 2001 From: Michalis Dimopoulos Date: Thu, 7 Nov 2024 12:39:43 +0100 Subject: [PATCH 1/2] COM-12449: Add H264 FRExt test suite generator - implemented FRExt test suite generator code - slightly modified json file of FRExt test suite --- scripts/gen_jvt.py | 47 +++++++++++++++++++++++++++----- test_suites/h264/JVT-FR-EXT.json | 2 +- 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/scripts/gen_jvt.py b/scripts/gen_jvt.py index 421c8d3..20556a6 100755 --- a/scripts/gen_jvt.py +++ b/scripts/gen_jvt.py @@ -47,7 +47,7 @@ ] MD5_EXTS = ["yuv_2.md5", "yuv.md5", ".md5", "md5.txt", "md5sum.txt"] MD5_EXCLUDES = [".bin.md5", "bit.md5"] -RAW_EXTS = ["nogray.yuv", ".yuv", ".qcif"] +RAW_EXTS = ["nogray.yuv", ".yuv", ".YUV", ".qcif"] class HREFParser(HTMLParser): @@ -193,6 +193,29 @@ def generate(self, download, jobs): else: raise key_err + exceptions_checksum = [ + # Output checksum of all below test vectors from JVT-FRExt has to be calculated by means of + # executing a run with the reference decoder, `fluster.py -f ...` + "alphaconformanceG", # Raw reference files are split streams and give false checksum value + "FREH10-1", + "FREH10-2", + "Hi422FR1_SONY_A", + "Hi422FR2_SONY_A", + "Hi422FR3_SONY_A", + "Hi422FR4_SONY_A", + "Hi422FR6_SONY_A", + "Hi422FR7_SONY_A", + "Hi422FR8_SONY_A", + "Hi422FR9_SONY_A", + "Hi422FREXT16_SONY_A", + "Hi422FREXT17_SONY_A", + "Hi422FREXT18_SONY_A", + "Hi422FREXT19_SONY_A", + ] + + if test_vector.name in exceptions_checksum: + continue + if self.name not in ( "Professional_profiles", "MVC", @@ -284,20 +307,20 @@ def remove_r1_from_path(path): generator.generate(not args.skip_download, args.jobs) generator = JVTGenerator( - "MVC", - "JVT-MVC", + "FRExt", + "JVT-FR-EXT", Codec.H264, - "JVT Multiview Video Coding test suite", + "JVT Fidelity Range Extension test suite", H264_URL, True, ) generator.generate(not args.skip_download, args.jobs) generator = JVTGenerator( - "SVC", - "JVT-SVC", + "MVC", + "JVT-MVC", Codec.H264, - "JVT Scalable Video Coding test suite", + "JVT Multiview Video Coding test suite", H264_URL, True, ) @@ -312,3 +335,13 @@ def remove_r1_from_path(path): True, ) generator.generate(not args.skip_download, args.jobs) + + generator = JVTGenerator( + "SVC", + "JVT-SVC", + Codec.H264, + "JVT Scalable Video Coding test suite", + H264_URL, + True, + ) + generator.generate(not args.skip_download, args.jobs) diff --git a/test_suites/h264/JVT-FR-EXT.json b/test_suites/h264/JVT-FR-EXT.json index 3f4cb9e..14a2551 100644 --- a/test_suites/h264/JVT-FR-EXT.json +++ b/test_suites/h264/JVT-FR-EXT.json @@ -1,7 +1,7 @@ { "name": "JVT-FR-EXT", "codec": "H.264", - "description": "JVT Fidelity Range Extensions", + "description": "JVT Fidelity Range Extension test suite", "test_vectors": [ { "name": "alphaconformanceG", From bace62dc009528a7083a877a34ccbf0684533d1a Mon Sep 17 00:00:00 2001 From: Michalis Dimopoulos Date: Fri, 8 Nov 2024 11:55:22 +0100 Subject: [PATCH 2/2] COM-12449: Undo changes that break backwards compatibility - undo naming changes for H264 Professional profiles and SVC suites --- pyproject.toml | 4 ++-- scripts/gen_jvt.py | 4 ++-- ...sional_profiles.json => JVT-Professional_profiles_V1.json} | 2 +- test_suites/h264/{JVT-SVC.json => JVT-SVC_V1.json} | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) rename test_suites/h264/{JVT-Professional_profiles.json => JVT-Professional_profiles_V1.json} (99%) rename test_suites/h264/{JVT-SVC.json => JVT-SVC_V1.json} (99%) diff --git a/pyproject.toml b/pyproject.toml index c5ce43b..151f68f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,8 +55,8 @@ packages = ["fluster", "fluster.decoders"] "test_suites/h264/JVT-AVC_V1.json", "test_suites/h264/JVT-FR-EXT.json", "test_suites/h264/JVT-MVC.json", - "test_suites/h264/JVT-Professional_profiles.json", - "test_suites/h264/JVT-SVC.json" + "test_suites/h264/JVT-Professional_profiles_V1.json", + "test_suites/h264/JVT-SVC_V1.json" ] "share/fluster/test_suites/h265" = [ "test_suites/h265/JCT-VC-3D-HEVC.json", diff --git a/scripts/gen_jvt.py b/scripts/gen_jvt.py index 20556a6..fb30933 100755 --- a/scripts/gen_jvt.py +++ b/scripts/gen_jvt.py @@ -328,7 +328,7 @@ def remove_r1_from_path(path): generator = JVTGenerator( "Professional_profiles", - "JVT-Professional_profiles", + "JVT-Professional_profiles_V1", Codec.H264, "JVT Professional Profiles test suite", H264_URL, @@ -338,7 +338,7 @@ def remove_r1_from_path(path): generator = JVTGenerator( "SVC", - "JVT-SVC", + "JVT-SVC_V1", Codec.H264, "JVT Scalable Video Coding test suite", H264_URL, diff --git a/test_suites/h264/JVT-Professional_profiles.json b/test_suites/h264/JVT-Professional_profiles_V1.json similarity index 99% rename from test_suites/h264/JVT-Professional_profiles.json rename to test_suites/h264/JVT-Professional_profiles_V1.json index 1311fb6..9598333 100644 --- a/test_suites/h264/JVT-Professional_profiles.json +++ b/test_suites/h264/JVT-Professional_profiles_V1.json @@ -1,5 +1,5 @@ { - "name": "JVT-Professional_profiles", + "name": "JVT-Professional_profiles_V1", "codec": "H.264", "description": "JVT Professional Profiles test suite", "test_vectors": [ diff --git a/test_suites/h264/JVT-SVC.json b/test_suites/h264/JVT-SVC_V1.json similarity index 99% rename from test_suites/h264/JVT-SVC.json rename to test_suites/h264/JVT-SVC_V1.json index 37f622a..111ed48 100644 --- a/test_suites/h264/JVT-SVC.json +++ b/test_suites/h264/JVT-SVC_V1.json @@ -1,5 +1,5 @@ { - "name": "JVT-SVC", + "name": "JVT-SVC_V1", "codec": "H.264", "description": "JVT Scalable Video Coding test suite", "test_vectors": [