AV1 Bitstream & Decoding Process Specification

AV1:Alliance for Open Media Video 1

作者

Peter de Rivaz, Argon Design Ltd

Jack Haughton, Argon Design Ltd

编解码工作组主席

Adrian Grange, Google LLC

文档编制

Lou Quillio, Google LLC

带勘误表1的1.0.0版本

带勘误表1的1.0.0版本的AV1比特流规范取代了所有以前版本的AV1比特流规范,最值得注意的是版本1.0.0,现在已经过时了。

该版本对应于Git标签v1.0.0-errata1 AOMediaCodec / av1-spec项目,其内容与参考解码器(由libaom v1.0.0-errata1提供)一致,已经过验证。

如需对此文档发表评论,请使用邮件列表或问题跟踪器。

版权

Copyright 2018, The Alliance for Open Media

许可信息可参见

http://aomedia.org/license/

摘要

本文档定义了Alliance for Open Media AV1视频编解码器的比特流格式和解码过程。

1. 范围

本文件规定了开放媒体联盟AV1比特流格式和解码过程。

2. 术语和定义

就本文而言,以下术语和定义适用:

交流系数

任何变换系数,其频率指数在至少一个维度上是非零的。

Altref (Alternative reference frame)

备选参考帧,可用于帧间编码的帧。

基层

spatial_id和temporal_id值等于0的图层。

比特流

通过编码帧序列生成的比特序列。

位串

具有有限位数的有序字符串。

最左边的位是最高位(MSB),最右边的位是最低有效位(LSB)。

正方形或矩形的样本区域。

块扫描

量化系数的指定序列排序。

字节

一个8位的位串。

字节对齐

若某一位的位置与比特流中的第一位的位置间隔为8的整数倍,则该位是字节对齐的。

CDEF (Constrained Directional Enhancement Filter)

约束定向增强滤波器,旨在根据识别方向自适应地进行块过滤。

CDF (Cumulative Distribution Function)

累积分布函数,表示特征值小于或等于给定值的概率时间(32768)。

色度

两个色差信号的样本值矩阵或者单个样本值。(色度的表示符号为U和V)

编码帧

解码处理之前的帧数据的表示。

分量

三个样本值矩阵之一(一个亮度矩阵和两个色度矩阵)或者其单个样本值。

复合预测

一种帧间预测,通过将来自两个参考帧的预测混合在一起来计算样本值(混合的帧可以相同或不同)。

直流系数

变换系数,其频率指数在两个维度上均为零。

解码帧

解码器从比特流中重构帧。

解码器

解码过程的一个实例。

解码过程

从语法元素解析出解码帧的过程,包括其之前和之后使用的任何处理步骤。

去量化

通过缩放量化系数获得变换系数的过程。

编码器

编码过程的一个实例。

编码过程

本规范中未指定的过程,用于生成符合本文档所描述的比特流。

增强层

具有spatial_id大于0或temporal_id大于0的图层。

标识位

二进制变量,使用单词flag来描述一些变量和语法元素(例如obu_extension_flag),以突出该语法元素只能等于0或1。

空间域中视频信号的表示方式,由一个亮度样本矩阵(Y)和两个色度样本矩阵(U和V)组成。

帧上下文

解码过程中使用的一组概率。

黄金帧

可用于帧间编码的帧。通常,黄金帧具有更高的编码质量,并用作多个帧间帧的参考。

帧间编码

使用帧间预测对一个块或帧进行编码。

帧间帧

通过参考先前解码的帧而压缩的帧,其可以使用帧内预测或帧间预测。

帧间预测

使用先前解码的帧导出当前帧的预测值的过程。

帧内编码

使用帧内预测对一个块或帧进行编码。

帧内帧

仅使用可以独立解码的帧内预测进行压缩的帧。

帧内预测

使用相同解码帧中的先前解码的样本值导出当前样本的预测值的过程。

逆变换

将变换系数矩阵变换为空间样本值矩阵的过程。

关键帧

帧内帧,在显示时重置解码过程。

具有相同spatial_id和相同temporal_id的值的一组OBU切片。

等级

语法元素和变量值的一组已定义约束。

环路滤波器

一种滤波过程,用于降低图像重建时产生的块边缘的可见性。

亮度

样本值矩阵或表示与原色相关的单色信号的单个样本值。(亮度的表示符号为Y)

