TorchCodec объединяет декодирование и кодирование медиа, а другие библиотеки сосредоточены на преобразованиях
Медиастек теперь отделяет декодирование и кодирование от преобразований, а библиотеки могут следовать собственным графикам выпуска.
Иллюстрация, созданная ИИДекодирование и кодирование медиа объединены в TorchCodec, а TorchVision и TorchAudio теперь сосредоточены на преобразованиях. Реорганизация охватывает изображения, видео и аудио и заменяет прежде разрозненный набор интерфейсов и бэкендов.
Для пользователей такое разделение отделяет перенос медиа в тензоры и из них от операций, выполняемых между этими шагами. TorchCodec занимается декодированием файлов или закодированных байтов в тензоры и кодированием тензоров обратно в медиафайлы. TorchVision предоставляет преобразования изображений и видео; TorchAudio отвечает за преобразования аудио.
Изменения затрагивают и существующее программное обеспечение. Интерфейсы декодирования и кодирования, ранее предоставлявшиеся TorchVision и TorchAudio, объявлены устаревшими или удалены. Модели, наборы данных и конвейеры в этих библиотеках больше не развиваются активно, а их функции покрывают альтернативы в других частях экосистемы.
Nicolas Hug и Scott Schneider назвали причинами сосредоточения медиаввода и медиавывода в одной библиотеке простоту сопровождения и производительность. По их словам, TorchCodec в целом работает лучше прежних реализаций, особенно при декодировании видео с CUDA. Объединение также концентрирует работу, связанную с FFmpeg, кодек-SDK от NVIDIA и библиотеками для отдельных форматов изображений.
Авторы сообщили, что переход оказался особенно болезненным для TorchAudio: многие интерфейсы были объявлены устаревшими и в итоге удалены. Отзывы сообщества побудили их сохранить несколько популярных интерфейсов, которые они сначала планировали убрать.
По словам авторов, все три библиотеки теперь имеют стабильный ABI. Версия библиотеки больше не привязана к одному выпуску фреймворка и может продолжать работать с последующими версиями. Поэтому библиотеки не нужно пересобирать для каждого выпуска фреймворка, и они больше не следуют его графику выпуска. Объединение происходило на протяжении последних двух лет, а не было единичной новой медиафункцией.