Two changes are included: (1) disable fractional MVD for UHD sequences (M0312...
Two changes are included: (1) disable fractional MVD for UHD sequences (M0312 & M0255) (2) encoder optimization for MMVD (M0823)
Merge request reports
Activity
1427 1427 { 1428 1428 pcSlice->setDisFracMMVD( true ); 1429 1429 } 1430 #if JVET_M0312_FRACMMVD_SWITCH_FOR_UHD 1431 bool useIntegerMVD = (pcPic->lwidth()*pcPic->lheight() > 1920 * 1080); Couple things here: first of all, merge requests should not include multiple items. I don't see the meeting notes saying anything about adopting something from M0312 and I don't see this described in document M0832. Also this seems to conflict with the call to
setDisFracMMVD
on line 1428 (just above).Sorry for the confusion.
this adoption comes from notes for JVET-M0854:JVET-M0854 CE4-related: Combination of CE4.4.4a and CE4.4.5b [T. Hashimoto, E. Sasaki, T. Ikai (Sharp), J. Li, R.-L. Liao, C. S. Lim (Panasonic)] [late] This contribution reports results of combining CE4.4.4.a and CE4.4.5.b. It shows 0.2% B-D rate reduction with 100% encoding time and 100% decoding time in RA condition and 0% B-D rate reduction with 100% encoding time and 100% decoding time in LDB condition, compared to a VTM3+4.4.5* anchor. Reviewed in Track B Thu 17 Jan 1600. The aspect of 4.4.5.b was already resolved by adoption of M0255 (via explicit signalling). Aspect of 4.4.4a should be investigated in ongoing CE.
the aspect 4.4.5.b comes from M0312. It is a revisited item and is adopted based on M0255. More detail: M0255 disables fractional MVD table for MMVD if the picture is judged as screen content 4.4.5.b disables fractional MVD table for UHD pictures. Both methods signal whether fractional MVD table with a picture level flag. Therefore it is less like a conflict, They are setting the same flag using two different conditions from M0255 and 4.4.5.b.
Questions: (1) Shall I put M0854 instead of M0312? They both contain CE4.4.5.b which is adopted. (2) Shall I make separate merge request for M0312 and M0823?
changed this line in version 3 of the diff
Additional information: during the meeting, it was agreed that M0823 shall be used as base of MMVD proposals and was adopted. And 4.4.5.b was proposed on top of M0823 (results are in M0312) and adopted during revisit for M0854.
Edited by LI JINGYAThe notes that you quote don't really say anything about how the MMVD precision (
tile_group_fracmmvd_disabled_flag
, a.k.a. explicit signalling from M0255) should be set. The code that you are adding here overrides the value set by the M0255 code. Where is the justification for doing this?I see. You are right. My code has problem. It is supposed to use same signalling method from M0255. But shall not override M0255. I shall change the code as follows:
#if JVET_M0312_FRACMMVD_SWITCH_FOR_UHD if (!pcSlice->getDisFracMMVD()) { bool useIntegerMVD = (pcPic->lwidth()*pcPic->lheight() > 1920 * 1080); pcSlice->setDisFracMMVD(useIntegerMVD); } #endif
Is that OK?
For proper code formatting in comments see
Is this change OK?
if ( hashRatio > totalCtu * hashThreshold ) { pcSlice->setDisFracMMVD( true ); } #if JVET_M0312_FRACMMVD_SWITCH_FOR_UHD if (!pcSlice->getDisFracMMVD()) { bool useIntegerMVD = (pcPic->lwidth()*pcPic->lheight() > 1920 * 1080); pcSlice->setDisFracMMVD(useIntegerMVD); } #endif
added 16 commits
-
11168f39...fd57fec5 - 15 commits from branch
jvet:master
- a73dc51f - Merge branch 'master' of https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM
-
11168f39...fd57fec5 - 15 commits from branch
added 4 commits
-
3d0f0acb...87e56b3d - 3 commits from branch
jvet:master
- 10c3ee7c - Merge branch 'master' of https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM
-
3d0f0acb...87e56b3d - 3 commits from branch
mentioned in commit 4da88d8b