JVET-AD0003 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)]
Software model current versions
The software model versions prior to the start of the meeting were:
- VTM 20.0 (Apr. 2023)
- HM-17.0 (Jan. 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.23 (October 2021)
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.
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 versions 19.1 and 19.2 were tagged on Jan. 18, and VTM version 20.0 was tagged on Apr. 4. VTM 20.1 is expected during the 30th JVET meeting.
VTM 19.1 was tagged on Jan. 18, 2023. Changes include:
- Remove unused functions
- Use constant for subblock size in deblocking filter
- Fix variable names
- Define constant for VDPU size and fix function name
- Clean up intra and CIIP code
- Fix variable names
- Fixes in SubpicMergeApp for NumSubPics and SubPicId setters
- Use strong-typed enum for MtsType
- Clean deblocking filter code
- SubPicMergeApp: remove duplicate ceilLog2 function
- Clean up DMVR code
- Fix compilation when disabling REUSE_CU_RESULTS
- Use named constants
- Use named variable for unset cost
- Clean up reading/parsing of number of active refs
- JVET-T0056: SEI manifest and SEI prefix indication
- Define named reference index for IBC
- Clean up ISP and use strong typed enum
- Use strong typed enum for SEI payload type
- Rename dynamic_cache to Pool
- JVET-AB0069 change the length of the po_sei_processing_order[i] syntax element
- JVET-AB0135 and BC#017 Add nnpfc_total_kilobyte_size and replace nnpfc_complexity_idc with a flag
- Rename LFCUParam data structure
- M60678: ballot comments of FI_03
- Clean up MMVD related code
- Define RefSetArray template to define arrays indexed by listIdx and refIdx
- Move new macros into section where they are indicated to be removed in next cycle
- Fix compilation when JVET_R0351_HIGH_BIT_DEPTH_ENABLED is enabled
- Use python3 as interpreter for cmake/CMakeBuild/bin/cmake.py
- Use single variable to control ENABLE_TRACING
- JVET-AB0058: signal frame upsampling in neural network post-filter characteristics
- Fix a gcc12 compiling warning/error
- Add option to enable RExt__HIGH_BIT_DEPTH_SUPPORT from command line
- Fix variable names
- Clean up hash related functions
- Remove Ubuntu 18.04 from auto-build pipeline
- Use ptrdiff_t for strides
- Use strong enum type for AffineModel
- Clean buffer usage in merge RD checking functions
- Clean up BCW and AMVR related code
- Clean up merge context data structure
- Use strong typed enum for MESearchMethod
- Remove unused field
- Use strong typed ChannelType
- Use strong typed enum for MergeType
- Fix gcc 12 compiling errors
- Replace m_subPuMC by a local variable
- Clean up MV precision handling functions and use strong-typed enum
- Define MergeIdxPair type to hold pair of merge indices
- Clean up inter merge related functions
- Clean up width/height in InterPrediction::xPredInterBlk
- Remove m_iRefListIdx field from InterPrediction class
- Use strong typed enum for APS type
- Remove unused variable
- Use proper data type for RPR scaling
- Fix variable names and use named constants
- Use strong-type enum for DFunc
- Change copyright year to 2023
- Remove unused field
- Fix parameter type in function definition: use ptrdiff_t instead of uint32_t
- JVET-AB0051: Modification of SEI processing order SEI message
- Clean up MVD encoding
- Group partition contexts for faster copy
- Define enum for MIP size and use Pel elements for buffers
- Improve adherence to coding guidelines in EncGOP.cpp
- JVET-AB0049: Modifications of NNPFC and NNPFA
- Improve adherence to coding guidelines
- JVET-AB0050: Add two flags for NNPFA
- Remove mvRefine field from InterPredictionData
- Fix macOS build with trace file enabled
- Use Size type instead of array of two values
- Remove g_tbMax and use floorLog2 instead
- Move sei_processing_order.cfg into sei_vui subdirectory
- Remove duplicate function and fix data types
- Add Ubuntu 22.04 auto-build
- JVET-AB0070: post-filter hint SEI
- Remove macros for HLS syntax element read/write
- Fix #1586 and #1584: invalid syntax and cfg params for NNPFC SEI message
- Clean up definition and use of g_GeoParams
- Fix xParsePrefixSEIsForUnknownVCLNal
- Clean up handling of PTLs in VPS
- Fix xCheckScalableNestingConstraints()
- Fix getInterLayerRefIdc with wrong parameter
- Fix #1587: Set NumPTLsInVPS to 2 to avoid encoder crash
- Fix compilation when green SEI metadata is enabled
- Fix compilation: remove unused variable
- Fix use of a not initialized value when decoding
VTM 19.2 was tagged on Jan. 18, 2023. Changes include:
- Remove macros from previous cycle
VTM 20.0 was tagged Apr. 4, 2023. Changes include:
- JVET-AC0166: Set C++ version to C++17
- JVET-AC0139: Unified merge function and updated cfg settings
- JVET-AC0096: RPR functionality testing
- JVET-AC0154: NNPF SEI IuC item 13, 31, and 34
- JVET-AC0127: NNPF SEI IuC item 11, 20, 28, 30, 32
- JVET-AC0058 indicates the SEI processing order of T35 SEI messages with
- JVET-AC0061: Define new syntax elements to specify input and output integer...
- JVET-AC0062: Update constraint checks for nnpfc_num_input_pics_minus1 and...
- JVET-AC0344: Signal 2 new syntax elements,...
- JVET-AC0074: adopted constraints for NNPF frame rate upsampling
- JVET-AC0353: Implementation of nnpfc_base_Flag
- Move GDR status out of PicHeader structure into Picture
- Adapt code to new SW guidelines
- Fix and enable SIMD SSE functions
- Use strong-typed enum for deblocking's EdgeDir
- Minor cleanup for Slice.h
- Use standardized memory alignment features
- Minor style improvements in AnnexBread
- Avoid use of std::iterator which is deprecated in C++17
- Clean up RPL-related code
- Clean up adaptive QP code
- Fix of the RelCU speed-up of ISP
- Remove use of 'using namespace std'
- Split ConstraintInfo class out of Slice.h/cpp
- Update .clang-format file
- Adjust size of be a multiple of alignment when using std::aligned_alloc
- StreamMergeApp: fix VPS allocation issue
- Rename m_tmpStorageLCU to m_tmpStorageCtu
- Define AlfMode element that captures enable flag and filter index
- Fix compilation when JVET_O0756_CALCULATE_HDRMETRICS is enabled
- Add GCC 12 to build configuration
- Include additional build with high bit depth enabled
- Move parameter sets out of Slice.h/cpp
- Ignore CLion files
- Rename "LevelTier" to "TierLevel"
- Move MergeCtx and related classes from ContextModelling to InterPrediction
- add options --SourceScalingRatio to rescale source video
- Fix parsing of unknown SEI message type.
- Clean up GDR condition checks
- Fix assert() statement
- Minor cleanup for affine block checking
- add option --PrintRefLayerMetrics to compute and display PSNR between current layer and reference layer
- Fix compiling issues with clang-14
- Fix memory leak in MergeItemList
- Store latest EDRAP POC in DecLib and set it to Slice
- Fix: Use size of reference picture instead of using picture size from PPS...
- Fix rpl_idx parsing when numRplsInSps == 1 && rplSpsFlag == 1
- Use strong-typed enum for chroma format
- Fix rpl use in checkSubpicTypeConstraints function
- Fix for sequential coding of PPS for RPR
- Clean up BCW target block computation for bipred
- Align variable name to JVET-AC2032 text
- Fix issue with m_olsHrdParams
- Fix PicHeader::m_maxNumAffineMergeCand value when Affine is OFF and RDO for merge if no affine and no sbTMVP for picture
- Fix: Related to HashME and sequential coding
- Fix to conformance window usage for RPR
- Fix multilayer with fields
- Update software documentation for several SEINNPostFilterCharacteristics parameters.
- Fix formatting of Neural network post-filter characteristics SEI parameter table
- Add CI build for PDF manual
- Update version number in SW manual
VTM 20.1 was expected to be tagged during the 30th JVET meeting. Changes included so far:
- Add command line option to print per-frame encoding time in float format
- Fix parsing of multiple SEI payloads in one NAL unit
- Fix parsing of MAI SEI message
- Fix parsing of SDI SEI message
- Fix m_maxChromaFormatConstraintIdc derivation
- Fix subpictures compliance check on monochrome streams after !2541
- Fix build when GDR_ENABLED is 0
- Undefine macro from HDRTools
CTC Performance
The following tables show VTM 20.0 performance over HM 17.0.
|
| All Intra Main 10 |
|
| |
|
| Over HM-17.0 |
|
| |
Y | U | V | EncT | DecT | |
Class A1 | -29.50% | -32.81% | -33.83% | 1273% | 166% |
Class A2 | -29.73% | -24.39% | -21.58% | 2142% | 174% |
Class B | -22.32% | -27.21% | -30.98% | 2397% | 175% |
Class C | -22.89% | -19.53% | -23.19% | 3348% | 179% |
Class E | -26.04% | -25.90% | -24.15% | 1869% | 158% |
Overall | -25.50% | -25.75% | -27.02% | 2187% | 171% |
Class D | -18.80% | -13.85% | -13.68% | 4270% | 189% |
Class F | -39.49% | -40.23% | -42.90% | 4220% | 171% |
|
| Random access Main 10 |
|
| |
|
| Over HM-17.0 |
|
| |
Y | U | V | EncT | DecT | |
Class A1 | -40.60% | -40.71% | -47.16% | 586% | 158% |
Class A2 | -44.02% | -41.73% | -40.78% | 679% | 170% |
Class B | -37.41% | -50.12% | -48.51% | 672% | 161% |
Class C | -33.86% | -36.28% | -38.21% | 923% | 164% |
Class E |
|
|
|
| |
Overall | -38.42% | -42.87% | -43.95% | 713% | 163% |
Class D | -31.72% | -32.60% | -31.95% | 970% | 161% |
Class F | -46.07% | -49.76% | -50.65% | 490% | 145% |
|
| Low delay B Main 10 |
|
| |
|
| Over HM-17.0 |
|
| |
Y | U | V | EncT | DecT | |
Class A1 |
|
|
|
|
|
Class A2 |
|
|
|
| |
Class B | -30.40% | -37.43% | -35.12% | 629% | 152% |
Class C | -28.18% | -21.23% | -21.06% | 817% | 167% |
Class E | -31.16% | -35.72% | -28.79% | 309% | 140% |
Overall | -29.85% | -31.60% | -28.85% | 575% | 154% |
Class D | -26.75% | -16.50% | -14.88% | 881% | 179% |
Class F | -42.17% | -44.02% | -44.14% | 435% | 137% |
|
| Low delay P Main 10 |
|
| |
|
| Over HM-17.0 |
|
| |
Y | U | V | EncT | DecT | |
Class A1 |
|
|
|
|
|
Class A2 |
|
|
|
| |
Class B | -34.52% | -38.34% | -36.12% | 526% | 160% |
Class C | -28.07% | -17.73% | -18.09% | 670% | 176% |
Class E | -33.06% | -37.89% | -31.10% | 280% | 146% |
Overall | -32.01% | -31.36% | -28.85% | 487% | 161% |
Class D | -26.68% | -12.73% | -11.47% | 762% | 175% |
Class F | -40.13% | -41.24% | -41.72% | 437% | 145% |
According to common test conditions in random access configuration HM is using a GOP size of 16 pictures compared to VTM using a GOP of 32 pictures. Random access points are inserted approximately every second aligned with a GOP boundary of GOP 32 in both VTM and HM. VTM uses two more reference pictures in random access than HM (due to more memory being availably in typical level settings).
The following tables show VTM 20.0 performance compared to VTM 19.0 using SDR CTC:
|
| All Intra Main 10 |
|
| |
|
| Over VTM-19.0 |
|
| |
Y | U | V | EncT | DecT | |
Class A1 | 0.00% | 0.06% | -0.03% | 99% | 101% |
Class A2 | 0.00% | 0.03% | 0.00% | 99% | 101% |
Class B | 0.00% | 0.01% | 0.02% | 99% | 99% |
Class C | 0.00% | 0.02% | 0.04% | 100% | 97% |
Class E | 0.00% | -0.01% | 0.23% | 99% | 99% |
Overall | 0.00% | 0.02% | 0.05% | 99% | 99% |
Class D | -0.01% | -0.05% | 0.20% | 100% | 98% |
Class F | -0.02% | -0.09% | -0.02% | 101% | 99% |
|
| Random access Main 10 |
|
| |
|
| Over VTM-19.0 |
|
| |
Y | U | V | EncT | DecT | |
Class A1 | -0.01% | 0.06% | -0.07% | 96% | 100% |
Class A2 | -0.03% | -0.03% | 0.01% | 95% | 100% |
Class B | 0.05% | 0.05% | 0.01% | 96% | 98% |
Class C | 0.05% | 0.02% | 0.11% | 95% | 96% |
Class E |
|
|
|
| |
Overall | 0.02% | 0.03% | 0.02% | 96% | 98% |
Class D | 0.01% | 0.14% | 0.09% | 96% | 94% |
Class F | 0.01% | 0.09% | 0.10% | 96% | 97% |
|
| Low delay B Main 10 |
|
| |
|
| Over VTM-19.0 |
|
| |
Y | U | V | EncT | DecT | |
Class A1 |
|
|
|
|
|
Class A2 |
|
|
|
| |
Class B | 0.05% | -0.05% | -0.45% | 98% | 97% |
Class C | 0.03% | 0.04% | 0.00% | 98% | 93% |
Class E | -0.08% | -0.27% | 0.81% | 99% | 96% |
Overall | 0.01% | -0.07% | 0.01% | 98% | 95% |
Class D | 0.07% | -0.40% | 0.87% | 99% | 93% |
Class F | 0.13% | 0.05% | 0.03% | 98% | 94% |
|
| Low delay P Main 10 |
|
| |
|
| Over VTM-19.0 |
|
| |
Y | U | V | EncT | DecT | |
Class A1 |
|
|
|
|
|
Class A2 |
|
|
|
| |
Class B | 0.03% | -0.06% | 0.01% | 91% | 97% |
Class C | 0.12% | -0.10% | 0.20% | 91% | 97% |
Class E | -0.09% | 0.45% | 0.24% | 92% | 95% |
Overall | 0.03% | 0.06% | 0.13% | 91% | 96% |
Class D | 0.02% | 0.06% | 0.24% | 93% | 91% |
Class F | 0.09% | 0.45% | 0.02% | 93% | 94% |
The following tables show VTM 20.0 performance over HM 17.0 using HDR CTC:
Random Access | ||||||||||
Over HM17.0 | ||||||||||
| wPSNR |
| PSNR |
|
| |||||
DE100 | PSNR-L100 | Y | U | V | Y | U | V | EncT | DecT | |
Class H1 | -39.54% | -37.56% | -36.67% | -54.98% | -48.45% | -33.68% | -49.48% | -40.84% | 286% | 97% |
Class H2 |
|
|
|
|
| -31.97% | -57.69% | -63.36% | 271% | 97% |
Overall | -39.54% | -37.56% | -36.67% | -54.98% | -48.45% | -33.06% | -52.47% | -49.03% | 280% | 97% |
All Intra | ||||||||||
Over HM17.0 | ||||||||||
| wPSNR | PSNR |
| |||||||
DE100 | PSNR-L100 | Y | U | V | Y | U | V | EncT | DecT | |
Class H1 | -41.45% | -27.31% | -26.79% | -57.74% | -52.79% | -24.00% | -52.93% | -45.13% | 1538% | 113% |
Class H2 |
|
|
|
|
| -21.76% | -47.21% | -50.57% | 1320% | 109% |
Overall | -41.45% | -27.31% | -26.79% | -57.74% | -52.79% | -23.18% | -50.85% | -47.11% | 1455% | 112% |
The following tables show VTM 20.0 performance compared to VTM 19.0 using HDR CTC:
Random Access | ||||||||||
Over VTM19.0 | ||||||||||
| wPSNR |
| PSNR |
|
| |||||
DE100 | PSNR-L100 | Y | U | V | Y | U | V | EncT | DecT | |
Class H1 | 0.00% | 0.04% | 0.00% | -0.05% | 0.00% | -0.01% | -0.05% | 0.00% | 95% | 95% |
Class H2 |
|
|
|
|
| 0.07% | 0.08% | -0.06% | 95% | 97% |
Overall | 0.00% | 0.04% | 0.00% | -0.05% | 0.00% | 0.02% | -0.01% | -0.02% | 95% | 96% |
All Intra | ||||||||||
Over VTM19.0 | ||||||||||
| wPSNR | PSNR |
| |||||||
DE100 | PSNR-L100 | Y | U | V | Y | U | V | EncT | DecT | |
Class H1 | -0.04% | 0.00% | 0.01% | 0.00% | 0.00% | 0.00% | 0.04% | -0.04% | 98% | 96% |
Class H2 |
|
|
|
|
| 0.00% | -0.01% | -0.01% | 98% | 99% |
Overall | -0.04% | 0.00% | 0.01% | 0.00% | 0.00% | 0.00% | 0.02% | -0.03% | 98% | 97% |
The following tables show VTM 20.0 performance compared to VTM 19.0 using high bit depth CTCs at ‘low’ QP ranges. The simulations for VTM20.0 included two additional merge requests (2566 and 2567) to fix chroma format errors and a compilation error regarding HDR tools integration.
HDR PQ |
|
| AI |
|
|
|
|
|
|
|
| Over VTM19.0 |
|
|
|
|
|
| wPsnrY | wPsnrU | wPsnrV | psnrY | psnrU | psnrV | EncT | DecT |
PQ444 | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 99% | 98% |
PQ422 | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 98% | 98% |
Overall | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 0.00% | 99% | 98% |
|
|
| LDB |
|
|
|
|
|
|
|
| Over VTM19.0 |
|
|
|
|
|
| wPsnrY | wPsnrU | wPsnrV | psnrY | psnrU | psnrV | EncT | DecT |
PQ444 | 0.07% | 0.13% | 0.06% | 0.07% | 0.13% | 0.06% | 97% | 100% |
PQ422 | 0.03% | 0.01% | 0.06% | 0.03% | 0.01% | 0.05% | 96% | 101% |
Overall | 0.05% | 0.07% | 0.06% | 0.05% | 0.07% | 0.06% | 96% | 100% |
|
|
| RA |
|
|
|
|
|
|
|
| Over VTM19.0 |
|
|
|
|
|
| wPsnrY | wPsnrU | wPsnrV | psnrY | psnrU | psnrV | EncT | DecT |
PQ444 | 0.03% | 0.03% | 0.02% | 0.03% | 0.03% | 0.02% | 97% | 100% |
PQ422 | 0.00% | -0.02% | 0.02% | 0.00% | -0.01% | 0.01% | 96% | 99% |
Overall | 0.01% | 0.01% | 0.02% | 0.01% | 0.01% | 0.02% | 96% | 100% |
Overall PQ | 0.02% | 0.03% | 0.03% | 0.02% | 0.03% | 0.02% | 97% | 99% |
HDR HLG |
|
| AI |
|
|
|
|
| Over VTM19.0 |
|
|
| psnrY | psnrU | psnrV | EncT | DecT |
HLG444 | 0.00% | 0.00% | 0.00% | 99% | 99% |
HLG422 | 0.00% | 0.00% | 0.00% | 98% | 98% |
Overall | 0.00% | 0.00% | 0.00% | 99% | 98% |
|
|
| LDB |
|
|
|
|
| Over VTM19.0 |
|
|
| psnrY | psnrU | psnrV | EncT | DecT |
HLG444 | -0.01% | 0.00% | 0.00% | 98% | 101% |
HLG422 | 0.00% | 0.00% | 0.00% | 98% | 99% |
Overall | -0.01% | 0.00% | 0.00% | 98% | 100% |
|
|
| RA |
|
|
|
|
| Over VTM19.0 |
|
|
| psnrY | psnrU | psnrV | EncT | DecT |
HLG444 | 0.00% | -0.01% | 0.00% | 98% | 97% |
HLG422 | 0.00% | 0.01% | -0.01% | 99% | 98% |
Overall | 0.00% | 0.00% | 0.00% | 98% | 98% |
Overall HLG | 0.00% | 0.00% | 0.00% | 98% | 99% |
SVT RGB |
|
| AI |
|
|
|
|
| Over VTM19.0 |
|
|
| psnrG | psnrB | psnrR | EncT | DecT |
SVT16 | 0.00% | 0.00% | 0.00% | 100% | 101% |
SVT12 | 0.00% | 0.00% | 0.00% | 100% | 100% |
Overall | 0.00% | 0.00% | 0.00% | 100% | 100% |
|
|
| LDB |
|
|
|
|
| Over VTM19.0 |
|
|
| psnrG | psnrB | psnrR | EncT | DecT |
SVT16 | 0.00% | 0.00% | 0.00% | 100% | 102% |
SVT12 | 0.00% | 0.00% | 0.00% | 99% | 100% |
Overall | 0.00% | 0.00% | 0.00% | 99% | 101% |
|
|
| RA |
|
|
|
|
| Over VTM19.0 |
|
|
| psnrG | psnrB | psnrR | EncT | DecT |
SVT16 | 0.00% | 0.00% | 0.00% | 100% | 102% |
SVT12 | 0.00% | 0.00% | 0.00% | 99% | 101% |
Overall | 0.00% | 0.00% | 0.00% | 100% | 102% |
Overall RGB | 0.00% | 0.00% | 0.00% | 100% | 101% |
The following tables show VTM 20.0 performance compared to VTM 19.0 using high bit depth CTCs at ‘standard’ QP ranges. The simulations for VTM20.0 included the two aforementioned merge requests (2566, 2567).
| Random Access | ||||
| Over VTM19.0 | ||||
| PSNR |
| |||
| Y | U | V | EncT | DecT |
Class H1 | 0.00% | 0.04% | -0.17% | 96% | 100% |
Class H2 | -0.02% | -0.12% | -0.16% | 97% | 101% |
Overall | -0.01% | -0.04% | -0.16% | 97% | 100% |
| All Intra | ||||
| Over VTM19.0 | ||||
| PSNR |
| |||
| Y | U | V | EncT | DecT |
Class H1 | 0.01% | -0.09% | -0.02% | 100% | 100% |
Class H2 | 0.01% | -0.03% | 0.01% | 101% | 101% |
Overall | 0.01% | -0.06% | -0.01% | 100% | 101% |
Full results are attached to this AHG report as Excel files.
Issues in VTM affecting conformance
The following issues in VTM master branch may affect conformance:
- Missing HLS features (see sections below)
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 pictures per second.
HM related activities
HM 18.0 was tagged on Apr. 20, 2023. Changes include:
- Update to Ubuntu 22.04 build server
- Update the HDR configuration files to align with the HDR CTC document (JVET-AC2011)
- Update to FilmGrainCharacteristics SEI support, including applying film grain noise onto the decoded output.
The performance of HM 18.0 is identical to HM 17.0 under SDR CTCs. Initial results also indicate that the performance is identical to HM 17.0 under HDR, RExt non-4:2:0 and RExt high bit depth CTCs.
The following MRs were pending [with status indicated]:
- Port the Y4M support [one issue remained]
- Mark the current picture as short-term ref (for SCM) [need SCC expert reviewer]
The HM SCC (SCM) branch (HM-16.21+SCM-8.8) had 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 optimization in HM would be appreciated, including comparison of allocation of bits within the GOP structures between HM and VTM.
The HEVC bug tracker lists:
- 43 tickets for “HM”, most of which are more than 5 years,
- 1 ticket for “HM RExt”,
- 9 tickets for “HM SCC”, most of which are at least 3 years old,
Help to address these tickets would be appreciated.
One merge request (MR#40) is available related to HM SCC for ticket #1511 on SCC reference picture marking. Help would be appreciated to confirm that the proposed change matches the SCC text.
360Lib related activities
The latest 360Lib software can be found at https://vcgit.hhi.fraunhofer.de/jvet/360lib
The following table is for the projection formats comparison using VTM-20.0 according to 360-degree video CTC (JVET-U2012) compared to that using VTM-19.0 (VTM-19.0 as anchor).
PERP: VTM-20.0 over VTM-19.0 | ||||||
End-to-end WS-PSNR | End-to-end S-PSNR-NN | |||||
Y | U | V | Y | U | V | |
Class S1 | -0.01% | -0.02% | 0.02% | 0.00% | -0.02% | 0.02% |
Class S2 | -0.02% | 0.07% | 0.06% | -0.02% | 0.07% | 0.06% |
Overall | -0.01% | 0.02% | 0.04% | -0.01% | 0.02% | 0.04% |
The following table compares generalized cubemap (GCMP) coding and padded equi-rectangular projection (PERP) coding using VTM-20.0 (PERP as anchor).
GCMP Over PERP | ||||||
End-to-end WS-PSNR | End-to-end S-PSNR-NN | |||||
Y | U | V | Y | U | V | |
Class S1 | -11.50% | -5.44% | -6.08% | -11.49% | -5.37% | -6.02% |
Class S2 | -3.69% | 0.81% | 1.28% | -3.67% | 0.90% | 1.37% |
Overall | -8.38% | -2.94% | -3.13% | -8.36% | -2.86% | -3.07% |
The following tables are for PERP and GCMP coding comparison between VTM-20.0 and HM-16.22 (HM as anchor), respectively.
VTM-20.0 PERP Over HM-16.22 PERP (anchor) | ||||||
End-to-end WS-PSNR | End-to-end S-PSNR-NN | |||||
Y | U | V | Y | U | V | |
Class S1 | -30.91% | -38.82% | -41.28% | -30.91% | -38.88% | -41.28% |
Class S2 | -36.89% | -37.33% | -39.65% | -36.88% | -37.36% | -39.71% |
Overall | -33.30% | -38.23% | -40.63% | -33.29% | -38.27% | -40.65% |
VTM-20.0 GCMP Over HM-16.22 PCMP (anchor) | ||||||
End-to-end WS-PSNR | End-to-end S-PSNR-NN | |||||
Y | U | V | Y | U | V | |
Class S1 | -35.60% | -40.82% | -42.80% | -35.56% | -40.75% | -42.75% |
Class S2 | -39.84% | -39.52% | -41.44% | -39.85% | -39.52% | -41.48% |
Overall | -37.29% | -40.30% | -42.25% | -37.27% | -40.26% | -42.24% |
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.
The next release will include the following changes:
- JVET-Z0209: Early termination during calculating RDcost of depth
HDRTools related activities
There had not been any updates of HDRTools.
New development was being added under the branch named 0.24-dev.
JM, JSVM, JMVM related activities
A new version of JM was tagged on April 20, 2023. Changes include:
- Change build system to cmake
- fix build of rtpdump and rtploss on linux
- add config file for automatic building
- remove VS2015 from build spec
- Compile fixes for newer compilers
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.
There had not been any updates to the JSVM and JMVM software.
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. For spam fighting reasons account registration is only possible at the HM software bug tracker at:
https://hevc.hhi.fraunhofer.de/trac/hevc
Bug tracking for HDRTools is located at:
https://gitlab.com/standards/HDRTools/-/issues
Contributors were requested to 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.
Software repositories
Git repositories that were previously assigned to the JCT-VC group on the GitLab server were re-assigned to the JVET group. The old URLs are still working and will forward the user to the new location, with the display of a warning suggesting to update bookmarks to the new location. The SVN repository for 360Lib was converted to git and development was moved to the GitLab server. Historical branches can still be accessed in the SVN repository.
CTC alignment and merging
There were currently 8 JVET CTC documents:
- JVET-Y2010 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
Older CTC documents are:
- JCT3V-G1100 3DV test conditions
JVET-AC1013 was a planned output document for updating JCT3V-G1100, which was not produced. JVET-AD0201 was submitted with a description of the problems that were found during editing.
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
Guidelines for VVC and HEVC reference software development have been released as output document JVET-AC2003 and JVET-AC1001.
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 bit-streams/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.
- Consider documents (including late documents) related to AHG3 activities.