글 머리
여러분은 MP3를 들을 때 어떤 프로그램으로 들으시나요?
궁금해서 조사를 해 보니, 사람들이 사용중인 MP3재생 프로그램의 종류는, 대략 아래의 6가지 프로그램들을 사용하시더군요.
     1. 윈엠프 (Winamp)
     2. 곰 오디오 (GOM Audio)
     3. 제트 오디오 (jetAudio)
     4. 알송 (AlSong)
     5. 푸바 (foobar2000)
     6. 윈도우 미디어 플래이어 (Widows Media Player)
사람마다 차이가 있겠지만 저는 음악을 들을 때 가장 기본이 되는 것은 "음질"이라고 생각을 합니다. 저는 기능이 아무리 좋아 봐야 기본적으로 음질이 나쁘면 음악을 듣는 것이 즐겁지가 않고 짜증이 나거든요. 그래서 이들 프로그램 중 "가장 음질이 좋은 프로그램"은 무엇인지가 궁금했습니다. 그리고 과연 MP3 재생 프로그램마다 실제로 음질이 다른지?의 여부도 상당히 궁금하더군요. 단순히 느낌만으로 다른 것 처럼 들리는 것인지 아니면 실제로 소리가 달라서 그런 것인지...

선수 선발 및 테스트 포인트
인터넷을 뒤지면서 조사를 해 보니 대부분 음질을 중요시 하는 분들은 위의 여러 가지 프로그램 중 푸바, 제트 오디오 그리고 윈엠프 이렇게 3가지를 사용하시더군요. 푸바를 사용하시는 분들은 푸바의 1.디코딩 코덱의 음질이 좋아서 사용을 하시고, 제트 오디오의 경우에는 2.음장효과(BBE) 때문에 사용을 하시고, 윈엠프의 경우는 수많은 3.플러그인을 사용하면 음질이 좋아져서 사용을 하시는 것 같았습니다. 이번 글에서는 이 3가지 요인 중에서 디코딩 코덱의 종류에 따른 차이를 알아보겠습니다.(윈엠프의 경우 푸바에서 사용중인 코덱과 비슷한 음질의 코덱으로 설치 후 바꿀수 있으나 이번 게시물에는 기본 설치 코덱만으로 비교를 해 보겠습니다.)

디코딩 코덱의 음질 테스트 방법
가장 간단한 테스트 방법은 테스트 음악을 여러 가지 소프트웨어를 통하여 한번씩 번갈아 가며 듣는 방법이겠지요. 하지만 이렇게 하면 "여러 가지 문제"가 생길 수 있습니다. ("여러 가지 문제"의 자세한 이야기까지 여기에서 적으려면 내용이 너무 길어지므로 나중에 정리해 보도록 하겠습니다.)
제가 테스트 하기로 한 방법은 데이터를 기반으로 측정을 하는 아래와 같은 방식입니다.
1. RMAA에서 테스트 Wav 파일 생성
2. 라임(Lame) 인코더를 사용하여 MP3로 인코딩
3. MP3파일을 각각 MP3 재생 프로그램을 사용하여 Wav로 다시 디코딩 (mp3를 wav로 변환)
4. 원본 Wav파일과 인코딩 및 디코딩 과정을 거친 Wav파일을 RMAA를 사용하여 비교.
참고 : RMAA (Rightmark Audio Analyzer)
컴퓨터 사운드 카드의 음질을 측정하기 위한 용도로 만들어진 프로그램입니다. 그래픽 카드의 3D성능을 측정하는데 많이 사용하는 일명 좌절마크와 비슷한 개념의 사운드 카드용 프로그램이라고 생각하시면 됩니다.
"측정" 이야기를 하면, 측정수치와 음질과는 상관이 없다고 하시는 분도 계실 듯 한데, 그런 분들 또는 측정수치의 의미를 잘 모르시거나 읽는 방법을 모르시는 분들은 제가 예전에 작성을 한 "음향관련 측정수치 및 그래프에 관한 기본지식" 의 글을 참고하시면 이번의 글을 이해하시는데 도움이 되실 것 같습니다.

테스트 환경
OS
   : 영문 Windows Vista x64 Business Edition Service Pack 1
MP3 인코더
   : Lame V3.97
대상 소프트웨어 정보
   1. Nullsoft Winamp V5.531
   2. foobar2000 V0.9.5.3
   3. jetAudio 7.0.5.3040 Plus VX
   4. AIMP2 V2.11
측정 프로그램
   : RightMark Audio Analyzer 6.0.6

