JVET-AL0003 JVET AHG report: Test model software development (AHG3) [F. Bossen, X. Li, K. Sühring (co-chairs), E. François, Y. He, K. Sharman, V. Seregin, A. Tourapis (vice chairs)]
The software model versions prior to the start of the meeting were:
- VTM 23.8 (Feb. 2025)
- HM-18.0 (Apr. 2023)
- HM-16.21+SCM-8.8 (Mar. 2020)
- SHM 12.4 (Jan. 2018)
- HTM 16.3 (Jul. 2018)
- JM 19.1 (Apr. 2023)
- JSVM 9.19.15
- JMVC 8.5
- 3DV ATM 15.0 (no version history)
- HDRTools 0.24 (March 2023)
Software for MFC and MFCD is only available as published by ITU-T and ISO/IEC. It is planned to create repositories with the latest versions available in ITU-T H.264.2 (02/2016). All development history is lost.
Software development
Development was continued on the GitLab server, which allows participants to register accounts and use a distributed development workflow based on git.
The server is located at:
https://vcgit.hhi.fraunhofer.de
The registration and development workflow are documented at:
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/wikis/VVC-Software-Development-Workflow
Although the development process is described in the context of the VTM software, it can be applied to all other software projects hosted on the GitLab server as well.
Between the 31st and 32nd meetings, the GitLab server was affected by a huge number of spam issues, which were generated using newly registered accounts. Administrator user account confirmation was enabled to protect the server from spam postings. Proponents should plan for some time for server admins to confirm new accounts.
Between the 37th and 38th JVET meeting extensive renewal work was performed on the build server infrastructure. To finish these works, changes to the build configurations are required for all software projects using build pipelines. The necessary information will be communicated to the software coordinators during or shortly after the 38th JVET meeting.
VTM related activities
The VTM software can be found at
https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM/
The software development continued on the GitLab server. VTM version 23.7 was tagged on Jan. 30, 2025. VTM 23.8 was tagged on Feb. 2. VTM 23.9 is expected during the 38th JVET meeting.
VTM 23.7 was tagged on Jan. 30, 2025. Changes include:
- DSC corrections
- SEI related cleanups
- JVET-AJ0234: Allow for patch-wise operation when using spatial extrapolation
- JVET-AJ0128: Adding functionality to po_processing_degree_flag[i] of the SPO SEI message
- Fix for decoder when DSC SEI is not present
- JVET-AJ0131: Add nnpfc_inband_prompt_flag to gate NNPF text prompt
- fix ScalingList for multilayer, when used for only one layer that is not the...
- JVET-AJ0151: Digitally Signed Content SEI messages
- Port ET with millisecond precision (from ECM MR 803)
- JVET-AJ0063: Proposal 1,2,4,5
- JVET-AJ0207: GFV SEI message
- Fix GCC 14 warning
- JVET-AJ0241: Text description SEI purpose for encoder description
- JVET-AJ0129: Add more SEI types to the list of allowed SEI types in SPO SEI
- JVET-AJ0225: Changes to RDO for enhancement layer
- Take bit depth into account when applying temporal prefilter
VTM 23.8 was tagged on Feb. 2, 2025. Changes only include removal of macros from previous meeting cycles.
VTM 23.9 was expected to be tagged during the 38th JVET meeting. Changes were expected to include:
- JVET-AK2006: Updates for SPTI SEI message
- JVET-AH0174/JVET-AJ0073: Add nnpfc_scan_type_idc syntax element in the NNPFC SEI message
- JVET-AK0239: GFVE SEI message
- Merge and move configuration files for RA adaptive resolution
- JVET-AK0181: alternative configurations
- Rename "high performance" configuration folder for better reference in CTC
- JVET-AK0072 item 3: NNPF prompt null string constraint
- fix memory leak
- JVET-AJ0104_AJ0114: Implementation of input prompt and input picture shift in NNFPA SEI message
- Fixes for multilayer
- JVET-AJ0048: Update SeiProcessingOrderSeiList
- JVET-AK0075: QP threshold for object-based optimization in EOI SEI
- JVET-AK0072 items 1 and 2: nnpfc_input_pic_filering flag inference and constraint
- Fix the JVET document number reference in the macro
- Update copyright header to include the year 2025
- Check minimum required version of OpenSSL
- JVET-AK0181: Fix to remove enabling of the DMVR encoder control when GOPbasedRPR is enabled
- Add cmake option ENABLE_SEARCH_OPENSSL
- JVET-AK0194 related: add VPS to list of signed non-VCL NAL units
- JVET-AJ0170: Flag to indicate the direction of the signalled source picture intervals
CTC Performance
VTM 23.8 shows identical performance compared to VTM 23.6 in SDR CTC.
For the HDR CTCs, coding performance of VTM 23.8 and VTM 23.6 are identical. Encoding/decoding run times are very close.
All Intra Main 10 | |||||
Over VTM-23.5 | |||||
Y | U | V | EncT | DecT | |
Class A1 | 0.00% | 0.00% | 0.00% | 100% | 98% |
Class A2 | 0.00% | 0.00% | 0.00% | 100% | 98% |
Class B | 0.00% | 0.00% | 0.00% | 100% | 98% |
Class C | 0.00% | 0.00% | 0.00% | 100% | 103% |
Class E | 0.00% | 0.00% | 0.00% | 100% | 100% |
Overall | 0.00% | 0.00% | 0.00% | 100% | 99% |
Class D | 0.00% | 0.00% | 0.00% | 100% | 100% |
Class F | 0.00% | 0.00% | 0.00% | 103% | 100% |
Class TGM | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! |
Random Access Main 10 | |||||
Over VTM-23.5 | |||||
Y | U | V | EncT | DecT | |
Class A1 | 0.00% | 0.00% | 0.00% | 99% | 99% |
Class A2 | 0.00% | 0.00% | 0.00% | 99% | 100% |
Class B | 0.00% | 0.00% | 0.00% | 99% | 101% |
Class C | 0.00% | 0.00% | 0.00% | 99% | 101% |
Class E | |||||
Overall | 0.00% | 0.00% | 0.00% | 99% | 100% |
Class D | 0.00% | 0.00% | 0.00% | 99% | 102% |
Class F | 0.00% | 0.00% | 0.00% | 100% | 103% |
Class TGM | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! |
Low delay B Main 10 | |||||
Over VTM-23.5 | |||||
Y | U | V | EncT | DecT | |
Class A1 | |||||
Class A2 | |||||
Class B | 0.00% | 0.00% | 0.00% | 99% | 99% |
Class C | 0.00% | 0.00% | 0.00% | 100% | 100% |
Class E | 0.00% | 0.00% | 0.00% | 99% | 102% |
Overall | 0.00% | 0.00% | 0.00% | 99% | 100% |
Class D | 0.00% | 0.00% | 0.00% | 99% | 100% |
Class F | 0.00% | 0.00% | 0.00% | 100% | 101% |
Class TGM | #VALUE! | #VALUE! | #VALUE! | #NUM! | #NUM! |
Low delay P Main 10 | |||||
Over VTM-23.5 | |||||
Y | U | V | EncT | DecT | |
Class A1 | |||||
Class A2 | |||||
Class B | 0.00% | 0.00% | 0.00% | 100% | 100% |
Class C | 0.00% | 0.00% | 0.00% | 100% | 102% |
Class E | 0.00% | 0.00% | 0.00% | 100% | 103% |
Overall | 0.00% | 0.00% | 0.00% | 100% | 101% |
Class D | 0.00% | 0.00% | 0.00% | 100% | 100% |
Class F | 0.00% | 0.00% | 0.00% | 100% | 102% |
Class TGM | #VALUE! | #VALUE! | #VALUE! | #VALUE! | #VALUE! |
For the high bit depth CTCs, VTM 23.8 also shows no changes in coding performance compared to VTM 23.6.
With VTM 23.8 the “Random access, adaptive resolution” configuration gives slightly better compression that the “Random access” configuration:
Random access Main 10 | |||||
Over VTM 23.8 | |||||
Y | U | V | EncT | DecT | |
Class A1 | -0.97% | -1.49% | -1.48% | 98% | 87% |
Class A2 | -0.53% | 3.35% | 2.41% | 97% | 92% |
Class B | 0.04% | 0.12% | -0.16% | 101% | 96% |
Class C | 0.00% | 0.00% | 0.01% | 101% | 100% |
Class E | |||||
Overall | -0.29% | 0.41% | 0.13% | 99% | 94% |
Class D | 0.00% | 0.00% | 0.00% | 100% | 100% |
Class F | 0.01% | 0.01% | 0.00% | 102% | 100% |
Issues in VTM affecting conformance
The following issues in VTM master branch may affect conformance:
- Missing HLS features (see sections below)
Several merge requests for proposals from the 36th or 37th JVET meeting, mostly related to SEI messages in VSEI, were still pending review and/or waiting for resolution of comments and rebasing.
Status of implementation of proposals of previous JVET meetings
The following list contains all adoptions of the Q and R meetings that were not marked as merged (or submitted) or specification only change in the software coordinator tracking sheet:
- JVET-Q0112
- JVET-Q0154: Disallow mixing of GDR and IRAP (Disallow mixing of GDR with any non-GDR).
- JVET-Q0164
- JVET-Q0402
- JVET-R0178: Require that when no_aps_constraint_flag is equal to 1, sps_lmcs_enabled_flag and sps_scaling_list_enabled_flag shall be equal to 0
- JVET-R0221
- JVET-R0046: Change the description of the bitstream extraction process per the value of max_tid_il_ref_pics_plus1[ ][ ] (aspect 1.2 per JVET-R0046-v4).
- JVET-R0065: Specify that GDR AUs shall be complete – i.e., all of the layers in the CVS shall have a picture in the AU (as with IRAP AUs).
- JVET-R0191: Update the range value for num_ols_hrd_params_minus1.
- JVET-R0222 aspect 1: Infer vps_max_sublayers_minus1 to be equal to 6 when sps_video_parameter_set_id is equal to 0 (i.e. VPS is not present). The exact editorial expression is at the discretion of the editor.
- JVET-S0196 (JVET-S0144 item 17)
- JVET-S0227 (JVET-S0144 item 22)
- JVET-S0077 (JVET-S0139 item 5)
- JVET-S0174 aspect 2 (JVET-S0139 item 18.b)
- JVET-S0156 aspect 3 (JVET-S0139 item 21)
- JVET-S0139 item 26 (no source listed, text only?)
- JVET-S0188 aspect 1 (JVET-S0139 item 28)
- JVET-S0139 item 40 (item does not exist)
- JVET-S0042 (JVET-S0142 item 1.b)
- JVET-S0174 aspect 1 (JVET S0143 item 19)
- JVET-S0096 aspect 3 (JVET-S0140 item 10)
- JVET-S0096 aspect 4 (JVET-S0140 item 13)
- JVET-S0159 aspect 3 (JVET-S0140 item 16)
- JVET-S0171 (JVET-S0256)
- JVET-S0118 (JVET-S0141 item 7)
- JVET-S0102 (JVET-S0141 item 9.a)
- JVET-S0157 item 2 (JVET-S0141 item 13)
- JVET-S0157 item 4 (JVET-S0141 item 14)
- JVET-S0175 aspect 3 (JVET-S0141 item 16)
- JVET-S0175 aspect 1, 2 (JVET-S0141 item 17)
- JVET-S0175 aspects 4 and 5 (JVET-S0141 item 18)
- JVET-S0175 aspect 6 (JVET-S0141 item 19)
- JVET-S0198/ JVET-S0223 (JVET-S0141 item 24)
- JVET-S0173 aspect 2 (JVET-S0141 item 40.b)
- JVET-S0173 item 1 (JVET-S0141 item 51)
- JVET-S0173 item 3 (JVET-S0141 item 52)
- JVET-S0173 item 5 (JVET-S0141 item 53)
- JVET-S0173 item 6 (JVET-S0141 item 54)
- JVET-S0173 item 4 (JVET-S0141 item 56)
- JVET-S0176 item 4 (JVET-S0141 item 60)
- JVET-S0154 aspect 5 (JVET-S0141 item 68)
- JVET-S0154 aspect 6 (JVET-S0141 item 69)
- JVET-S0154 aspect 8 (JVET-S0141 item 71)
- JVET-S0095 aspect 5 (JVET-S0145 item 5)
- JVET-S0095 aspect 6 (JVET-S0145 item 6)
- JVET-S0100 aspect 1, depends on JVET-R0193 (JVET-S0147 item 2)
- FINB ballot comments
- Make high tier support up to 960.
SEI TuC software
Per the decision during the 32nd JVET meeting, an SEI TuC repository was created based on VTM-22.2. The repository is located at:
https://vcgit.hhi.fraunhofer.de/jvet-tuc/VVCSoftware_VTM
VTM-22.2-TuC-4.0 was tagged on Jan. 31, 2025. Changes include:
- JVET-AI0182: Bitdepth range information SEI (review pending)
- Fix typos in constituent rectangles implementation (review pending)
- JVET-AI0181: Support for Display Overlays Information (DOI) SEI (minor comments pending)
It was noted that some of the technologies for which merge requests were submitted to TuC got moved into the working draft. The merge requests were closed, when appropriate merge requests for VTM were available.
VTM-22.2-TuC-5.0 was expected to be tagged during the 38th JVET meeting. The following merge requests were submitted:
- JVET-AK0142: "AHG9: Display Rectangles SEI"
- JVET-AK0153: Photosensitive content SEI messages
- JVET-AJ0245: Multi-layer support for Constituent Rectangles SEI
- Draft: JVET_AJ0060: multilayer adaptation of Packed regions information SEI message
- JVET-AI0340: Implementation of AI-restrictions usage SEI message
HM related activities
There was no new HM version tagged during this meeting cycle.
The following MRs were merged:
- Implement phase indication SEI message (JVET-AE0101)
- Update auto-build from VTM build definition
- Update copyright headers to include 2025
- JVET-AK0107: Modality Information SEI
The following MRs were pending [with status indicated]:
- JVET-AK0194: Digitally Signed Content SEI messages (pending review)
- Add support for NNPF SEI messages (pending review/rebasing)
- JVET-AL0062: AI usage restrictions SEI message (upcoming meeting to be decided)
- JVET-AK2006: Add support for SPTI SEI message (pending review/rebasing)
- JVET-AL0061: Import encoder optimization information SEI Message form VTM (pending review/rebasing)
- Port the Y4M support [one issue remains]
- Mark the current picture as short-term ref (for SCM) [need SCC expert reviewer]
A new version of the HM was expected to be tagged during or after the 38th JVET meeting.
The HM SCC (SCM) branch (HM-16.21+SCM-8.8) has not been updated for the recent HM versions. Updating SCM to, for example, HM-18.0+SCM-8.8 should be considered. It may though be helpful to move SCC related functionality into separate source files. Volunteer work towards merging the branches would be appreciated.
As reported in the previous reports, further information on lambda optimisation in HM would be appreciated, including comparison of allocation of bits within the GOP structures between HM and VTM.
Otherwise the HEVC bug tracker lists:
- 44 tickets for “HM”, (most of which were created before 2019; 1 created in last year),
- 1 ticket for “HM RExt” (created in 2020),
- 9 tickets for “HM SCC” (most of which were created before 2018),
- 1 ticket for “RExt Text” (created in 2015),
- 1 ticket for “SCC Text” (created in 2016),
- 8 tickets for text (6 created before 2021; 2 created in the last year),
- 2 tickets for encoder description (created in 2020 and 2014)
Help to address these tickets would be appreciated.
360Lib related activities
The latest 360Lib software can be found at https://vcgit.hhi.fraunhofer.de/jvet/360lib/-/tags/360Lib-13.6
The following table is for the projection formats comparison using VTM-23.0 according to 360-degree video CTC (JVET-U2012) compared to that using VTM-22.0 (VTM-22.0 as anchor).
End-to-end WS-PSNR | End-to-end S-PSNR-NN | |||||
Y | U | V | Y | U | V | |
Class S1 | 0.00% | -0.01% | 0.05% | 0.00% | 0.00% | 0.05% |
Class S2 | 0.08% | 0.16% | 0.34% | 0.08% | 0.15% | 0.34% |
Overall | 0.03% | 0.06% | 0.17% | 0.03% | 0.06% | 0.16% |
The following table compares generalized cubemap (GCMP) coding and padded equi-rectangular projection (PERP) coding using VTM-23.0 (PERP as anchor).
End-to-end WS-PSNR | End-to-end S-PSNR-NN | |||||
Y | U | V | Y | U | V | |
Class S1 | -11.52% | -5.47% | -6.09% | -11.50% | -5.41% | -6.03% |
Class S2 | -3.65% | 0.98% | 1.48% | -3.62% | 1.08% | 1.56% |
Overall | -8.37% | -2.89% | -3.06% | -8.35% | -2.82% | -3.00% |
The following tables are for PERP and GCMP coding comparison between VTM-23.0 and HM-16.22 (HM as anchor), respectively.
End-to-end WS-PSNR | End-to-end S-PSNR-NN | |||||
Y | U | V | Y | U | V | |
Class S1 | -30.91% | -38.82% | -41.24% | -30.91% | -38.88% | -41.24% |
Class S2 | -36.84% | -37.23% | -39.43% | -36.82% | -37.27% | -39.49% |
Overall | -33.28% | -38.19% | -40.51% | -33.28% | -38.23% | -40.54% |
End-to-end WS-PSNR | End-to-end S-PSNR-NN | |||||
Y | U | V | Y | U | V | |
Class S1 | -34.64% | -40.04% | -42.14% | -34.59% | -40.02% | -42.09% |
Class S2 | -38.34% | -38.18% | -40.06% | -38.32% | -38.19% | -40.11% |
Overall | -36.12% | -39.30% | -41.31% | -36.08% | -39.29% | -41.30% |
- SCM related activities
There had not been any further developments to SCC’s SCM during this meeting cycle.
- SHM related activities
There had not been any further developments to SHVC’s SHM during this meeting cycle.
- HTM related activities
There had not been any releases of HTM of MV-HEVC and 3D-HEVC.
One merge request is was merged:
- JVET-AE0295: MV Main 10 profile support (waiting for proponent response)
The next release will also include the following changes:
- JVET-Z0209: Early termination during calculating RDcost of depth
- HDRTools related activities
There had not been any further developments to HDRTools during this meeting cycle.
- JM, JSVM, JMVM related activities
There had not been any further developments to JSVM or JMVM during this meeting cycle.
There was no new JM version tagged during this meeting cycle, although merge requests were submitted for SEI messages in VSEI.
The following MRs are pending [with status indicated]:
- JVET-AK0107: Modality Information SEI (pending review)
- JVET-AK2006: NNPFC and NNPFA SEI message (pending review)
- JVET-AL0062: AI usage restrictions SEI message (upcoming meeting to be decided)
- JVET-AK2006: SPTI SEI Message (pending review)
- JVET-AL0061: Encoder Optimization Information SEI Message (pending review)
- JVET-AE0101: implement phase indication SEI message (pending review)
For the previous release of JM only basic testing was performed to confirm that the code still works, but performance testing is pending. Performance changes are unlikely but may occur due to bug fixes. A possible encoder/decoder mismatch was reported privately, but needs more investigation.
- Bug tracking
The bug tracker for VTM and specification text is located at:
https://jvet.hhi.fraunhofer.de/trac/vvc
The bug tracker uses the same accounts as the HM software bug tracker. Users may need to log in again due to the different sub-domain.
https://hevc.hhi.fraunhofer.de/trac/hevc
New account creation was disabled due to a large amount of spam registration. Extensive maintenance of the Trac bug tracker would be required to keep it secure. It should be considered to move bug tracking to GitLab, although no automatic conversion of existing bugs is available.
Bug tracking for HDRTools is located at:
https://gitlab.com/standards/HDRTools/-/issues
Please file all issues related to the VVC reference software and HDRTools into the appropriate bug tracker. Try to provide all the details, which are necessary to reproduce the issue. Patches for solving issues and improving the software are always appreciated.
- CTC alignment and merging
There were currently 8 JVET CTC documents:
- JVET-AK2010 VTM/HM 4:2:0 test conditions
- JVET-Z2011 VTM/HM HDR test conditions
- JVET-AA2018 VTM/HM high bit depth test conditions (without spreadsheet)
- JVET-T2013 VTM non-4:2:0 test conditions
- JVET-AA1100 HM non-4:2:0 test conditions
- JVET-U2012 VTM 360 video test conditions
- JVET-AC1009 SHVC test conditions
- JVET-AC1015 SCM test conditions
- JVET-AE1013 3DV test conditions
Further merging of HM RExt CTC into the appropriate VVC CTC was investigated (non 4:2:0 chroma formats), but proper comparable HM configuration files were not yet available by the beginning of this meeting.
The HM HDR test conditions require additional post-processing stages, due to WPSNR, deltaE100 and PSNRL100 values not being generated directly by the HM encoder. Merging of respective functions from VTM is recommended to streamline the process.
- Guidelines for reference software development
Current versions of the software guidelines are:
- JVET-AC1001 Guidelines for HM-based software development [K. Sühring, F. Bossen, X. Li (software coordinators)]
- JVET-AJ2003 Guidelines for VTM-based software development [F. Bossen, X. Li, K. Sühring]
Recommendations
The AHG recommended to:
- Continue to develop reference software.
- Improve documentation, especially the software manual.
- Encourage people to test VTM and other reference software more extensively outside of common test conditions.
- Encourage people to report all (potential) bugs that they are finding.
- Encourage people to submit bitstreams/test cases that trigger bugs in VTM and other reference software.
- Encourage people to submit non-normative changes that either reduce encoder run time without significantly sacrificing compression performance or improve compression performance without significantly increasing encoder run time.
- Design and add configuration files to the VTM software for testing of HLS features.
- Review VTM-related contributions and determine whether features should be added (or removed) from the software.
- Continue to investigate the merging of branches.
- Continue to investigate merging of CTC documents.
- Verify correctness of CTC documents and issue updates as appropriate
- Keep common test conditions aligned for the different standards.
Significant work on implementing SEI messages in VTM. Some which were moved from TuC to v4 were still in the TuC branch of the software.
Also merge requests submitted implementing new SEI messages in HM and JM, no new versions released yet. For implementation on multiview profiles in HM, see further notes under AHG5.
It was further suggested to move the bug tracking to gitlab for better stability, and keep the old system for archiving.