[AV1] AV1 Specification

news/2024/4/16 2:12:46

这篇文章介绍下研究AV1必须要熟悉的AV1 Specification,也称为AV1 标准文档。

返回AV1专栏目录

AV1 标准文档

AV1的标准文档是可以通过AOM的官方Github页面拿到最新版本的。这里是链接。如果因为某些原因访问不到网站的话,可以在CSDN下载频道下载。

下载下来的文档首页为
AV1 Bitstream & Decoding Process Specification Cover
我没有记错的话,全文应该是681页。从首页图中也可以看出,发布的时间正是参考软件libaom-av1的Version 1.0.0 Errata 1发布的时候,具体关于Reference Software的内容参考我的另一篇博文 [AV1] AV1 Reference Software

How to 阅读标准文档

标准文档一共分为六个部分,共计15章如下:

  1. Scope
  2. Terms and definitions
  3. Symbols and abbreviated terms
  4. Conventions
  5. Syntax structures
  6. Syntax structures semantics
  7. Decoding process
  8. Parsing process
  9. Additional tables
  10. 10章之后的内容 Annex

第一章我们一般跳过,就是说的这本标准所定义的内容。

从第二章开始就有点内容了,第二章可以看看术语,了解关于AV1的一些名词的解释,这些术语大部分都是视频编解码的标准间所通用的,比如说 luma,chroma,block等用语。

第三章也是一些术语,但这些术语是代码中的定义,一般是宏定义,这些量都是定死了的,一般声明为C++中的const常量或者直接预处理define出来,看这些有利于进一步读懂源码。

第四章是一些约定俗成的符号定义,这些一般过一遍就好,这些符号会在后面的semantics部分解释每一个syntax的时候,如果要计算,那么就会用到,用到的时候再回来翻就行了。

第五章就真正来到了重要的地方了,这是语法结构部分,解码器解析的时候就是按照这个表来进行一个个地读取syntax,这个过程叫做parsing,我们挑一个条目来看看:
syntax structure example
这是OBU的头部语法(OBU是啥?看看 [AV1] Open Bitstream Unit)这里代码的写法与实际代码中相对应。

从这里我们可以看出,解析一个obu_header,需要一共解析五个syntax,这里的syntax就是用黑体表示,并且右边Type中有值的项目,五个syntax分别为

  • obu_forbidden_bit
  • obu_type
  • obu_extension_flag
  • obu_has_size_field
  • obu_reserved_1bit

那右边的 f(1)是什么意思呢?我们可以看到第4.8节,4.9节,4.10节,这里告诉你这些个表达到底是什么意思。(这里的f(1)代表从流中读出一个比特,解析为unsigned number)

第六章就是针对第五章中的每一个syntax的含义解释了,这个含义解释的专业术语叫semantic,称为语义,
syntax semantic
在这里,我们可以看到第五章的几个syntax的具体含义。

第七章是解码过程,就是利用我们第五章parsing出来的syntax,然后正式进入解码流程,最终还原为reconstructed frame/sequence的过程描述。

第八章是parsing过程,这章主要讲解我们之前说的syntax所说的读取一个比特,读取多个比特,或者使用算数编码读取比特的这些熵编码过程的逆向过程的实现。

第九章就是一些表格,包含标准里根据经验或者大量实验得出的一些固定的预设值,这些值(table)都可以直接在代码里找到。

第十章开始就是附录了,包括profile,level,比特流格式等材料。

做视频编解码,这本标准,肯定是少不了的。


http://www.ppmy.cn/news/470352.html

相关文章

hp EVAPERF 性能监控 用法总结

evaperf有两种用法,一种是和windows下的performance monitor工具结合,加了一些计数器,使用时可以使用perfmon打开performance monitor工具,然后点击工具栏里边的 号,加入你喜欢看的东西,如Total Host req/…

.....01

网络安全总体要求 安全级别分类 华为安全要求 A 保护用户的通信和隐私、系统访问控制、敏感数据保护 合法监听的安全 个人数据(隐私)保护 禁止未公开接口 访问通道控制 敏感数据与加密 日志审计 软件完整性保护 B 增强系统防攻击能力 口令安全…

day-01

java之父——詹姆斯-高斯林 javaEE开发工具eclipse的安装 勾选project的build automatically可以自动生成class文件 点击Pregerences→General→Appearance→Colors and Fonts→Text Font可以更换代码字体 右键→new→project→javaproject 可以创建新的java项目 用jav…

【费用预测】基于matlab粒子群算法优化ELM神经网络预测费用【含Matlab源码 1378期】

⛄一、粒子群算法简介 1 粒子群算法简介 1.1 引言 自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在。生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,每一个个体都遵循:避免与邻域个体相撞&…

EVE安装与简单使用教程

一、简单安装教程 第一步:eve软件下载(汉化、英文) 参考网址:http://eve-ng.cn/doku.php,里面很全,根据自己需求进行下载,我下载的汉化版 第二步:用VMware虚拟机打开下载好的文件&a…

