AV1 Encoder源码剖析(三)

2023-12-21  本文已影响0人  yongbaoqiji

本文就文AV1 Encoder源码剖析(二)的Encode流程继续深挖。

3. AV1编码流程

……

3.5 av1_encode_sb_row

av1_encode_sb_row

av1_encode_sb_row主要完成遍历Tile中不同Superblock的编码。具体执行Superblock编码的是encode_nonrd_sd和encode_rd_sb函数。

主要包含:

3.6 av1_rd_use_partition

PARTITION_TYPES
这里先简单插入下关于帧内帧间预测的介绍:
帧内预测:
AV1提供了71中不同的帧内预测模式,帧内预测是仅需依赖当前帧而不需依赖参考帧的方式。
对于只包含帧内预测的关键帧,仅需考虑自身不同帧内预测模式搜索过程的率失真值。
但即使如此,对于每个块和partition分区搜索所有的帧内预测模式仍然是不切合实际的,因此做一些剪枝搜索是必要的。
帧间预测:
对于帧间预测,需要参考一个或者多个已编码帧或arf帧,划分分区搜索量是巨大的。除去71种帧内搜索,还需要考虑单参考帧帧间参考56种模式,如果是两帧帧间参考就需要12768种模式,36708种帧内帧间混合模式。可见,工作量巨大。

如下是,Partition划分的不同模式定义。

partition划分并不是一个独立的模块,依赖到帧内/帧间预测/变换了,这两者是紧密结合块来进行的。下面是基于RD的分区划分实现:


partition

接下来的编码流程分析将在AV1 Encoder源码分析(四)中介绍。

未经声明,禁止转载,喜欢的给个赞吧!

上一篇 下一篇

猜你喜欢

热点阅读