동영상이란?

동영상은 사진을 빠르게 연속하여 보는 것이고,
사진은 점을 모아 놓은 것이고,
각각의 점은 '01011101' 이런식으로 표현된다.
이렇게 하여 영화도, 드라마도 0과 1의 집합으로 기록할 수 있다.
(01011101은 그 점의 색상 값을 이어 적은 것이다. Red 010(=2), Green 111(=7), Blue 01(=1) 이렇게)


1. 연속된 사진
동영상은 기본적으로 여러 장의 사진이 연속적으로 보여지는 것이다.
1초에 30장 정도가 표시되면 굉장히 부드럽게 보이고, 보통 15~60장 사이의 값이 사용된다.(이 값을 전문용어로 fps(frame per second)라 부른다.)


2. 해상도
동영상이 사진의 시간적 집합이라면, 사진은 점(pixel)의 공간적 집합이다.
색과 음영 값이 정의된 pixel이 모여 사진이 되는 것이다.
사진 한장이 몇개의 pixel로 이루어졌는지가 해상도이다.

동영상에서는 보통 한 pixel을 8bit로 표시하는데,
(바탕화면 설정가면 있는 True Color는 24bit)
pixel의 색과 음영을 표현하는 방법은 RGB와 YUV가 대표적이다.
VGA는 640X480, Full HD는 1080X1920 니까 (가로X세로)
Full HD 사진 한장을 그리려면 1080X1920X8=16588800 bit가 필요하고,
fps가 30인 영상이라면 초당 대략 500Mbit가 필요하다.


3. 압축
위 대로라면 Full HD 영상의 실시간 전송을 위해 인터넷 속도가 500Mbps 이상이어야 한다.
두 시간짜리 영화 한 편 저장하는데 450GB가 필요하다.
너무 크다. 그래서 압축을 한다.

가장 많이 쓰이는 영상 압축기술은 MPEG2, MPEG4, H.264가 있다.
각 기술을 설명하려면 책 한 권을 훌쩍 넘는다. 그만큼 복잡하다.
그중에서도 아주 핵심만 두 가지 설명하자면,
먼저 공간적 중복성을 이용한 압축 기술이 있다.
사진 한 장에서 인접한 부분의 색과 밝기는 대체로 비슷하다.
이 특성을 이용해 사진 한장 한장을 압축해 표현할 수 있다.
둘째는 시간적 중복성을 이용한 압축 기술이다.
장면전환이라도 되지 않는다면, 1초에 30장 출력되는 사진이 모두 비슷하게 마련이다.
이 특성을 이용해 매번 사진 전체를 표현하기 보다 변화값만 표현하면 데이터량을 확 줄일 수 있다.

이렇게 압축을 하고나면 500Mbps 데이터를 10Mbps 정도까지 줄일 수 있다.


4. 파일
흔히 알듯이 iPhone은 MP4만 지원한다.
MPEG4로 압축된 동영상만 재생할 수 있다는 걸까?
아니다. 여기서 MP4는 압축기술이 아닌 파일 포맷 얘기다.

동영상을 파일로 저장하려면 많은 부가정보를 같이 적어놓아야 한다.
해상도, fps, 어떤 기술로 압축되었는지 등도 적어야 하고,
오디오와 비디오가 어떤식으로 섞여있는지도 알려줘야 하고,
원하는 곳으로 건너뛰기를 지원하려면 이에 대한 정보(indexing)도 있어야 한다.

이 정보들을 어떻게 동영상 데이터와 합쳐 하나의 파일로 만들지 정의한 것들이 파일 포맷이고,
대표적으로 avi, mp4, mkv, flv 등이 있다.
(자세한 내용은 아래 링크 참조)
http://en.wikipedia.org/wiki/Comparison_of_container_formats



※코덱 표준과 구현기술
DivX는 일반인에게도 친숙한 용어지만, 미디어 전문가도 DivX, MPEG4, AVI를 잘 구분하지 못하는 경우가 많다.
DivX는 MPEG4(Part2)나 H.264 같은 코덱 표준이 아니라, 코덱 구현기술 이다.
코덱 표준문서는 어떻게 압축할 지에 대한 방대한 내용을 정의하고,
코덱 구현기술은 이 내용 중 필요한 부분만 골라 매우 구체적으로 정의한다.
표준문서가 책이라면 구현기술은 S/W에 가깝다.

아래 링크를 보면 코덱 표준과 구현기술이 잘 정리되어 있다.
http://en.wikipedia.org/wiki/List_of_codecs


엮인 글: 미디어 스트리밍

댓글

이 블로그의 인기 게시물

왜 LTE는 비싸고 WiFi는 공짜일까?

스톡옵션과 무상증자

방송의 종류