x264 帧内rdo的过程

本文探讨了x264编码器中的宏块预测函数,重点聚焦于帧内预测阶段的RDO过程,包括i_type和i_mode的选择、重建块成本计算及模式优化策略。通过实例剖析macroblock_encode_p8x8_internal中的i_cost重估,揭示了如何在精度提升与编码效率间寻求平衡。

宏块预测函数,x264_macroblock_analyse

帧内预测代码部分:

mb_analyse_intra 帧内预测部分,上次代码分析过。

帧内rdo分三步1 预测i_type和i_mode, 计算i_cost

 

2 根据1预测的结果,进行帧内编码,然后解码,将残差加到预测块上,然后重新计算i_cost

 

3 如果rdo强度较大,再枚举一次i_mode, 重新计算一次i_cost. 

上面函数的做的是在不改变imode的情况下通过重建块重新计算整个块的i_cost。

 因为帧内预测的时候,还没有重建块,智能通过周围的像素预测当前块的值。

现在以及得到i_type 了,就先按照这个type编码看看,然后再解码得到重建后的画面,然后把残差加在之前的预测块的值上面。

以macroblock_encode_p8x8_internal为例,它先按照模式编码,然后再解码,构造重建块。然后在ssd_md()中通过刚才得到的重建块,再计算一次cost, 这个cost肯定比前面预测块的cost精确。

如果mbrd的值更大,就需要重新枚举一下所有的i_mode,  尝试编码,然后重建块,再比较得到一个最佳的rd_cost,然后选定为i_mode。

 

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值