潮玩盲盒APP系统开发

盲盒抽奖App软件界面应该包括以下几个部分: 首页:首页需要展示正在进行的抽奖活动、热门盲盒商品和刚刚开奖的中奖名单,让用户快速了解当前的热门活动和优惠。 抽奖详情页:抽奖详情页需要展示抽奖主题、奖品图片、中奖规则…

vue+springboot 登录注册功能

一、前端 1、搭建前端项目 需要用到node的npm,先下载安装node,官网https://nodejs.org/zh-cn/ 在命令窗口输入命令: npm -v node -v npm install webpack -g npm install vue-cli -g 在本地新建一个项目文件夹,打开命令窗口cd到…

心之壁的详细解释(看了这个可以更了解EVA的精神)

有人说心就好像天空,有时候会阳光普照,有时候会阴雨连绵。 而人的心灵的往往不只是如此的简单。 人从生下来开始,就受到关怀,如果受不到关怀,我们也不可能会成人。 也就是说我们都是沐浴在爱与关怀下成长起来的。 …

ES6-ES12所有特性详解

文章目录 第一章 ECMASript相关介绍1.1、什么是ECMA1.2、什么是ECMAScript1.3、什么是ECMA-2621.4、ECMA-262历史1.5、谁在维护ECMA-2621.6、为什么要学习ES61.7、ES6兼容性 第二章 ES6特性ES20152.1、let2.2、const2.3、变量的解构赋值2.4、模板字符串2.5、简化对象写法2.6、箭…

python二级

la=eva1(input("请输入一个数字:")#如果键盘输入123,经过input"123”,eval->123 print() jieba

电动汽车集群并网的分布式鲁棒优化调度matlab

目录 目录 1 简介 2 关键知识点 2.1 三类电动汽车模型 2.2 发电机启停约束 2.3 ADMM算法迭代部分 3 程序结果 ​视频讲解 1 简介 电动汽车的数据模型种类繁多,但是用到比较高阶数学方法的并不多,本次分享的程序是下图所示的文章。 采用分布鲁棒…

Vue + Spring Boot 项目实战(十三):使用 Shiro 实现用户信息加密与登录认证

重要链接: 「系列文章目录」 「项目源码(GitHub)」 本篇目录 前言一、用户信息加密1.hash 算法2.加盐加密3.核心代码 二、使用 Shiro 认证登录1.Shiro 核心概念2. Shiro 配置与登录验证3.测试 三、下一步 前言 距离上次写文章已经快一个月…

EVA2.0:大规模中文开放域对话预训练模型

前言 对话系统一直是一个难点,尤其是在开放领域,因为闲聊的话题各种各样,涉及到方方面面,所以无疑给其研究带来了巨大的挑战,今天给大家介绍一篇最新的paper即EVA2.0。先上一张paper中的效果图,感受一波&a…

R语言rmarkdown knit导出的时候显示Error in eval找不到对象

Rmarkdown运行时可以正常运行,但是使用Knit导出Word时报错: Error in eva1(expr ,envir,enc1os) :找不到对象user 这是因为当执行Knit命令时,R会把Rmarkdown里面的代码重新执行一遍,而且 不会使用R Wo…

新世纪福音战士剧场版破

新世纪福音战士新剧场版:破 目录[隐藏] 概要 预告 登场人物 登场EVA 制作人员 明日香改名 新世纪福音战士新剧场版:破 《 福音战士新剧场版:破》(日语:ヱヴァンゲリヲン新剧场版:破)是2009年重新制作的Evangelion动画电…

PMP练习题 第五弹

前言:文中类似“有误a”的字样,是作者做题时自己选错的错误答案 1、 一个关键干系人坚持团队用正式的文档广泛地记录软件代码。产品负责人解释说,虽然一定数量的文档是必要的,但团队成员最好把时间花在开发软件上,因…

探讨太阳能热水器的安全隐患和雷电防护措施

太阳能热水器是指利用太阳光加热原理来获得热水的装置。随着科学技术的发展,太阳能热水器因其新颖、环保、节能且方便而深受消费者的喜爱,安装数量逐年增加。我国太阳能资源丰富,尤其是在广袤的西部中小城镇、农村地区,家家户户几…

ArcGis系列-坐标系转换

Arcgis的工程项目可以添加各种类型的空间资源,比如数据库空间表、shp文件,每张空间表的坐标系可能都会有差异,把他们放到一个工程里时可以统一设置坐标系。 本文将介绍ArcGis三个需要坐标转换的场景: Arcgis Pro设置项目坐标GP分…

golang中的闭包是什么以及闭包的使用场景有哪些?

1 什么是闭包 闭包是指一个函数(或函数值)与其引用的外部变量(自由变量)的绑定关系。换句话说,闭包是一个函数和其相关的引用环境的组合体。 在闭包中,内部函数可以访问外部函数的变量,即使外…
最新文章