AV1技术学习:Transform Coding

对预测残差进行变换编码,去除潜在的空间相关性。VP9 采用统一的变换块大小设计,编码块中的所有的块共享相同的变换大小。VP9 支持 4 × 4、8 × 8、16 × 16、32 × 32 四种正方形变换大小。根据预测模式选择由一维离散余弦变换 (DCT) 和非对称离散正弦变换 (ADST) 核组合构成的一组可分离的二维变换类型。AV1继承了VP9中的变换编码方案,并在变换块大小和变换核方面扩展了其灵活性。

一、Transform Block Size

AV1 将最大变换块大小扩展到 64 × 64。最小变换块大小仍然是 4×4。此外,还支持 N × N/2、N/2 × N、N × N/4、N/4 × N 的矩形变换块大小。

AV1 对所有的帧间编码块采用递归变换块划分方法,捕获局部固定区域,提高变换编码效率。

初始变换块大小与编码块大小匹配,除非编码块大小大于64 × 64,在这种情况下,使用 64 × 64 变换块大小。对于亮度分量,最多允许划分两次。N × N、N × N/2、N × N/4编码块的递归划分规则如下图所示。

帧内编码块继承了统一的变换块大小方法,即所有变换块具有相同的大小。与帧间编码的情况类似,最大变换块大小与编码块大小相匹配,并且对于亮度可以向下划分两次。方形和矩形编码块大小的可用选项如下图所示。

色度分量在统计上的变化要小得多。因此,变换块尺寸设置为使用可用最大变换块尺寸。

二、Transform Kernels

和 VP9 中每个编码块只有一个变换核类型不同,AV1允许每个变换块可以独立选择自己的变换核。将二维可分离变换核扩展为四个一维变换核的组合:DCT、ADST、flipped ADST (FLIPADST)和 identity transform (IDTX),得到16个二维变换核。FLIPADST 是 ADST 变换核的反转。变换核的选择是基于统计和适应各种边界条件。DCT核被广泛应用于信号压缩,并且近似于一致相关数据的最优线性变换 Karhunen-Loeve 变换(KLT)。另一方面,ADST 近似于假设单侧平滑的 KLT,因此适合编码一些帧内预测残差。类似地,FLIPADST 从另一端捕获单侧平滑。此外 IDTX 可以适应在块中包含尖锐变换并且DCT和ADST都无效的情况。此外,IDTX与其他一维变换相结合,提供了一维变换本身,因此可以更好地压缩残差中的水平和垂直模式。下图给出了维度 N = 8 时四个一维变换核对应的波形。

即使使用 SIMD ,逆变换也占解码器计算成本的很大一部分。蝶形结构允许在普通矩阵乘法上大幅度减少乘法运算,即从O(N2)减少到O(NlogN),其中N是变换维数。因此,它非常适合大的变换块大小。注意,由于推导的原始 ADST 无法对蝶形结构进行分解,因此 AV1 在变换块大小为 8 × 8 及以上时采用了和图24所示的 ADST 的变体。

当变换块大小较大时,边界效应不明显,此时所有正弦变换的变换编码增益基本收敛。因此只有 DCT 和 IDTX 用于尺寸为32 × 32及以上的变换块。

相关推荐
关键帧Keyframe2 天前
音视频面试题集锦第 7 期
音视频开发·视频编码·客户端
DogDaoDao3 天前
libaom 源码分析:帧内方向预测模式
音视频·视频编解码·av1·libaom·帧内预测·方向预测·预测编码
音视频牛哥9 天前
Android平台RTSP|RTMP播放器高效率如何回调YUV或RGB数据?
音视频开发·视频编码·直播
音视频牛哥20 天前
H.266与H.265、AV1、H.264对比
h.265·hevc·h.264·av1·vvc·h.266·avc
DogDaoDao1 个月前
Mac 下编译 libaom 源码教程
macos·xcode·视频编解码·cmake·av1·libaom
音视频牛哥1 个月前
如何设计开发RTSP直播播放器?
音视频开发·视频编码·直播
音视频牛哥1 个月前
Android平台GB28181实时回传流程和技术实现
音视频开发·视频编码·直播
音视频牛哥1 个月前
RTMP、RTSP直播播放器的低延迟设计探讨
音视频开发·视频编码·直播
音视频牛哥1 个月前
电脑共享同屏的几种方法分享
音视频开发·视频编码·直播