양진영 TTA 데이터방송시험실선임연구원이은향 TTA 데이터방송시험실실장 1 머리말 IPTV 자막방송표준은 IPTV 에서자막방송서비스를제공하기위해자막 (closed caption) 데이터를전송하고수신하는데요구되는사항을정의하고있으며, 북미에서자막방송규격으로사용되는 CEA-708-D[1] 를기준으로하고있다 이표준은, 국내 IPTV 규격이기본적으로사용하는비디오압축방식인 H264[2] 에자막데이터를전송하는방식으로 A/72[3] 를따르고있고, 한국 어자막을송수신하기위해필요한코드세트와전자 / 반자처리등에대해기술하고있다 IPTV 자막방송표준은 2009 년 9월 23일에 TTA 표준 ( 표준번호 : TTAK KO-080022) 으로발행되었다 2장에서는자막데이터를전송하기위한프로토콜에대해, 3장에서는자막을수신하기위한구현요구사항및디코더구조에대해소개하고자한다 2 IPTV 자막방송데이터의전송 Transport Layer Packet Layer Service Layer Coding Layer Interpretation Layer IPTV 전송신호 자막데이터패킷 자막서비스블록 자막서비스데이터 자막데이터명령어 [ 그림 1] IPTV 자막전송프로토콜 TTA Journal No126 63
21 프로토콜 IPTV 자막방송을위한자막데이터는 [ 그림 1] 과같이전송계층 (transport layer), 패킷계층 (packet layer), 서비스계층 (service layer), 코딩계층 (coding layer), 해석계층 (interpretation layer) 등 5 개계층구조에따라전송된다 211 해석계층해석계층은 [ 그림 2] 와같이자막데이터의 TV 화면상에서의배치정보가어떤형식으로인코딩되고디코딩되어야하는지를정의한다 즉, TV 화면에서자막윈도의크기및좌표등의배치정보, 하나의자막윈도 내에나타낼수있는행과열의수를정의한다 또한자막문자가표시될때, 정렬방법, 프린트방향, 스크롤방향, 컬러, 사이즈등을정의한다 212 코딩계층코딩계층은자막문자와기호, 명령어에코드값들을할당한다 영문자막데이터는 ANSI X341 과 ISO 2022 표준에따라, CL, GL, CR, GR의 4개코드그룹을사용하여코딩하고, 한글자막데이터는 < 표 1> 과같이 KS X ISO/IEC 1046 한글코드 ( 유니코드 ) 와 KS X 1001:2004 완성형한글코드를사용한다 DTV 실제화면영역 Safe-image 영역 자막데이터윈도 Safe-title 영역 (0, 0) 0 번윈도 4 번윈도 (209, 0) 3 번윈도 2 번윈도 4 번윈도 5 번윈도 1번윈도 5번윈도 (0, 74) 1번윈도 (209, 74) [ 그림 2] 16:9 화면에서의자막윈도배치 구분 영문 ( 로마문자 ) < 표 1> IPTV 에적용되는한글자막기본문자표 KS X ISO/IEC 10646( 유니코드 ) KS X 1001:2004 완성형코드블록이름범위 (16진수) 블록이름범위 (16진수) 라틴 (Basic Latin): 95 자라틴보충 -1(Latin-1 Supplement): 96 자 0020~007E 00A0~00FF 1 바이트로마문자 (7bit): 95 자 20~7E 한글한글 (Hangul): 11,172 자 AC00~D7A3 2 바이트완성형한글 : 2,350 자 B0A1~C8FE 특수문자 ( 약물 ) KS X 1001:2004 완성형코드의 2 바이트완성형특수문자와동일문자집합 : 986 자 2 바이트완성형특수문자 : 986 자 A1A1~ACFE 한자 7,744 자 4,888 자 64 November December 2009
IT Standard & Certification 213 서비스계층 자막은서비스라고불리는여러개의논리적인가 상채널들로구성할수있다 6개의표준서비스와최대 57개의확장서비스를추가할수있어서, 총 63개의 (standard service) 서비스를제공할수있다 6개의표준서비스중에서, 서비스 #1은프로그램오디오의음성을있는그대로텍스트로옮긴캡션을담는 primary caption service 로할당되고, 서비스 #2는 primary caption service 를번역한캡션을담는 secondary language service 로할당된다 각서비스의서비스계층에는, 자막데이터채널서비스개수, 서비스유형, 서비스속성등을헤더에정의한다 [ 그림 3] 과 [ 그림 4] 가자막서비스블록의구조와구문구조를나타내고있다 214 패킷계층서비스계층에서부호화된각캡션서비스데이터는패킷형태로구성된다 [ 그림 5] 와 [ 그림 6] 이캡션채널패킷의구조와구문을나타내고있다 b7 b6 b5 b4 b3 b2 b1 b0 Seq No Packet Size(n/2) Packet Header Caption Channel Data Byte 1 Caption Channel Data Byte 2 Caption Channel Data Byte n-1 Packet Data [ 그림 5] 캡션채널패킷의구조 caption_channel_packet /* packet header */ sequence_number: 2bits packet_size: 6bits Service Block Header(1 or 2 bytes) Service Block Data Byet 1 Service Block Data Byte m(m<= 31) [ 그림 3] 자막서비스블록 /*packet data sequence*/ /*if(packet_size_code==0)*/ /*packet_data_size=127*/ /*else*/ /*packet_data_size=(packet_size_code*2)-1*/ for(i=0, i<packet_data_size; i++) Packet_data[i] : 8bits; [ 그림 6] 캡션채널패킷의구문 service_block /* service block header */ service_number : 3 bits block_size : 5 bits /* >=0 && <3 */ /* extended service block header extension */ If(service_number == b 111 && block_size!=0) null_fill : 2 bits extended_service_number : 6 bits / * block data sequence */ If (service_number!=0) for(i=0; i<block_size; i++) Block_data[i] : 8 bits [ 그림 4] 자막서비스블록의구문구조 215 전송계층패킷계층의데이터는 H264 의 video elementary stream 에실어서전송된다 A/72 의 64 절에따라, SEI (Supplemental Enhancement Information) RBSP (Raw Byte Sequence Payload) 의 payload 에실어 < 표 2> SEI RBSP payload 의구성 구문 비트수 포맷 user_data_registered_itu_t_t35 () itu_t_t35_country_code 8 bslbf itu_t_t35_provider_code 16 bslbf user_identifier 32 bslbf user_structure () TTA Journal No126 65
< 표 3> user_structure() 의구성 구문 비트수 포맷 user_structure() process_em_data_flag 1 bslbf process_cc_data_flag 1 bslbf additional_data_flag 1 bslbf cc_count 5 uimsbf em_data 8 bslbf for (i=0;i<cc_count;i++) marker_bits 5 '1111 1 cc_valid 1 bslbf cc_type 2 bslbf cc_data_1 8 bslbf cc_data_2 8 bslbf marker_bits 8 '1111 1111 If(additional_data_flag) while (nextbits()!= 0000 0000 0000 0000 0000 0001 ) additional_user_data 8 < 표 4> 자막서비스서술자의구문구조 구문 비트수 형식 caption_service_descriptor () descriptor_tag 8 0x86 descriptor_length 8 uimsbf reserved 3 111 number_of_services 5 uimsbf for (i=0;i<number_of_services;i++) language 8*3 uimsbf cc_type 1 bslbf reserved 1 1 if (cc_type==line21) reserved 5 11111 line21_field 1 bslbf else caption_service_number 6 uimsbf easy_reader 1 bslbf wide_aspect_ratio 1 bslbf korean_code reserved 1 13 bslbf 1111111111111 서전송한다 < 표 2> 가 SEI RBSP payload 의구문을보여주고있으며, 그중에서 user_structure() 의구문구조는 < 표 3> 과같다 22 시그널링자막서비스가전송될경우, 자막서비스가전송됨을알리는자막서비스서술자 (Caption Service Descriptor) 를 MPEG-2 TS (Transport Stream) 의 PMT (Program Map Table) 에실어서전송한다 자막서비스서술자에는자막서비스의개수, 각자막서비스에대한언어코드가실리며, 또한자막언어가한글일경우유니코드인지완성형한글코드인지를나타내는정보가실린다 < 표 4> 가자막서비스서술자의구문구조이다 3 IPTV 자막방송의수신 31 디코더필수구현사항 IPTV 자막방송을위해디코더가제공해야하는최소요구사항은다음과같다 대역폭 : 어느 1초구간을평균하더라도하나의서비스가전체캡션대역폭 9,600bps 의 25% 를초과할수없음 따라서, 디코더는서비스당최대 2,400bps 의캡션데이터를처리할수있는성능과버퍼를구비해야함 자막서비스개수 : 6개의표준서비스는반드시지원할수있어야함 66 November December 2009
IT Standard & Certification 자막윈도해상도 : 가로는 16:9 인경우전자는 26자이고반자는 52자이며, 4:3 인경우전자는 20자이고반자는 40자를기준으로정함 세로는 12줄을기준으로정함 자막윈도개수 : 한번에적어도 4개의 caption window 를디스플레이할수있어야함 디코더는최소한 8개 row 의캡션을지원할수있도록저장소를유지하고있어야함 (4개 row 의캡션윈도를디스플레이하고디스플레이되지는않지만다음 4개 row 의캡션을버퍼링하고있는윈도를지원하는최악의경우를지원하기위함 ) 자막윈도행과열고정 : 디코더는윈도의행과열의개수가고정되어있다고가정해야함 따라서사용자가캐릭터크기를크거나작게조정하더라도워드래핑 (word wrapping) 이나언래핑 (un-wrapping) 이일어나지않음 정렬 : 좌측정렬, 우측정렬, 중앙정렬은반드시지원해야함 프린트방향 : 캐릭터를화면에쓸때의방향은 LEFT_TO_RIGHT 를반드시지원해야함 스크롤방향 : 캐리지리턴 (carriage return) 을만났을때, 텍스트를스크롤하는방향은 BOTTOM_TO_TOP 을반드시지원해야함 디스플레이효과 : 보이지않는윈도와보이는윈도를사용하여캡션이즉시표시 (pop-on) 되는 SNAP display effect 를기본으로제공해야함 윈도컬러와경계 (border) : 경계가없는불투명검정색 (solid black) 바탕의윈도와경계가없는투명바탕의윈도는반드시지원해야함 predefinded window / predefined pen style: Predefined window style 1과 predefined window style 2는반드시지원해야함 그외의수신기가지원하지않는 predefined window style 은 predefined window style 2 로간주함 또한 predefined pen attribute style 1을지원해야함 펜크기 : small, standard, large 사이즈를지원해야함 펜스타일 : normal, italic, underline 을지원해야함 폰트스타일 : Korea itv SansSerifD 를지원해야함 foreground color/opacity: 불투명및플래시 (flash) 를반드시지원해야하며, 기본 8가지컬러 (white, black, red, green, blue, yellow, magenta, cyan) 를지원해야함 Background color/opacity: 투명, 불투명, 반투명은반드시지원해야하며, 기본 8가지컬러를지원함 컬러표현 : 기본 8가지컬러 (black, white, red, green, blue, yellow, magenta, cyan: 각각에대한 RGB 값정의 ) 는반드시지원해야함 규격에정의되지않은 RGB 값의컬러를수신할경우, CEA-708-D 에정의된알고리즘에따라컬러를매핑함 자막화면자동 clear 기능 : CEA-708-D 혹은 IPTV 자막방송표준을따르는자막데이터를받아화면에자막정보를표시한후 16초이상다음자막데이터가전송되지않을경우수신기에서는표시된자막화면을자동으로 Clear 함 32 디코더구조 IPTV 수신기의자막데이터수신부의블록도는 [ 그림 7] 과같이구성할수있다 MPEG-2 TS 스트림은 MPEG 역다중화기에의해비디오 ES가필터링되어비디오구문해석기로전달되면, 자막데이터가실린사용자데이터는 DTVCC 디코더로전달되고, 나머지 H264 압축비디오데이터는 H264 복호기에서디코딩된다 DTVCC 디코더에서복호화된자막데이터는, 사용자정의그래픽에서사용자가자막을 on 시키면, 비디오와함께비디오합성기에서 overlay 되어출력된다 한편, 자막서비스서술자는 PMT 버퍼에서사용자정 TTA Journal No126 67
출력비디오 서비스선택 DTVCC 디코더 자막 비디오합성기 GUI 화면 사용자데이터 프로그램비디오 MPEG-2 전송스트림 MPEG 역다중화기 비디오 PMT 비디오구문해석기 H264 비디오 H264 비디오복호기 사용자정의그래픽 PMT 버퍼 사용자정의프로세서 [ 그림 7] IPTV 수신기의자막데이터수신부 의프로세서로전달되어사용자가선택하는서비스가무엇인지를알려주어 DTVCC 디코더가해당서비스패킷을복호화하게한다 4 맺음말자막은 TV 프로그램을구성하는오디오를시각적으로전달하는데이터로서, 비디오에겹쳐서제공되며사용자의요구에따라선택적으로서비스될수있는기술이다 또한, 하나의 A/V 서비스에는오디오를있는그대로텍스트로옮긴자막, 좀더쉽게이해할수있게표현한자막, 다른여러가지언어로표현한자막등여러종류의자막서비스제공이가능하다 따라서자막 방송은청각장애인의 TV 프로그램이해에도움이될뿐만아니라, 내국인의외국어교육, 다양한언어를사용하는외국인들의한국어프로그램이해, 해외제작영상물의이해등여러분야에적용될수있을것이다 [ 참고문헌 ] [1] CEA-708-D, Digital Television (DTV) Closed Captioning, August 2008 [2] H264, Advanced video coding for generic audiovisual services, March 2009 [3] A/72, Video System Characteristics of AVC in the ATSC Digital Television System, July 2008 [4] CEA-608-E, Line 21 Data Services, April 2008 68 November December 2009