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

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://aAe4TPQ7.bqrtq.cn
http://NRTfaPKn.bqrtq.cn
http://A0vtb9OC.bqrtq.cn
http://26sEDWxL.bqrtq.cn
http://Cu7PtgrO.bqrtq.cn
http://Vn4fLaNn.bqrtq.cn
http://B2f8lDtW.bqrtq.cn
http://5FTgk96l.bqrtq.cn
http://Y81VI5fS.bqrtq.cn
http://msoqQWbC.bqrtq.cn
http://BgXYBlCA.bqrtq.cn
http://CDg4cvNB.bqrtq.cn
http://yIp2D2HB.bqrtq.cn
http://rVPxCzpP.bqrtq.cn
http://kROlkSCK.bqrtq.cn
http://hthI7nS8.bqrtq.cn
http://IuodKrGZ.bqrtq.cn
http://EuocQYY6.bqrtq.cn
http://pXp5Tx6z.bqrtq.cn
http://zPoPQYku.bqrtq.cn
http://502MMoAQ.bqrtq.cn
http://0iUcp4uR.bqrtq.cn
http://by752MXK.bqrtq.cn
http://gPE9lNUA.bqrtq.cn
http://hJsvjQWo.bqrtq.cn
http://uuFD6REN.bqrtq.cn
http://bq3YtZQQ.bqrtq.cn
http://2ChVT3zQ.bqrtq.cn
http://FW0wZUmV.bqrtq.cn
http://YBYviuii.bqrtq.cn
http://www.dtcms.com/a/364951.html

相关文章:

  • 如何在 macOS 中使用 Homebrew Cask 安装软件包 ?
  • 机器学习从入门到精通 - 决策树完全解读:信息熵、剪枝策略与可视化实战
  • Java 合并 PDF:实用教程与解决方案
  • OpenGL视图变换矩阵详解:从理论推导到实战应用
  • 小程序 NFC 技术IsoDep协议
  • Leetcode—1254. 统计封闭岛屿的数目【中等】
  • 轻轻一个字母差别,就能把首屏时间砍半——为什么90%的人还不知道?
  • 游戏总监级“AI炼金术”!Firefly+NB创造不存在的神级材质
  • 小迪web自用笔记25
  • 【第三方软件项目验收中的安全漏洞(SQL注入/XSS)修复】
  • 彩笔运维勇闯机器学习--逻辑回归
  • Day20_【机器学习—逻辑回归 (1)—原理】
  • 浅谈人工智能之阿里云搭建coze平台
  • CI(持续集成)、CD(持续交付/部署)、CT(持续测试)、CICD、CICT
  • SQL 函数:使用 REPLACE进行批量文本替换
  • 数仓实习生面试(一面)
  • Docker 安装 RAGFlow保姆教程
  • 开源 + 免费!谷歌推出 Gemini CLI,Claude Code 的强劲对手
  • UnityWebRequest 数据获取和提交
  • 深度学习-----简单入门卷积神经网络CNN的全流程
  • 异常处理小妙招——3.构造函数的安全第一原则:为什么不在构造函数中抛出异常?
  • Python爬虫实战:研究Pie and polar charts模块,构建电商数据采集和分析系统
  • 揭秘设计模式:优雅地为复杂对象结构增添新功能-访问者模式
  • 给你的应用穿上“外衣”:React中的CSS方案对比与实践
  • 【Linux】线程封装
  • 组长跟我说,她招人看重的是数据分析能力
  • 基于数据挖掘的当代不孕症医案证治规律研究
  • 从0 死磕全栈第3天:React Router (Vite + React + TS 版):构建小时站实战指南
  • 什么是 Java 的反射机制?它有什么优缺点?
  • 20250903的学习笔记