Chroma-QP-adjustment encoder granularity
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)
Changed 8 years ago by DefaultCC Plugin
-
Cc
ksuehring davidf karlsharman jct-vc@… added
Changed 8 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.