摘要

  • RFC 9828 允许完整 JPEG 2000 码流形成之前发送该图像的首个 RTP 包,但这只适用于规定的单瓦片进度顺序。
  • resync、扩展序号、精密时间戳、质量层和分辨率字段为恢复与筛选提供线索,却不证明接收端已经成功恢复、保持完整画质或按时显示。
  • 验收必须分别记录会话约束、编码进度、实际发包、网络到达、接收状态、解码输出和同一时基上的端到端结果。

低时延项目最容易选错起点。发送网卡出现首包,计时器就停止;接收墙仍可能没有主头、没有足够缓存,也没有一帧可以显示。于是一个真实而狭窄的数值,被扩写成整个服务的结论。

RFC 9828 于 2025 年 8 月作为 IETF Proposed Standard 发布。它把每幅 JPEG 2000 图像视为独立码流:SOC 后到首个 SOT 的主头包含全局编码信息,通常缺少它就无法解码。新负载格式区分 Main Packet 与 Body Packet;前者携带文档定义的 Extended Header,后者只携带正文码流,一个负载不得跨越两幅图像。

允许边编码边发送的关键不只是“分包”。码流进度决定哪些空间位置、分量、分辨率和质量信息先出现。ORDH 描述进度顺序及是否标记同步点。规范明确:只有值 4 的 PCRL 和值 6 的 PRCL 允许 sub-codestream latency;多瓦片码流必须把 ORDH 置零。因此,抓到早发首包之前,先要证明它属于允许的单瓦片进度合同。

同步点只给出重新开始的位置

Body Packet 可用 ORDB 表示含有 resync point,再用 POS 给出负载内偏移、PID 指定 precinct。接收端即使丢失、损坏或有意丢弃了较早 RTP 包,也可能从这个位置继续处理。多瓦片情况下不能这样标记。

这项机制没有补回缺失字节。它没有保证解码器保留了正确主头,没有证明下一 precinct 被接受,也没有说明恢复后的图像达到业务阈值。真正的证据应包括丢包图样、接收状态、实际选择的偏移、解码错误和恢复后的输出,而不是单独保存 ORDB=1。

序号也有明确边界。RTP 固定头携带低 16 位,ESEQ 携带高 8 位,组成 24 位扩展序号。它帮助跨越 16 位回绕追踪顺序,却不能把未到达的包变成到达,也不能自动区分网络丢失、主动按质量筛除和抓包点遗漏。每条序号记录必须绑定观测位置。

发包时钟样本不等于接收端恢复时钟

同一图像的所有 RTP 包共享 90 kHz presentation timestamp。PTSTAMP 再记录发送时钟的 12 个低位,接收端可利用更频繁的变化加速时钟恢复。发送端只有在能准确生成时才应把 P 置一;同一 timestamp 的相邻包发送间隔不得超过 4095 tick,约 45 ms。

这是有用的校验条件,不是同步证书。字段正确不证明接收端估算正确,不证明 jitter buffer 合适,也不证明采集、编码和显示时钟已对齐。RFC 5450 处理实际发送时间偏离名义时间的更一般情况,但同样没有把 RTP 头变成玻璃到玻璃秒表。

QUAL 和 RES 给筛选提供了可解释边界。接收端或中间系统可以丢弃只贡献更高质量层或更高分辨率的包。较低清晰度图像成功出现,说明降级路径可能工作;它不等于完整质量被保存。验收必须同时记录目标分辨率、目标质量层与实际输出。

状态复用进一步扩大了接收差异。R=1 允许跨码流复用主头信息,C=1 允许用缓存的非空 code-block 替代后续空块。规范直接指出:发送端无法确定接收缓存,因为包可能在途中丢失,接收端也可能中途加入。省下的带宽因此换来了接收状态的证明责任。

会话声明只到能力入口为止

IANA 登记的 video/jpeg2000-scl 可声明像素格式、样本格式、最大尺寸、扫描结构和应用定义的能力集合。SDP 能传递这些约束。参数缺失时,相应性质就是未指定;能力 URI 的含义来自定义它的应用。

因此,应保存每个接收端真正接受的参数,并与解码器版本、启用 profile、内存限制和 admission 结果关联。语法允许宽高达到 2^32−1,RFC 要求实现约束资源并在超限时平稳失败。“识别媒体类型”不能证明某条流适配当前内存、算力、带宽或显示器。

RFC 5371 提供较早的 JPEG 2000 RTP 背景,RFC 3550 定义 RTP 框架。RFC Editor 信息页、纯文本版、Datatracker 与勘误查询 说明的是规范身份和范围,不是产品性能报告。

本文把 Heng Lu 的 Running-Code Primacy 用作编辑纪律:薄的共同合同负责互操作,运行中的编码器、网络和接收端决定现实。Minimum Initial Specification 帮助分开共同字段与接收端本地资源决定;Reality, Not Advocacy 要求结论停在证据边界。这是本文作者的应用,不是对 IETF 动机的归因。

完整链条至少有八张收据:会话协商、允许的码流进度、真实发送字段与时刻、具名网络点的到达、接收端头部与缓存、同步恢复结果、实际解码质量与分辨率、同一时基下的采集到显示。首包很重要,但它只是第一张。