模式信息

为块发送的语法元素,其中包含了如何在解码过程中进行块预测的指示。

模式信息块

大小为4x4或更大的亮度样本值块及其两个对应的色度样本值块(如果存在色度样本)。

运动矢量

用于帧间预测(当前帧使用参考帧作为参考)的二维矢量,其值提供了从当前帧中的位置到参考帧中的位置的坐标偏移。

OBU (Open Bitstream Units)

所有结构都以“开放比特流单元”进行打包。每个OBU都有一个数据头,为其所包含的数据(有效负载)提供标识信息。

解析

从比特流中获取语法元素的过程。

预测

预测过程的实现包括帧间或帧内预测。

预测过程

使用预测器估计解码的样本值或数据元素的过程。

预测值

该值是在下一个样本值或数据元素的解码过程中使用先前解码的样本值或数据元素的组合结果。

Profile

单独定义的语法、语义和算法的子集。

量化参数

用于在解码过程中缩放量化系数的变量。

量化系数

去量化前的变换系数。

光栅扫描

将二维矩形栅格映射到一维栅格,其中一维栅格的条目从二维栅格的第一行开始,然后继续扫描第二行和第三行,依此类推。每个栅格行按从左到右的顺序扫描。

重建

获得解码残差和相应预测值的相加结果。

参考

一组标签中的一个,每个标签都映射到参考帧。

参考帧

用于先前解码的帧和相关信息的存储区域。

保留的

一种特殊的语法元素值,可用于在将来扩展此部分。

残差

重建样本与相应预测值之间的差异。

样本

构成帧的基本元素。

样本值

样本的值。对于8位帧,是0~255的整数;10位帧为0~1023;12位帧为0~4095。

分割图

包含图像中每个4x4块的段关联的3比特数字。为每个参考帧存储分割图,以允许新帧使用先前的编码图。

序列

编码比特流的最高级语法结构,包括一个或多个连续编码帧。

超级块

Tile中的顶层的块四叉树。帧内的所有超级块都具有相同的大小并且是正方形的。超级块可以是64x64或者128x128的亮度样本。超级块可以包含1或2或4个模式信息块,或者可以在每个方向上被平分为4个子块,这些子块本身可以进一步分块,以形成块四叉树。

切换帧

帧间帧,可用于序列之间需要切换的位置。切换帧会覆盖所有参考帧,而不会强制使用帧内编码。目的是允许流式用例,其中视频可以以小块(例如1秒持续时间)编码,每个块以切换帧开始。如果可用带宽下降,则服务器可以开始从较低比特率编码发送块。当发生这种情况时,帧间预测使用现有的更高质量的参考帧来解码切换帧。这种方法允许比特率切换而没有完整的关键帧的开销。

语法元素

比特流中表示的数据元素。

时间分隔符OBU

指示后续的OBU将与时间分隔符之前的最后一帧的OBU具有不同的呈现/解码时间戳。

时间单位

时间单位由与特定的不同时刻相关联的所有OBU组成。它由时间分隔符OBU和后续的所有OBU组成,直到但不包括下一个时间分隔符。

时间组

一组帧,其时间预测结构在视频序列中周期性地使用。

Tile

帧的矩形区域,可以独立编解码,尽管仍然应用跨越Tile边缘的环路滤波。

变换块

矩形变换系数矩阵,用作逆变换过程的输入。

变换系数

被认为是在频域中的标量值,包含在变换块中。

未压缩的数据头

在不使用算术编码的情况下编码的,用于解码过程的帧的高级描述。

