GN⁺: FLAC 1.5: 드디어 멀티스레드 인코딩 지원
(phoronix.com)- Free Lossless Audio Codec(FLAC)의 1.5 업데이트에서 드디어 멀티스레드 오디오 인코딩 도입
- 기존에는 단일 스레드만 사용 가능했으나, 이제 멀티코어 CPU 활용 가능
-
flac
명령어에서-j #
또는--threads=#
옵션으로 스레드 개수 설정 가능 - 멀티스레드 인코딩이 지원되면서 대량의 오디오 파일을 훨씬 빠르게 변환 가능
- 추가 개선 사항
- 이제 체인된 Ogg FLAC 파일도 디코딩 지원
- 라이브러리 안정성 향상: 버그 수정 및 빌드 시스템 업데이트 포함
- libFLAC, libFLAC++, metaflac 에서 메타데이터 변경시에 기존 파일을 덮어쓰기 하는 대신 새 파일로 작성 가능
Hacker News 의견
-
Ogg FLAC 파일을 연결하여 디코딩하는 것에 대한 기대감이 있음
- 일부 소프트웨어는 libFLAC/libFLAC++를 사용하여 디멀티플렉싱 및 디코딩할 때 FLAC 기반 Icecast 스트림과 제대로 작동하지 않음
- 이러한 스트림은 일반적으로 Ogg로 멀티플렉싱되고 이전 Ogg 비트스트림을 닫고 새로 시작하여 메타데이터를 업데이트함
- libFLAC을 사용하여 디멀티플렉싱 및 디코딩할 경우 스트림이 업데이트되면 무한히 멈추게 됨
- 앱은 자체적으로 Ogg 디멀티플렉싱을 수행하고 스트림 간 디코더를 재설정해야 함
- 연결된 Ogg FLAC은 손실 없는 인터넷 라디오 스트림을 제공하며, 아웃 오브 밴드 방법에 의존하지 않고 풍부한 인밴드 메타데이터를 포함할 수 있음
- 인밴드 앨범 아트, 아티스트 정보, 링크 등 Vorbis 코멘트 블록에 넣을 수 있는 모든 것을 포함할 수 있음
-
FLAC 인코딩은 이미 현대 기계에서 60배 이상의 실시간 성능을 제공함
- 전체 라이브러리를 트랜스코딩할 필요가 없다면 인코딩 설정에 더 많은 시간을 소비할 가능성이 높음
-
FLAC이 이제 RFC 9639로 게시됨
-
Windows에서 libwinpthread를 사용하는 8코어/16스레드 기계에서의 성능 테스트
- flac -f -8 a.wav a.flac 명령어의 평균 시간은 약 13.148초
- flac -j16 -f -8 a.wav a.flac 명령어의 평균 시간은 약 2.404초
- 두 번째 명령어가 첫 번째 명령어보다 약 5.47배 더 빠르게 실행됨
-
이러한 개선이 낮은 지연 시간의 FLAC 스트리밍으로 번역될 수 있을지에 대한 궁금증이 있음