• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 模擬技術 > 設計應用 > 數字機頂盒字幕解碼顯示系統設計方案

    數字機頂盒字幕解碼顯示系統設計方案

    作者: 時間:2013-01-11 來源:網絡 收藏

    摘要:本文通過對DVB 標準中的ETS 300 743 規范的數據格式進行研究和分析,結合機頂盒平臺的解復用濾波、圖層處理和用戶接口模塊,給出一種能夠正確、完整、及時的顯示實現方案。

    本文引用地址:http://www.czjhyjcfj.com/article/185490.htm

      1 引言

      隨著數字電視的蓬勃發展,數字電視已逐漸進入千家萬戶,除了傳統的電視節目外,通過利用先進的數字電視技術為廣大用戶提供更多的信息服務,是廣播電視事業發展的必然趨勢。(subtitle)作為一種簡便而直觀的信息提供途徑,其重要性主要體現在兩個方面。一是字幕可以為聽力有障礙的人提供另一個語音信息途徑;二是字幕功能可以通過簡單的后期制作(如多語言顯示),配合電視節目的全球化推廣提供便捷的平臺。DVB 作為全球應用最廣泛的數字電視傳輸標準,也為多種語言的字幕提供了相應的規范,從而使字幕成為不同國家和地區電視節目交流的良好載體。

      2 DVB 數字電視字幕規范

      2.1 字幕控制信息規范

      控制信息的規范主要包括有效數據的加載和提取索引信息的存放兩個方面。DVB 中規定,字幕信息要以節目的私有數據包形式復用到節目的基本流中,與音視頻數據加載形式類似。提取索引信息則是利用DVB 中的描述符(descriptor)語法插入到節目映射表(PMT)的私有數據段中。

      流類型為0×06 的私有數據段,承載本節目私有數據提取的相關信息:私有數據包的PID 及其描述符。字幕描述符的標簽值(descriptor_tag)為0×59,語法如下:

      

      分析字幕描述子可得出該字幕的語言代碼(ISO639_language_code)、字幕類型、合成頁及可選的輔助頁。這些信息在字幕數據的提取中將作為數據提取的索引信息。

      2.2 字幕數據編碼規范

      字幕顯示在終端是以頁的形式顯示出來,每一頁又分成多個區域,每一個區域里又關聯著多個圖形對象和區域的顏色。因此,字幕數據編碼是根據這些需求來定義的。字幕數據承載在PES 包的負載中,結構如圖1 所示。

    圖1 字幕數據的數據結構

    圖1 字幕數據的數據結構

      分析字幕的數據結構可知,前兩個字節是字幕數據的確定信息,包括一個數據定義字節(該字段定義該數據流為DVB 字幕,其值為0×20)和一個字節的字幕流識別id(其值為0×00);最后一個字節為字幕數據結束標志(其值為0×ff)。中間填充的數據則是字幕段數據。在字幕段數據中前6 個字節為字幕段的頭信息,包括1 個同步字節(其值為0×0f)、1 個類型字節(用來確定data_field()里攜帶的是哪種類型的數據分段)、2 個字節的頁ID (用來唯一標志一個字幕段)以及2 個字節的段長度標識(標識其后面攜帶負載的大小)。

      字幕段類型主要有以下四種:

      頁分段(page composition)。通過頁id(page_id)定義了該頁顯示終止時間、頁的狀態、該頁中區域數、各區域號、各區域的水平及垂直位置。

      區域分段(region composition)。用于定義該區域的寬高、水平垂直位置、所使用的CLUT 表的CLUT_id值、對象的id、區域背景色以及像素深度等信息。

      CLUT 分段(CLUT definition)。用于定義顏色,以便把傳輸的虛顏色轉換成實際色板中的顏色。

      對象數據分段(object data)。用于定義對象的編碼方法和編碼數據。編碼方法包括像素編碼和字符編碼。每一個對象可以看作是一個可顯示的圖像單元。

      每一頁數據的完整顯示都至少需要這四個數據分段,所以在解析字幕流時,需要利用各種結構體及鏈表對這幾個數據段數據進行解析并存儲。

    3 機頂盒字幕顯示系統設計

      在STB 上實現字幕接收和顯示主要包括四大模塊:數據提取模塊、數據模塊、圖層顯示模塊和用戶控制模塊。各模塊關系如圖2 所示。

      圖中,用戶控制模塊用于響應用戶按鍵,并發送消息控制其它各模塊;數據提取模塊根據接收控制模塊發來的濾波啟動、停止或提取字幕數據等控制消息,并完成數據的提取工作;數據模塊負責對數據提取模塊送來的字幕原始數據進行解碼,并將解碼后的數據送到指定的緩沖區內供圖層顯示模塊調用;圖層顯示模塊用于實現字幕界面的各種OSD 顯示操作。

    圖2 字幕系統模塊關系圖。

    圖2 字幕系統模塊關系圖。

      3.1 字幕數據提取模塊

      字幕數據提取模塊包括兩部分:字幕控制信息的提取和字幕數據包的提取。

      用戶控制模塊發送字幕啟動請求時,提取模塊就啟動SI 引擎。首先,啟動本節目的PMT 表濾波工作,獲取PMT 數據并進行分析。若當前節目沒有字幕信息,則發送無字幕消息至用戶模塊;若當前節目帶有字幕信息,則根據PMT 中的私有數據段和字幕描述符,獲取字幕數據對應的PID、字幕的語言代碼、字幕類型、合成頁及可選的輔助頁,并存放到字幕索引信息表中。其次,根據字幕索引信息表啟動字幕有效數據的PES 濾波,提取對應字幕數據包。字幕數據提取總體流程如圖3 所示。

    圖3 字幕數據提取流程

    圖3 字幕數據提取流程

      當獲得字幕的PID 及其它信息后,則按字幕語言的不同,把當前節目所攜帶的所有語言的字幕列表,供用戶選擇。當用戶選擇完一個條目后,可利用該條目相應的控制信息獲取字幕PES 包,把字幕PID,合成頁id 和輔助頁id 注冊進濾波通道,并啟動濾波器。

      此時,若濾波器接收到相匹配的數據,則會產生相應的中斷,通知上層進程讀取數據;當獲取一個完整的PES 包后,就傳送給字幕解碼器進行解碼顯示。


    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 舒城县| 连江县| 威远县| 竹北市| 汪清县| 大安市| 乐东| 高尔夫| 石泉县| 邹平县| 吴桥县| 隆回县| 陇川县| 巢湖市| 东兴市| 长丰县| 周至县| 昂仁县| 九龙城区| 陈巴尔虎旗| 彰化市| 门头沟区| 遵义县| 深圳市| 桑植县| 营口市| 中西区| 石河子市| 紫阳县| 扎兰屯市| 呼和浩特市| 天峻县| 莱州市| 通江县| 西城区| 成安县| 通化市| 宁武县| 阿鲁科尔沁旗| 钟祥市| 平舆县|