태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

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

Posted at 2008/10/19 02:41 | Posted in Computer

디지털 방송이 만들어지는 과정
디지털 방송의 실제 데이터인 TS가 만들어지는 과정에 대해 알아보면...
영상 데이터가 디지털 방송의 실제 데이터인 TS로 변화하기 위해 거치는 인코더와 생성(generator), 그리고 MUX에 대해 알아볼 것이다. 이 때 데이터가 어떤 식으로 변형되는지 변화 과정 또한 알아볼 것이고, 마지막으로 각각의 인코더와 MUX를 거치기 전과 거친 후의 변화되는 모양새를 살펴보는 시간을

디지털 방송 TS의 생성 원리
우선 PES(Packetized Elementary Stream) 패킷이 무엇이고, TS가 무엇인가에 대해 알아보자. TS는 ‘Transport Stream’의 약자이다. 즉, 디지털 방송을 전송하는 실제 데이터들의 연속적인 모임을 말하는 것이다. 방송사에서는 TS를 전송하고, 수신측(DTV, 셋톱박스)에서는 이 TS를 받아서 디코딩해 화면에 영상을 표시하고, 음성을 들려주고, 여러가지 부가 서비스를 위한 정보를 골라내 사용한다. 이때 사용되는 영상은 MPEG-2(ISO/IEC 13818-1)이고, 음성은 AC3(돌비 디지털 사운드)를 사용한다.

이 TS는 몇 가지 특징이 가지고 있다. 첫 번째가 TS는 일련의 TS 패킷이란 것으로 구성되는데, TS 패킷들은 각각의 길이가 188바이트로 일정하다는 것이고, 두 번째가 TS의 데이터 구조는 복수 프로그램을 운반하기 위한 목적으로 ITU-T(구 CITT)에 의한 표준인 ATM 방식과 유사하다는 것이다.

이러한 TS가 생성되는 과정을 간략하게 알아보도록 하자. <그림 1>은 실제 영상과 음성이 방송파(TS)로 변하는 과정을 나타낸다. 실제 영상을 받아서 MPEG-2로 변환(ENCODING)하고, 음성은 AC3로 변환한다. 이것을 각각의 비디오 ES, 오디오 ES라고 한다.


그림1 | TS 생성과정 (Sarnoff 인용)


이 ES를 가변적 크기로 잘라낸 후 헤더를 붙여 PES 패킷으로 변환한다. 이 PES 패킷의 크기는 고정되지 않고 가변적이다. 이 PES 패킷을 고정된 크기 188바이트로 잘라내고 헤더를 붙여(헤더 포함 188바이트) TS 패킷으로 변환한다. 만들어진 TS를 주파수에 실어 전송한다고 간단하면서도 어렵게 설명할 수 있다. 그럼 좀더 세부적으로 살펴보도록 하자.

싱글-프로그램 인코더가 PES 패킷이 생성되는 부분
디지털 방송은 MPEG-2를 사용한다. MPEG-2는 비디오와 오디오가 따로 구성된다. 그렇기 때문에 <그림 1>의 싱글 프로그램 인코더(single-program encoder) 부분을 보면 비디오와 오디오가 각각 인코딩된다. 그럼 우선 비디오 하나만 가지고 살펴보도록 하자.

<그림 1>을 보면 ‘Video → [MPEG-2 Encoder] → MPEG-2 Bitstream → [Transport Mux] → SP transport Stream’으로 표현된다. 여기서 비디오 데이터가 MPEG-2 인코더를 거쳐서 생성되는 MPEG-2 비트스트림이 ES를 의미하고, 이 ES가 Transport Mux를 거쳐서 생성되는 것이 PES 패킷을 의미한다.

SP(Single Program) 트랜스포트 스트림과 MP(Multi Program) 트랜스포트 스트림으로 나눠지는 이유는 디지털 방송이 멀티채널의 구현이 가능하기 때문이다. 멀티채널이란 하나의 방송 프로그램 영역에 여러 개의 프로그램을 같이 포함시켜 서로 다른 프로그램을 송출하는 것을 의미한다. 간단한 예를 들자면 8번 채널에서 8-1, 8-2, 8-3, 8-4와 같이 8번 채널이 4개로 분할되어 4개의 서로 다른 프로그램의 방영이 가능한 것을 말한다. 우리나라에서의 디지털 지상파 방송 규격은 HD(고화질 디지털 방송)이기 때문에 다채널이 제공되지 않는다. 다채널을 사용하기 위해서는 SD(일반화질 디지털 방송)급의 방송을 사용한다. 외국이나 위성 방송에서는 SD를 사용한다.

 


