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

It was decided to use mod 64 instead of mod 65. Please refer to https://jvet.hhi.fraunhofer.de/trac/vvc/ticket/79.

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.

Note: See TracTickets for help on using tickets.