|
동영상 인코딩이란?
인터넷의 보급으로 대용량 파일 교류가 활발하고
HDTV 방송을 녹화하여 보거나 저장하는 사용자들이 늘고 있으며, 유튜브
(YouTube)로 대표되는 웹상의 온라인 동영상 포털 사이트와 전문가가
아닌 일반 사용자들이 직접 컨텐츠를 제작하여 온라인 상에 게시하여
정보를 공유하는 UCC (User Created Contents) 등이 등장하면서 동영상에
대한 일반 유저들의 관심도 증폭되었다.
또한, 최근에는 디지털 카메라나 캠코더의 가격이
낮아져 일반 사용자들도 가정에 하나 쯤은 두고 있을 만큼 보급되고
있다. 이에따라 영상을 편집하기 위한 편집 프로그램 사용법 등에도 관심을
가지게 되고 캠코더나 디지털 카메라 등으로 촬영된
동영상을 그대로 사용하는 것이 아닌 원하는 효과나 자막 등을 추가하거나
용량을 조절하여 웹상에 게시하고 HDD 등에 저장하기 위해 적절한 용량을
만드는 등의 편집작업이 필요해졌다.
이런 편집작업은 캠코더나 디지털 카메라, HDTV를
녹화하거나 휴대폰이나 MP3 플레이어, PMP 등의 휴대용 디지털 기기를
사용해본 사용자들이라면 한 번쯤은 시도해봤을 정도로 디지털 기기
사용자들은 쉽게 접할 수 있는 일들이다.
인코딩과 디코딩(Encoding & Decoding)
PC에서 처리하는 모든 데이터는 반드시 Encoding과 Decoding작업을 거친다. 동영상 뿐 아니라, 이미지, 음악 등 모든 데이터는 반드시 Encoding(변조)작업을 통해 PC에 저장하고 Decoding (복조) 작업을 통해 다시 복원해내어 재생해주는 과정을 거친다.
이는 원본 데이터를 그대로 사용할 경우 상당히 많은 용량의 데이터를 가지게 되어 데이터의 이동, 전송, 처리과정이 기하급수적으로 증가하여 비효율적으로 작동하기 때문에, 이를 더욱 효율적으로 작동하게 하기 위하여 인코딩과 디코딩 작업이 추가된다. 흔히 알고 있는 BMP파일과 JPG 이미지파일 역시 대표적인 인코딩/디코딩 작업의 예로, BMP파일은 인코딩을 하지 않은 원본데이터 자체이고 JPG등의 파일은 인코딩과정을 거친 출력물 데이터이다.
인코딩은 이러한 방대한 데이터를 일정한 약속된 프로토콜을 통해 화질을 조정하고 필요없는 데이터를 삭제하며, 데이터의 용량을 최대한 줄일 수 있는 방식으로 데이터를 조작하는 행위를 일컫는다. 물론 이러한 과정을 거친 파일은 디코딩 소프트웨어를 통해 재생이 가능하며, 우리가 흔히 사용하는 미디어플레이어 및 영상재생프로그램 (곰플레이어등) 이 여기서는 디코딩 소프트웨어에 속한다.

