Opened 7 years ago

Closed 7 years ago

#1355 closed defect (fixed)

CAVLC encoder decoder mismatch

Reported by: kolya Owned by:
Priority: minor Milestone: HM-16.3
Component: HM Version: HM-16.2
Keywords: mismatch Cc: ksuehring, davidf, karlsharman, jct-vc@…

Description

Read, never written:

for(Int i=0; i<uiCode; i++)
{

UInt ignore;
READ_CODE(8,ignore,"slice_header_extension_data_byte");

}

Written, never read:

for (Int chromaQpAdjustmentIndex = 1; chromaQpAdjustmentIndex <= pcPPS->getChromaQpAdjTableSize(); chromaQpAdjustmentIndex++)
{

WRITE_SVLC(pcPPS->getChromaQpAdjTableAt(chromaQpAdjustmentIndex).u.comp.CbOffset, "cb_qp_adjustnemt[i]");
WRITE_SVLC(pcPPS->getChromaQpAdjTableAt(chromaQpAdjustmentIndex).u.comp.CrOffset, "cr_qp_adjustnemt[i]");

}

Change History (7)

comment:1 Changed 7 years ago by DefaultCC Plugin

  • Cc ksuehring davidf karlsharman jct-vc@… added

comment:2 in reply to: ↑ description Changed 7 years ago by ksuehring

Read, never written:

for(Int i=0; i<uiCode; i++)
{

UInt ignore;
READ_CODE(8,ignore,"slice_header_extension_data_byte");

}

This is an extension mechanism, which is already used in the multi-layer extensions (syntax element name in the spec: slice_segment_header_extension_data_byte).

We don't have meaningful semantics defined for profiles specified in Annex A, so there is no point in writing data into this section (except if you want to test that a decoder properly ignores the content according to the spec). But such a test should be a conformance bitstream, not a common HM functionality.

comment:3 Changed 7 years ago by tung.nguyen

You are comparing different parts of T(Enc/Dec)CAVLC.

TEncCAVLC @ 284:

for (Int chromaQpAdjustmentIndex = 1; chromaQpAdjustmentIndex <= pcPPS->getChromaQpAdjTableSize(); chromaQpAdjustmentIndex++)
{

WRITE_SVLC(pcPPS->getChromaQpAdjTableAt(chromaQpAdjustmentIndex).u.comp.CbOffset, "cb_qp_adjustnemt[i]");
WRITE_SVLC(pcPPS->getChromaQpAdjTableAt(chromaQpAdjustmentIndex).u.comp.CrOffset, "cr_qp_adjustnemt[i]");

}

TDecCAVLC @ 363:

for (Int chromaQpAdjustmentIndex = 1; chromaQpAdjustmentIndex <= (tableSizeMinus1 + 1); chromaQpAdjustmentIndex++)
{

Int cbOffset;
Int crOffset;
READ_SVLC(cbOffset, "cb_qp_adjustnemt[i]");
READ_SVLC(crOffset, "cr_qp_adjustnemt[i]");
pcPPS->setChromaQpAdjTableAt(chromaQpAdjustmentIndex, cbOffset, crOffset);

}

comment:4 Changed 7 years ago by kolya

Yes you're right.

Me set the tag incorrectly.

My comment is about HM-dev, revision 4243. There is no reading of that kind there.

comment:5 follow-up: Changed 7 years ago by karlsharman

In HM-dev, revision 4243, the line numbers for the two highlighted sections are practically the same:

TEncCAVLC @ line 280

https://hevc.hhi.fraunhofer.de/trac/hevc/browser/branches/HM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp?rev=4243

TDecCAVLC @ line 363

https://hevc.hhi.fraunhofer.de/trac/hevc/browser/branches/HM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp?rev=4243

comment:6 in reply to: ↑ 5 Changed 7 years ago by kolya

Agreed again. This is due to stupid automatic parser, who cannot treat "cb_qp_adjustnemt" and "cb_qp_adjustment" as the same %)

Replying to karlsharman:

In HM-dev, revision 4243, the line numbers for the two highlighted sections are practically the same:

TEncCAVLC @ line 280

https://hevc.hhi.fraunhofer.de/trac/hevc/browser/branches/HM-dev/source/Lib/TLibEncoder/TEncCavlc.cpp?rev=4243

TDecCAVLC @ line 363

https://hevc.hhi.fraunhofer.de/trac/hevc/browser/branches/HM-dev/source/Lib/TLibDecoder/TDecCAVLC.cpp?rev=4243

comment:7 Changed 7 years ago by karlsharman

  • Resolution set to fixed
  • Status changed from new to closed

Fixed spelling mistake in debug trace string in r4244.

Note: See TracTickets for help on using tickets.

This list contains all users that will be notified about changes made to this ticket.

These roles will be notified: Reporter, Owner, Subscriber, Participant

  • David Flynn(Subscriber)
  • jct-vc@…(Subscriber)
  • Karl Sharman(Subscriber, Participant)
  • karl.sharman@…(Always)
  • Karsten Suehring(Subscriber, Participant, Always)
  • Nikolay Shlyakhov(Reporter, Participant)
  • Tung Nguyen(Participant)