테스트 결과
테스트를 해 보니 윈앰프, 푸바, 제트오디오 그리고 AIMP2까지 모든 재생기의 소리가 거의 같게 측정이 되었습니다. 전에 테스트를 할 때는 푸바의 파일 변환 옵션에 디더링을 사용하게 하고 변환을 했네요. 디더링 옵션은 재생할 때와 파일 변환을 할 때 다르게 설정이 가능하고, 파일변환 시 이 옵션은 기본 선택에서 한번 더 선택하고 들어가면 보이는데 그 부분을 미쳐 확인하지 못 했네요. T.T
그래서 다시 테스트를 해 보니 측정된 결과가 아래의 결과처럼 거의 비슷하게 나옵니다. 뭐 약간의 차이는 있지만 미세하기 때문에 소리의 차이를 구분할 수 있을 것 같지는 않습니다.

Frequency Response (Multi-Tone)
fr.png
                   그림1. 멀티톤을 사용하여 측정을 한 주파수 특성 테스트 결과
그림1은 멀티톤을 사용하여 주파수 특성을 측정한 결과이고 아래의 그림2는 Swept신호(정현파 신호를 저음부터 고음까지 연속으로 변화시키며 재생이 되는 신호)를 사용하여 주파수 특성을 측정한 결과입니다. 가장 이상적인 그래프는 0dB을 중심으로 20KHz까지 굴곡 없는 직선으로 쭉~~~이어진 그래프입니다.
그림1의 결과는 그래프에서 보시는 것처럼 윈엠프, 푸바, 제트오디오 모두 동일한 주파수 특성을 보여줍니다. 따라서 별 의미가 없는 결과입니다.

Frequency Response (Swept)
Frequency_swept.png
                     그림2. Swept파형을 사용하여 측정을 한 주파수 특성 결과

그리고 그림2역시 모든 프로그램들이 거의 같은 결과를 보여줍니다. 별도로 보지 않아도 될 정도...

IMD + Noise Level
imd.png
                                            그림3. IMD + Noise Level

그림3은 60Hz의 정현파 신호화 7KHz의 정현파 신호를 동시에 재생하였을 때 재생되는 파형을 보는 것 입니다. 가장 이상적인 그래프는 60Hz와 7kHz부분에서만 위로 올라오고 다른 주파수 대역에서는 아래쪽으로 수평직선을 그리는 것이 가장 이상적인 형태입니다. 
이 그래프 역시 거의 동일한 결과를 보여줍니다.

Noise Level
ns.png
                                                    그림4. Noise Level

THD
thd.png

정리
푸바의 경우 프로그램 제작 초기부터 가장 좋은 음질을 구현하기 위하여 가장 음질이 좋다는 mpg123코덱을 라이센스하여 수정 후 사용을 하였다고 하고, 윈앰프의 경우 Fraunhofer(프라운호퍼)의 코덱을 라이센스하여 사용한다고 하고 파코즈의 임호님 제보에 의하면 제트 오디오의 경우 자체 코덱을 그리고 AIMP2는 BASS라이브러리를 사용한다고 합니다. 그런데 결과를 보시면 아시겠지만 기본적인 디코더의 음질에 관한 성능에는 그다지 차이가 없는 것 같습니다. 물론 측정치가 안 좋아도 음질이 좋을 수는 있지만, 이 결과만으로 보면 MP3재생 프로그램의 기본적인 디코더 성능에 따른 음색에 의한 차이는 거의 없다고 보시는 것이 맞는 것 같습니다.

결론
MP3 재생 프로그램마다 서로 다른 디코더를 사용하는 것으로 추측되지만 그것들이 재생하는 소리는 디더링, BBE등의 옵션을 사용하지 않으면 그 음색은 사람이 인식 가능한 수준은 아닌 것 같습니다. 프로그램별 음색의 차이가 있다라고 주장을 하시는 분들은 각자 설정을 한 옵션을 확인하시어 테스트를 해 보시기 바랍니다. (저도 이 부분에서 실수...)
하지만 각 재생 프로그램마다 음장효과의 차이, 컴퓨터 자원소모의 차이, UI의 차이, 편리성의 차이 등의 이유로 여러가지 프로그램이 사용되는 것 같습니다.

이 게시물과 연관된 게시물 (자동 검색 결과)
profile
제 글은 다른 블로그나 타 사이트로 담아가실 수 없습니다. 참조를 하시려면 링크를 사용하여 주시면 감사하겠습니다. 정책이 바뀐 이유는 http://goldenears.net/board/5779 공지사항을 참조하시기 바랍니다.

Truthful Review Based on Measured Data.
by Tommy Kim