id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc 178,valgrind error related to JVET-M0823,fbossen,,"With VTM 4.0rc1 (macOS clang 10.0) {{{ EncoderApp -c cfg/per-sequence/SlideShow.cfg -c cfg/encoder_lowdelay_P_vtm.cfg -dph 1 -c cfg/per-class/classF.cfg -q 37 -f 4 }}} {{{ POC 0 TId: 0 ( I-SLICE, QP 36 ) 131248 bits [Y 38.0316 dB U 43.7646 dB V 44.8671 dB] [ET 3314 ] [L0 ] [L1 ] [MD5:a3ef6b513dd6e1c926e3389a19c6270b,bba4df2b65e96de9b99d63cede66d581,04fe58d7c9a3e46f7e446ae880e14a5d] POC 1 TId: 0 ( P-SLICE, QP 45 ) 1456 bits [Y 55.3617 dB U 62.4768 dB V 60.4567 dB] [ET 98 ] [L0 0 ] [L1 ] [MD5:f837437d60c4daa3dfd0d2c4382fb544,39b53298bff8fde01f4c721514e5254f,2ef44b54a5f6d24dedcda5ee204ae1c6] POC 2 TId: 0 ( P-SLICE, QP 44 ) 576 bits [Y 61.4541 dB U 77.2996 dB V 75.1839 dB] [ET 49 ] [L0 1 0 ] [L1 ] [MD5:f399ad45b19e401a1cfce99febb8ff02,39b53298bff8fde01f4c721514e5254f,0efdff1494d936bc3595cae705fd6061] ==36737== Conditional jump or move depends on uninitialised value(s) ==36737== at 0x10008A4E7: InterPrediction::xPredInterUni(PredictionUnit const&, RefPicList const&, UnitBuf&, bool const&, bool const&, bool, bool) (InterPrediction.cpp:443) ==36737== by 0x10008BAEF: InterPrediction::xPredInterBi(PredictionUnit&, UnitBuf&) (InterPrediction.cpp:0) ==36737== by 0x100089141: InterPrediction::xSubPuMC(PredictionUnit&, UnitBuf&, RefPicList const&) (InterPrediction.cpp:369) ==36737== by 0x100188154: EncCu::xCheckRDCostAffineMerge2Nx2N(CodingStructure*&, CodingStructure*&, Partitioner&, EncTestMode const&) (EncCu.cpp:3098) ==36737== by 0x100183E66: EncCu::xCompressCU(CodingStructure*&, CodingStructure*&, Partitioner&, LutMotionCand*&, LutMotionCand*&) (EncCu.cpp:830) ==36737== by 0x100182D1A: EncCu::compressCtu(CodingStructure&, UnitArea const&, unsigned int, int const*, int const*) (EncCu.cpp:441) ==36737== by 0x1001DB254: EncSlice::encodeCtus(Picture*, bool, bool, unsigned int, unsigned int, EncLib*) (EncSlice.cpp:1665) ==36737== by 0x1001D9F4C: EncSlice::compressSlice(Picture*, bool, bool) (EncSlice.cpp:1386) ==36737== by 0x10019FE65: EncGOP::compressGOP(int, int, std::__1::list >&, std::__1::list*, std::__1::allocator*> >&, bool, bool, InputColourSpaceConversion, bool, bool) (EncGOP.cpp:2327) ==36737== by 0x1001B3C10: EncLib::encode(bool, PelStorage*, PelStorage*, InputColourSpaceConversion, std::__1::list*, std::__1::allocator*> >&, int&) (EncLib.cpp:599) ==36737== by 0x100003B18: EncApp::encode() (EncApp.cpp:717) ==36737== by 0x10005493F: main (encmain.cpp:153) ==36737== ==36737== Conditional jump or move depends on uninitialised value(s) ==36737== at 0x10008A4E7: InterPrediction::xPredInterUni(PredictionUnit const&, RefPicList const&, UnitBuf&, bool const&, bool const&, bool, bool) (InterPrediction.cpp:443) ==36737== by 0x10008BAEF: InterPrediction::xPredInterBi(PredictionUnit&, UnitBuf&) (InterPrediction.cpp:0) ==36737== by 0x100089141: InterPrediction::xSubPuMC(PredictionUnit&, UnitBuf&, RefPicList const&) (InterPrediction.cpp:369) ==36737== by 0x10008F09A: InterPrediction::motionCompensation(PredictionUnit&, RefPicList const&, bool, bool) (InterPrediction.cpp:1420) ==36737== by 0x100188836: EncCu::xCheckRDCostAffineMerge2Nx2N(CodingStructure*&, CodingStructure*&, Partitioner&, EncTestMode const&) (EncCu.cpp:3207) ==36737== by 0x100183E66: EncCu::xCompressCU(CodingStructure*&, CodingStructure*&, Partitioner&, LutMotionCand*&, LutMotionCand*&) (EncCu.cpp:830) ==36737== by 0x100192FDA: EncCu::xCheckModeSplit(CodingStructure*&, CodingStructure*&, Partitioner&, EncTestMode const&, LutMotionCand*&, LutMotionCand*&, UnitArea) (EncCu.cpp:1336) ==36737== by 0x100183E49: EncCu::xCompressCU(CodingStructure*&, CodingStructure*&, Partitioner&, LutMotionCand*&, LutMotionCand*&) (EncCu.cpp:868) ==36737== by 0x100192FDA: EncCu::xCheckModeSplit(CodingStructure*&, CodingStructure*&, Partitioner&, EncTestMode const&, LutMotionCand*&, LutMotionCand*&, UnitArea) (EncCu.cpp:1336) ==36737== by 0x100183E49: EncCu::xCompressCU(CodingStructure*&, CodingStructure*&, Partitioner&, LutMotionCand*&, LutMotionCand*&) (EncCu.cpp:868) ==36737== by 0x100192FDA: EncCu::xCheckModeSplit(CodingStructure*&, CodingStructure*&, Partitioner&, EncTestMode const&, LutMotionCand*&, LutMotionCand*&, UnitArea) (EncCu.cpp:1336) ==36737== by 0x100183E49: EncCu::xCompressCU(CodingStructure*&, CodingStructure*&, Partitioner&, LutMotionCand*&, LutMotionCand*&) (EncCu.cpp:868) ==36737== POC 3 TId: 0 ( P-SLICE, QP 45 ) 3592 bits [Y 44.4361 dB U 47.6582 dB V 51.5576 dB] [ET 313 ] [L0 2 1 0 ] [L1 ] [MD5:7b6159e316f8fa351686af52184e0c71,a213ba0d1ea6075868bee39e9e859982,39120b764028cff41cf80c7defffb6f9] }}} The offending line is {{{ int numOfPass = (pu.mmvdMergeFlag && pu.mmvdEncOptMode) ? 1 : (std::min((int)pcYuvPred.bufs.size(), m_maxCompIDToPred + 1)); }}} A low-level motion compensation function should not refer to some encoder optimization variable. It is thus suggested to simply remove the JVET-M0823 related changes in this function, as it should not impact the bitstream. ",defect,closed,minor,VTM-4.0,VTM,,fixed,,ksuehring XiangLi fbossen jvet@…