본문 바로가기
Computer

디지털 방송의 생성 원리와 구조-3

by 시앙라이 2008. 10. 9.
PES 패킷 헤더 신텍스
<그림 8>의 신텍스는 PES 패킷을 나타낸 것이다. TS 중에 PSI 섹션과 구별된다고 생각할 수 있다. TS에서 PES 패킷을 찾는 방법은 TS 헤더의 PID 값 중 0x0010~0x1FFF의 값을 갖는 것들이 PES 패킷이 될 수 있다. 물론 이중에 PSI 섹션의 NIT와 PMT도 포함될 수 있음을 상기하고 구별해야 한다. 우선은 PES 패킷의 최소 헤더 부분만을 이해하기 위해 <그림 8>에서 참고할 부분은 빨간 테두리 안의 내용만 참고하면 될 것이고, 우선은 최소 헤더 부분만 설명하도록 하겠다.


그림8 | PES 패킷 신텍스 다이어그램(13813-1)


PES 패킷 헤더의 필드 값은 다음과 같다.

    ◆ packet_start_code_prefix : 패킷의 시작을 알리는 고정된 값으로 ‘0000 0000 0000 0000 0000 0001’(0x000001)의 값을 갖는다.
    ◆ Stream_id : 스트림 타입에 관한 값이 정의되어 있다. 정의된 값은 <표 5>를 참고한다.
    ◆ PES_packet_length : 16비트의 PES 패킷의 바이트 값을 나타낸다. TS의 비디오 엘리먼터리 스트림의 패이로드 값을 나타내거나, 포함할 경우 ‘0’의 값으로 셋팅이 이뤄진다.

여기까지 TS 헤더와 PES 패킷 헤더의 신텍스에 대해 알아봤다.

 

원래 한 번에 헤더와 바디의 구조를 파악하고, 이해를 하는 것이 가장 좋은 방법이지만 지면 관계상 2회로 나눠 진행하게 됐다. 정리를 하자면 우리가 시청하는 지상파 디지털 방송은 TS로 이뤄져 있고 이 TS에는 PSIP라는 부가 정보가 포함되어 있다. TS가 만들어 지는 원리는 카메라를 통해 영상을 찍어 ES로 만들고, 이 ES를 변화시켜 PES 스트림으로 만들고, 이 PES 스트림을 188바이트씩 잘라내어(TS 헤더 포함) 만드는 것이 TS이다. 이렇게 간단하게 설명할 수 있는 것을 정말 어렵게 설명한 듯 하다.

 stream_id  Note  스트리밍 코드
 1011 1100  1  program_stream_map
 1011 1101  2  private_stream_1
 1011 1110    padding_stream
 1011 1111  3  private_stream2
 110x xxxx    ISO/IEC 13818-3 or ISO/IEC 11172-3 audio stream number xxxx
 1110 xxxx    ITU-T Rec.H.262|ISO/IEC 13818-2 or ISO/IEC 11172-2 video
     stream number xxxx
 1111 0000  3  ECM_stream
 1111 0001  3  EMM_stream
 1111 0010  5  ITU-T Rec.H.222.0|ISO/IEC 13818-1 Annex A or ISO/IEC
     13818-6_DSMCC_stream
 1111 0011  2  ISO/IEC_13522_stream
 1111 0100  6  ITU-T Rec.H.222.1 type A
 1111 0101  6  ITU-T Rec.H.222.1 type B
 1111 0110  6  ITU-T Rec.H.222.1 type C
 1111 0111  6  ITU-T Rec.H.222.1 type D
 1111 1000  6  ITU-T Rec.H.222.1 type E
 1111 1001  7  ancillayr_stream
 1111 1010...
 1111 1110
   reserved data stream
 1111 1111  4  program_stream_directory