[ TS와 PS ]
MPEG-2를 이용해 TS와 PS를 생성할 수 있다. TS는 잡음이 많은 환경에 사용되고, PS(Program Stream)는 잡음이 거의 없을 거라 예상되는 환경에 사용된다. 즉, TS는 데이터 손실이 예상되는 방송용 데이터로, PS는 데이터 손실이 거의 없을 거라 예상되는 DVD 같은 저장 매체에 주로 사용된다. PS는 MPEG-1과 같이 하나의 프로그램 구성이 가능하고, TS는 복수의 프로그램 구성(다채널)이 가능하다. TS는 복수의 프로그램을 하나의 비트 열로 구성할 수 있기 때문에 TV 방송 등에 대응할 수 있고 자유도가 많은 편성이나 스크램블 기능 등에도 대비할 수 있다.


싱글-프로그램 인코더 부분을 좀더 상세하게 표현한 <그림 2>를 살펴보자. Video Data가 Video Encoder를 거쳐서 Video ES가 만들어지고, 생성된 Video ES가 Packetizer를 거쳐서 Video PES 패킷으로 변환된다. 그럼 PES 패킷이란 무엇인가? 그것은 ‘The data structure used to carry elementary stream data. It consists of a PES packet header followed by PES packet payload and is described’라고 13818-1에 표현되어 있다. 정확한 이해를 위해 원문을 적었다.

 

정리하자면 비디오 인코더를 이용해 ES가 생성된다. 이 ES는 비디오의 처음부터 끝까지의 일련의 데이터이다. 이것을 그대로 전송할 경우, 잡음에 의한 데이터 손실이 있을 수 있고, 혹은 데이터의 분실이 생길 수도 있다. 그렇기 때문에 원활한 전송을 위해 ES를 나누고, 나눈 각각에 헤더를 포함시켜서 연결 정보 및 데이터의 손상 여부에 대한 정보 등을 추가시켜 수신측에서 데이터를 원활히 수신하도록 만드는 것이다. 이것이 바로 PES 패킷인 것이다. 만약에 중간에 PES 패킷 한 개를 유실했더라도 유실된 정보를 알 수 있기에 디코딩에 실패하지 않고 복구할 수 있다.


그림2 | PES 패킷 1 (13818-1 인용)

 


그림3 | PES 패킷 2


그래서 패킷타이저(packetizer)를 거침으로써 ES에 헤더가 포함되고 일정하지 않은 크기로 잘라낸 패킷을 만드는 것이다. PES 패킷의 헤더에는 이것들의 순서의 정보도 가지고 있고, 다른 정보들이 왔을 때 무시하는 아이덴티파이어(identifier) 정보도 포함하는 것이다. 변화의 과정이 <그림 3>처럼 표현되는 것이다.

◆ <그림 1>의 PSI과 PSIP 제너레이터 부분이 PSI, PSIP가 생성되는 부분이다
싱글-프로그램 인코더 부분은 MPEG-2를 위한 부분이고, PSI와 PSIP 제너레이터 부분은 MPEG-2의 디코딩 정보와 부가 정보가 만들어지는 부분이다. PSIP에 관한 세부 내용은 다음 호에서 설명하도록 한다.
◆ <그림 1>의 트랜스포트 MUX 부분이 TS가 생성되는 부분이다

    싱글-프로그램 인코더 부분의 수행으로 우리는 PES 스트림(PES 패킷들의 연속된 모임을 PES 스트림이라고 한다)을 얻었다. 이 PES 스트림을 이용해 TS 혹은 PS가 생성된다. PES 스트림이 TS Mux를 거치면 TS가 생성되고, PS Mux를 거치면 PS가 생성되게 되는 것이다.

그림4 | TS 생성


PES 패킷의 TS 생성 과정을 살펴보면 PES 패킷만을 이용해 TS를 생성하는 것이 아니라, PSI와 PSIP 제너레이터를 이용해 생성된 PSI, PSIP 섹션도 함께 TS Mux에 삽입해야 한다. 그러면 완전한 TS가 생성되는 것이다. 싱글-프로그램 인코더에서 생성된 PES 스트림과 PSI와 PSIP 제너레이터에서 생성된 PSIP, PSI 섹션을 가지고 TS Mux(MP Transport Mux)가 TS(188바이트)를 만드는 것이다. 이것이 주파수를 타고 날아오는 실제 데이터이고, 실제 수신측은 이것을 받아 디코딩해 화면과 영상을 보여주는 것이다.

여기까지 실제 비디오 데이터가 TS로 변화되는 과정에 대한 원리를 살펴보았다. 다음으로 데이터 구조에 대해 살펴보도록 하자.

 

단위 모양새가 궁금하다
ES가 TS로 변하는 과정에서의 데이터 구조의 변화에 대해 자세히 살펴보도록 하자. <그림 5>를 참조한다.


그림5 | ES -> PES -> TS


<그림 5>의 ①번은 ES를 나타낸다. 이것이 오디오인지 비디오인지는 중요하지 않다. 그 이유는 같은 방식이기 때문이다. 우선 ES(오디오 또는 비디오)가 있다고 가정한다. ②번이 패키타이저를 통해 ES를 일정하지 않은 크기(일정한 형식에 맞추어)로 잘라낸 후 헤더를 추가해 PES 패킷이 생성된 모습을 표현한 것이다. PES 패킷 옆에 있는 것이 PSIP 제너레이터로 생성된 PSIP 섹션이다.

