• 누워서 읽는 디지털 오디오 포맷 (4) - PCM 손실 압축 (MP3)

티 나지 않게 데이터를 생략하는 손실 압축

본 연재의 이전 부에서 설명한 무손실 압축 방식의 경우엔 압축 알고리즘이 상당히 단순한 편입니다. 실제 데이터에는 전혀 변형을 주지 않고, 단순히 중복되는 데이터를 줄이는 식으로 용량만 줄이면 되기 때문입니다.

 

그런데 오디오/이미지/동영상 등 멀티미디어 분야에서는 오히려 손실 압축 방식이 더 일찍 대중화되었습니다. 이유는 이전 부에서 설명한 대로 20세기 당시의 저장매체의 용량도 작고 인터넷의 속도도 너무 느렸기에, 음질/화질을 좀 희생하더라도 용량이 가장 우선시되었기 때문입니다. 그래서 등장한 손실 압축 방식은 원본 데이터 중 생략해도 크게 티가 나지 않는 부분들을 몰래 생략해 버림으로써 용량을 획기적으로 줄일 수 있었습니다.

 

물론 아무렇게나 데이터를 생략해 버리면 대번에 티가 나므로 곤란합니다. 그래서 데이터를 생략하면서도 최대한 덜 부자연스럽도록 심리음향 분야의 연구가 오랫동안 이루어졌습니다. 손실 압축 포맷에서 이용하는 심리음향 효과의 대표적인 항목이 가청 주파수 대역 제한과 마스킹 효과입니다.

 

물론 아무리 좋은 알고리즘을 사용해도 충분한 음질을 유지하면서 용량을 줄이는 데에는 한계가 있습니다. 그 기준은 대략 MP3 128kbps 수준으로, 그 이상으로 지나치게 압축을 하면 음악에 쇳소리 같은 이상한 왜곡이 확연히 들리기 시작합니다. 오래된 저용량 음원을 들어보면 쉽게 느낄 수 있는 현상입니다. 그러므로 아무리 손실 압축 포맷이라도 충분한 음질을 얻기 위해서는 적정한 압축 수준을 요구한다는 것을 미리 참고하고 보시기 바랍니다.

 

사람이 잘 듣지 못하는 초고음을 삭제



고해상도 음원 원본(좌)과 이를 MP3로 인코딩한 음원(우)의 주파수 스펙트럼 비교. MP3는 16kHz 이상 고음을 대부분 삭제했음을 알 수 있다

 

 

사람의 가청주파수 대역을 20~20kHz라고는 하지만 이는 청력이 매우 좋은 유년기 시절의 이야기이고, 나이가 들어감에 따라 몸에 노화가 오면서 청력도 서서히 소실됩니다. 이때 특히 초고음 가청 한계가 가장 가파르게 떨어집니다. 그래서 성인 정도가 되면 이미 대부분 16kHz 이상은 잘 들리지 않습니다.

 

그래서 MP3와 같은 손실 압축 방식에서 원본 데이터 중 가장 먼저 삭제해 버리는 부분이 사람이 잘 듣지 못하는 초고음 대역입니다. 특정 초고음 주파수를 정해놓고 그 위로 데이터를 완전히 없애 버리는 것입니다. 오디오 데이터에서 생략해도 티가 덜 나면서 데이터 절감 효율이 가장 큰 부분이 바로 초고음 대역이기도 합니다. 이런 손실 압축의 특성으로 인해, 손실 압축과 무손실 압축을 구분하는 대표적인 방법이 초고음이 잘려 나갔는지를 스펙트럼 분석기로 확인하는 것입니다.

 

한편, 그렇게 없애버린 데이터는 다시 무손실 압축이나 무압축 포맷으로 바꾼다고 하더라도 절대 다시 복원되지 않습니다. MP3를 FLAC이나 WAV로 재인코딩하면 용량만 커질 뿐 스펙트럼을 확인해 보면 처음의 MP3와 차이가 없습니다. 또한 손실 압축 포맷을 동일한 손실 압축 방식으로 재인코딩하면 데이터가 추가적으로 왜곡됩니다. 그러므로 한번 손실 압축으로 인코딩했으면 어떤 식으로든 재인코딩하지 않는 것이 바람직합니다.

 