The notation x means that the value '0' or '1' are both permitted and results in the same stream type. the stream number is given by the values taken by the x's.
Note 1: PES padckets of type program_stream_directory have unique syntax specified in 2.5.4.1 on page 63.
Note 2: PES packets of type private_stream_1 and ISO/IEC_13552_stream follow the same PEX packet syntax as those for ITU-T Rec.H.222.0|ISO/IEC 13818-2 video and ISO/IEC 13818-3 audio streams.
Note 3: PES packets of type private_stream_2, ECM_stream and EMM_stream are similar to privaate_stream_1 except no syntax is specified after PES_packet_length field.
Note 4: PES packets of type program_stream_directory have a unique syntax specified in 2.5.5.1 in page 65.
Note 5: PES packets in type DSM-CC_stream have a unique syntax specified in ISO/IEC 13818-6, which is a compatible extention if ITU-T Rec.H.222.0|ISO/IEC 13818-1 Annex A.
Note 6: This stream_id is associated with stream_type 0x09 in table 2-36 in pate 64.
Note 7: This stream_id is only used in PES packets, which acrry data from a Program Stream or an ISO/IEC 11172-1 System Stream, in a Transport Stream.
표5 | Stream_id 정의된 값(13818-1 인용)

이중 특히 유용한 정보라 할 수 있는 EPG 정보를 이용한다면, 지금까지 어렵게 사용됐던 예약녹화도 아주 간단히 사용될 수 있다. 몇 가지 예를 들면, 첫 번째가 TV 시청 예약이다. 드라마 시청 전의 광고가 나오고 있는 상황이라고 가정하자. 드라마가 시작되기 전의 광고는 평균 5분 정도 방영될 것이다.

하지만 나는 이 광고가 보기 싫고, 5분이란 시간 동안 다른 채널의 프로그램을 시청하고 싶은 경우가 있을 것이다. 이럴 경우, 디지털 TV의 시청 예약 기능을 이용할 수 있다. 즉, 이 상황에서 리모콘의 버튼을 이용해 다음 방송 프로그램의 예약을 수행한 후, 채널을 아무 곳으로나 돌린다. 돌리던 중 잠깐 휴식을 취할 방송 프로그램에서 채널을 멈춰 이 채널을 시청하고 있는 동안 예약된 방송 프로그램이 시작하는 시점에서 채널은 자동으로 드라마 프로그램 채널로 전환된다.

다음으로 EPG를 이용한 예약 녹화이다. 지금까지 우리는 방송을 녹화하려 할 때 현재 시간을 정확히 입력하고, 녹화하려는 프로그램의 시간 또한 정확히 입력해야만 제대로 된 녹화가 가능했다. 혹은 시간의 오차로 인해 처음부터 녹화되지 않거나, 녹화 프로그램이 끝까지 녹화되지 않은 불상사가 발생하는 경우도 있었다.
하지만 EPG를 이용해 녹화를 예약한다면 시간을 설정할 필요 없이 단지 디지털 TV의 TV 편성표 화면에서 커서를 움직여 선택함으로써 간단하게 예약 녹화를 수행할 수 있을 것이다. 또한 녹화 프로그램이 처음부터 녹화되지 않거나, 끝까지 녹화가 되지 않는 불상사를 방지할수 있으며, 정확한 시간동안 예약한 프로그램의 녹화가 가능케 된다.

디지털 TV에서 이러한 모든 것들이 가능한 이유는 ATSC에서 제시한 PSIP의 부가 정보를 이용하기 때문이다. 물론 이러한 기능이 모든 디지털 TV나 셋톱박스에서 가능한 것은 아니다. 제조업체에서 ATSC의 PSIP 정보를 어떻게 이용하느냐에 따라 제품적인 차이점이 있을 수 있다. 녹화 또한 DVR이나 PVR이라는 제품을 통해 일반 녹화 테이프가 아닌 하드디스크를 이용해 녹화한다(JVC의 경우 디지털 녹화 테이프를 이용한다).

여기서는 크게 두 가지를 설명할 것이다. 첫 번째가 우리 머리 위로 돌아다니는 방송파(Transport Stream, 이하 TS)가 만들어지는 과정과 분석하는 과정이고, 두 번째가 TS에서 EPG 데이터(ATSC A/65a spec)를 추출하는 방법, 즉 ATSC의 PSIP 분석에 관한 내용이다.