③번이 TS Mux를 통해 PES 스트림과 PSIP 섹션을 TS로 변환한 모습을 표현한 것이다. 이것 역시 헤더가 추가되며, PES 스트림을 이용해 TS를 만드는 사이사이에 PSIP, PSI 섹션도 같이 추가되어 하나의 TS가 완성되는 것이다. 실제 TS가 만들어지기 위해서는 한 개의 원본에(ES) 두 개의 헤더가 각기 추가됨을 알 수 있다. 그렇기 때문에 역으로 TS에서 원본을 추출하기 위해서는 두 개의 껍데기를 벗겨내야 하는 것이다.

TS를 자세히 살펴보니 데이터 영역에 스터핑(stuffing)이란 것이 새롭게 추가된 것을 알 수 있다. <그림 5>와 <그림 6>에 포함된 스터핑이란 것은 무엇인가? 실제적인 데이터 크기를 고려해 스터핑이 무엇이고, 왜 생겼는지에 대해 알아보자.


그림6 | 스터핑 샘플


스터핑이란 TS가 188바이트라는 고정된 크기를 갖는 특성 때문에 생긴 것으로 빈 공간에 채워지는 의미 없는 데이터를 의미한다. 예를 들면 PES 패킷의 크기가 300바이트라고 가정하자. 이것을 TS로 변환하려면 최소 2개의 TS를 사용해야 한다. 참고로 TS 헤더의 크기는 4바이트이다. 즉 데이터로 사용할 수 있는 크기는 ‘188 - 4 = 184바이트’이다(어댑션_필드(adaptation_field)가 아닌 데이터_바이트(data_byte)가 올 때만 적용된다).

그렇기 때문에 ‘300/184 = 1과 116’의 나머지의 값이 2개의 TS에 나누어 저장되고 ‘184 - 116 = 68바이트’ 값을 스터핑이라 하는 것이다. 이 스터핑의 값은 모든 비트는 아무런 의미 없는 ‘1’로 채워지게 된다. 그렇기 때문에 수신측에서 디코딩할 때에 이 값은 모두 버리게 되는 것이다. <그림 6>을 참고하도록 한다.

블로그코리아에 블UP하기

http://www.krlai.com/trackback/278 관련글 쓰기

  1. 과객
    어렵습니다.
    무엇보다 깁니다.
    줄여주세요.. 쉽게..

    결론은 알기 쉽게 쓰자..ㅋ
  2. 쉽게 잘 설명이 되어있네요.
    글 담아 갑니다.
    고운하루 되세요.
  3. 잘 보고 갑니다 ^^"
    이걸 정리 하시다니~
    감솨용~

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

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

Posted at 2008/10/09 18:29 | Posted in Computer
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 분석에 관한 내용이다.


저작자 표시 비영리 동일 조건 변경 허락
블로그코리아에 블UP하기

http://www.krlai.com/trackback/277 관련글 쓰기

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

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

Posted at 2008/10/03 00:16 | Posted in Computer

TS, PES 패킷의 헤더 신텍스
헤더 신텍스
지금까지 TS의 원리와 구조에 대해 알아봤다. 이제는 신텍스(syntax)에 대해 알아볼 차례다. 지금까지 공부한 내용을 이해했기를 바란다. 만약 TS의 원리와 구조를 이해하지 못했다면 신텍스 부분으로 넘어가서는 안 된다. 구조를 이해하지 못한 채 신텍스를 이해하려 하는 것은 잘못된 방법이다. 만약 신텍스를 완벽히 이해했다고 하더라도 구조를 이해하지 못했다면 그건 그림조각 맞추기 퍼즐에서 하나하나의 그림조각 모두를 이해했지만, 그림조각을 하나로 맞추어 완벽한 하나의 그림을 만들 수 없는 것과 같다고 할 수 있다. 그렇기 때문에 지금까지 공부한 원리와 구조가 이해되지 않았다면 다시 한 번 차근차근히 읽어 본 후 다음 부분으로 넘어가야 할 것이다.

샘플 TS 비트
이제 실제 TS 하나를 살펴보고, 분석하는 것이 TS를 이해하는 가장 좋은 방법이다. 필자 역시 처음 ISO/IEC 13818-1과 A/65A 스펙을 봤을 때는 정말 막연하고 답답했지만, 실제 비트 열을 A4지에 출력해 싱크_바이트(sync_byte)를 찾고, 다음으로 오는 트랜스포트_에러_인디케이터(transport_error_indicator)를 찾고, 다음으로 오는 것들을 스펙을 보면서 하나하나 신텍스에 맞게 구별해 보았다. 이렇게 TS를 구별하고 구별된 TS를 손으로 그려가며 분석을 해보니 신텍스에 대한 이해가 아주 쉽게 되었다.


표1 | 샘플 TS 비트 (188바이트)


