TorchCodecがメディアのデコードとエンコードを集約、他のライブラリは変換処理に注力
メディアスタックはデコードおよびエンコードと変換処理を分離し、各ライブラリが独自のリリーススケジュールに従えるようになった。
AIイラストメディアのデコードとエンコードはTorchCodecに集約され、TorchVisionとTorchAudioは変換処理に注力することになった。この再編は画像、動画、音声を対象とし、従来は断片化していたインターフェースとバックエンドの集合に取って代わるものだ。
ユーザーにとって、この分担は、メディアをテンソルへ取り込み、テンソルから書き出す処理と、その間に行われる演算を切り分けるものだ。TorchCodecは、ファイルやエンコード済みバイト列をテンソルにデコードする処理と、テンソルをメディアファイルにエンコードし直す処理を担う。TorchVisionは画像と動画の変換処理を提供し、TorchAudioは音声の変換処理を担う。
この変更は既存のソフトウェアにも影響する。これまでTorchVisionとTorchAudioが提供していたデコードおよびエンコードのインターフェースは、非推奨になるか削除された。これらのライブラリのモデル、データセット、パイプラインはもはや積極的には開発されておらず、それらの機能はエコシステム内の他の代替手段が担っている。
Nicolas HugとScott Schneiderは、メディアの入出力を単一のライブラリに集約する理由として、保守性とパフォーマンスを挙げた。両氏の説明によると、TorchCodecは、特にCUDAで動画をデコードする場合に、従来の実装より概して高い性能を発揮する。また、統合によって、FFmpeg、NVIDIAのコーデックSDK、個々の画像フォーマット用ライブラリに関わる作業も集約される。
著者らは、この移行は特にTorchAudioにとって混乱が大きく、多数のインターフェースが非推奨となり、最終的に削除されたと述べた。コミュニティからのフィードバックを受け、当初廃止を予定していた人気のインターフェースのいくつかを残すことにした。
作者によると、三つのライブラリはすべてABI安定になりました。ライブラリのバージョンは単一のフレームワークリリースに結び付けられなくなり、以降のバージョンでも動作し続けられます。そのため、フレームワークのリリースごとに再ビルドする必要はなく、そのリリーススケジュールにも従わなくなりました。今回の統合は、単一の新しいメディア機能ではなく、過去二年間にわたって行われたものです。