Prhub

#27236 [diffusion] Speed up lossless realtime RGB transport

原始 PR 作者 mickqian 合并时间 2026-06-04 16:59 文件变更 1 提交数 1 评论 2 代码增减 +5 / -1

执行摘要

gzip 压缩级别从 1 降为 0,加速 RGB 传输

PR body明确指出,需要避免在实时CPU预算内压缩已经无损的帧负载('avoid spending realtime CPU budget compressing already lossless frame payloads'),以加速实时RGB传输。

该PR变更简洁高效,性能收益显著且风险可控。值得精读以了解实时传输场景下的性能优化思路。

讨论亮点

PR无review评论,仅两个bot评论(配额限制和CI重跑指令),无技术讨论。

实现拆解

  1. python/sglang/multimodal_gen/runtime/utils/realtime_video.py中新增模块级常量_RAW_RGB_DELTA_GZIP_LEVEL = 0(第30行)。
  2. build_delta_gzip_raw_rgb_payload函数中,将zlib.compressobjlevel参数由字面量1改为引用该常量(第51-53行),使压缩级别降为0(仅存储/不压缩)。
  3. 添加注释说明:保持gzip帧格式以实现无损传输,同时不消耗实时压缩预算。
  4. 纯源码改动,无测试、配置或部署配套变更。
文件 模块 状态 重要度
python/sglang/multimodal_gen/runtime/utils/realtime_video.py 多模态生成 modified 5.31

关键符号

build_delta_gzip_raw_rgb_payload

关键源码片段

python/sglang/multimodal_gen/runtime/utils/realtime_video.py core-logic

核心变更文件:新增常量 `_RAW_RGB_DELTA_GZIP_LEVEL = 0`,并替换 `zlib.compressobj` 的压缩级别参数,实现性能优化。

# 定义 gzip 压缩级别为 0(仅存储,不压缩),
# 避免在实时 CPU 预算内对已无损的帧负载进行压缩。
_RAW_RGB_DELTA_GZIP_LEVEL = 0
​
​
def build_delta_gzip_raw_rgb_payload(
    frames: list[bytes],
    *,
    reference_frame: bytes | None = None,
) -> bytes:
    # ... 前置校验 ...
​
    previous = (
        np.frombuffer(reference_frame, dtype=np.uint8)
        if reference_frame is not None
        else None
    )
    # 使用 level=0 保持 gzip 帧格式,但不进行实际压缩,
    # 从而在保留无损传输能力的同时大幅降低 CPU 开销。
    compressor = zlib.compressobj(
        level=_RAW_RGB_DELTA_GZIP_LEVEL, method=zlib.DEFLATED, wbits=31
    )
    compressed_chunks = []
    for frame in frames:
        # ... delta 计算与压缩逻辑 ...

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

  1. 帧负载尺寸增加:PR body指出payload从约6.8-8.3 MiB增至13.7 MiB,但仍低于现有的16 MiB实时payload保护阈值,在可控范围内。
  2. 兼容性风险:restore_delta_gzip_raw_rgb_payload使用zlib.decompress,gzip格式(wbits=31)保持不变,仅压缩级别降为0,因此接收端无需任何修改,可以正确解压。
  3. 回归风险低:更改仅涉及一个常量的替换,逻辑不变。
  1. 用户:实时RGB传输吞吐量提升约22.4%,延迟显著降低(raw_payload_build从约226ms降至约20ms),无功能性损失。
  2. 系统:网络带宽消耗增加(payload大小翻倍约),但仍低于16MiB阈值,影响有限。
  3. 团队:变更极小,易于理解和维护。
负载尺寸增大 缺少测试配套

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论