帧内预测:xPredIntraPlanar函数

xPredIntraPlanar
/** Function for deriving planar intra prediction. 
 * \param pSrc pointer to reconstructed sample array 
 * \param srcStride the stride of the reconstructed sample array 
 * \param rpDst reference to pointer for the prediction sample array 
 * \param dstStride the stride of the prediction sample array 
 * \param width the width of the block 
 * \param height the height of the block 
 * 
 * This function derives the prediction samples for planar mode (intra coding). 
 */  
Void TComPrediction::xPredIntraPlanar( Int* pSrc, Int srcStride, Pel* rpDst, Int dstStride, UInt width, UInt height )  
{  
  assert(width == height);  
  
  Int k, l, bottomLeft, topRight;  
  Int horPred;  
  Int leftColumn[MAX_CU_SIZE], topRow[MAX_CU_SIZE], bottomRow[MAX_CU_SIZE], rightColumn[MAX_CU_SIZE];  
  UInt blkSize = width;  
  UInt offset2D = width;  
  UInt shift1D = g_aucConvertToBit[ width ] + 2;  //!< 加2才是得到实际的宽度取Log2的结果   
  UInt shift2D = shift1D + 1;  
  
  // Get left and above reference column and row  
  for(k=0;k<blkSize+1;k++)  
  {  
    topRow[k] = pSrc[k-srcStride];   //!< p[x][-1], x = 0, 1, 2, ..., nT,即上边界  
    leftColumn[k] = pSrc[k*srcStride-1]; //!< p[-1][y], y = 0, 1, 2, ..., nT,即左边界  
  }  
  
  // Prepare intermediate variables used in interpolation  
  bottomLeft = leftColumn[blkSize]; //!< 左下边界  
  topRight   = topRow[blkSize]; //!< 右上边界  
  for (k=0;k<blkSize;k++)  
  {  
    bottomRow[k]   = bottomLeft - topRow[k];  
    rightColumn[k] = topRight   - leftColumn[k];  
    topRow[k]      <<= shift1D;  
    leftColumn[k]  <<= shift1D;  
  }<span style="color:#000000"> //! 上边那个循环过程参考下图</span>  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值