帧内学习笔记AVS-M帧内预测部分:一.分析帧内预测模式决定函数int Mode_Decision_for_4x4IntraBlocks_luma1.avs中只使用了4x4一种块划分去进行帧内模式选择,进行帧内预测,没有使用16x16这种块模式。4x4有9种亮度预测,16x16有4种帧内预测模式。2.问题:本程序在帧内预测时对一个宏块中的每个4x4块求其最佳预测模式,求其代价值。其中intra_cost += cost4x4;这条语句对每个最佳预测模式的代价值进行了累加。形成了帧内预测的代价值,主要应该时在帧间预测时使用。3.cost值的计算AVS的帧内编码模式使用的是SAD模式选择公式:Cost=SAD+R*λ(QP);程序中为:cost = (ipmode == mostProbableMode) ? 0 : (3 * lambda );此处计算的是R*λ(QP)这部分的值。当当前的预测模式为最有可能的预测模式时,R=0,所以cost为0,否则cost为3*lambda, lambda=λ(QP),这个值是量化因子QP的指数函数显然这里使用的系数是3即R=3程序里面cost = (ipmode == mostProbableMode) ? 0 : (3 * lambda );cost+=Intra_sad_4x4(&pgMbData->org_luma[block_y][block_x],&pred_sample[0][0],&residual[0][0],16);显然它是先计算了后面的3*lambda,也就是3*λ(QP)然后再计算了SAD值,int Intra_sad_4x4函数中 pred_cur0 = _lo(_amemd8_const(pred )); pred……
猜您喜欢
推荐内容
开源项目推荐 更多
热门活动
热门器件
用户搜过
随便看看
热门下载
热门文章
热门标签
评论