[Theory/Multimedia] - Transport Stream, 188 byte에 대해서

[Theory/Multimedia] - Elementary Stream과 Packetized Elementary Stream(PES)

지난 글에서 MPEG-TS의 패킷 구조와 PES에 대해서 설명을 했습니다. 이번 내용과 관련이 있으니, 가급적이면 관련 내용을 보고 오시는 것을 추천드립니다.


이번 포스팅에서는 패킷 헤더 부분 중에서도 PID에 대해서 설명을 드리고자 합니다. 우선 오해를 막고자, 이 내용은 Process ID 라던지, 기타 다른 내용과는 관련이 없는 MPEG-TS와 관련된 내용이라는 점입니다. 우선 간단하게 PID가 무엇인지 말씀을 드리자면, 해당 MPEG-TS 패킷이 어떤 것과 연관이 있는지를 알아보기 위한 ID라는 점입니다. 그렇다면 이것이 왜 필요한지에 대해서 설명을 드리겠습니다.


인코딩 과정을 기준으로 생각을 하면, 각 Elementary Stream이 Packetizing이 완료된 이후, 서로 다른 PES를 Muxing을 할 필요가 있습니다. 만약에 이 과정이 없으면, 특정 PES가 너무 크다거나 하는 등의 이유로 서로 동기를 맞추는 부분에서 어려움이 있을 수 있기 때문입니다. Program Stream의 경우에는 큰 문제가 없을지도 모릅니다만, Transport Stream은 기본적으로 방송을 목적으로 하기 때문에, 너무 늦게 재생되거나 하는 등의 문제가 발생하면 안됩니다.



참조: http://en.wikipedia.org/wiki/MPEG_transport_stream


위의 이미지를 보시면, 쉽게 설명이 될 것 같습니다. 영화에 대해서 Audio Video Data의 PES를 한차례 먹싱을 하고, 이를 다른 프로그램들과 함께 먹싱을 하여, 방송을 하는 구조를 가지고 있습니다. 그런데 이렇게 먹싱을 하고, TS Packetizing을 해서 보내면, 어떤 TS Packet이 어떤 프로그램과 연관이 있는 것인지 알기 어려워집니다. 이를 구분하기 위해 존재하는 것이 바로 PID 입니다.


이 PID는 13bit로, 8191까지 사용할 수 있습니다.

 PID

 Description

 0

 PAT(Program Association Table)

 1

 CAT(Conditional Access Table)

 2

 TS Description Table

 3

 IPMP Control Information Table

 4 - 15

 Reserved

 16 - 31

 DVB metadata

 32 - 8186

 Elementary Streams which is associated with PMT(Program Map Table)

 8187

 DigiCipher 2/ATSC MGT metadata

 8188 - 8190

 Elementary Streams which is associated with PMT

 8191

 Null Packet(for fixed bandwidth)


적고나니 앞으로 또 설명해야 할 것들이 많아서 눈에서 땀이 나네요. 우선 방송을 재생하기 위해 가장 중요한 것은 PAT와 PMT입니다. 일단 이 부분이 없으면 영상 자체가 재생이 되지 않습니다. 다음에 관련 내용을 추가적으로 알아보도록 하겠습니다. 기본적인 로직은 PAT를 통해 PMT를 알게되고, PMT를 통해서 어떤 PID로 들어오는 것이 해당 프로그램의 영상인지, 음성인지, 데이터인지 등을 구분하게 됩니다.


참고자료

http://en.wikipedia.org/wiki/MPEG_transport_stream

저작자 표시 비영리 변경 금지
신고
by 가우초 2013.12.29 23:24
| 1 |