[비디오 인코딩
과정, 417Mbps 영상 파일을 50Mbps 영상으로 줄인다.]
동영상 인코딩은 늘어나는 데이터의 크기 증가를
효과적으로 다루기 위해 영상의 화질 손실을 줄이면서 압축을 통해 용량을
줄이는데 일차 목적이 있으며, 이 과정에서 코덱(프로토콜)과 인코딩 프로그램 그리고 디코딩 프로그램이
필요하게 된다.
이미지는 동영상 인코딩을 진행하는 과정을 표현한
것으로 대용량 원본 동영상을 인코더를 통해 목적에 맞게 크기를 줄이는
것을 보여준다. 이 과정에서 인코더를 거치면 원본과 비교하여 화질
저하가 이루어지는 대신 동영상의 크기는 크게 줄어들게 된다. 이 과정에서
인코더는 코덱을 이용한 압축을 진행하여 목적에 맞는 동영상을 만들
수 있도록 도와준다.
참고로 이미지에 나타난 동영상은 640 x 362 해상도와
30fps로 재생되는 20초 영상으로 용량 계산은 640 x 362 (pixels) x
24bit/pixels (픽셀 당 24bit, R,G,B 표현에 각 1Byte 씩 색상 표현에
3bytes가 필요) x 30 (fps) x 20 (seconds)/ 8 (Byte를 bit로 변환위해
8로 나눔)로 약 417MB용량의 원본은 인코더와 코덱을 통해 50MB의 용량의
크기가 크게 줄어드는 것을 보여준다.
동영상 인코딩에서의 압축은 기본적으로 손실 압축
(화질이나 음질이 감소)이 사용되기 때문에 인코딩을 진행하게 되면
원하는 용량이나 효과들을 적용할 수는 있지만, 원본 화질이나 음질은
떨어지게 된다. 동영상 인코딩에 압축 (손실 압축)이 사용될 수 있는
이유는 인간의 눈은 영상이 심하게 왜곡되지 않을 경우 어느 정도의
왜곡은 구분이 힘들며, 비슷한 여러 가지 색상을 대표적인 RGB (Red, Green, Blue)로 구현해도 이전의 비슷한 색 조합의 세세한 구분을
완벽하게 하지 못하는 특성이 있기 때문에 가능하다.
동영상 인코딩에 필요한 코덱
동영상 인코딩에 많이 등장하는 코덱 (Codec)은
영상이나 음성의 아날로그 신호를 디지털로 변경해주는 코더 (Coder)와
디지털 신호를 아날로그 신호인 영상이나 음성으로 변환해주는 코더의
반대 역할을 하는 디코더 (Decoder)가 합해진 단어다. 일부 코덱의 경우
디코더 하나만의 역할을 담당하기도 한다.
동영상 인코딩에 사용되는 코덱들은 일반적으로
인코딩 과정에서 발생되는 화질 저하나 음질 등의 손실을 줄이기 위해
꾸준히 개선되고 있지만, 코덱의 옵션에 따라 화질과 음질 증가 (비트레이트율
증가, bitrate)될 경우 원본에 가깝게 용량이 크게 증가하는 문제가
발생되어 코덱 옵션 설정의 적절한 선택이 필요하다.
동영상 인코딩에 사용되는 코덱으로는 동영상 편집에
많이 사용되는 MPEG 1/ 2/ 4 (Motion Picture Expert Group), 인텔이
제안한 인디오 (Indeo), MPEG-4 기반으로 영상 압축률과 좋은 화질을
제공하는 DivX, 상용인 DivX에 대응되는 MPEG-4 기반 공개 코덱인 XviD,
애플사기 제안한 MOV, 마이크로소프트사의 WMV 6/ 7 8/ 9, VC-1, 최근
각광을 받고 있는 고화질과 높은 압축률을 제공하는 H.264/ MPEG-4
AVC (MPEG-4 Part10), XviD 성격의 x264 (H.264 기반) 공개 코덱 등이
있다.
파일 포맷도 코덱에 따라서는 MPEG는 mpeg, mpg로
마이크로소프트가 1992년 소개한 AVI (Audio Vidoe Interleaved), 애플
mov, 마이크로소프트의 wmv, vc1, MPEG-4 기반의 H.264/ MPEG-4 AVC
코덱을 적용한 휴대용 기기들에는 mp4, PC에는 mkv, 플래시 동영상
포맷인 flv, HDTV 수신카드 파일 포맷으로 tp 등이
사용된다.
최근 디지털 기기들은 압축률과 화질이 높은 DivX,
XviD 등의 코덱 지원과 H.264/ MPEG-4 AVC 코덱을 지원하는 장치들이
늘어나고 있으며, 라이센스 등의 문제로 공개 코덱보다는 상용 코덱을
기반으로 영상을 지원하거나 독자적인 파일 포맷이나 코덱을 사용하는
경우도 있다.
동영상 제작
경향과 다양한 동영상 제작 프로그램
동영상을 제작한다는 것은 사진을 찍는것과는 개념이 약간 다르다. 그 근본적인 차이는 바로 '시간'의 개념이 들어가 있기 때문이다. 우리가 보는 이미지(사진)역시 Photoshop등의 편집프로그램을 거쳐 파일을 생성하듯, 동영상 역시 편집프로그램을 거쳐 출력물을 생성하게 된다. 사진은 그렇지 않기도 하지만 영상은 반드시 편집과정이 수반된다.
동영상 제작은 크게 두가지 과정으로 구분된다. 하나는 원본을 시간에따라 적절히 편집하고 영상에 다양한 효과를 삽입하여 영상 자체를 편집하고 생성하는 과정과, 이렇게 완성된 영상으로 출력물을 생성하는 과정이다. 이미지(사진) 도 이와 크게 다르지 않지만 (포토샵의 경우도 편집후 저장하는 과정을 거치지 않는가?) 동영상의 경우 꼭 구분을 하는 이유는, 저장과정이 상당히 지루하고 오랜 시간이 걸리기 때문이다. 포토샵에서는 그냥 '저장'버튼만 누르면 간단히 끝나지만, 영상의 경우는 '저장'에만 짧게는 수십분, 길게는 몇시간이 걸릴 정도로의 방대한 작업이다. 단순한 트랜스코딩류의 경우는 빠르게 끝나는 편이지만, 편집프로그램을 이용한 인코딩에서는 수시간은 기본적으로 소요되는 것이 보통이다.
우리나라는 인터넷이 빠르게 보급되어 인터넷망
구축이 잘되어 대용량 파일 이동이 쉽다. HDTV 수신 카드 등의 PC 장치들과
휴대폰, MP3 플레이어, PMP, 휴대용 게임기 등의 보급도 잘 되어 있어, 대부분 편집이 끝난 완성본 영상을 기기의 목적에 맞게 사이즈와 용량을 변환하는 작업이 보편화되어 있다.이 작업 역시 인코딩 작업에 속한다. (정확히 이야기하면 재인코딩, 즉 트랜스코딩이라 부른다)
그러나, 최근에는 급속한 UCC의 인기 증가, 그리고
캠코더의 가격의 인하로, 트랜스코딩에서 벗어나 직접 영상을 제작하는 편집과정이 수반된 영상을 제작하는 비중이 점차 높아지고 있다.
이에따라 영상제작 프로그램은 크게 두가지로 나뉜다. 하나는 파일의 인코딩이나 트랜스코딩(재인코딩) 만 제공하는 인코딩프로그램이 있으며, 다른 하나는 편집의 기능이 기본 기능이고 인코딩기능이 포함되어있는 영상제작/편집 프로그램이다.

