HEVC帧内预测之参考像素的填充代码详析(一)

作者:66

(转载请注明出处)

fillReferenceSamples( )//填充参考像素值

帧内预测用到的函数大概有十几个,先来看fillRerenceSamples( )

HEVC帧内预测之参考像素的填充代码详析(一)_第1张图片

iNumIntraNeighbor标识参考像素可用块数,以iUnitSize块长为单位。

分三种情况,1.像素全部可用,往相应位置填;2.像素部分可用,不可用的填默认值;3.像素不可用,全部填默认值;

在像素全部不可用时,代码不按一个一个像素复制,而是划分为iUnitSize大小的块,长宽都按多少个块长为单位,目前不了解为什么这么设置,在后面的分析中会了解。

Void TComPattern::fillReferenceSamples(Int bitDepth, Pel* piRoiOrigin, Int* piAdiTemp, 

Bool* bNeighborFlags, Int iNumIntraNeighbor, Int iUnitSize, Int iNumUnitsInCu, Int 

iTotalUnits, UInt uiCuWidth, UInt uiCuHeight, UInt uiWidth, UInt uiHeight, Int iPicStride, 

Bool bLMmode )
{ 
  Pel* piRoiTemp;
  Int  i, j;
  Int  iDCValue = 1 << (bitDepth - 1);//8bit像素为128,10bit像素为512

  if (iNumIntraNeighbor == 0)//相邻的参考像素不可用
  {
    // Fill border with DC value
    for (i=0; i


你可能感兴趣的:(HM,HEVC)