当前位置: 首页 > ds >正文

AV1 HEADERS详解

av1 sequence header

字段名

比特数

含义说明

seq_profile

3

配置文件Profile定义了一组编码工具限制要求

0 Main profile

1 high profile

2 professional profile

3 reserved

still_picture

1

标识是否静态图片

1 此系列包含一帧

0 序列包含多帧

reduced_still_picture_header

1

是否使用简化帧头结构

如果still_picture=1, 标志必须1

如果still_picture=0 标志可以0或者1使用简化头可以节省比特,但是限制一些高级功能

timing_info_present_flag

1

是否提供时序信息如果1后面跟着timing_info()结构

decoder_model_info_present_flag

1

是否提供解码模型信息用于缓冲期管理. 如果1后面跟着decoder_model_info(). 通常只在需要精确时间控制场景使用

initial_display_delay_present_flag

1

是否提供初始显示延迟用于某些特定显示控制

operating_points_cnt_minus_1

5

指示操作点数量操作点用于可伸缩视频编码SVC多层编码每个操作对应一个解码子流对于简单的不分层视频0

后续循环operating_point_{i}

每个操作点解码所必需参数等级

frame_width_bits_minus_1

4

用于计算max_frame_widthmax_frame_height比特数N = frame_width_bits_minus_1 + 1,那么/N比特表示

frame_height_bits_minus_1

4

max_frame_width_minus_1

N

视频的最大宽度(以像素为单位)实际最大宽度 = max_frame_width_minus_1 +

1

max_frame_height_minus_1

N

视频真的最大高度(以像素为单位)实际最大高度 = max_frame_height_minus_1 + 1

frame_id_numbers_present_flag

1

是否使用ID好, 用于参考帧管理错误恢复

use_128x128_superblock

1

超级尺寸AV1基本处理单元

enable_filter_intra

1

是否允许使用帧内预测滤波工具

enble_intra_edge_filter

1

是否允许使用帧内边缘滤波工具

enable_interintra_compound

1

是否允许使用inter_intra复合模式

enable_masked_compound

1

是否允许使用遮蔽复合模式

enable_warped_motion

1

是否允许使用反射运动补偿

enable_dual_filter

1

是否允许使用可分离插值滤波器

enable_order_hint

1

是否启用顺序提示Order Hint, 用于支持参考帧列表灵活管理

enable_jnt_comp

1

是否允许使用联合复合预测

enable_ref_frame_mvs

1

是否允许使用基于参考帧运动向量推导

seq_force_screen_content_tools

2

强制使用屏幕内容工具选择

0 编码器每帧决定

-1 强制不使用

-2 强制使用

-3 保留

order_hint_bits_minus_1

3

如果enable_order_hint为真字段定义order_hint比特数

enable_superres

1

是否允许使用超分分辨率编码工具工具允许编码低于最大尺寸的帧然后解码上采样

enable_cdef

1

是否允许使用约束定向增强滤波CDEF一种强大环路恢复滤波器

enable_restoration

1

是否允许使用环路恢复滤波器Loop Restoration filter 这是最强大环路滤波器包括自导滤波器滤波器

color_config()

可变

颜色配置结构如果seq_profile > 0Main profile一定存在

high_bitdepth

1

比特深度标志

twelve_bit

1

12比特深度标志

bit_depth

推导像素比特深度

如果seq_profile0 mainbit_depth = 8 + (high_bitdepth * 2)

否则:bit_depth = 8 + high_bitdepth * (twelve_bit?4:2)

mono_chrome

1

是否为单色视频

color_description_present_flag

1

是否提供颜色描述信息

color_primaries

8

颜色(BT709,BT2020)

transfer_characteristics

8

传输特性 SRGB,HLG,PQ

matrix_coefficients

8

矩阵系数 BT709, BT2020

color_range

1

颜色范围 0 studio swing 1 full swing

subsampleing_x

subsampling_y

1

色度采样格式

如果mono_chrome=1, 这两项都为0

否则subsamping_xsubsampling_y 1表示4:2:0

chroma_sample_position

2

色度样本未知仅在subsampling_x或者subsampling_y 1存在

film_grain_parames_present

1

是否允许数据OBU携带电影颗粒参数电影颗粒合成是在解码后进行后处理操作

