JVET-S0163: On target OLS and sublayers for decoding (Operating Point Information OPI NAL Unit)
This MR implements: Operation point information (OPI) NAL unit for carrying syntax elements indicating TargetOlsIdx and Htid.
Merge request reports
Activity
- Resolved by Frank Bossen
- Resolved by Frank Bossen
- Resolved by Frank Bossen
- Resolved by Frank Bossen
- Resolved by Frank Bossen
added 90 commits
Toggle commit list- Resolved by Karsten Suehring
Will there be
nalu.m_nalUnitType == NAL_UNIT_OPI
in AnnexBwrite.h?#if JVET_S0163_ON_TARGETOLS_SUBLAYERS const bool useLongStartCode = (it == au.begin() || nalu.m_nalUnitType == NAL_UNIT_OPI || nalu.m_nalUnitType == NAL_UNIT_DCI || nalu.m_nalUnitType == NAL_UNIT_VPS || nalu.m_nalUnitType == NAL_UNIT_SPS || nalu.m_nalUnitType == NAL_UNIT_PPS || nalu.m_nalUnitType == NAL_UNIT_PREFIX_APS || nalu.m_nalUnitType == NAL_UNIT_SUFFIX_APS); #else const bool useLongStartCode = (it == au.begin() || nalu.m_nalUnitType == NAL_UNIT_DCI || nalu.m_nalUnitType == NAL_UNIT_VPS || nalu.m_nalUnitType == NAL_UNIT_SPS || nalu.m_nalUnitType == NAL_UNIT_PPS || nalu.m_nalUnitType == NAL_UNIT_PREFIX_APS || nalu.m_nalUnitType == NAL_UNIT_SUFFIX_APS); #endif
- Resolved by Karsten Suehring
- Resolved by Karsten Suehring
I'm seeing a crash with this branch (merged into master), reported as follows:
EncoderApp -c ../cfg/encoder_randomaccess_vtm.cfg -c ../cfg/multi-layer/two_layers.cfg -l0 -c ../cfg/per-sequence/RaceHorses.cfg -l1 -c ../cfg/per-sequence/RaceHorses.cfg -ipp ../../../../svn/origCfP/ -f 17 --SEIDecodedPictureHash=1 -q 55 --Level=3 VVCSoftware: VTM Encoder Version 10.1rc1 [Mac OS X][clang 11.0.0][64 bit] [SIMD=AVX2] TOOL CFG: IBD:1 HAD:1 RDQ:1 RDQTS:1 RDpenalty:0 LQP:0 SQP:0 ASR:1 MinSearchWindow:96 RestrictMESampling:0 FEN:1 ECU:0 FDM:1 ESD:0 TransformSkip:1 TransformSkipFast:1 TransformSkipLog2MaxSize:5 ChromaTS:1 BDPCM:0 Tiles: 1x1 Slices: 1 MCTS:0 SAO:1 ALF:1 CCALF:1 WPP:0 WPB:0 PME:2 WaveFrontSynchro:0 WaveFrontSubstreams:1 ScalingList:0 TMVPMode:1 DQ:1 SignBitHidingFlag:0 RecalQP:0 TOOL CFG: LFNST:1 MMVD:1 Affine:1 AffineType:1 PROF:1 SbTMVP:1 DualITree:1 IMV:1 BIO:1 LMChroma:1 HorCollocatedChroma:1 VerCollocatedChroma:0 MTS: 1(intra) 0(inter) SBT:1 ISP:1 SMVD:1 CompositeLTReference:0 Bcw:1 BcwFast:1 LADF:0 CIIP:1 Geo:1 AllowDisFracMMVD:1 AffineAmvr:1 AffineAmvrEncOpt:1 DMVR:1 MmvdDisNum:6 JointCbCr:1 ACT:0 PLT:0 IBC:0 HashME:0 WrapAround:0 VirtualBoundariesEnabledFlag:0 VirtualBoundariesPresentInSPSFlag:1 vertical virtual boundaries:[ ] horizontal virtual boundaries:[ ] Reshape:1 (Signal:SDR Opt:0 CSoffset:6) MRL:1 MIP:1 EncDbOpt:0 FAST TOOL CFG: LCTUFast:1 FastMrg:1 PBIntraFast:1 IMV4PelFast:1 MTSMaxCand: 4(intra) 4(inter) ISPFast:0 FastLFNST:0 AMaxBT:1 E0023FastEnc:1 ContentBasedFastQtbt:0 UseNonLinearAlfLuma:1 UseNonLinearAlfChroma:1 MaxNumAlfAlternativesChroma:8 FastMIP:0 FastLocalDualTree:1 NumSplitThreads:1 NumWppThreads:1+0 EnsureWppBitEqual:0 RPR:0 TemporalFilter:0 AddressSanitizer:DEADLYSIGNAL ================================================================= ==74096==ERROR: AddressSanitizer: BUS on unknown address 0x60220000382c (pc 0x000109fdd8b1 bp 0x7ffee6183530 sp 0x7ffee6183450 T0) #0 0x109fdd8b0 in VPS::deriveTargetOutputLayerSet(int) Slice.cpp #1 0x10a74529c in EncLib::xInitVPS(SPS const&) EncLib.cpp:1054 #2 0x10a736ebc in EncLib::init(bool, AUWriterIf*) EncLib.cpp:235 #3 0x109aa5b40 in EncApp::xInitLib(bool) EncApp.cpp:1202 #4 0x109aa6780 in EncApp::createLib(int) EncApp.cpp:1237 #5 0x109bf7baa in main encmain.cpp:190 #6 0x7fff57d213d4 in start (libdyld.dylib:x86_64+0x163d4) ==74096==Register values: rax = 0x0000000000000000 rbx = 0x00007ffee6183860 rcx = 0x000060220000382c rdx = 0x00000001fffffffc rdi = 0x0000100000000000 rsi = 0x00001c0440000705 rbp = 0x00007ffee6183530 rsp = 0x00007ffee6183450 r8 = 0x0000000000000000 r9 = 0x00000fffffffffff r10 = 0x0000000000000000 r11 = 0xffffffffffffffff r12 = 0x00007ffee61836b0 r13 = 0x00007ffee61836c0 r14 = 0x00007ffee6183680 r15 = 0x00007ffee61836a0 AddressSanitizer can not provide additional info. SUMMARY: AddressSanitizer: BUS Slice.cpp in VPS::deriveTargetOutputLayerSet(int) ==74096==ABORTING Abort trap: 6
targetOlsIdx is a large number in that function and is used to index into a vector of size 2.
The targetOlsIdx in VPS has been fixed now. Was able to encode and decode successfully. Attached is the encoded file with following configuration.
EncoderApp -c ../cfg/encoder_randomaccess_vtm.cfg -c ../cfg/multi-layer/two_layers.cfg -l0 -c ../cfg/per-sequence/RaceHorses.cfg -l1 -c ../cfg/per-sequence/RaceHorses.cfg -f 17 --SEIDecodedPictureHash=1 -q 55 --Level=3
added 92 commits
-
064c2d0f...7abf654d - 83 commits from branch
jvet:master
- 8872b06b - rebase to master v1
- 09d99c9f - rebase to master v2
- d18f5434 - OPINAL bugfix in for loop v3
- c9913d24 - bitstream extractor bugfix
- 5728edc9 - Tracing bugfix
- 2fed364b - gitlab feedback fixes
- fee34134 - NALU rename error fix
- 10398ab2 - rebase to master v3
- da9e1e51 - targetOLS index in VPS bug fix
Toggle commit list-
064c2d0f...7abf654d - 83 commits from branch
Please register or sign in to reply