[어도비 프리미어
프로 CS4, 대표적인 전문가용 영상제작 프로그램]
어도비 프리미어나 소니 베가스 등의 프로그램은 뛰어난 영상제작/편집기능을 가지고 있는 대표적인, 전문가들을 위한 영상제작 프로그램이며,
사이버링크 파워디렉터 7 등과 유사한 계열의 프로그램들은 이러한 고가의
전문가용 프로그램들보다 일반 사용자들도 쉽게 사용할 수 있도록 만들어진
영상제작 프로그램으로 볼 수 있다. 이들 프로그램들은 대부분
단순 인코딩이나 트랜스코딩이 아닌, 원본 영상을 통한 다양한 수정과 효과, 자막 등을 원하는 대로
적용하여 영상을 제작하는데 주로 목적이 있다.
우리나라는 영상 제작/편집 프로그램보다는, 디지털 기기의 파일 포맷 변환이나
HDTV 녹화 파일 변환 등의 트랜스코딩 목적이 강세를 보였기 때문에
이들에 강점을 보이는 단순 인코딩/트랜스코딩 프로그램들이 주를 이룬다.
대표적으로 바닥, 곰인코더, 다음 팟인코더 등과 같은 인코딩 프로그램들을
들 수 있다.


[CUDA 지원
동영상 인코딩 프로그램]
GPU 병렬 컴퓨팅을 가능하게 해주는 C언어 기반
NVIDIA CUDA를 이용한 인코딩 프로그램으로는 CUDA의 홍보와 함께 가장
먼저 BadaBoom (Elemental Technologies사의 GPU 가속을 위한 RapiHD
비디오 플랫폼 적용)이 등장하였으며, 이어서 페가시스사의 TMPGEnc
4.0 Xpress 최신버전에서도 비디오 필터 효과 적용시 GPU 가속을 지원하는
CUDA를 지원하게 되었다. 최근에 공개된 사이버링크 PowerDirector 7
최신 버전에서도 CUDA를 이용해 GPU로 비디오 필터 효과들을 가속해줄
수 있다.
하지만, 현재 등장한 CUDA 지원 인코딩 및 편집 프로그램들은
모두 상용 프로그램이기 때문에 꼭 필요한 경우가 아니면 구입의 필요성이 높지 않다. 또,
우리나라는 편집과정이 필요없는, 휴대용 기기에 맞게 파일 포맷 및 용량을 조절하는 목적의
트랜스코딩이 강세고 이를 지원하는 무료 인코딩 프로그램들이 다양하게
존재하므로 국내 실정에서는 이들 상용 프로그램의 필요성이 크게
와닫지 않고 있다. |