MPEG2 시스템, Transport Stream & packet distruction

MPEG비디오 비트열과 MPEG 오디오 비드열을 하나로 묶어 전송하거나 저장하기 위한 규경이 MPEG 시스템이다. 이렇게 하나의 비트열로 다중화할 때 통신 채널이나 저장 미디어 등이 갖는 프로토콜이나 저장 포맷에 적합한 형식으로 할 필요가 있다. 이와 함께 비디오와 오디오의 동기(lip sync)를 맞추는 수단을 제공하는 것도 MPEG 시스템의 중요한 역할이다.

MPEG시스템에는 이미 다룬바 있는 MPEG 1 시스템과 MPEG 2시스템이있다. MPEG 1 시스템은 단일 프로그램을 오류가 없는 채널 환경에서 다중화하므로, 비디오 CD등 비교적 좁은 범위의 응용분야에 사용된다. 보다 정확히는 채널이 가지고 있는 오류 정정 능력에 의해 오류가 수정되므로 MPEG 1 시스템에서는 오류를 고려할 필요가 없다. 이에 비해 MPEG 2 시스템은 방송, 통신, 저장 미디어 등 광범위한 응용분야에 대응하고 있어 그 포맷도 훨씬 복잡하다.

MPEG2 시스템에는 두 종류의 다중화 방식이 있다. 하나는 프로그램스트림(PS :Program Stream)이라고 불리는 것으로 단일 프로그램을 오류가 없는 채널 환경에서 다중화하는데, MPEG-1 시스템을 약간 개선한 것이다.

또 하나는 트랜스포트 스트림(TS :Transprot Stream)으로 오류가 있는 채널환경에서 복수의 프로그램을 다중화한다. 복수의 프로그램을 하나의 비트열로 다중화하므로 멀티미디어 시대의 디지털 TV방송 등에 적합하고 제한수신을 위한 스크램블 기능(비트열을 암호화하여 유료 가입자 이외에는 시청할 수 없게 하는것)을 부가할수 있도록 되어 있다. 또한 랜덤 액세스가 용이하도록 디렉토리 정보나 개별 비트열에 관한 정보 등을 실을 수 있다. PS는 이미 다룬 MPEG 1 시스템과 유사하므로 여기서는 주로 TS에 대해 기술한다.

MPEG 2 시스템은 시분할다중방식(TDM : Time Division Multiple.ing)에서 쓰이고 있는 패킷 다중화 방식을 채택하고 있다. 이때 비디오와 오디오 비트열은 각각을 우선 패킷이라 불리는 적당한 길이의 비트열(PES:Packetized Elementary Stream)로 분할한다. PES패킷은 다양한 응용에 대응하도록 길이의 상한을 64KB까지로 하고 있고, 각 패킷마다 고정길이나 가변길이 어느것이라도 취할수 있도록 하고 있다. 또한 가변 전송속도도 허용되고 있고 불연속적인 전송도 가능하다. 이 각각의 PES를 하나의 비트열로 다중화하여 PS나 TS를 만든다.

패킷 길이는 전송채널이나 매체에 크게 의존한다. 가령 광대역 종합정보통신망(BISDN)에 있어서의 프로토콜인 ATM(Asynchronous Transfer Mode.비동기 전달모드)에서는 53 바이트의 패킷(셀)을 사용한다. 이중 패킷에 관한 기본 정보를 담는 헤더가 5바이트를 차지하므로 실제 사용자 정보(Payload)는 48바이트이다. 이와같이 길이가 짧은 패킷은 헤더가 상대적으로 많은 비율을 점유하므로 사용자 정보의 전송효율이 떨어지지만 지연시간과 버퍼 메모리양이 적은 이점이 있다.

TS패킷은 ATM과의 접속성을 고려하여 1백88바이트의 비교적 짧은 고정길이를 가지고 있다. ATM 셀의 사용자 정보 48바이트중 한바이트를 AAL(ATM Adaptation Layer)용으로 사용하면 실제 사용자 정보는 47바이트가 된다.

따라서 하나의 TS패킷은 4개의 ATM 셀에 실어서 전송할 수 있다. 각 TS패킷의 첫 4바이트는 해더용이므로 나머지 1백84바이트가 실제 비디오나 오디오 등을 실어나르는 사용자정보 부분이다.

많은 응용분야에서 오류정정을 위한 부호를 부가하는데 TS 패킷의 길이는 이를 고려하여 결정되었다. 즉 블록 오류정정부호로서 가장 탁월한 성능을 갖는 리드솔로몬부호는 적용하려면 TS 패킷의 길이는 2백 55보다 충분히 작은 것이 바람직하므로 결국 ATM과의 접속성을 함께 만족시키는 1백88로 결정된 것이다.

한 예로 무궁화 위성을 이용한 디지털 방송에서는 각 TS 패킷에 16바이트의 오류정정부호를 부가한 RS(204,188)를 사용하고 있어 수신측에서 2백4바이트중 8바이트까지의 오류를 정정할수 있다. 많은 경우 군집오류에 강한 리드솔로몬 부호와 더불어 산발적 오류에 강한 길쌈부호(Convoltional Code) 혹은 길쌈부호를 변조부와 결합하여 성능을 개선하는 TCM(Trellis Coded Modulation)을 함께 사용하고 있다.

