Opened 15 years ago Closed 12 years ago #155 closed enhancement (fixed)No Cbf check while doing intra inverse transform
Description
There is no check for Cbf in xIntraRecLumaBlk and xIntraRecChromaBlk Change History (5)comment:1 Changed 15 years ago by Vadimcomment:2 Changed 14 years ago by davidf
Updating component after adding WD (Text) tickets comment:3 Changed 14 years ago by davidf
comment:4 Changed 14 years ago by davidf
comment:5 Changed 12 years ago by fbossen
Fixed in r3772 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
| ||||||||||||||||
For xIntraRecLumaBlk, possible correction can be like the following and similar for xIntraRecChromaBlk.
//===== inverse transform ===== if( pcCU->getCbf( uiAbsPartIdx, TEXT_LUMA, uiTrDepth ) ) { m_pcTrQuant->setQPforQuant ( pcCU->getQP(0), !pcCU->getSlice()->getDepth(), pcCU->getSlice()->getSliceType(), TEXT_LUMA ); m_pcTrQuant->invtransformNxN( piResi, uiStride, pcCoeff, uiWidth, uiHeight ); Pel* pPred = piPred; Pel* pResi = piResi; Pel* pReco = piReco; Pel* pRecIPred = piRecIPred; for( UInt uiY = 0; uiY < uiHeight; uiY++ ) { for( UInt uiX = 0; uiX < uiWidth; uiX++ ) { pReco [ uiX ] = Clip( pPred[ uiX ] + pResi[ uiX ] ); pRecIPred[ uiX ] = pReco[ uiX ]; } pPred += uiStride; pResi += uiStride; pReco += uiStride; pRecIPred += uiRecIPredStride; } } else { Pel* pPred = piPred; Pel* pReco = piReco; Pel* pRecIPred = piRecIPred; for( UInt uiY = 0; uiY < uiHeight; uiY++ ) { memcpy( pReco, pPred, sizeof( Pel ) * uiWidth ); memcpy( pRecIPred, pReco, sizeof( Pel ) * uiWidth ); pPred += uiStride; pReco += uiStride; pRecIPred += uiRecIPredStride; } }