TorchCodec consolida a decodificação e a codificação de mídia, enquanto outras bibliotecas se concentram em transformações
A pilha de mídia agora separa a decodificação e a codificação das transformações, e as bibliotecas podem seguir seus próprios cronogramas de lançamento.
Ilustração de IAA decodificação e a codificação de mídia foram consolidadas no TorchCodec, enquanto TorchVision e TorchAudio agora se concentram em transformações. A reorganização abrange imagens, vídeo e áudio, substituindo um conjunto antes fragmentado de interfaces e back-ends.
Para os usuários, a divisão separa a entrada e a saída de mídia em tensores das operações realizadas entre essas etapas. O TorchCodec cuida da decodificação de arquivos ou bytes codificados em tensores e da codificação de tensores de volta em arquivos de mídia. O TorchVision fornece transformações de imagem e vídeo; o TorchAudio cuida das transformações de áudio.
As mudanças também afetam o software existente. As interfaces de decodificação e codificação antes fornecidas pelo TorchVision e pelo TorchAudio foram descontinuadas ou removidas. Modelos, conjuntos de dados e pipelines dessas bibliotecas não estão mais em desenvolvimento ativo, e alternativas em outras partes do ecossistema cobrem essas funções.
Nicolas Hug e Scott Schneider apontaram a manutenção e o desempenho como motivos para concentrar a entrada e a saída de mídia em uma única biblioteca. Segundo eles, o TorchCodec em geral tem desempenho melhor que as implementações anteriores, sobretudo na decodificação de vídeo com CUDA. A consolidação também concentra o trabalho envolvendo o FFmpeg, o SDK de codecs da NVIDIA e bibliotecas de formatos de imagem individuais.
Os autores disseram que a transição foi especialmente disruptiva para o TorchAudio, com várias interfaces descontinuadas e, por fim, removidas. O feedback da comunidade os levou a manter várias interfaces populares que haviam planejado retirar inicialmente.
De acordo com os autores, as três bibliotecas agora têm ABI estável. A versão de uma biblioteca não está mais vinculada a um único lançamento do framework e pode continuar funcionando com versões posteriores. Assim, as bibliotecas não precisam ser recompiladas a cada lançamento do framework e deixaram de seguir o seu cronograma de lançamentos. A consolidação ocorreu ao longo dos últimos dois anos, em vez de representar um único novo recurso de mídia.