Opened 4 years ago
Closed 4 years ago
#127 closed defect (wontfix)
Incorrect calculation of adjacent modes in MPM list formation
Reported by: | andrew.dorrell | Owned by: | |
---|---|---|---|
Priority: | minor | Milestone: | |
Component: | VTM | Version: | VTM-3.0 |
Keywords: | MPM Intra | Cc: | ksuehring, XiangLi, fbossen, jvet@… |
Description
In UnitTools.cpp the adjacent angles are being incorrectly calculated for extreme angular modes due to incorrect offset values in the code. Specifically:
const int offset = (int)NUM_LUMA_MODE - 6; incorrect
const int offset = (int)NUM_LUMA_MODE - 5; correct
and in inactive code:
const int offset = 61; incorrect
const int mod = 64; incorrect
const int offset = 62; correct
const int mod = 65; correct
Change history (6)
comment:1 Changed 4 years ago by XiangLi
comment:2 Changed 4 years ago by andrew.dorrell
But the code generates incorrect values. I am looking at the spec also to try and work out if there is an error in translation.
comment:3 Changed 4 years ago by andrew.dorrell
I should clarify what I mean by "incorrect values". Perhaps more accurately it generates inconsistent results. For example, for a mode 'm', the code
((m + offset) % mod) + 2
generates an adjacent mode (m-1) for [2 < m <= 66] but generates a non adjacent mode (65) for m==2 where a "correct" modulo result would be 66. Further, the output for m==2 is the same as m==66 - which seems illogical at least to me.
Similarly, the code
((m - 1) % mod) + 2)
generates an adjacent mode (m+1) for [2 <= m < 66] but a non-adjacent mode (3) for m==66 where a "correct" modulo result would be 2. Again, the output for m==2 is the same as m==66.
comment:4 Changed 4 years ago by ksuehring
- Version changed from VTM-3.0rc1 to VTM-3.0
comment:5 Changed 4 years ago by andrew.dorrell
I have flagged this in #128 as a bug in the spec.
comment:6 Changed 4 years ago by bbross
- Resolution set to wontfix
- Status changed from new to closed
mod 64 was a design choice and thus VTM and draft text reflect the intended design.
It was decided to use mod 64 instead of mod 65. Please refer to https://jvet.hhi.fraunhofer.de/trac/vvc/ticket/79.