Opened 11 years ago Closed 11 years ago #1270 closed defect (fixed)Chroma QP adjustment parameters are not set over the correct area
Description
We are currently adding range extensions support to Argon Streams. We are working from the head of the HM-range-extensions branch.
In TDecSbac::parseChromaQpAdjustment() (TDecSbac.cpp), cu_chroma_qp_adjustment_idc is read and set over the area of the current TU. This is incorrect, as it should be set over the area of the entire current chroma QP adjustment unit, analogous to what is done for delta QP.
To fix this, replace the following line: cu->setChromaQpAdjSubParts( symbol, absPartIdx, depth );
with: UInt uiAbsChromaQpAdjCUPartIdx = (absPartIdx>>((g_uiMaxCUDepth - cu->getSlice()->getPPS()->getMaxCuChromaQpAdjDepth())<<1))<<((g_uiMaxCUDepth - cu->getSlice()->getPPS()->getMaxCuChromaQpAdjDepth())<<1) ; UInt uiChromaQpAdjCUDepth = min(depth,cu->getSlice()->getPPS()->getMaxCuChromaQpAdjDepth()) ; cu->setChromaQpAdjSubParts( symbol, uiAbsChromaQpAdjCUPartIdx, uiChromaQpAdjCUDepth );
This fixes this issue in the decoder - I guess a similar fix may be needed for the encoder. Attachments (1)Change History (4)comment:1 Changed 11 years ago by DefaultCC Plugin
Changed 11 years ago by jackhcomment:2 Changed 11 years ago by jackhcomment:3 Changed 11 years ago by karlsharman
Fixed in r3907 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
|
Clarification: the propagation of delta QP is in fact done in TDecCu::xFinishDecodeCU(). The fix given in the ticket above will work fine, but for consistency with delta QP, the attached patch might be better.