TorchCodec consolida la decodificación y la codificación de medios mientras otras bibliotecas se centran en las transformaciones
La pila de medios ahora separa la decodificación y la codificación de las transformaciones, y cada biblioteca puede seguir su propio calendario de lanzamientos.
Ilustración generada con IALa decodificación y la codificación de medios se han consolidado en TorchCodec, mientras que TorchVision y TorchAudio ahora se centran en las transformaciones. La reorganización abarca imágenes, vídeo y audio, y sustituye un conjunto de interfaces y backends que antes estaba fragmentado.
Para los usuarios, la división separa el paso de los medios hacia y desde los tensores de las operaciones que se realizan entre esos pasos. TorchCodec se encarga de decodificar archivos o bytes codificados en tensores y de codificar tensores de nuevo en archivos multimedia. TorchVision proporciona transformaciones de imagen y vídeo; TorchAudio se ocupa de las transformaciones de audio.
Los cambios también afectan al software existente. Las interfaces de decodificación y codificación que antes proporcionaban TorchVision y TorchAudio se han declarado obsoletas o se han eliminado. Los modelos, conjuntos de datos y pipelines de esas bibliotecas ya no están en desarrollo activo, mientras que otras alternativas del ecosistema cubren esas funciones.
Nicolas Hug y Scott Schneider señalaron el mantenimiento y el rendimiento como motivos para concentrar la entrada y salida de medios en una sola biblioteca. Según su explicación, TorchCodec generalmente rinde mejor que las implementaciones anteriores, en particular al decodificar vídeo con CUDA. La consolidación también concentra el trabajo relacionado con FFmpeg, el SDK de códecs de NVIDIA y las bibliotecas de formatos de imagen individuales.
Los autores afirmaron que la transición fue especialmente disruptiva para TorchAudio, con numerosas interfaces declaradas obsoletas y finalmente eliminadas. Los comentarios de la comunidad los llevaron a conservar varias interfaces populares que inicialmente habían planeado retirar.
Según los autores, las tres bibliotecas ahora son estables en cuanto a ABI. La versión de una biblioteca ya no está ligada a una sola versión del framework y puede seguir funcionando con las versiones posteriores. Por tanto, las bibliotecas no necesitan recompilarse con cada versión del framework y ya no siguen su calendario de lanzamientos. La consolidación se llevó a cabo a lo largo de los últimos dos años, en lugar de ser una única función multimedia nueva.