TorchCodec이 미디어 디코딩과 인코딩을 통합하고, 다른 라이브러리는 변환에 집중
미디어 스택이 디코딩 및 인코딩을 변환에서 분리하면서, 각 라이브러리가 고유한 릴리스 일정을 따를 수 있게 되었습니다.
AI 일러스트미디어 디코딩과 인코딩이 TorchCodec으로 통합되었고, TorchVision과 TorchAudio는 이제 변환에 집중합니다. 이번 개편은 이미지, 비디오, 오디오를 모두 아우르며, 이전에 파편화되어 있던 인터페이스와 백엔드 모음을 대체합니다.
사용자 입장에서 이러한 구분은 미디어를 텐서로 가져오고 텐서에서 내보내는 작업과 그 사이에 수행되는 연산을 분리합니다. TorchCodec은 파일이나 인코딩된 바이트를 텐서로 디코딩하고, 텐서를 다시 미디어 파일로 인코딩하는 일을 처리합니다. TorchVision은 이미지 및 비디오 변환을 제공하고, TorchAudio는 오디오 변환을 담당합니다.
이번 변경은 기존 소프트웨어에도 영향을 줍니다. 이전에 TorchVision과 TorchAudio가 제공하던 디코딩 및 인코딩 인터페이스는 지원 중단되었거나 제거되었습니다. 해당 라이브러리의 모델, 데이터셋, 파이프라인은 더 이상 활발히 개발되지 않으며, 그 기능은 생태계의 다른 대안이 대신합니다.
Nicolas Hug와 Scott Schneider는 미디어 입출력을 하나의 라이브러리에 집중하는 이유로 유지 관리와 성능을 들었습니다. 이들의 설명에 따르면 TorchCodec은 특히 CUDA로 비디오를 디코딩할 때 이전 구현보다 대체로 더 나은 성능을 보입니다. 또한 통합을 통해 FFmpeg, NVIDIA의 코덱 SDK, 개별 이미지 포맷용 라이브러리와 관련된 작업도 한곳에 모입니다.
저자들은 이번 전환이 특히 TorchAudio에 큰 혼란을 초래했으며, 수많은 인터페이스가 지원 중단되었다가 결국 제거되었다고 밝혔습니다. 커뮤니티 피드백을 반영해, 처음에는 없애려 했던 인기 있는 인터페이스 몇 가지를 유지하기로 했습니다.
작성자들에 따르면 세 라이브러리 모두 이제 ABI 안정 상태입니다. 라이브러리 버전은 더 이상 단일 프레임워크 릴리스에 묶이지 않으며 이후 버전에서도 계속 작동할 수 있습니다. 따라서 프레임워크 릴리스마다 다시 빌드할 필요가 없고, 더 이상 그 릴리스 일정을 따르지도 않습니다. 이번 통합은 단일한 새 미디어 기능이 아니라 지난 두 해에 걸쳐 이루어졌습니다.