Void YuvMbBuffer::loadBufferClip( IntYuvMbBuffer* pcSrcBuffer ) { Int y,x; XPel* pSrc; Pel* pDes; Int iSrcStride; Int iDesStride; pSrc = pcSrcBuffer->getMbLumAddr(); pDes = getMbLumAddr(); iDesStride = getLStride(); iSrcStride = pcSrcBuffer->getLStride(); for( y = 0; y < 16; y++ ) { for( x = 0; x < 16; x++ ) { pDes[x] = gClip( pSrc[x] ); } pDes += iDesStride; pSrc += iSrcStride; } pSrc = pcSrcBuffer->getMbCbAddr(); pDes = getMbCbAddr(); iDesStride = getCStride(); iSrcStride = pcSrcBuffer->getCStride(); for( y = 0; y < 8; y++ ) { for( x = 0; x < 8; x++ ) { pDes[x] = gClip( pSrc[x] ); } pDes += iDesStride; pSrc += iSrcStride; } pSrc = pcSrcBuffer->getMbCrAddr(); pDes = getMbCrAddr(); for( y = 0; y < 8; y++ ) { for( x = 0; x < 8; x++ ) { pDes[x] = gClip( pSrc[x] ); } pDes += iDesStride; pSrc += iSrcStride; } }
Void SampleWeighting::inverseLumaSamples( YuvMbBuffer* pcDesBuffer, YuvMbBuffer* pcOrgBuffer, YuvMbBuffer* pcFixBuffer, Int iYSize, Int iXSize ) { XPel* pFix = pcFixBuffer->getLumBlk(); XPel* pOrg = pcOrgBuffer->getLumBlk(); XPel* pDes = pcDesBuffer->getLumBlk(); const Int iStride = pcDesBuffer->getLStride(); Int iLine = 0; for( Int y = 0; y < iYSize; y++) { for( Int x = 0; x < iXSize; x++) { pDes[x+iLine] = gClip((Int)(2*pOrg[x+iLine] - pFix[x+iLine])) ; } iLine += iStride; } }