DirectShow DirectShow 의 사용법 DirectShow 의 MPEG-2 지원 MPEG-2 시스템의 개요   [목차열람] [주소복사] [슬롯비우기]
MPEG-2 시스템의 개요
 
Microsoft DirectX 9.0

MPEG-2 시스템의 개요

여기에서는, MPEG-2 시스템 계층에 대한 일반적인 개요를 나타낸다. MPEG-2 시스템은, MPEG-2 로 오디오 스트림과 비디오 스트림을 다중화하는 방법을 정의하는 규격이다. 더 자세한 정보는,Moving Picture Experts Group 홈 페이지를 참조할것.

기본 스트림

MPEG-2 다중화는, 기본 스트림 (ES)으로 불리는 1 개 또는 복수의 바이트 스트림으로부터 시작된다. 기본 스트림은 비디오, 오디오, 또는 그 외의 데이터로부터 구성된다. 예를 들어, 비디오 ES 는, 압축 비디오 프레임을 포함함과 동시에, 디코더가 스트림을 디코드할 경우에 필요한 순서 헤더, Group Of Pictures (GOP) 헤더등도 포함한다. 시스템 계층에서는 ES 바이트 스트림의 컨텐츠를 정의하지 않는다.

기본 스트림은,"PES (Packetized Elementary Streams)" 를 형성하는 패킷으로 나눌 수 있다. PES 패킷은 가변장이다. 패킷의 내용은 "유료 하중" 이라고 부른다. 각 PES 패킷은 헤더도 포함하고 있다. 멀티플렉서는 각각의 PES 에 1 바이트의 스트림 ID 를 할당한다. 각각의 PES 패킷은 패킷 헤더의 스트림 ID 에 의해 식별된다. 오디오 스트림의 경우, 스트림 ID 는 110xxxxx 형식을 취한다. 비디오의 경우, 스트림 ID 는 1110yyyy 형식을 취한다.

MPEG-2 규격에서는, PES 를 송신하는 2 개의 방법을 정의하고 있다. "프로그램 스트림" 과 "트랜스포트 스트림" 이다.

프로그램 스트림

프로그램 스트림은, 로컬 파일 기억 영역 등, 비교적 에러가 적은 환경전용으로 설계되고 있다. 프로그램 스트림에서는, PES 패킷을 다중화해,"팩" 이라고 하는 단위에 구성한다. 프로그램 스트림에 있어서의 모든 PES 스트림은 같은 클럭에 동기 한다.

트랜스포트 스트림

트랜스포트 스트림 (TS: Transport stream)은 네트워크 브로드캐스트 등, 신뢰성이 낮은지, 에러가 발생하기 쉬운 환경전용으로 설계되고 있다. 또, 다른 클럭에 동기 된 복수의 프로그램을 포함할 수도 있다. 트랜스포트 스트림은 패킷화의 2 번째의 계층을 더한다. PES 스트림은 트랜스포트 스트림 패킷의 내부에 패키지화된다. 각 트랜스포트 스트림 패킷의 사이즈는 188 바이트에 고정되고 있다. TS 패킷은, 다음에 설명하는 프로그램 정보 스트림도 포함할 수가 있다.

각 TS 패킷에는 4 바이트의 헤더가 있다. 또, 추가 헤더 정보를 포함한 적응 필드도 지정할 수 있다. 멀티플렉서는 각 PES 스트림 또는 프로그램 정보 스트림에 프로그램 ID (PID)를 할당한다. 스트림 ID 가 PES 패킷을 식별하도록(듯이), PID 는 TS 패킷의 식별로 사용된다. (트랜스포트 스트림이 복수의 프로그램을 포함한 경우,"스트림" ID 는 일의라고는 할 수 없지만, 트랜스포트 스트림내에서의 PID 할당은 일의가 된다).

프로그램 고유 정보

트랜스포트 스트림은 복수의 프로그램을 가질 수 있기 (위해)때문에, 다양한 PES 패킷을 각각 소속하는 프로그램에 관련지을 방법이 필요하다. 거기에는, 프로그램 스트림을 식별하는 테이블을 사용한다. 이 데이터는, 전체적으로 프로그램 고유 정보 (PSI)라고 부른다. PSI 데이터는, PES 데이터와 같이, TS 패킷으로 옮겨진다. PSI 데이터는, 다음과 같이 다양한 종류가 있다.

참조

↑TOP