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

AV1 OBU Frame解析

字段名

bit数

意义

show_existing_frame

1

解码器读取解析frame_to_show_map_idx字段确定显示DFB第几帧根据frame_to_show_map_idx索引DFB找到对应已解码直接送出以供显示而不需要当前OBU负载进行常规解码过程

frame_type

1

指定类型KYE_FRAMEINTER_FRAMEINTRA_ONLY_FRAME 帧内预测

show_frame

1

指示是否立即显示show_frame=1

disable_cdf_update

指定是否符号解码过程禁用CDF更新

allow_screen_content_tools

1

控制是否允许编码器压缩过程使用针对屏幕内容专用工具

force_integer_mv

1

强制使用像素运动矢量标志设置1视频所有的运动矢量都必须使用像素京都禁止子像素精度运动矢量

frame_size_override_flag

1

编码分辨率更新

order_hint

是一个整数表示当前显示顺序位置

render_size()

--> render_and_frame_size_different

AV1用于指示是否显示指定渲染尺寸标志位配合render_size() 函数使用不影响解码影响显示

allow_intrabc

AV1用于控制是否启用复制IntraBC标志适用于镇内屏幕内容压缩效果显著但会禁用环路滤波器

disable_frame_end_update_cdf

用于控制是否当前结束更新CDF模型标志用于错误恢复并行处理或者特殊优化场景不影响当前解码影响后续上下文建模

tile_info()

->uniform_tile_spacing_flag

AV1用于指示Tile是否等于大小划分标志位1Tile均匀分布0Tile大小需要指定

uniform_tile_spacing_flag

increment_tile_cols_log2

是一个逐位递增开关用来均匀划分模式下水平Tile数量最小允许逐步调到编码器想要2幂次

increment_tile_rows_log2

quantization_parames

帧级量化 + 可选局部变量/滤波偏移打成一个解码根据base_q_idx 算出全局qp然后根据delta_q_ , delta_lf_,以及segmentation 微调

base_q_idx

当前基础量化步长索引Y分量AC系数步长由此决定

delta_q_y_dc

Y分量DC系数量化偏移用于计算Y分量DC系数实际量化步长DC系数通常允许有不同量化精度

delta_q_u_dc

U分量DC系数量化偏移&delta_q_u_dc

delta_q_u_ac

U分量AC系数量化偏移&delta_q_u_ac

using_qmatrix

使用量化矩阵

含义一个标志位是否使用自定义量化矩阵来代替默认量化

segmentation_parames

segmentation_enabled

启用分段总开关1表示使用分段功能0表示不使用如果0后续所有分段参数都不存在

delta_q_present

存在量化偏移

一个标志位指示帧头是否包含任何delta_q*字段(delta_q_y_dc, delta_q_u_dc) 如果0所有delta_q*字段都不存在视为0

1 标志这是解析delta_q_*字段前提条件

loop_filter_params()

loop_filter_level[0]

含义滤波器强度级别通常索引对应不同的方向/边界水平边界亮度滤波强度

loop_filter_level[1]

垂直边界亮度滤波器强度

loop_filter_level[2]

水平边界色度滤波强度

loop_filter_level[3]

垂直边界色度滤波强度

loop_filter_sharpness

滤波锐度控制滤波器在平滑效应保留细节之间权衡值越大保留细节越多但是效应也可能明显

loop_filter_delta_enabled

启用环路滤波偏移

loop_filter_delta_update

是否允许根据参考帧运动模式基础滤波强度loop_filter_level进行微调

update_ref_delta[0]

如果loop_filter_delta_update1这些字段提供具体偏移

update_ref_delta[1]

针对不同参考帧偏移

update_ref_delta[2]

update_ref_delta[3]

update_ref_delta[4]

update_ref_delta[5]

update_ref_delta[6]

update_ref_delta[7]

update_mode_delta[0]

update_mode_delta[1]

cdef_params

CDEF是一种减少振铃效应增强边缘滤波器这些参数包括滤波器阻尼系数

lr_params

超分辨率/循环滤波参数

lr_type[0]

指定每个参考帧使用分辨率类型

lr_type[1]

lr_type[2]

lr_unit_extra_shift

控制滤波过程位移操作

lr_uv_shift

tx_mode_select

变换模式选择

reduced_tx_set

1 表示使用一个简化计算量更小变换类型集合0表示使用完整变换类型集合

tile_group_obu

这不是一个字段而是OBU类型OBUAV1基本语法单元tile_group_obu 表示这个OBU包含实际数据Tile group, 而不是序列头帧头元数据

解析这些字段需要严格按照AV1比特流规范定义语法进行这是一个上下文相关过程

1 首先解析 seq_header获取全局配置

2 然后解析frame_header

3 frame_header你会遇到一个标志delta_q_present

4 如果标志1直到接下来解析delta_q_y_dc字段如果0跳过

5 接着遇到segmengtation_enabled 标志根据决定是否解析一大段segmentation_params

6 类推

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

相关文章:

  • 系统编程day2-系统调用
  • 游戏世代网页官网入口 - 游戏历史记录和统计工具
  • Guidelines for using Adaptive Platform interfaces
  • 2025年互联网行业专业认证发展路径分析
  • GO学习记录九——数据库触发器的使用+redis缓存策略
  • 第4章 存储系统
  • GitLab Milestones 深度解析:选型、竞品、成本与资源消耗
  • 视频打不开怎么办?教你一键修改默认打开方式
  • zynq 开发系列 新手入门:GPIO 连接 MIO 控制 LED 闪烁(SDK 端代码编写详解)
  • React实现音频文件上传与试听
  • 服务器安装vnc服务端
  • jenkins安装和配置流程
  • 深度学习——CNN实例手写数字
  • 归一化的定义与作用
  • ip地址是硬件自带的还是被分配的
  • 《单链表经典问题全解析:5 大核心题型(移除元素 / 反转 / 找中点 / 合并 / 回文判断)实现与详解》
  • 面试高频问题总结
  • 基于 Socket 和多线程的简单 Echo 服务器实现
  • [UT]记录uvm_config_db的错误:get中的第二个参数设置为this
  • 小企业环境-火山方舟和扣子
  • 【FPGA】DDS信号发生器
  • 【C++】Vector核心实现:类设计到迭代器陷阱
  • < 自用文 主机 USC 记录:> 发现正在被攻击 后的自救
  • 天然苏打水生产的原水抽取与三重除菌的3D模拟开发实战
  • AI大模型对决:谁是最强智能?
  • MySQL 清空表实战:TRUNCATE 与 DELETE 的核心差异与正确用法
  • 小白成长之路-develops -jenkins部署lnmp平台
  • 淘宝京东拼多多爬虫实战:反爬对抗、避坑技巧与数据安全要点
  • EDVAC:现代计算机体系的奠基之作
  • JMeter下载安装及使用入门