<표 1>은 실제 1개의 TS(188바이트)를 나타낸 것이다. 이와 같이 TS 수만 개가 모여서 하나의 프로그램(방송)을 이루는 것이고, PSIP 정보를 분리해 EPG를 표현하는 것이다. 이어서 설명이 될 PSIP 신텍스를 이용해 연필과 색연필을 들고 TS 헤더, PSIP 헤더를 분석해 보면 <표 1>이 어떤 테이블을 의미하는지 쉽게 찾을 수 있을 것이다. 앞의 TS는 PSIP의 MGT 섹션이 전송되는 TS이다(MGT 섹션에 관한 신텍스는 다음 호에서 다룰 것이다).

이제 본격적으로 TS 헤더의 신텍스에 대해 알아보도록 하자. 신텍스를 모두 표현하기에는 지면이 허락하지 않는 관계로 중요한 것들만을 살펴보도록 하자.

TS 헤더 신텍스
188바이트로 이뤄진 TS 중 최초부터 4바이트까지의 부분으로써 기본적인 정보를 표현한다. <그림 7>은 TS를 다이어그램으로 보기 쉽게 나타낸 것으로 ISO/IEC 13818-1 스펙에서 인용한 그림이다. 이 문서는 TS 및 PSIP 분석을 위한 문서이므로 어댑션_필드에 관한 내용은 설명하지 않는 것을 양해하기 바란다. 필드에서 어댑션_필드_컨트롤(adaptation_field_control)의 값을 판단해 패이로드(payload) 값이 데이터인지, 어댑션_필드인지를 판별하게 된다.


그림7 | 트랜스포트 스트림 신텍스 다이어그램의 일부(13838-1)


이 문서는 어댑션_필드_컨트롤의 값이 01인 경우만을 사용한다. 그렇기에 <그림 7>에서 참고할 부분은 빨간 테두리 안의 내용만 참고하면 될 것이다. <그림 7>에 나타난 부분 외에 아래 부분을 TS 헤더라고도 한다. TS의 헤더 크기는 4바이트이고 패이로드(데이터)의 크기는 184바이트이다. 패이로드 부분에 스터핑 데이터가 포함되기도 한다. 184바이트보다 큰 하나의 섹션을 구성하기 위해서는 컨티뉴티_카운터(continuity_counter)를 이용해 여러 개의 패이로드(데이터)를 합쳐서 1개의 섹션을 구성할 수 있다. TS 헤더의 시작은 항상 0×47로 시작하기 때문에 1바이트씩 읽어서 0×47을 찾아 싱크를 맞추면 된다.

 Syntax  No.of bis  Mnemonic
transport_packet(){
  sync_byte 8 bslbf
  transport_error_indicator 1 bslbf
  payload_unit_start_indicator 1 bslbf
  transport_priority 1 bslbf
  PID 13 uimsbf
  transport_scrambling_control 2 bslbf
  adaptation_field_control 2 bslbf
  continuity_counter 4 uismbf
  if(adaptation_field_control=' 10' || adaptation_field_control=' 11'){
     adaptation_field()
  }
  if(adaptation_field_control=' 01' || adaptation_field_control=' 11'){
     for (i=0;i<N;i++){
        data_byte 8 bslbf
    }
  }
}
표2 | ITU-T Rec.H.222.0|ISO/IEC 13818트랜스포트 패킷
TS 헤더의 필드 값은 다음과 같이 정의된다.
    ◆ 싱크_바이트(sync_byte) : 항상 ‘0100 0111‘(0×47)의 값을 갖는다.
    ◆ 트랜스포트_에러_인디케이터 : 1비트의 플래그(flag) 값이다. 항상 0의 값을 가져야 한다. 트랜스포트 레이어 부분에 문제가 발생되었을 때 이 값은 1로 셋팅이 된다.
    ◆ 패이로드_유니트_스타트_인디케이터(Payload_unit_start_indicator, pusi) : pusi가 ‘1’이면 PES 패킷의 첫 번째 부분임을 나타낸다. 여러 개의 TS가 모여서 하나의 PES 패킷을 구성할 때 pusi가 ‘1’인 것을 먼저 찾은 후 컨티뉴티_카운터 값의 연속성을 이용해 다음 TS를 찾아내어 합치면 하나의 PES 패킷을 구성할 수 있게 된 것이다. Pusi가 ‘0’이라면 PES 패킷의 시작 부분이 아니라 중간, 혹은 마지막 부분임을 의미한다. Pusi가 ‘1’일 경우 8비트의 포인터_필드가 추가된다(PSI의 경우).
    ◆ 트랜스포트_프라이어티(Transport_priority) : 같은 PID가 들어 왔을 때, 이 값이 ‘1’로 셋팅된 TS의 우선 순위가 높다.
    ◆ PID : 13비트의 패킷 ID 이다. PID 테이블의 정의는 <표 3>과 같다.
    ◆ 트랜스포트_스크램블링_컨트롤(transport_scrambling_control) : ‘00’의 값은 ‘not scrambled’를 의미하고 그 외의 나머지 값들은 정의되지 않았다(not defined).
    ◆ 어댑션_필드_컨트롤(adaptation_field_control) : 2비트의 값으로 헤더 다음에 나오는 데이터가 어댑션 필드인지 혹은 패이로드인지 구별하는 값이다. 그 구별 값의 정의는 <표 4>와 같다.
    ◆ 컨티뉴티_카운터 : 같은 PID를 갖는 TS 패킷에 사용되며, 0부터 4비트의 최대 표현 값까지 사용된다. 어댑션_필드_컨트롤 값이 ‘00’, ‘01’ 일 경우에는 이 값이 증가되어서는 안 된다.

