專利名稱:顯示驅(qū)動(dòng)器ic、顯示模塊以及合并有圖形引擎的電子裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及顯示驅(qū)動(dòng)器IC、顯示模塊以及合并有圖形引擎的電子裝置。
本發(fā)明尤其應(yīng)用于便攜式裝置或儀表板(console)電子裝置中的小面積顯示器。存在大量這種裝置,如PDA,無(wú)繩、移動(dòng)以及桌式電話,車內(nèi)信息儀表板,手持電子游戲機(jī),多功能手表等。
背景技術(shù):
在現(xiàn)有技術(shù)中,通常具有主CPU,該主CPU負(fù)責(zé)接收顯示命令,對(duì)它們處理,并采用描述每個(gè)顯示像素的屬性的像素?cái)?shù)據(jù)來(lái)將結(jié)果發(fā)送到顯示模塊。發(fā)送到顯示模塊的數(shù)據(jù)量與顯示分辨率和色深度(colourdepth)成比例。例如,具有四級(jí)灰度級(jí)的96×96像素的小單色顯示器只需將相當(dāng)少量的數(shù)據(jù)傳送給顯示模塊。但是,這種屏幕不能滿足用戶對(duì)更具吸引力和增加信息的顯示的需求。
隨著對(duì)彩色顯示器和對(duì)要求更高屏幕分辨率的復(fù)雜圖形的需求,要由CPU處理然后發(fā)送到顯示模塊的數(shù)據(jù)量變得更多了。更復(fù)雜的圖形處理給CPU造成了沉重的負(fù)擔(dān),并使設(shè)備速度變慢,從而顯示反應(yīng)和刷新速率可能變得不可接受。這對(duì)于游戲應(yīng)用尤其成為問(wèn)題。另一問(wèn)題是由增加的圖形處理產(chǎn)生的功耗,該功耗可以極大地縮短對(duì)電池供電裝置進(jìn)行充電的間隔。
在個(gè)人計(jì)算機(jī)和計(jì)算機(jī)網(wǎng)絡(luò)的相當(dāng)不同的技術(shù)領(lǐng)域中,通常由處理器單元(processor box)中容納的附加卡上的或作為主板上的嵌入單元的硬件圖形引擎(也稱作圖形加速器),來(lái)解決按可接受的速度來(lái)顯示復(fù)雜圖形的問(wèn)題。所述圖形引擎至少接管了主CPU的一些顯示命令處理。圖形引擎是專門(mén)針對(duì)圖形處理而被開(kāi)發(fā)出來(lái)的,從而對(duì)于相同的圖形任務(wù),它們比CPU更快,并且消耗的功率更少。然后所得視頻數(shù)據(jù)被從處理器單元發(fā)送到一分立的“啞”顯示模塊。
在PC中使用的公知圖形引擎被專門(mén)設(shè)計(jì)用于大面積顯示器,因此是高度復(fù)雜的系統(tǒng),其對(duì)于所用的大量門(mén)電路需要分立的硅片。將這些引擎并入到便攜式裝置中是不實(shí)用的,因?yàn)檫@些便攜式裝置具有小面積顯示器,并且在這些便攜式裝置中,尺寸和重量受到嚴(yán)格限制,而且,其具有有限的電力資源。
而且,PC圖形引擎被設(shè)計(jì)成處理在大面積顯示器中使用的數(shù)據(jù)類型,如復(fù)雜圖像的多重位圖。現(xiàn)在,發(fā)送到移動(dòng)和小面積的顯示器的數(shù)據(jù)可能是矢量圖形格式的。矢量圖形語(yǔ)言的示例有MacroMediaFlashTM和SVGTM。矢量圖形定義還被用于許多游戲應(yīng)用編程接口(API),例如Microsoft DirectX和Silicon Graphics OpenGL。
在矢量圖形中,將圖像定義為多個(gè)復(fù)雜多邊形。這使得矢量圖形適合于可由數(shù)學(xué)函數(shù)容易地定義的圖像,如游戲屏面、文字和GPS導(dǎo)航圖。對(duì)于這種圖像,矢量圖形比等同的位圖有效得多。即,定義與位圖文件(按照每個(gè)單獨(dú)的顯示像素)相同的細(xì)節(jié)(按照復(fù)雜多邊形)的矢量圖形文件含有更少的字節(jié)。位圖文件是采用像素格式的最終圖像數(shù)據(jù),其可被直接復(fù)制給顯示器。
復(fù)雜多邊形是可以自相交并且在其中具有“孔”的多邊形。復(fù)雜多邊形的示例是諸如“X”和“8”的字母和數(shù)字以及日語(yǔ)漢字字符。當(dāng)然,矢量圖形也適用于諸如三角形(其構(gòu)成用于許多計(jì)算機(jī)游戲的基本圖元)的簡(jiǎn)單多邊形的定義。所述多邊形由直邊沿或曲邊沿以及填充命令(fillcommand)來(lái)定義。理論上,對(duì)于每個(gè)多邊形的邊沿?cái)?shù)沒(méi)有限制。但是,含有例如復(fù)雜景物照片的矢量圖形文件將含有比等同的位圖多幾倍的字節(jié)。
已知的還有多種軟件圖形處理算法,其中一些適用于與小面積顯示器采用的高級(jí)/矢量圖形語(yǔ)言一起使用。例如,可以在“Computer GraphicsPrinciples and Practice”Foley,Van Damn,F(xiàn)einer,Hughes 1996 Edition,ISBN 0-201-84840-6中找到一些算法。
已知的軟件圖形算法使用帶鏈表和排序操作的內(nèi)部動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)。在軟件引擎開(kāi)始再現(xiàn)(根據(jù)所接收到的高級(jí)命令產(chǎn)生用于顯示的圖像)之前,必須將所有給出多邊形邊沿?cái)?shù)據(jù)的矢量圖形命令讀入軟件引擎,并對(duì)其進(jìn)行存儲(chǔ)。將用于每個(gè)多邊形的命令存儲(chǔ)在用于每個(gè)多邊形邊沿的起點(diǎn)和終點(diǎn)的主列表中。由掃描線(scanline)將多邊形繪制成掃描線。針對(duì)顯示器的每個(gè)掃描線,所述軟件選擇哪些多邊形邊沿與該掃描線相交,然后標(biāo)識(shí)每個(gè)選定邊沿在何處與該掃描線相交。一旦標(biāo)識(shí)了交點(diǎn),就可以在這些交點(diǎn)之間填充所述多邊形??梢员惶幚淼乃鲋髁斜淼拇笮∈艿杰浖械目捎么鎯?chǔ)量的限制。因此,已知的軟件算法存在這樣的缺點(diǎn),即,它們需要大存儲(chǔ)量,以存儲(chǔ)用于再現(xiàn)前的所有復(fù)雜多邊形的命令。這可使制造商對(duì)將矢量圖形處理并入到移動(dòng)裝置中抱有偏見(jiàn)。
為了在便攜式電子裝置中的顯示用途,希望克服現(xiàn)有技術(shù)中固有的缺點(diǎn),并且減少CPU負(fù)荷和數(shù)據(jù)傳輸量。
發(fā)明內(nèi)容
在獨(dú)立權(quán)利要求中限定了本發(fā)明,現(xiàn)在應(yīng)對(duì)其進(jìn)行說(shuō)明。在獨(dú)立權(quán)利要求中限定了有利的特征。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,提供了一種顯示驅(qū)動(dòng)器IC,其用于連接到小面積顯示器,所述IC包括一硬件實(shí)現(xiàn)的圖形引擎,其用于接收矢量圖形命令和根據(jù)所接收到的命令來(lái)再現(xiàn)用于顯示像素的圖像數(shù)據(jù),并且,所述IC還包括顯示驅(qū)動(dòng)器電路,其用于根據(jù)由所述圖形引擎所再現(xiàn)的圖像數(shù)據(jù)來(lái)驅(qū)動(dòng)所連接的顯示器。
根據(jù)本發(fā)明的另一實(shí)施例,提供了一種用于合并到便攜式電子裝置中的顯示模塊,其包括 顯示器; 硬件實(shí)現(xiàn)的圖形引擎,用于接收矢量圖形命令和根據(jù)所接收到的命令再現(xiàn)用于顯示像素的圖像數(shù)據(jù);以及 顯示驅(qū)動(dòng)器電路,連接到所述圖形引擎和所述顯示器,用于根據(jù)由所述圖形引擎所再現(xiàn)的圖像數(shù)據(jù)來(lái)驅(qū)動(dòng)所述顯示器。
盡管個(gè)人計(jì)算機(jī)(PC)解決方案廣泛用于具有“啞”顯示模塊、分立的處理器單元以及固定電源的應(yīng)用,但是對(duì)于CPU與顯示器之間的流量對(duì)功耗有很大影響的便攜式裝置,不能利用個(gè)人計(jì)算機(jī)解決方案來(lái)克服圖形處理的困難。這是由于從處理器區(qū)發(fā)送到啞顯示器的數(shù)據(jù)不受PC圖形引擎的引入的影響。與以前一樣,將RGB信號(hào)從所述處理器單元發(fā)送到所述顯示器。因此,到所述顯示器的高數(shù)據(jù)流量和所產(chǎn)生的功耗沒(méi)有變化。
發(fā)明人首次認(rèn)識(shí)到圖形引擎不需要設(shè)置在裝置的CPU部分中,而可以保持在所述顯示模塊中。他們已經(jīng)能夠設(shè)計(jì)出足夠簡(jiǎn)單的硬件圖形引擎,其可嵌入用于小面積顯示器的顯示驅(qū)動(dòng)器IC中或嵌入用于便攜式電裝置的顯示模塊中。由于所述圖形引擎位于所述顯示模塊中,所以在CPU與移動(dòng)裝置的顯示部分之間傳輸?shù)氖歉呒?jí)圖形命令,而不是像素?cái)?shù)據(jù)。與未加速的CPU處理相比,圖形引擎的使用降低了功耗。在顯示模塊中使用圖形引擎使得在幾乎相同大小和重量的裝置中可以節(jié)省相當(dāng)多的功率。
因此,本發(fā)明的實(shí)施例使得便攜式電子裝置可以配備有一種顯示器,該顯示器能夠根據(jù)矢量圖形命令來(lái)顯示圖像,同時(shí)保持快速的顯示刷新和響應(yīng)時(shí)間以及長(zhǎng)電池壽命。
這里指的小面積顯示器包括具有用于便攜式電子裝置的大小的顯示器,而不包括例如用于PC的顯示器。
這里指的便攜式裝置包括足夠小且輕以便能由用戶攜帶的手持、佩戴、袋裝以及儀表板裝置等。
優(yōu)選地,所述圖形引擎包括控制電路/邏輯,其用于一次讀入一條矢量圖形命令,將所述命令轉(zhuǎn)換為空間圖像信息,然后在類似地處理下一命令之前丟棄原命令。例如,所述引擎可以一次讀入用于待顯示圖像的一個(gè)多邊形邊沿的一條邊沿繪制命令,或者讀入一條填充命令以對(duì)已被讀入所述引擎的多邊形進(jìn)行著色。
在優(yōu)選實(shí)施例中,所述圖形引擎包括連接到一(具有有限分辨率的)邊沿緩沖區(qū)(edge buffer)的邊沿繪制邏輯/電路,所述邊沿緩沖區(qū)用于為讀入所述引擎中的任何多邊形(的多個(gè)邊沿)存儲(chǔ)空間信息。該邏輯和邊沿緩沖區(qū)的布置不僅使得一旦已將用于每個(gè)邊沿的數(shù)據(jù)讀入所述緩沖區(qū)中時(shí)可以丟棄原數(shù)據(jù),而且與先前的軟件引擎相比,它還具有這樣的優(yōu)點(diǎn),即,它對(duì)待繪制的多邊形的復(fù)雜性沒(méi)有限制,這可能與現(xiàn)有技術(shù)的高級(jí)命令的鏈表存儲(chǔ)的情況相同。
所述邊沿緩沖區(qū)可以具有比所述顯示存儲(chǔ)器的前緩沖區(qū)(frontbuffer)更高的分辨率。例如,可以將所述邊沿緩沖區(qū)配置成存儲(chǔ)子像素(與單個(gè)顯示像素對(duì)應(yīng)的多個(gè)子像素)。優(yōu)選地,所述子像素在置位狀態(tài)與復(fù)位狀態(tài)之間進(jìn)行切換,以存儲(chǔ)所述空間信息。子像素(對(duì)顯示器的每個(gè)對(duì)應(yīng)像素都有一個(gè)以上子像素)的采用使得在合并成顯示器大小之前,便于采用擴(kuò)展的空間形式來(lái)操縱數(shù)據(jù)和抗混疊。每個(gè)對(duì)應(yīng)顯示像素的子像素的數(shù)目確定了可以獲得的抗混疊程度。復(fù)位和置位狀態(tài)的使用僅意味著所述邊沿緩沖區(qū)對(duì)于每個(gè)子像素需要一位的存儲(chǔ)空間。
優(yōu)選地,所述邊沿緩沖區(qū)將每個(gè)多邊形邊沿存儲(chǔ)為多個(gè)邊界子像素,該多個(gè)邊界子像素是置位的,并且它們?cè)谒鲞吔缇彌_區(qū)中的位置與在最終圖像中的邊沿位置有關(guān)。更優(yōu)選地,所述邊沿繪制邏輯包括裁剪器(clipper)單元,以防止對(duì)落在顯示區(qū)之外的任何多邊形邊沿或多邊形邊沿部分進(jìn)行處理。
所述圖形引擎可以包括填充器電路/邏輯,其用于對(duì)邊沿已被存儲(chǔ)在所述邊沿存儲(chǔ)器中的多邊形進(jìn)行填充。該雙通道方法具有如下的簡(jiǎn)單性方面的優(yōu)點(diǎn)在給出填充多邊形的顏色的步驟之前,重用了所述邊沿緩沖區(qū)格式。不需要將所得的置位子像素重新存儲(chǔ)在所述邊沿緩沖區(qū)中,而是可以將其直接用于過(guò)程的隨后步驟。
優(yōu)選地,所述圖形引擎包括一后緩沖區(qū)(back buffer),其用于在向顯示驅(qū)動(dòng)器存儲(chǔ)器的前緩沖區(qū)進(jìn)行傳輸前存儲(chǔ)圖像的一部分或全部。后緩沖區(qū)的使用避免了直接對(duì)所述前緩沖區(qū)進(jìn)行再現(xiàn),并且可以防止顯示圖像中的閃爍。
優(yōu)選地,所述后緩沖區(qū)具有與所述顯示存儲(chǔ)器的前緩沖區(qū)相同的分辨率。即,所述后緩沖區(qū)中的每個(gè)像素被映射到所述前緩沖區(qū)的對(duì)應(yīng)像素。優(yōu)選地,所述后緩沖區(qū)具有與所述前緩沖區(qū)相同的用于表示像素的顏色和深度(RGBA值)的位數(shù)/像素。
可以提供組合邏輯/電路,以順序地將由所述填充器電路產(chǎn)生的每個(gè)填充多邊形組合到所述后緩沖區(qū)中。通過(guò)這種方式,在向用于顯示的所述前緩沖區(qū)進(jìn)行傳輸之前,就在所述后緩沖區(qū)中逐多邊形地構(gòu)建了圖像。
有利的是,根據(jù)正被處理的多邊形中的像素的顏色、所述像素被所述多邊形覆蓋的百分比、以及在所述后緩沖區(qū)中的對(duì)應(yīng)像素中已經(jīng)存在的顏色,來(lái)確定存儲(chǔ)在所述后緩沖區(qū)中的每個(gè)像素的顏色。該混色步驟適合于抗混疊。
在一個(gè)優(yōu)選的實(shí)現(xiàn)中,所述邊沿緩沖區(qū)按對(duì)于每個(gè)顯示像素具有一平方數(shù)個(gè)子像素的柵格的形式存儲(chǔ)多個(gè)子像素。例如,所述邊沿緩沖區(qū)中的4×4個(gè)子像素的柵格可以對(duì)應(yīng)于一個(gè)顯示像素。根據(jù)待要繪制的邊沿對(duì)每個(gè)子像素進(jìn)行置位或復(fù)位。
在一另選實(shí)施例中,不使用所述邊沿緩沖區(qū)中相隔一個(gè)的子像素,以為每個(gè)顯示像素提供所述平方數(shù)個(gè)子像素中的一半。在該實(shí)施例中,如果所述邊沿繪制電路要求一未使用的子像素是置位的,那么將相鄰(被使用)的子像素置于其位置處。該另選實(shí)施例具有這樣的優(yōu)點(diǎn),即,對(duì)于每個(gè)顯示像素,在所述邊沿緩沖區(qū)中需要更少的位,但是稍微降低了抗混疊的質(zhì)量。
可以根據(jù)邊沿端點(diǎn)來(lái)計(jì)算每條多邊形邊沿的斜度,然后沿著連線對(duì)所述柵格的子像素進(jìn)行置位。優(yōu)選地,利用以下規(guī)則來(lái)對(duì)子像素進(jìn)行置位 對(duì)于每條多邊形邊沿,只為所述子像素柵格的每條水平線置位一個(gè)子像素; 從頂部到底部(在Y方向上)對(duì)所述多個(gè)子像素進(jìn)行置位; 不對(duì)所述線的最后一個(gè)子像素進(jìn)行置位; 反轉(zhuǎn)在所述線下置位的任何子像素。
在該實(shí)現(xiàn)中,所述填充器電路可以包括充當(dāng)用于橫貫(traverse)所述子像素柵格的虛擬筆(子像素狀態(tài)設(shè)置填充器)的邏輯/代碼,所述筆最初是關(guān)閉的,并且每當(dāng)它遇到一置位子像素時(shí),就在關(guān)閉與打開(kāi)狀態(tài)之間進(jìn)行切換。優(yōu)選地,將所得的數(shù)據(jù)饋送給合并電路,其用于將與每個(gè)像素相對(duì)應(yīng)的所述多個(gè)子像素進(jìn)行組合。
優(yōu)選地,所述虛擬筆對(duì)所述多個(gè)邊界子像素內(nèi)的所有子像素進(jìn)行置位,并且所述虛擬筆包括右手邊界的多個(gè)邊界像素,并對(duì)左手邊界的多個(gè)邊界像素進(jìn)行復(fù)位,或者反過(guò)來(lái)。這避免了使數(shù)學(xué)上不重迭的多邊形的子像素發(fā)生交迭。
優(yōu)選地,所述虛擬筆的橫貫受到限制,以便不需考慮位于所述多邊形邊沿之外的子像素。例如,可以提供一包圍所述多邊形的邊界框。
優(yōu)選地,在組合到所述后緩沖區(qū)之前,將與單個(gè)顯示像素相對(duì)應(yīng)的多個(gè)子像素(來(lái)自所述填充器電路)合并成單個(gè)像素。合并使得所述后緩沖區(qū)可以具有比所述邊沿緩沖區(qū)更小的容量,因此降低了存儲(chǔ)器需求。
可以設(shè)置組合電路,以進(jìn)行向所述后緩沖區(qū)的組合,每個(gè)合并像素被所述填充多邊形覆蓋的子像素的數(shù)目確定了一用于將所述合并像素組合到所述后緩沖區(qū)中的混合系數(shù)(blending factor)。
一旦已完全再現(xiàn)了所述顯示器的一部分上的、所述后緩沖區(qū)為其保持信息的所述圖像,就將所述后緩沖區(qū)拷貝到所述顯示存儲(chǔ)器的所述前緩沖區(qū)。事實(shí)上,所述后緩沖區(qū)可以具有與所述前緩沖區(qū)相同的大小,并且為整個(gè)顯示器保持信息。另選地,所述后緩沖區(qū)可以比所述前緩沖區(qū)小,并且只為所述顯示器的一部分存儲(chǔ)信息,所述前緩沖區(qū)中的圖像是在一系列外部通道中從所述后緩沖區(qū)中來(lái)構(gòu)建的。
在該后一另選中,如果在(到所述CPU的)每個(gè)外部通道中只將與待保持在所述后緩沖區(qū)中的所述圖像的所述部分相關(guān)的命令發(fā)送到所述圖形引擎,就縮短了所述過(guò)程。
可以為所述圖形引擎配備各種附加特征,以提高其性能。
所述圖形引擎還可以包括一曲線階化器(tesselator),以將任何曲形多邊形邊沿劃分為多個(gè)直線段,并且將所得到的多個(gè)直線段存儲(chǔ)在所述邊沿緩沖區(qū)中。
可以對(duì)所述圖形引擎進(jìn)行調(diào)整,以使所述后緩沖區(qū)保持一個(gè)或更多個(gè)圖形(預(yù)定圖像元素),所述一個(gè)或更多個(gè)圖形被傳輸?shù)剿銮熬彌_區(qū)中的由所述高級(jí)語(yǔ)言確定的一個(gè)或更多個(gè)位置處。所述圖形可以是靜態(tài)的或運(yùn)動(dòng)的圖像(子圖形(sprite)),或者甚至是文本字母。
可以為所述圖形引擎配備一細(xì)線(hairline)模式,其中,通過(guò)對(duì)一位圖中的多個(gè)子像素進(jìn)行置位并將所述位圖存儲(chǔ)在所述邊沿緩沖區(qū)中的多個(gè)位置處以形成一連線,來(lái)將多條細(xì)線存儲(chǔ)在所述邊沿緩沖區(qū)中。這種細(xì)線限定了一個(gè)像素深度的連線,并且經(jīng)常用于繪制多邊形輪廓。
當(dāng)被實(shí)現(xiàn)在硬件中時(shí),所述圖形引擎可以在大小上少于100K個(gè)門(mén),并且優(yōu)選地,少于50K個(gè)門(mén)。
可以利用本發(fā)明的圖形引擎來(lái)增強(qiáng)任何適于使用矢量圖形的顯示器。在優(yōu)選實(shí)施例中,所述顯示器是LCD或基于LED的顯示器,并且所述驅(qū)動(dòng)器電路是源驅(qū)動(dòng)器電路。
優(yōu)選地,所述顯示驅(qū)動(dòng)器電路是只用于顯示器的一個(gè)方向(即,用于行或者用于列)的驅(qū)動(dòng)器電路。其還可以包括用于控制所述顯示器的控制電路。這通常是非晶TFT LCD顯示器的源驅(qū)動(dòng)器的情況。
所述顯示驅(qū)動(dòng)器電路還可以包括還包括驅(qū)動(dòng)器控制電路,其用于連接到用于另一方向的獨(dú)立顯示驅(qū)動(dòng)器。在非晶TFT LCD顯示器中,所述源驅(qū)動(dòng)器通常對(duì)選通驅(qū)動(dòng)器進(jìn)行控制。
可以為每個(gè)驅(qū)動(dòng)器IC設(shè)置一個(gè)圖形引擎。但是,在所述圖形引擎未設(shè)置在所述驅(qū)動(dòng)器IC上的情況下,所述圖形引擎可以伺服所述顯示模塊中的多個(gè)IC,如用以驅(qū)動(dòng)稍大些的顯示器的多個(gè)源IC??梢詾樵撉闆r下的圖形引擎設(shè)置其自己的獨(dú)立IC,或者可以將所述圖形引擎嵌入控制其余源驅(qū)動(dòng)器的主源驅(qū)動(dòng)器中。
所述顯示驅(qū)動(dòng)器/模塊還可以包括顯示存儲(chǔ)器;解碼器和顯示鎖存器;定時(shí)、數(shù)據(jù)接口邏輯;控制邏輯;以及電源管理邏輯。
當(dāng)需要矢量圖形處理時(shí)(可能還有其他圖形處理),本發(fā)明還可應(yīng)用于具有顯示單元的更大的電子裝置,如PC和膝上型電腦。
本發(fā)明還涉及一電子裝置,其包括 處理單元;以及 具有顯示器的顯示單元; 其中所述處理單元將高級(jí)(矢量)圖形命令發(fā)送到所述顯示單元,并且在所述顯示單元中設(shè)有一本發(fā)明所述的圖形引擎,以根據(jù)所述高級(jí)命令來(lái)再現(xiàn)用于顯示像素的圖像數(shù)據(jù)。
所述圖形引擎不需實(shí)現(xiàn)在硬件中,而是另選地可以是一軟件圖形引擎。在該情況下,可以將必要的編碼邏輯(如果需要的話)連同用于以上細(xì)述的任何優(yōu)選特征的足夠的代碼/存儲(chǔ)器保持在CPU中。對(duì)于如上所述的電路,本領(lǐng)域的技術(shù)人員容易理解,可在軟件實(shí)現(xiàn)的代碼部分中提供同樣的功能。
所述圖形引擎可以是程序,優(yōu)選地被保持在一處理單元中,或者可以是載體上的記錄或者可以采用信號(hào)的形式。
所述圖形引擎的邏輯結(jié)構(gòu)具有幾個(gè)具體優(yōu)點(diǎn)。一個(gè)優(yōu)點(diǎn)是,一旦已將多邊形邊沿或填充命令讀入所述引擎中,就不需要存儲(chǔ)器來(lái)保持所述多邊形邊沿或填充命令??梢源蟠蠊?jié)省存儲(chǔ)器,使得所述圖形引擎尤其適于與便攜式電子裝置一起使用,而且還可用于不一定是便攜式的較大的電子裝置。
下面將參照附圖僅僅通過(guò)示例來(lái)描述本發(fā)明的優(yōu)選特征,其中 圖1是表示一優(yōu)選圖形引擎的功能模塊的框圖; 圖2是示出一優(yōu)選圖形引擎的操作的流程圖; 圖3是一個(gè)邊沿緩沖區(qū)的示意圖,其示出了要繪制的多邊形的邊沿和產(chǎn)生該多邊形的繪制命令; 圖4是一個(gè)邊沿緩沖區(qū)的示意圖,其示出了用于每個(gè)邊沿命令的子像素置位; 圖5是一個(gè)邊沿緩沖區(qū)的示意圖,其示出了一填充多邊形; 圖6是圖5中所示的填充多邊形的合并像素視圖的示意圖; 圖7a和7b分別示出了二次貝塞爾曲線和三次貝塞爾曲線; 圖8示出了根據(jù)本發(fā)明實(shí)施例的曲線階化(tessellation)過(guò)程; 圖9示出了直線和放射狀梯度的四個(gè)示例; 圖10示出了一標(biāo)準(zhǔn)梯度正方(gradient square); 圖11示出了一待繪制在所述邊沿緩沖區(qū)中的細(xì)線; 圖12示出了用以在所述邊沿緩沖區(qū)中繪制細(xì)線的初始圓形及其移動(dòng)后的位置; 圖13示出了當(dāng)已經(jīng)繪制了一細(xì)線時(shí)所述邊沿緩沖區(qū)的最終內(nèi)容; 圖14示出了演示所述邊沿緩沖區(qū)、后緩沖區(qū)和前緩沖區(qū)的內(nèi)容的序列,其中在每個(gè)通道中所述后緩沖區(qū)都保持了顯示圖像的1/3; 圖15示出了被拷貝到在所述前緩沖區(qū)中的兩個(gè)位置處的位于所述后緩沖區(qū)中的一個(gè)子圖形。
圖16示出了其中再現(xiàn)了數(shù)百個(gè)小的2D子圖形以仿真多個(gè)小顆粒的噴射的示例; 圖17示出了用于所述圖形引擎的硬件實(shí)現(xiàn); 圖18是根據(jù)本發(fā)明實(shí)施例的圖形引擎的示意圖,該圖形引擎被集成在一用于LCD或等效類型顯示器的源IC中; 圖19是根據(jù)本發(fā)明實(shí)施例的圖形引擎的示意圖,該圖形引擎被集成在一顯示模塊中,并且伺服用于LCD或等效類型顯示器的兩個(gè)源IC; 圖20是合并有一圖形引擎的源驅(qū)動(dòng)器IC及其到CPU、顯示區(qū)以及選通驅(qū)動(dòng)器IC的連接的示意圖; 圖21示出了帶有一合并圖形引擎的IC驅(qū)動(dòng)器的功能模塊; 圖22示出了TFT型結(jié)構(gòu)和尋址以及用于選通驅(qū)動(dòng)器IC的典型定時(shí)圖; 圖23示出了對(duì)LCD顯示器的源驅(qū)動(dòng),其中將來(lái)自前緩沖區(qū)的顏色信息發(fā)送到所述顯示器; 圖24示出了一去除了奇數(shù)XY位置的單個(gè)顯示像素; 圖25示出了用于忙屏示例的在CPU與顯示器之間經(jīng)由圖形引擎的數(shù)據(jù)傳輸和功率使用;以及 圖26示出了用于旋轉(zhuǎn)三角形示例的在CPU與顯示器之間經(jīng)由圖形引擎的數(shù)據(jù)傳輸和功率使用。
具體實(shí)施例方式 功能概述 圖1中的功能框例示了一示例性圖形引擎1的主要的邏輯門(mén)電路模塊。開(kāi)始,將矢量圖形命令通過(guò)輸入/輸出部10饋送給曲線階化器11,該曲線階化器11將任何曲邊沿劃分成多個(gè)直線段。所述信息傳到邊沿和細(xì)線繪制邏輯模塊12,其將結(jié)果存儲(chǔ)在邊沿緩沖區(qū)13中,在此情況下,該邊沿緩沖區(qū)13具有16位每顯示像素。將所述邊沿緩沖區(qū)信息饋送給掃描線填充器14部分,以按矢量圖形語(yǔ)言的填充命令所要求的那樣填充多邊形。將該填充多邊形信息傳送到后緩沖區(qū)15(在該情況下,又是16位每顯示像素),其又將所述圖像轉(zhuǎn)送到圖像傳送模塊16,以將所述圖像傳送到所述前緩沖區(qū)。
圖2中所示流程圖概要示出了對(duì)于已填充多邊形的全部再現(xiàn)過(guò)程。多邊形邊沿限定數(shù)據(jù)按一次一條邊沿(以一條線或曲線的形式)的方式進(jìn)入所述引擎。典型地,所述命令語(yǔ)言從后往前定義所述圖像,以將圖像的背景定義在前景中的多邊形之前(因而讀取過(guò)程同此)。若有曲線,則在將邊沿存儲(chǔ)在邊沿緩沖區(qū)中之前對(duì)曲線進(jìn)行階化。一旦存儲(chǔ)了邊沿,就丟棄用于繪制所述邊沿的命令。
在矢量圖形中,在填充一多邊形之前,由諸如“move(移動(dòng))”、“l(fā)ine(連線)”和“curve(曲線)”命令的命令來(lái)定義所述多邊形的所有邊沿,以重復(fù)進(jìn)行階化和連線繪制循環(huán)(稱為第一通道),直到讀取一填充命令。然后該過(guò)程轉(zhuǎn)到以邊沿緩沖區(qū)格式來(lái)填充多邊形顏色。這稱為第二通道。下一步是將所述多邊形顏色與后緩沖區(qū)中的相同位置處已存在的顏色進(jìn)行合成。將已填充多邊形按一次一個(gè)像素的方式添加到后緩沖區(qū)。只將后緩沖區(qū)的相關(guān)像素(被所述多邊形覆蓋的像素)與邊沿緩沖區(qū)進(jìn)行合成。
一旦將一個(gè)多邊形存儲(chǔ)在后緩沖區(qū)中,所述過(guò)程就返回以如上所述讀入下一多邊形。將該下一多邊形(其位于前一多邊形的前面)按序合成到后緩沖區(qū)中。一旦已繪制出所有多邊形,就將該圖像從后緩沖區(qū)傳送到前緩沖區(qū),所述前緩沖區(qū)例如可以位于LCD顯示器的源驅(qū)動(dòng)器IC中。
邊沿緩沖區(qū) 出于示例的目的,圖3中所示的邊沿緩沖區(qū)具有縮小的容量,并且是針對(duì)顯示器的30個(gè)像素(6×5)。所述邊沿緩沖區(qū)具有與顯示器的每個(gè)像素相對(duì)應(yīng)的4×4個(gè)子像素(16位)的子像素柵格。每個(gè)子像素只需要一位,每個(gè)子像素采用復(fù)位(默認(rèn))或置位的值。
虛線20表示待根據(jù)下面所示的命令來(lái)繪制的多邊形的邊沿。
●Move To(12,0)(移動(dòng)到(12,0)) ●Line To(20,19)(連線到(20,19)) ●Line To(0,7)(連線到(0,7)) ●Line To(12,0)(連線到(12,0)) ●Move To(11,4)(移動(dòng)到(11,4)) ●Line To(13,12)(連線到(13,12)) ●Line To(6,8)(連線到(6,8)) ●Line To(11,4)(連線到(11,4)) ●Fill(black)(填充(黑色)) 所述命令語(yǔ)言引用子像素坐標(biāo),這通常用于對(duì)角部的精確定位。將除填充命令以外的所有命令處理為第一通道的一部分。所述填充命令啟動(dòng)了第二通道,以填充所述多邊形并將其組合到后緩沖區(qū)中。
圖4示出了用于每個(gè)連線命令的子像素置位。出于圖示目的,只沿著所述虛線示出了置位的子像素21。由于縮小的容量,它們不能準(zhǔn)確地表示將利用下面示出的命令或規(guī)則和代碼來(lái)置位的子像素。
按在所述命令語(yǔ)言中定義的順序?qū)⑦呇乩L制到邊沿緩沖區(qū)中。對(duì)于每條連線,根據(jù)其端點(diǎn)計(jì)算出斜度,然后沿著所述連線對(duì)子像素進(jìn)行置位。每時(shí)鐘周期對(duì)一個(gè)子像素進(jìn)行置位。
使用以下規(guī)則來(lái)對(duì)子像素進(jìn)行置位 對(duì)于每條多邊形邊沿,只對(duì)所述子像素柵格的每條水平連線的一個(gè)子像素進(jìn)行置位; 從頂部到底部(在Y方向上)對(duì)子像素進(jìn)行置位; 反轉(zhuǎn)任何在所述連線下置位的子像素; 不對(duì)所述連線的最后一個(gè)子像素進(jìn)行置位。
反轉(zhuǎn)規(guī)則用來(lái)處理諸如在字符“X”中的復(fù)雜多邊形的自相交。若沒(méi)有所述反轉(zhuǎn)規(guī)則,那么準(zhǔn)確的相交點(diǎn)可能只有一個(gè)置位子像素,這將使后述填充算法變得混亂。無(wú)疑,所述反轉(zhuǎn)規(guī)則的必要性使得避免多個(gè)邊沿的端點(diǎn)的重迭變得重要。由于反轉(zhuǎn),任何這種點(diǎn)將消失。
為避免這種在同一多邊形上的連續(xù)連線的端點(diǎn)的重迭,不對(duì)最低的子像素進(jìn)行置位。
例如,根據(jù)命令序列 Moveto(0,0)(移動(dòng)到(0,0)) Lineto(0,100)(連線到(0,100)) Lineto(0,200)(連線到(0,200)) 實(shí)際上從0,00到0,99繪制了第一邊沿,而第二連線從0,100開(kāi)始到01,99。結(jié)果是一實(shí)線。由于是從頂部到底部繪制所述連線的,所以最后一個(gè)子像素也是最低子像素(除非連線是完全水平的,如在該情況中)。
以下代碼部分實(shí)現(xiàn)了用于根據(jù)以上規(guī)則對(duì)邊界子像素進(jìn)行置位的算法?!癴or(iy=y(tǒng)0+1;iy<y1;iy++)”循環(huán)之前的代碼對(duì)于每條邊沿運(yùn)行一次,并且“for(iy=y(tǒng)0+1;iy<y1;iy++)”循環(huán)中的代碼在每個(gè)時(shí)鐘周期中都運(yùn)行。
void edgedraw(int x0,int y0,int x1,int y1){float tmpx,tmpy;float step,dx,dy;int iy,ix;int bit,idx;∥Remove non visible linesif((y0==y(tǒng)1)) return; ∥Horizontal lineif(y0<0)&&(y1<0))return; ∥Out top<!-- SIPO <DP n="13"> --><dp n="d13"/>if(x0>(176*4))&&(x1>(176*4)))return; ∥Out rightif(y0>(220*4))&&(y1>(220*4)))return; ∥Out bottom∥Always draw from top to bottom(Y Sort)if(y1<y0){tmpx=x0;x0=x1;x1=tmpx;tmpy=y(tǒng)0;y0=y(tǒng)1;y1=tmpy;}∥Init linedx=x1-x0;dy=y(tǒng)1-y0;if(dy==0)dy=1;step=dx/dy;∥Calculate slope of the lineix=x0;iy=y(tǒng)0;∥Bit order in sbuf(16 sub-pixels per pixel)∥0123∥4567∥89ab∥cdef∥Index=Y(jié)YYYYYYXXXXXXXyyxx∥four lsb of indx used to index bits within the unsigned shortif(ix<0)ix=0;<!-- SIPO <DP n="14"> --><dp n="d14"/>if(ix>(176*4))ix=176*4;if(iy>0){idx=((ix>>2)&511)|((iy>>2)<<9); ∥Integer partbit=(ix&3)|(iy&3)<<2;sbuf[idx&262143]^=(1<<bit);}for(iy=y(tǒng)0+1;iy<y1;iy++){if(iy<0)continue;if(iy>220*4)continue;ix=x0+step*(iy-y0);if(ix<0)ix=0;if(ix>(176*4))ix=176*4;idx=((ix>>2)&511)|((iy>>2)<<9); ∥Integer partbit=(ix&3)|(iy&3)<<2;sbuf[idx&262143]^=(1<<bit);}} 圖5示出了子像素分辨率下的填充多邊形。暗的子像素是置位的。這里應(yīng)當(dāng)注意,由填充器電路來(lái)執(zhí)行所述填充過(guò)程,并且無(wú)需將結(jié)果重新存儲(chǔ)在邊沿緩沖區(qū)。該圖只是發(fā)送到所述過(guò)程中的下一步驟的置位子像素的表示。所述多邊形由一橫跨子像素柵格進(jìn)行移動(dòng)的虛擬標(biāo)記器或筆來(lái)填充,該筆最初是關(guān)閉的,并且每當(dāng)其遇到一置位子像素時(shí),就在關(guān)閉與打開(kāi)狀態(tài)之間進(jìn)行切換。在該示例中,所述筆每次一個(gè)子像素從左向右移動(dòng)。如果所述筆在上方并且子像素是置位的,則使所述像素保持置位,并且所述筆對(duì)隨后的像素進(jìn)行置位,直到它到達(dá)另一置位像素。將該第二置位像素復(fù)位,并且所述筆保持在上方并繼續(xù)向右。
該方法包括所述多邊形的左部的邊界子像素,但是略去了右邊界上的子像素。其原因是,如果兩個(gè)鄰接多邊形共有同一邊沿,那么對(duì)于將任何給定子像素指配給哪個(gè)多邊形,必須具有一致性,以避免對(duì)于在數(shù)學(xué)上不重迭的多邊形出現(xiàn)重迭的子像素。
一旦已填充完邊沿緩沖區(qū)中的多邊形,就可以合并屬于每個(gè)像素的多個(gè)子像素并將其組合到后緩沖區(qū)中。每個(gè)4×4的小柵格的覆蓋率給出了顏色的濃度。例如,在最上一行像素中從左側(cè)起的第三個(gè)像素具有12/16的置位像素。其覆蓋率為75%。
組合到后緩沖區(qū)中 圖6示出了待組合到后緩沖區(qū)中的每個(gè)像素及其根據(jù)圖5中所示的每個(gè)像素的置位子像素計(jì)算出的4位(0...F,十六進(jìn)制數(shù))混合系數(shù)。每個(gè)時(shí)鐘周期將一個(gè)像素組合到后緩沖區(qū)中。只有在邊沿緩沖區(qū)中存儲(chǔ)的是非0值時(shí)才對(duì)像素進(jìn)行組合。
后緩沖區(qū)不需要與邊沿緩沖區(qū)在大小上相同,而是可以更小,例如與顯示器的顯示尺寸或一部分相對(duì)應(yīng)。
在該示例中,后緩沖區(qū)中的多邊形的分辨率是其在邊沿緩沖區(qū)中的大小的四分之一。所述雙通道方法和在將多邊形存儲(chǔ)在后緩沖區(qū)中之前進(jìn)行合并的好處是顯著地減少了要求所需的總存儲(chǔ)量。對(duì)于置位和復(fù)位值,邊沿緩沖區(qū)需要1位每子像素。但是,后緩沖區(qū)需要16位每像素,以表示要顯示的陰影,并且,如果將后緩沖區(qū)用來(lái)對(duì)邊界子像素進(jìn)行置位并填充所得到的多邊形,那么需要的存儲(chǔ)量將是邊沿緩沖區(qū)和后緩沖區(qū)的組合的八倍,即,需要十六個(gè)16位緩沖區(qū),而不是兩個(gè)16位緩沖區(qū)。
將邊沿緩沖區(qū)壓縮到8位 以上,將邊沿緩沖區(qū)描述成具有一被組織為4×4位的16位值。一另選排列通過(guò)將每像素的邊沿緩沖數(shù)據(jù)減少到8位,可以將需要的存儲(chǔ)器減少50%。
這是通過(guò)從單個(gè)顯示像素的4×4布局中去除奇數(shù)XY位置來(lái)實(shí)現(xiàn)的,如圖24中所示。
如果一待繪制到邊沿緩沖區(qū)的子像素具有屬于沒(méi)有位存儲(chǔ)的位置的坐標(biāo),那么將其右移一步。例如,將在以上所示的局部柵格中的右上子像素右移到下一顯示像素的局部柵格。將以下代碼行添加到以上所示的代碼中。
if((LSB(X)xor LSB(Y))=1)Y=Y(jié)+1;∥LSB()returns the lowest bit of acoordinate 這使得在可以容納子像素的4×4布局中只留有8個(gè)位置。將這些位置包裝成8位數(shù)據(jù),并且和前面一樣,存儲(chǔ)到所述邊沿緩沖區(qū)。
8位每像素的邊沿緩沖區(qū)是另選的,而不是對(duì)16位每像素的緩沖區(qū)的替換。圖形保真質(zhì)量下降很少,因此減少50%存儲(chǔ)器的好處可能比該缺點(diǎn)重要。
曲線的繪制 圖7a和7b分別示出了二次和三次貝塞爾曲線。對(duì)于對(duì)稱的控制點(diǎn)排列,這兩者總是對(duì)稱的。這種曲線的多邊形繪制是通過(guò)將該曲線切分成多個(gè)短線段(階化)來(lái)實(shí)現(xiàn)的。將所述曲線數(shù)據(jù)作為矢量圖形命令發(fā)送到圖形引擎。在所述圖形引擎中而不是在CPU中進(jìn)行階化,減少了對(duì)于每個(gè)多邊形發(fā)送到顯示模塊的數(shù)據(jù)量。圖7a中示出的二次貝塞爾曲線具有3個(gè)控制點(diǎn)??梢詫⑵涠x為Moveto(x1,y1)、CurveQto(x2,y2,x3,y3)。
三次貝塞爾曲線總是經(jīng)過(guò)端點(diǎn),并且與最后兩個(gè)控制點(diǎn)和最初兩個(gè)控制點(diǎn)之間的連線相切??梢詫⑷呜惾麪柷€定義為Moveto(x1,y1)、CurveCto(x2,y2,x3,y3,x4,y4)。
以下代碼示出了兩個(gè)函數(shù)。在階化過(guò)程中,每個(gè)函數(shù)被調(diào)用N次,其中N是產(chǎn)生的線段的數(shù)目。函數(shù)Bezier3用于二次曲線,函數(shù)Bezier4用于三次曲線。輸入值p1-p4是控制點(diǎn),而mu是在階化過(guò)程中從0到1增加的數(shù)。mu值為0時(shí)返回p1,而mu值為1時(shí)返回最后一個(gè)控制點(diǎn)。
XY Bezier3(XY p1,XY p2,XY p3,double mu){<!-- SIPO <DP n="17"> --><dp n="d17"/>double mum1,mum12,mu2;XY p;mu2=mu*mu;mum1=1-mu;mum12=mum1*mum1;p.x=p1.x*mum12+2*p2.x*mum1*mu+p3.x*mu2;p.y=p1.y*mum12+2*p2.y*mum1*mu+p3.y*mu2;return(p);}XY Bezier4(XY p1,XY p2,XY p3,XY p4,double mu){double mum1,mum13,mu3;XY p;mum1=1-mu;mum13=mum1*mum1*mum1;mu3=mu*mu*mu;p.x=mum13*p1.x+3*mu*mum1*mum1*p2.x+3*mu*mu*mum1*p3.x+mu3*p4.x;p.y=mum13*p1.y+3*mu*mum1*mum1*p2.y+3*mu*mu*mum1*p3.y+mu3*p4.y;return(p);} 以下代碼是一如何對(duì)由三個(gè)控制點(diǎn)(sx,sy),(x0,y0)以及(x1,y1)定義的二次貝塞爾曲線進(jìn)行階化的示例。階化計(jì)數(shù)器x從1開(kāi)始,因?yàn)槿绻涫橇愕脑?,所述函?shù)將返回到第一個(gè)控制點(diǎn),其結(jié)果是一零長(zhǎng)度的連線。
XY p1,p2,p3;p1.x=sx;p1.y=sy;p2.x=x0;p2.y=y(tǒng)0;p3.x=x1;p3.y=y(tǒng)1;#define split 8for(x=1;x<=split;x++){p=Bezier3(p1,p2,p3,x/split);∥Calculate next point on curve pathLineTo(p.x,p.y);∥Send LineTo command to EdgeDraw unit} 圖8示出了在上述代碼段中定義的曲線階化過(guò)程,并且返回了N個(gè)線段。中心循環(huán)對(duì)每個(gè)線段都重復(fù)執(zhí)行。
填充類型 采用高級(jí)語(yǔ)言定義的多邊形的顏色可以是單色,即,對(duì)于整個(gè)多邊形,是一個(gè)恒定的RGBA(紅、綠、藍(lán)、透明度)值,或者可以具有一放射狀或線性梯度。
梯度可以具有多達(dá)八個(gè)控制點(diǎn)。在所述控制點(diǎn)之間對(duì)顏色進(jìn)行插值,以產(chǎn)生顏色過(guò)渡區(qū)(colour ramp)。每個(gè)控制點(diǎn)由一比值和一RGBA顏色來(lái)定義。所述比值確定該控制點(diǎn)在所述梯度中的位置,而所述RGBA值確定其顏色。
無(wú)論是何種填充類型,當(dāng)將所填充的多邊形組合到后緩沖區(qū)中時(shí),都將在所述混合過(guò)程中計(jì)算每個(gè)像素的顏色。所述放射狀或線性梯度僅僅是需要更復(fù)雜的處理,以沿著所述顏色過(guò)渡區(qū)合并每個(gè)單獨(dú)像素的位置。
圖9給出了四個(gè)線狀和放射狀梯度的示例??梢詫⑺羞@些結(jié)合本發(fā)明的圖形引擎一起來(lái)自由地使用。
圖10示出了一標(biāo)準(zhǔn)梯度正方。所有梯度被定義在一稱為梯度正方的標(biāo)準(zhǔn)空間中。所述梯度正方以(0,0)為中心,并且從(-16384,-16384)延伸到(16384,16384)。
在圖10中,將一線狀梯度映射到一直徑為4096單位并且圓心在(2048,2048)處的圓上。該映射所需的2×3矩陣為0.1250.0000.0000.1252048.0002048.000 即,將所述梯度縮為其原尺寸的八分之一(32768/4096=8),并且平移到(2048,2048)。
圖11示出了待繪制在邊沿緩沖區(qū)中的細(xì)線23。細(xì)線是具有一個(gè)像素的寬度的直線。所述圖形引擎以一種特殊的方式來(lái)支持細(xì)線的再現(xiàn)。當(dāng)打開(kāi)細(xì)線模式時(shí),邊沿繪制單元不應(yīng)用針對(duì)普通邊沿繪制所描述的四個(gè)特殊規(guī)則。而且,對(duì)所述邊沿緩沖區(qū)的內(nèi)容進(jìn)行不同的處理。將所述細(xì)線繪制到邊沿緩沖區(qū),同時(shí)立即(on the fly)執(zhí)行填充操作。即,不存在獨(dú)立的填充操作。因此,一旦為當(dāng)前繪制圖元(例如,多邊形輪廓)繪制出所有細(xì)線,邊沿緩沖區(qū)中的每個(gè)像素就包含了填充子像素,該填充子像素可用于由掃描線填充器對(duì)置位子像素進(jìn)行計(jì)算以得到覆蓋率信息和對(duì)所述像素進(jìn)行常規(guī)顏色操作(混合到后緩沖區(qū))。這里使用的連線步進(jìn)(line stepping)算法是一種標(biāo)準(zhǔn)的和公知的具有子像素級(jí)步進(jìn)的Bresenham線算法。
對(duì)于每一步,都將一實(shí)心圓的4×4像素圖像24(利用“或”操作)繪制到邊沿緩沖區(qū)。這是圖11中所示的較暗的形狀。由于該4×4子像素的偏移并不總是與所述邊沿緩沖區(qū)中的4×4子像素精確地對(duì)準(zhǔn),所以可能有必要將多達(dá)四次讀取-修改-寫(xiě)入循環(huán)用于所述邊沿緩沖區(qū),在所述邊沿緩沖區(qū)中,將數(shù)據(jù)在X和Y方向上按位來(lái)移動(dòng),以校準(zhǔn)位置。
實(shí)現(xiàn)Bresenham算法的邏輯非常簡(jiǎn)單,并且可以將其作為獨(dú)立模塊提供在所述邊沿繪制單元內(nèi)。在常規(guī)多邊形再現(xiàn)操作中,該邏輯將是空閑的。
圖12示出了原始圓形及其移動(dòng)后的位置。左手側(cè)的圖像示出了用于將所述連線“畫(huà)”到邊沿緩沖區(qū)中的4×4子像素形狀。右側(cè)的圖像是向右移動(dòng)了三步并且向下移動(dòng)了兩步的移動(dòng)后的位圖的示例。需要四次存儲(chǔ)器訪問(wèn)來(lái)將全部形狀繪制到存儲(chǔ)器中。
可以利用相同的概念來(lái)繪制寬度大于一個(gè)像素的連線,但是效率會(huì)顯著降低,這是因?yàn)樗鲂螤钆c較早繪制出的形狀的交迭區(qū)將變大。
圖13示出了邊沿緩沖區(qū)的最終內(nèi)容,其具有如上所述同時(shí)地繪制和填充的子像素細(xì)線25。接下來(lái)的步驟是向后緩沖區(qū)的合并和組合。
以下是采用Pascal語(yǔ)言實(shí)現(xiàn)的Bresenham連線算法的通用示例。在每個(gè)時(shí)鐘周期中,都執(zhí)行以注釋“{Draw the pixels}”開(kāi)始的代碼,而其余代碼每次子像素連線執(zhí)行一次。
procedure Line(x1,y1,x2,y2integer;colorbyte);var i,deltax,deltay,numpixels,d,dinc1,dinc2,x,xinc1,xinc2,y,yinc1,yinc2integer;begin{Calculate deltax and deltay for initialisation}deltax=abs(x2-x1);<!-- SIPO <DP n="21"> --><dp n="d21"/>deltay=abs(y2-y1);{Initialize all vars based on which is the independent variable}if deltax>=deltay thenbegin{x is independent variable}numpixels=deltax+1;d=(2*deltay)-deltax;dinc1=deltay Shl 1;dinc2=(deltay-deltax)shl 1;xinc1=1;xinc2=1;yinc1=0;yinc2=1;endelsebegin{y is independent variable}numpixels=deltay+1;d=(2*deltax)-deltay;dinc1=deltax Shl 1;dinc2=(deltax-deltay)shl 1;xinc1=0;xinc2=1;yinc1=1;yinc2=1;end;{Make sure x and y move in the right directions}<!-- SIPO <DP n="22"> --><dp n="d22"/>if x1>x2 thenbeginxinc1=-xinc1;xinc2=-xinc2;end;if y1>y2 thenbeginyinc1=-yinc1;yinc2=-yinc2;end;{Start drawing at}x=x1;y=y(tǒng)1;{Draw the pixels}for i=1 to numpixels dobeginPutPixel(x,y,color);if d<0 thenbegind=d+dinc1;x=x+xinc1;y=y(tǒng)+yinc1;endelsebegind=d+dinc2;x=x+xinc2;<!-- SIPO <DP n="23"> --><dp n="d23"/>y=y(tǒng)+yinc2;end;end;end; 后緩沖區(qū)大小 理想地,其中在向顯示模塊進(jìn)行傳輸前存儲(chǔ)所有多邊形的后緩沖區(qū)與前緩沖區(qū)大小相同(并且具有顯示模塊分辨率,即,在任何時(shí)候所述后緩沖區(qū)的一個(gè)像素總與所述顯示器的一個(gè)像素相對(duì)應(yīng))。但是在某些配置中,由于大小/成本的原因,不可能具有實(shí)際大小的后緩沖區(qū)。
可以在硬件實(shí)現(xiàn)之前選擇后緩沖區(qū)的大小。其始終與前緩沖區(qū)的大小相同或者比前緩沖區(qū)更小。如果它較小,那么它通常與整個(gè)顯示寬度相對(duì)應(yīng),但是只與顯示高度的一部分相對(duì)應(yīng),如圖14中所示。在該情況下,邊沿緩沖區(qū)13無(wú)需具有與前緩沖區(qū)相同的大小。在任何情況下,都要求所述后緩沖區(qū)的每個(gè)像素具有一個(gè)子像素柵格。
如果如圖14中所示,后緩沖區(qū)15比前緩沖區(qū)17要小,那么在多個(gè)外部通道中執(zhí)行再現(xiàn)操作。這意味著在主機(jī)CPU上運(yùn)行的軟件必須將至少一些所述數(shù)據(jù)重新發(fā)送到所述圖形引擎,這將增加為相同的所得圖像傳送的數(shù)據(jù)的總量。
圖14的示例示出了一在垂直方向上是前緩沖區(qū)17的1/3的后緩沖區(qū)15。在該示例中,只再現(xiàn)了一個(gè)三角形。在三個(gè)通道中對(duì)所述三角形進(jìn)行再現(xiàn),在三個(gè)步驟中對(duì)所述前緩沖區(qū)進(jìn)行填充。重要的是,在將所述后緩沖區(qū)拷貝到所述前緩沖區(qū)之前,對(duì)所述后緩沖區(qū)中的圖像部分中的所有內(nèi)容完全地進(jìn)行再現(xiàn)。因此,無(wú)論最終圖像的復(fù)雜程度(多邊形的數(shù)目)如何,在該示例配置中,總是將最多三個(gè)圖像從所述后緩沖區(qū)傳送到所述前緩沖區(qū)。
不必將含有所有moveto、lineto、curveto命令的主機(jī)應(yīng)用中的整個(gè)數(shù)據(jù)庫(kù)發(fā)送到所述圖形引擎三次。而只需要位于所述圖像的當(dāng)前區(qū)域內(nèi)的命令、或者與當(dāng)前區(qū)域的上邊沿或下邊沿相交的命令。因此,在圖14的示例中,無(wú)需為頂部區(qū)域發(fā)送限定所述三角形的左下邊沿的lineto命令,因?yàn)樵搇ineto命令不接觸第一(頂部)區(qū)域。在第二區(qū)域中,由于所有連線都接觸所述區(qū)域,所以必須發(fā)送所有三條lineto命令。而在第三區(qū)域中,不必傳送所述三角形的左上部的lineto。
很清楚,在不發(fā)送該代碼選擇的情況下,最終結(jié)果也將是正確的,但是該選擇減少了對(duì)CPU與所述圖形引擎之間的帶寬要求。例如,在一在屏幕上再現(xiàn)許多文本的應(yīng)用中,對(duì)要再現(xiàn)的每個(gè)文本串的邊界框(bounding box)的快速檢查將使得可快速舍棄許多再現(xiàn)命令。
子圖形 既然已經(jīng)例示了容量較小的后緩沖區(qū)的概念及其向前緩沖區(qū)的傳輸,就容易理解如何將類似的過(guò)程用于再現(xiàn)2D或3D圖形或子圖形。子圖形通常是運(yùn)動(dòng)圖像,如游戲中的角色或圖標(biāo)。所述子圖形是被按限定位置傳送到所述前緩沖區(qū)的完整實(shí)體。因此,在后緩沖區(qū)比前緩沖區(qū)小的情況下,可以將每個(gè)通道中的后緩沖區(qū)內(nèi)容看作一個(gè)2D子圖形。
可以要么利用多個(gè)多邊形,要么通過(guò)簡(jiǎn)單地從CPU傳送一位圖,來(lái)再現(xiàn)子圖形的內(nèi)容。由于2D子圖形具有可配置的寬度、高度和XY偏移量來(lái)指示將后緩沖區(qū)的哪個(gè)部分傳送到前緩沖區(qū)中的哪個(gè)XY位置,所以可將2D子圖形傳送到所述前緩沖區(qū)。
圖14的示例實(shí)際上是將三個(gè)子圖形再現(xiàn)到前緩沖區(qū),其中所述子圖形的大小是完整的后緩沖區(qū),并且將目標(biāo)位置的偏移從頂部向底部移動(dòng),以覆蓋完整的前緩沖區(qū)。而且,在圖像傳送之間對(duì)所述子圖形(后緩沖區(qū))的內(nèi)容進(jìn)行再現(xiàn)。
圖15示出了將后緩沖區(qū)中的一個(gè)子圖形拷貝到前緩沖區(qū)中的兩個(gè)位置。由于可以配置所述子圖形的寬度、高度和XY偏移量,所以也可以在后緩沖區(qū)中存儲(chǔ)多個(gè)不同的子圖形,并且將它們按任何順序繪制到前緩沖區(qū)中的任何位置處,并且在不需將所述子圖形位圖從主機(jī)上載到圖形引擎的情況下,可以對(duì)其進(jìn)行多次繪制。這種操作的一個(gè)實(shí)用示例是將一字體集的每個(gè)字符的小位圖存儲(chǔ)在后緩沖區(qū)中。然后通過(guò)從CPU發(fā)出圖像傳送命令,可以將位映像文本/字體繪制到前緩沖區(qū)中,其中為每個(gè)字母限定了源(后緩沖區(qū))的XY偏移量。
圖16示出了其中對(duì)數(shù)百個(gè)小的2D子圖形進(jìn)行再現(xiàn)以仿真多個(gè)小顆粒的噴射的示例。
圖形引擎的硬件實(shí)現(xiàn) 如圖17中所示,實(shí)現(xiàn)了一硬件實(shí)現(xiàn)。該圖示出了所述實(shí)現(xiàn)的內(nèi)部單元的更詳細(xì)的框圖。
邊沿繪制電路由圖17中所示的邊沿繪制單元以及邊沿緩沖存儲(chǔ)器控制器來(lái)形成。
填充電路被示出為掃描線填充器,其帶有蒙板生成器單元中的虛擬筆和合并邏輯(用于將子像素合并成對(duì)應(yīng)的像素)。后緩沖存儲(chǔ)器控制器將所合并的像素組合到所述后緩沖區(qū)中。
在該硬件實(shí)現(xiàn)中,使用“裁剪器”裝置來(lái)去除不可見(jiàn)連線。其目的是裁剪多邊形邊沿,以在保持連線的斜度和位置的同時(shí),使得多邊形邊沿的端點(diǎn)始終位于屏幕區(qū)內(nèi)。這基本上是一性能最優(yōu)化模塊,并且將其功能實(shí)現(xiàn)為edgedraw函數(shù)中的以下四個(gè)if子句 if(iy<0)continue; if(iy>220*4)continue; if(ix<0)ix=0; if(ix>(176*4))ix=176*4; 如果兩個(gè)端點(diǎn)在同一側(cè)處于顯示屏幕區(qū)的外面,那么不處理該邊沿;否則,對(duì)于任何位于所述屏幕區(qū)外的端點(diǎn),裁剪器都計(jì)算邊沿在何處與屏幕相交,然后只從該交點(diǎn)處對(duì)所述邊沿的“可見(jiàn)”部分進(jìn)行處理。
在硬件中,如上所述地裁剪端點(diǎn)更有意義,而不是去除單個(gè)子像素,這是因?yàn)槿绻呇胤浅iL(zhǎng),并且延伸到屏幕之外很遠(yuǎn)處,那么所述硬件將花費(fèi)很多時(shí)鐘周期而不生成可用的子像素。將這些時(shí)鐘周期花在裁剪上更好。
填充橫貫單元從邊沿緩沖區(qū)讀取數(shù)據(jù),然后將讀入的數(shù)據(jù)發(fā)送到蒙板生成器。所述填充橫貫無(wú)需橫穿整個(gè)子像素柵格。例如,它可以只處理屬于包圍整個(gè)多邊形的矩形(邊界框)的所有像素。這保證了所述蒙板生成器接收到多邊形的所有子像素。在某些情況下,該邊界框可能遠(yuǎn)離最優(yōu)橫貫圖案。理想地,填充橫貫單元應(yīng)當(dāng)略去位于所述多邊形之外的子像素。有多種方法來(lái)向所述填充橫貫單元添加智能,以避免這種從邊沿緩沖區(qū)讀取空子像素的操作。這種最優(yōu)化的一個(gè)示例是對(duì)于每條掃描線(或子像素的水平線),存儲(chǔ)發(fā)送到邊沿緩沖區(qū)的最左端和最右端子像素,然后只在這些最左端與最右端之間進(jìn)行橫貫。
蒙板生成器單元僅僅含有用于對(duì)讀入的邊沿緩沖區(qū)子像素進(jìn)行填充操作的“虛擬筆”以及用于計(jì)算所得覆蓋率的邏輯。然后將該數(shù)據(jù)發(fā)送到用于組合到后緩沖區(qū)(混色)的后緩沖存儲(chǔ)器控制器。
下表示出了所述圖形引擎內(nèi)的各種單元的近似門(mén)數(shù)以及與前面的適當(dāng)位置處的描述有關(guān)的注釋。單元名門(mén)數(shù)注釋輸入fifo3000優(yōu)選地,實(shí)現(xiàn)為RAM階化器5000-8000如上所述的曲線階化器控制1400Ysort和斜度劃分6500作為以上邊沿繪制代碼部的開(kāi)始Fifo3300同時(shí)進(jìn)行排序和裁剪工作裁剪器8000刪除屏幕之外的邊沿邊沿橫貫1300橫穿子像素柵格,以對(duì)合適的子像素進(jìn)行置位填充橫貫2200邊界框橫貫。當(dāng)被優(yōu)化成跳過(guò)未覆蓋的區(qū)域時(shí),需要更多的門(mén)。蒙板生成器1100當(dāng)加入了線性和放射狀梯度邏輯時(shí),需要更多選通門(mén)邊沿緩沖存儲(chǔ)器控制器2800包括最后數(shù)據(jù)高速緩存后緩沖存儲(chǔ)器控制器4200包括透明度混合總數(shù)~40000 將圖形引擎集成到顯示模塊 圖18是根據(jù)本發(fā)明實(shí)施例的包括圖形引擎1的顯示模塊5的示意圖,該圖形引擎1被集成到用于LCD或等效類型的顯示器8的源IC3中。CPU2被示出為遠(yuǎn)離顯示模塊5。將所述引擎直接與所述源驅(qū)動(dòng)器IC集成在一起有多個(gè)特殊優(yōu)點(diǎn)。尤其是,在同一硅結(jié)構(gòu)內(nèi)進(jìn)行互連,這使得該連接比分立封裝更省電。而且,無(wú)需專門(mén)的I/O緩沖區(qū)和控制電路。無(wú)需獨(dú)立的制造和測(cè)試,并且重量和尺寸的增加最小。
該圖示出了一典型布置,其中LCD顯示器的源IC還充當(dāng)用于選通IC4的控制IC。
圖19是根據(jù)本發(fā)明實(shí)施例的包括圖形引擎1的顯示模塊5的示意圖,該顯示模塊5被集成到所述顯示模塊中,并且伺服用于LCD或等效類型的顯示器的兩個(gè)源IC3??梢詫⑺鰣D形引擎設(shè)置在一圖形引擎IC上,該圖形引擎IC待與顯示控制IC相鄰地安裝在顯示模塊的反面上。它將占用裝置殼中的最小額外空間,并且是顯示模塊封裝的一部分。
在該示例中,源IC3再次充當(dāng)用于選通IC4的控制器。將CPU命令饋送到所述圖形引擎,并且在所述引擎中將所述CPU命令分成用于每個(gè)源IC的信號(hào)。
圖20是帶有嵌入式源驅(qū)動(dòng)器IC的顯示模塊5的示意圖,所述嵌入式源驅(qū)動(dòng)器IC合并有一圖形引擎及其到CPU、顯示區(qū)以及選通驅(qū)動(dòng)器IC的連接的。該圖更詳細(xì)地示出了這些部分之間的通信。同時(shí)作為驅(qū)動(dòng)器IC和控制器IC的源IC具有一用于控制所述選通驅(qū)動(dòng)器的控制電路、LCD驅(qū)動(dòng)器電路、接口電路以及圖形加速器。接口電路與源驅(qū)動(dòng)器之間的直接連接(繞開(kāi)所述圖形引擎)使得所述顯示器可以在沒(méi)有所述圖形引擎的情況下工作。
圖21示出了所述顯示驅(qū)動(dòng)器IC中的組件模塊。
沒(méi)有示出電源電路。其可以被集成,或者作為一分立裝置。該電源電路取決于所用顯示器的類型。
而且,沒(méi)有示出所述選通(Y/行方向)驅(qū)動(dòng)器電路的任何細(xì)節(jié),因?yàn)槠淝闆r與所述電源電路的類似,并且選通驅(qū)動(dòng)器的類型和本發(fā)明無(wú)關(guān)。
應(yīng)該注意,顯示控制IC(源驅(qū)動(dòng)器)和圖形引擎的組合并不必定排除現(xiàn)有顯示控制IC的任何功能性。
帶有FIFO的接口電路 所使用的接口類型可能取決于終端客戶需求(例如8位并行、16位并行、各種控制信號(hào))。接口10具有控制雙向數(shù)據(jù)流的能力。數(shù)據(jù)流主要來(lái)自CPU,但是,也存在從顯示存儲(chǔ)器(前緩沖區(qū))讀回?cái)?shù)據(jù)的可能性。直接讀/寫(xiě)可以用于低級(jí)指令或低級(jí)CPU交互(BIOS級(jí)等)。
所述FIFO接口可以與例如Intel或Motorola標(biāo)準(zhǔn)外設(shè)接口總線或任何自定義類型總線相兼容/適應(yīng)。
控制信號(hào)用于為沿任一方向的數(shù)據(jù)傳輸執(zhí)行信號(hào)交換(handshaking)。例如,數(shù)據(jù)傳輸可以是向控制寄存器(控制邏輯)的寫(xiě)入操作以指示所述電路進(jìn)行操作,或者可以是對(duì)控制/狀態(tài)寄存器的讀取操作以校驗(yàn)所述電路的狀態(tài)或操作執(zhí)行的狀態(tài)(完成或未完成)。
通常,所述接口電路有兩種與數(shù)據(jù)流有關(guān)的操作模式 a)基本模式,其繞開(kāi)圖形加速,(經(jīng)由數(shù)據(jù)接口邏輯)向顯示存儲(chǔ)器直接進(jìn)行寫(xiě)入操作,或 b)加速模式,其將高級(jí)命令發(fā)送到所述圖形加速器以對(duì)它們進(jìn)行解譯。
所述基本模式(直接寫(xiě)入顯示存儲(chǔ)器)可以用于以下情形 在上電期間,(由主機(jī)CPU執(zhí)行的)低層初始化例程可能清除或初始化顯示存儲(chǔ)器,以顯示低層(BIOS類型)消息,或者顯示標(biāo)識(shí)或其他圖形。
無(wú)論是否存在圖形加速,主機(jī)CPU都可以直接訪問(wèn)顯示存儲(chǔ)器,以按向上兼容(legacy compatible)模式(如在現(xiàn)有技術(shù)中一樣)使用所述電路。如果必要,可以出于兼容性的原因而使用此模式。
主機(jī)CPU在需要信息以對(duì)當(dāng)前所顯示的圖像執(zhí)行變換的情況下,可以讀出所述顯示存儲(chǔ)器的內(nèi)容。
在以上情況下使用的基本模式是基于位像數(shù)據(jù)格式的。其中將采用高級(jí)命令形式的數(shù)據(jù)(經(jīng)由命令緩沖區(qū)/FIFO)發(fā)送到所述圖形加速器的第二加速模式(b)),是這里描述的帶來(lái)關(guān)鍵益處的模式。
前面已經(jīng)參照?qǐng)D1到16對(duì)曲線階化器11、邊沿繪制部12、邊沿緩沖存儲(chǔ)器13、掃描線填充器14以及后緩沖區(qū)模塊進(jìn)行了詳細(xì)描述。
控制邏輯&電源管理 該中央單元7控制電路的總體操作。其與所述接口電路和LCD定時(shí)控制邏輯相連接,并且對(duì)圖形加速的所有單元、與主機(jī)CPU的數(shù)據(jù)交換以及對(duì)顯示存儲(chǔ)器的訪問(wèn)進(jìn)行控制。
控制/狀態(tài)寄存器組用于控制電路的操作。主機(jī)CPU(經(jīng)由所述接口電路)將值寫(xiě)入控制寄存器,以指配操作模式并且指示電路要對(duì)隨后來(lái)自主機(jī)CPU的數(shù)據(jù)作何處理。相應(yīng)地,使用狀態(tài)寄存器組來(lái)表示先前發(fā)出的指令的當(dāng)前狀態(tài)和進(jìn)度/完成程度。
該單元還為圖形加速器、數(shù)據(jù)接口邏輯的所有模塊以及LCD定時(shí)控制邏輯模塊生成控制和定時(shí)信號(hào)。這些信號(hào)對(duì)在圖形加速器部分中的所有活動(dòng)進(jìn)行控制,并且將獨(dú)立模塊之間的數(shù)據(jù)傳輸向上導(dǎo)向數(shù)據(jù)接口邏輯。
而且,該模塊對(duì)LCD定時(shí)控制邏輯模塊的操作特性進(jìn)行控制,該LCD定時(shí)控制邏輯模塊對(duì)與顯示器上的圖像刷新相關(guān)的所有定時(shí)進(jìn)行控制。顯示刷新定時(shí)和圖形加速器的操作所需的定時(shí)信號(hào)可以是同步的,但通常不同步。因此數(shù)據(jù)接口邏輯具有仲裁邏輯,以使得可以平滑兩個(gè)時(shí)鐘域之間的數(shù)據(jù)傳輸。
電源管理功能 通常有兩種模式有助于在操作過(guò)程中和在待機(jī)模式中省電a)在對(duì)數(shù)據(jù)進(jìn)行操作期間的動(dòng)態(tài)時(shí)鐘門(mén)控(clock gating),以及b)在待機(jī)模式期間的靜態(tài)模式。
動(dòng)態(tài)電源管理模式(a)以這樣的方式來(lái)對(duì)到每個(gè)獨(dú)立模塊的所有定時(shí)/時(shí)鐘信號(hào)進(jìn)行控制,即,只將時(shí)鐘分配/使能給對(duì)數(shù)據(jù)執(zhí)行操作所需的模塊。將用于所有其他模塊的時(shí)鐘信號(hào)停止(保持高電平或低電平)。這防止了電路在空閑級(jí)中的不必要的時(shí)鐘控制,因此節(jié)省了功率。該技術(shù)稱為時(shí)鐘門(mén)控。對(duì)活動(dòng)的檢測(cè)是在所述控制邏輯和電源管理單元之中進(jìn)行的,并非一定需要CPU交互。
靜態(tài)省電模式(b)主要用在待機(jī)期間(移動(dòng)裝置的大部分時(shí)間),由此延長(zhǎng)了待機(jī)時(shí)間。這是通過(guò)以下方式來(lái)實(shí)現(xiàn)的即,將所述電路的在待機(jī)期間不使用的所有單元/模塊(例如所述圖形加速器電路周圍的所有單元/模塊)設(shè)置在帶有獨(dú)立電源插腳的隔離區(qū)域中。所述區(qū)域仍可位于同一硅片上,但是,可以通過(guò)取消對(duì)該隔離部分的供電來(lái)將其關(guān)閉。這通常是利用間接主機(jī)CPU交互來(lái)完成的,因?yàn)樗鯟PU知道移動(dòng)裝置的狀態(tài)/模式。
數(shù)據(jù)接口邏輯 數(shù)據(jù)接口邏輯模塊16選擇要寫(xiě)入顯示存儲(chǔ)器或從其中讀取的數(shù)據(jù)。在CPU需要將圖像的一些或全部讀回到CPU存儲(chǔ)器中的情況下,一條路徑(繞開(kāi)所述圖形引擎)將主機(jī)CPU數(shù)據(jù)饋送到所述顯示存儲(chǔ)器或周圍的其他通路。另一路徑將計(jì)算后的圖像數(shù)據(jù)從所述圖形加速器傳送到顯示存儲(chǔ)器中。
該模塊還用來(lái)在兩個(gè)不同時(shí)鐘域的電路之間進(jìn)行判優(yōu)。LCD驅(qū)動(dòng)器部分根據(jù)使能合適的顯示更新/刷新頻率(例如60Hz)的時(shí)鐘(或多個(gè)時(shí)鐘)來(lái)進(jìn)行處理和操作。另一方面,圖形加速器操作以及與主機(jī)CPU的連接伴隨一時(shí)鐘運(yùn)行,該時(shí)鐘使得可以實(shí)現(xiàn)足夠的加速性能以及與主機(jī)CPU的平滑連接。無(wú)論數(shù)據(jù)的來(lái)源(來(lái)自CPU或來(lái)自圖像加速器),仲裁使得可以實(shí)現(xiàn)到/從顯示存儲(chǔ)器的平滑且(對(duì)于顯示器)無(wú)閃爍的圖像數(shù)據(jù)傳輸。
顯示存儲(chǔ)器 該存儲(chǔ)器部分17也稱作幀緩沖區(qū)或前緩沖區(qū)。其保持用于顯示的圖像數(shù)據(jù)。主機(jī)CPU或者來(lái)自所述圖形加速器的數(shù)據(jù)對(duì)該存儲(chǔ)器的內(nèi)容進(jìn)行更新。LCD定時(shí)控制邏輯使得可以對(duì)所述內(nèi)容進(jìn)行定期刷新并將其發(fā)送到所述顯示器。對(duì)于任何動(dòng)畫(huà)內(nèi)容,新的圖像數(shù)據(jù)將被寫(xiě)入顯示存儲(chǔ)器中,并且在下一刷新時(shí)段(LCD定時(shí)控制邏輯)內(nèi),該圖像將出現(xiàn)在顯示器上。對(duì)于靜態(tài)圖像,或?qū)τ诖龣C(jī)操作(也是靜態(tài)圖像),所述顯示存儲(chǔ)器的內(nèi)容將不改變。所述內(nèi)容只會(huì)由于顯示器的刷新而被定期讀出。
這意味著在待機(jī)模式中,或?qū)τ陟o態(tài)圖像,可以將顯示存儲(chǔ)器之前的所有模塊切換到空閑狀態(tài)。只需運(yùn)行(控制邏輯&電源管理中的)輪詢/監(jiān)控功能,以在主機(jī)CPU發(fā)送一新命令時(shí)使操作繼續(xù)執(zhí)行。
存儲(chǔ)器大小一般是X*Y*CD(顯示器按像素計(jì)量的X尺寸、Y尺寸,CD是色深度/對(duì)于65k種顏色是16位)。
解碼器&顯示鎖存器 解碼器&顯示鎖存器18將存儲(chǔ)在顯示存儲(chǔ)器中的位圖像數(shù)據(jù)轉(zhuǎn)化為列格式。像素的每列基本上包含三個(gè)(子)列(RGB)。另外,將來(lái)自所述顯示存儲(chǔ)器的數(shù)字圖像信息轉(zhuǎn)化為模擬信號(hào)。
由于顯示驅(qū)動(dòng)器信號(hào)(源輸出)是振幅和電平與邏輯電路中使用的振幅和電平不同的模擬信號(hào),所以要在該模塊中執(zhí)行電平移動(dòng)(levelshifting)。
最后,數(shù)據(jù)鎖存器進(jìn)行寄存,以將信息保持刷新一條線所需的時(shí)間(如果我們以1列來(lái)論述的話,基本上是1個(gè)像素)。在此其間,LCD定時(shí)&控制邏輯準(zhǔn)備待鎖存和顯示的來(lái)自顯示存儲(chǔ)器的下一數(shù)據(jù)組(下一條線)。
LCD驅(qū)動(dòng)器電路 LCD驅(qū)動(dòng)器電路19準(zhǔn)備待施加到顯示器的電信號(hào)。它是模擬類型的電路,并且其實(shí)際結(jié)構(gòu)很大程度上依賴于顯示器類型。
LCD定時(shí)控制邏輯 LCD定時(shí)控制邏輯單元20生成用于對(duì)顯示器進(jìn)行圖像刷新的所有定時(shí)和控制信號(hào)。其生成恰當(dāng)?shù)膶ぶ泛涂刂菩盘?hào),以利用存儲(chǔ)在顯示存儲(chǔ)器中的內(nèi)容來(lái)定期更新顯示圖像。其對(duì)從顯示存儲(chǔ)器讀出的數(shù)據(jù)進(jìn)行初始化(一次一條線),并且將所述數(shù)據(jù)經(jīng)由解碼器&顯示數(shù)據(jù)鎖存器進(jìn)行傳送,以對(duì)所述數(shù)據(jù)進(jìn)行解碼,并且接著將所述數(shù)據(jù)傳過(guò)LCD驅(qū)動(dòng)器電路。該模塊的時(shí)鐘定時(shí)和頻率使所述顯示器可以具有適當(dāng)?shù)乃⑿滤俾?例如,60Hz)。該模塊通常具有自己的振蕩器,并且其與所述圖形加速器周圍的電路的其余部分不同步。
選通驅(qū)動(dòng)器控制 驅(qū)動(dòng)器控制模塊21表示與所述選通驅(qū)動(dòng)器IC的接口。其將信號(hào)提供給所述選通驅(qū)動(dòng)器IC以使得可以進(jìn)行適當(dāng)?shù)乃⑿?。該模塊的確切的細(xì)節(jié)取決于所使用的顯示器的類型。
該部分的主要功能是順序地對(duì)所有線(行)進(jìn)行掃描,以與由源驅(qū)動(dòng)器所提供的信息相組合來(lái)生成圖像。對(duì)于非晶TFT型顯示器,用以驅(qū)動(dòng)?xùn)?行)條紋的電壓電平可以在+/-15V的范圍內(nèi)。這要求以不同的工藝/技術(shù)來(lái)實(shí)現(xiàn)所述選通驅(qū)動(dòng)器IC。不是所有顯示器類型都要求這個(gè)電壓范圍的,在沒(méi)有這種要求的情況下,可以在一個(gè)硅片(IC)上實(shí)現(xiàn)所述選通驅(qū)動(dòng)器和源驅(qū)動(dòng)器的集成版。
所述選通驅(qū)動(dòng)器的主要部分是一移位寄存器,其用于順次將一脈沖從顯示器的起始位置移位/移動(dòng)到末端位置(從頂端條紋向下移位/移動(dòng)到底端條紋)。該部分還包括由于某些諸如脈沖選通和整形的附加功能,以獲得恰當(dāng)?shù)亩〞r(shí)(以避免交迭等)。所有定時(shí)和脈沖信息都來(lái)自所述顯示驅(qū)動(dòng)器IC,并且與所述顯示驅(qū)動(dòng)器IC完全同步。
TFT操作 適合與本發(fā)明一起使用的顯示器可以具有TFT(薄膜晶體管)結(jié)構(gòu)。TFT顯示器具有帶X(選通/行)和Y(源/列)導(dǎo)電條紋的矩陣(X-Y)可尋址顯示場(chǎng)。所述X條紋與Y條紋之間的電壓差對(duì)背光透射度進(jìn)行控制。在彩色顯示器中,對(duì)于每個(gè)像素有3個(gè)垂直(Y)條紋,以控制RGB合成。圖22示出了TFT型結(jié)構(gòu)和尋址以及用于所述選通驅(qū)動(dòng)器IC的典型定時(shí)圖。
圖22中所示的顯示器以一次尋址一條線(選通/行)的方式來(lái)進(jìn)行操作,,由此繼續(xù)到下一條線并且順序地到達(dá)顯示器的端部(通常是底部),然后從頂部重新開(kāi)始。刷新的速度稱為刷新率,并且可以在60Hz(刷新次數(shù)/秒)的范圍內(nèi)。
源驅(qū)動(dòng)器電路 圖23示出了用于LCD顯示器的源驅(qū)動(dòng)器,其中將來(lái)自前緩沖區(qū)的顏色信息發(fā)送到所述顯示器。從顯示存儲(chǔ)器讀取用于整行/線的像素信息,并且將其施加給DAC轉(zhuǎn)換器,如在圖21中標(biāo)號(hào)18所示的解碼器。圖23中的MUX選通選擇器充當(dāng)DAC。所需DAC轉(zhuǎn)換器的數(shù)目是顯示器像素分辨率(RGB)的三倍。在該情況下,所述DAC轉(zhuǎn)換器還充當(dāng)一模擬多路復(fù)用器/選擇器。施加給DAC的數(shù)字值選擇由灰度級(jí)生成器所生成的一個(gè)灰度級(jí)。例如,選擇“低亮度”將給出一暗圖像,而選擇“高亮度”將給出一亮圖像。在顯示器上按與在CRT顯像管中類似的方式來(lái)合成顏色。該過(guò)程對(duì)每條掃描線重復(fù)進(jìn)行。
由于用于邏輯部分的電壓通常比驅(qū)動(dòng)顯示器的源線所需的電壓低,所以所述MUX選通選擇器還可以用作一電平移動(dòng)器。用于源驅(qū)動(dòng)的電壓范圍在0V-5V的范圍內(nèi)。所述灰度級(jí)生成器和MUX/選擇器利用弱信號(hào)(確定強(qiáng)度)進(jìn)行工作,并且最終將由所述MUX/選擇器所選擇的信號(hào)適當(dāng)?shù)胤糯?AMP)以驅(qū)動(dòng)所述源條紋。
盡管圖19到23專門(mén)針對(duì)LCD顯示器,但是本發(fā)明決不限于單一顯示類型。本領(lǐng)域的技術(shù)人員已知許多合適的顯示器類型。這些都具有X-Y(列/行)尋址,并且僅僅在驅(qū)動(dòng)器實(shí)現(xiàn)和術(shù)語(yǔ)上與以上所示的具體LCD實(shí)現(xiàn)不同。本發(fā)明當(dāng)然適用于所有LCD顯示器類型,如STN、非晶TFT、LTPS(低溫多晶硅)以及LCoS顯示器。本發(fā)明還可用于基于LED的顯示器,如OLED(有機(jī)LED)顯示器。
例如,本發(fā)明的一個(gè)具體應(yīng)用可能出現(xiàn)在用于移動(dòng)裝置的附件中,該移動(dòng)裝置由用戶佩戴或保持并采用遠(yuǎn)程顯示器的形式。可以通過(guò)藍(lán)牙或類似的無(wú)線協(xié)議來(lái)將所述顯示器連接到所述裝置。
在許多情況下,移動(dòng)裝置本身是如此之小,以至于要添加高分辨率屏幕是不可行的(或是不希望的)。在這種情況下,分立的靠近眼睛的(NYE)顯示器或其他顯示器(可能在用戶的頭戴式耳機(jī)或用戶眼鏡上)可能尤其具有優(yōu)勢(shì)。
顯示器可以是LCoS型的,其適用于NTE應(yīng)用中的可佩戴顯示器。NTE應(yīng)用使用帶有放大鏡的單個(gè)LCoS顯示器,所述放大器置于靠近眼睛處,以產(chǎn)生放大的虛像。帶有這種顯示器的具有網(wǎng)絡(luò)功能的無(wú)線裝置使得用戶可以將web頁(yè)面當(dāng)作一大的虛像來(lái)觀看。
示例 顯示變量,其中 顯示描述了顯示器的分辨率(X*Y) 像素是顯示器上的像素?cái)?shù)(=X*Y) 16個(gè)色位(color bit)是用以刷新/繪制全屏的實(shí)際數(shù)據(jù)量(采用16位來(lái)描述每個(gè)像素的屬性) 幀頻@25Mb/s描述了當(dāng)采用25Mb/s的數(shù)據(jù)傳輸速率時(shí),每秒可以刷新顯示器的次數(shù) Mb/s@15fps表示為確保每秒更新全屏15次所需要的數(shù)據(jù)傳輸速率。 顯示 像素 16個(gè)色位幀頻@25Mb/sMb/s@15fps 128×128 16384 26214495.43.9 144×176 25344 40550461.76.1 176×208 36608 58572842.78.8 176×220 38720 61952040.49.3 176×240 42240 67584037.010.1 240×320 76800 122880020.318.4 320×480 153600 245760010.236.9 480×640 307200 49152005.173.7 對(duì)于不同接口的功耗的示例 CMADSi/f @25Mb/s 0.5mW →20uW/Mb CMOSi/f@25Mb/s 1mW →40uW/Mb 以下是4個(gè)總線流量示例,其展示了在CPU→顯示器總線上的流量減少 (注意這些示例只展示了總線流量,而沒(méi)有展示CPU負(fù)載) 示例1全屏日本漢字文本(靜態(tài)) 代表了一種復(fù)雜情況,對(duì)于176*240的顯示器尺寸,結(jié)果是42240個(gè)像素,或84480個(gè)字節(jié)(16位/像素=2字節(jié)/像素)。對(duì)于一個(gè)日本漢字字符,采用最小的16×16個(gè)像素,這使得每屏將給出165個(gè)日本漢字。一個(gè)日本漢字平均可用約223個(gè)字節(jié)來(lái)表示,由此得到總量為36855個(gè)字節(jié)的數(shù)據(jù)。
字節(jié) 84480 像素 42240 16<--X*Y(對(duì)于一個(gè)日本漢字) Y-像素24015 X-像素 17611 5 165<--#全屏日本漢字 顯示器 223<-- 字節(jié)/日本漢字 (SVG) 流量流量 位圖SVG 84480 36855 在該特定情況下,使用SVG加速器將需要傳輸36k字節(jié),而對(duì)于位圖刷新(=在不使用加速器的情況下全屏的刷新或繪制),結(jié)果是需要傳輸84k字節(jié)數(shù)據(jù)(減少了56%)。
在字符數(shù)相同的情況下,不管屏幕分辨率是多少,由于SVG的基本特性(可縮放),所以36k字節(jié)的數(shù)據(jù)保持不變。在位映射系統(tǒng)中不是這樣的,在位映射系統(tǒng)中,流量隨像素?cái)?shù)(X*Y)成比例地增長(zhǎng)。
示例2動(dòng)畫(huà)(@15fps)忙屏(165個(gè)日語(yǔ)漢字字符)(顯示器176×240) 8448036855 fps 15 1267200 552825位 μW 40 50.7 22.1μW (針對(duì)總線) 40表示40μW/m位的數(shù)據(jù)。圖25示出了CPU與圖形引擎之間以及圖形引擎與顯示器之間的數(shù)據(jù)傳輸和對(duì)應(yīng)的功耗。
示例3全屏上的填充三角形 全屏 -位映射(=?jīng)]有加速器)84480字節(jié)數(shù)據(jù)(屏幕176×240,16位顏色) -對(duì)于SVG加速器,只有16字節(jié)(減少了99.98%) 示例4動(dòng)畫(huà)(@15fps)旋轉(zhuǎn)填充三角形(顯示器176×240)84480 16 fps 15 1267200240位 μW 40 50.7 0.01μW(針對(duì)總線) 40表示40μW/m位的數(shù)據(jù)。圖26示出了CPU與圖形引擎之間以及圖形引擎與顯示器之間的數(shù)據(jù)傳輸和對(duì)應(yīng)的功耗。
該最后一個(gè)示例表明所述圖形引擎適合在游戲中使用,如適用于基于動(dòng)畫(huà)Flash(TM Macromedia)的游戲。
權(quán)利要求
1、一種顯示驅(qū)動(dòng)器集成電路,用于連接到小面積顯示器,所述集成電路包括一硬件實(shí)現(xiàn)的圖形引擎,其用于接收矢量圖形命令和根據(jù)所接收到的命令來(lái)再現(xiàn)用于顯示像素的圖像數(shù)據(jù),并且,所述集成電路還包括顯示驅(qū)動(dòng)器電路,其用于根據(jù)由所述圖形引擎所再現(xiàn)的圖像數(shù)據(jù)來(lái)驅(qū)動(dòng)所連接的顯示器。
2、一種用于合并到便攜式電子裝置中的顯示模塊,其包括
顯示器;
硬件實(shí)現(xiàn)的圖形引擎,用于接收矢量圖形命令和根據(jù)所接收到的命令來(lái)再現(xiàn)用于顯示像素的圖像數(shù)據(jù);以及
顯示驅(qū)動(dòng)器電路,連接到所述圖形引擎和所述顯示器,用于根據(jù)由所述圖形引擎所再現(xiàn)的圖像數(shù)據(jù)來(lái)驅(qū)動(dòng)所述顯示器。
3、如權(quán)利要求1或2所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述圖形引擎包括控制電路,其用于一次讀入一條矢量圖形命令,將所述命令轉(zhuǎn)換為空間圖像信息,然后丟棄原命令。
4、如前述任一權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述圖形引擎包括連接到一邊沿緩沖區(qū)的邊沿繪制電路,所述邊沿緩沖區(qū)用于順序地存儲(chǔ)被讀入所述引擎中的任何多邊形的邊沿。
5、如權(quán)利要求4所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述邊沿緩沖區(qū)被配置成存儲(chǔ)子像素,其中多個(gè)子像素與每個(gè)顯示像素相對(duì)應(yīng)。
6、如權(quán)利要求5所述的顯示驅(qū)動(dòng)器或顯示模塊,其中每個(gè)子像素可在置位狀態(tài)與復(fù)位狀態(tài)之間進(jìn)行切換,并且其中,所述邊沿緩沖區(qū)將每個(gè)多邊形邊沿存儲(chǔ)為多個(gè)邊界子像素,所述多個(gè)邊界子像素是置位的,并且其在所述邊沿緩沖區(qū)中的位置與在最終圖像中的邊沿位置相對(duì)應(yīng)。
7、如權(quán)利要求4到6中的任何一項(xiàng)所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述圖形引擎包括填充器電路,其用于對(duì)邊沿已被存儲(chǔ)在所述邊沿緩沖區(qū)中的多邊形進(jìn)行填充。
8、如前述任一權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述圖形引擎包括一后緩沖區(qū),其用于在將圖像的一部分或全部傳輸?shù)剿鲲@示存儲(chǔ)器的前緩沖區(qū)之前對(duì)其進(jìn)行存儲(chǔ)。
9、如權(quán)利要求8所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述后緩沖區(qū)的每個(gè)像素被映射到所述前緩沖區(qū)中的一像素,并且優(yōu)選地,所述后緩沖區(qū)具有與所述前緩沖區(qū)相同的用于表示每個(gè)顯示像素的顏色的位數(shù)每像素,所述顏色為RGBA值。
10、如權(quán)利要求8或9所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述圖形引擎包括組合電路,其用于從所述填充器電路將每個(gè)填充多邊形順序地組合到所述后緩沖區(qū)中。
11、如權(quán)利要求8到10中的任何一項(xiàng)所述的顯示驅(qū)動(dòng)器或顯示模塊,其中根據(jù)正被處理的多邊形中的像素的顏色、所述像素被所述多邊形覆蓋的百分比、以及在所述后緩沖區(qū)中的對(duì)應(yīng)像素中已經(jīng)存在的顏色,來(lái)確定存儲(chǔ)在所述后緩沖區(qū)中的每個(gè)像素的顏色。
12、如權(quán)利要求3到11中的任何一項(xiàng)所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述邊沿緩沖區(qū)按對(duì)于每個(gè)顯示像素具有一平方數(shù)個(gè)子像素的柵格的形式包括多個(gè)子像素。
13、如權(quán)利要求12所述的顯示驅(qū)動(dòng)器或顯示模塊,其中不使用所述邊沿緩沖區(qū)中相隔一個(gè)的子像素,以為每個(gè)顯示像素提供所述平方數(shù)個(gè)子像素中的一半。
14、如權(quán)利要求12或13所述的顯示驅(qū)動(dòng)器或顯示模塊,其中根據(jù)多個(gè)邊沿端點(diǎn)來(lái)計(jì)算每條多邊形邊沿的斜度,然后沿著連線對(duì)所述柵格的多個(gè)子像素進(jìn)行置位。
15、如權(quán)利要求13或14所述的顯示驅(qū)動(dòng)器或顯示模塊,其中利用以下規(guī)則來(lái)對(duì)多個(gè)子像素進(jìn)行置位
對(duì)于每條多邊形邊沿,只為所述子像素柵格的每條水平線置位一個(gè)子像素;
從頂部到底部(在Y方向上)對(duì)所述多個(gè)子像素進(jìn)行置位;
不對(duì)所述線的最后一個(gè)子像素進(jìn)行置位;
反轉(zhuǎn)在所述線下置位的任何子像素。
16、如權(quán)利要求12到15中的任何一項(xiàng)所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述填充器電路包括充當(dāng)用于橫貫所述子像素柵格的虛擬筆的邏輯,所述筆最初是關(guān)閉的,并且每當(dāng)它遇到一置位子像素,就在關(guān)閉與打開(kāi)狀態(tài)之間進(jìn)行切換。
17、如權(quán)利要求16所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述虛擬筆對(duì)所述多個(gè)邊界子像素內(nèi)的所有子像素進(jìn)行置位,并且所述虛擬筆包括右手邊界的多個(gè)邊界像素,并對(duì)左手邊界的多個(gè)邊界像素進(jìn)行復(fù)位,或者反過(guò)來(lái)。
18、如權(quán)利要求10到17中的任何一項(xiàng)所述的顯示驅(qū)動(dòng)器或顯示模塊,其中對(duì)應(yīng)于一個(gè)顯示像素的來(lái)自所述填充器電路的所述多個(gè)子像素,在組合到所述后緩沖區(qū)之前,被合并成單個(gè)像素。
19、如權(quán)利要求12到18中的任何一項(xiàng)所述的顯示驅(qū)動(dòng)器或顯示模塊,其中每個(gè)合并像素中被所述填充多邊形覆蓋的子像素的數(shù)目確定了用于將所述合并像素組合到所述后緩沖區(qū)中的混合系數(shù)。
20、如權(quán)利要求8或其任何從屬權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中一旦已完全再現(xiàn)了所述顯示器的部分上的、所述后緩沖區(qū)為其保持信息的所述圖像,就將所述后緩沖區(qū)拷貝到所述顯示存儲(chǔ)器的所述前緩沖區(qū)。
21、如權(quán)利要求8或其任何從屬權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述后緩沖區(qū)具有與所述前緩沖區(qū)相同的大小,并且為所述整個(gè)顯示器保持信息。
22、如權(quán)利要求8或其任何從屬權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述后緩沖區(qū)比所述前緩沖區(qū)小,并且只為所述顯示器的一部分存儲(chǔ)信息,所述前緩沖區(qū)中的圖像是在一系列外部通道中根據(jù)所述后緩沖區(qū)來(lái)構(gòu)建的。
23、如權(quán)利要求22所述的顯示驅(qū)動(dòng)器或顯示模塊,其中只有與待保持在所述后緩沖區(qū)中的所述圖像的所述部分相關(guān)的命令,被在每個(gè)外部通道中發(fā)送到所述圖形引擎。
24、如權(quán)利要求4或其任何從屬權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述圖形引擎還包括一曲線階化器,其用于將任何曲形多邊形邊沿劃分為多個(gè)直線段,并且將所得到的多個(gè)直線段存儲(chǔ)在所述邊沿緩沖區(qū)中。
25、如權(quán)利要求8或其任何從屬權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述圖形引擎被調(diào)整為使所述后緩沖區(qū)可以保持一個(gè)或更多個(gè)預(yù)定圖像元素,所述一個(gè)或更多個(gè)預(yù)定圖像元素被傳輸?shù)剿銮熬彌_區(qū)中的由所述高級(jí)語(yǔ)言確定的一個(gè)或更多個(gè)位置處。
26、如權(quán)利要求4或其任何從屬權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述圖形引擎可在細(xì)線模式下進(jìn)行操作,在該細(xì)線模式中,通過(guò)對(duì)一位圖中的多個(gè)子像素進(jìn)行置位并將所述位圖存儲(chǔ)在所述邊沿緩沖區(qū)中的多個(gè)位置處以形成一連線,來(lái)將多條細(xì)線存儲(chǔ)在所述邊沿緩沖區(qū)中。
27、如前述任一權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述圖形引擎在大小上少于100K個(gè)門(mén),優(yōu)選地,少于50K個(gè)門(mén)。
28、如前述任一權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述顯示驅(qū)動(dòng)器電路只用于所述顯示器的一個(gè)方向。
29、如前述任一權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述顯示驅(qū)動(dòng)器電路還包括用于控制所述顯示器的控制電路。
30、如權(quán)利要求29所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述顯示器控制電路還包括驅(qū)動(dòng)器控制電路,其用于連接到用于另一方向的獨(dú)立顯示驅(qū)動(dòng)器。
31、如權(quán)利要求2或其任何從屬權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述圖形引擎為多個(gè)顯示驅(qū)動(dòng)器集成電路再現(xiàn)圖像數(shù)據(jù)。
32、如前述任一權(quán)利要求所述的顯示驅(qū)動(dòng)器或顯示模塊,其中所述顯示驅(qū)動(dòng)器還包括顯示存儲(chǔ)器;解碼器和顯示鎖存器;定時(shí)、數(shù)據(jù)接口邏輯;控制邏輯和電源管理電路。
33、一種電子裝置,包括
處理單元;以及
具有顯示器的顯示單元;
其中所述處理單元將高級(jí)圖形命令發(fā)送到所述顯示單元,并且一硬件實(shí)現(xiàn)的圖形引擎設(shè)置在所述顯示單元中,以根據(jù)所述高級(jí)命令來(lái)再現(xiàn)用于顯示像素的圖像數(shù)據(jù)。
34、如權(quán)利要求33所述的電子裝置,其還合并有前述權(quán)利要求的任何特征。
35、實(shí)質(zhì)上根據(jù)本發(fā)明所述的和/或在附圖中示出的多個(gè)實(shí)施例中的一個(gè)的顯示驅(qū)動(dòng)器IC模塊或裝置。
全文摘要
本發(fā)明提供了一種顯示驅(qū)動(dòng)器集成電路,其用于連接到小面積顯示器,所述集成電路包括一硬件實(shí)現(xiàn)的圖形引擎,其用于接收矢量圖形命令和根據(jù)所接收到的命令來(lái)再現(xiàn)用于顯示像素的圖像數(shù)據(jù),并且,所述集成電路還包括顯示驅(qū)動(dòng)器電路,其用于根據(jù)由所述圖形引擎所再現(xiàn)的圖像數(shù)據(jù)來(lái)驅(qū)動(dòng)所連接的顯示器。在另一方面中,將所述圖形引擎保持在顯示模塊中,但不嵌入在所述顯示驅(qū)動(dòng)器集成電路中。本發(fā)明提供了圖形加速,其提高了顯示性能,但沒(méi)有顯著地增加制造成本。與非加速CPU圖形處理相比,降低了功耗。
文檔編號(hào)G06T15/00GK1653488SQ0381058
公開(kāi)日2005年8月10日 申請(qǐng)日期2003年5月9日 優(yōu)先權(quán)日2002年5月10日
發(fā)明者梅托德·科舍利亞, 米卡·圖奧米 申請(qǐng)人:比特波伊斯有限責(zé)任公司, 日本電氣電子株式會(huì)社