// texture
/** encode coefficients
* \param pcCU
* \param uiAbsPartIdx
* \param uiDepth
* \param uiWidth
* \param uiHeight
*/
Void TEncEntropy::encodeCoeff( TComDataCU* pcCU, UInt uiAbsPartIdx, UInt uiDepth, UInt uiWidth, UInt uiHeight, Bool& bCodeDQP )
{
UInt uiMinCoeffSize = pcCU->getPic()->getMinCUWidth()*pcCU->getPic()->getMinCUHeight();
UInt uiLumaOffset = uiMinCoeffSize*uiAbsPartIdx;
UInt uiChromaOffset = uiLumaOffset>>2;
if( pcCU->isIntra(uiAbsPartIdx) )
{
DTRACE_CABAC_VL( g_nSymbolCounter++ )
DTRACE_CABAC_T( "\tdecodeTransformIdx()\tCUDepth=" )
DTRACE_CABAC_V( uiDepth )
DTRACE_CABAC_T( "\n" )
}
else
{
if( !(pcCU->getMergeFlag( uiAbsPartIdx ) && pcCU->getPartitionSize(uiAbsPartIdx) == SIZE_2Nx2N ) )
{
m_pcEntropyCoderIf->codeQtRootCbf( pcCU, uiAbsPartIdx );
}
if ( !pcCU->getQtRootCbf( uiAbsPartIdx ) )
{
return;
}
}
xEncodeTransform( pcCU, uiLumaOffset, uiChromaOffset, uiAbsPartIdx, uiDepth, uiWidth, uiHeight, 0, bCodeDQP);
}
Void TEncEntropy::xEncodeTransform( TComDataCU* pcCU,UInt offsetLuma, UInt offsetChroma, UInt uiAbsPartIdx, UInt uiDepth, UInt width, UInt height, UInt uiTrIdx, Bool& bCodeDQP )
{
const UInt uiSubdiv = pcCU->getTransformIdx( uiAbsPartIdx ) + pcCU->getDepth( uiAbsPartIdx ) > uiDepth;
const UInt uiLog2TrafoSize = g_aucConvertToBit[pcCU->getSlice()->getSPS()->getMaxCUWidth()]+2 - uiDepth;
UInt cbfY = pcCU->getCbf