Opened 6 years ago

Closed 6 years ago

#1347 closed defect (fixed)

Chroma-QP-adjustment encoder granularity

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

Description

The parameters for chroma-QP-adjustment (not to be confused
with chroma-QP-offsets) are not searched for, but instead a
checkerboard pattern is used when this feature is enabled.

The granularity of this checkerboard pattern is down to the
size of a CU. However, chroma-qp-adjustment can be restricted
to be signalled at a higher depth. Currently, the encoder
ignores this limit when calculating the 'm_ChromaQpAdjIdc',
leading to an encoder-decoder mismatch.

eg

./bin/TAppEncoderStatic -c cfg/encoder_intra_main_rext.cfg

-c BasketballPass.cfg
--SEIDecodedPictureHash=1
-f 1
--MaxCUChromaQpAdjustmentDepth=1

will produce a stream that the decoder will mismatch.

A possible fix is to adjust the checkerboard to match the
granularity of the signalling.

In TEncCu::xCompressCU,

Int lgMinCuSize =

pcSlice->getSPS()->getLog2MinCodingBlockSize();

Change to

Int lgMinCuSize =

pcSlice->getSPS()->getLog2MinCodingBlockSize() +

std::max<Int>(0,

pcSlice->getSPS()->getLog2DiffMaxMinCodingBlockSize() -
pcSlice->getPPS()->getMaxCuChromaQpAdjDepth());

Change History (2)

comment:1 Changed 6 years ago by DefaultCC Plugin

  • Cc ksuehring davidf karlsharman jct-vc@… added

comment:2 Changed 6 years ago by karlsharman

  • Milestone set to HM-16.3
  • Resolution set to fixed
  • Status changed from new to closed
  • Version set to HM-16.2

Fixed in r4230.

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(Reporter, Subscriber, Participant)
  • karl.sharman@…(Always)
  • Karsten Suehring(Subscriber, Always)