- 原文地址:https://aomediacodec.github.io/av1-spec/av1-spec.pdf
- 没有梯子的下载地址:AV1 Bitstream & Decoding Process Specification
- 摘要:这份文档定义了开放媒体联盟(Alliance for Open Media)AV1视频编解码器的比特流格式和解码过程。
- 规范:此文档规定了开放媒体联盟(Alliance for Open Media)AV1比特流格式和解码过程。
术语和定义
对于本文档的目的,以下术语和定义适用:
- AC coefficient :AC 系数,在至少一个维度上频率索引非零的任何变换系数。
- Altref:替代参考帧, 在帧间编码中可以使用的帧。
- Base layer:基础层,即spatial_id 和 temporal_id 的值为 0 的层。
- Bitstream:比特流,即编码一系列帧生成的比特序列。
- Bit string:比特字符串,有限数量的比特的有序字符串。最左边的比特是最显著比特(MSB),最右边的比特是最不显著比特(LSB)。
- Block:块,样本的正方形或矩形区域。
- Block scan:块扫描,量化系数的特定序列排序。
- Byte:字节,8 比特的比特字符串。
- Byte alignment:字节对齐,如果比特的位置是从比特流中第一个比特的位置开始的八的整数倍,则该比特是字节对齐的。
- CDEF:约束方向增强滤波器,设计用于根据识别方向自适应地过滤块的滤波器。
- CDF:累积分布函数,表示符号值小于或等于给定水平的概率乘以 32768 的函数。
- Chroma:色度,一个色度样本值矩阵或其中一个色度差分信号的单个样本值。注意:色度的符号是 U 和 V。
- Coded frame:编码帧,解码过程之前一帧的表示形式。
- Component:分量,三个样本值矩阵中的一个(一个亮度矩阵和两个色度矩阵)或其单个样本值。
- Compound prediction:复合预测,一种帧间预测,通过混合两个参考帧的预测来计算样本值(混合的帧可以是相同的或不同的)。
- DC coefficient:DC 系数,在两个维度上频率索引都为零的变换系数。
- Decoded frame:解码帧,解码器从比特流重构出的帧。
- Decoder:解码器,解码过程的一个实现。
- Decoding process:解码过程,从语法元素推导出解码帧的过程,包括在使用电影颗粒合成过程之前和过程中使用的任何处理步骤。
- Dequantization:去量化,通过缩放量化系数来获得变换系数的过程。
- Encoder:编码器,编码过程的一个实现。
- Encoding process,编码过程,本规范中未指定的过程,它生成符合本文档描述的比特流。
- Enhancement layer:增强层,spatial_id 和 temporal_id 的值大于 0 的层。
- Flag:标志,二进制变量 - 一些变量和语法元素(例如 obu_extension_flag)使用“标志”一词来描述,以突出语法元素只能等于 0 或 1。
- Frame:帧,视频信号在空间域的表示,由一个亮度样本矩阵(Y)和两个色度样本矩阵(U 和 V)组成。
- Frame context:帧上下文,解码过程中使用的一组概率。
- Golden frame:黄金帧,可以在帧间编码中使用的帧。通常黄金帧以更高的质量编码,并用作多个帧间帧的参考。
- Inter coding:帧间编码,使用帧间预测来编码一个块或帧。
- Inter prediction:帧间预测,使用之前解码的帧推导出当前帧的预测值的过程。
- Intra coding:帧内编码,使用帧内预测来编码一个块或帧。
- Intra frame:帧内帧,仅使用帧内预测压缩的帧,可以独立解码。
- Intra prediction:帧内预测,使用同一已解码帧中先前解码的样本值推导出当前样本的预测值的过程。
- Inverse transform:逆变换,将变换系数矩阵转换为空间样本值矩阵的过程。
- Key frame:关键帧,一种帧内帧,当显示时会重置解码过程。
- Layer:层,一组具有相同spatial_id和相同 temporal_id 值的 tile group OBUs。
- Level:级别,对语法元素和变量值的一组定义的约束。
- Loop filter:环路滤波,应用于重建的滤波过程,旨在减少块边缘的可见性。
- Luma:亮度,代表与主要颜色相关的单色信号的样本值矩阵或单个样本值。注意:表示亮度的符号是 Y。
- Mode info:模式信息,在解码过程中包含有关如何预测块的指示的语法元素。
- Mode info block:模式信息块,一个 4x4 或更大尺寸的亮度样本值块及其对应的两个色度样本值块(如果存在)。
- Motion vector:运动矢量,用于帧间预测的二维矢量,将当前帧指向参考帧,其值提供了从当前帧中的位置到参考帧中位置的坐标偏移。
- OBU:开发比特流单元,所有结构都打包在“开放比特流单元”或 OBUs 中。每个 OBU 都有一个头部,提供包含数据(有效载荷)的识别信息。
- Parse:解析,从比特流中获取语法元素的过程。
- Prediction:预测,包括帧间或帧内预测的预测过程的实现。
- Prediction process:预测过程,使用预测器估算已解码样本值或数据元素的过程。
- Prediction value:预测值,在下一个样本值或数据元素的解码过程中使用的值,它是先前解码的样本值或数据元素的组合。
- Profile:配置文件,在规范部分中定义的语法、语义和算法的子集。
- Quantization parameter:量化参数,用于在解码过程中缩放量化系数的变量。
- Quantized coefficient:量化系数,去量化前的变换系数。
- Raster scan:光栅扫描,将二维矩形光栅映射到一维光栅,一维光栅的条目从二维光栅的第一行开始,然后扫描第二行、第三行等。每一行光栅都按从左到右的顺序扫描。
- Reconstruction:重建,获得已解码残差和相应预测值的加和。
- Reference:参考,一组标签中的一个,每个标签都映射到一个参考帧。参考帧是存储先前解码帧和相关信息的区域。
- Reserved:保留,一个特殊的语法元素值,将来可能会用于扩展本部分。
- Residual:残差,重建样本与相应预测值之间的差异。
- Sample:样本,构成帧的基本元素。
- Sample value:样本值,样本的值。对于 8 位帧,这是一个从 0 到 255(含)的整数;对于 10 位帧,这是一个从 0 到 1023(含)的整数;对于 12 位帧,这是一个从 0 到 4095(含)的整数。
- Segmentation map:分割图,一个 3 位数字,包含图像中每个 4x4 块的段归属。每个参考帧都存储一个分割图,允许新帧使用先前编码的图。
- Sequence:序列,编码比特流的最高级语法结构,包括一个或多个连续的编码帧。
- Superblock:超块,一个 tile 内块四叉树的最高级别。所有超块在帧内大小相同,并且是正方形。超块可以是 128x128 亮度样本或 64x64 亮度样本。一个超块可能包含 1 个或 2 个或 4 个模式信息块,或者可以在每个方向上分割成 4 个子块,这些子块可以进一步细分,形成块四叉树。
- Switch Frame:切换帧,可以用作序列之间切换点的帧。切换帧覆盖所有参考帧,而不强制使用帧内编码。目的是允许在流媒体使用案例中,视频可以以小块(比如1 秒时长)编码,每个块都以切换帧开始。如果可用带宽下降,服务器可以开始发送较低比特率编码的块。当这种情况发生时,帧间预测使用现有的较高质量参考帧来解码切换帧。这种方法允许在不产生完整关键帧成本的情况下切换比特率。
- Syntax element:语法元素,比特流中表示的数据元素。
- Temporal delimiter OBU:时间分割符OBU,表明随后的 OBUs 将与时间分隔符之前的上一帧有不同的表示/解码时间戳。
- Temporal unit:时间单元,时间单元由与特定、不同时间点相关联的所有 OBUs 组成。它由一个时间分隔符 OBU 和所有随后的 OBUs 组成,直到但不包括下一个时间分隔符。
- Temporal group:时间组,一组定期在视频序列中使用其时间预测结构的帧。
- Tile:瓦片,可以独立编码和解码的帧的矩形区域,尽管跨瓦片边缘仍然应用环路滤波。
- Transform block:变换块,用作逆变换过程输入的矩形变换系数矩阵。
- Transform coefficient:变换系数,在变换块中包含的标量值,被认为是在频率域中的值。
- Uncompressed header:未压缩的头部,要解码的帧的高级描述,编码时未使用算术编码。
原文