專利名稱:一種機頂盒顯示外掛字幕的方法及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及機頂盒領域,尤其涉及一種機頂盒顯示外掛字幕的方法及系統(tǒng)。
背景技術:
IPTV即交互式網(wǎng)絡電視,是一種利用寬帶有線電視網(wǎng),集互聯(lián)網(wǎng)、多媒體、通訊等多種技術于一體,向家庭用戶提供包括數(shù)字電視在內的多種交互式服務的新技術。用戶在家中可以有兩種方式享受IPTV服務(I)計算機,(2)網(wǎng)絡機頂盒+普通電視機。它能夠很好地適應當今網(wǎng)絡飛速發(fā)展的趨勢,充分有效地利用網(wǎng)絡資源。隨著IPTV產(chǎn)業(yè)的壯大,用戶對IPTV網(wǎng)絡機頂盒的應用要求也越來越高,本地播放功能成了必須有的功能。本地播放一般需要支持顯示外掛字幕,外掛字幕是視頻文件和字幕文件分離,在播放的時候要導入字幕文件,比如播放DVD時就會需要導入字幕。外掛字幕的好處是可以導入自己國家的語言?,F(xiàn)有技術中的機頂盒并沒有顯示外掛字母的能力,因此限制了機頂盒的應用范圍。
發(fā)明內容
本發(fā)明的目的是針對現(xiàn)有技術中的機頂盒不能顯示外掛字幕的技術問題,提供一種機頂盒顯示外掛字幕的方法。本發(fā)明還公開了實現(xiàn)這種方法的系統(tǒng)。本發(fā)明的目的通過下述技術方案來實現(xiàn)
一種機頂盒顯示外掛字幕的方法,其具體包含以下步驟1.讀取及轉化進程根據(jù)當前播放時間讀取字幕文字中相應時間的文字,并將讀取的文字轉化成相應的UNICODE碼,然后調用FreeType庫得到文字的RG`B格式數(shù)據(jù),并把RGB格式數(shù)據(jù)轉化成ARGB格式數(shù)據(jù)并存放到文字顯示區(qū)域,最后通知顯示進程;2.當需要顯示字幕時,顯示進程讀取ARGB格式數(shù)據(jù),拷貝到framebuffer上進行顯示。更進一步地,上述步驟I中的文字顯示區(qū)域為共享內存,步驟I中的讀取及轉化進程將ARGB格式數(shù)據(jù)存放到共享內存中,步驟2中的顯示進程從共享內存中讀取數(shù)據(jù)。更進一步地,上述方法還包括在讀取最后一個文字完成后,把ARGB格式數(shù)據(jù)存放到共享內存中,然后加一段空白數(shù)據(jù)。更進一步地,上述方法還包括當不需要顯示字幕時,清空文字顯示區(qū)域。更進一步地,上述共享內存中的數(shù)據(jù)采用分段的方式進行存儲。更進一步地,上述共享內存的訪問和保護采用指派方式。本發(fā)明還公開了一種實現(xiàn)機頂盒顯示外掛字幕的系統(tǒng),其具體包括讀取模塊、轉化模塊、顯示模塊,所述讀取模塊用于根據(jù)當前播放時間讀取字幕文字中相應時間的文字;所述轉化模塊將讀取的文字轉化成相應的UNICODE碼,然后調用FreeType庫得到文字的RGB格式數(shù)據(jù),并把RGB格式數(shù)據(jù)轉化成ARGB格式數(shù)據(jù)并存放到文字顯示區(qū)域,最后通知顯示進程;所述顯示模塊用于當需要顯示字幕時,讀取ARGB格式數(shù)據(jù),拷貝到framebuffer上進行顯示。
更進一步地,上述文字顯示區(qū)域為共享內存,轉化模塊將ARGB格式數(shù)據(jù)存放到共享內存中,顯示模塊共享內存中讀取數(shù)據(jù)。更進一步地,上述系統(tǒng)還包括空白模塊,所述空白模塊用于在讀取最后一個文字完成后,把ARGB格式數(shù)據(jù)存放到共享內存中,然后加一段空白數(shù)據(jù)。更進一步地,上述系統(tǒng)還包括清除模塊,所述清除模塊用于當不需要顯示字幕時,清空文字顯示區(qū)域。通過采用上述技術方案,本發(fā)明的有益效果使得機頂盒能夠顯示外掛字幕,擴大了機頂盒的應用范圍,方便了用戶的使用。通過多進程共享內存實現(xiàn)數(shù)據(jù)緩存,同時分段存儲相應數(shù)據(jù),減少內存的占用,對共享內存的訪問和保護采用指派方式,利用共享內存實現(xiàn)數(shù)據(jù)緩存,使得大大減少了數(shù)據(jù)的拷貝,提高了系統(tǒng)效率。
圖1為本發(fā)明的一種機頂盒顯示外掛字幕的方法流程圖。
具體實施例方式為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合說明書附圖及具體實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。為了便于描述,做以下說明。UNICODE碼(統(tǒng)一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼,它為每種語言中的每個字符設定了統(tǒng)一并且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。
FreeType庫是一個完全開源的、高質量的且可移植的字體引擎,它提供統(tǒng)一的接口來訪問多種字體格式文件,其支持單色位圖、反走樣位圖的渲染。FreeType庫是高度模塊化的程序庫,F(xiàn)reeType的用戶可以靈活地對它進行裁剪。Framebuffer是指用視頻輸出設備從包含完整的巾貞數(shù)據(jù)的一個緩沖區(qū)中驅動視頻顯示設備。在內存緩沖區(qū)中標注包含了屏幕上每個像素的色彩值,色彩值為ARGB模式。ARGB是一種色彩模式,也就是RGB色彩模式附加上Alpha (透明度)通道,常見于32位位圖的存儲結構。RGB色彩模式是工業(yè)界的一種顏色標準,是通過對紅(R)、綠(G)、藍(B)三個顏色通道的變化以及它們相互之間的疊加來得到各式各樣的顏色,RGB即是代表紅、綠、藍三個通道的顏色。如圖1所示的本發(fā)明的機頂盒顯示外掛字幕的方法流程圖。其具體包含以下步驟1.讀取及轉化進程根據(jù)當前播放時間讀取字幕文字中相應時間的文字,并將讀取的文字轉化成相應的UNICODE碼,然后調用FreeType庫得到文字的RGB格式數(shù)據(jù),并把RGB格式數(shù)據(jù)轉化成ARGB格式數(shù)據(jù)并存放到文字顯示區(qū)域,最后通知顯示進程;2.當需要顯示字幕時,顯示進程讀取ARGB格式數(shù)據(jù),拷貝到framebuffer上進行顯示。通過上述方法,使得機頂盒能夠顯示外掛字幕,擴大了機頂盒的應用范圍,方便了用戶的使用。更進一步地,步驟I中的文字顯示區(qū)域為共享內存,步驟I中的讀取及轉化進程將ARGB格式數(shù)據(jù)存放到共享內存中,步驟2中的顯示進程從共享內存中讀取數(shù)據(jù)。讀取及轉化進程和顯示進程兩個進程共用一個內存,多進程共享內存實現(xiàn)數(shù)據(jù)緩存,減少了內存的占用,減少數(shù)據(jù)拷貝,提高了系統(tǒng)實現(xiàn)的效率?,F(xiàn)有技術中,一般是步驟I的讀取及轉化進程將ARGB格式數(shù)據(jù)存放在進程設定的緩存中,另外一個進程從緩存拷貝數(shù)據(jù)后,步驟2中的顯示進程再次進行拷貝,這樣無疑增加了數(shù)據(jù)拷貝的次數(shù),對于機頂盒這樣CPU處理能力不足的硬件來說是極大的考驗,而采用上述內存共享的技術方案,使得大大減少了數(shù)據(jù)的拷貝,提聞了系統(tǒng)效率。更進一步地,上述方法還包括在讀取最后一個文字完成后,把ARGB格式數(shù)據(jù)存放到共享內存中,然后加一段空白數(shù)據(jù)。使得文字顯示之間有間隔,方便了用戶的讀取。更進一步地,上述方法還包括當不需要顯示字幕時,清空文字顯示區(qū)域。通過上述技術方案,在用戶不需要顯示字幕時,可以直接清空文字顯示區(qū)域,不顯示字幕,使得用戶可以靈活地進行選擇,方便了用戶的使用。比如,在機頂盒對應的遙控器上設置一個對應的按鍵來實現(xiàn),當用戶按下這個按鍵后,顯示進程就不能從共享內存中讀取數(shù)據(jù),使得用戶可以非常靈活地控制是否顯示字幕,極大地方便了用戶的使用。更進一步地,上述共享內存中的數(shù)據(jù)采用分段的方式進行存儲。采用分段的方式存儲相應數(shù)據(jù),減少內存的占用,提聞了系統(tǒng)的效率。更進一步地,上述共享內存的訪問和保護采用指派方式。對共享內存的訪問和保護采用指派方式,減少數(shù)據(jù)拷貝,提高效率。本發(fā)明還公開了實現(xiàn)這種機頂盒顯示外掛字幕方法的系統(tǒng),其具體包括讀取模塊、轉化模塊、顯示模塊,所述讀取模塊用于根據(jù)當前播放時間讀取字幕文字中相應時間的文字;所述轉化模塊將讀取的文字轉化成相應的UNICODE碼,然后調用FreeType庫得到文字的RGB格式數(shù)據(jù),并把RGB格式數(shù)據(jù)轉化成ARGB格式數(shù)據(jù)并存放到文字顯示區(qū)域,最后通知顯示進程;所述顯示模塊用于當需要顯示字幕時,讀取ARGB格式數(shù)據(jù),拷貝到framebuffer上進行顯示。通過上述系統(tǒng),使得機頂盒能夠顯示外掛字幕,擴大了機頂盒的應用范圍,方便了用戶的使用。更進一步地,上述文字顯示區(qū)域為共享內存,轉化模塊將ARGB格式數(shù)據(jù)存放到共享內存中,顯示模塊共享內存中讀取數(shù)據(jù)。轉化模塊和顯示模塊兩個模塊共用一個內存,多個模塊共享內存實現(xiàn)數(shù)據(jù)緩存,減少了內存的占用,減少數(shù)據(jù)拷貝,提高了系統(tǒng)實現(xiàn)的效率。采用上述內存共享的技術方案,使得大大減少了數(shù)據(jù)的拷貝,提高了系統(tǒng)效率。更進一步地,上述系統(tǒng)還包括空白模塊,所述空白模塊用于在讀取最后一個文字完成后,把ARGB格式數(shù)據(jù)存放到共享內存中,然后加一段空白數(shù)據(jù)??瞻啄K使得文字顯示之間有間隔,方便了用戶的讀取。更進一步地,上述系統(tǒng)還包括清除模塊,所述清除模塊用于當不需要顯示字幕時,清空文字顯示區(qū)域。通過上述技術方案,在用戶不需要顯示字幕時,可以直接清空文字顯示區(qū)域,不顯示字幕,使得用戶可以靈活地進行選擇,方便了用戶的使用。比如,在機頂盒對應的遙控器上設置一個對應的按鍵來實現(xiàn),當用戶按下這個按鍵后,顯示進程就不能從共享內存中讀取數(shù)據(jù),使得用戶可以非常靈活地控制是否顯示字幕,極大地方便了用戶的使用。更進一步地,上述共享內存中的數(shù)據(jù)采用分段的方式進行存儲。采用分段的方式存儲相應數(shù)據(jù),減少內存的占用,提聞了系統(tǒng)的效率。
更進一步地,上述共享內存的訪問和保護采用指派方式。對共享內存的訪問和保護采用指派方式,減少數(shù)據(jù)拷貝,提高效率。上述的實施例中所給出的系數(shù)和參數(shù),是提供給本領域的技術人員來實現(xiàn)或使用本發(fā)明的,本發(fā)明并不限定僅取前述公開的數(shù)值,在不脫離本發(fā)明的發(fā)明思想的情況下,本領域的技術人員可以對上述實施例作出種種修改或調整,因而本發(fā)明的保護范圍并不被上述實施例所限,而應該是符合權利要 求書提到的創(chuàng)新性特征的最大范圍。
權利要求
1.一種機頂盒顯示外掛字幕的方法,其具體包含以下步驟1.讀取及轉化進程根據(jù)當前播放時間讀取字幕文字中相應時間的文字,并將讀取的文字轉化成相應的UNICODE碼,然后調用FreeType庫得到文字的RGB格式數(shù)據(jù),并把RGB格式數(shù)據(jù)轉化成ARGB格式數(shù)據(jù)并存放到文字顯示區(qū)域,最后通知顯示進程;2.當需要顯示字幕時,顯示進程讀取ARGB格式數(shù)據(jù),拷貝到framebuffer上進行顯示。
2.如權利要求1所述的機頂盒顯示外掛字幕的方法,其特征在于所述步驟I中的文字顯示區(qū)域為共享內存,步驟I中的讀取及轉化進程將ARGB格式數(shù)據(jù)存放到共享內存中,步驟2中的顯示進程從共享內存中讀取數(shù)據(jù)。
3.如權利要求2所述的機頂盒顯示外掛字幕的方法,其特征在于所述方法還包括在讀取最后一個文字完成后,把ARGB格式數(shù)據(jù)存放到共享內存中,然后加一段空白數(shù)據(jù)。
4.如權利要求3所述的機頂盒顯示外掛字幕的方法,其特征在于所述方法還包括當不需要顯示字幕時,清空文字顯示區(qū)域。
5.如權利要求4所述的機頂盒顯示外掛字幕的方法,其特征在于所述共享內存中的數(shù)據(jù)采用分段的方式進行存儲。
6.如權利要求5所述的機頂盒顯示外掛字幕的方法,其特征在于所述共享內存的訪問和保護采用指派方式。
7.一種實現(xiàn)機頂盒顯示外掛字幕的系統(tǒng),其特征在于具體包括讀取模塊、轉化模塊、顯示模塊,所述讀取模塊用于根據(jù)當前播放時間讀取字幕文字中相應時間的文字;所述轉化模塊將讀取的文字轉化成相應的UNICODE碼,然后調用FreeType庫得到文字的RGB格式數(shù)據(jù),并把RGB格式數(shù)據(jù)轉化成ARGB格式數(shù)據(jù)并存放到文字顯示區(qū)域,最后通知顯示進程;所述顯示模塊用于當需要顯示字幕時,讀取ARGB格式數(shù)據(jù),拷貝到framebuffer上進行顯示。
8.如權利要求7所述的實現(xiàn)機頂盒顯示外掛字幕的系統(tǒng),其特征在于所述文字顯示區(qū)域為共享內存,轉化模塊將ARGB格式數(shù)據(jù)存放到共享內存中,顯示模塊共享內存中讀取數(shù)據(jù)。
9.如權利要求8所述的實現(xiàn)機頂盒顯示外掛字幕的系統(tǒng),其特征在于所述系統(tǒng)還包括空白模塊,所述空白模塊用于在讀取最后一個文字完成后,把ARGB格式數(shù)據(jù)存放到共享內存中,然后加一段空白數(shù)據(jù)。
10.如權利要求9所述的實現(xiàn)機頂盒顯示外掛字幕的系統(tǒng),其特征在于所述系統(tǒng)還包括清除模塊,所述清除模塊用于當不需要顯示字幕時,清空文字顯示區(qū)域。
全文摘要
本發(fā)明涉及機頂盒領域,本發(fā)明公開了一種實現(xiàn)機頂盒顯示外掛字幕的方法及系統(tǒng),其具體包括讀取模塊、轉化模塊、顯示模塊,所述讀取模塊用于根據(jù)當前播放時間讀取字幕文字中相應時間的文字;所述轉化模塊將讀取的文字轉化成相應的UNICODE碼,然后調用FreeType庫得到文字的RGB格式數(shù)據(jù),并把RGB格式數(shù)據(jù)轉化成ARGB格式數(shù)據(jù)并存放到文字顯示區(qū)域,最后通知顯示進程;所述顯示模塊用于當需要顯示字幕時,讀取ARGB格式數(shù)據(jù),拷貝到framebuffer上進行顯示。使得機頂盒能夠顯示外掛字幕,對共享內存的訪問和保護采用指派方式,利用共享內存實現(xiàn)數(shù)據(jù)緩存,使得大大減少了數(shù)據(jù)的拷貝,提高了系統(tǒng)效率。
文檔編號H04N21/431GK103067774SQ20121057890
公開日2013年4月24日 申請日期2012年12月28日 優(yōu)先權日2012年12月28日
發(fā)明者彭友紅, 申及 申請人:四川九洲電器集團有限責任公司