MPEG2 시스템에서는 두 종류의 다중화 비트열을 다룬다. 그중 프로그램스트림(Program Stream)은 하나의 방송 프로그램(비디오+오디오+자막)을 오류가 없는 채널 환경 혹은 CD 등에서 보는 바와 같이 매체자체의 오류정정 기능을 그대로 활용하는 경우에 사용하는 다중화 방법이고, 트랜스 포트 스트림(TS:Transport Stream)은 오류가 있는 채널 환경에서 여러개의 방송 프로그램을 동시에 보낼때 사용하는 다중화 방법이다. 예를 들면 비디오 CD처럼 하나의 프로그램을 저장할 때는 프로그램 스트림이 사용되고 무궁화 위성을 이용한 복수 프로그램의 디지털 방송에는 트랜스포트 스트림이 사용된다.

트랜스포트 스트림의 기능에 관해 무궁화 위성 방송의 예를 들어 보다 구체적으로 살펴보기로 하자. 무궁화위성은 (비록 1호기는 발사 실패로 수명이 단축되어 앞으로 발사도리 2호기가 그 역할을 대신하겠지만) 방송용 중계기3개와 통신용 중계기 12개를 가지는 방송,통신 겸용 위성이다. 위성방송에 있어서 현재 일본의 위성방송이나 홍콩의 스타 TV 등과 같은 아닐로그 FM 방식을 사용하면 중계기당 한 방송밖에 수용할 수 없지만, MPEG2를 이용한 디지털 방식을 사용하면 중계기당 4~8방송까지 수용할 수 있다. 우리나라의 경우 프로그램의 부족이나 화질등을 감안, 중계기당 4 방송을 고려하고있다. 이 위성방송에 있어서 다중화는 다음과 같은 단계로 이루어진다. 우선 각 방송국으로 부터의 프로그래이 비디오는 MPEG2 비디오, 오디오는 MPEG2 오디오 압축 알고리즘을 이용해 각각 30대1과 6대1정도로 압축된다. 이 압축된 비트열은 패킷 형태로 묶여져 각각 비디오 패킷과 오디오 패킷으로 변형된다. 이어서 이들을 1백88바이트의 고정길이를 갖는 트랜스포트 스트림 패킷 여러개의 차곡차곡 싣는다. 하나의 트랜스포트 패킷은 4바이트의 헤더를 제외하면 1백 84바이트의 실제 짐을 실을 수 있다. 마치 택시의 정원이 5명이지만 운전기사를 빼면 실제 승격은 4명인 탈 수 있는 것과 같은 원리이다. 헤더에는 13비트의 프로그램 식별정보(PID:program identification)가 포함되어, 이 패킷에 실린 짐이 어느 방송국의 무슨(즉 비디오인지 오디오인지)정보인지를 나타내는데 쓰인다.

이렇게 각 방송국에서 1차적으로 다중화되어 나오는 트랜스포트 패킷은 2차적으로 여러 방송국의 트랜스포트 패킷들이 또 다중화되어 하나의 비트열을 구성해 하나의 중계기를 통해 송출될 수 있는 형태가 된다. 이런 최종비트열이 중계기 수만큼 필요하다.

따라서 디지털 위성방송에 있어서의 다중화는 시분할 다중화(TCM:Time Division Multiple.ing)와 주파수분할다중화(FDM:Frequency Division Multiplex)가 결합되어 있다. 즉 중계기들은 각각 27MHz의 대역폭을 가지면서 FDM의 형태로 운용되지만 한 중계기를 4개 방송사가 TDM방식으로 공유하는 것이다. 각각의 중계기에 실린 트랜스포트 스트림은 에러 정정을 위해 리드솔로몬 부화와 길쌈부호가 행해지고 QPSk 변조를 통해 지상과 위성간에 전송이 이루어진다.

수신기에서의 트랜스포트 스트림의 복호시에는 위의 역과정이 행해지다.

우선수신하고자 하는 방송이 들어있는 중계기를 선택해 QPSK 복조하고 에러 정정을 행한다. 이 출력은 여러 방송이 다중화된 비트열이므로 우선 수신하고자 하는 방송국의 트랜스포트 패킷만을 골라내고, 이중 비디오 패킷은 비디오 디코더에서, 오디오 패킷은 오디오 디코더에서 각각 복호함으로써 영상과 음향을 재생하게 된다. 이와 같은 다단계 동작을 위해 몇가지 프로그램 관련정보 테이블(PSI:program specific information)이 필요하게 된다.

PAT(Program Association Table)는 PID=0인 패킷으로, 각 프로그램 마다 트랜스포트 패킷을 할당해 주는 역할을 한다. 이렇게 지정된 패킷에 가보면 거기에서는 그 프로그램을 구성하는 비디오와 오디오 비트열이 어떤 패킷에 실려오는지를 알려주는데 이를 PMT(Program Map Table)라 한다. 이렇게 PAT와 PMT로 나누어서 트리형태로 기술하는 이유는, 하나의 테이블로 모두 기술하면 이 테이블이 너무 커져 테이블을 기억시킬 메모리가 커지게 되고, 또한 테이블의 후반부에 기술되는 프로그램의 정보를 액세스하는데 시간이 오래 걸리기 때문이다.

이밖에도 중계기와 프로그램간의 링크 정보를 담는 NIT(Networt Inform action Table)와 조건부 수신 정보를 담는 CAT(Conditional Access Table)등이 시스템 운용을 위한 부가정보 테이블로 사용된다.

'Digital TV' 카테고리의 다른 글

IPTV의 큰 난관  (0) 2007.10.03
LAN 관련 Spec  (0) 2006.04.10
Comparison of the DAB, DMB & DVB-H Systems  (0) 2006.04.01
DOCSIS 1.0 1.1 2.0  (0) 2006.02.11
MPEG4 AAC AVC 비교  (0) 2006.02.11
[펌] MPEG2 시스템(Transport Stream)  (0) 2006.02.11
Posted by 김용환 '김용환'