專利名稱:一種基于數(shù)字電視機(jī)頂盒的滾動(dòng)字幕顯示方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字電視技術(shù)領(lǐng)域(包含有線、衛(wèi)星、地面、移動(dòng)數(shù)字電視和IPTV等)和移動(dòng) 多媒體技術(shù)領(lǐng)域,尤其涉及一種基于數(shù)字電視機(jī)頂盒的滾動(dòng)字幕顯示方法。
背景技術(shù):
隨著數(shù)字電視技術(shù)的發(fā)展,數(shù)字電視機(jī)頂盒用戶不斷增加,在使用機(jī)頂盒播放電視節(jié)目 期間,在視頻之上滾動(dòng)顯示字幕已經(jīng)是非常普遍的了。滾動(dòng)字幕可以是新聞,也可以是廣告, 它以運(yùn)動(dòng)的形式播出,可以顯示很多內(nèi)容,又不占用很大空間,是電視觀眾接收信息的重要 途徑之一。目前,機(jī)頂盒滾動(dòng)顯示字幕主要是通過(guò)不斷刷新與顯示窗口對(duì)應(yīng)的顯存的內(nèi)容來(lái) 實(shí)現(xiàn)的。這種方式要求字幕滾動(dòng)的速度不能太快,滾動(dòng)速度過(guò)快的話就會(huì)出現(xiàn)字幕閃爍和滾 動(dòng)不平滑的情況,并且這種方式需要不停的刷新顯存,占用大量的機(jī)頂盒資源。
發(fā)明內(nèi)容
本發(fā)明的目的就是為了解決現(xiàn)有機(jī)頂盒滾動(dòng)字幕顯示方式占用資源多,滾動(dòng)速度受限方 面的缺陷,提出一種實(shí)現(xiàn)方便,占用資源少,可快速滾動(dòng)且顯示平滑不閃爍的基于數(shù)字電視 機(jī)頂盒的滾動(dòng)字幕顯示方法。
為實(shí)現(xiàn)上述目的本發(fā)明采用如下技術(shù)方案
一種基于數(shù)字電視機(jī)頂盒的滾動(dòng)字幕顯示方法,它是通過(guò)改變圖層顯示窗口和圖層顯存 的相對(duì)位置,來(lái)實(shí)現(xiàn)字幕的滾動(dòng)顯示,其步驟為
(1 )將機(jī)頂盒收到的滾動(dòng)字幕數(shù)據(jù)存放到機(jī)頂盒內(nèi)存中開(kāi)辟的字幕數(shù)據(jù)緩存中;
(2) 機(jī)頂盒判斷顯示滾動(dòng)字幕的圖層是否己經(jīng)被創(chuàng)建,如果已經(jīng)被創(chuàng)建,則轉(zhuǎn)向步驟(3), 如果沒(méi)有被創(chuàng)建,則創(chuàng)建顯示滾動(dòng)字幕的圖層
(3) 機(jī)頂盒設(shè)置滾動(dòng)字幕圖層顯示窗口可視區(qū)域的位置和大小,初始化滾動(dòng)字幕圖層對(duì)
應(yīng)的顯存,設(shè)定和顯示窗口可視區(qū)域?qū)?yīng)的顯存區(qū)域;
(4) 機(jī)頂盒將字幕數(shù)據(jù)緩存中存放的字幕數(shù)據(jù)拷貝到設(shè)定的字幕圖層顯存區(qū)域中;
(5) 移動(dòng)設(shè)定的顯存區(qū)域的起始坐標(biāo)點(diǎn)到顯示窗口可視區(qū)域的起始坐標(biāo)點(diǎn),改變?cè)O(shè)定的 顯存區(qū)域相對(duì)于顯示窗口可視區(qū)域的位置,這樣就實(shí)現(xiàn)了字幕數(shù)據(jù)的滾動(dòng)顯示。
所述步驟(3)中,顯示窗口可視區(qū)域的位置和大小根據(jù)字幕的位置、大小和滾動(dòng)顯示方 式即左右滾動(dòng)或者上下滾動(dòng)確定與顯示窗口可視區(qū)域?qū)τ玫娘@存區(qū)域的大小根據(jù)字幕的大 小和滾動(dòng)顯示方式即左右滾動(dòng)或者上下滾動(dòng)確定。
所述步驟(3)和步驟(5)中,只有顯示窗口可視區(qū)域范圍之內(nèi)的顯存區(qū)域的數(shù)據(jù)對(duì)用 戶是可見(jiàn)的,顯示窗口可視區(qū)域范圍之外的顯存區(qū)域的數(shù)據(jù)對(duì)用戶是不可見(jiàn)的。
所述步驟(4)和步驟(5)中,先將字幕數(shù)據(jù)拷貝到設(shè)定的顯存區(qū)域在顯示窗口可視區(qū) 域范圍之外的暫時(shí)不可見(jiàn)的顯存區(qū)域空間,然后再將這部分暫時(shí)不可見(jiàn)的顯存區(qū)域空間移動(dòng) 到顯示窗口可視區(qū)域,進(jìn)而顯示出字幕數(shù)據(jù)。
本發(fā)明的有益效果是字幕滾動(dòng)平滑,字幕快速滾動(dòng)不閃爍,占用資源少。
圖l是本發(fā)明所述基于數(shù)字電視機(jī)頂盒的滾動(dòng)字幕顯示方法流程圖; 圖2是本發(fā)明所述字幕圖層顯示窗口和顯存之間的關(guān)系示意圖; 圖3是本發(fā)明所述字幕數(shù)據(jù)在字幕緩存中存放的結(jié)構(gòu)示意圖; 圖4是本發(fā)明所述字幕從右至左滾動(dòng)顯示時(shí)可視區(qū)域和顯存區(qū)域的關(guān)系示意圖; 圖5是本發(fā)明所述字幕從下至上滾動(dòng)顯示時(shí)可視區(qū)域和顯存區(qū)域的關(guān)系示意圖。
具體實(shí)施例方式
3下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
此處所說(shuō)明的附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,構(gòu)成本發(fā)明的一部分,本發(fā)明的示 意實(shí)施例及其說(shuō)明用于解釋本發(fā)明,并不夠成對(duì)本發(fā)明的不當(dāng)限定。
如圖l所示, 一種基于數(shù)字電視機(jī)頂盒的滾動(dòng)字幕顯示方法,它的流程為
(1) 將機(jī)頂盒收到的滾動(dòng)字幕數(shù)據(jù)存放到在機(jī)頂盒內(nèi)存中開(kāi)辟的字幕數(shù)據(jù)緩存中;
(2) 機(jī)頂盒判斷顯示滾動(dòng)字幕的圖層是否己經(jīng)被創(chuàng)建,如果己經(jīng)被創(chuàng)建,則轉(zhuǎn)向步驟(3), 如果沒(méi)有被創(chuàng)建,則創(chuàng)建顯示滾動(dòng)字幕的圖層;
(3) 機(jī)頂盒設(shè)置滾動(dòng)字幕圖層顯示窗口可視區(qū)域的位置和大小,初始化滾動(dòng)字幕圖層對(duì) 應(yīng)的顯存,設(shè)定和顯示窗口可視區(qū)域?qū)?yīng)的顯存區(qū)域;
(4) 機(jī)頂盒將字幕數(shù)據(jù)緩存中存放的字幕數(shù)據(jù)拷貝到設(shè)定的字幕圖層顯存區(qū)域中;
(5) 移動(dòng)設(shè)定的顯存區(qū)域的起始坐標(biāo)點(diǎn)到顯示窗口可視區(qū)域的起始坐標(biāo)點(diǎn),改變?cè)O(shè)定的 顯存區(qū)域相對(duì)于顯示窗口可視區(qū)域的位置,這樣就實(shí)現(xiàn)了字幕數(shù)據(jù)的滾動(dòng)顯示。
如圖2^示, 一種基于數(shù)字電視機(jī)頂盒的滾動(dòng)字幕顯示方法,它要求顯示窗口和顯存區(qū)域 之間滿足如下關(guān)系顯示窗口的最大高度小于顯存區(qū)域的最大高度,或者顯示窗口的最大寬 度小于顯存區(qū)域的最大寬度??梢晠^(qū)域是顯示窗口的一部分,可視區(qū)域的最大高度不大于顯 示窗口的最大高度,可視區(qū)域的最大寬度不大于顯示窗口的最大寬度,并且只有可視區(qū)域?qū)?應(yīng)的顯存數(shù)據(jù)才能顯示,可視區(qū)域之外的顯存數(shù)據(jù)無(wú)法顯示。
如圖3所示,為了實(shí)現(xiàn)字幕能夠平滑開(kāi)始滾動(dòng)和平滑結(jié)束滾動(dòng),在將字幕數(shù)據(jù)存放到字幕 緩存的時(shí)候需要在字幕數(shù)據(jù)的前面和后面都填充透明數(shù)據(jù),每一部分填充數(shù)據(jù)所占空間的大 小都和顯示窗口可視區(qū)域的大小一致。
水平方向上以字幕從右至左滾動(dòng)顯示為例,說(shuō)明一下可視區(qū)域和顯存區(qū)域的關(guān)系以及字 幕滾動(dòng)的顯示的過(guò)程。如圖4所示,假設(shè)字幕圖層顯示窗口的寬度為w,字幕圖層顯存的寬度 為wl (wl〉w),字幕的高度為h,字幕從右至左滾動(dòng)顯示時(shí)的縱坐標(biāo)為yO。字幕滾動(dòng)顯示的具
體步驟如下
(a) 根據(jù)字幕要滾動(dòng)顯示的位置及字幕的高度,設(shè)定可視區(qū)域相對(duì)于顯示窗口左上角O 點(diǎn)的坐標(biāo)為(x0,y0),高度為h,寬度為w,同時(shí),根據(jù)字幕的高度,在顯存中設(shè)定顯存區(qū)域l 和顯存區(qū)域2兩塊顯存區(qū)域來(lái)存放要顯示的字幕數(shù)據(jù),顯存區(qū)域的高度為字幕的高度h,寬度 為整個(gè)顯存的寬度f(wàn)fl;
(b) 第l次從字幕緩存中離開(kāi)始位置距離為(wli)+^(1-1)的位置獲取大小為wl+h的數(shù) 據(jù)放到顯存區(qū)域l中,將顯存區(qū)域l左上角的點(diǎn)(xl,yl)移動(dòng)到可視區(qū)域左上角(x0,y0)位 置,此時(shí)在可視區(qū)域內(nèi)可看到顯存區(qū)域l內(nèi)寬度為w的數(shù)據(jù),由于在字幕緩存中填充了大小為 顯示窗口可視區(qū)域大小w補(bǔ)的透明數(shù)據(jù),所以用戶感覺(jué)此時(shí)是沒(méi)有字幕數(shù)據(jù)的;
(c) 在水平方向上,從右至左移動(dòng)顯存,這樣顯存區(qū)域l中(xl+w)之后的字幕數(shù)據(jù)開(kāi) 始出現(xiàn)在可視區(qū)域的最右邊,并不斷向左移動(dòng),直到顯存區(qū)域l右上角的點(diǎn)(xl+wl,yl)和可 視區(qū)域右上角的點(diǎn)(x0+w,y0)重合,這樣顯存區(qū)域l中的全部數(shù)據(jù)就在可視區(qū)域中顯示一遍, 如果字幕緩存中的數(shù)據(jù)沒(méi)有全部被顯示一遍,則繼續(xù)執(zhí)行步驟(d),否則執(zhí)行步驟(f);
(d) 在顯存區(qū)域l中的數(shù)據(jù)被顯示一遍之前,第m+l次從字幕緩存中離開(kāi)始位置距離為 (wl-w)補(bǔ),的位置拷貝大小為wl補(bǔ)的數(shù)據(jù)到顯存區(qū)域2中,在顯存區(qū)域l中的數(shù)據(jù)被顯示完之 后,將顯存區(qū)域2左上角的點(diǎn)(xl,y2)移動(dòng)到可視區(qū)域左上角的點(diǎn)(xO,yO)位置,并在水平 方向不斷從右向左移動(dòng)顯存,這樣顯存區(qū)域2中的數(shù)據(jù)從右到左滾動(dòng)顯示在可視區(qū)域,直到顯 存區(qū)域2右上角的點(diǎn)(xl+wl,y2)和可視區(qū)域右上角的點(diǎn)(xO+w,y0)重合,顯存區(qū)域2中的全 部數(shù)據(jù)在可視區(qū)域中被顯示一遍,如果字幕緩存中的數(shù)據(jù)沒(méi)有全部被顯示一遍,貝ljm的值加上 2,繼續(xù)執(zhí)行步驟(e),否則執(zhí)行步驟(f);
(e) 在顯存區(qū)域2中的數(shù)據(jù)被顯示一遍之前,第n+l次從字幕緩存中離開(kāi)始位置距離為 (wl-w)樸化的位置拷貝大小為wl+h的數(shù)據(jù)到顯存區(qū)域l中,在顯存區(qū)域2中的數(shù)據(jù)被顯示完之 后,將顯存區(qū)域l左上角的點(diǎn)(xl,yl)移動(dòng)到可視區(qū)域左上角的點(diǎn)(xO,yO)位置,并在水平
4方向不斷從右向左移動(dòng)顯存,這樣顯存區(qū)域l中的數(shù)據(jù)從右到左滾動(dòng)顯示在可視區(qū)域,直到顯 存區(qū)域l右上角的點(diǎn)(xl+wl,yl)和可視區(qū)域右上角的點(diǎn)重合,顯存區(qū)域l中的全部數(shù)據(jù)在可 視區(qū)域中被顯示一遍,如果字幕緩存中的數(shù)據(jù)沒(méi)有全部被顯示一遍,則n的值加上2,轉(zhuǎn)向步 驟(d)執(zhí)行,否則執(zhí)行步驟(f);
(f)停止移動(dòng)顯存的位置,字幕滾動(dòng)顯示結(jié)束。
所述步驟(a)中,對(duì)于水平方向滾動(dòng)顯示字幕來(lái)說(shuō),只需要設(shè)定可視區(qū)域的縱向坐標(biāo)yO 和高度h即可,可視區(qū)域的寬度為整個(gè)顯示窗口的寬度,橫向坐標(biāo)不必關(guān)心。
所述步驟(d)和(e)中,m的值為l, 3, 5, 7, 9, , n的值為2, 4, 6, 8, 。
所述步驟(b) , (d) , (e)中,只有可視區(qū)域范圍之內(nèi)的顯存區(qū)域?qū)τ脩羰强梢?jiàn)的, 可視區(qū)域范圍之外的顯存區(qū)域?qū)τ脩羰遣豢梢?jiàn)的,每次都是將字幕中的數(shù)據(jù)拷貝到可視區(qū)域 范圍之外的顯存區(qū)域,這樣就不會(huì)導(dǎo)致數(shù)據(jù)拷貝過(guò)程中的字幕閃爍問(wèn)題。字幕緩存中的填充 數(shù)據(jù)也屬于有效數(shù)據(jù),每次從字幕緩存拷貝數(shù)據(jù)到顯存區(qū)域的時(shí)候,都是從字幕緩存不同的 位置拷貝,要拷貝數(shù)據(jù)的起始位置startl滿足如下關(guān)系startl=StartO+(wl-w)*h*(i-1), 其中,startO是字幕緩存的開(kāi)始位置,wl是顯存的寬度,w是可視區(qū)域的寬度,h是字幕的高 度,i是表示第幾次從字幕緩存拷貝數(shù)據(jù)到顯存區(qū)域,i的值為l,2,3,4,5,6,……。
字幕從左至右滾動(dòng)顯示的方法和所述字幕從右至左滾動(dòng)顯示方法類似,本發(fā)明中不再贅述。
垂直方向上以字幕從下至上滾動(dòng)顯示為例,說(shuō)明一下可視區(qū)域和顯存區(qū)域的關(guān)系以及字 幕滾動(dòng)的顯示的過(guò)程。如圖5所示,假設(shè)字幕圖層顯示窗口的高度為H,字幕圖層顯存的高度 為H1 (H1〉H),字幕的寬度為W,字幕從下至上滾動(dòng)顯示時(shí)左邊沿的橫坐標(biāo)為XO。字幕滾動(dòng)顯 示的具體步驟如下
(al)根據(jù)字幕要滾動(dòng)顯示的位置及字幕的寬度,設(shè)定可視區(qū)域相對(duì)于顯示窗口左上角O 點(diǎn)的坐標(biāo)為(X0,Y0),高度為顯示窗口的高度H,寬度為字幕的寬度W,同時(shí),根據(jù)字幕的寬 度,在顯存中設(shè)定顯存區(qū)域3和顯存區(qū)域4兩塊顯存區(qū)域來(lái)存放要顯示的字幕數(shù)據(jù),顯存區(qū)域 的寬度為字幕的寬度W,高度為整個(gè)顯存的寬度H1;
(bl)第l次從字幕緩存中離開(kāi)始位置距離為(Hl-H)W"1-1)的位置獲取大小為H1+W的數(shù) 據(jù)放到顯存區(qū)域3中,將顯存區(qū)域3左上角的點(diǎn)(X1,Y1)移動(dòng)到可視區(qū)域左上角(X0,Y0)位 置,此時(shí)在可視區(qū)域內(nèi)可看到顯存區(qū)域3內(nèi)高度為H的數(shù)據(jù),由于在字幕緩存中填充了大小為 顯示窗口可視區(qū)域大小W州的透明數(shù)據(jù),所以用戶感覺(jué)此時(shí)是沒(méi)有字幕數(shù)據(jù)的;
(cl)在垂直方向上,從下至上移動(dòng)顯存,這樣顯存區(qū)域3中(Yl州)之后的字幕數(shù)據(jù)開(kāi) 始出現(xiàn)在可視區(qū)域的最下邊,并不斷向上移動(dòng),直到顯存區(qū)域3左下角的點(diǎn)(X1,Y1+H1)和可 視區(qū)域左下角的點(diǎn)(X0,Y0+H)重合,這樣顯存區(qū)域3中的全部數(shù)據(jù)就在可視區(qū)域中顯示一遍, 如果字幕緩存中的有效數(shù)據(jù)沒(méi)有全部被顯示一遍,則繼續(xù)執(zhí)行步驟(dl),否則執(zhí)行步驟(fl);
(dl)在顯存區(qū)域3中的數(shù)據(jù)被顯宗一遍之前,第M+1次從字幕緩存中離開(kāi)始位置距離為 (H1-H^W舉M的位置拷貝大小為H1+W的數(shù)據(jù)到顯存區(qū)域4中,在顯存區(qū)域3中的數(shù)據(jù)被顯示完之 后,將顯存區(qū)域4左上角的點(diǎn)(X2,Y1)移動(dòng)到可視區(qū)域左上角的點(diǎn)(X0,Y0)位置,并在垂直 方向不斷從下向上移動(dòng)顯存,這樣顯存區(qū)域4中的數(shù)據(jù)從下到上滾動(dòng)顯示在可視區(qū)域,直到顯 存區(qū)域4左下角的點(diǎn)(X2,Y1+H1)和可視區(qū)域左下角的點(diǎn)(X0,Y0+H)重合,顯存區(qū)域4中的全 部數(shù)據(jù)在可視區(qū)域中被顯示一遍,如果字幕緩存中的數(shù)據(jù)沒(méi)有全部被顯示一遍,則M的值加上 2,繼續(xù)執(zhí)行步驟(el),否則執(zhí)行步驟(fl);
(el)在顯存區(qū)域4中的數(shù)據(jù)被顯示一遍之前,第N+1次從字幕緩存中離開(kāi)始位置距離為 (H1-H^W+N的位置拷貝大小為HWW的數(shù)據(jù)到顯存區(qū)域3中,在顯存區(qū)域4中的數(shù)據(jù)被顯示完之 后,將顯存區(qū)域3左上角的點(diǎn)(X1,Y1)移動(dòng)到可視區(qū)域左上角的點(diǎn)(X0,Y0)位置,并在垂直 方向不斷從下向上移動(dòng)顯存,這樣顯存區(qū)域3中的數(shù)據(jù)從下到上滾動(dòng)顯示在可視區(qū)域,直到顯 存區(qū)域3左下角的點(diǎn)(X1,Y1+H1)和可視區(qū)域左下角的點(diǎn)(X0,Y0+H)重合,顯存區(qū)域3中的全 部數(shù)據(jù)在可視區(qū)域中被顯示一遍,如果字幕緩存中的數(shù)據(jù)沒(méi)有全部被顯示一遍,則N的值加上2,轉(zhuǎn)向步驟(dl)執(zhí)行,否則執(zhí)行步驟(fl):
(fl)停止移動(dòng)顯存的位置,字幕滾動(dòng)顯示結(jié)束。
所述步驟(al)中,對(duì)于垂直方向滾動(dòng)顯示字幕來(lái)說(shuō),只需要設(shè)定可視區(qū)域的橫向坐標(biāo) X0和寬度W即可,可視區(qū)域的高度為整個(gè)顯示窗口的寬度,縱向坐標(biāo)不必關(guān)心。
所述步驟(dl)和(el)中,M的值為l, 3, 5, 7, 9, , N的值為2, 4, 6, 8,……。
所述步驟(bl) , (dl) , (el)中,只有可視區(qū)域范圍之內(nèi)的顯存區(qū)域?qū)τ脩羰强梢?jiàn) 的,可視區(qū)域范圍之外的顯存區(qū)域?qū)τ脩羰遣豢梢?jiàn)的,每次都是將字幕中的數(shù)據(jù)拷貝到可視 區(qū)域范圍之外的顯存區(qū)域,這樣就不會(huì)導(dǎo)致數(shù)據(jù)拷貝過(guò)程中的字幕閃爍問(wèn)題。字幕緩存中的 填充數(shù)據(jù)也屬于有效數(shù)據(jù),每次從字幕緩存拷貝數(shù)據(jù)到顯存區(qū)域的時(shí)候,都是從字幕緩存不 同的位置拷貝,要拷貝數(shù)據(jù)的起始位置addr滿足如下關(guān)系addr=startO+(Hl-H)*W*(j-1), 其中,startO是字幕緩存的開(kāi)始位置,Hl是顯存的高度,H是可視區(qū)域的高度,W是字幕的寬 度,j是表示第幾次從字幕緩存拷貝數(shù)據(jù)到顯存區(qū)域,j的值為l, 2, 3, 4, 5, 6,……。
字幕從上至下滾動(dòng)顯示的方法和所述字幕從下至上滾動(dòng)顯示方法類似,本發(fā)明中不再贅述。
本發(fā)明所述方法和實(shí)施例是從軟件的方法說(shuō)明了如何通過(guò)改變顯存和顯示窗口的位置滾 動(dòng)顯示字幕,對(duì)于通過(guò)硬件芯片,根據(jù)本發(fā)明所述方法實(shí)現(xiàn)字幕滾動(dòng)顯示的方法亦屬本發(fā)明 保護(hù)范圍。
權(quán)利要求
1.一種基于數(shù)字電視機(jī)頂盒的滾動(dòng)字幕顯示方法,其特征在于,它是通過(guò)改變圖層顯示窗口和圖層顯存的相對(duì)位置,來(lái)實(shí)現(xiàn)字幕的滾動(dòng)顯示,其步驟為(1)將機(jī)頂盒收到的滾動(dòng)字幕數(shù)據(jù)存放到機(jī)頂盒內(nèi)存中開(kāi)辟的字幕數(shù)據(jù)緩存中;(2)機(jī)頂盒判斷顯示滾動(dòng)字幕的圖層是否已經(jīng)被創(chuàng)建,如果已經(jīng)被創(chuàng)建,則轉(zhuǎn)向步驟(3),如果沒(méi)有被創(chuàng)建,則創(chuàng)建顯示滾動(dòng)字幕的圖層;(3)機(jī)頂盒設(shè)置滾動(dòng)字幕圖層顯示窗口可視區(qū)域的位置和大小,初始化滾動(dòng)字幕圖層對(duì)應(yīng)的顯存,設(shè)定和顯示窗口可視區(qū)域?qū)?yīng)的顯存區(qū)域;(4)機(jī)頂盒將字幕數(shù)據(jù)緩存中存放的字幕數(shù)據(jù)拷貝到設(shè)定的字幕圖層顯存區(qū)域中;(5)移動(dòng)設(shè)定的顯存區(qū)域的起始坐標(biāo)點(diǎn)到顯示窗口可視區(qū)域的起始坐標(biāo)點(diǎn),改變?cè)O(shè)定的顯存區(qū)域相對(duì)于顯示窗口可視區(qū)域的位置,這樣就實(shí)現(xiàn)了字幕數(shù)據(jù)的滾動(dòng)顯示。
2. 如權(quán)利要求1所述的基于數(shù)字電視機(jī)頂盒的滾動(dòng)字幕顯示方法,其特征在于,所述步驟 (3)中,顯示窗口可視區(qū)域的位置和大小根據(jù)字幕的位置、大小和滾動(dòng)顯示方式即左右滾動(dòng)或者上下滾動(dòng)確定;與顯示窗口可視區(qū)域?qū)?yīng)的顯存區(qū)域的大小根據(jù)字幕的大小和滾動(dòng)顯示 方式即左右滾動(dòng)或者上下滾動(dòng)確定。
3. 如權(quán)利要求1所述的基于數(shù)字電視機(jī)頂盒的滾動(dòng)字幕顯示方法,其特征在于,所述步驟(3)和步驟(5)中,只有顯示窗口可視區(qū)域范圍之內(nèi)的顯存區(qū)域的數(shù)據(jù)對(duì)用戶是可見(jiàn)的,顯示窗口可視區(qū)域范圍之外的顯存區(qū)域的數(shù)據(jù)對(duì)用戶是不可見(jiàn)的。
4. 如權(quán)利要求1所述的基于數(shù)字電視機(jī)頂盒的滾動(dòng)字幕顯示方法,其特征在于,所述步 驟(4)和步驟(5)中,先將字幕數(shù)據(jù)拷貝到設(shè)定的顯存區(qū)域在顯示窗口可視區(qū)域范圍之外 的暫時(shí)不可見(jiàn)的顯存區(qū)域空間,然后再將這部分暫時(shí)不可見(jiàn)的顯存區(qū)域空間移動(dòng)到顯示窗口 可視區(qū)域,進(jìn)而顯示出字幕數(shù)據(jù)。
全文摘要
本發(fā)明公開(kāi)了一種基于數(shù)字電視機(jī)頂盒的滾動(dòng)字幕顯示方法,該方法通過(guò)改變圖層顯示窗口和圖層顯存的相對(duì)位置,來(lái)實(shí)現(xiàn)字幕數(shù)據(jù)的滾動(dòng)顯示。與通過(guò)不斷刷新顯示窗口對(duì)應(yīng)的顯存的內(nèi)容來(lái)實(shí)現(xiàn)字幕滾動(dòng)顯示的方法相比,該方法具有字幕滾動(dòng)顯示平滑和字幕快速滾動(dòng)顯示不閃爍的優(yōu)點(diǎn),另外,該方法還具有占用系統(tǒng)資源少的優(yōu)點(diǎn)。它的基本步驟為(1)將機(jī)頂盒收到的滾動(dòng)字幕數(shù)據(jù)存放到機(jī)頂盒內(nèi)存中開(kāi)辟的字幕數(shù)據(jù)緩存中;(2)機(jī)頂盒判斷顯示滾動(dòng)字幕的圖層是否已經(jīng)被創(chuàng)建,如果已經(jīng)被創(chuàng)建,則轉(zhuǎn)向步驟(3),如果沒(méi)有被創(chuàng)建,則創(chuàng)建顯示滾動(dòng)字幕的圖層;(3)機(jī)頂盒設(shè)置滾動(dòng)字幕圖層顯示窗口可視區(qū)域的位置和大小,初始化滾動(dòng)字幕圖層對(duì)應(yīng)的顯存,設(shè)定和顯示窗口可視區(qū)域?qū)?yīng)的顯存區(qū)域;(4)機(jī)頂盒將字幕數(shù)據(jù)緩存中存放的字幕數(shù)據(jù)拷貝到設(shè)定的字幕圖層顯存區(qū)域中;(5)移動(dòng)設(shè)定的顯存區(qū)域的起始坐標(biāo)點(diǎn)到顯示窗口可視區(qū)域的起始坐標(biāo)點(diǎn),改變?cè)O(shè)定的顯存區(qū)域相對(duì)于顯示窗口可視區(qū)域的位置,這樣就實(shí)現(xiàn)了字幕數(shù)據(jù)的滾動(dòng)顯示。
文檔編號(hào)H04N5/445GK101494747SQ20091001419
公開(kāi)日2009年7月29日 申請(qǐng)日期2009年2月24日 優(yōu)先權(quán)日2009年2月24日
發(fā)明者陶圣華 申請(qǐng)人:山東泰信電子有限公司