여기까지 TS 헤더의 신텍스의 구성 요소 하나하나 알아봤다.

 

다음으로 PES 패킷 헤더의 신텍스에 대해 알아보도록 하자.

 Value  description
 0x0000  Program Association Table
 0x0001  Conditional Access Table
 0x0002-0x000F  reserved
 0x00100x1FFE  may be assigned as network_PID, Program_map_PID,
   Elementary_PID, or for other Purposes,
   0x1FFB는 PSIP의 STT, MGT, VCT, RRT가 사용된다.
 0x1FFF  Null packet
표3 | PID 테이블

 

 Value  description
 00  reserved for future use by ISO/IEC
 01  no adaptation_field, payload only
 10  adaptation_field only, no payload
 11  adaptation_field followed by payload
표4 | 어댑션 필드 컨트롤 값(13818-1)
 
 PES packet header fields  values
 packet_start_code_prefix  0x000001
 stream_id  assigned
 PES_packet_length  0x0003
 '10'  '10'
 PES_scrambling_control  '00'
 PES_priority  '0'
 data_alignment_indicator  '0'
 copyright  '0'
 original_or_copy  '0'
 PTS_DTS_flags  '00'
 ESCR_flag  '0'
 ES_rate_flag  '0'
 DSM_trick_mode_flag  '0'
 additional_copy_info_flag  '0'
 PES_CRC_flag  '0'
 PES_extension_flag  '0'
 PES_header_data_length  '0x00'
표6 | PES 패킷 헤더 예(13818-1)

2008/10/03 - [Computer] - 디지털 방송 생성 원리와 구조-1
블로그코리아에 블UP하기

http://www.krlai.com/trackback/276 관련글 쓰기

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

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

Posted at 2008/10/03 00:03 | Posted in Computer

멀티미디어 관련 수업을 들었을때 배운  DTV
그리곤 졸업하고는 잊고 있었으나 최근 업무적으로 다시 접하는 각종 방송기술들을 보면서 다시 한번 짚어보고자 ..^^
전혀 관심없는사람은 이게 뭥미 할진 모르겠으나 나나름대로 앞으로 그냥 일기장처럼 필요할때 써먹고자 다시 정리하는 시간을 가지도록 해야겠다

디지털 방송이 이뤄지면서 고화질의 TV가 탄생되었다. 잡음이 없는, 화면 떨림이 없는, 잔상이 없는 TV. 디지털 방송은 수신이 제대로 되면 나오고, 수신이 미약하면 나오지 않는다. 아날로그 TV처럼 지지직거리면서라도 나오는 것이 아니다. 그것은 디지털이기 때문에 그렇다. 디지털 방송의 또 다른 특징 중의 하나가 EPG (Electronic Program Guide)를 제공한다는 것이다. EPG란 간단하게 말하면 ‘TV 편성표’를 의미한다.

예를 들면, 내가 TV를 보던 중 문득 토요명화에서 어떤 프로가 방영할 예정인지, 몇 시에 시작하는지 궁금하게 되었다고 하자. 이런 상황에서 내가 디지털 TV를 수신 중이었다면, 리모콘을 이용하여 ‘가이드’를 선택한다. 그러면 현재 채널에 대한, 혹은 전체 채널에 대한 TV 편성표의 정보를 볼 수 있다. 방송사에서 많은 양의 정보를 보내줄 경우, 프로그램에 대한 상세한 정보(줄거리, 등장 인물 등)까지 알 수 있다.

디지털 방송은 단순히 TV 편성표 열람으로 끝나지 않는다. 디지털 방송으로 전송되는 최소의 부가 정보인 PSIP(Program and System Information Protocol)는 현재 시간에 대한 정보를 알 수 있고, 15세 관람 불가와 같은 시청 제약 등을 사용할 수 있으며, EPG 정보를 사용할 수 있다.

다음으로 TS에서 PSIP 정보를 추출해 내는 방법과 PSIP의 스펙에 대해 자세히 알아보도록 하자.


