MPEG transport stream

멀티미디어 : 2008. 6. 14. 15:25
반응형

MPEG transport stream

  Transport stream(TS, TP, or MPEG-TS) MPEG-2 Part 1에 규정된 오디오, 비디오, 데이터를 위한 통신 프로토콜이다. 이것의 디자인 목표는 디지털 비디오와 오디오를 멀티플렉싱하고 출력을 동기화하는데 있다. TS는 비신뢰적인 미디에에서 에러보정기능을 제공하며 방송응용프로그램 예를 들면 DVB ATSC 등에서 사용된다. 이것은 프로그램스트림(Program stream; DVD 같은 안정적인 매체를 위해 디자인된 스트림)과 대조된다.

       Program Stream(주로 안정적매체) Transport Stream(전송매체등을 위해 에러보정등 추가)

 

Layers of communication(통신계층)

 

  OSI 네트워크 프로토콜 스택과 비슷하게, TS는 리시버에서 레이어단위로 처리된다. 비디오를 포함하는 스트림을 예로 들면 다음과 같이 처리된다:

        1. 다양한 프로그램(방송프로그램)의 구성

        2. PES(Packetized Elementary Stream) 패킷화된 ES

        3. ES(Elementary Stream) - 오디오 또는 비디오(아래는 비디오만)

        4. Group of pictures(GOP) - 랜덤 억세스 포인트 제공

        5. Slice - intra prediction을 통해 파급되는 에러의 방지

        6. Macroblock - 6에서 12개의 DCT 블록으로 구성

        7. 인코딩 블록 또는 단순히 블록 - DCT 인코딩 블록으로 8*8의 픽셀

 

  TS로 먹스된 데이터의 예는 EPG(eletronic program guide)이다. 더 많은 정보를 위해선 Program and System Information protocol을 볼 것.

 

TS의 중요한 요소들

 

Packet

   패킷은 TS의 기초적인 데이터 유닛이다. sync byte로 구성되며 싱크바이트의 값은 0x47이다. 뒤따라 3개의 1비트 플래그와 13비트의 PID가 따라온다. 뒤따라 4비트의 연속 카운터가 나온다. 추가적으로 선택할 수 있는 transport 필드는 선택할 수 있는 adaptation 필드에 신호로 포함되어 따라올 수 있다. 나머지 패킷은 페이로드로 구성된다. 패킷들은 188바이트의 길이를 가지지만 통신매체에 따라 에러 수정 바이트가 포함될 수 있다. DVb-ASI 204바이트를 가지며, ATSC 208바이트를 쓴다. ATSC 전송은 20바이트의 Reed-Solomon 전방 에러 보정 바이트를 써서 208바이트의 길이를 가진다. 188바이트 길이의 패킷사이즈는 원래 ATM 시스템과의 호환성을 위해 선택된 것이다.

 

TS패킷 포맷의 구성부분

Name

Number of bits

Description

sync byte

8

0x47

Transport Error Indicator

1

Set by demodulator if can't correct errors in the stream[5]

Payload Unit Start Indicator

1

1  PES 또는 PSI의 시작을 나타내고 그렇지 않으면 0이다

Transport Priority

1

1이면 같은 PID의 다른 패킷보다 높은 우선순위를 가진다.

PID

13

패킷 아이디

Scrambling control

2

00 = 스크램블아님.01=사용예약, 10=짝수로 스크램블됨, 11 = 홀수로 스크램블 됨

Adaptation field exist

1

1이면 adaptation field가 있다

Payload data exist

1

1이면 데이터가 있다

Continuity counter

4

 

 

 

Note:위의 32비트는 TS 4바이트 프리픽스로 불린다.

Adaptation field

0 or more

플래그에 따라 다르다

Payload Data

0 or more

플래그에 따라 다르다

 

Adaptaion Field Format

Name

Num of bits

Description

Adaptation Field Length

8

곧바로 이 바이트길이 만큼의 Adaption field가 따라온다.

Discontinuity indicator

1

TS패킷의 연속카운터가 불연속이 되면 1로 세팅된다.

Random Access indicator

1

만약 TS패킷속의 PES패킷이 비디오나 오디오 부분의 시작이면 1로 세팅된다

Eelementary stream priority indicator

1

1 이면 높은 우선순위

PCR flag

1

1 이면 PCR 필드를 포함하는 adaption 필드이다

OPCR flag

1

 

Splicing point flag

1

1 이면 adaption 필드내에 splice countdown 필드가 존재한다.

