MPEG-4
MPEG-4(엠펙 포, ISO/IEC 14496)는 영상, 음성을 (Digital data)로 전송, 저장하기 위한 규격의 하나이다. MPEG-1, MPEG-2와 같이 시스템, 비주얼, 음향, 파일 포맷 규격으로 구성되어 있다. 그렇지만, 일반적으로 MPEG-4라고 할 때에는 동영상 인코딩 방식을 기술하는 비주얼 부분을 가리키는 경우가 많다.
규격을 관리하는 동화상 전문가 그룹(MPEG의 원래 의미)은 MPEG-4를 궁극의 영상/음성 인코딩 규격으로 삼으려는 의도가 있어서 현재 3차원 컴퓨터 그래픽, 음성 합성 등을 아우르는 거대한 규격이 되었다. MPEG 기술은 기술마다 부분이라고 불리는 규격으로 나뉘어 있고, 새 기술이 채용될 때마다 부분이 새로 생긴다. 최근엔 H.264가 MPEG-4 Part 10 AVC로 규격화되는 등 현재도 계속 추가 확장되고 있는 규격이다.
MPEG-4는 다음과 같이 "파트"라 불리는 여러 개의 표준으로 구성되어 있다.
프로파일들은 각 "파트" 안에 정의되므로 파트의 추가는 보통 완전한 파트의 추가라고 할 수 없다.
MPEG-1, MPEG-2, MPEG-7 그리고 MPEG-21은 또 다른 MPEG 표준 세트들이다.
현재 MPEG-4에서 규정하고 있는 동영상 인코딩 방식은 1999년에 처음 규격이 확정된 Part 2 방식과, 2003년에 규격이 된 Part 10 방식 두 가지가 있다. 이 둘을 구별하기 위해 앞에 것을 그냥 MPEG-4 또는 MPEG-4 비주얼이라 부르고, 뒤에 것을 MPEG-4 AVC라고 부른다.
MPEG-4 기술은 통상 인코딩 기술로 소개되지만 실제 규격에는 인코딩된 데이터를 어떻게 풀어야 하는지 하는 디코딩 과정만 기술되어 있고, 어떻게 인코딩해야 하는지에 대한 규정은 없다.
MPEG-1에서는 비디오 CD, MPEG-2에서는 방송, HDTV 등에서 쓰일 것을 고려했지만 MPEG-4에서는 낮은 비트율 상황에까지 그 용도를 확대하려는 목표로 규격화가 시작되었다. 인코딩 기술로서는 먼저 규격화가 진행되었던 H.263을 기본으로 하여 몇 가지 도구를 추가하여 구성되었다. H.263과의 차이점은 프레임 간 예측에서 B프레임을 채용한 점, DCT 계수의 AC/DC 예측을 도입한 점 등을 들 수 있다.
이 비주얼 기술 자체도 오류 톨러런스 기술 외에 임의 형상 기술, 스프라이트 인코딩 기술, 얼굴 움직임을 인코딩하는 페이스(Face) 인코딩 기술, 스케일러빌러티 기술 등을 집어넣은 거대한 것이었지만 현재는 오류 톨러런스 기술 외에는 잘 사용되지 않고 있다.
Part 2에서 규격의 범위가 너무 커져 버렸다. 그래서 통상적인 영상 압축률에 만족하자는 방침으로 개발이 진행되었다(Part 2 에서 사용되는 일이 없었던 페이스 기술, 스케일러빌러티 기술은 빼버림). ITU-T와 공동으로 규격화한 것으로 H.264와 같다. H.264/AVC라고도 불린다.
MPEG-4의 음향 인코딩 기술에서는 CELP 인코딩, AAC, TwinVQ, BSAC 등이 채용되었다. 특히 기존의 사용되던 CELP, MPEG-2에서 정의된 AAC, MPEG-4에서 새롭게 정의된 TwinVQ, BSAC 등 많은 객체를 가지며 이러한 객체의 조합을 이용하여 프로파일을 생성하고, 이를 이용한다. 또한, 압축뿐만 아니라 TTS 등과 같은 저전송률을 이용한 음성 복원 기능까지 가지고 있다.
멀티미디어 데이터를 파일이나 기록 매체에 보존하거나 네트워크에서 전송하기 위해서는 영상과 음성 각각 따로 인코딩한 데이터를 합쳐서 보내는 것(멀티플렉싱, 다중화)과 동기화를 위한 방법이 필요하다. 이러한 다중화 방식을 규정하는 것이 시스템이다. 또, 시스템에 의해 다중화되기 이전의 영상, 음성 바이너리를 엘리멘터리 스트림(ES: Elementary Stream)이라 한다.
동영상과 음성의 엘리멘터리 스트림을 다중화한다는 목적에는 MPEG-1이나 MPEG-2의 시스템과 같지만 MPEG-4에는 객체 인코딩이라는 개념이 있어 차이가 있다. MPEG-4에서 음향, 비주얼(비디오)의 데이터는 각 1개의 객체로서 다루어져 이러한 객체를 다중화·동기화하는 것이 시스템의 역할이다. 더불어 MPEG-4의 동화상(비주얼 및 AVC)이나 음성의 엘리멘터리 스트림의 다중화에는 MPEG-4 시스템뿐 아니라, MPEG-2 트랜스포트 스트림(MPEG-2 TS)을 이용해도 되고, 지상파 디지털 텔레비전 방송의 1 세그먼트(segment) 방송에서는 AVC와 AAC의 전송에 MPEG-2 TS가 이용된다.
게다가 여러 개의 객체를 조합해 다루기 위한 씬 기술을 위한 사양으로 VRML97를 기반으로 한 BIFS(Binary Format for Scenes)가 규정되어 있다. 이를테면, 인물이나 배경의 동영상 및 음성을 각각 별개의 객체로서 인코딩해서 각각의 객체들을 겹쳐서 표시하거나 사용자가 임의의 객체를 움직이게 할 수 있는 애플리케이션을 만들 수 있다. 그러나 이러한 객체 인코딩은 일반적으로는 실용화되어 있지 않았다.
객체 인코딩 개념의 도입이나 BIFS 등에 의해 MPEG-4 시스템의 내용이 비대해졌기 때문에 파일 포맷(MP4)에 관해서는 뒤에 서술할 Part 14로 독립해 규정하고 있다. 덧붙여 네트워크상에서의 전송에 관해서는 Part 8 및 RFC 3640으로 규정하고 있다.
멀티미디어 데이터를 파일에 기록하려면 동영상과 음성 엘리멘터리 스트림을 다중화할 필요가 있지만 다음에 재생할 때에 빨리 감기나 편집에서의 용이성을 위해 프레임 단위로 액세스 할 수 있도록 데이터를 구분하여 접근 관리 데이터를 부가하는 것이 편리하다. MPEG-4에서는 이러한 것을 위한 포맷으로 MP4 파일 포맷을 규정하고 있다.
음성은 파일 포맷에 맞추지 않고, 인코딩된 데이터를 그대로 사용하기도 한다. MPEG-1등에서 규정된 MP3가 이 좋은 예이다.
MP4 파일 포맷은 애플의 퀵타임(QuickTime) 파일 포맷을 기반으로 개발되고 있다. 퀵타임 파일 포맷으로 채용되고 있는 파일 구조는 다양한 동화상이나 음성의 엘리멘터리 스트림을 유연하게 다중화할 수 있어 범용의 파일 포맷으로서 ISO 베이스 미디어 파일 포맷(Part 12)에 채용되었다. 이 Part 12로부터 MPEG-4용의 파일 포맷으로서 파생한 것이 MP4 파일 포맷이다.
비주얼, 음향 공히 그 규격 안에 프로파일과 레벨이란 개념이 규정되고 있다. 프로파일이란 사용할 수 있는 도구를 나타내는 것이며, 레벨이란 사용할 수 있는 파라미터의 범위를 규정하는 것이다. 예를 들면, MPEG-4 Part 2에서는 심플 프로파일(SP), 어드벤스드 심플 프로파일(ASP), 메인 프로파일(MP) 등이 규정되어 각각 사용 가능한 도구가 다르다. MPEG-4 AVC에서는 베이스라인 프로파일, 메인 프로파일, 확장(Extended) 프로파일의 세 종류가 규정되고 있으며, 추가로 하이 프로파일등의 몇 가지가 추가되었다. 레벨은 수치로 나타난다. 통상 프로파일과 레벨을 합쳐서 간단하게 SP@L3(심플 프로파일 레벨 3) 등으로 표현한다.
1999년에 규격화된 직후부터 동영상을 장시간 기록하는 용도로 디지털 카메라에 사용되었다. 당초에는 파일 포맷이 규격화되어 있지 않았기 때문에 마이크로소프트사의 ASF 파일 포맷이 사용되었다. 근래에는 제3세대 휴대 전화의 동영상 포맷으로서 채용되고 PDA를 포함한 모바일 동영상 재생기의 주요 포맷이 되고 있다. 이러한 동영상 인코딩 기술은 현재까지는 MPEG-4 Part 2이지만, 2005년 후반부터는, MPEG-4 AVC도 사용되는 것이 확실시되고 있다.
방송이나 통신 분야에는 사용권 문제도 있어 용용 사례가 적었지만 MPEG-4 AVC(H.264)가 일본 지상파 디지털 방송의 휴대 단말기를 위한 (1 세그먼트(segment)) 방송을 비롯한 각 모바일 방송 표준으로 채용되고, Blu-ray Disc이나HD DVD의 비디오·코덱으로서 승인이 되고 있어 응용 사례는 증가할 전망이다.
MPEG-4 동영상의 콘텐츠 분석기술이 활발하게 연구되어 왔다. 이는 동영상의 장면을 자동으로 분할하는 기술, 동영상으로부터 객체를 자동으로 인식하고 추적하는 기술 및 콘텐츠 정보의 표준화 등을 포함한다. 동영상의 픽셀 정보를 이용하기 때문에 처리속도가 느려 고성능 하드웨어에 의존해야 했던 기존의 컴퓨터 비전 기술과 달리, 대부분의 압축 영역에서의 객체 인식 및 추적 기술은 압축 데이터에 포함된 모션 벡터, 잔여신호(DCT 또는 Integer coefficients), 및 매크로블록 타입 같은 기타 정보를 이용하여 일반 컴퓨터에서도 빠른 속도로 처리하는 것을 지향한다. 대표적인 알고리즘으로 MRF 기반 모델, 비유사성 최소화 알고리즘 (dissimilarity minimization) , 확률적 데이터 연관 필터링 알고리즘 (probabilistic data association filtering, PDAF) , 및 확률적 시공간 매크로블록 필터링 알고리즘 (probabilistic spatiotemporal macroblock filtering, PSMF) 등이 있다.