數(shù)字機頂盒字幕解碼顯示系統(tǒng)設(shè)計
摘要:本文通過對DVB 標準中的ETS 300 743 規(guī)范的字幕數(shù)據(jù)格式進行研究和分析,結(jié)合機頂盒平臺的解復(fù)用濾波、圖層處理和用戶接口模塊,給出一種能夠正確、完整、及時的字幕顯示實現(xiàn)方案。
1 引言
隨著數(shù)字電視的蓬勃發(fā)展,數(shù)字電視已逐漸進入千家萬戶,除了傳統(tǒng)的電視節(jié)目外,通過利用先進的數(shù)字電視技術(shù)為廣大用戶提供更多的信息服務(wù),是廣播電視事業(yè)發(fā)展的必然趨勢。字幕(subTItle)作為一種簡便而直觀的信息提供途徑,其重要性主要體現(xiàn)在兩個方面。一是字幕可以為聽力有障礙的人提供另一個“語音”信息途徑;二是字幕功能可以通過簡單的后期制作(如多語言顯示),配合電視節(jié)目的全球化推廣提供便捷的平臺。DVB 作為全球應(yīng)用最廣泛的數(shù)字電視傳輸標準,也為多種語言的字幕提供了相應(yīng)的規(guī)范,從而使字幕成為不同國家和地區(qū)電視節(jié)目交流的良好載體。
2 DVB 數(shù)字電視字幕規(guī)范
2.1 字幕控制信息規(guī)范
控制信息的規(guī)范主要包括有效數(shù)據(jù)的加載和提取索引信息的存放兩個方面。DVB 中規(guī)定,字幕信息要以節(jié)目的私有數(shù)據(jù)包形式復(fù)用到節(jié)目的基本流中,與音視頻數(shù)據(jù)加載形式類似。提取索引信息則是利用DVB 中的描述符(descriptor)語法插入到節(jié)目映射表(PMT)的私有數(shù)據(jù)段中。
流類型為0&TImes;06 的私有數(shù)據(jù)段,承載本節(jié)目私有數(shù)據(jù)提取的相關(guān)信息:私有數(shù)據(jù)包的PID 及其描述符。字幕描述符的標簽值(descriptor_tag)為0&TImes;59,語法如下:
分析字幕描述子可得出該字幕的語言代碼(ISO639_language_code)、字幕類型、合成頁及可選的輔助頁。這些信息在字幕數(shù)據(jù)的提取中將作為數(shù)據(jù)提取的索引信息。
2.2 字幕數(shù)據(jù)編碼規(guī)范
字幕顯示在終端是以頁的形式顯示出來,每一頁又分成多個區(qū)域,每一個區(qū)域里又關(guān)聯(lián)著多個圖形對象和區(qū)域的顏色。因此,字幕數(shù)據(jù)編碼是根據(jù)這些需求來定義的。字幕數(shù)據(jù)承載在PES 包的負載中,結(jié)構(gòu)如圖1 所示。
圖1 字幕數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)
分析字幕的數(shù)據(jù)結(jié)構(gòu)可知,前兩個字節(jié)是字幕數(shù)據(jù)的確定信息,包括一個數(shù)據(jù)定義字節(jié)(該字段定義該數(shù)據(jù)流為DVB 字幕,其值為0&TImes;20)和一個字節(jié)的字幕流識別id(其值為0×00);最后一個字節(jié)為字幕數(shù)據(jù)結(jié)束標志(其值為0×ff)。中間填充的數(shù)據(jù)則是字幕段數(shù)據(jù)。在字幕段數(shù)據(jù)中前6 個字節(jié)為字幕段的頭信息,包括1 個同步字節(jié)(其值為0×0f)、1 個類型字節(jié)(用來確定data_field()里攜帶的是哪種類型的數(shù)據(jù)分段)、2 個字節(jié)的頁ID (用來唯一標志一個字幕段)以及2 個字節(jié)的段長度標識(標識其后面攜帶負載的大?。?/p>
字幕段類型主要有以下四種:
頁分段(page composition)。通過頁id(page_id)定義了該頁顯示終止時間、頁的狀態(tài)、該頁中區(qū)域數(shù)、各區(qū)域號、各區(qū)域的水平及垂直位置。
區(qū)域分段(region composition)。用于定義該區(qū)域的寬高、水平垂直位置、所使用的CLUT 表的CLUT_id值、對象的id、區(qū)域背景色以及像素深度等信息。
CLUT 分段(CLUT definition)。用于定義顏色,以便把傳輸?shù)奶擃伾D(zhuǎn)換成實際色板中的顏色。
對象數(shù)據(jù)分段(object data)。用于定義對象的編碼方法和編碼數(shù)據(jù)。編碼方法包括像素編碼和字符編碼。每一個對象可以看作是一個可顯示的圖像單元。
每一頁數(shù)據(jù)的完整顯示都至少需要這四個數(shù)據(jù)分段,所以在解析字幕流時,需要利用各種結(jié)構(gòu)體及鏈表對這幾個數(shù)據(jù)段數(shù)據(jù)進行解析并存儲。
3 機頂盒字幕解碼顯示系統(tǒng)設(shè)計
在STB 上實現(xiàn)字幕接收和顯示主要包括四大模塊:數(shù)據(jù)提取模塊、數(shù)據(jù)解碼模塊、圖層顯示模塊和用戶控制模塊。各模塊關(guān)系如圖2 所示。
圖中,用戶控制模塊用于響應(yīng)用戶按鍵,并發(fā)送消息控制其它各模塊;數(shù)據(jù)提取模塊根據(jù)接收控制模塊發(fā)來的濾波啟動、停止或提取字幕數(shù)據(jù)等控制消息,并完成數(shù)據(jù)的提取工作;數(shù)據(jù)解碼模塊負責對數(shù)據(jù)提取模塊送來的字幕原始數(shù)據(jù)進行解碼,并將解碼后的數(shù)據(jù)送到指定的緩沖區(qū)內(nèi)供圖層顯示模塊調(diào)用;圖層顯示模塊用于實現(xiàn)字幕界面的各種OSD 顯示操作。
圖2 字幕系統(tǒng)模塊關(guān)系圖。