비디오 압축 §
H.264, VC-1, 그 외 첨단 코덱의 시스템 절충
여기에서는 먼저 비디오 코딩의 주요 개념을 설명하고 기존 압축 표준에 대해 살펴본다. 그리고 H.264/AVC, WMV9/VC-1, AVS 같은 최근의 코덱의 성능 및 특징을 살펴보고 이들 각각이 제공하는 압축 및 복잡성 절충에 대해 설명한다. 마지막으로는 실시간 구현과 주요 비디오 코덱의 미래에 영향을 미칠 수 있는 시장의 주요 경향에 대해 설명한다.
글│Jeremiah Golston, Dr Ajit Rao, 텍사스인스트루먼트
최근 몇 년 사이 디지털 비디오 제품에 대한 수요가 폭발적으로 늘어났다. 비디오 통신, 보안 및 감시, 산업 자동화뿐만 아니라 어느 분야보다 거대한 분야로서 DVD, HDTV, 위성 TV, 고화질(HD) 셋탑박스, 인터넷 비디오 스트리밍, 디지털 카메라 및 HD 비디오 캠코더, 비디오 쥬크박스, 고급형 디스플레이(LCD, 플라즈마, DLP), 개인 비디오 리코더 등의 애플리케이션이 그 예로 특히 엔터테인먼트 분야에서 크게 그 시장이 커졌다.
이외에도 많은 새롭고 흥미로운 애플리케이션이 설계 및 개발 단계에 있다. 고화질 DVD(블루레이/HD-DVD), 디지털 비디오 방송(가정 및 단말기를 위한 그리고 지상파/위성(DVB -T, DVB-H, DMB)을 통한), HD 화상전화, 디지털 시네마, IP 셋탑박스 등이 개발되고 있다. 최종 제품 역시 단말기의 높은 연산 성능, 배터리 기술의 발달, 고속 무선 접속 등에 힘입어 높은 성능의 모바일 및 컨버전스 기기로 진화하고 있다.
비디오 압축은 이런 비디오 제품에 필수적이다. 압축-압축해제(코덱) 알고리즘이 디지털 비디오를 저장 및 전송할 수 있도록 한다. 일반적으로 코덱은 MPEG2, MPEG4, H.264/AVC, AVS 같이 산업표준이거나 On2, Real Video, Nancy, 윈도우즈 미디어 비디오(WMV) 같이 고유기술 알고리즘이 있다. 다만 WMV는 예외적으로 원래 마이크로소프트 고유의 알고리즘으로 개발되었다가 지금은 업계에서 VC-1이라는 새로운 이름으로 표준화되었다. 코덱 기술이 지난 십여 년에 걸쳐서 지속적으로 향상되었다.
최근의 코덱(H.264/AVC 및 VC-1)은 3세대 비디오 압축 기술에 해당된다. 이들 코덱이 프로그래머블 DSP나 고정 기능 ASIC 같은 저비용 IC에서 가능한 프로세싱 성능을 이용해 매우 높은 압축 비율을 가능하게 한다. 하지만 특정 애플리케이션에 적절한 코덱을 선택하고 이를 실시간 구현하는 일은 여전히 쉽지 않다. 최적의 디자인을 위해서는 압축 효율과 이용 가능한 연산 성능의 활용을 절충해야 한다. 뿐만 아니라 제한된 연산 성능으로 최적의 압축 효율을 달성한다는 것도 쉽지 않다.
여기에서는 먼저 비디오 코딩의 주요 개념을 설명하고 기존 압축 표준에 대해 살펴본다. 그리고 H.264/AVC, WMV9/VC-1, AVS 같은 최근의 코덱의 성능 및 특징을 살펴보고 이들 각각이 제공하는 압축 및 복잡성 절충에 대해 설명한다. 마지막으로는 실시간 구현과 주요 비디오 코덱의 미래에 영향을 미칠 수 있는 시장의 주요 경향에 대해 설명한다.
비디오 압축의 과제
디지털 비디오의 가장 큰 문제는 비디오 원본 또는 비압축 비디오가 저장 또는 전송을 위해 대량의 데이터를 필요로 한다는 것이다. 예를 들어 표준화질 NTSC 비디오는 일반적으로 초당 30프레임으로 4:2:2 YCrCb를 이용해 720 x 480으로 디지털화되는데 이를 위해서는 초당 165Mb 이상의 데이터 속도를 필요로 한다. 90분 비디오를 저장하기 위해서는 110GB 이상을 필요로 하는데 이는 표준 DVD-R 저장 용량의 25배를 넘는다.
비디오 스트리밍 애플리케이션에 흔히 이용되는 CIF(초당 30프레임으로 352 x 288 4:2:0) 같이 더 낮은 해상도 비디오라도 초당 36.5Mb 이상을 필요로 함으로써 ADSL이나 3G 무선 같은 광대역 네트워크 상에서 유지할 수 있는 것보다 몇배 이상이다. 오늘날의 광대역 네트워크가 1~10Mbps의 지속가능한 쓰루풋을 제공한다. 그러므로 디지털 비디오를 저장하거나 전송하기 위해서 압축이 반드시 필요하다.
비디오 압축은 최소한의 비트로 디지털 비디오를 인코딩하면서 영상 품질을 유지하는 것이 목적이다. 코덱은 정보 이론의 수학적 원리를 이용한다. 하지만 실제적인 코덱 구현을 위해서는 예술에 가까운 세밀한 절충이 필요하다.
압축 절충
디지털 비디오 시스템을 위해 코덱을 선택할 때는 여러 가지 요소를 고려해야 한다. 그 중에서도 중요한 것이 애플리케이션의 영상 품질 요구, 전송 채널 또는 저장 매체의 환경(속도, 지연시간, 오류 특성), 소스 콘텐츠의 형식이다. 또한 중요한 요소가 원하는 해상도, 목표 비트율, 색 길이, 초당 프레임 수, 콘텐츠 또는 디스플레이가 순차주사(Progressive)인지 비월주사(Interlaced)인지 하는 것이다. 압축을 위해서는 흔히 영상 품질 요구와 애플리케이션의 다른 요구 사이에 절충이 필요하다.
첫째, 애플리케이션이 스토리지인가, 유니캐스트(Uni-cast)인가, 멀티캐스트(Multi-cast)인가, 쌍방향인가, 브로드캐스트(Broadcast)인가? 스토리지 애플리케이션이면 얼마나 많은 저장 용량을 이용할 수 있으며 리코딩 지속시간은 얼마인가? 비-스토리지 애플리케이션이면 최대 비트율은 얼마인가? 쌍방향 비디오 통신이면 허용 가능한 지연시간 또는 허용 가능한 단대단(end-to-end) 시스템 지연이 얼마인가? 쌍방향이 아니면 인코딩해야 하는 콘텐츠를 사전에 오프라인으로 이용할 수 있는가 아니면 실시간으로 인코딩해야 하는가? 네트워크 또는 저장 매체가 얼마나 오류를 일으키기 쉬운가? 다양한 압축 표준이 목표 애플리케이션에 따라 이러한 절충 요소들을 각기 다르게 다룬다.
또 다른 절충 요소는 인코딩 및 디코딩의 실시간 구현 비용이다. 일반적으로 H.264/AVC나 WMV/VC-1 같이 더 높은 압축을 달성하는 최근의 알고리즘이 더 높은 프로세싱을 필요로 함으로써 인코딩 및 디코딩 디바이스, 시스템 전력 소비, 시스템 메모리 비용에 영향을 미친다.
표준화 기구
비디오 코덱 정의와 관련해서 2개의 주요 표준화 기관이 있다. ITU(국제 전기통신 연합)는 통신 애플리케이션에 주력하는 기관으로서 낮은 비트율 화상전화를 위해 H.26x 표준을 개발했다. 이들 표준으로 H.261, H.262, H.263, H.264를 포함한다. ISO(국제 표준화 기구)는 좀더 가전 애플리케이션에 주력하는 기관으로서 동영상 압축을 위해 MPEG 표준을 정의했다. MPEG 표준으로는 MPEG1, MPEG2, MPEG4이 있다. 그림 1은 비디오 코덱 표준화의 역사를 보여준다.
MPEG 및 ISO가 타깃 애플리케이션에 따라 각기 다른 절충을 한다. H.264 코덱 그리고 MPEG 진영에서는 MPEG4-Part 10 또는 MPEG4-Advanced Video Codec(AVC)이라고 하는 표준을 정의하기 위한 Joint Video Team(JVT)처럼 경우에 따라서는 이들 표준화 기구들이 서로 협력한다. 여기서 이 공동 표준을 H.264/ AVC라고 한다. 마찬가지로 H.262와 MPEG2가 동일하며, H.263 베이스라인 프로파일 기술은 기법에 있어서 MPEG4 심플 프로파일 코덱과 상당 부분이 일치한다.
코덱 기술의 폭넓은 채택을 위해서는 표준이 중요하다. 소비자들은 규모의 경제 때문에 표준 기반 제품이 경제성이 있다고 생각한다. 업계 당사자들은 업체 간에 상호운용성이 보장되므로 표준에 투자하려고 한다. 콘텐츠 사업자들은 자신들의 콘텐츠가 얻게 될 긴 수명과 폭넓은 수요 때문에 표준에 이끌린다. 거의 대부분의 비디오 표준이 소수의 특정한 애플리케이션을 목표로 개발되었지만 적합하기만 하다면 다른 애플리케이션에서도 흔히 유리하게 이용된다.
ITU 및 MPEG이 압축 기법을 지속적으로 향상시키고 더 우수한 압축 및 새로운 시장 기회를 위해 새로운 표준을 정의했다. 중국이 최근에 AVS라고 하는 자국 비디오 코딩 표준을 정의했다(이에 관해서는 뒤에서 설명). 현재 개발 중인 표준으로는 ITU/MPEG Joint Scalable Video Coding (H264/AVC의 개정안)과 MPEG Multi-view Video Coding을 들 수 있다. 한편 기존의 표준들도 새로운 애플리케이션을 충족하기 위해 지속적으로 향상되고 있다. 예를 들어 H.264가 전문가용 디지털 편집, HD-DVD, 비손실 코딩 등의 새로운 시장을 충족하기 위해 Fidelity Range Extension이라고 하는 새로운 모드를 정의했다.
ITU 및 ISO의 산업표준 이외에도 특히 인터넷 스트리밍 미디어 애플리케이션을 위해 많은 인기 있는 고유기술 솔루션들이 등장했다. Real Networks Real Video(RV10), 마이크로소프트 윈도우즈 미디어 비디오 9(WMV9) 시리즈, ON2 VP6, Nancy가 그것이다. 이들 형식의 콘텐츠 설치 기반 때문에 고유기술 코덱이 사실상의 표준으로 자리잡고 있다. 2003년 9월에는 마이크로소프트가 SMPTE(Society for Motion Picture and Television Engineers)에 이 기관의 주도 하에 WMV9 비트 스트림 및 구문을 표준화할 것을 제안했다. 이 제안이 받아들여져서 WMV9이 SMPTE에서 VC-1으로 표준화되었다.
비디오 코딩 원리
여기서 다루고 있는 모든 비디오 표준이 블록 기반 프로세싱을 이용한다. 각각의 매크로 블록이 일반적으로 4개의 8 x 8 휘도 블록과 2개의 8 x 8 색도 블록을 포함한다(크로마 형식 4:2:0의 경우). 비디오 코딩은 모션 보정 예측(MC), 변환 및 양자화, 엔트로피 코딩의 원리를 기반으로 한다. 그림 2는 일반적인 모션 보정 기반 비디오 코덱이다. 모션 보정은 어떤 비디오 프레임에서 최근에 코딩했던("레퍼런스") 비디오 프레임의 유사한 구획으로부터 각각의 화소 매크로 블록을 예측함으로써 압축을 달성한다.
예를 들어 배경 부분은 한 프레임에서 다음 프레임으로 넘어갈 때 흔히 동일하게 유지되므로 각 프레임마다 재전송할 필요가 없다. 모션 예측(ME)은 현재 프레임의 각각의 MB에 대해 레퍼런스 프레임에서 그와 가장 유사한 16 x 16 구획을 판단하는 프로세스이다. ME가 보통 비디오 압축에서 가장 연산 집중적인 기능이다. 현재 프레임의 각 블록에 대해 가장 유사한 구획의 상대적 위치에 관한 정보(모션 벡터)가 디코더로 전송된다.
MC 후의 나머지는 8 x 8 블록으로 분할되어서 이들 각각이 변환 코딩, 양자화, 가변 길이 코딩을 결합적으로 이용해서 인코딩된다. 변환 코딩(이산 코사인 변환(DCT) 등)은 잔여 신호의 공간적 중복성을 이용한다. 양자화는 인지적 중복성을 제거하고 잔여 신호를 인코드하는데 필요한 데이터 양을 감소시킨다. 가변 길이 코딩은 잔여 데이터 계수의 통계적 특성을 이용한다. MC를 통한 중복성 제거 프로세스를 디코더에서 역으로 실행하고 레퍼런스 프레임으로부터 예측한 데이터를 인코딩한 잔여 데이터와 결합해서 원래의 비디오 프레임을 복원한다.비디오 코덱에서는 I, P, B의 3개 모드 중에서 하나를 이용해 각각의 프레임이 인코딩된다(그림 3). Intra(I) 프레임이라고 하는 소수의 프레임은 다른 프레임을 레퍼런스하지 않고 독립적으로 인코딩된다(모션 보정 이용 안함). 어떤 프레임은 이전 프레임을 레퍼런스로 해서 MC를 이용해 인코딩된다(순방향 예측). 이러한 프레임을 Predicted(P) 프레임이라고 한다.
B 프레임 혹은 양방향 예측 프레임은 이전 프레임뿐만 아니라 현재 프레임 후에 표시될 예정인 프레임으로부터 예측한 것이다. B 프레임의 이점의 한 가지가 이전 프레임에서 폐색된 배경 부분을 순방향 예측을 이용해 일치시킬 수 있다는 것이다. 양방향 예측이 순방향 및 역방향 예측을 평균화함으로써 잡음을 줄일 수 있도록 한다. 인코더에 이 기능을 이용하기 위해서는 추가적인 프로세싱이 필요하다. 순방향 및 역방향 예측을 위해 ME를 실시해야 하는데 이것이 모션 예측의 연산 요구를 두 배까지 높일 수 있기 때문이다.
또한 2개 레퍼런스 프레임을 저장하기 위해 인코더 및 디코더 모두에 있어서 추가적인 메모리가 필요하다. B 프레임 툴이 더 복잡한 데이터 흐름을 필요로 한다. 프레임이 어떻게 포착되고 표시되어야 하는지와 관련해 순서 없이 디코딩되기 때문이다. 이러한 점으로 인해서 지연시간이 증가하므로 일부 실시간에 민감한 애플리케이션에 적합하지 않다. B 프레임이 예측을 위해서는 이용되지 않으므로 일부 애플리케이션에서는 절충이 가능하다. 예를 들어 낮은 프레임 속도 애플리케이션에서는 이후의 I 및 P 프레임 디코딩에 영향을 미치지 않으면서 이들 프레임을 건너뛸 수 있다.
리거시 비디오 코딩 표준
H.261
H.261[2]은 ITU가 정의한 것으로서 최초의 주요한 비디오 압축 표준이다. 쌍방향 화상회의 애플리케이션을 위한 것이었으며 40kbps~2Mbps를 지원하는 ISDN 네트워크용으로 설계되었다. H.261은 4:2:0의 색도 해상도 서브샘플링으로 352x288(CIF) 및 176 x 144(QCIF) 해상도를 지원한다. 화상전화가 동시 실시간 인코딩 및 디코딩을 필요로 하므로 복잡성 역시 낮도록 설계되었다. 지연에 민감한 쌍방향 비디오를 위해서 H.261은 I 및 P 프레임만을 허용하며 B 프레임은 허용하지 않는다.
H.261은 잔여 데이터의 변환 코딩을 위해 블록 기반 DCT를 이용한다. DCT가 각각의 8x8 화소 블록을 주파수 도메인으로 맵핑해서 64개의 주파수 성분을 생성한다(첫번째 계수를 DC라 하고 나머지를 AC라 함). DCT 계수를 양자화하기 위해서 H.261이 모든 AC 계수에 걸쳐서 고정 선형 양자화를 이용한다. 양자화 계수가 런 길이 코딩을 거쳐서 양자화 주파수 계수를 비-제로 계수 레벨과 이에 이은 연속적 제로 계수 및 마지막 비-제로 값 다음의 최종적인 블록 끝 코드로 표현할 수 있도록 한다. 마지막으로는 가변 길이(허프만) 코딩이 일반적인 확률 분포로 최적화된 비트 길이를 이용해 런 레벨 쌍을 가변 길이 코드(VLC)로 변환한다.
표준 블록 기반 코딩이 고르지 않은 비디오를 발생시킨다. H.261에서는 루프 필터링 기법을 이용해서 이러한 문제를 방지한다. 블록 가장자리에 단순 2D FIR 필터를 적용해서 레퍼런스 프레임의 양자화 효과를 매끄럽게 한다. 이 기법을 인코더 및 디코더 모두에서 비트 정확도 방식으로 적용해야 한다.
MPEG1
MPEG1[3]은 ISO가 개발한 최초의 비디오 압축 알고리즘이다. 주된 애플리케이션은 약 1.15Mbps로 SIF 해상도(29.97fps로 352 x 240 또는 25fps로 352 x 288)를 이용한 비디오 CD 등의 디지털 매체에서 동영상 및 오디오를 저장 및 검색하는 것이었다. MPEG1이 H.261과 유사하나 다만 인코더가 일반 화상전화와 비교해서 영화 콘텐츠의 더 많은 모션을 지원하기 위해 더 높은 성능을 필요로 한다.
H.261과 달리 MPEG1은 B 프레임을 허용한다. 또한 적응식 인지 양자화를 이용한다. 다시 말해서 인간의 시각적 인지를 최적화하기 위해 각각의 주파수 빈에 각각의 양자화 스케일 계수(또는 그에 해당되는 스텝 크기)를 적용한다. MPEG1은 순차주사 비디오만을 지원하므로 새로운 표준인 MPEG2에서는 더 높은 비트율을 이용해 더 높은 해상도로 순차주사 및 비월주사 비디오 모두를 지원하도록 하는 작업을 시작했다.
MPEG2/H.262
MPEG2[4]는 디지털 텔레비전을 목표로 개발되었으며 얼마 되지 않아서 현재까지도 가장 성공적인 비디오 압축 표준으로 자리잡았다. MPEG2가 표준 순차주사 비디오(비디오 시퀀스가 각각 일정한 시간 간격으로 포착한 일련의 프레임으로 이루어진다)뿐만 아니라 텔레비전 분야에서 널리 이용되는 비월주사 비디오도 지원한다. 비월주사 비디오는 이미지에서 두 셋의 서로 교대하는 화소 열(이를 필드라 함)을 번갈아 포착하고 표시한다. 이 기법은 특히 TV 디스플레이의 물리적 특성에 적합하다. MPEG2가 미국 및 일본에서 이용되는 NTSC를 위한 초당 60필드의 비월주사 720 x 480 및 유럽 및 기타 국가에서 이용되는 PAL을 위한 초당 50필드의 비월주사 720 x 576을 포함해서 표준 텔레비전 해상도를 지원한다.
MPEG2는 MPEG1을 기반으로 하며 비월주사 비디오 및 훨씬 더 넓은 모션 보정 범위를 지원하도록 확장되었다. 고해상도 비디오가 중요한 애플리케이션이므로 MPEG2가 MPEG1보다 훨씬 더 넓은 검색 범위를 지원한다. 그럼으로써 이전의 표준들에 비해서 모션 예측을 위한 성능 요구를 대폭적으로 증가시킨다. 더 넓은 검색 범위와 더 높은 해상도를 최대한 활용하는 인코더를 위해 H.261 및 MPEG1보다 훨씬 더 많은 프로세싱을 필요로 한다.
MPEG2의 비월주사 코딩 툴은 모션 보정을 최적화할 수 있는 기능을 포함함으로써 필드 및 프레임 기반 예측과 필드 및 프레임 기반 DCT/IDCT를 지원한다. MPEG2가 30:1의 압축 비율로 우수하게 실행된다. MPEG2를 이용해 4~8Mbps로 달성된 품질이 가전 비디오 애플리케이션에 허용 가능한 것으로 나타났으며 얼마 지나지 않아 디지털 위성, 디지털 케이블, DVD, 최근의 고화질 TV 등의 애플리케이션에 채택되었다.
또한 MPEG2가 확장가능 비디오 코딩 툴을 추가함으로써 시간 확장성, 공간 확장성, SNR 확장성, 데이터 파티셔닝의 다중 레이어 비디오 코딩을 지원한다. MPEG2에서 확장가능 비디오 애플리케이션을 위해 관련 프로파일이 정의되기는 했지만 단일 레이어 코딩을 지원하는 메인 프로파일이 단독적 MPEG2 프로파일로서 오늘날의 대량시장 애플리케이션에 널리 채택되고 있다. 그래서 MPEG2를 흔히 MPEG2 메인 프로파일이라고 한다.
MPEG2 디코딩을 위한 프로세싱 요구가 처음에 범용 프로세서 및 DSP로서는 매우 높았다. 최적화 고정 기능 MPEG2 디코더가 개발되었으며 시간이 지나면서 수량이 대량화되면서 점차 가격이 낮아졌다. MPEG2에 의해서 비용이 저렴한 실리콘 솔루션을 이용할 수 있느냐가 비디오 코덱 표준의 성공 및 보급에 있어서 중요한 요소라는 것이 입증되었다.
H.263
H.263[5]은 H.261 다음에 개발된 것으로 더 낮은 비트율로 더 높은 품질을 달성하는 것에 중점을 두었다. 이 표준의 중요한 한 목표가 28.8Kbps의 일반적인 전화 모뎀을 통한 비디오였다. 목표 해상도는 SQCIF(128 x 96)에서부터 CIF(352 x 288)까지였다. 기본적인 기법들은 H.261과 유사하며 다음과 같은 몇 가지 점이 다르다.
․4개 모션 벡터 - 전체 MB를 위한 하나의 모션 벡터가 아니라 각 블록에 대해 하나의 모션 벡터 이용
․3D VLC: 블록 끝(EOB) 표시기와 각각의 Run Level 쌍을 결합한 허프만 코딩. 이 기능은 흔히 하나 또는 2개의 코드화 계수만을 이용하는 낮은 비트율 애플리케이션을 목표로 했다.
하지만 이러한 기법에도 불구하고 일반 전화선을 통해 적정한 비디오 품질을 달성하기가 매우 어려웠으며 표준 모뎀을 통한 화상전화는 오늘날에도 여전히 어려운 작업이다. 하지만 H.263이 H.261에 비해 향상된 효율을 제공했으므로 화상회의를 위한 알고리즘으로 선호되었으며 이전 시스템과의 호환성을 위해 H.261을 지원하는 것이 여전히 필요했다. H.263이 점차 성장해서 H.263+ 및 H.263++는 압축 향상 및 패킷 네트워크를 통한 견고성을 위한 기능들을 지원하는 선택적 부록을 추가했다. H.263 및 이의 부록이 MPEG4의 많은 코딩 툴의 핵심을 이룬다.
MPEG4
MPEG4[6]는 ISO에서 성공적이었던 MPEG2의 후속 표준으로 개발되었다. 초기의 목표는 무선 네트워크를 지원하기 위한 오류 견고성을 향상시키고, 낮은 비트율 애플리케이션의 지원을 향상시키고, 그래픽 객체와 비디오를 융합하기 위한 다수의 새로운 툴을 추가하는 것이었다. 대부분의 그래픽 기능이 아직 제품들에 널리 이용되지 않고 있으며 구현이 주로 낮은 비트율 압축 및 오류 복구를 향상시키는 데 주력했다.
MPEG4 심플 프로파일(SP)은 H.263 베이스라인에서 시작해서 다음과 같이 압축을 향상시키기 위한 새로운 툴을 추가했다.
․비제한 모션 벡터: 객체가 부분적으로 프레임의 경계 바깥으로 이동할 때 객체의 예측을 지원한다.
․가변 블록 크기 모션 보정: 16 x 16 또는 8 x 8 블록 입도로 모션 보정을 가능하게 한다.
․문맥 적응 인트라 DCT DC/AC 예측: 인접 블록에서 현재 블록의 왼쪽 또는 위로 DC/AC DCT 계수를 예측할 수 있도록 한다.
․충실도가 높은 비디오를 지원하기 위해 양자화 AC 계수의 동적 범위를 H.263의 [-127:127]에서 [-2047, 2047]로 확장했다.
패킷 손실 조건일 때 복구를 지원하기 위해 다음과 같은 오류 복구 기능을 추가했다.
․슬라이스 재동기화: 이미지 내에서 슬라이스를 구축함으로써 오류가 발생했을 때 더 신속한 재동기화를 가능하게 한다. MPEG2 패킷 크기와 달리 MPEG4 패킷 크기는 MB를 표현하는 데 이용되는 비트 수로부터 연계가 해제된다. 결과적으로 매 MB의 정보 양에 관계 없이 비트 스트림에서 동일한 간격으로 재동기화가 가능하다.
․데이터 파티셔닝: 비디오 패킷에서 고유의 모션 경계 마커를 이용해서 모션 부분과 DCT 데이터 부분으로 데이터를 파티셔닝할 수 있도록 하는 모드이다. 그럼으로써 모션 벡터 데이터의 유효성을 더 엄격하게 검사할 수 있도록 한다. 오류가 발생했을 때 오류가 발생한 지점에 대해 더 우수한 가시성을 달성할 수 있으므로 오류가 발견되었을 때 모든 모션 데이터를 폐기하는 것을 방지할 수 있다.
․반전 가능한 VLC: 순방향뿐만 아니라 역방향으로 디코딩이 가능하도록 설계된 VLC 코드 테이블. 오류가 발생하면 다음 슬라이스 또는 시작 코드에서 싱크하고 오류가 발생했던 지점으로 돌아갈 수 있다.
․새로운 예측(NEWPRED): 주로 실시간 애플리케이션에서 신속한 오류 복구를 위해 설계된 것으로서 패킷 손실이 발생했을 때 디코더가 역 채널을 이용해 인코더로부터 추가적인 정보를 요청한다.
MPEG4 향상 심플 프로파일(ASP)은 MPEG2와 마찬가지로 심플 프로파일에서 시작해서 B 프레임 및 비월주사 툴(레벨 4 이상을 위한)을 추가했다. 또한 1/4 화소 모션 보정과 전역 모션 보정을 위한 옵션을 추가했다. MPEG4 향상 심플 프로파일이 심플 프로파일보다 훨씬 더 높은 프로세싱 성능을 필요로 하며 MPEG2보다 복잡성이 더 높고 코딩 효율이 더 높다.
MPEG4가 애초에 인터넷 스트리밍에 이용되었으며 애플의 퀵타임 플레이어 등에 채택되었다. MPEG4 심플 프로파일이 모바일 스트리밍에 다양하게 이용되고 있다. MPEG4 ASP가 널리 이용되고 있는 고유기술 DivX 코덱의 토대가 되었다.
툴 및 압축 향상
H.261, MPEG1, MPEG2, H.263을 통해 비디오 코덱 분야에 이용되는 기법들을 살펴보았을 때 몇몇 기본적인 기법들이 대부분의 압축 향상을 제공한다는 것을 알 수 있다. 그림 4는 이러한 기법들과 이들 기법의 상대적 효과를 보여준다. 모션 보정(정수 및 1/2 화소)이 4 모션 벡터 및 1/4 화소 모션 보정과 같은 툴에 비해서 더 우수하다는 것을 알 수 있다.
<자료제공: 월간 반도체네트워크 2006년 11월호>