[ TS 분해 과정 ]
다음의 <그림>과 같이 DTV 튜너를 통해 채널의 싱크(Sync)를 맞추고, 디모듈레이터(demodulator)를 통해 실제 비트 열의 TS를 얻어온다. 트랜스포트 Demux를 통해 비디오 비트스트림, 오디오 비트스트림 그리고, PSI, PSIP 섹션으로 분리한다. 비디오 비트스트림을 이용해 MPEG-2 디코더를 통해 영상으로 만들고, 오디오 비트스트림을 이용해 오디오 디코더를 통해 음성을 만든다. PSI, PSIP 섹션을 이용해 프로그램 가이드 데이터베이스를 구축해 EPG를 표현한다.


그림 | TS 디코딩 과정 (Sarnoff 인용)

 


[ PSI와 PSIP ]
PSI는 MPEG(13818-1)에 포함된 정보로서 프로그램 사양 정보, 즉 복수의 프로그램 중에서 어느 프로그램을 골라 어느 패킷을 취하여 어떻게 복호해야 하는 지에 대한 정보를 제공한다. PSI는 총 4개의 테이블로 구성되는데, PID가 ‘0’인 패킷에 의해 전송되는 특수 정보로써 각 프로그램마다 그 프로그램의 구성 요소를 기술하는 PMT의 PID 값을 가지고 있는 PAT(Program Association Table)와 프로그램 식별 번호와 프로그램을 구성하는 비디오, 오디오 등의 개별 비트 열이 전송되고 있는 TS 패킷의 PID 리스트와 부속 정보를 기술하고 있는 PMT (Program Map Table), 그리고 재생에 제한을 두기 위해 스크램블(scramble)을 건 비트 열을 허가된 사용자만이 디코드, 재생할 수 있도록 하기 위해 필요한 CAT(Conditional Access Table)와 수신받는 지역의 물리적 네트워크 정보를 가지고 있는 NIT(Network Information Table)로 구성되어 있다.

[ PSIP ]
디지털 TV의 지상파 방송을 위해 필요한 모든 TS를 처리하기 위해 디자인된 테이블의 작은 집합체라고 할 수 있는데, 이것은 각 TS에 운반되는 모든 버추얼 채널들을 위해 시스템과 이벤트 레벨의 정보를 담고 있다.
◆ PSIP의 6개 테이블의 내용
· STT(System Time Table) : 현재의 날짜와 시간에 대한 정보를 표현한다.
· MGT(Master Guide Table) : STT를 제외한 모든 테이블의 PID 값과 버전 값을 가지고 있다. EIT, ETT의 PID 값을 찾을 수 있게 하며, 버전 업을 체크함으로써 다른 테이블들이 각각의 버전 업 체크를 하지 않고, MGT만을 체크해 시스템의 부하를 덜어준다.
· VCT(Virtual Channel Table) : 가상 채널에 대한 정보를 가지고 있다(채널명, 채널 PTC 번호, 스트림 컴포넌트와 타입)
· RRT(Rating Region Table) : 컨텐츠에 대한 등급을 가지고 있다. 현재 설정과 RRT의 설정을 비교해 컨텐츠가 재생되지 않게 할 수 있다. 예를 들자면, DTV는 15세까지만 시청할 수 있도록 셋팅되어 있고 RRT 정보가 16세로 정의되어 들어온다면 이 DTV는 영상과 음성이 나오지 않을 것이다.
· EIT(Event Information Table) : VCT에 있는 모든 채널에 대한 최소 3시간 동안의 프로그램 내용을 제공한다. EPG에 사용한다.
· ETT(Extended Text Table) : EIT에서는 제목만을 표현하지만 이 ETT를 이용해 프로그램의 줄거리, 배경 등의 상세한 정보 전달에 사용된다.
저작자 표시 비영리
블로그코리아에 블UP하기

http://www.krlai.com/trackback/275 관련글 쓰기

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

KTX에서 무선인터넷 사용해보기KTX에서 무선인터넷 사용해보기

Posted at 2008/09/15 18:18 | Posted in Computer

이번 추석연휴는 유난히 짧네요.
몇달전에 예매 해놓은 기차를 타고 다시 서울로 슝슝~

창원->밀양 까진 무궁화호 타고 환승
밀양->서울까진 KTX...

무궁화호 탈땐 책좀 읽다가 KTX로 환승한 후에는 컴퓨터를 꺼내서 인터넷 접속 ~~
KTX에서 무선인터넷 된다는 정보를 접해보곤 한번 써봐야지 싶어서 ㅋㅋ

무선인터넷을 잡아보니..몇개의 AP가 검색됩니다^^

사용자 삽입 이미지

아이디와 패스워드 입력해야하네요^^

검색된 AP중에 제가 탄 열차는 12호차~!!
사용자 삽입 이미지

객차간 무선라우터 설치 현황 및 객차별 수신률

12호차를 탄 전 AP4에 접속하였습니다~
열차 어디에 무선 인터넷 AP가 있는지 내릴때 두리번 해봤지만 못찾겠던걸요..ㅋㅋ

업로드/다운로드 속도는 꽝인듯 하지만
단순하게 웹서핑하기에는 무리없이 사용 가능하더군요.