잘 들리지 않는 작은 크기의 소리를 생략 : 마스킹 효과



FLAC 원본과 MP3 인코딩 파일의 스펙트럼 비교. MP3의 스펙트럼을 보면 초고음 삭제뿐 아니라 데이터가 미세하게 생략/변형/단순화된 부분들을 발견할 수 있다

 

우리의 귀는 가청주파수 대역 내의 모든 소리를 동시에 듣습니다. 차 안에서 누군가와 대화를 하는데 자동차의 엔진 소리가 크면 대화 소리가 잘 들리지 않게 되는 경험은 누구나 해 보았을 것입니다. 이렇게 큰 소리와 겹쳐서 전달되는 작은 소리는 잘 들리지 않습니다. 이를 심리음향 용어로 '마스킹 효과'라고 합니다. 손실 압축 포맷은 이 마스킹 효과를 응용하여, 실제 재생했을 때 잘 들리지 않게 될 것으로 예상되는 소리들을 찾아서 생략합니다.

 

앞서 설명한 고음을 삭제하는 방법은 별다른 알고리즘이 필요 없이 간단하게 할 수 있지만, 이 마스킹 효과를 응용한 손실 압축은 고도의 알고리즘이 필요합니다. 우리가 실제 세계에서 소리를 들을 때는 소리를 발생시키는 음원의 위치가 다르기 때문에 작은 소리를 내는 음원을 찾기가 쉽습니다. 원한다면 그 작은 소리를 내는 음원을 치우거나 가려 버리면 그만일 것입니다. 그에 비해 이미 디지털로 기록된 상태의 오디오 데이터는 음원이 전혀 분리되어 있지 않고 단순히 하나의 주파수 스펙트럼으로 뭉쳐 있습니다.

 

그러므로, 하나로 뭉쳐져 있는 주파수 스펙트럼 안에서 필요 없는 소리를 찾아 생략하는 심리음향적 압축 알고리즘이야말로 손실 압축 포맷의 핵심입니다. 물론 여기에는 마스킹 효과만 이용하는 것은 아닙니다만, 글이 과하게 길어지게 될 것 같아 본 연재에서는 이 정도까지만 설명하겠습니다.

 

좌우 채널에서 동일한 신호를 찾아 하나로 통합 : 조인트 스테레오

심리음향적 압축 기법 말고 꽤 간단한 용량 압축 방법이 하나 더 있습니다. 바로 좌우 스테레오 채널에서 동일한 데이터를 찾아내서 하나의 모노 채널로 합치는 것입니다. 이를 조인트 스테레오라고 합니다. 어차피 좌우 채널에서 동일한 신호를 재생할 것인데 굳이 중복돼서 양 채널에 모두 데이터를 기록할 필요가 없습니다. 그래서 인코딩할 때 중복되는 부분만 하나로 합쳤다가, 재생할 때 다시 좌우로 분리해서 재생하면 결과는 같으면서도 용량을 줄일 수 있습니다.

 

물론 실제 스테레오 오디오 데이터에서 일부라도 완벽히 좌우의 데이터가 동일할 수는 없습니다. 아무리 좌우 채널에서 같은 부분을 찾는다고 해도 아주 조금씩은 데이터가 틀립니다. 그래서 실제로 조인트 스테레오 방식으로 압축했다가 재생하는 과정에서 약간의 왜곡이 생기고 좌우 채널 분리도가 떨어질 수밖에 없습니다. 대신에 조인트 스테레오를 사용해서 아낀 용량은 그만큼 작은 소리나 초고음을 보존하는 쪽으로 사용할 수 있습니다. 따라서 어느 쪽을 우선시하느냐에 따라 인코딩 시 조인트 스테레오의 사용 여부를 결정합니다.

 

순간 데이터량에 따라 비트레이트를 가변 : VBR, ABR

디지털 오디오에서 초당 필요한 데이터량을 비트레이트라고 합니다. 본 연재의 초반에서 설명했듯이, 16bit / 44.1kHz / 2채널 오디오 CD의 비트레이트는 16bit x 44100Hz x 2채널 = 1,411,200bps입니다. 그에 비해 손실 압축의 대표주자인 MP3의 비트레이트는 최대 320,000bps 입니다. 원본 CD 음질 대비 초당 데이터량이 최대 22%밖에 되지 않는 것입니다.

 

