공부/기본 이론

코덱이 뭔가요? (코덱과 컨테이너의 차이) by Michael Fitzer

반응형

원본글 : http://blog.naver.com/dwater1/220812470037

코덱(Codec)이란?

코덱은 경험 많은 비디오 에디터들에게도 (설명하기) 쉽지 않은 단어다.

 

왜?  코덱이 많아도 너무 많으니까.  어떤 코덱들은 그 차이점을 설명하기도 애매하다.  각각의 코덱이 가진 특성을 알고 내게 필요한 코덱을 찾으려면 어떡해야 할까?  

 

우선 코덱의 정의부터 알고 가자.

 

코덱은 두 단어의 앞 글자를 합친 거다.  코더(coder)와 디코더(decoder).  그래서 co/dec.   

 

뭐하는 녀석이냐고?  간단하게 설명하자면,

코더coder는 데이타를 압축하고 부호로 만드는(encode) 것이고 디코더decoder는 압축된 데이타를 풀어서 재생시킬 수 있게 만드는 거다.

 

코덱은 소프트웨어적으로 작동하는 컴퓨터 코드code이기도 하고, 아날로그 비디오/오디오 신호를 디지털 포맷으로 바꾸는 하드웨어이기도 하다.  (하드웨어 코덱은) 반대로 디지털 신호를 아날로그 포맷으로 바꾸는 기능도 한다.

 

하드웨어 코덱은 신호를 녹화하거나 재생할 때 실시간real-time으로 작동한다.  하지만 방송국 엔지니어가 아닌 이상 우리가 (하드웨어) 코덱을 사용할 일은 많지 않다.  우리가 쓰는 코덱은 대부분 비디오/오디오 데이타를 압축하고 전송하거나 저장하기 위해 사용하는 (소프트웨어적인) 것이다.

 

1. 코덱의 종류

 

이제 코덱이 무엇이고 왜 필요한지 알았으니 코덱의 종류를 알아보고 내게 필요한 코덱이 무엇인지 찾아보자.

 

코덱은 종류가 많은데 크게 네 종류로 나눌 수 있다.

 

1) Lossless codec:

말 그대로 비디오/오디오를 퀄리티의 손실 없이(lossless) 재생산reproduce한다.

 

2) Lossy codec: 

어느 정도의 정보를 손실시키는 대신 신호를 압축하여 저장 공간을 덜 잡아먹는다.

lossy 코덱은 데이타 압축 능력이 뛰어나기 때문에 인터넷 스트리밍 등에 유리하다.

 

3) Transformative codec:

이 코덱은 신호를 어느 정도 크기의 덩어리로 자른 다음 압축한다.  

 

4) Predictive codec:

이 코덱은 파일 사이즈를 줄이기 위해 현재 압축하고 있는 테이터와 이웃한 데이터를 비교하여 불필요한 부분을 잘라낸다.  

 

공통적으로 코덱은 데이타를 압축하면서 동시에 데이타의 손실을 최소화하려는 목표를 가진다.  수많은 종류의 코덱은 결국 위에 열거한 4가지 코덱 타입 중의 하나다. 

 

1) MPEG Family 

 

가장 많이 알려진 코덱 타입은 MPEG 스탠다드를 따른다.  MPEG은 Moving Picture Experts Group의 줄임말이다.  MPEG에는 크게 3가지 포맷이 있고 그 하위 단계에 수 많은 타입을 포함한다.  

 

1) MPEG-1:

MPEG-1은 아주 높은 퀄리티의 데이타를 재생산reproduce한다.  Fraunhofer라는 사람이 개발한 MP3(MPEG-1 Layer3)은 MPEG-1코덱을 위한 오디오 코덱이다.  (하지만 MPEG-1 비디오가 꼭 MP3 오디오만을 포함하는 것은 아니다.)

 

대부분의 컴퓨터와 DVD플레이어는 MPEG-1과 MP3포맷을 지원한다.  MPEG-1의 단점이 하나 있다면 프로그레시브 스캐닝progressive scanning만 지원한다는 점이다.  프로그레시브 스캐닝은 움직이는 이미지의 모든 라인을 순차적으로 재생/저장하는 방식이다.  이것은 인터레이스드 스캐닝interlaced scanning과 대비되는 개념으로, 인터레이스드 스캐닝은 움직이는 이미지의 홀수 라인odd line을 먼저 표시하고 그 다음에 짝수 라인even line을 표시하는 방식이다.

 

*주: 1080p 혹은 1080i에서 보이는 그 progressive(p)와 interlaced(i)방식을 이야기 하는 겁니다. 

 

MP3는 (압축과정에서) 약간의 데이터 손실을 초래하지만 대신 파일 사이즈가 작다.  현재 거의 모든 디지탈 음원 저장장치와 재생기기의 표준이다.  일반적인 MP3 오디오 파일은 초당 128kbits로 만드는데 이것은 CD에 들어가는 오디오 데이타보다 약 11배 정도 작은 사이즈이다.  

 

2) MPEG-2:

MPEG-2는 DVD 비디오 디스크에 사용되는 비디오 압축 코덱이다.  이미 MPEG-2보다 더 높은 퀄리티의 코덱이 나왔음에도 불구하고 MPEG-2는 여전히 DVD의 표준 코덱이다.  Blu-ray Disc에도 MPEG-2를 사용한다.

 

3) MPEG-4:

