X

AAC, MP3, OPUS 널 테스트(null test)와 음질 비교

AAC, MP3, OPUS 세 가지로 인코딩할 때 주로 어떤 주파수 대역의 소리들이 원본과 비교해서 줄어드는지 화이트 노이즈와 음악 파일로 널 테스트(null test)를 해 보았다.

참고로 널 테스트는 같은 음원 두 개를 하나는 위상 반전해서 재생할 경우 파형이 동일하면 서로 상쇄되면서 아무런 소리도 나지 않게 되는 원리를 이용한 것이다(액티브 노이즈 캔슬링이 같은 원리).

널 테스트로 두 가지 음원에 차이가 있을 경우에는 상쇄되고 남는 데이터만 확인할 수 있으므로 어떤 소리들이 손실되는지 판단이 가능하다.

테스트 조건

  • 원본 : 24bit/48kHz PCM (no dithering)
  • AAC(AAC LC) : 애플 CoreAudio AAC 인코더 / QAAC 프런트엔드 사용
  • MP3 : LAME v3.99.5 / Mode q=2
  • Opus : Hard-CBR, Complexity 10 (Reaper에서 인코딩)
  • 세 가지 코덱 모두 CBR(Constant bitrate)로 인코딩

화이트 노이즈 널 테스트 (White noise null test)

320Kbps null test (spectrogram)

  • AAC : 전체 주파수 대역이 고르게 손실된다.
  • MP3 : 20kHz 이상은 브릭월(brick wall) 필터로 완전히 잘라내며 나머지 주파수 대역에 고르게 손실이 있음 즉, 20kHz 이상을 제외한 나머지 주파수 대역의 손실은 다른 코덱들에 비해 약간 적은 편.
  • OPUS : MP3와 마찬가지로 20kHz 이상은 잘리며 손실되는 주파수 대역의 구간이 확실하게 나누어져 있는 것이 특징이다. 특히 12kHz 이상이 다른 대역에 비해 많이 줄어들지만 AAC와 비교하면 12kHz 이하는 상대적으로 손실이 적다고 할 수 있다.
  • 참고 사항 : OPUS는 기본적으로 DC 옵셋을 방지하기 위한 DC rejection 필터(3Hz cutoff)가 적용됨.

160Kbps null test (spectrogram)

  • 세가지 코덱 모두 320Kbps 일 때와 손실되는 데이터의 양만 다르며 특성은 동일

80Kbps null test (spectrogram)

  • AAC : 비트레이트가 80Kbps까지 낮아지면 17kHz 이상은 잘라낸다.
  • MP3, Opus : 손실되는 데이터의 양만 다르고 손실 패턴은 동일

320Kbps null test (sound)

AAC 320Kbps
MP3 320Kbps
OPUS 320Kbps

160Kbps null test (sound)

AAC 160Kbps
MP3 160Kbps
OPUS 160Kbps

80Kbps null test (sound)

AAC 80Kbps
MP3 80Kbps
OPUS 80Kbps

음악 파일 널 테스트와 비교

음악 파일 원본 (24bit/48kHz no dither)

320Kbps

AAC 320Kbps
MP3 320Kbps
OPUS 320Kbps

80Kbps

AAC 80Kbps
MP3 80Kbps
OPUS 80Kbps

아래는 각 코덱 별 널 테스트 결과를 다시 24bit/48kHz로 저장하였음.

이것으로 어떤 소리들이 손실되는지 소리로 판단할 수 있는데 위에 화이트 노이즈 스펙트로그램으로 볼 수 있는 주파수 대역별 손실 특성이 그대로 소리로도 확인된다.

320Kbps null test

AAC 320Kbps (Null test)
MP3 320Kbps (Null test)
OPUS 320Kbps (Null test)

80Kbps null test

AAC 80Kbps (Null test)
MP3 80Kbps (Null test)
OPUS 80Kbps (Null test)

참고: 아래 스펙트로그램(spectrogram)은 코덱별 원본 파일로 만든것으로 널 테스트 결과가 아님.

320Kbps (spectrogram)

비트레이트가 320Kbps 정도되면 코덱과는 상관없이 원본과 거의 차이가 없음을 알 수 있다.

160Kbps (spectrogram)

80Kbps (spectrogram)

80Kbps같이 낮은 비트레이트에서는 OPUS가 월등하게 우세하다.

AAC, MP3, OPUS 블라인드 테스트

AAC, MP3, Opus로 변환한 파일을 번갈아가면서 재생하도록 믹싱 한 파일 (코덱 별로 약 6~7초 정도 무작위 재생). PCM 16bit/44.1kHz (dithered).

AAC, MP3, Opus 320Kbps 믹싱 (순서 무작위)
AAC, MP3, Opus 160Kbps 믹싱 (순서 무작위)
AAC, MP3, Opus 80Kbps 믹싱 (순서 무작위)

정리

  • AAC, MP3, OPUS 코덱마다 손실되는 주파수 대역에 차이가 있다.
  • 인코더에 따라서 적용되는 로우패스 필터 주파수 대역이 달라질 수 있고 변환하려는 파일의 비트레이트 옵션, 원본 파일의 샘플레이트에 따라서도 달라진다(예: Fraunhofer FDK AAC는 기본적으로 14kHz 로우 패스 필터 적용).
  • 하지만 이런 차이가 실제로 들리는가는 의문이다(특히 비트레이트가 256Kbps 이상이라면).
  • 비트레이트가 160Kbps 이상만 되어도 차이는 거의 느낄 수 없으며 256Kbps 이상이 되면 원본과 구분할 수 없다(위에 160Kbps 믹싱 된 것을 듣고 어디서부터 어디까지가 어떤 코덱인지 구분이 가는가?).
  • 20kHz 위쪽의 데이터를 가지고 있는 AAC가 무조건 좋을 것이라는 편견도 있으나 가청 주파수 대역을 벗어난 데이터이고 상호 변조(intermodulation)에 의한 왜곡, DAC에서 적용되는 로우패스필터까지 고려하면 어차피 무의미할 수 있다.
    실제로 마스터링 엔지니어들 중에서는 16bit/44.1kHz로 마스터링 할 때 22.05kHz 브릭월 필터를 쓰는 사람들도 많다(그것이 얼마나 효과가 있는가는 항상 논쟁 거리이지만…).
  • AAC, MP3, OPUS 같은 압축 코덱에는 16bit, 24bit와 같은 비트뎁스(bit depth)라는 것이 없기 때문에 원본의 다이나믹 레인지가 바뀌지는 않는다. 하지만 AAC/OPUS는 디코더/플레이어에 따라 비트뎁스(bit depth)가 16bit로 제한되어 재생될 수도 있으니 확인 요망.
  • 비트레이트가 낮아질수록 OPUS > AAC > MP3 차례로 효율이 좋다.
  • 동일 코덱으로 여러 번 인코딩한 결과를 가지고 어떤 것이 더 좋은 코덱이라고 판단하는 것은 잘못된 테스트 방법이다. 그래도 궁금하면 이글 참고.
  • 손실되는 것이 싫다면 차라리 무손실 FLAC(ALAC)을 써라. 어차피 저장 장치 용량은 커지고 가격은 계속 내려간다.
  • 그래도 압축 포맷을 원한다면 세 가지 중 아무것이나 CBR 256~320Kbps 이상 또는 VBR 최고 품질 옵션으로 인코딩하면 음질에 차이는 없다.
Tags: aacmp3opus

View Comments (0)