av1 obu header

字段名

比特数

详细解析

obu_forbidden_bit

1

禁用含义保留位以供未来标准使用

解析要求 必须0任何接受1OBU解码器必须将其视为损坏比特流拒绝解码这是一个简单错误检测机制

obu_type

4

1 OBU_SEQUENCE_HEADER

2 OBU_TEMPORAL_DELIMITER

3 OBU_FRAME_HEADER

4 OBU_FILE_GROUP

5 OBU_METADATA

6 OBU_FRAME

7 OBU_REDUNDANT_FRAME_HEADER

16 OBU_PADDING

obu_extension_flag

1

含义指示当前OBU header是否紧跟着一个可选obu_extension_header

0 不存在 obu_extension_header

1 存在 obu_extension_header 需要继续解析下来1字节

obu_has_size_field

1

大小字段标志

含义指示当前OBU Header之后是否包含一个明确标识payload长度obu_size字段

详解

0 不存在obu_size字段payload长度必须通过其他方式推断

1 存在 obu_size字段字段使用LEB128编码明确指出了payload字节数

obu_reserved_1bit

1

含义该位保留位以供未来标准使用

解析要求在当前版本AV1标准中必须0解码器应该忽略发送必须将其设置0

可选扩展头

字段名

比特数

详细解析

obu_extension_header

1

OBU扩展头

存在痛啊就当且仅当obu_extension_flag 1存在

temporal_id

3

时间标识符

用于可伸缩视频编码SVC标识当前OBU所属时间层级数值越大标识帧率越高但是下层有依赖性解码器可以根据需要丢弃temporal_idOBU来降低帧率

spatial

2

空间标识符

用于可伸缩视频编码SVC标识当前OBU所属空间层级分辨率数值越大分辨率越高解码器可以解码所需spatial_id层级

externsion_header_reserved_3bits

3

扩展头保留

解析要求必须为0保留未来使用

obu_size

可变

OBU栽荷大小

存在条件当且仅当obu_has_size_field1存在

编码方式使用LEB128可变长度编码

http://www.xdnf.cn/news/19809.html

相关文章:

  • 专为 SOC 分析师和 MSSP 设计的威胁搜寻指南
  • flink中的窗口的介绍
  • mysql5.6+分页时使用 limit+order by 会出现数据重复问题
  • Mysql杂志(七)
  • Shell脚本入门:从零到精通
  • C# 原型模式(C#中的克隆)
  • “转”若惊鸿,电磁“通”——耐达讯自动化RS485转Profinet点亮能源新章
  • 【NestJS】HTTP 接口传参的 5 种方式(含前端调用与后端接收)
  • 【卷积神经网络】卷积神经网络的三大核心优势:稀疏交互、参数共享与等变表示
  • C++之基于正倒排索引的Boost搜索引擎项目介绍
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘black’问题
  • 【提示词】...(后续单元)在Prompt 的作用
  • 【linux仓库】万物至简的设计典范:如何用‘文件’这一个概念操纵整个Linux世界?
  • 在Docker中安装MySQL时3306端口占用问题
  • 论文学习30:LViT: Language Meets Vision Transformerin Medical Image Segmentation
  • 使用云手机进行游戏搬砖划算吗?
  • 国内真实的交换机、路由器和分组情况
  • 【保姆级喂饭教程】把chrome谷歌浏览器中的插件导出为CRX安装包
  • LeetCode 925.长按键入
  • 数据结构:希尔排序 (Shell Sort)
  • 【51单片机】【protues仿真】基于51单片机呼叫系统
  • 基于Force-closure评估的抓取计算流程
  • 生成知识图谱与技能树的工具指南:PlantUML、Mermaid 和 D3.js
  • 【AI报表】JimuReport 积木报表 v2.1.3 版本发布,免费可视化报表和大屏
  • 【leetcode】222. 完全二叉树的节点个数
  • Altium Designer中的Net-Tie:解决多网络合并与电气隔离的利器
  • CPTS-Vintage 票据,基于资源的约束委派 (RBCD),DPAPI密钥
  • 自制扫地机器人(二) Arduino 机器人避障设计——东方仙盟
  • Veo Videos Generation API 对接说明
  • 鸿蒙NEXT表单选择组件详解:Radio与Checkbox的使用指南