專利名稱:利用存儲(chǔ)控制單元顯示圖像的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種顯示圖像的方法。本發(fā)明還涉及用于顯示圖像的裝置。
背景技術(shù):
圖l顯示了用于產(chǎn)生動(dòng)畫的一種已知方法。通過(guò)在計(jì)算機(jī)(沒(méi)有顯示)
上運(yùn)行的程序產(chǎn)生關(guān)于每個(gè)幀的圖像數(shù)據(jù)2。為了產(chǎn)生動(dòng)畫,計(jì)算機(jī)每次 將動(dòng)畫的一個(gè)幀寫入幀緩存器4中。幀緩存器4具有足夠的空間來(lái)僅僅存 儲(chǔ)一個(gè)圖像幀。將幀緩存器4的內(nèi)容從圖像的頂部到圖像的底部按水平行 8傳送到顯示器6。計(jì)算機(jī)并行地把對(duì)應(yīng)于下一幀的圖像數(shù)據(jù)2從圖像頂部 到圖像底部按水平行10寫到幀緩存器4。計(jì)算機(jī)需要僅寫到幀緩存器4的 已經(jīng)被復(fù)制到顯示器6的部分中。
圖像撕裂是一種在顯示計(jì)算機(jī)產(chǎn)生的動(dòng)畫中的眾所周知的問(wèn)題。圖2 顯示了圖l象撕裂的一個(gè)例子。當(dāng)圖像數(shù)據(jù)2向幀緩存器4的寫入超it^幀 緩存器4向顯示器6的傳送時(shí)發(fā)生圖像撕裂,并且反 之亦然。這里,計(jì)算 機(jī)因此寫入到還沒(méi)有在顯示器6上刷新的圖像部分。于是,顯示器6包含 位于顯示器的頂部12的一個(gè)幀10的圖^f象數(shù)據(jù),以及位于顯示器底部16 的下一幀14的圖4象數(shù)據(jù)。當(dāng)兩個(gè)幀IO, 14的內(nèi)容不同時(shí),結(jié)果是撕裂的 圖# ,這對(duì)用戶顯示為晃動(dòng)。
當(dāng)存儲(chǔ)在幀緩存器4中的圖像是橫向格式時(shí)可能發(fā)生另一問(wèn)題,這在 圖3進(jìn)行了示意。計(jì)算機(jī)以水平線10從上到下寫入對(duì)應(yīng)于橫向幀的圖像數(shù) 據(jù)2。然而圖像幀,皮旋轉(zhuǎn)從而將其顯示在縱向取向的顯示器6,并且因此, 按垂直行8從左到右傳送幀的內(nèi)容。因此,由于一直發(fā)生兩個(gè)連續(xù)幀之間 的重疊,不可能使用上述技術(shù)正確地更新幀。
避免該問(wèn)題的最簡(jiǎn)單方法是把圖像數(shù)據(jù)2的完整幀寫入到幀緩存器4, 并且然后在刷新顯示器6期間,停止向幀緩存器4寫入圖像數(shù)據(jù)2。由于 極大地降低了幀速率,該方法不能令人滿意。
用于將圖像撕裂減小到最小的一種技術(shù)被稱為"雙緩存"。在該技術(shù) 中,4吏用兩個(gè)緩存器,其中一個(gè)緩存器被稱為前部緩存器,另一緩存器初L 稱為后部緩存器。后部緩存器用于遞交看不見(jiàn)的,即,沒(méi)有被顯示的幀。 前部緩存器存儲(chǔ)之前遞交的完整的幀。將前部緩存器的內(nèi)容傳送到顯示器 從而被用戶觀看。當(dāng)后部緩存器的幀是完整的,即,幀中充滿圖像數(shù)據(jù)時(shí), 交換前部和后部緩存器。然后將下一幀寫入到新的后部緩存器,同時(shí)將前 部緩存器的數(shù)據(jù)發(fā)送到顯示器。只把完全遞交的圖^^呈現(xiàn)給用戶,因此消 除了圖像撕裂。理想的,前部和后部緩存器的交換即時(shí)的發(fā)生。然而,在 實(shí)際中,在緩存器交換時(shí)存在一個(gè)較小的延時(shí)。這會(huì)降低幀速率。雙緩存 技術(shù)還需要傳統(tǒng)系統(tǒng)雙倍數(shù)量的存儲(chǔ)器,并且因此建立該系統(tǒng)比較昂貴。
由于數(shù)據(jù)從不會(huì)被遞交到用于把數(shù)據(jù)傳送到顯示器的相同幀緩存器, 雙緩存器允許更加靈活的顯示方向,從而不同的讀寫方向并不重要。
發(fā)明者清楚提供一種用于圖像顯示的改進(jìn)的方法,在不需要并行幀緩 存器的情況下避免圖像撕裂,這是非常有利的。
發(fā)明內(nèi)容
本發(fā)明的第一方面提供了一種顯示圖像的方法,包括 使用存儲(chǔ)控制單元把包括二維存儲(chǔ)單元矩陣的緩存器分割成至少第一
塊和第二塊;
把數(shù)據(jù)寫入到所述塊的第一塊;以及
把所述塊的第一塊的所述數(shù)據(jù)復(fù)制到顯示器的對(duì)應(yīng)塊,
其中對(duì)所述塊的相繼塊重復(fù)執(zhí)行所述寫入和復(fù)制步驟,以及其中到所
述塊的數(shù)據(jù)寫入與從所述塊復(fù)制數(shù)據(jù)的方向垂直。
這允許沒(méi)有圖像撕裂地顯示圖像,同時(shí)避免了對(duì)兩個(gè)并行幀緩存器的
需要,并且當(dāng)需要支持橫向和縱向方向時(shí)可以使用。
本發(fā)明的另一方面提供了一種顯示圖像的裝置,包括 緩存器,包括二維存儲(chǔ)單元矩陣; 顯示器;以及
存儲(chǔ)控制單元,被配置為把所述緩存器分割成至少第 一塊和第二塊, 把數(shù)據(jù)寫入所述塊的第一塊,并把所述塊的第一塊中的數(shù)據(jù)復(fù)制到顯示器 的相應(yīng)塊,
其中所述存儲(chǔ)控制單元還被配置為順序地把數(shù)據(jù)寫入到所述塊的相繼 塊中,并順序地為所述塊的相繼塊復(fù)制數(shù)據(jù),并且其中到所述塊的數(shù)據(jù)寫 入與從所述塊復(fù)制數(shù)據(jù)的方向垂直。
現(xiàn)在將通過(guò)相應(yīng)的附圖,僅僅作為例子,描述本發(fā)明的實(shí)施例。
在附圖中
圖1示意了依照現(xiàn)有技術(shù)顯示縱向圖像; 圖2示意了顯示器中圖像撕裂的一個(gè)例子; 圖3示意了試圖使用圖1中的現(xiàn)有技術(shù)系統(tǒng)顯示橫向圖像; 圖4是依照本發(fā)明用于顯示圖像的裝置的示意圖; 圖5a和5b是示意依照本發(fā)明的圖4中裝置的操作的流程圖;以及 圖6示意了依照在圖4系統(tǒng)的操作的不同時(shí)間的緩存器和顯示器狀態(tài) 來(lái)顯示橫向圖像。
在附圖中,相同的參考標(biāo)記在全文中表示相同的部件。
具體實(shí)施例方式
首先參考圖4,圖像顯示裝置17包括存儲(chǔ)控制單元18、視頻緩存器 20、幀緩存器4和顯示器6。圖像顯示裝置構(gòu)成移動(dòng)、手持設(shè)備(例如移 動(dòng)電話、智能手機(jī)或PDA)的一部分。
存儲(chǔ)控制單元(MCU) 18具有連接到各個(gè)視頻緩存器20、幀緩存器 4以及顯示器6的輸出控制。視頻緩存器20具有數(shù)據(jù)輸出,其被連接到幀
緩存器4的數(shù)據(jù)輸入。幀緩存器4具有數(shù)據(jù)輸出,其被連接到顯示器6的 數(shù)據(jù)輸入。
MCU 18控制圖像數(shù)據(jù)2從視頻緩存器20到幀緩存器4的寫入,以及 圖像從幀緩存器4到顯示器6的傳送以便刷新顯示器6。 MCU 18把幀緩 存器4分割成從第l到第4的塊61、 62、 63、 64。幀緩存器4并沒(méi)有被物 理的劃分成4塊MCU 18控制圖像數(shù)據(jù)2到幀緩存器4的寫入,使其被 逐塊地執(zhí)行。MCU 18還控制數(shù)據(jù)從幀緩存器4到顯示器6的傳送,使其 被逐塊地執(zhí)行。這樣,幀緩存器4被劃分成虛擬的塊。
視頻緩存器20可以由物理存儲(chǔ)器構(gòu)成。可選擇的,可以是運(yùn)行在處理 器上的程序的輸出,其中該程序例如在游戲期間實(shí)時(shí)地產(chǎn)生圖像數(shù)據(jù)。
幀緩存器4可以位于計(jì)算機(jī)的系統(tǒng)RAM中。可選擇的,幀緩存器4 可以位于包含顯示器6的分立顯示模塊中。當(dāng)幀緩存器4位于計(jì)算機(jī)的系 統(tǒng)RAM時(shí),并且?guī)彺嫫?的圖像是橫向格式時(shí),使用旋轉(zhuǎn)技術(shù)把幀緩 存器4中的圖像傳送到顯示器6。當(dāng)幀緩存器4位于具有顯示器6的顯示 模塊時(shí),顯示才莫塊本身可以處理旋轉(zhuǎn),并且從幀緩存器4到顯示器6的傳 送方向與從視頻緩存器20到幀緩存器4的傳送方向相同。
從視頻緩存器20到幀緩存器4的數(shù)據(jù)傳送優(yōu)選在DMA (直接存旨 問(wèn))信道上執(zhí)行。這允許數(shù)據(jù)從存儲(chǔ)器傳送到目的地設(shè)備而無(wú)需經(jīng)過(guò)CPU。 因此,與其他信道的數(shù)據(jù)傳送相比,這種數(shù)據(jù)傳送可以快速發(fā)生?;谕?樣的理由,從幀緩存器4到顯示器6的數(shù)據(jù)傳送優(yōu)選的使用DMA信道。
圖5a、 5b和6中示意了圖4裝置的操作。描述了用于處理橫向圖像的 操作。然而,相同的操作可以用于顯示縱向圖像。該裝置簡(jiǎn)單地防止了從 視頻緩存器20到幀緩存器4的圖像數(shù)據(jù)2寫入超過(guò)從幀緩存器4到顯示器 6的圖像塊的刷新,并且反之亦然。在下面的實(shí)施例中,幀緩存器4并不 位于顯示模塊中。因此,圖像數(shù)據(jù)2到幀緩存器4的寫入方向與數(shù)據(jù)到顯 示器6的寫入方向不同。在該例子中,塊的數(shù)量為n, n等于4。每個(gè)塊 61、 62、 63、 64包括至少兩4亍。
圖5A顯示了從視頻緩存器20到幀緩存器4的第一數(shù)據(jù)傳送過(guò)程21a。圖5B顯示了從幀緩存器4到顯示器6的第二數(shù)據(jù)傳送過(guò)程21b。第一和第 二數(shù)據(jù)傳送過(guò)程21a, 21b并行地發(fā)生并且受MCU18控制。第一和第二傳 送過(guò)程21a, 21通過(guò)使用標(biāo)記來(lái)相互通信。幀緩存器4和顯示器6的n個(gè) 塊中的每一個(gè)都具有一個(gè)標(biāo)記。用于控制MCU 18以執(zhí)行第一和第二婆:據(jù) 傳送過(guò)程21a, 21b的步驟的指令,以一個(gè)或多個(gè)計(jì)算機(jī)程序的形式存儲(chǔ)在 圖4移動(dòng)設(shè)備的存儲(chǔ)器中。 一個(gè)或多個(gè)計(jì)算機(jī)程序可以被提供為在通信鏈 路上傳輸?shù)乃矔r(shí)信號(hào),或者存儲(chǔ)在事先安裝在移動(dòng)設(shè)備上的可讀介質(zhì)上。 首先參考圖5A,通過(guò)在步驟22設(shè)置除了最后的標(biāo)記外的所有標(biāo)記并
清除最后的標(biāo)記,來(lái)啟動(dòng)操作。在步驟23,把ka和ia初始化為l。 ka標(biāo)識(shí)
第一數(shù)據(jù)傳送過(guò)程21a當(dāng)前處理的幀的號(hào)碼,ia表示第一數(shù)據(jù)傳送過(guò)程21a 當(dāng)前處理的塊的號(hào)碼。在步驟23之后,第一數(shù)據(jù)傳送過(guò)程21a預(yù)備把現(xiàn)頻 緩存器20中的第一塊數(shù)據(jù)寫入幀緩存器4中。
在步驟25,判斷是否已經(jīng)設(shè)置第i個(gè)標(biāo)記。如果沒(méi)有設(shè)置該標(biāo)記,則 第一數(shù)據(jù)傳送過(guò)程21a再次前進(jìn)到步驟25的輸入。這樣,笫一數(shù)據(jù)傳送過(guò) 程21a—直保持到第i個(gè)標(biāo)記,皮設(shè)定。 一旦步驟25產(chǎn)生肯定的答案,則過(guò) 程21a前進(jìn)到步驟26。這里,對(duì)于幀ka的塊ia從視頻緩存器20寫入幀緩 存器4。之后,在步驟27清除第i個(gè)標(biāo)記。隨后,步驟28確定ia的值是否 等于n,也就是確定步驟26寫入的塊是否是幀中的最后一塊。如果步驟28 產(chǎn)生否定結(jié)果,則步驟29遞增ia的值,并且過(guò)程然后返回到步驟25的輸 入。如果步驟28產(chǎn)生肯定結(jié)果,則在過(guò)程21a返回到步驟25的輸入前, 步驟30將ia的值復(fù)位為1,并且遞增ka的值。
現(xiàn)在參考圖5B,其中顯示了第二數(shù)據(jù)傳送過(guò)程21b。過(guò)程21b涉及幀 緩存器4和顯示器6之間的數(shù)據(jù)傳送。
在步驟31, kb的值和ib的值被初始化為1,其中kb的值表示第二數(shù)據(jù) 傳送過(guò)程21b正在處理的幀的號(hào)碼,以及ib的值表示該過(guò)程正在處理的塊 的號(hào)碼。過(guò)程21b然后前進(jìn)到步驟32,該步驟確定標(biāo)記i是否清楚。如果 標(biāo)記i在第一數(shù)據(jù)傳送過(guò)程21a中已經(jīng)被清除,則標(biāo)記i是清楚的。如果標(biāo) 記不清楚,則第二數(shù)據(jù)傳送過(guò)程21b返回步驟32的輸入。 一旦標(biāo)記i是清
楚的,則過(guò)程21b前進(jìn)到步驟33。這里,關(guān)于幀kb的塊ib的第一行,皮從 幀緩存器4更新到顯示器6。之后,在步驟34確定ib是否等于l。這樣, 步驟34確定在步驟33第一行被刷新的塊是否是該幀中的第一塊。如果步 驟34產(chǎn)生肯定結(jié)果,則在過(guò)程21b前進(jìn)到步驟37之前,在步驟36設(shè)置標(biāo) 記n。如果步驟34產(chǎn)生否定結(jié)果,則在過(guò)程21b前進(jìn)到步驟37之前,在 步驟35設(shè)置標(biāo)記i-l。在步驟37,完成幀kb的塊ib。
在步驟37之后,在步驟38確定ib的值是否等于n。從而該步驟確定 步驟33和37寫入的塊是否是幀的最后一塊。如果步驟38產(chǎn)生否定結(jié)果, 則在第二數(shù)據(jù)傳送過(guò)程21b再次前進(jìn)到步驟32的輸入前,在步驟39遞增 ib的值。如果步驟38產(chǎn)生肯定結(jié)果,則在第二數(shù)據(jù)傳送過(guò)程21b前進(jìn)到步 驟32的輸入前,在步驟40將ib的值設(shè)置為1以及遞增kb的值。
已經(jīng)描述了由MCU 18操作的第一和第二數(shù)據(jù)傳送過(guò)程21a和21b, 下面還將參考圖6描述把數(shù)據(jù)2從視頻緩存器20寫入顯示器6的操作。圖 6顯示了在第一和第二數(shù)據(jù)傳送過(guò)程21a和21b所構(gòu)成的顯示更新過(guò)程期 間在視頻緩存器20、幀緩存器4以及顯示器6之間的傳送過(guò)程以及它們的 狀態(tài)。
在圖6中,幀緩存器4被分割成從左到右的大小漸增的第一、第二、 第三和第四塊61、 62、 63、 64。用對(duì)應(yīng)于兩行的數(shù)據(jù)表示第一塊61、對(duì)應(yīng) 于三行的數(shù)據(jù)表示第二塊62、對(duì)應(yīng)于四行的數(shù)據(jù)表示第三塊63、以及用對(duì) 應(yīng)于五行的數(shù)據(jù)表示第四塊64。然而,這僅僅是示意性的目的,并且應(yīng)當(dāng) 清楚在實(shí)際的實(shí)現(xiàn)中可有更多行的數(shù)據(jù)。而且根據(jù)實(shí)際的實(shí)現(xiàn),選擇塊的 數(shù)量來(lái)提供最佳的方案,并且塊的數(shù)量可以比4更多或更少,這取決于特 定實(shí)施方式。
圖6中最上面的圖像組示意了在時(shí)間h的緩存器狀態(tài)。這里行8表示 第一幀的第一塊,即,kb = l, ib-l的數(shù)據(jù)從幀緩存器4到顯示器6的寫 入。 一旦第一塊61的第一行被從幀緩存器4寫入到顯示器6,則發(fā)生第一 次中斷42。這涉及第二數(shù)據(jù)傳送過(guò)程21b的步驟33的完成。然后依照步 驟34和36設(shè)置第四標(biāo)記。行10表示數(shù)據(jù)從視頻緩存器20到幀緩存器4
的寫入。在時(shí)間tp行10被寫入到幀緩存器4的第四塊64。因此,先前 已經(jīng)為第一、第二、第三和第四快中的每一個(gè)執(zhí)行了步驟25到29,并且 已經(jīng)在步驟27清除了標(biāo)記1、 2和3。步驟27中對(duì)第一標(biāo)記的清除允許第 二數(shù)據(jù)傳送過(guò)程21b——尤其是步驟32準(zhǔn)許從幀緩存器4向顯示器6刷新 圖像數(shù)據(jù)2的第一塊61。 一旦第一塊的數(shù)據(jù)被刷新到顯示器,則步驟36 設(shè)置第四標(biāo)記。 一旦第一數(shù)據(jù)傳送過(guò)程21a把數(shù)據(jù)的最后像素寫入到幀緩 存器4的第四塊64,則發(fā)生第二次中斷44。這對(duì)應(yīng)于框26的完成。隨后, 在步驟27清除與幀的最后塊64相關(guān)的第四標(biāo)記。隨后,步驟28確定ia 等于n,即,幀的最后一塊已經(jīng)被刷新,從而步驟30將U復(fù)位為l并把幀 數(shù)ka增加為2。
之后,在時(shí)間h,第二數(shù)據(jù)傳送過(guò)程21b從幀緩存器4中一一尤其是 從幀緩存器4的第二塊62中,將數(shù)據(jù)8寫入顯示器6。僅僅在該過(guò)程已經(jīng) 為第一幀寫入第二塊62之后,第二標(biāo)記被第一數(shù)據(jù)傳送過(guò)程21a的步驟 27清除,這才成為可能。當(dāng)?shù)诙?shù)據(jù)傳送過(guò)程21b已經(jīng)完成把幀緩存器4 的第二塊的第一行寫入到顯示器6后,發(fā)生第三次中斷46。這對(duì)應(yīng)于步驟 33的完成。在這時(shí),由于這時(shí)ib-2,于是步驟34產(chǎn)生否定結(jié)果,步驟35 設(shè)置第一標(biāo)記。第一標(biāo)記的設(shè)置允許第一數(shù)據(jù)傳送過(guò)程21a執(zhí)行步驟25 到26,其中在該步驟寫入幀ka = 2的第一塊61。這在圖6的時(shí)間t3進(jìn)行了 示意。并行地,第二數(shù)據(jù)傳送過(guò)程21b將數(shù)據(jù)8從幀緩存器4的第二塊寫 入到顯示器6。從視頻緩存器2到幀緩存器4的第一塊的數(shù)據(jù)刷新10的完 成導(dǎo)致了第四次中斷48。這導(dǎo)致了在第一數(shù)據(jù)傳送過(guò)程21a的步驟27清 除第一標(biāo)記。同時(shí),第二數(shù)據(jù)傳送過(guò)程21b已經(jīng)完成從幀緩存器4的第二 塊62到顯示器6的數(shù)據(jù)寫入8。
由于在時(shí)間t3,步驟37已經(jīng)完成了第二塊62,步驟38產(chǎn)生否定結(jié)果 并且步驟39將ib的值遞增為3。由于在第一數(shù)據(jù)傳送過(guò)程21a對(duì)前幀的第 三塊63的寫入數(shù)據(jù)之后在步驟27清除了第三標(biāo)記,步驟32顯示第三標(biāo)記 被清除,因此第二數(shù)據(jù)傳送過(guò)程21b可以直接執(zhí)行步驟33。 一旦第三塊的 第一行已經(jīng)被從幀緩存器4刷新到顯示器6,則發(fā)生第五次中斷50。在圖
6中顯示為第五次中斷50發(fā)生在時(shí)間1 之前。第五次中斷50導(dǎo)致了在步 驟35設(shè)置第二標(biāo)記,允許第一數(shù)據(jù)傳送過(guò)程21a將數(shù)據(jù)從視頻緩存器20 寫入到幀緩存器4的第二塊62,在時(shí)間t4,第一數(shù)據(jù)傳送過(guò)程21a已經(jīng)完 成將數(shù)據(jù)寫入10到幀緩存器4的第二塊62中,并產(chǎn)生第六次中斷52。在 該時(shí)刻,第二數(shù)據(jù)傳送過(guò)程21b還已經(jīng)完成了把數(shù)據(jù)從幀緩存器4的第三 塊63寫入到顯示器6。由于在這時(shí)第四標(biāo)記是清楚的,第二數(shù)據(jù)傳送過(guò)程 21b可以開(kāi)始把數(shù)據(jù)從幀緩存器4的第四塊64刷新到顯示器6,在該例子 中這樣做。
一旦第四塊64的第一行已經(jīng)從幀緩存器4刷新到顯示器6,則發(fā)生第 七次中斷54。這導(dǎo)致了在步驟35設(shè)置第三標(biāo)記,這允許在步驟26第一數(shù) 據(jù)傳送過(guò)程21a把第三塊63的數(shù)據(jù)從視頻緩存器20寫入到幀緩存器4。 這在圖6的時(shí)間ts示意為10。當(dāng)?shù)谝粩?shù)據(jù)傳送過(guò)程21a已經(jīng)完成把第三塊 63的數(shù)據(jù)從視頻緩存器20寫入到幀緩存器4后,產(chǎn)生第八次中斷。這導(dǎo) 致了第三標(biāo)記的清除,從而允許第二數(shù)據(jù)傳送過(guò)程21b及時(shí)地使用幀緩存 器4的第三塊63中的數(shù)據(jù)刷新顯示器6。在時(shí)間ts,圖6顯示了第二數(shù)據(jù) 傳送過(guò)程21b剛剛完成數(shù)據(jù)從幀緩存器4的第四塊64到顯示器6的寫入8。 這時(shí),在已經(jīng)通過(guò)第一數(shù)據(jù)傳送過(guò)程21a將視頻緩存器20中的數(shù)據(jù)提供給 幀緩存器4后,笫二數(shù)據(jù)傳送過(guò)程21b已經(jīng)使用幀緩存器4的所有四塊61、 62、 63和64的數(shù)據(jù)刷新了顯示器6。而且,在時(shí)間t5,第一數(shù)據(jù)傳送過(guò)程 21a已經(jīng)把第二幀的數(shù)據(jù)寫入到幀緩存器4的第一塊61、第二塊62和第三 塊63。
因此,由于在時(shí)間t3的中斷48之后,通過(guò)第一數(shù)據(jù)傳送過(guò)程21a的步 驟27清除了第一標(biāo)記,而允許在時(shí)間t6第二數(shù)據(jù)傳送過(guò)程21b已經(jīng)把數(shù) 據(jù)從幀緩存器4的第一塊61寫入8到顯示器。這涉及第一塊61的第一行 結(jié)束時(shí)的第九次中斷58。而且在時(shí)間t6,第一數(shù)據(jù)傳送過(guò)程21a已經(jīng)把數(shù) 據(jù)從視頻緩存器20寫入8到幀緩存器4的第四塊64,并且第十次中斷60 通知該數(shù)據(jù)的最后的象素已經(jīng)被寫入。
在圖6所示的例子中,從視頻緩存器20到幀緩存器4的數(shù)據(jù)傳送過(guò)程,
即,第一數(shù)據(jù)傳送過(guò)程21a,比把來(lái)自該幀的數(shù)據(jù)傳送到顯示器6的第二 數(shù)據(jù)傳送過(guò)程21b快。因此,第一數(shù)據(jù)傳送過(guò)程21a趨向于在步驟25處等 待與其接下來(lái)將要寫入的塊對(duì)應(yīng)的標(biāo)記被第二數(shù)據(jù)傳送過(guò)程21b清除。
然而,第二數(shù)據(jù)傳送過(guò)程21b的步驟32的配置還保證了除非第一數(shù)據(jù) 傳送過(guò)程21a已經(jīng)完成了把數(shù)據(jù)寫入到塊中,否則不從幀緩存器4的該塊 向顯示器6傳送數(shù)據(jù)。因此,消除了撕裂的可能性。而且,不需要提供兩 個(gè)并行幀緩存器就可以實(shí)現(xiàn)。這是由幀緩存器4分成幾個(gè)塊以及對(duì)這幾個(gè) 塊單獨(dú)進(jìn)行數(shù)據(jù)進(jìn)出傳送來(lái)實(shí)現(xiàn)的。
從圖6中可以看出第一數(shù)據(jù)傳送過(guò)程21a將數(shù)據(jù)從視頻緩存器20寫入 幀緩存器4的方向與第二數(shù)據(jù)傳送過(guò)程21b將數(shù)據(jù)從緩存器4寫入到顯示 器6的方向相垂直。在傳統(tǒng)的單幀緩存器系統(tǒng)中,數(shù)據(jù)寫入和寫出幀緩存 器的方向不同,其不可能不等待整個(gè)幀緩存器被在先視頻緩存器的數(shù)據(jù)充 滿就把數(shù)據(jù)從幀緩存器寫入顯示器。然而,幀緩存器4分成幾個(gè)塊允許將 來(lái)自幀緩存器4的一部分的數(shù)據(jù)寫入顯示器6,同時(shí)向幀緩存器4的其它 部分寫入來(lái)自視頻緩存器20的數(shù)據(jù)。
然而,應(yīng)當(dāng)清楚如果從幀緩存器4向顯示器6寫入數(shù)據(jù)的方向與從視 頻緩存器20向幀緩存器4寫入數(shù)據(jù)的方向相同,則系統(tǒng)可以同樣4艮好的工 作。因此,把數(shù)據(jù)從視頻緩存器20寫入到幀緩存器4的方向并不關(guān)鍵,這 允許^使用具有或不具有旋轉(zhuǎn)DMA的技術(shù)。
因此,系統(tǒng)17可以用在一種i殳備中,在該i殳備中,顯示器6的取向需 要在橫向和縱向之間轉(zhuǎn)換,同時(shí)避免圖像的撕裂以及避免需要除了少數(shù)硬 件中斷外的附加硬件。
當(dāng)?shù)诙?shù)據(jù)傳送過(guò)程21b已經(jīng)tef目關(guān)數(shù)據(jù)塊的第一行從幀緩存器4寫 入到顯示器6時(shí)發(fā)生的中斷42、 46、 50、 54和58可以通過(guò)任何合適的方 式實(shí)現(xiàn)。它們可以是硬件中斷??蛇x擇的,它們可以是軟件中斷。而且, 它們可以不是傳統(tǒng)意義上的中斷,而可以是在實(shí)現(xiàn)第二數(shù)據(jù)傳送過(guò)程21b 中由MCU 18操作的程序中的簡(jiǎn)單代碼行。
當(dāng)?shù)谝粩?shù)據(jù)傳送過(guò)程已經(jīng)把數(shù)據(jù)寫入幀緩存器4的相關(guān)塊中時(shí)發(fā)生的
中斷48、 52、 56和60可以以硬件、軟件或任何其他合適的方式實(shí)現(xiàn)。
在該例子中,允許把下一幀的數(shù)據(jù)寫入在先塊的中斷42、 46、 50、 54 和58被置于塊的第一行的結(jié)束。然而,這僅僅是一個(gè)例子,并且任何其他 合適的位置都可以使用。盡管由于從視頻緩存器20向幀緩存器4寫入數(shù)據(jù) 的延時(shí)可以被減小到最小,越早通知越好,但僅僅需要即時(shí)保證在先的塊 已經(jīng)被完全刷新到顯示器6。
可以存在任何數(shù)量的塊,這里提供至少兩個(gè)塊。
在上述實(shí)施例中,優(yōu)選地,顯示器6的刷新比圖Y象數(shù)據(jù)2的寫入快。 優(yōu)選地,在整個(gè)幀緩存器4塊的尺寸不斷增加。根據(jù)兩個(gè)過(guò)程21a和21b 的相對(duì)速度最優(yōu)化塊的尺寸。把圖像數(shù)據(jù)2寫入塊ia花費(fèi)的時(shí)間等于或略 大于復(fù)制較大塊ib - ia+l的圖像數(shù)據(jù)并把數(shù)據(jù)刷新到顯示器6花費(fèi)的時(shí)間。
中斷46、 50和54向過(guò)程21a指示塊已經(jīng)被刷新到顯示器,這意味著 該塊的下一幀可以被寫入到幀緩存器4。然而,由于在該例子中,塊到顯 示器6的刷新比把繼續(xù)進(jìn)行的塊的圖像數(shù)據(jù)2寫入到幀緩存器4快,應(yīng)當(dāng) 清楚這些中斷并不是必需的。因此,如果根據(jù)相對(duì)DMA傳送速度正確地 選擇塊的尺寸,則可以省略中斷46、 50和54。然而,中斷48、 52、 56和 60保證,在任何塊中,在圖像數(shù)據(jù)2被刷新到顯示器6之前其被寫入幀緩 存器4中。中斷42和58保證關(guān)于下一幀的圖傳Jt據(jù)2在下一幀的第二 塊被刷新前被寫入到最后塊。這樣,可以保證在所有時(shí)間,顯示器6上 的圖像數(shù)據(jù)2刷新超過(guò)向幀緩存器4的圖像數(shù)據(jù)2寫入至少一個(gè)塊。
如果寫入過(guò)程21a具有速度Sl以及復(fù)制過(guò)程21b具有速度S2,則第 一塊之后的每一塊的最大尺寸可以等于前一正在處理的塊的尺寸WS2/S1, 這樣,塊的尺寸依照平方率增加。如果省略中斷46、 50、 54,則每一塊的 尺寸可以略小于最大塊尺寸,以防復(fù)制過(guò)程21b略'隄或者寫入過(guò)程21b稍 微提速。
在另一實(shí)施例中(沒(méi)有顯示),圖像數(shù)據(jù)2到幀緩存器4的寫入比顯 示器6的刷新快。這樣,優(yōu)選得,塊的尺寸順次降低。才艮據(jù)兩個(gè)過(guò)程21a 和21b的速度優(yōu)化塊的尺寸。優(yōu)選的,把圖像數(shù)據(jù)2寫入緩存器的塊花費(fèi)
的時(shí)間等于或略小于復(fù)制緊隨其后的塊并將其刷新到顯示器6花費(fèi)的時(shí) 間。
在過(guò)程21a和21b具有基本相同的速度的情況下,塊可以具有基4^目 同的尺寸,并且需要圖6中指示的所有中斷來(lái)保證圖像撕裂不會(huì)發(fā)生。
在幀緩存器4上提供塊的另一優(yōu)點(diǎn)是可以執(zhí)行圖像幀的部分更新。當(dāng) 從一個(gè)幀到下幀特定塊中的數(shù)據(jù)并沒(méi)有改變時(shí),例如表示菜單的圖像數(shù)據(jù), 這是有用的。
盡管已經(jīng)根據(jù)上述實(shí)施例描述了本發(fā)明,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)清楚在 不脫離本發(fā)明的范圍的情況下可以進(jìn)行修改。例如,可以提供任意數(shù)量的 塊。
權(quán)利要求
1.一種顯示圖像的方法,包括使用存儲(chǔ)控制單元把包含二維存儲(chǔ)單元矩陣的緩存器分成至少第一塊和第二塊;把數(shù)據(jù)寫入所述塊的第一塊;以及把所述數(shù)據(jù)從所述塊的第一塊復(fù)制到顯示器的相應(yīng)塊,其中,對(duì)所述塊的相繼塊重復(fù)所述寫入和復(fù)制步驟,以及其中到所述塊的所述數(shù)據(jù)寫入與從所述塊復(fù)制數(shù)據(jù)的方向垂直。
2. 如權(quán)利要求l所述的方法,進(jìn)一步包括 檢測(cè)所述塊的第一塊的所述數(shù)據(jù)寫入被完成;以及 響應(yīng)于所述檢測(cè),允許對(duì)于進(jìn)入所述塊的第一塊的所述數(shù)據(jù)的所述復(fù)制。
3. 如權(quán)利要求2所述的方法,其中所述檢測(cè)步驟由中斷發(fā)起。
4. 如權(quán)利要求l所述的方法,進(jìn)一步包括 檢測(cè)對(duì)于所述塊的第一塊的所述復(fù)制步驟被完成;以及 響應(yīng)于所述檢測(cè),允許向所述塊的第一塊寫入替換數(shù)據(jù)。
5. 如權(quán)利要求4所述的方法,其中所述檢測(cè)步驟由中斷發(fā)起。
6. 如權(quán)利要求1所述的方法,其中除了所述第一塊外,每一 塊比緊接著進(jìn)行的塊大。
7. 如權(quán)利要求1所迷的方法,其中寫入所述緩存器的所述數(shù) 據(jù)表示一個(gè)圖像幀,包括,在把圖像幀的數(shù)據(jù)寫入所述緩存器的 最后的塊之后,把下一圖像幀的數(shù)據(jù)寫入所迷緩存器的第一塊。
8. —種計(jì)算機(jī)程序,被可選擇地存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上, 所述程序包括執(zhí)行計(jì)算機(jī)可執(zhí)行指令的控制裝置,用于執(zhí)行權(quán)利 要求1所述的顯示圖像的方法。
9. 一種顯示圖像的裝置,包括 緩存器,包括二維存儲(chǔ)單元矩陣; 顯示器;以及存儲(chǔ)控制單元,其被配置為把所述緩存器分成至少第一塊和第 二塊,把數(shù)據(jù)寫入所述塊的第一塊,以及把所述數(shù)據(jù)從所述塊的 第一塊復(fù)制到所述顯示器的相應(yīng)塊,其中所述存儲(chǔ)控制單元進(jìn)一步被配置為順序地把數(shù)據(jù)寫入所 述塊的相繼塊并順序地復(fù)制所述相繼塊的數(shù)據(jù),以及其中到所述 塊的所述數(shù)據(jù)寫入與從所述塊復(fù)制數(shù)據(jù)的方向垂直。
10. 如權(quán)利要求9所述的顯示圖像的裝置,進(jìn)一步包括把所述 數(shù)據(jù)寫入所述緩存器的第一直接存儲(chǔ)訪問(wèn)信道。
11,如權(quán)利要求10所述的顯示圖像的裝置,進(jìn)一步包括把所 述數(shù)據(jù)從所述緩存器復(fù)制到所述顯示器的第二直接存儲(chǔ)訪問(wèn)信 道。
全文摘要
存儲(chǔ)控制單元控制從視頻緩存器到幀緩存器的和從幀緩存器到顯示器的圖像數(shù)據(jù)傳送被逐塊地執(zhí)行。從視頻緩存器向幀緩存器一次一塊地寫入圖像數(shù)據(jù)。當(dāng)整個(gè)塊的圖像數(shù)據(jù)已經(jīng)被寫入到幀緩存器后,該塊的數(shù)據(jù)可以被刷新到顯示器。只有一旦該塊的數(shù)據(jù)已經(jīng)被刷新到顯示器,才向幀緩存器寫入下一幀的圖像數(shù)據(jù)。這樣,可以消除圖像撕裂。當(dāng)向幀緩存器寫入數(shù)據(jù)的方向垂直于從幀緩存器復(fù)制數(shù)據(jù)并刷新顯示器的方向時(shí),也可以成功的傳遞圖像。這樣,可以不需要雙緩存器,把橫向圖像傳遞到縱向顯示器上。
文檔編號(hào)G09G5/39GK101176142SQ200680017101
公開(kāi)日2008年5月7日 申請(qǐng)日期2006年4月20日 優(yōu)先權(quán)日2005年4月20日
發(fā)明者T·海明基 申請(qǐng)人:諾基亞公司