Back to Search Document details
18th Meeting: Teleconference, April 2020 2020-04-03 17:27
AHG9/AHG12: Signalling cleanup on PPS
Abstract
This contribution proposes following cleanups for PPS:
JVET-R0157 AHG9/AHG12: Signalling cleanup on PPS [B. Wang, S. Esenlik, A. M. Kotra, H. Gao, E. Alshina (Huawei)]

Item 2 of this contribution belongs to this category.

Discussed in AHG Session 1.6 Tuesday 7 April at 1520 UTC (chaired by GJS & YKW).

It is proposed to skip signalling of tile width and height when the picture width or height is less than or equal to the CTU size. It was noted that a similar provision is applied for subpicture signalling and in the SPS syntax. This would save two bits in each relevant dimension.

It was remarked that something this is also proposed in the 2nd aspect of proposal JVET-R0239, with a somewhat simpler editorial expression.

One participant said this seemed like an unnecessary complication for a corner case. In the subpicture case the syntax element is a u(v) rather than ue(v), and it was a somewhat different circumstance.

However, another participant said it was strange to send something and have semantics saying it shall be in the range of 0 to 0.

Software had been provided and the proponent said they had tested it.

No action was recommended on this since the issue is for a very minor corner case.

An editorial bug fix is also proposed for when num_exp_tile_columns_minus1 is equal to 0; however this aspect was no longer relevant due to an action taken on JVET-R0062.

JVET-R0157 AHG9/AHG12: Signalling cleanup on PPS [B. Wang, S. Esenlik, A. M. Kotra, H. Gao, E. Alshina (Huawei)]

Item 1 of this contribution belongs to this category.

Discussed in AHG Session 1.10 Wednesday 8 April (chaired by GJS & YKW).

Item 1 proposes the following cleanups for the PPS, when considering mixed NAL unit types: When mixed_nalu_types_in_pic_flag is equal to 1, no_pic_partition_flag is proposed not to be signalled but inferred to be equal to 0 and rect_slice_flag is proposed not to be signalled but inferred to be equal to 1.

The motivation was said to be primarily to ensure that an invalid combination is not indicated in the PPS.

There was discussion of the desired relative order of mixed_nalu_types_in_pic_flag and no_pic_partition_flag.

It was commented that mixed_nalu_types_in_pic_flag does not affect the decoding process, and this would make the syntax depend on it. It was also commented that no_pic_partition_flag is an important property and it would be undesirable to omit it even when this is hypothetically possible. It was commented that it would be common in a BEAM application to not need to change any aspect of the PPS other than to flip that flag, so semantic constraints were suggested to be sufficient, so no action was recommended on this.

Editor action item: The editor was asked to check and make sure that the constraints (which we believe are already expressed in some form) are sufficiently clear to the reader.