Transport private data flag

1

1 이면 adaption 필드에 private data가 존재한다

Adaption field extension flag

1

1 이면 adaption 필트 확장잉 존재한다.

Below field are optional

variable

플래그에 따라 좌우

PCR

33+9

Program Clock Reference

OPCR

33+9

Original Program Clock Reference. 하나의 TS가 다른곳으로 복사될 때 도와준다.

Splice countdown(이어맞추기, 접합부)

8

이 하나의 splicing point가 발생한 곳으로부터 얼마나 많은 TS 패킷이 있는지 알려준다(아마도 음수다)

stuffing bytes

variable

 

 

 

PID

  TS의 각각의 테이블 또는 ES 13비트의 PID로 구분된다. 디멀티플렉서는 TS에서 같은 PID로 구별되는 ES를 뽑아낸다. 대부분의 어플리케이션에서, 시분할 멀티플렉싱은 얼마나 자주 특정  PID TS에 나타나는지 결정하기 위해 사용된다.

 

Programs

  TS는 프로그램들의 개념을 가지고 있다. 하나의 프로그램은 하나의 PMT에 의해 서술된다. PMT는 유일한  PID를 가진다. ES PMT에 리스트된 PID를 가진 프로그램과 연관된다. 예를들어, 디지털방송에서 새개의 프로그램을 담고 있는 TS가 사용된다면 이것은 세 개의 텔레비전 채녈을 의미하는 것이다.리시버가 순수하게 채널만 디코딩하려고 한다면 프로그램과 관련있는 PID의 페이로드만 디코딩해야 한다.

 

Program Specific Information(PSI)

  4개의 PSI 테이블: PAT(Program Association Table), PMT(Program Map Table), CAT(Conditional Access Table), NIT(Network Information Table). MPEG-2 규정은 CAT, NIT에 대한 규정은 없다.

 

PAT(Program Association Table)

  PAT Program Association Table을 의미한다.  PAT는 스트림의 모든  PMT PID를 리스트한다. PAT 정보를 가진 TS 패킷의 PID는 항상 0x0이다.

 

PMT(Program Map Table)

  Program Map Table 또는 간단히 PMT는 프로그램에 대한 정보를 가지고 있다. 각각의 프로그램마다 PMT가 있고, 각각의 프로그램에 대한 PMT와 함께 자신만의 PID로 나타난다. PMT는 어떤 PID가 관련되는 프로그램에 대한 데이터를 가지고 있는지 서술한다(메타데이타의  PID정보 또한 제공한다.) 예를들어, 프로그램이 MPEG-2 비디오 스트림을 가지고 있다면 PMT는 이  PID를 보여줄 것이다. 비디오 스트림으로 묘사하고 비디오가 포함한 비디오타입(MPEG-2)으로 묘사할 것이다. PMT는 또한 추가적으로 연속적인 스트림들에 대한 정보를 제공하는 디스크립터들을 포함할 수 있다.

 

PCR

  디코더가 프로그램을 정시(제때)에 표시하기 위해서(정확한 스피드로 동기화되어) 프로그램은 PCR을 제공하는데 프로그램의 PID 중의 하나로 제공된다.마슽터 클럭이라고도 하며, MPEG2에서는  PTS  PCR과 관련있다. 첫 번째 33비트는 90KHz 클럭에 기반하며, 각각의 주파수나 주기마다 증가한다. 9비트 확장은 27MHz에 기반한다.

 

Null packets

  ATSC DVB 같은 전송방식에서는 엄격한 CBR을 요구한다. 스트림이 CBR을 유지한다는 걸 보증하기 위해 멀티플렉서는 추가적인 패킷을 넣는다. PID 0x1FFF가 이런 용도로 사용되며 널 패킷의 페이로드는 없으며 리시버에서 무시된다.

 

참고

  1. ^(2000-12-01)ISO/IEC 13818-1 Second edition, page xi or 11 according to PDF viewer.

  2. ^DVB scrambling control bits defined. Page 6

 

translated by Paul SeongHyun Kim (partblue@cnu.ac.kr)

[출처] MPEG transport stream|작성자 음냐리

반응형

'멀티미디어' 카테고리의 다른 글

OpenCV 카메라 뒤집어 지는 문제  (2) 2008.06.18
The Fourier Transform  (0) 2008.06.14
RIFF (Resource Interchange File Format)의 저장방식  (0) 2008.06.14
Posted by Real_G