디랙 (코덱)
1. 개요
디랙은 BBC가 개발한 비디오 코덱으로, HDTV 이상의 해상도를 지원하며 웨이블릿 압축 방식을 사용한다. Ogg, Matroska, ISO 기본 미디어 파일 형식 등 다양한 컨테이너 형식을 지원하며 손실 및 무손실 압축 모드를 제공한다. 디랙 프로는 디랙 규격의 I-프레임 전용 부분 집합으로, SMPTE에 VC-2로 표준화되었다. 초기의 디랙은 MPEG-4 Part 2와 유사한 압축 성능을 보였으나, 이후 VP8, VP9, AV1과 같은 오픈 소스 코덱의 등장으로 인해 사용이 줄어들었다. 디랙은 VLC 미디어 플레이어 등에서 재생 가능하며, FFmpeg 등을 통해 인코딩할 수 있다.
-
웨이블릿 -
웨이블릿 변환
웨이블릿 변환은 국부적인 작은 파인 웨이블릿을 패턴으로 신호, 시스템, 프로세스의 모델을 구성하는 방법으로, 푸리에 해석의 한계를 극복하고 시간-주파수 해석을 가능하게 하여 신호 분석, 노이즈 제거, 신호 압축 등에 활용된다. -
웨이블릿 -
이산 웨이블릿 변환
이산 웨이블릿 변환(DWT)은 시간과 주파수 정보를 동시에 분석하는 다중 해상도 분석 도구로, 하르 웨이블릿 제안 이후 도비시가 공식화하여 이미지 처리, 신호 코딩, 데이터 압축 등 다양한 분야에 응용되며, 고속 푸리에 변환(FFT)보다 효율적인 계산 복잡도를 가진다. -
오픈 포맷 -
HTML
HTML은 웹 페이지 제작을 위한 표준 마크업 언어로서, 팀 버너스리가 제안하고 구현한 후 인터넷 발전과 함께 널리 사용되며, SGML에 기반하여 하이퍼텍스트 기능으로 다양한 콘텐츠를 표현하고 연결하며, W3C와 WHATWG에서 표준화를 진행하고 최신 버전은 HTML Living Standard이다. -
오픈 포맷 -
오픈 소스
오픈 소스는 제품 설계 및 재배포를 장려하는 모델로, 소프트웨어 개발에서 시작하여 개방형 협업을 장려하며 다양한 분야에서 활용되고 있고 오픈 소스 이니셔티브와 같은 단체가 운동을 지원한다. -
SMPTE 표준 -
HDCAM
HDCAM은 소니가 개발한 고화질 비디오 포맷으로, 4:2:2 색상 샘플링, 8비트 깊이, 144 Mbit/s의 영상 비트 전송률을 사용하며, HDCAM SR은 10비트 4:2:2 또는 4:4:4 RGB 녹화를 지원하고 방송 및 영화 제작에 사용된다. -
SMPTE 표준 -
SMPTE 259M
2. 기술
디랙은 HDTV (1920×1080) 이상의 해상도를 지원하며, MPEG-2 Part 2, MPEG-4 Part 2와 같은 비디오 압축 형식 및 Theora, WMV와 같은 경쟁 기술에 비해 데이터 전송률을 절감하고 품질을 향상시키는 것을 목표로 한다. 개발자들은 고화질 비디오에 대해 MPEG-2보다 비트 전송률을 2배 줄인다고 주장했는데, 이는 VC-1 및 H.264의 단순 프로파일과 비교할 만하다.
고정 비트 전송률과 가변 비트 전송률 작동을 모두 지원하며, 낮은 지연 시간 구문을 통해 일정한 대기 시간을 보장한다. 또한 손실 압축 및 무손실 압축 모드를 모두 지원한다.
JPEG 2000, PGF 이미지 형식, Cineform 전문 비디오 코덱과 같이 웨이블릿 압축을 사용하며, MPEG 압축 형식에서 사용되는 이산 코사인 변환은 사용하지 않는다. 디랙이 사용하는 웨이블릿은 JPEG 2000의 웨이블릿(5/3 및 9/7 웨이블릿)과 거의 동일하며, 이들로부터 파생된 두 개의 웨이블릿도 있다.
Ogg, Matroska 컨테이너 형식으로 사용할 수 있으며, ISO 기본 미디어(MP4) 파일 형식 및 MPEG 전송 스트림에서도 사용하도록 등록되어 있다.
2.1. 특허
BBC는 디랙에 대한 어떠한 특허도 소유하고 있지 않다. 과거에는 디랙 관련 특허에 대해 모든 사람에게 로열티 없는 라이선스를 영구적으로 부여할 계획으로 일부 특허 출원을 했으나, 해당 출원은 만료되었다. 또한, 개발자들은 디랙이 제3자 특허를 침해하지 않도록 노력하여, 누구나 어떤 목적으로든 디랙을 사용할 수 있도록 할 것이라고 밝혔다.
3. VC-2
BBC 연구소에서 개발된 오픈 소스 기반의 자유 소프트웨어 범용 비디오 코덱인 디랙 프로(Dirac Pro)는 디랙 규격의 I-프레임 전용 부분 집합으로, 표준화를 위해 SMPTE에 제안되었다. 디랙 프로는 고비트 전송률 응용 분야에서 고화질 비디오의 전문적이고 스튜디오 사용을 위해 설계되었다. 2010년, SMPTE는 디랙 프로를 VC-2로 표준화했다.
원래 디랙 코덱에 대한 작업은 대부분 중단되었지만, VC-2 코덱은 HD 및 UHD 후반 제작 환경에 맞게 지속적으로 적용 및 업데이트되었다. SMPTE 표준(ST) 및 권장 관행(RP)은 다음과 같다:
| 표준/권장 관행 | 설명 |
|---|---|
| SMPTE ST 2042-1:2022 | VC-2 비디오 압축 |
| SMPTE ST 2042-2:2017 | VC-2 레벨 정의 |
| SMPTE RP 2042-3:2022 | VC-2 적합성 규격 |
| SMPTE ST 2042-4:2018 | VC-2 스트림을 MXF 일반 컨테이너에 매핑 |
| SMPTE RP 2047-1:2023 | 1080P 고화질 비디오 소스의 VC-2 메자닌 레벨 압축 |
| SMPTE ST 2047-2:2010 | HD-SDI를 통한 VC-2 압축 비디오 전송 |
| SMPTE RP 2047-3:2023 | 표준 해상도 인프라와 함께 사용하기 위한 고화질 비디오 소스의 VC-2 레벨 65 압축 |
| SMPTE ST 2047-4:2011 | SDTV SDI를 통한 레벨 65 VC-2 압축 비디오 전송 |
| SMPTE RP 2047-5:2022 | 고화질 인프라와 함께 사용하기 위한 초고화질 비디오 소스의 VC-2 레벨 66 압축 |
| IETF RFC 8450 | VC-2 고품질(HQ) 프로파일을 위한 RTP 페이로드 형식 |
4. 소프트웨어 구현
초기에 두 개의 소프트웨어 구현이 개발되었다. BBC의 레퍼런스 구현은 처음에 "Dirac"으로 불렸지만 혼동을 피하기 위해 "dirac-research"로 이름이 변경되었으며, C++로 작성되었고 모질라 공용 허가서, GNU GPL 2 및 GNU LGPL 자유 소프트웨어 라이선스로 배포되었다. 이 구현의 버전 1.0.0은 2008년 9월 17일에 출시되었으며 Dirac 비트스트림 형식을 정의한다.
두 번째 구현인 "Schrödinger"는 BBC의 자금 지원을 받았으며 코덱의 고성능, 이식 가능한 버전을 제공하는 것을 목표로 하면서 100% 비트스트림 호환성을 유지했다. Schrödinger는 ANSI C로 작성되었으며 dirac-research와 동일한 라이선스, 그리고 매우 관대한 MIT 라이선스로 배포되었다. GStreamer 플러그인이 포함되어 해당 프레임워크와 함께 라이브러리를 사용할 수 있었다. 2008년 2월 22일, Schrödinger 1.0.0이 출시되었으며, Core Duo 노트북에서 HD720/25p를 실시간으로 디코딩할 수 있었다.
2010년 3월 Schrödinger 버전 1.0.9가 출시되면서 dirac-research보다 "인코딩 속도와 시각적 품질 모두에서 대부분의 인코딩 상황에서" 성능이 향상되었다. 해당 릴리스에서 dirac-research의 대부분의 인코딩 도구가 Schrödinger로 포팅되어 Schrödinger는 dirac-research와 동일하거나 더 나은 압축 효율성을 보였다. Schrödinger 개발은 2012년 1.0.11 릴리스 이후 중단되었다.
Dirac Pro가 SMPTE VC-2로 표준화된 후, 오픈 소스 레퍼런스 VC-2 인코더 개발이 시작되었다. 코드는 BBC에서 git 저장소로 제공하며 GitHub에서 사용할 수 있다.
BBC에서는 새로운 인코딩 도구의 성능을 확인하고 품질에 영향을 미치는 버그를 신속하게 수정하기 위해 인코더 품질 테스트 시스템을 구축했다.
4.1. 데스크톱 재생 및 인코딩
VLC 미디어 플레이어는 0.9.2 버전(2008)부터, GStreamer 프레임워크를 사용하는 애플리케이션과 FFmpeg은 디랙 비디오 재생을 지원한다. FFmpeg, MediaCoder, LiVES, OggConvert 등에서 디랙으로 인코딩할 수 있다.
5. 성능
원래 디랙 규격의 알고리즘은 당시 주류 비디오 압축 표준과 비슷한 압축 성능을 제공하기 위해 고안되었다. 2009년, 2008년 2분기 구현을 사용한 디랙과 H.264 코덱 비교에서 x264가 디랙보다 약간 높은 점수를 기록했다. 다른 2009년 비교에서는 표준 화질 콘텐츠에 대해 유사한 결과를 보였지만, 고화질(HD) 비디오 콘텐츠는 비교하지 않았다.
이러한 연구들은 디랙의 압축 성능이 MPEG-4 Part 2 고급 단순 프로파일(ASP, DivX로 널리 알려짐)과 유사하다는 것을 보여준다. 또한 낮은 복잡도의 H.264 인코딩에 근접하지만, 고품질 프로파일 H.264로 인코딩된 비디오는 동일한 체감 품질에서 더 나은 압축을 제공한다.
2010년 이후, VP8, VP9, AV1과 같은 로열티가 없는 오픈 소스 비디오 코덱이 개발되어 더 나은 압축 성능과 더 광범위한 채택을 보이고 있으며, 유튜브와 넷플릭스와 같은 지배적인 스트리밍 서비스가 포함된다.