그리고 결재방법은 여러가지가 있었는데 카드결재/휴대폰 소액결재/ 직접 카드구입
저는 지나가는 직원에게 카드를 구입했습니다.

금액은 30분에 1000원 / 1시간 2000원  하지만 아직까진 행사할인이 가능하여
1000원에 로그인 한 당일 24시까지 무제한 사용이 가능하죠~!!

사용자 삽입 이미지

기껏해야 기차 3시간도 안타는데..피씨방 요금보단 저렴하니 사용할 만하네요^^

지루하지 않게 무사히 서울 도착하여 밀린 집안 정리 및 출근을 위한 준비 샤샤샥~
블로그코리아에 블UP하기

http://www.krlai.com/trackback/264 관련글 쓰기

  1. KTX 인터넷, 잘 되는 자리는 따로 있다? // 칫솔_초이의 IT 휴게실 2008/10/15 11:33 [Delete]
  1. 기차타본지가 언제인지..ㅠㅠ
  2. 님하 이거 좋네여 ㅋㅋ
  3. 난 활용해보고 파도
    기차탈일이 없어섬 ㅠ
  4. 오.. 한번 이용해 봐야 겠어요^^..

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

중국어 어떻게 빨리 입력할까? (IME에서 설정바꾸기)중국어 어떻게 빨리 입력할까? (IME에서 설정바꾸기)

Posted at 2008/06/11 11:39 | Posted in Computer
중국어를 사용하고 실제 컴퓨터로 입력 하기위해 여러가지 입력법들이 사용되고 있습니다.

입력법( 輸入法)이라고 하여 다양한 방법들이 있습니다.

검색을 통해보니 기존에 많은 분들이 중국어 입력법에 대해 소개해주셨네요^.^

그중에서도 가장 흔히 사용하는 윈도우 상에서 중국어 입력하는 방법을 간단히 소개해볼까 합니다.






 1. 시작 - 설정-제어판 클릭!
사용자 삽입 이미지
2. 언어탭을 누르시고 자세히 버튼을 클릭
사용자 삽입 이미지
3. 추가버튼을 아래 그림과 같이 클릭
사용자 삽입 이미지
4. 입력 언어창에 중국어 입력 언어 추가
사용자 삽입 이미지
5. 속성을 클릭하고 sentence -> word로 변환하고, Fuzzy input 설정하기
사용자 삽입 이미지
사용자 삽입 이미지
6. charset 설정시 간체자 번체자 설정 변경 사용 가능
   简,繁 으로 설정 변환 가능

사용자 삽입 이미지
7.아래와 같이 추가로 간/번체 변경가능한 아이콘이 생성됩니다.
사용자 삽입 이미지
그리고 실제로 중국어 입력시에는 한문장을 그래로 친 다음 스페이스 바로 따닥따닥
눌려주면 일상적인 문장을 사용할 때에는 편리합니다.
다만, 고문이나 좀 전문적인 용어를 사용할 때에는 연관단어는 바로바로 뜨진 않네용^^

실제 용례
사용자 삽입 이미지

1번

사용자 삽입 이미지

2번

사용자 삽입 이미지

3번


참고관련글
Sixx님          중국어 입력기 Google PinYin 
RaonLife 님   IME를 이용한 중국어 간체자 입력법
바로바로님    구글 새로운 중국어 입력법 공개
                 중국어 타자치는 방법
블로그코리아에 블UP하기

http://www.krlai.com/trackback/221 관련글 쓰기

  1. 굿 ㅋㅋ 하지만 난 맥을 쓰니깐 패~~쓰 ㅋㅋ
    좋은 정보 감사해용~ ㅋㅋ
  2. 오~
    지난번에 알려주신 그 방법이군요~
    유용하고 좋습니다~~
    아자아자~
  3. 저는 '搜狗输入法'로 굉장히 편하게 쓰고있어요.
    왠만하면 그냥 병음 입력후 엔터만 치면 되서
    너무 편한거같아요ㅋㅋ
  4. 전 대만친구가 알려준 自然輸入8 쓰고있는데요. ime 보다 약간 복잡하지만, 글자수는 더 많은것 같구요. 제가 사용법을 잘 몰라서 환경설정을 잘못해서 그런지 대만친구가 쓰는방법과는 약간 다르더군요. 병음과 성자(숫자키)입력후 간체자 선택하고 엔터하면 번체자가 입력되는데요. 오류가 심해서 몇자 입력후 바로 저장해야 합니다. 관련링크 올리니 관심있는분들은 사용해보세요

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

Tistory 베타테스터 신청해요~Tistory 베타테스터 신청해요~

Posted at 2008/06/06 12:08 | Posted in Computer

사용자 삽입 이미지

어제 티스토리 공지사항에서티스토리 2008 베타테스터를 모집 한다는 글을 보고
현충일인 오늘 신청해볼까하고 스샥스샥


<베타테스터 신청>