《AV1 Bitstream Decoding Process Specification》,译名:AV1比特流及解码规范-Chapter 01~02相关推荐

  1. 《AV1 Bitstream Decoding Process Specification》,译名:AV1比特流及解码规范-Chapter 05-语法结构-Section 01~08

    Table of Contents 5.1 概述 5.2 低开销比特流格式 5.3 OBU语法 5.3.1 通用OBU语法 5.3.2 obu_header语法 5.3.3 obu_extension ...

  2. 《AV1 Bitstream Decoding Process Specification》,译名:AV1比特流及解码规范-Chapter 05-语法结构-Section 11~12

    Table of Contents 5.11 Tile组OBU语法 5.11.1 tile_group_obu语法 5.11.2 decode_tile语法 5.11.3 clear_block_de ...

  3. 假定参考解码器(HRD)及它如何用来检查比特流与解码器一致性

    有两类比特流是HRD 一致性检查的对象:第一类比特流称为类型I 比特流,为 NAL 单元流,只包含有VCL NAL 单元与在比特流里对于所有访问单元的填充NAL 单元数据.第二类比特流, 称为类型II ...

  4. Vivado:Generate Bitstream比特流写入失败的解决方法

    1.问题描述 进行 Synthesis 和 Implementation 过程均没有问题,但是执行 Generate Bitstream 时显示失败. 出现问题时的引脚约束文件如下: 问题总结:逻辑引 ...

  5. [ZYNQ随笔] uboot移植中bitstream比特流加载问题:zynq_validate_bitstream: Bitstream is not validated yet

    问题介绍 由于项目设计需要,需要频繁的更换比特流文件,之前使用petalinux生成的boot.bin每次都需要合并比特流,比较麻烦,遂换了一个uboot版本(米联客默认的u-boot),将bitst ...

  6. HEVC函数入门(24)——比特流

    NB_vol_1的博文在比特流之前讲了去方块滤波和SAO,这个部分我打算放到后面,这里先看一下比特流.本文整理自http://blog.csdn.net/nb_vol_1/article/detail ...

  7. 三、E906移植----FPGA生成可用的比特流并实现串口发送

    三.E906移植----FPGA生成可用的比特流并实现串口发送 书接上回,第二篇把基本工程搭建了起来,跑了下综合看了看.本文就开始具体的修改了,连蒙带猜,修修补补,最终完成了板上串口发送"H ...

  8. xilinx Vivado的使用详细介绍(2):创建工程、添加文件、综合、实现、管脚约束、产生比特流文件、烧写程序、硬件验证

    xilinx Vivado的使用详细介绍(2):创建工程.添加文件.综合.实现.管脚约束.产生比特流文件.烧写程序.硬件验证 Author:zhangxianhe 新建工程 打开Vivado软件,直接 ...

  9. 简谈FPGA比特流结构

    比特流是一个常用词汇,用于描述包含FPGA完整内部配置状态的文件,包括布线.逻辑资源和IO设置.大多数现代FPGA都是基于SRAM的,包括Xilinx Spartan和Virtex系列.在FPGA上电 ...

最新文章

  1. Day-16 面向对象03 类与类之间的关系
  2. uml 时序图_设计模式:UML是怎么回事?设计原则?
  3. UVa11100 The Trip,2007(贪心)
  4. 视频会议系统在企业网络中的关键利益—Vecloud微云
  5. 住酒店套房的注意事项
  6. 01.query的分类-条件查询和组合查询
  7. 可以编程的 “骰子” :带 LED、陀螺仪,WiFi!
  8. JIURL文档-Linux的虚拟内存与分页机制(x86-64位)(一)
  9. debian apache php mysql,Debian下配置APACHE2+MYSQL5+PHP5
  10. android 网络编程面试题,Android面试题整理
  11. 为什么磁盘慢会导致Linux负载飙升?
  12. mysql 优化实例之索引创建
  13. I2S 总线学习:I2S驱动WM8978
  14. 大数据预测(大数据核心应用)
  15. Brute-Force 算法与KMP算法
  16. k8s-搭建虚拟机centos7环境,虚拟机固定IP地址
  17. 服务器的全部作用,王者荣耀有哪些服务器_王者荣耀全部服务器功能详解_玩游戏网...
  18. 基于51单片机智能热水器控制系统设计
  19. 快手如何引流的话术?在快手引流精准粉丝的技巧
  20. 如何使用UE去除复制文本中的空格、换行符和TAB

热门文章

  1. KB和KiB的区别是什么?
  2. Redis添加至windows服务
  3. Android 使用 audit2allow 工具添加SELinux权限
  4. 块内拉升lisp_晓东CAD家园-论坛-LISP/VLISP程序库-[原创]:一个递增复制文字和属性块的程序 - Powered by Discuz!...
  5. 零一的昔日织-2022
  6. 利用 iCloud Drive 来同步 Xcode 配置
  7. Android 资源
  8. 2002-2019年300个地级市专利获得情况
  9. 嵌入式Linux技术(转)
  10. 命名实体识别(基于规则-无监督学习-机器学习-深度学习)