그런데, 실제로 주파수 스펙트럼은 매 순간마다 변합니다. 그리고 하나의 음악 내에는 무음 구간이라던가 실제로 데이터가 거의 필요 없는 부분들이 있습니다. 예를 들면 아무 데이터도 없는 무음을 재생하는데 데이터를 320kbps 씩 굳이 할당할 필요는 없을 것입니다. 그래서 실제로 필요한 데이터량에 따라 최적의 비트레이트로 바꾸는 가변 비트레이트(VBR) 기법이 등장하였습니다. 이에 반대되는 용어는 고정 비트레이트(CBR)라고 합니다. 그래서 음질을 중시해서 최대 CBR 값을 사용하는 것이 아니면 용량 대비 음질 효율은 VBR이 더 좋습니다.

 

한편, 오디오를 스트리밍 할 때에는 네트워크의 속도라는 변수가 추가됩니다. 만약 네트워크의 속도가 현재 스트리밍 중인 오디오의 데이터량보다 낮다면 소리가 끊기게 될 것입니다. 그래서 네트워크의 속도에 따라 실시간으로 비트레이트를 변환하는 기법도 있습니다. 이를 가용 비트레이트(ABR)라고 합니다.

 

손실 압축 포맷의 종류

손실 압축의 대표적인 포맷은 누구에게나 익숙한 MP3(MPEG-2 Audio Layer III)입니다. 1993년에 독일 프라운호퍼 협회에서 처음 선보인 이후, 무료 MP3 인코더인 LAME이 등장하면서 가장 폭발적으로 보급되었습니다. MP3의 음질에 대해서는 여전히 논란이 많습니다만, MP3 인코더의 성능이 점점 올라가면서 용량 대비 음질이 꾸준히 발전하여 현재는 음질 논란도 많이 수그러들었습니다. 최신 LAME 인코더에서 192kbps 이상의 비트레이트로 인코딩된 MP3는 대부분의 사람들이 원본 WAV과 차이를 느끼기 힘들 정도입니다.

 

물론 MP3는 나온 지 오래되었기 때문에 여러 문제가 있습니다. CD 음질 이상의 고해상도 샘플링을 지원하지 않고 멀티채널 역시 지원하지 않습니다. 그런 호환성 문제를 개선하고 용량 대비 음질도 더욱 높인 손실 압축 방식으로서 최근 입지를 넓혀가고 있는 포맷이 AAC(Advanced Audio Coding)입니다. AAC는 애플의 iTunes 및 애플 뮤직에서 사용하고 있으며, 애플 기기의 블루투스 코덱인 AAC를 사용하면 무변환으로 그대로 블루투스로 전송되는 장점이 있습니다. 용량 대비 음질이 MP3보다 좋다 보니 최근에는 애플 진영뿐 아니라 다른 스트리밍 서비스들에서도 AAC를 사용하는 경우가 늘고 있습니다.

 

이외에 잘 알려져 있는 손실 압축 포맷으로는 마이크로소프트에서 개발하여 윈도우 운영체제 등에서 널리 쓰이고 있는 WMA, 그리고 유료 라이선스가 필요한 MP3의 대안으로 등장한 무료 포맷인 OGG 정도를 들 수 있습니다.

 

한편 과거로 거슬러 올라가면 광학 미디어에 손실 압축 방식으로 저장한 예도 있습니다. 소니의 MD(MiniDisc)는 자체적인 ATRAC이라는 손실 압축 방식을 사용해서, 지름이 2.5인치밖에 되지 않은 작은 매체에 최대 45시간이나 되는 음악을 기록할 수 있었습니다. 다만 저장 매체의 대용량화와 음원 자체의 고음질화에 따라 소니도 2013년에 MD 플레이어 생산을 종료했습니다.


 

 

글쓴이

  • 지성, 이성, 그리고 감성의 삼위일체를 꿈꾸는 테크니컬 라이터
    디자인과 공학을 기반으로 다양한 분야에 능통하여 다학제적 시각의 리뷰가 특기이다.
    개인 블로그 asnote.net 운영중