TorchCodec bündelt Medien-Decodierung und -Codierung, während sich andere Bibliotheken auf Transformationen konzentrieren
Der Medien-Stack trennt Decodierung und Codierung nun von Transformationen, sodass die Bibliotheken ihren eigenen Release-Zyklen folgen können.
KI-IllustrationDie Decodierung und Codierung von Medien wurden in TorchCodec zusammengeführt, während sich TorchVision und TorchAudio nun auf Transformationen konzentrieren. Die Neuorganisation umfasst Bilder, Video und Audio und ersetzt eine zuvor fragmentierte Sammlung von Schnittstellen und Backends.
Für Nutzer trennt die Aufteilung das Überführen von Medien in Tensoren und aus Tensoren heraus von den Operationen, die zwischen diesen Schritten ausgeführt werden. TorchCodec übernimmt die Decodierung von Dateien oder codierten Bytes in Tensoren sowie die Codierung von Tensoren zurück in Mediendateien. TorchVision stellt Bild- und Videotransformationen bereit; TorchAudio übernimmt Audiotransformationen.
Die Änderungen betreffen auch bestehende Software. Decodierungs- und Codierungsschnittstellen, die zuvor von TorchVision und TorchAudio bereitgestellt wurden, sind veraltet oder wurden entfernt. Modelle, Datensätze und Pipelines in diesen Bibliotheken werden nicht mehr aktiv weiterentwickelt, während Alternativen an anderer Stelle im Ökosystem diese Funktionen abdecken.
Nicolas Hug und Scott Schneider nannten Wartung und Leistung als Gründe, die Ein- und Ausgabe von Medien in einer einzigen Bibliothek zu bündeln. Ihrer Darstellung zufolge ist TorchCodec im Allgemeinen leistungsfähiger als die früheren Implementierungen, insbesondere bei der Decodierung von Video mit CUDA. Die Zusammenführung bündelt außerdem Arbeiten rund um FFmpeg, das Codec-SDK von NVIDIA und Bibliotheken für einzelne Bildformate.
Die Autoren erklärten, der Übergang sei für TorchAudio besonders einschneidend gewesen, da zahlreiche Schnittstellen als veraltet markiert und schließlich entfernt wurden. Aufgrund von Rückmeldungen aus der Community behielten sie mehrere beliebte Schnittstellen bei, die sie ursprünglich entfernen wollten.
Laut den Autoren sind nun alle drei Bibliotheken ABI-stabil. Eine Bibliotheksversion ist nicht mehr an ein einzelnes Framework-Release gebunden und kann mit nachfolgenden Versionen weiterhin funktionieren. Die Bibliotheken müssen daher nicht für jedes Framework-Release neu erstellt werden und folgen dessen Release-Zyklus nicht mehr. Die Zusammenführung erfolgte über die vergangenen zwei Jahre und stellt nicht eine einzelne neue Medienfunktion dar.