컴퓨터의 코덱(CODEC)에 대해서 알아보겠습니다. 코덱(CODEC)은 Coder-DECoder 또는 Compressor-DECompressor의 약자이며 코딩기-디코딩기 또는 압축기-압축복원기로 해석됩니다. 말이 좀 어렵지만 코덱은 전기와 같습니다. 잘 모르지만 매우 잘 사용하고 있습니다. 예를 들어보자면, MP3 파일을 컴퓨터에서 어떻케 들으세요? MP3 플레이어로 듣죠? 그 때 MP3 플레이어는 Windows Media Player, iTunes, KMP, 거원오디오 등등이 될 수 있습니다. 즉, 이러한 각각의 플레이어에는 MP3 코덱이 장착되어있기 때문에 MP3 파일을 해석해서 여러분에게 음악을 들려주는 것입니다.
그런데 혹시 영화 또는 음악파일을 얻거나 다운로드 받아서 실행하려 하는데 “코덱이 없습니다.”라는 메시지창을 보신적 있으신가요? 있죠? 위 에러메시지가 뜨는 이유는 말 그대로 그 영화 또는 음악을 플레이해줄 수 있는 코덱이 현재 사용중인 플레이어에 장착되지 않았다라는 의미입니다.
그러면 어떻케 이 문제를 해결하세요? 가장 쉬운 방법은 이 코덱이 장착된 플레이어로 플레이하면 되겠죠? 네. 바로 곰플레이어나 KMP와 같은 여러가지 코덱이 장착된 플레이어로 플레이하거나 그 코덱을 가진 전용 플레이어를 찾아서 플레이하면 됩니다. 두번째 방법은 다양한 코덱을 한번에 컴퓨터에 인스톨해 놓으면 됩니다. 통합코덱이라는 것이지요. 그리고 마지막으로 전문가가 사용하는 방법으로는 해당되는 코덱을 인터넷에서 찾아 플레이어에 장착하는 것입니다.
“하나님은 자신의 형상을 빌어 인간을 만드시고 인간은 자신의 형상을 빌어 컴퓨터를 만들었다.” 컴퓨터가 지배하는 미래시대의 바이블에 기록될 여지가 있는 말이라 생각됩니다. 그런데 인간은 이 컴퓨터를 하루에 만들지 못하고 여러 세기동안 발전시켜서 만들었습니다. 그리고 컴퓨터를 만들고 나서도 한단계 한단계 점진적으로 컴퓨터의 기능을 발전시켜 왔습니다. 그래서 가장 최신의 컴퓨터나 ICT 관련 기술을 언뜻 바라보면 매우 어렵게 보이나, 차근 차근히 그 기술의 발달 과정을 보면 가장 최신의 기술이라 할지라도 그리 어렵지 않게 이해할 수 있습니다.
이와 마찬가지로 멀티미디용 코덱도 점진적으로 발전하게 되었으며 다양한 종이 출현하였습니다. 이러한 코덱의 종은 크게 3개의 분류할 수 있습니다. 오디오 코덱, 정지화상 코덱 그리고 동영상 코덱(비디오 코덱)입니다.
먼저 코덱 중 다루기 가장 까다로운 오디오 코덱을 알아보겠습니다. 왜 까다로웁냐 하면 사람의눈은 초당 16프레임의 연속된 동작의 정지 사진만을 보여주면 동영상으로 인식할 정도로 어리 숙한데 반하여, 귀가 좋은 음악 애호가 분들은 오케스트라 연주회에서 울려퍼지는 수많은 악기의 울림 중, 어느 음이 반음 틀리거나 또는 잘못된 박자를 내고 있는지 파악해 냅니다.
최초의 오디오 코덱은 WAV라 보면 됩니다. 말 그대로 노래의 Wave(파동)을 컴퓨터에 디지털로 기록해 놓은 것으로 보면 됩니다. 음악 CD의 노래를 컴퓨터로 옮기면 이 포맷으로 바뀌게 되는데 파일 사이즈가 매우 큽니다. 그래서 개발된 것이 음성 신호를 압축할 수 있는 MP3 코덱입니다. 혹시 기억하세요? CD의 노래를 수작업으로 WAV 파일 로 변환한 후 MP3로 다시 변환해서 MP3 플레이어에 넣어 다니곤 했었죠. 그리고 기술은 더욱 더 발전하여 MP3 코덱이 가지는 한계를 해결하기 위하여 OGG와 FLAC가 나왔으며 AC3와 WMA 기술이 나와 영화관에서 느끼는 서라운드 사운드를 집에서도 들을 수 있게 만들어 주었습니다.
다음은 정지화상에 대한 코덱입니다. 최초의 정지화상 코덱은 BMP(Bitmap)라 보세요. 이 코덱은 그림의 모든 픽셀 하나 하나에 대한 위치 정보와 색정보를 가지고 있습니다. 그래서 그 크기가 장난이 아닙니다. 스캐닝하면 만들어 지는 파일의 기본 포맷이 바로 이 BMP입니다. 그림이 가진 모든 정보를 담고 있기에 크다는 단점이 있지만 원본을 변화시키지 않는다라는 장점을 가지죠. 그러나 이 BMP는 WAV와 같이 너무 커 다루기 어렵습니다. 그래서 나온것이 JPEG(JPG) 코덱이며 BMP를 압축한 것이라 보면 됩니다. GIF와 PNG가 또 나왔는데 GIF는 여러개의 정지화상을 움직여 버튼이나 작은 아이콘 또는 로고등을 애니메이션 형태로 보여주는 기술이며 PNG는 그림 파일에 투명속성을 적용할 수 있는 정지화상 기술입니다.
세번째, 동영상 코덱에 대한 이야기입니다. 동영상은 아마도 여러분들도 학창 시절에 공책 또는 책을 이용해서 만들어 본 적 있을 듯 합니다. 컴퓨터 코덱도 똑같은 방법을 사용합니다. JPEG 파일을 연속적으로 보여주는 방법이고 그이름은 m-JPEG(모션 JPEG)라고 이름지어졌습니다.
그런데 m-JPEG는 파일 크기가 무척 큽니다. 각각의 정지화상의 픽셀 정보를 모두 가지고 있어야 하니 어쩔 수 없지요. 그러면 어떻케 해야 파일 크기를 줄일 수 있지요? 하나의 정지화상은 벌써 JPEG로 줄여 놓았으니 각각의 JPEG를 더 줄일 수는 없고 인접한 JPEG 이미지를 조사해서 변동되는(변화하는) 부분만을 기록해 나가면 이 전체 파일의 크기를 줄 일 수 있을 것입니다. 영화에서 사람이 손을 드는것을 상상해 보세요. 배경과 사람의 얼굴 몸통은 거의 변화가 없고 단지 손의 모양과 위치만이 바뀌지요. 이러한 상식적인 생각을 수학적으로 표현하고 이를 컴퓨터 프로그램(인코더)으로 구현, 원시 동영상 파일에 적용(인코딩)하여 획기적으로 그 크기를 줄일 수 있게 되었습니다.
그리하여 위에서 언급한 방법(기술)이 국제적으로 표준화되었는데 그것이 바로 MPEG-1 기술입니다. VCD가 나왔으며 MP3(MPEG-1 Layer 3)기술도 같이 나왔습니다. 이후 MPEG-2 기술이 나왔으며 SVCD와 DVD가 출현합니다.
이후 일련의 동영상 코덱 표준화 작업은 계속 진행되었으나 MPEG-3 표준화 작업은 MPEG-2와 중복되는 기술이 많아 MPEG-2로 흡수되어 폐지되었습니다. MPEG-4는 HD DVD와 Blue Ray를 세상에 내 놓았습니다. 이 후에도 MPEG는 많은 표준을 내 놓고 있습니다.
자. 여기서 한가지 제가 말 안하고 넘어간 부분이 있습니다. 그것은 바로 동영상은 영상 신호 더하기 음성(이하 오디오) 신호로 구성되어 있다는 점 입니다. 그럼 어떻케 하죠? 답은 컨테이너 파일이라 불리는 파일에 담으면 됩니다. 즉, 동영상 파일을 만들 때 A 위치에는 영상 신호를 B 위치에는 음성 신호를 싣겠다라고 약속한 후에 그 위치에 각각의 신호를 저장하면 됩니다. 마치 영상신호와 음성신호가 영화 필름위에 동시에 존재하나 각각의 위치가 다른점이 컨테이너의 좋은 예가 될 듯합니다. 표준화가 별건가요. 약속이죠.
이를 PC 사용환경에서 보면, VCD를 CD롬 드라이브에 넣고 컴퓨터의 하드디스크에 저장하면 확장자가 PS로 나타납니다. 이 파일은 영상과 오디오를 담고 있습니다. DVD 데이타를 추출하면 영상, 오디오, 자막, 메뉴 타이틀가 나옵니다. 이 중 영상과 오디오는 VOB 파일에 저장됩니다. 즉 VOB와 PS 파일이 컨테이너죠.
MS의 표준화된 동영상 컨테이너는 AVI 확장자를 가집니다. MS는 자신들이 개발한 MPEG4 ver-3(MPEG43)의 영상 포맷을 이 컨테이너에 넣어서 제공하였습니다. (스트리밍 전용이었으며 영화를 보는 중 특정 위치로 이동할 수 없습니다. 코덱의 목적이 보기만 가능하고 카피할 수 없도록 설계되었기 때문입니다.) 보통 MP4 영상에 MP3 포맷의 오디오를 넣어 만든 콘테이너(AVI)를 윈도우즈 미디어 플레이어(코덱)로 보았다고 생각하면 됩니다.
그런데 이 MPEG43 코덱을 해커그룹이 해석해서 DivX라는 코덱을 발표했습니다. 이 DivX는 MPEG43 코덱에 걸린 제한(실시간 스트리밍)을 삭제한 MPEG43 코덱의 카피입니다. 이 포맷은 다운로드해서 저장 가능합니다. 또한 저장된 파일을 인터넷을 통하여 배포할 수 있어 인터넷 발전에 커다란 공을 세웠다고도 할 수 있습니다.
그래서 초기의 AVI 파일은 DivX 와 MP3 데이타로 구성된 컨테이너(DivX)가 많이 P2P 사이트를 통해서 유통되었습니다. 그러나, AC3라는 5.1 채널지원 코덱의 등장 이후로는 MP3로 코딩된 AVI 파일은 더 이상 사랑받지 못하게 되었습니다. 그래서 이후로부터 대부분의 동영상 파일(DivX)은 AC3 코덱으로 코딩되어져 P2P 사이트에 올려지게 됩니다.
그리고 기술은 계속해서 발전하여 DVD가 HD DVD와 Blue Ray 기술로 진화하면서 PC에서도 더 많은 코덱이 양산되기 시작합니다. MS는 ASF(Advanced Systems Format)라는 컨테이너를 만들었으며 WMA/WMV라는 발전된 오디오/비디오 코덱을 담을 수 있도록 ASF 컨테이너를 개발 배포하였습니다.
DivX는 후에 소스를 고쳐서 MS의 코덱과는 완전히 다른 것으로 탄생하였으나 자신의 코덱을 유료 코덱으로 선언하였습니다. 그래서 DivX의 알파벳 순서를 바꾼 Xvid 코덱이 나오게 되었습니다.
여담이지만 저작권을 보호하려는 그룹과 저작권을 무시하려는 구룹, 컴퓨터 자원을 지키려는 그룹과 컴퓨터 자원을 뺏으려는 그룹간의 인터넷 전쟁이 인터넷을 더욱 확장하고 컴퓨터 관련 기술을 더욱 더 발전시키고 있다는 점이 재미있습니다.
끝으로 “코덱이 없습니다.” 메시지를 해결하는 방법은
- 여러 다양한 코덱이 장착된 플레이어를 인스톨하면 됩니다.
KMP, Gom Player, iTunes
2. 통합코덱을 인스톨합니다.
K-Lite, zcodec, LiveCodec
3. 동영상 파일을 분석해서 어떠한 코덱을 사용하는지 검사 한 후 코덱을 인터넷에서 찾아 다운로드/인스톨합니다.