MPEG-4는 프로그레시브progressive 비디오와 인터레이스드interlaced 비디오를 모두 다룬다.  그리고 MPEG-2보다 더 압축률이 뛰어나다.  따라서 MPEG-2와 함께 아주 많이 사용되는 코덱이다.  MPEG-4에서 파생된 코덱이 아주 많은데 H.264도 그중 하나다.  H.264는 많은 종류의 어플리케이션이 지원하는 스탠다드 코덱으로 데이타의 bit rate나 resolution의 높고 낮음에 관계 없이 압축이 가능하다.  H.264의 높은 압축률 덕에 방송이나 멀티미디어용으로 많이 사용되고 대용량 (동영상) 파일 저장에도 용이하다.

 

2) WMV family

 

MPEG과 같이 많이 알려진 코덱이 WMV 코덱이다.  Windows Media Video의 줄임말로 말그대로 윈도우 유저들을 위한 코덱이며 (따라서) WMV 코덱 또한 많이 사용된다.

 

인터넷 스트리밍을 위한 압축을 위해 만들어진 WMV코덱은 RealVideo 코덱과 경쟁하는 코덱이었다. 마이크로소프트에서 WMV9(코덱)을 발표한 이후로 WMV코덱은 MPEG-4보다 두 배, MPEG-2보다는 세 배의 압축률을 자랑한다.  WMV9는 Blu-ray Disc에 들어가는 비디오 신호를 압축하는 SMPTE VC-1 (코덱)의 뿌리이기도 하다.   

 

(WMV 패밀리 중에) 많이 사용되는 코덱은 DV 코덱이다.  DV코덱은 오디오와 비디오 데이터를 압축하는  코덱이다.  그중 가장 인기 있는 코덱은 Mini DV 코덱으로 초당 25메가 바이트를 지원한다.  (DV 코덱은) 윈도우를 사용하는 컴퓨터로 캡쳐하면 보통 AVI파일로 쓰고 Mac OS를 사용할 경우 Quicktime fil로 쓴다.  AVI나 Quicktime(.mov)은 컨테이너container다.  어떤 컨테이너에 담아도 컨테이너 안에 들어 있는 데이타 자체는 거의 동일하다.

 

*코덱codec과 컨테이너container는 다른 개념입니다!

 

2. 컨테이너란? (Container)

말 그대로 무언가를 담거나contain 싸는wrap 포장지 같은 것이다.  어떤 코덱을 쓰느냐와 어떤 콘테이너에 담는가 하는 것은 별개의 문제다.  예를 들면, QuickTime(.mov)은 컨테이너이고 그안에는 MPEG-4, K3g(KTF/LGT용 휴대전화), skm(SKT용 휴대전화) 등등의 다양한 코덱으로 압축된 신호를 담을 수 있다.    

 

*부연설명:

MPEG-4나 .mp4 같은 경우 이름이 비슷해서 헷갈리기도 하는데, 컨테이너container와 코덱codec의 관계를 예로 들면 다음과 같습니다...

 

1) .mp4 = .mpeg4/.h264 video codec + audio codec (mp3, aac, etc) + subtitle

2) .avi = .mpeg4/.h264 video codec + audio codec (mp3, aac, etc) + subtitle

3) .mkv = .mpeg4/.h264 video codec + audio codec (mp3, aac, etc) + subtitle

mp4, avi, mkv등은 컨테이너이고, mpeg4나 h.264는 비디오 코덱 그리고 mp3, aac 등은 오디오 코덱입니다.  (컨테이너에는 자막도 담을 수 있습니다.)

 

또 다른 예를 들면, .mp4, .mov, .m4v만을 지원하는 프로그램을 사용하다가 .mts 파일을 열려고 하면 "해당 파일은 지원되지 않습니다"라는 메세지를 볼 수 있습니다.  그럴 경우 (h.264등의 코덱으로) 비디오를 다시 인코딩re-encoding하여 .mp4등의 컨테이너에 담아 재생하면 됩니다.  

 

Final Cut Pro X에서 익스포트할 경우에는 다음과 같은 화면이 뜹니다.

video codec칸에 Apple Proress 422HQ라는 코덱을 선택할 수 있고 오디오 코덱은 Linear PCM으로 설정되어 있습니다.  이렇게 익스포트한 파일은 .mov 컨테이너에 담겨서 나옵니다.  (물론 .m4v등의 다른 컨테이너에 담을 수도 있습니다)

 

부연설명 끝!

 

 

3. 그렇다면, 내게 필요한 코덱은?

 

우리는 어떤 코덱을 써야 하는지를 결정하기에 앞서 어떤 결과물을 원하는지 스스로 질문을 해보아야 한다.  많이 양의 데이터를 저장하기 위해 압축률이 높은 코덱을 써야 할까?  아니면 (용량이 크더라도)고품질의 영상을 모니터링 하는 것이 우선인가?  용량을 줄이기 위해 어느 정도의 데이타의 손실을 감수할 것인가 아니면 내 작업 결과물을 최상의 퀄리티로 뽑는 것이 중요한가?  

 

작업자가 무엇을 원하는지 명확하게 알고 있다면 그런 결과물을 만드는데 가장 적합한 코덱을 선택하는 것이 바람직한 방법이다.  

 

*저자인 Michael Fitzer는 Emmy 어워드를 수상한 경력이 있는 writer/producer입니다.  

 

반응형