3D-HEVC帧间预测RDO分析1

帧间编码的率失真优化

帧间预测利用视频时间域的相关性,使用邻近已编码图像像素预测当前图像像素,达到去除空间冗余的目的。

  帧间预测采用基于块的运动补偿技术。这些块的大小种类包括了对称和非对称的情况,即帧间预测模式的情况。3D-HEVC的所需遍历的预测模式的代码在http://blog.csdn.net/u011403803/article/details/42099745总结列出。遍历所有预测模式后,最终选出最优预测模式,并且确定运动矢量的过程即是率失真优化的过程。


帧间预测过程主要的技术
  • 运动估计

  在运动估计的过程确定当前块与已编码的预测块的匹配程度采用绝对误差和(Sum of Absolute Difference,SAD)。同时为达到率失真代价最小,还需考虑编码运动信息所需的比特数。于是对于每个运动矢量的的代价值,采用如下拉格朗日计算式:

  J = SAD(x,y) + lamdamotion***Rmotion

  在3D-HEVC测试平台中具体的实现如下,以merge模式为例:

    Void TEncCu::xCheckRDCostMerge2Nx2N( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, Bool *earlyDetectionSkipMode )
    {   //...
        //
         m_pcPredSearch->encodeResAndCalcRdInterCU( rpcTempCU, m_ppcOrigYuv[uhDepth], m_ppcPredYuvTemp[uhDepth], m_ppcResiYuvTemp[uhDepth], m_ppcResiYuvBest[uhDepth], m_ppcRecoYuvTemp[uhDepth], false );
        //...
    }

调用的具体计算函数实现如下:

/** encode residual and calculate rate-distortion for a CU block
 * \param pcCU
 * \param pcYuvOrg
 * \param pcYuvPred
 * \param rpcYuvResi
 * \param rpcYuvResiBest
 * \param rpcYuvRec
 * \param bSkipRes
 * \returns Void
 */
Void TEncSearch::encodeResAndCalcRdInterCU( TComDataCU* pcCU, TComYuv* pcYuvOrg, TComYuv* pcYuvPred, TComYuv*& rpcYuvResi, TComYuv*& rpcYuvResiBest, TComYuv*& rpcYuvRec, Bool bSkipRes )
{//...
 //这里调用函数,最终会得到预测的代价值,失真和码率
    xEstimateResidualQT( pcCU, 0, 0, 0, pcYuvOrg, pcYuvPred, rpcYuvResi,  pcCU->getDepth(0), dCost, uiBits, uiDistortion, &uiZeroDistortion );
 //...
}
  • 运动矢量预测

  • 多参考图像和加权预测

转载于:https://www.cnblogs.com/codingcouple/p/6512031.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值