PyTorch 媒体处理架构大重构:TorchCodec 统一编解码,TorchVision/Audio 专注变换

ADK PyTorch官方 / ADK编译 2026-10-06 5 分钟 137 次浏览
速览导读 / Summary

PyTorch 官方宣布重构媒体处理生态,将分散的编解码能力统一至 TorchCodec,而 TorchVision 和 TorchAudio 则聚焦于张量变换。此次更新解决了多后端维护难题,提升了 CUDA 视频编解码性能,并确立了 ABI 稳定性,显著降低了开发者集成成本。

Key Insights / 核心看点

  • 1 PyTorch 官方宣布重构媒体处理生态,将分散的编解码能力统一至 TorchCodec,而 TorchVision 和 TorchAudio 则聚焦于张量变换。此次更新解决了多后端维护难题,提升了 CUDA 视频编解码性能,并确立了 ABI 稳定性,显著降低了开发者集成成本。

PyTorch 媒体处理架构大重构:TorchCodec 统一编解码,TorchVision/Audio 专注变换

随着多模态大模型(如 Vision-Language Models 和 Diffusion Models)的爆发,图像、视频和音频的输入输出处理已成为模型训练与推理的核心环节。PyTorch 团队在过去两年中,对媒体处理栈进行了重大整合,确立了新的三库协作架构。

核心变革:从分散到统一

过去,媒体编解码能力分散在 TorchVision 和 TorchAudio 中,导致 API 入口混乱、后端维护困难。例如,TorchVision 曾拥有 PyAV、C++ FFmpeg 和 CUDA/NVCUVID 三个后端,而 TorchAudio 则混合了多种音频解码库。这种碎片化不仅增加了用户的认知负担,也分散了开发团队的优化精力。

为了解决这些问题,PyTorch 推出了以下架构调整:

  1. TorchCodec:编解码的唯一入口

    • 职责:负责所有媒体(图像、视频、音频)的解码(Decoding)与编码(Encoding)。
    • 优势:统一了 CPU 和 CUDA 后端,消除了多后端维护的复杂性。官方明确指出,TorchCodec 在 CUDA 视频解码方面比旧实现更具性能优势。
    • 状态:旧版 API 已废弃或移除,用户必须迁移至此库。
  2. TorchVision & TorchAudio:专注变换(Transforms)

    • 职责:专注于对解码后的张量进行预处理、增强和变换。
    • 策略:模型、数据集和管道(Pipelines)等功能已不再由这两库主动维护,转而推荐社区生态(如 HuggingFace)。
    • 价值:通过缩小范围,团队能更专注于最活跃且不可替代的变换功能。

技术亮点与价值

此次重构不仅优化了架构,更带来了实质性的技术提升:

  • 性能优化:集中开发资源使得 TorchCodec 在 GPU 加速场景下表现更优,特别是针对 CUDA 视频解码的优化。
  • 维护简化:将复杂的依赖(如 6 个版本的 FFmpeg、NVIDIA SDK 及各种图像库)封装在 TorchCodec 中,大幅降低了 TorchVision 和 TorchAudio 的构建与 CI 复杂度。
  • ABI 稳定性:三个库现已实现 ABI 稳定,不再强绑定特定 PyTorch 版本,确保了长期使用的兼容性。

开发者实战指南

新的协作模式清晰明确:TorchCodec 负责“读写”(文件 <-> 张量),TorchVision/Audio 负责“处理”(张量 <-> 张量)。

视频处理示例

import torch
from torchcodec.decoders import VideoDecoder
from torchvision.transforms import v2

# 1. 解码:TorchCodec 将视频帧转为张量
clip = VideoDecoder("video.mp4")[10:20]  # 输出: FrameBatch, uint8, (10, C, H, W)

# 2. 变换:TorchVision 处理张量
transform = v2.Compose([
    v2.RandomResizedCrop(224),
    v2.ToDtype(torch.float32, scale=True),
])
batch = transform(clip.data)

音频处理示例

from torchcodec.decoders import AudioDecoder
from torchaudio.transforms import MelSpectrogram

