텔레프레즌스와 화상회의 솔루션을 다루다 보면 압축 코덱에 대한 표준인 H.261, H.263, MPEG 등이 나오는 데 정확하게 의미를 짚기가 쉽지 않습니다. 그래서, 저도 공부할 겸 글을 정리해 보겠습니다. 이글은 인터넷에 있는 코덱관련된 다양한 글을 참조하였습니다.
동영상의 정의
일반적으로 영상이라고 한다면 사진 한 장과 같은 정지된 이미지입니다. 동영상이라면 이러한 영상들의 연속적인 집합체라고 할 수 있습니다. 초 당 24 프레임 (동영상을 구성하는 한 장의 사진) 이상을 연속적으로 보여주면 움직이는 느낌을 같습니다. 초당 30프레임을 지원하는 비디오를 특히 Full motion Video라고 합니다. 따라서, 동영상의 화질을 이야기 할 때 화면의 크기와 프레임 수로 나타냅니다.
화질
화질은 대체로 화면을 구성하는 최소단위인 화소 (pixel)의 수에 따라 결정됩니다. CIF (Common Intermediate Format)은 화상회의 시스템에서 사용되는 비디오 형식으로 북미 표준인 NTSC와 유럽표준인 PAL방식을 모두 지원한다. 초당 30 프레임을 전송하며, 각 프레임은 352 픽셀로 구성된 288 라인으로 구성됩니다.
아래 표에서는 압축하지 않은 상황에서의 30FPS의 전송속도를 나타낸 것입니다.
CIF 형식
해상도
비압축 전송 속도
지원 압축 코덱
SQCIF (Sub Quarter CIF)
128*96
4.4 Mbps
H.263
QCIF (Quarter CIF)
176*144
9.1 Mbps
H.263, H.261
CIF (Full CID, FCIF)
352*288
36.5 Mbps
H.263, H.261
4 CIF (4*CIF)
704*576
146.0 Mbps
H.263
16 CIF (16*CIF)
1408*1152
583.9 Mbps
H.263
해상도를 가로 세로비로 계산해 보시면 4:3입니다. CIF가 10만 화소 정도입니다. 4CIF는 40만 화소정도가 됩니다.
TV 방송 표준은 이미 언급한 NTSC, PAL이 대표적입니다. 간단하게 샆펴보면 다음과 같습니다.
NTSC (Nataional Television Standards Committee) 최초 흑백 텔레비젼 송신 규격을 위해 창설되었으며, 국제 방송을 위한 규격 미국, 한국, 일본에서 사용 초당 30 프레임 전송
PAL (Phase Alternate Line) 1967년 색상 변환 시 오류를 최소화라려는 취지에서 등장 유럽에서 사용 초당 25 프레임 전송
디지털 시대로 넘어오면서 디지털 TV가 나타나면서 크게 HD (High Definition)와 SD (Standard Definition)으로 구분된다. HD 720p의 경우 약 100만 화소이며, HD 1080p는 200만 화소이다.
구분
해상도
화면비
비고
HD
1920*1080
16:9
1280*720
16:9
SD
704*480
4:3
16:9
640*480
4:3
동영상의 압축의 필요성
위의 그림은 CIF급의 화면을 나타낸 것입니다. 각각을 8 bit로 표현하고, 이것을 초당 30 프레임으로 전송 시 초당 39Mbps정도의 대역폭이 필요하며, HD급 동영상의 경우 1.5Gbps의 대역폭이 필요하게 됩니다. 따라서, 아래 그림처럼 압축코덱이 필요하게 됩니다. 제한된 대역폭 내에서 영상을 전송하는 데에 있어서 압축율이 높을 수록 원신호를 일부를 손실할 수도 있수도 있습니다.
I 프레임 (Intraframe)은 기본이 되는 프레임으로 이미지 내용 전체를 전송하는 프레임이며, P 프레임 (Predictive)은 I 프레임을 기반으로 변화된 값만을 가지고 있습니다. 따라서, 영상을 전송하게 되는 경우 아래 그림과 같은 특성을 갖습니다.
압축 코덱의 종류
ITU-T는 주로 영상 회의와 같은 실시간 영상 통화와 관련된 압축 기법을 표준화하였으며, H.261, H.263, H.264 등을 제정하였습니다. ISO / IEC 는 방송 또는 스트리밍 등에 관련된 압축 기법을 표준화하였으며, MPEG을 제정했습니다. 아래 그림을 통해 동영상 압축 코덱의 특징을 한 눈에 알 수 있습니다. 세로축은 해상도를 나타내며, 가로축은 압축률을 나타낸다고 보시면 됩니다.
H.261
ITU-T에 의해 1990년에 원격 화상회의를 위한 표준으로 제정되었습니다. H.261은 64Kbps ~2Mbps 까지의 매우 높은 고압축률을 지원합니다. H.261은 화상회의 applications를 목표로 했고 현재는 특히 일대일 비디오폰 applications과 ISDN을 통한 비디오전송을 목표로 합니다. H.261은 실시간 엔코딩을 위해 MPEG보다 적은 CPU점유율을 필요로 한다. 알고리즘은 동화상에 대한 bandwidth사용을 최적화하는 장치를 포함하므로 빠른 화면전화에서 상대적으로 정지화상보다는 화질이 나빠지게 된다.
H.263
H.263은 낮은 전송 속도에서도 화상회의가 가능하도록 ITU-T표준이다. H.263은 여러 applications에서 H.261을 대체할 것으로 기대가 되는데, H.263의 코딩 알고리즘은 H.261과 유사하긴 하지만 성능 개선과 에러 보상을 위해 일부 가 개선되고 변경되었다. H.261과 H.263 코딩 알고리즘간의 차이는 아래와 같은데, H.261이 full pixel precision과 loop filter를 사용한 반면, H.263 motion compensation을 위해 half pixel precision이 사용되었다. 데이터 스트림의 계층구조의 일부가 현재는 옵션이어서 코덱은 더 낮은 데이터 레이트나 더 나은 error보상을 구현할 수 있다. 성능개선을 위한 옵션이 현재 네 가지가 있다: 제한되지 않은 모션 벡터, syntax기반 산술 코딩, Advance prediction과 MPEG에 서 P-B 프레임이라 일컫는 것과 유사한 forward, backward frame prediction이 있다. H.263은 다섯 가지 해상도를 지원한다. 4CIF와 16CIF를 지원한다는 것은 MPEG표준과 같은 고 bitrate video coding 표준과 비견된다는 것을 의미한다.
H.264
ITU-T 와 ISO/IEC가 함꼐 표준화 과정을 진행시켜 만든 새로운 차세대 압축 표준이라 할 수 있다. H.261 및 H.263은 고화질을 유지하기 위해 요구 대역폭이 컸지만, H.264는 50% 이상 압축률이 향상되었습니다. 즉, H.263에서 768Kbps의 고화질로 전송되던 것을 384Kbps 대역폭에서도 동일한 고화질을 제공받을 수 있습니다. 또다른 특징은 에러 발생시 향상된 복구 능력이다. 데이터 손실이 지속적으로 발생해도 완전히 끊어지는 대신 화질의 약화만 가져오므로 해서 지속적으로 통신이 가능하도록 합니다.
MPEG-1
MPEG-1, 2, 4는 비디오/오디오의 효율적인 대역폭 전송을 위해 사용되고 개발되고 있다. MPEG-1 코덱은 CIF해상도(352x288)와 초당 30프레임에서 VHS화질 을 제공하는 1-1.5Mbps의 대역폭을 목표로 하고 있다.(1배속 CD롬드라이버의 데이터 전송속도) MPEG-1은 실시간 엔코딩을 위해 고가의 하드웨어가 필요하 다. 디코딩은 소프트웨어로 할 수 있지만 CPU의 점유율 또한 상당하다. MPEG-1은 해상도 scalability가 없으므로 화질이 P와 B 프레임간 패킷 손실에 매우 민 감하다. B프레임은 또한 엔코딩 프레임 N이 N+k프레임을 필요로 하여 엔코딩 과정에서 대기시간이 발생하므로 Round Trip이 있어서 화상회의에는 적합하지 않다.
MPEG-2
MPEG-2는 고해상도 비디오와 성능이 개선된 오디오를 지원하는 것을 포함하여 MPEG-1을 확장한 것이다. MPEG-2의 목표 비트레이트는 방송용화질의 full-screen 비디오를 제공하는 4-15Mbits/s이다. MPEG-2의 초안 표준은 scalability를 제공하는 것이다. Scalability에 대한 세가지 유형이 정의되었다; Signal-to-Noise Ratio(SNR), spatial and temporal, one extension Data Partitioning. MPEG-1과 비교해, 엔코드/디코드에 더 고가의 하드웨어가 필요하다. 또한 MPEG-1과 같은 이유로 손실에 의한 화질저하가 되기 쉽다. MPEG-1과 MPEG-2는 개발된 목적에 적합하다. 예를 들면, MPEG-1은 CD-ROM에서 재생하 는데 아주 적합하고, MPEG-2는 고화질로 저장된 어플리케이션과 TV방송용 어플리케이션에 적합하다. 위성방송의 경우, MPEG-2는 현재 하나의 아날로그 채 널이 사용하는 것과 같은 bandwidth로 화질의 손상 없이 5개 이상의 디지털 채널을 엔코딩할 수 있다. 이런 주요한 이점에 비하면 엔코딩 비용이 많이 들어가는 것은 사실 중요한 것이 아니다. 그러나 현재의 컴퓨터/인터넷 인프라스트럭쳐용으로는 MPEG기반의 솔루션은 비용이 너무 많이 들고 많은 bandwidth를 필요 로 한다. 이는 인터넷을 염두에 두고 설계된 것이 아니기 때문이다.
MPEG-4
MPEG-4는 매우높은 압축효율을 얻음으로서 매우 낮은 비트율로 전송하기 위한 것이다. 예를들면, 화상회의를 위해 적합한 압축형태 (예, 64Kbits/s이하의 데이 터레이트)를 제공하기 위한 것이다. MPEG-4는 시청각화면을 서로 다른 네트웍상에서의 다중전송을 가능하게 하는 AVOs 또는 "audio/visual objects"로 분할 하는데 기반을 둔 것이다. MPEG-4의 구조는 현재 MSDL(MPEG-4 Syntactic Description Language)라는 언어에 초점을 맞춰 개발중이다. MSDL을 사용해 어플리케이션을 더 기본적인 컴포넌트로 구성하고 인터넷상에서 이런 컴포넌트를 쉽게 다운로드 받을 수 있도록 새로운 코덱으로 구성이 가능하게 한다. 이런 개념은 선마이크로시스템의 자바용 멀티미디어 API가 코덱 콤포넌트를 다운로드 받기 쉽도록 한 것과 유사하다. 이런 추세는 마이크로소프트와 넷스케이프와 같은 유력 업체들이 자신들의 실시간 스트리밍 솔루션에 다중 오디오/비디오 코덱을 플러그인 하도록 한 제품에서도 볼 수 있다.