References:
JVET-Q2001
PATENTS:
CN113924781A 0.34 2022-01-11 EP4011063B1 0.32 2024-11-27 CA3173179A1 0.30 2021-09-30 US20250240455A1 0.29 2025-07-24 KR102662036B1 0.28 2024-05-03 CA3166530A1 0.28 2021-07-08 JP7442913B2 0.27 2024-03-05 US12480940B2 0.25 2025-11-25
AdaptiveLoopFilter.cpp AdaptiveLoopFilter.h AdaptiveLoopFilter_avx.cpp AdaptiveLoopFilter_avx2.cpp AdaptiveLoopFilter_sse41.cpp AdaptiveLoopFilterX86.h AffineGradientSearch.cpp AffineGradientSearch.h AffineGradientSearch_avx.cpp AffineGradientSearch_avx2.cpp AffineGradientSearch_sse41.cpp AffineGradientSearchX86.h AlfParameters.h Analyze.h annexBbytecount.cpp AnnexBread.cpp AnnexBread.h AnnexBwrite.h AQp.cpp AQp.h BinDecoder.cpp BinDecoder.h BinEncoder.cpp BinEncoder.h BitStream.cpp BitStream.h BitstreamExtractorApp.cpp BitstreamExtractorApp.h BitstreamExtractorAppCfg.cpp BitstreamExtractorAppCfg.h bitstreamextractormain.cpp Buffer.cpp Buffer.h Buffer_avx.cpp Buffer_avx2.cpp Buffer_sse41.cpp BufferX86.h CABACReader.cpp CABACReader.h CABACWriter.cpp CABACWriter.h CacheModel.cpp CacheModel.h ChromaFormat.cpp ChromaFormat.h CMakeLists.txt CMakeLists.txt CMakeLists.txt CMakeLists.txt CMakeLists.txt CMakeLists.txt CMakeLists.txt CMakeLists.txt CMakeLists.txt CMakeLists.txt CMakeLists.txt CMakeLists.txt CMakeLists.txt CodingStatistics.h CodingStructure.cpp CodingStructure.h Common.h common.natvis CommonDef.h CommonDefX86.cpp CommonDefX86.h ContextModelling.cpp ContextModelling.h Contexts.cpp Contexts.h convert_NtoMbit_YCbCr.cpp CrossCompPrediction.cpp CrossCompPrediction.h DecApp.cpp DecApp.h DecAppCfg.cpp DecAppCfg.h DecCu.cpp DecCu.h DecLib.cpp DecLib.h decmain.cpp DecSlice.cpp DecSlice.h DepQuant.cpp DepQuant.h dtrace.cpp dtrace.h dtrace_blockstatistics.cpp dtrace_blockstatistics.h dtrace_buffer.h dtrace_codingstruct.h dtrace_next.h EncAdaptiveLoopFilter.cpp EncAdaptiveLoopFilter.h EncApp.cpp EncApp.h EncAppCfg.cpp EncAppCfg.h EncCfg.h EncCfgParam.h EncCu.cpp EncCu.h EncGOP.cpp EncGOP.h EncHRD.cpp EncHRD.h EncLib.cpp EncLib.h EncLibCommon.cpp EncLibCommon.h encmain.cpp EncModeCtrl.cpp EncModeCtrl.h encode.shl encodeCommand.sh EncReshape.cpp EncReshape.h EncSampleAdaptiveOffset.cpp EncSampleAdaptiveOffset.h EncSlice.cpp EncSlice.h EncTemporalFilter.cpp EncTemporalFilter.h ExtractBitrates.cpp ExtractBitrates.h ExtractBitratesMain.cpp GuessLambdaModifiers.cpp GuessLambdaModifiers.h GuessLambdaModifiersMain.cpp Hash.cpp Hash.h HRD.cpp HRD.h IbcHashMap.cpp IbcHashMap.h IbcHashmap_sse42.cpp IbcHashMapX86.h InitX86.cpp InterpolationFilter.cpp InterpolationFilter.h InterpolationFilter_avx.cpp InterpolationFilter_avx2.cpp InterpolationFilter_sse41.cpp InterpolationFilterX86.h InterPrediction.cpp InterPrediction.h InterSearch.cpp InterSearch.h IntraPrediction.cpp IntraPrediction.h IntraSearch.cpp IntraSearch.h JVET-R0157-v1.docx libmd5.cpp libmd5.h LoopFilter.cpp LoopFilter.h makefile MatrixIntraPrediction.cpp MatrixIntraPrediction.h MCTS.cpp MCTS.h MD5.h MipData.h MotionInfo.h Mv.cpp Mv.h NAL.h NALread.cpp NALread.h NALwrite.cpp NALwrite.h ParameterSetManager.cpp ParameterSetManager.h parcat.cpp Picture.cpp Picture.h PicYuvMD5.cpp ProfileLevelTier.cpp ProfileLevelTier.h program_options_lite.cpp program_options_lite.h Quant.cpp Quant.h QuantRDOQ.cpp QuantRDOQ.h QuickStartGuide.pdf RateCtrl.cpp RateCtrl.h RdCost.cpp RdCost.h RdCost_avx.cpp RdCost_avx2.cpp RdCost_sse41.cpp RdCostWeightPrediction.cpp RdCostWeightPrediction.h RdCostX86.h readme.md Reshape.cpp Reshape.h Rom.cpp Rom.h RomLFNST.cpp RomTr.cpp RuntimeError.h SampleAdaptiveOffset.cpp SampleAdaptiveOffset.h SEI.cpp SEI.h SEIEncoder.cpp SEIEncoder.h SEIread.cpp SEIread.h SEIRemovalApp.cpp SEIRemovalApp.h SEIRemovalAppCfg.cpp SEIRemovalAppCfg.h seiremovalmain.cpp SEIwrite.cpp SEIwrite.h Slice.cpp Slice.h static_vector.natvis StreamMergeApp.cpp StreamMergeApp.h StreamMergeAppCfg.cpp StreamMergeAppCfg.h StreamMergeMain.cpp targetBitrates.sh TrQuant.cpp TrQuant.h TrQuant_EMT.cpp TrQuant_EMT.h TypeDef.h TypeDef.h.orig Unit.cpp Unit.h UnitPartitioner.cpp UnitPartitioner.h UnitTools.cpp UnitTools.h version.h VideoIOYuv.cpp VideoIOYuv.h VLCReader.cpp VLCReader.cpp.orig VLCReader.h VLCWriter.cpp VLCWriter.h WeightPredAnalysis.cpp WeightPredAnalysis.h WeightPrediction.cpp WeightPrediction.h
Decisions
An editorial bug fix is also proposed for when num_exp_tile_columns_minus1 is equal to 0; however this aspect was no longer relevant due to an action taken on JVET-R0062.
Editor action item: The editor was asked to check and make sure that the constraints (which we believe are already expressed in some form) are sufficiently clear to the reader.
Citation