摘要

  • RFC 9924 中的解码能力是按 Profile 分别声明的 Profile—Level—Band 三元组:Profile 管算法特征,Level 管亮度采样率与分块几何,Band 管该 Level 内的最高编码数据率。
  • 语法合规、能力声明、成功解码、资源受控、感知质量和生产流程接受是六层不同证据;实现链接或产品勾选框不能替后几层作证。

设想一张后期制作接收单:设备栏只勾了“APV”,旁边写着一个很高的 Profile。于是 8K、分块、高码率素材被送进队列。头部能够解析,任务却在画面出现前停止——这台解码器针对该 Profile 声明的 Level 与 Band,并不覆盖素材的图像负荷和码率。

另一份素材能出图,却带有解码器不认识的元数据;规范要求不能处理这种类型。第三份处于声明范围内并完成解码,仍被调色室判定不适合交付。这些都不是具名产品测试或事故,而是同一个语言问题:“支持”把本应由不同人、不同记录作出的判断压成了一个符号。

RFC 9924《Advanced Professional Video》于 2026 年 2 月发布,是 Informational 的 Independent Stream 文档。RFC 信息页明确说明,它不是 IETF 的产品,也不代表 IETF 共识。RFC Editor 的发布决定记录了一份规范,不能替任何实现、部署或商业价值背书。

APV 面向专业录制与后期制作,设计目标包括低时延、高吞吐和反复解码再编码。它只做帧内编码,采用分块以便并行处理;文档讨论 2K、4K、8K 素材达到每秒数 Gbit 的编码数据率,色度形式从 4:0:0 到 4:4:4:4,并覆盖 alpha、HDR 与用户自定义元数据。语法能表示 10 至 16 bit,但当前定义的 Profile 只支持 10 与 12 bit。语法空间里存在 16 bit,不等于今天已有一个 16-bit Profile。

Profile 是第一道边界。它选定算法特征的子集,以及该 Profile 的合规解码器必须支持的限制。换句话说,Profile 是一组解码义务,不是处理器速度、显存大小、最高帧率或生产许可。

Level 管另一类问题:亮度采样率与 tile 几何,也就是单位时间要接住多少图像工作、如何划分。Band 再在一个 Level 内设定最高编码数据率。一条码流完全可以使用解码器认识的 Profile,却超出它对该 Profile 声明的图像负荷或数据通道。

因此,能力声明必须是三元组,而且逐个 Profile 表达。RFC 9924 允许同一实现对不同 Profile 支持不同 Level。若产品表只在总栏勾一次“APV”,就把规范刻意保留的边界丢掉了;一个高 Profile 名称也不能推导出所有 Profile 都有最高吞吐或内存余量。

规范还刻意不提供可单独选择的解码器 option。原因并非实现毫无差异,而是每多一个可选开关,编码器可能产生、解码器必须预判的组合就会膨胀。把变化限制在明确可声明、可测试的 Profile、Level 和 Band 上,是在控制互操作状态空间。

保留标识符的规则最能显示三者并不相同。对于夹在已定义值之间的保留 profile_idc,解码器不得推定它代表“中间能力”,因为 Profile 是特征集合,不是一条连续的数字楼梯。对于已定义 Level 或 Band 之间的保留 level_idc、band_idc,却必须按中间能力解释,因为它们描述有序的资源范围。字段都长得像数字,语义秩序却故意不同。

这正是“最小初始规范”的工程形态:共享义务要窄,但不能含糊。实现应兑现声明的语法族与有界负荷,遵守保留值语义,并避免让发送方无法预测的私有 option 菜单。其余优化可以留给本地,三元组本身不能被一句“兼容”抹去。

运行代码提供下一层收据。OpenAPV 仓库及其码流测试集、Android 16 的 APV 资料、FFmpeg 8.0 发布页与所引编码器提交都是具体实现证据。网页可达,只能证明冻结时这些材料存在,不能证明完整合规、设备覆盖、吞吐、画质、安全或生产采用。

即使“合规”也要拆层。先检验码流语法,再核对三元组是否落在该 Profile 的声明能力内;随后观察特定 build 是否成功解析与重建;另行测量时间、内存与错误路径;用公开方法比较输出;最后由生产负责人按画质、元数据和流程条件作出接受决定。成功出图不自动跨越后面几道门。

安全边界让这种拆分不能省略。固定头部位与 padding 可被预测,所以 APV 不应与易受已知明文攻击的密码或模式组合;编解码语法本身不提供保密。恶意或不合规载荷不得造成内存越界或过度资源消耗,实现还要检查整数溢出。最终返回错误,却先耗尽资源,并不是健壮失败。

攻击面也不只在解码端。恶意流可能经转码网关进入编码器,所以不能以“编码器问题较少”为由取消输入防护。解码器不得处理无法识别的元数据类型,错误解释可能把它留在未知状态。文档说承载内容“不打算作为可执行内容”,也不等于畸形媒体天然安全。

证据冻结时,RFC 9924 勘误页可访问;勘误状态只属于文档维护,不能充当实现证书。“感知无损”同样是设计目的,不是对某段素材、某块显示器、某种观察方法的公开测量结果。

Heng Lu 的运行代码优先要求把权威放回真正运行过的 parser、decoder、encoder 与 gateway;最小初始规范说明为何共享三元组要明确、后续选择留给本地;现实层则阻止 RFC 发布、语法有效、声明能力、资源受控、成功输出、感知质量与生产接受被压成同一层。

真正有用的收据要同时记录码流和解码器针对该 Profile 的三元组,并附图像尺寸、帧率、tile、色度、alpha、bit depth、码率、decoder build 与配置、解析和解码结果、峰值资源、元数据处置、参考比较方法、输出身份以及最终生产决定。“支持 APV”可以帮助发现产品,却不能成为合同。

来源