Opus

비슷한 이름의 인디 게임에 대해서는 OPUS: The Day We Found Earh 문서를, 오스트리아 출신의 밴드에 대해서는 Opus(가수) 문서를 참조하십시오.


홈페이지: [1]

오픈소스, 로열티 없는 무료 손실 압축 포맷 오디오 코덱. 스펙도 완전히 공개되어 있다. RFC6716
IETF(Internet Engineering Task Force)에서 개발하였다.

SPEEX를 계승하는 코덱으로서, VOIP용도로 개발 된 코덱이다.

기존의 내용에 AMR-WB에 치이고, AAC나 MP3에 치여서 널리 못 쓰인다고 서술되어 있었으나, 애초에 AMR코덱은 음성전용망에서 쓰이는 용도로 개발된 코덱이고, MP3, AAC는 음악용도로 쓰이는 코덱으로서, 사용처 자체가 다르다. OPUS의 경쟁코덱은 SPEEX, G.711, G.729등의 VOIP용 코덱이다.

이러한 코덱이 어디서 쓰이냐 하면, 회사에서 쓰이는 영상회의, 인터넷 전화, 음성 채팅등에 쓰인다. 예를 들자면 엑스박스 라이브, 팀스피크, 구글 지도, Siri등이 있다.[1] AMR-WB나 AAC, MP3등과 비교되는 것은, 개발하면서 이것 저것 넣다보니 예상보다 코덱이 뛰어나서 여기저기 쓰임새가 있는 것일 뿐 주요 경쟁상대는 아니다. 또한, 오픈소스라 상용소프트웨어에서 널리 쓰이기 어렵다는 서술도 있었는데, 적용 된 어플리케이션들을 보면 알겠지만 그런거 없다.

Opus 코덱의 우수성은 이 이미지 하나로 끝난다.
quality.png

주요 장점으로

  • 대부분의 비트레이트에서 기존의 오디오 코덱보다 전체적으로 우수한 성능을 보여준다.[2]

nonblocked_means_all2.png
Hydrogenaudio에서 실시한 공개 블라인드 테스트 비교 결과. FAAC는 테스트의 유효성을 평가하기 위한 것이므로 무시하자[3]

  • 기존 대부분의 오디오 코덱이 음악용과 음성용이 아예 별도로 있거나 인코딩 시 옵션 선택을 해야 하는 반면 Opus는 자동으로 최적화된 데이터를 뽑아낸다.
이 과정에서 Xiph.Org Foundation[4]의 CELT 기술과 스카이프의 SILK 기술을 기반으로 하여 통합하였다.
  • 레이턴시가 매우 짧아(기본 26.5 ms, 최적화 시 최저 5 ms 정도) 실시간 통화 등에 이용하기 적합하다.

사양으로는

  • 지원 비트레이트: 6 ~ 510 kbps. VBR과 CBR을 모두 지원한다.
비트레이트에 따라 최적 기록 주파수 및 채널 수가 변경되며[5] 이것도 실시간으로 변경이 가능하다. 또한 변경이 될 때 별도의 잡음이나 지연(공백)이 들리지 않는다.
약칭기록 주파수샘플링 주파수
NB (narrowband)4 kHz8 kHz
MB (medium-band)6 kHz12 kHz
WB (wideband)8 kHz16 kHz
SWB (super-wideband)12 kHz24 kHz
FB (fullband)20 kHz48 kHz
  • 지원 채널 수: 1~255개.

평가

기본적으로 Opus 코덱의 목적은 실시간 인터넷 음성 통신과 같은 저 비트레이트 상황에서의 극한의 효율성을 추구하며 개발된 포맷이기 때문에, 고 비트레이트로 갈수록 음질의 효율성이 대단히 떨어진다. 쉽게 말해 AAC 320 Kbps와 Opus 320 Kbps의 음질을 기계적인 음원 분석으로 비교했을 때 AAC 320 Kbps 쪽이 훨씬 좋다는 것이다[9] 하지만 손실 코덱에서는 주파수 대역의 범위도 중요하지만 가청 주파수에서의 왜곡을 줄이는 것도 상당히 중요하다. Opus 64k와 192k는 똑같이 20kHz에서 자르지만 실제 비교 청취해 보면 음질 차이를 느낄 수 있다. (다만,일반적인 음원으로는 FLAC하고도 큰 차이점이 느껴지지 않으며, 압축하기 어려운 음원으로 테스트해야 한다.)

아직 나온 지 얼마 안 돼서 지원하는 플레이어가 그리 많은 편은 아니지만, 차츰 늘어나는 추세다. 하지만 MP3AAC 오디오 코덱을 대체하기에는 문제가 될 수 있는 점이 있는데, 아무리 비트레이트를 높게 인코딩해도 20 kHz 이상의 신호는 기록하지 않는다는 것이다. 하지만 사실 인간의 귀로 20 kHz 이상은 극히 일부의 사람을 제외하면 들을 수 없다. 하이파이니 뭐니 해도 인간은 가청주파수 이내만 들을 수 있다. 괜히 20kHz 이상을 초음파라고 하는 것이 아니다. 20kHz 이상은 이미 특수목적의 영역이며, 초음파를 전문으로 다루는 사람이 아니라면 필요가 없다. 그리고 스튜디오에 따라 20kHz 이상은 커팅하는 곳이 생각보다 많다. 심지어 진짜 FLAC에서도 20kHz 이상을 잘려먹은 게 심심찮게 있을 정도. 물론 무조건 자르는 건 문제가 될 수도 있다.

