專利名稱:一種加速機頂盒顯示速度的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種加速機頂盒顯示速度的方法,特別是采用混合驅(qū)動的方式加快機 頂盒顯示速度的方法。
背景技術(shù):
傳統(tǒng)的數(shù)字電視機頂盒中使用操作顯示緩沖區(qū)來進(jìn)行OSD輸出時,由于使用CPU 作為主要的數(shù)據(jù)搬遷設(shè)備,除了占用大量的CPU時間外,當(dāng)在一段時間內(nèi)需要大量繪制圖 形圖像時,會出現(xiàn)鋸齒狀顯示,內(nèi)容越多鋸齒也越多,并且當(dāng)應(yīng)用程序負(fù)擔(dān)太重時,會造成 OSD更新緩慢,讓用戶有刷屏的感覺。在使用2D加速功能來完成OSD繪制時,當(dāng)系統(tǒng)調(diào)用 大量畫點操作,系統(tǒng)就會出現(xiàn)極其緩慢的繪制過程,特別是寫字、畫點線面等大量畫點操作 時,繪圖卡頓會更加明顯。同時,在繪制帶有透明色的圖片數(shù)據(jù)時速度更加緩慢。
發(fā)明內(nèi)容
為了克服上述技術(shù)背景的不足,本發(fā)明開發(fā)一種采用混合驅(qū)動的方式加快機頂盒 顯示速度的方法。為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案為
一種加速機頂盒顯示速度的方法,所述方法包括如下步驟
步驟1 設(shè)計一種通用的圖形圖像顯示接口,該接口主要包括DraWPixel、FillRect, PutData、GetDate、PurDataMask 函數(shù);
DrawPixel 用來繪制一個像素點到屏幕上;
FillRect 繪制一個矩形框,用于進(jìn)行大量矩形圖形繪制時使用;
PutData 用于把給定的圖像數(shù)據(jù)繪制到屏幕上;
GetDate 用于得到屏幕中的圖像數(shù)據(jù);
PurDataMask 用于把帶有透明色信息的圖像繪制到屏幕上;
步驟2 設(shè)計的圖形圖像顯示接口中的各函數(shù)采用混合驅(qū)動加速機頂盒顯示速度。本發(fā)明中,所述步驟2中的混合驅(qū)動方式的操作為
1)采用2D加速繪制矩形框的函數(shù)FillRect和已經(jīng)繪的制圖像數(shù)據(jù)繪制到屏幕的函數(shù) PutData ;當(dāng)需要大量繪制操作時,2D加速幫助CPU來完成矩形框的填充和已經(jīng)繪制的圖像 數(shù)據(jù)繪制到屏幕的輸出工作。傳統(tǒng)采用顯示緩沖區(qū)作為主要的圖形圖像輸出操作,當(dāng)大量頻繁繪制圖像數(shù)據(jù)時 會出現(xiàn)的屏幕鋸齒感和大量占用CPU,本發(fā)明使用2D來實現(xiàn)繪制矩形框的函數(shù)FillRect和 已經(jīng)繪制的圖像數(shù)據(jù)繪制到屏幕的函數(shù)PutData。這樣進(jìn)行大量繪制操作時,2D加速幫助 CPU來完成矩形框的填充和已經(jīng)繪制的圖像數(shù)據(jù)繪制到屏幕的輸出工作,大量減輕CPU的 負(fù)擔(dān),同時不會出現(xiàn)鋸齒感。其中函數(shù)FillRect的操作為通過2D加速引擎,把需要顯示的位置、矩形的長和 高,以及填充的顏色設(shè)置到2D加速引擎的矩形繪制隊列中,啟動2D加速的隊列。這樣2D加
3速引擎會執(zhí)行繪制隊列,把需要的數(shù)據(jù)搬遷到指定的顯示緩沖區(qū)中,而不需要CPU的幫助, 減少CPU的負(fù)擔(dān)。其中函數(shù)PutData的操作為通過2D加速引擎,把需要顯示的位置、圖片數(shù)據(jù)的長 和高以及填充的圖片數(shù)據(jù)設(shè)置到2D加速數(shù)據(jù)填充的矩形繪制隊列中,啟動2D加速的隊列。 這樣2D加速引擎執(zhí)行繪制隊列,把需要的數(shù)據(jù)搬遷到指定的顯示緩沖區(qū)中,而不需要CPU 的幫助,減少CPU的負(fù)擔(dān)。2)采用直接向顯示緩沖區(qū)輸出數(shù)據(jù)的方式,通過DrawPixel函數(shù)來進(jìn)行相應(yīng)的大 量畫點的操作。針對使用2D繪制需要大量畫點操作的地方出現(xiàn)繪制緩慢的問題,本發(fā)明中采用 直接向顯示緩沖區(qū)輸出數(shù)據(jù)的方式,通過DrawPixel函數(shù)來進(jìn)行相應(yīng)的大量畫點的操作, 從而解決使用2D加速過程中繪制緩慢的問題。其中,所述需要大量畫點的操作為字符、圓或多邊形等。在繪制大量畫點的操作過程中直接使用DrawPixel函數(shù),函數(shù)中對指定坐標(biāo)計 算出它們在顯示緩沖區(qū)中的位置,把需要設(shè)置的顏色值直接寫到算出的顯示緩沖區(qū)的位 置上。假設(shè)需要的設(shè)置畫點函數(shù)的坐標(biāo)為(X,y),顯示緩沖區(qū)的起始地址為addr,屏幕的 寬為《,高為h,每個像素占用的字節(jié)數(shù)為b,通過DrawPixel函數(shù)寫入的顏色值的位置為
addr+w氺y氺b+x氺b。3)當(dāng)繪制帶有透明色的圖片數(shù)據(jù)時,采用PurDataMask函數(shù)直接向顯示緩沖區(qū)輸 出數(shù)據(jù);
本發(fā)明中,通過PurDataMask函數(shù)直接向顯示緩沖區(qū)輸出數(shù)據(jù),解決2D加速功能繪制 帶有透明色的圖片數(shù)據(jù)時速度更加的緩慢的問題。在生成圖片數(shù)據(jù)時,對圖片中有透明色的圖片進(jìn)行標(biāo)注,當(dāng)遇到?jīng)]有透明色標(biāo)注 的圖片時,直接使用PutData函數(shù)通過2D快速繪制,當(dāng)遇到有透明色標(biāo)注的圖片則讀取圖 片的每個像素判斷是否為透明色,如果不是則直接使用DrawPixel繪制像素點,如果是則 跳過,判斷下一個像素點,直到把圖片數(shù)據(jù)全部判斷完畢,以此來實現(xiàn)對帶透明色圖片繪 制。4)當(dāng)存在彈框等操作時,使用GetDate函數(shù)來讀取需要顯示彈框的區(qū)域的數(shù)據(jù), 把它們保存下來,然后繪制彈框;當(dāng)彈框消失的操作后,直接使用保存下來的數(shù)據(jù)繪制到所 需的區(qū)域,來加速繪制的過程,而不用重新繪制整個屏幕。本發(fā)明中,通過設(shè)置一種通用的圖形圖像顯示接口的多個函數(shù)混合驅(qū)動,不占用 大量CPU時間,即使大量繪制圖形圖像時,系統(tǒng)也能流暢的顯示;通過2D加速引擎,系統(tǒng)進(jìn) 行大量畫點操作時,不會出現(xiàn)卡頓現(xiàn)象;在繪制帶有透明色的圖片數(shù)據(jù)時速度較快??傊?采用設(shè)置圖形圖像顯示接口的多個函數(shù)混合驅(qū)動,有效的解決在數(shù)字電視機頂盒界面繪制 圖形圖像中出現(xiàn)的種種問題,提高繪圖效率,使用戶可以更好的享受機頂盒流暢的顯示過 程。
具體實施例方式下面結(jié)合具體實施例對本發(fā)明進(jìn)行進(jìn)一步描述。本發(fā)明提供一種加速機頂盒顯示速度的方法,所述方法包括如下步驟一種加速機頂盒顯示速度的方法,所述方法包括如下步驟
步驟1 設(shè)計一種通用的圖形圖像顯示接口,該接口主要包括DraWPixel、FillRect, PutData、GetDate、PurDataMask 函數(shù);
DrawPixel 用來繪制一個像素點到屏幕上;
FillRect 繪制一個矩形框,用于進(jìn)行大量矩形圖形繪制時使用;
PutData 用于把給定的圖像數(shù)據(jù)繪制到屏幕上;
GetDate 用于得到屏幕中的圖像數(shù)據(jù);
PurDataMask 用于把帶有透明色信息的圖像繪制到屏幕上;
步驟2 設(shè)計的圖形圖像顯示接口中的各函數(shù)采用混合驅(qū)動加速機頂盒顯示速度。本發(fā)明中,所述步驟2中的實現(xiàn)混合驅(qū)動方式的操作為
1)采用2D加速繪制矩形框的函數(shù)FillRect和已經(jīng)繪的制圖像數(shù)據(jù)繪制到屏幕的函數(shù) PutData ;當(dāng)需要大量繪制操作時,2D加速幫助CPU來完成矩形框的填充和已經(jīng)繪制的圖像 數(shù)據(jù)繪制到屏幕的輸出工作。傳統(tǒng)采用顯示緩沖區(qū)作為主要的圖形圖像輸出操作,當(dāng)大量頻繁繪制圖像數(shù)據(jù)時 會出現(xiàn)的屏幕鋸齒感和大量占用CPU,本發(fā)明使用2D來實現(xiàn)繪制矩形框的函數(shù)FillRect和 已經(jīng)繪制的圖像數(shù)據(jù)繪制到屏幕的函數(shù)PutData。這樣進(jìn)行大量繪制操作時,2D加速幫助 CPU來完成矩形框的填充和已經(jīng)繪制的圖像數(shù)據(jù)繪制到屏幕的輸出工作,大量減輕CPU的 負(fù)擔(dān),同時不會出現(xiàn)鋸齒感。其中函數(shù)FillRect的操作為通過2D加速引擎,把需要顯示的位置、矩形的長和 高,以及填充的顏色設(shè)置到2D加速引擎的矩形繪制隊列中,啟動2D加速的隊列。這樣2D加 速引擎會執(zhí)行繪制隊列,把需要的數(shù)據(jù)搬遷到指定的顯示緩沖區(qū)中,而不需要CPU的幫助, 減少CPU的負(fù)擔(dān)。其中函數(shù)PutData的操作為通過2D加速引擎,把需要顯示的位置、圖片數(shù)據(jù)的長 和高以及填充的圖片數(shù)據(jù)設(shè)置到2D加速數(shù)據(jù)填充的矩形繪制隊列中,啟動2D加速的隊列。 這樣2D加速引擎執(zhí)行繪制隊列,把需要的數(shù)據(jù)搬遷到指定的顯示緩沖區(qū)中,而不需要CPU 的幫助,減少CPU的負(fù)擔(dān)。2)采用直接向顯示緩沖區(qū)輸出數(shù)據(jù)的方式,通過DrawPixel函數(shù)來進(jìn)行相應(yīng)的大 量畫點的操作。針對使用2D繪制需要大量畫點操作的地方出現(xiàn)繪制緩慢的問題,本發(fā)明中采用 直接向顯示緩沖區(qū)輸出數(shù)據(jù)的方式,通過DrawPixel函數(shù)來進(jìn)行相應(yīng)的大量畫點的操作, 從而解決使用2D加速過程中繪制緩慢的問題。其中,所述需要大量畫點的操作為字符、圓或多邊形等。在繪制大量畫點的操作過程中直接使用DrawPixel函數(shù),函數(shù)中對指定坐標(biāo)計 算出它們在顯示緩沖區(qū)中的位置,把需要設(shè)置的顏色值直接寫到算出的顯示緩沖區(qū)的位 置上。假設(shè)需要的設(shè)置畫點函數(shù)的坐標(biāo)為(X,y),顯示緩沖區(qū)的起始地址為addr,屏幕的 寬為w,高為h,每個像素占用的字節(jié)數(shù)為b,通過DrawPixel函數(shù)寫入的顏色值的位置為
addr+w氺y氺b+x氺b。3)當(dāng)繪制帶有透明色的圖片數(shù)據(jù)時,采用PurDataMask函數(shù)直接向顯示緩沖區(qū)輸 出數(shù)據(jù)。
本發(fā)明中,通過PurDataMask函數(shù)直接向顯示緩沖區(qū)輸出數(shù)據(jù),解決2D加速功能 繪制帶有透明色的圖片數(shù)據(jù)時速度更加的緩慢的問題。在生成圖片數(shù)據(jù)時,對圖片中有透明色的圖片進(jìn)行標(biāo)注,當(dāng)遇到?jīng)]有透明色標(biāo)注 的圖片時,直接使用PutData函數(shù)通過2D快速繪制,當(dāng)遇到有透明色標(biāo)注的圖片則讀取圖 片的每個像素判斷是否為透明色,如果不是則直接使用DrawPixel繪制像素點,如果是則 跳過,判斷下一個像素點,直到把圖片數(shù)據(jù)全部判斷完畢,以此來實現(xiàn)對帶透明色圖片繪 制。4)當(dāng)存在彈框等操作時,使用GetDate函數(shù)來讀取需要顯示彈框的區(qū)域的數(shù)據(jù), 把它們保存下來,然后繪制彈框;當(dāng)彈框消失的操作后,直接使用保存下來的數(shù)據(jù)繪制到所 需的區(qū)域,來加速繪制的過程,而不用重新繪制整個屏幕。
權(quán)利要求
一種加速機頂盒顯示速度的方法,其特征在于所述方法包括如下步驟步驟1設(shè)計一種通用的圖形圖像顯示接口,該接口主要包括DrawPixel、FillRect、PutData、GetDate、PurDataMask函數(shù);DrawPixel用來繪制一個像素點到屏幕上;FillRect繪制一個矩形框,用于進(jìn)行大量矩形圖形繪制時使用;PutData用于把給定的圖像數(shù)據(jù)繪制到屏幕上;GetDate用于得到屏幕中的圖像數(shù)據(jù);PurDataMask用于把帶有透明色信息的圖像繪制到屏幕上;步驟2設(shè)計的圖形圖像顯示接口中的各函數(shù)采用混合驅(qū)動加速機頂盒顯示速度。
2.根據(jù)權(quán)利要求1所述的加速機頂盒顯示速度的方法,其特征在于所述步驟2中的 混合驅(qū)動方式的操作為1)采用2D加速繪制矩形框的函數(shù)FillRect和已經(jīng)繪制的圖像數(shù)據(jù)繪制到屏幕的函數(shù) PutData ;當(dāng)需要大量繪制操作時,2D加速幫助CPU來完成矩形框的填充和已經(jīng)繪制的圖像 數(shù)據(jù)繪制到屏幕的輸出工作;2)采用直接向顯示緩沖區(qū)輸出數(shù)據(jù)的方式,通過DrawPixel函數(shù)來進(jìn)行相應(yīng)的需要大 量畫點的操作;3)當(dāng)繪制帶有透明色的圖片數(shù)據(jù)時,采用PurDataMask函數(shù)直接向顯示緩沖區(qū)輸出數(shù)據(jù);4)當(dāng)存在彈框操作時,使用GetDate函數(shù)來讀取需要顯示彈框區(qū)域的數(shù)據(jù),保存該數(shù) 據(jù),然后繪制彈框;當(dāng)彈框消失的操作后,直接使用保存下來的數(shù)據(jù)繪制到所需的區(qū)域。
3.根據(jù)權(quán)利要求2中所述的加速機頂盒顯示速度的方法,其特征在于所述混合驅(qū)動 操作的步驟1中函數(shù)FillRect的操作為是通過2D加速引擎,把需要顯示的位置、矩形的長 和高,以及填充的顏色設(shè)置到2D加速引擎的矩形繪制隊列中,啟動2D加速的隊列。
4.根據(jù)權(quán)利要求2中所述的加速機頂盒顯示速度的方法,其特征在于所述混合驅(qū)動 操作的步驟1中函數(shù)PutData的操作是通過2D加速引擎,把需要顯示的位置、圖片數(shù)據(jù)的 長和高,以及填充的圖片數(shù)據(jù)設(shè)置到2D加速數(shù)據(jù)填充的矩形繪制隊列中,啟動2D加速的隊 列。
5.根據(jù)權(quán)利要求2中所述的加速機頂盒顯示速度的方法,其特征在于所述混合驅(qū)動 操作的步驟2中的需要大量畫點的操作為字符、圓或多邊形。
6.根據(jù)權(quán)利要求2中所述的加速機頂盒顯示速度的方法,其特征在于所述混合驅(qū)動 操作的步驟2中,在繪制大量畫點的過程中直接使用DrawPixel函數(shù)時,函數(shù)中對指定坐標(biāo) 計算出它們在顯示緩沖區(qū)中的位置,把需要設(shè)置的顏色值直接寫到算出的顯示緩沖區(qū)的位 置上。
7.根據(jù)權(quán)利要求2中所述的加速機頂盒顯示速度的方法,其特征在于所述混合驅(qū)動 操作的步驟3中,在生成圖片數(shù)據(jù)時,對圖片中有透明色的圖片進(jìn)行標(biāo)注,當(dāng)遇到?jīng)]有透明 色標(biāo)注的圖片時使用PutData函數(shù)通過2D快速繪制,當(dāng)遇到有透明色標(biāo)注的圖片則讀取圖 片的每個像素判斷是否為透明色,如果不是則直接使用DrawPixel繪制像素點,如果是則 跳過,判斷下一個像素點,直到把圖片數(shù)據(jù)全部判斷完畢。
全文摘要
本發(fā)明公開一種加速機頂盒顯示速度的方法,所述方法包括如下步驟步驟1設(shè)計一種通用的圖形圖像顯示接口,步驟2設(shè)計的圖形圖像接口的函數(shù)采用混合驅(qū)動加速機頂盒顯示速度。本發(fā)明中,利用以上的方法加速機頂盒的顯示速度,不占用大量CPU時間,即使大量繪制圖形圖像時,系統(tǒng)也能流暢的顯示;當(dāng)系統(tǒng)調(diào)用大量畫點操作時,不會出現(xiàn)卡頓現(xiàn)象;在繪制帶有透明色的圖片數(shù)據(jù)時速度較快。總之,采用設(shè)置圖形圖像顯示接口的多個函數(shù)混合驅(qū)動,有效的解決了在數(shù)字電視機頂盒界面繪制圖形圖像中出現(xiàn)的種種問題,提高繪圖效率,使用戶可以更好的享受機頂盒流暢的顯示過程。
文檔編號G06F9/44GK101883207SQ20101022630
公開日2010年11月10日 申請日期2010年7月14日 優(yōu)先權(quán)日2010年7月14日
發(fā)明者方立 申請人:福建新大陸通信科技股份有限公司