Codecs
Schema for describing codec configurations. The codecs wrapper modules (Python files) must have access to the CodecWrapper class declared in src/codecwrappers/codec_wrapper.py
Note
The following top-level properties are required: ctc-codecs-declaration.
Properties
[Required] ctc-codecs-declaration
Path: Codecs > ctc-codecs-declaration
Type |
|
Required |
Yes |
Dictionary of codec configurations. Each key is a codec name used to reference it in the main configuration file.
Each entry in this object follows the structure below.
[Required] wrapper_file
Path: Codecs > ctc-codecs-declaration > wrapper_file
Type |
|
Required |
Yes |
Filename of the wrapper module, without the .py extension. The wrapper module is responsible for calling the encoder and decoder binaries.
Example(s):
"jplm_wrapper"
"x265_wrapper"
[Required] wrapper_name
Path: Codecs > ctc-codecs-declaration > wrapper_name
Type |
|
Required |
Yes |
Class name of the wrapper inside the wrapper module.
Example(s):
"JPLMWrapper"
"x265Wrapper"
[Required] repository
Path: Codecs > ctc-codecs-declaration > repository
Type |
|
Required |
Yes |
URL of the codec git remote repository. Can be either HTTPS or SSH.
Example(s):
"https://gitlab.com/wg1/jpeg-pleno-refsw.git"
"https://bitbucket.org/multicoreware/x265_git.git"
[Optional] tag
Path: Codecs > ctc-codecs-declaration > tag
Type |
|
Required |
No |
Git tag, branch, or commit hash to checkout after cloning.
Example(s):
"v2.0.1-m110"
"4.0"
"master"
[Required] path
Path: Codecs > ctc-codecs-declaration > path
Type |
|
Required |
Yes |
Local path where the codec will be cloned and built.
Example(s):
"${base-path}/../temporary/jpeg-plm-private"
"${base-path}/../temporary/x265_git"
[Optional] log
Path: Codecs > ctc-codecs-declaration > log
Type |
|
Required |
No |
Filename for the codec execution log (JSON format). Saved inside the ‘results’ directory.
Example(s):
"execution_log_jplm.json"
"execution_log_x265_anchor.json"
[Optional] clear_log
Path: Codecs > ctc-codecs-declaration > clear_log
Type |
|
Required |
No |
Default |
|
If true, clears the codec log file before running.
[Optional] force_encoding
Path: Codecs > ctc-codecs-declaration > force_encoding
Type |
|
Required |
No |
Default |
|
If true, forces re-encoding even if encoded files already exist.
[Optional] force_building
Path: Codecs > ctc-codecs-declaration > force_building
Type |
|
Required |
No |
Default |
|
If true, forces rebuilding the codec binary even if it already exists.
[Optional] build_options
Path: Codecs > ctc-codecs-declaration > build_options
Type |
|
Required |
No |
Default |
|
CMake build options passed during codec compilation.
Example(s):
[
"-DCMAKE_BUILD_TYPE=Release"
]
[
"-DCMAKE_BUILD_TYPE=Release",
"-DHIGH_BIT_DEPTH=ON"
]
[Optional] cmake_path
Path: Codecs > ctc-codecs-declaration > cmake_path
Type |
|
Required |
No |
Relative path (from ‘path’) to the directory containing CMakeLists.txt.
Example(s):
".."
"../source"
[Optional] results
Path: Codecs > ctc-codecs-declaration > results
Type |
|
Required |
No |
Directory path where encoded and decoded results will be stored.
Example(s):
"${base-path}/../temporary/results/jplm_results"
"${base-path}/../temporary/results/x265_anchor_results"
[Required] encoded_extension
Path: Codecs > ctc-codecs-declaration > encoded_extension
Type |
|
Required |
Yes |
File extension for encoded bitstream files.
Example(s):
"jpl"
"h265"
[Required] raw_type
Path: Codecs > ctc-codecs-declaration > raw_type
Type |
|
Required |
Yes |
Raw format used as input for encoding and expected output of decoding.
Example(s):
"pgx"
"yuv"
[Optional] decoded_conversions
Path: Codecs > ctc-codecs-declaration > decoded_conversions
Type |
|
Required |
No |
Default |
|
List of formats to convert the decoded output into after decoding.
Example(s):
[
"yuv",
"ppm"
]
[
"pgx",
"ppm"
]
[Optional] keep_decoded
Path: Codecs > ctc-codecs-declaration > keep_decoded
Type |
|
Required |
No |
List of decoded formats to retain after conversion. Formats not listed may be deleted.
Example(s):
[
"pgx"
]
[
"yuv"
]
[
"ppm"
]
[Optional] repetitions
Path: Codecs > ctc-codecs-declaration > repetitions
Type |
|
Required |
No |
Default |
|
Number of times encoding and decoding should be repeated for each LF/bitrate combination. Useful for averaging performance measurements.
[Optional] kwargs
Path: Codecs > ctc-codecs-declaration > kwargs
Type |
|
Required |
No |
Additional wrapper-specific parameters passed directly to the codec wrapper.
Example(s):
{
"fps": 30,
"tune_metric": "psnr",
"bpp_to_actual_kbps_map_path": "${base-path}/../data/x265_target_kbps.json"
}
[Required] rd_preferences
Path: Codecs > ctc-codecs-declaration > rd_preferences
Type |
|
Required |
Yes |
Visual preferences for this codec in rate-distortion plots.
[Required] title
Path: Codecs > ctc-codecs-declaration > rd_preferences > title
Type |
|
Required |
Yes |
Label for this codec in RD plots.
Example(s):
"JPLM (v2.0.1)"
"x265"
[Optional] color
Path: Codecs > ctc-codecs-declaration > rd_preferences > color
Type |
|
Required |
No |
Line/marker color for this codec in RD plots.
Example(s):
"blue"
"red"
"tab:orange"
[Optional] marker
Path: Codecs > ctc-codecs-declaration > rd_preferences > marker
Type |
|
Required |
No |
Marker style for this codec in RD plots.
Example(s):
"o"
"x"
"+"