용량은 더 작게, 품질은 그대로 - 코덱(codec)
영화 배우의 모습이나 풍경, 혹은 가수의 목소리, 악기의 연주를 저장하기 위한 방식으로는 크게 아날로그적인 방식과 디지털적인 방식의 두 가지로 나눌 수 있다. 그 중에서도 직접 그림을 그리거나 악보 형태로 받아 적는 것이 가장 원시적인 형태의 아날로그 방식이라고 할 수 있는데, 저장하는데 시간이 너무 오래 걸리고 원본에 비해 형태의 변형이 심하기 때문에 20세기에 들어와서는 사용 빈도가 크게 줄어들었다.
여기에서 조금 더 발전한 아날로그 저장 방식이 LP레코드, 필름과 같이 물리적인 방식으로 데이터를 기록하는 매체를 사용하는 것이다. 예를 들어 LP레코드의 경우, 원반에 일정한 간격의 미세한 홈을 만들어 그 위로 바늘이 지나가게 한다. 그 후 홈과 바늘 사이에서 일어나는 미세한 진동을 감지하여 진동의 강약이나 패턴에 따라 각기 다른 전기신호를 내는 회로를 거쳐 스피커로 음향을 재생한다. 하지만 이러한 아날로그 방식의 매체 역시 원본을 완벽하게 보존하지는 못한다. LP레코드라면 원반에 먼지가 붙거나 흠집이 생겨서 원음에 왜곡이 생길 수 있으며, 필름이라면 직사광선이나 화학약품 등과 접촉하여 화상의 색상이나 윤곽에 변형이 생길 수도 있기 때문이다.
이러한 아날로그 저장 방식의 단점을 보완하기 위해 탄생한 것이 디지털 저장 방식이다. 디지털 신호는 0과 1밖에 존재하지 않는다는 한계가 있지만 이를 조합하면 다양한 형태의 데이터를 생성할 수 있다. 예를 들어 ‘빨간색’의 영상을 디지털에서는 이를 ‘1011’라는 0과 1의 조합으로 인식한다고 가정하자. 여기서 얻은 데이터를 바탕으로 다른 디지털 기기에서도 ‘1011’의 데이터를 입력하면 장소와 시간에 관계 없이 원본과 다름없는 빨간색이 표현될 것이다. 하지만 아날로그 방식이라면 해당 빨간색으로 물감으로 직접 그리거나 필름으로 찍어서 기록해야 할 테니 시간이 지나거나 주변 환경이 바뀌어서 도화지나 필름이 변색된다면 원본의 빨간색이 주황색이나 보라색으로 보일 수도 있을 것이다.
압축기(Compressor) + 압축해제기(Decompressor) = 코덱(codec)
이러한 디지털 방식의 장점 때문에 최근에 사용하는 멀티미디어 기기들은 거의 대부분 디지털 방식 데이터를 기반으로 영상이나 음향을 저장/재생하는 방식을 택하고 있다. 데스크탑이나 노트북과 같은 PC(Personal Computer)뿐 아니라 MP3 플레이어, PMP, 스마트폰 등 컴퓨터 시스템에 기반하여 설계된 기기라면 모두 마찬가지다.
그런데 아날로그 형태로 존재하는 음성이나 영상을 녹음, 녹화하여 컴퓨터 기반의 시스템에서 사용하기 위해서는 이를 디지털 데이터로 변환시키는 과정이 필요하다. 위에서 언급한 ‘빨간색’을 ‘1011’로 바꾸는 과정이 바로 그것이다. 또는 이미 기록된 디지털 데이터의 용량을 압축하여 파일의 크기나 프로그램 호환성이 다른 형식의 파일로 만들기도 한다. 이러한 일련의 과정을 ‘인코드(encode: 부호화)’라고 한다.
그리고 이렇게 인코드된 디지털 데이터를 원래대로 되돌리는 것, 즉 디지털 음성이나 영상을 스피커나 모니터 등의 출력 장치로 출력하는 과정을 디코드(decode: 복호화)라고 한다. 이러한 인코드와 디코드는 각각 압축기(Compressor)와 압축해제기(Decompressor)의 역할을 하므로 이를 합쳐 코덱(codec)이라고 한다. 참고로 코덱은 위에서 설명한 것처럼 음성이나 영상 데이터를 다루는데 많이 쓰이지만 그 외의 디지털 데이터에 연관된 코덱도 있다.
하드웨어 형태의 코덱과 소프트웨어 형태의 코덱
코덱은 인코드 및 디코드 기술 자체의 의미 외에 이러한 작업을 독자적으로 할 수 있는 하드웨어, 혹은 일반적인 컴퓨터 운영체제에 설치되는 소프트웨어의 의미도 가지고 있다. 인코드나 디코드 작업을 수행하는 것을 인코딩(encoding), 디코딩(decoding)이라고 하며, 이러한 작업을 하는 특정 하드웨어나 소프트웨어를 인코더(encoder), 디코더(decoder)라고 부른다.
하드웨어 형태의 코덱은 데이터 변환 속도나 결과물의 품질이 우수한 편이지만 가격이 비싸고 기능의 변경이나 추가가 어려운 단점이 있다. 반면, 소프트웨어 형태의 코덱은 컴퓨터 CPU에 의존하여 작동하기 때문에 상대적으로 성능이 떨어지는 편이지만 비교적 싼 가격, 혹은 무료로 대량 보급/배포가 가능하고 기능 추가도 용이하다. 최근에는 컴퓨터 CPU의 처리 속도가 대폭 향상되어 소프트웨어 방식의 코덱도 기존 하드웨어 방식 코덱에 뒤지지 않는 성능을 냄에 따라 소프트웨어 코덱 사용이 점차 늘어나는 추세다.
데이터 용량은 줄이면서 품질은 그대로
디지털 음악을 생성/감상하는 과정을 살펴보면 코덱의 역할을 잘 알 수 있다. 컴퓨터에 연결된 마이크를 통해 녹음된 음성 데이터는 기본적으로 PCM 방식(Wave 파일 형식)으로 저장된다. 하지만 압축되지 않은 PCM 음성 데이터는 용량이 너무 커서 디스크 용량도 많이 차지하고 네트워크를 통해 전송하는데도 시간이 많이 걸린다. 때문에 이런 경우 가장 많이 사용하는 코덱이 ‘MP3(MPEG Audio Layer-3)’다. MP3 코덱을 갖춘 인코더를 이용해 PCM 데이터를 MP3 데이터로 변환하면 원본 데이터 중에서 인간의 귀로는 들을 수 없는 초고역대, 혹은 초저역대 범위에 있는 주파수 데이터가 모두 제거된다. 이렇게 하면 체감적인 음질은 유지하면서 데이터 용량을 크게 줄일 수 있다.
또한 이렇게 MP3 데이터의 압축을 풀어 본래의 음성 데이터로 변환, 감상하기 위해서는 MP3 코덱을 갖춘 재생용(디코드) 소프트웨어(예, 곰플레이어 등), 혹은 하드웨어(예, MP3 플레이어 등)가 필요하다. 이러한 과정을 거친 MP3 데이터는 본래의 음성 데이터로 변환되어 스피커를 통해 사용자의 귀로 전달된다.
주로 사용되는 코덱의 종류와 형태
일반적으로 많이 쓰이는 음성 코덱으로는 MP3, AAC, WMA, AC3 등이 있으며, 동영상 코덱은 Divx, Xvid, WMV 등이 대표적이다. 프로그램 기술의 발달로 인해 압축률이 보다 향상된 코덱이 점차 나오고 있기 때문에, 신형 코덱 규격으로 인코딩된 영상이나 음성 데이터일수록 파일 용량에 비해 음질이나 화질이 우수한 경우가 많다. 다만, 압축률이 높은 코덱일수록 인코딩이나 디코딩 시에 보다 고성능의 CPU를 요구한다는 점도 참고로 알아두자.
PC에서 특정 음성 파일이나 동영상 파일이 재생되지 않는 경우, 해당 파일에 맞는 형식의 코덱 소프트웨어를 설치해주면 재생이 가능하다. 이렇게 일일이 특정 코덱을 설치하는 것을 번거로워하는 사용자들을 위한 ‘통합 코덱’ 소프트웨어도 있는데, 이는 여러 가지 코덱을 한꺼번에 설치해 주기 때문에 사용이 간편하다. 다만, 필요하지 않은 코덱까지 설치하거나 용도가 같은 코덱을 복수로 설치하면 외려 오작동의 원인이 될 수 있으니 주의하도록 하자.
또한, 특정 음성 파일이나 동영상 파일을 다른 코덱 형식의 파일로 변환하고자 할 때는 해당 형식의 코덱을 갖춘 변환 소프트웨어(인코더)를 사용하면 된다. 이는 특정 코덱의 음성이나 동영상만을 지원하는 PMP나 MP3 플레이어, 스마트폰 등을 사용하는 경우에 유용하다.
글 / IT동아 김영우(pengo@itdonga.com)