그래서 극 고효율 동영상 rip에 쓰이면 되겠구나라고 생각을 한 사람들이 많았으나 결국은 이것도 시궁창. 현재 mkvWebM 이 두 가지의 컨테이너에서만 지원이 되는데, WebM에 쓰이는 VP9가 워낙 성능이 H.265에 비해 구려서 사실상 버림받은 컨테이너이고, mkv의 경우에는 Opus를 아직 완전히 지원하는 것이 아니라서 Opus를 mkv 안에 넣을 수는 있는데 싱크가 맞지 않는 등등의 문제가 많아, 현재 mkv 안에 Opus 넣는 것은 비권장 사항이다. 즉 현실적으로 Opus를 활용할 만한 동영상 컨테이너도 없고, mkv와의 궁합이 개선되지 않는 이상 당분간 Opus는 널리 쓰이기가 어렵다.
  1. 이상 모두 SPEEX코덱 적용
  2. 단 이것은 평균적으로 괜찮다는 것이지 모든 음원에 대해 좋은 성능을 낸다는 말은 아니다. 코덱에 따라 유리/불리한 부분이 따로 있기 때문. 어차피 이건 모든 코덱에 적용되는 말이다. 하지만 일반적으로 매우 높은 압축률을 가졌다.
  3. 유튜브에서 쓰는 게 저거다. 어찌보면 웃프다고 할 수 있는 결과. 다만, FAAC의 비트레이트가 조금 낮다는 것은 감안하자.
  4. Ogg Vorbis 개발
  5. 예를 들어 비트레이트가 6 kbps 정도인데 괜히 48 kHz 음악을 다 기록하려고 용을 쓰다가 소리를 모조리 깨먹거나 하지는 않는다는 것. 실제로 6 kbps로 인코딩하면 가장 낮은 지원 주파수인 8 kHz 이상은 처음부터 컷오프해서 인코딩한다. 채널도 마찬가지로 스테레오 음원은 낮은 비트레이트에서 모노로 다운믹스되어 인코딩될 수 있다.
  6. 특이하게 CD의 주파수인 44.1 kHz가 없다. 개발자의 주장에 의하면 44.1 kHz 음원을 48 kHz로 변환하는 과정에서 음질의 손실은 거의 없고, CDP같은 경우가 아닌 대부분의 범용 플레이어가 스피커 등으로 소리를 출력하는 과정에서 44.1 kHz를 48 kHz나 그 이상으로 변환하여 출력하기 때문에 큰 의미가 없다고. 또한 44.1 kHz를 제외함으로써 코덱이 단순해지는 장점이 더 크다고 하였다.
  7. 윈도우도 사운드카드 설정을 특별히 바꾸지 않으면 기본이 48 kHz이고 안드로이드 폰도 최근에는 대부분 48 kHz를 기본 샘플링 주파수로 사용한다. 즉 44.1 kHz 음원은 디코딩 후 48 kHz로 리샘플링이 이루어지게 되는데 킷캣까지 기본 내장된 리샘플러의 성능은 그리 좋지 않다고 한다. # 아이폰의 경우는 추가바람
  8. 기본적으로 20 kHz 이상의 신호는 기록하지 않는다. FB의 기록 주파수가 24 kHz가 아닌 20 kHz인 것이 그 이유. 또한 96 kHz나 24비트같은 고음질 오디오도 지원하지 않는다. 이것도 개발자 주장으로는 '제대로 제작된' 48 kHz/16비트 음원이면 충분하다고.사실 96/192 kHz음원의 경우 재생능력이 안되는 기기가 재생하면 가청주파수를 넘어선 초음파가 가청주파수 내의 음으로 바뀌어서 내용이 왜곡되는 되어버리는 문제가 있다.이런 주파수를 유령주파수라고 부르기도 한다.또한 이러한 떡밥은 골든이어스에서도 논의가 되었는데,결론적으로 48kHz에 16bit면 인간의 능력에 비해 차고 넘친다고 이야기 되고 있다.
  9. 유독 한국에서만 스펙트럼이 음질의 절대적인 척도로 해석되는 경향이 있는데, Hydrogenaudio 같은 외국 커뮤니티에서는 유의미한 블라인드 테스트 결과가 없는 스펙트럼 비교 사진은 무의미한 것으로 간주한다. 실제 블라인드 테스트시에도 결국 가청 주파수 영역에서 원음과의 차이를 구별하는 것이니... 스펙트럼은 대역폭을 알아내는 데는 정말 좋지만 가청 주파수 내에서의 음질을 비교하는데는 거의 무의미하다.