1) 자격조건------> 어설프게 자격조건은 갖추었네요~

  • 티스토리에 가입한지 3개월 이상인 블로그
  • 본인이 운영하는 블로그에 작성한 글이 50개이상인 블로그 (펌글 및 간단한 링크 모음은 제외합니다.)
    사용자 삽입 이미지

2) 글 작성시 반드시 필요한 내용

  • 본인이 사용하는 사용 환경 (OS 및 인터넷 브라우저)
  • 티스토리를 사용하면서 가장 좋았던 기능
  • 티스토리를 사용하면서 가장 불편했던 기능
  • 베타테스터가 되어야 하는 이유
-사용환경
Computer : Intel(R) Core(TM)2 CPU 6300, 2560MB RAM,
OS : Microsoft Windows XP Professional (5.1 빌드 2600),
브라우저 : IE 6.0 , Firefox 3.0 RC2

-티스토리를 사용하면서 가장 좋았던 기능

1. 용량의 무제한
   내가 테터툴즈를 사용하다가 티스토리에 이사? 오게 된 이유 중 가장 큰 것은 바로 호스팅 문제였다.
   그리 유명하지도 않고, 찾아주지도 않지만 혼자 쓰는 잡담 일기장으로 이용함에도 불구하고 어떨땐
   웹서버의 트랙픽 초과로 페이지 다운되는 경우가 종종 있었는데,
   티스토리로 이사오고 나선, 이문제는 말끔하게 해결되어서 참 좋다.

2. 다양한 플러그 인 적용
   대표적인 포털업체 제공 블로그는 블로그를 꾸미거나, 사용하는데 제약 요소가 많다.
   하지만 티스토리에는 다양한 서비스를 제공하고 있어서 어떤 배너, 위젯, 플래시 등 여러가지
   기능들을 제약없이 사용할 수 있어서 무척 좋다.
   하지만, 플러그 인에서도 소소한 버그들은 있는 것 같다. 차츰 더 나은 서비스가 제공될 것으로
   생각한다.


- 티스토리를 사용하면서 가장 불편했던 기능

 1. 글상자 웹에디터 기능
    글을 작성할때 워드프로세서에서 글을 복사해서 붙이거나, 혹은 직접 글을 작성할 때
    내가 원하는 스타일대로 에디터가 작동하지 않는 경우가 종종있다.
    굵게 표시할려고해도 작동 되지 않은경우.
    박스처리 할때도 글을 정리해서 쓰기 어려운 점 등등
    가장 개선 되어야 할 부분이 에디터 부분이 아닌가 싶다.

 2. 테터데스크 사진 파일 사이즈 불균형
    플러그 인 기능중 테터데스크 기능이 있다. 여기서 썸네일 같은 대표사진과 간단한 글 소개를 하는
    기능에서 각 포스트 사진 사이즈가 일정하지 않기 때문에 사진이 삐뚤삐뚤해져서 사진을 일정하게
    정열하기 위해서는 포스트 내에 따로 사진 크기를 테터데스크 용으로 맞춰서 올린 후, 다시 편집해야
    하는 번거로움이 있다.
    한때는 테터데스크 기능을 사용하다가 그 번거로움 때문인지 지금은 사용하질 않고 있다.

3. 비밀댓글시 답변 글은 공개
    간혹 비밀로 댓글경우가 있으나, 주인장이 답변을 달면 그 답변은 오픈으로 공개된다.
    비밀로 답변을 남길 수 있게 공개/비밀 의 선택 기능이 있으면 좋겠다.


-베타테스터가 되어야 하는 이유

  최근 촛불문화제를 계기로 다시 한번 블로거가 1인 매체의 힘을 보여주고, 사회적으로 이슈화가 되고
  있다. 점차 시간이 지날수록 블로그에 관심을 가지는 사람이 많아지고, 실제 유저들도 증가 할 것이라
  고 본다.  이런 시점에서 티스토리가 새로운 베타테스트를 한다고 하니 참으로 고무적인 소식이다.
  내가 꼭 베타테스터가 되어야 한다라고 강력하게 주장하긴 우습긴 하다.
  개인적으로 최근 내 블로그에는 글을 자주 올리진 못하지만...
  매일 아침 티스토리를 열어보고 글쓰기 사용하다보니, 티스토리의 다양한 기능들을 항상 쓰기때문에
  정식 오픈하기전에 미리 사용해보고 좋은 점과 개선해야 할 여러 문제 및 버그들을 찾아 낸다면 지금  
  이벤트를 하고 있는 가장 중요한 부분이 아닌가 싶다.
  블로그 툴 중에 포털을 제외하곤 가장 많이 사용하는 티스토리 사용자 중인 한사람으로서, 이런 좋은
  기회에 작은 보탬이라도 되고 싶다.




 

블로그코리아에 블UP하기

http://www.krlai.com/trackback/214 관련글 쓰기

  1. 신청하고 싶지만...
    아무래도 당분간은 힘들것 같습니다~
    아쉽네요~

Name __

Password __

Link (Your Website)

Comment

SECRET | 비밀글로 남기기

1 2 3 4 5 ... 6