Beispiel #1
0
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;
  }
}
Beispiel #2
0
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;
  }
}