# 1. 解码
samples = AudioDecoder("audio.mp3").get_all_samples()  # 输出: AudioSamples

# 2. 变换
mel = MelSpectrogram(sample_rate=samples.sample_rate)(samples.data)

编码方向

编码流程完全相反,同样由 TorchCodec 的 Encoder 类(如 VideoEncoder, JpegEncoder)完成,将处理好的张量还原为文件。

总结

PyTorch 此次重构标志着其媒体生态进入了成熟期。通过剥离非核心功能并统一底层 I/O,PyTorch 不仅提升了自身的性能与可维护性,也为开发者提供了一个更清晰、更高效的开发路径。对于需要处理媒体数据的团队来说,明确区分“编解码”与“变换”的职责,是适应这一新架构的关键。

"我们将所有媒体 I/O 统一在 TorchCodec 中,让用户不再需要猜测哪个库提供了所需的解码器,而是使用一个设计完整的库。"


官方团队/CEO 发言

SEO 标题 PyTorch 媒体处理栈大升级:TorchCodec 统一编解码,TorchVision 专注变换

SEO 描述 PyTorch 官方宣布重构媒体处理生态,TorchCodec 统一图像、视频、音频编解码,TorchVision 和 TorchAudio 聚焦张量变换。详解架构变更、性能提升及迁移指南。

SEO 关键词 PyTorch, TorchCodec, TorchVision, 媒体处理, 编解码, 张量变换, AI 工具

同主题深度资讯

查看更多 →
官方动态 2026-10-1

PyTorch 官方最新动态:Modernizing Table Batched Embeddings with FBTriton

This post explores the FBTriton kernel design for Table Batched Embedding (TBE) forward and backward passes. These core operators handle embedding lookups across thousands of sharded GPUs within recom

PyTorch官方 / ADK编译 3分钟
官方动态 2026-10-08T18:13:46+00:00

PyTorch 官方最新动态:Session-Aware Agentic Inference with NVIDIA Dynamo

Agentic workloads change the traffic an inference server sees. Unlike single-turn chat, an agent session can involve a large initial prefill, repeated model calls, and subagents running in parallel, w

PyTorch官方 / ADK编译 3分钟
模型发布 2026-10-08

PyTorch 原生集成 Spyre 加速器:打造企业级推理新范式

PyTorch 官方宣布通过 `torch-spyre` 库将 IBM 的 Spyre 数据流 AI 加速器打造为 PyTorch 的原生设备。此次更新实现了从设备身份、内存分配器到编译图的全链路映射,支持 `tensor.to("spyre")` 等标准操作。核心突破在于利用 Spyre 的独立计算与数据移动流水线,在保持 PyTorch 易编程性的同时,实现了极低延迟的推理加速,为 IBM Z 及 Power 系统上的企业级 AI 应用提供了统一且高效的执行路径。

PyTorch官方 / ADK编译 5 分钟
模型发布 2026-10-08

Pixmax 发布全链路游戏素材生成平台,覆盖研发至买量全阶段

Pixmax 正式发布专为游戏行业打造的 AI 素材生成平台,深度理解游戏开发工作流,支持从研发立绘、场景贴图到宣发买量素材的全链路生产。平台通过“上传 - 生成 - 批量 - 适配”四步流程,解决风格统一与批量产出难题,显著降低美术成本与试错周期,助力中小团队提升生产效率。

Pixmax官方 / ADK编译 3 分钟
code · 免费+付费
★ 5.0 · 120评测
P

PyTorch

开源的机器学习库

PyTorch 是开源的机器学习库,主要用在深度学习研究和应用开发,以灵活性、易用性和强大的 GPU 加速功能而闻名。PyTorch 提供动态计算图,支持开发者在运行时动态修改模型结构,非常适合快速开发和实验。PyTorch 支持张量计算、自动微分(torch.autograd)和模块化的神经网络构建(torch.nn)。PyTorch 拥有丰富的社区支持和大量的预训练模型及教程,是学术界和工业界的首选深度学习框架之一。

查看 PyTorch 使用教程与功能