圖像處理lsi和圖像處理程序的制作方法
【專利摘要】當(dāng)將要執(zhí)行圖形計(jì)算以根據(jù)輸入向量數(shù)據(jù)計(jì)算將要在由多個(gè)線條形成的幀內(nèi)繪制的圖的顯示數(shù)據(jù)時(shí),本發(fā)明減小了被分配至用于存儲(chǔ)中間數(shù)據(jù)的工作區(qū)域的RAM的存儲(chǔ)容量。當(dāng)將要執(zhí)行圖形計(jì)算時(shí),將在其中將要顯示圖的幀針對(duì)每個(gè)線條分割為多個(gè)繪制區(qū)域。關(guān)于用于存儲(chǔ)中間數(shù)據(jù)的工作區(qū)域,向所有繪制區(qū)域分配相同的工作區(qū)域。通過(guò)重復(fù)使用相同的工作區(qū)域來(lái)依次執(zhí)行用于計(jì)算單獨(dú)繪制區(qū)域的中間數(shù)據(jù)的圖形計(jì)算。
【專利說(shuō)明】圖像處理LSI和圖像處理程序
[0001]相關(guān)申請(qǐng)的交叉引用
[0002]包括說(shuō)明書、附圖和摘要的于2013年2月26日提交的第2013-035459號(hào)日本專利申請(qǐng)的公開內(nèi)容通過(guò)整體引用并入本文。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明涉及一種用于執(zhí)行圖形計(jì)算的圖像處理LSI (大規(guī)模集成電路)以及一種使用圖像處理LSI進(jìn)行操作的圖像處理程序。特別地,本發(fā)明適用于限制用于圖形計(jì)算的RAM (隨機(jī)存取存儲(chǔ)器)的工作區(qū)域的存儲(chǔ)容量。
【背景技術(shù)】
[0004]當(dāng)由圖像處理LSI執(zhí)行圖形繪制過(guò)程時(shí),對(duì)許多線段和簡(jiǎn)單的圖的繪制數(shù)據(jù)進(jìn)行綜合以獲得所需的圖像并且在顯示裝置上顯示所獲得的圖像。作為繪制的元件的線段和圖由參數(shù)調(diào)用的向量數(shù)據(jù)進(jìn)行表示,該向量包括例如曲率以及頂點(diǎn)或其它的特征點(diǎn)的坐標(biāo)。在圖形計(jì)算中,針對(duì)在幀內(nèi)形成圖像的許多線段和圖的每一個(gè),從向量數(shù)據(jù)計(jì)算將要在幀內(nèi)的每個(gè)像素上繪制的繪制數(shù)據(jù),并且在幀緩沖器中組合所有線段和圖的繪制數(shù)據(jù),以基于單獨(dú)幀計(jì)算將要在顯示裝置上顯示的顯示數(shù)據(jù)。顯示數(shù)據(jù)表示亮度或者三原色的每一個(gè)的亮度和顏色差值,并且被存儲(chǔ)在幀緩沖器中。
[0005]通常通過(guò)將ROM (只讀存儲(chǔ)器)和RAM設(shè)置在圖像處理LSI外部來(lái)配置用于執(zhí)行上述圖形繪制過(guò)程的圖像處理裝置。外部ROM存儲(chǔ)了向量數(shù)據(jù)。外部RAM被分配作為幀緩沖器。作為圖形計(jì)算中的中間數(shù)據(jù)的繪制數(shù)據(jù)也被存儲(chǔ)于在外部RAM中限定的工作區(qū)域中。
[0006]在第2011-158951號(hào)日本待審專利公開中公開的技術(shù)抑制了當(dāng)由多個(gè)運(yùn)算元件執(zhí)行光柵化過(guò)程時(shí)對(duì)存儲(chǔ)器使用的增加。當(dāng)根據(jù)頁(yè)面描述語(yǔ)言數(shù)據(jù)對(duì)基于單個(gè)條帶生成的中間數(shù)據(jù)進(jìn)行光柵化時(shí),所公開的技術(shù)通過(guò)分割條帶生成多個(gè)分割的區(qū)域,這具有多個(gè)核心(運(yùn)算元件)并且將中間數(shù)據(jù)的每個(gè)集合形成為多個(gè)部分,并且將分割的區(qū)域賦值至單個(gè)核心以執(zhí)行光柵化過(guò)程。
【發(fā)明內(nèi)容】
[0007]當(dāng)研究例如日本待審專利公開案號(hào)2011-158951中所述相關(guān)領(lǐng)域技術(shù)時(shí),本發(fā)明的發(fā)明人發(fā)現(xiàn)以下描述的新問題。
[0008]如上所述,作為圖形計(jì)算中的中間數(shù)據(jù)的繪制數(shù)據(jù)存儲(chǔ)在用于圖形計(jì)算的RAM的工作區(qū)域中。用于遵從OpenVG的規(guī)范的主要方法形成了包括每個(gè)線條中的線段和圖的所有邊緣的坐標(biāo)的中間數(shù)據(jù),該OpenVG是用于2D向量圖形的API (應(yīng)用程序接口)工業(yè)標(biāo)準(zhǔn)之一。幀內(nèi)的多個(gè)線段和圖的每一個(gè)的中間數(shù)據(jù)被存儲(chǔ)在工作區(qū)域中。一個(gè)線段或圖的中間數(shù)據(jù)的一個(gè)幀具有通過(guò)將由每個(gè)線條的邊緣的最大數(shù)目確定的每個(gè)線條的數(shù)據(jù)容量乘以每個(gè)幀的線條的數(shù)目來(lái)確定的大小。用于遵從OpenVG規(guī)范的主要方法使用以下方程
(I)來(lái)計(jì)算每個(gè)線條的大小。此外,當(dāng)例如將要添加反混疊過(guò)程時(shí),通過(guò)以下方程(2)計(jì)算每個(gè)幀的工作區(qū)域所需的存儲(chǔ)容量:每個(gè)線條的大小=8字節(jié)+ (邊緣的最大數(shù)目X2字節(jié))一(I)工作區(qū)域的存儲(chǔ)容量=每個(gè)線條的大小X豎直線條的數(shù)目X4
[0009]- (2)
[0010]其中豎直線條的數(shù)目是形成一個(gè)幀的線條的數(shù)目。
[0011]在其中將要顯示的圖像的大小是480X800寬屏VGA (Wide VGA)的情形中,當(dāng)例如邊緣的最大數(shù)目是68時(shí),每個(gè)線條的大小是144字節(jié)。如果在該情形中由于RAM的配置而以64字節(jié)為單位執(zhí)行分配,則每個(gè)線條的大小是192字節(jié)。因?yàn)橛糜趯捚罺GA的豎直線條數(shù)目是480,所以工作區(qū)域所需的存儲(chǔ)容量是368,640字節(jié)(360千字節(jié))。工作區(qū)域所需的存儲(chǔ)容量隨著將要顯示的圖像的分辨率的增大而增大。
[0012]大約360千字節(jié)的存儲(chǔ)容量不會(huì)對(duì)于外部RAM引起重大問題。然而,當(dāng)RAM集成在與圖像處理LSI相同的芯片上時(shí),這成為問題。
[0013]第2011-158951號(hào)日本待審專利公開中所公開的技術(shù)防止當(dāng)執(zhí)行光柵化過(guò)程時(shí)存儲(chǔ)器使用的增加。光柵化過(guò)程是用于根據(jù)繪制數(shù)據(jù)計(jì)算幀緩沖器中的像素的顯示數(shù)據(jù)的過(guò)程,繪制數(shù)據(jù)是在上述圖形計(jì)算中的中間數(shù)據(jù)。在光柵化過(guò)程中,一個(gè)幀被分割為由多個(gè)線條形成的條帶以便通過(guò)使用多個(gè)核心(運(yùn)算元件)執(zhí)行并行處理。因?yàn)獒槍?duì)每個(gè)線條計(jì)算中間數(shù)據(jù),所以針對(duì)每個(gè)對(duì)應(yīng)的線條計(jì)算幀緩沖器中的像素的顯示數(shù)據(jù)。中間數(shù)據(jù)自身保留在用于一個(gè)整幀的單個(gè)工作區(qū)域中。因?yàn)橛糜谏芍虚g數(shù)據(jù)的向量數(shù)據(jù)例如是圖的特征點(diǎn)的坐標(biāo),所以便利的是中間數(shù)據(jù)存儲(chǔ)在對(duì)于一個(gè)整幀集中分配的工作區(qū)域中。原因在于計(jì)算中間數(shù)據(jù)的順序隨著用于計(jì)算中間數(shù)據(jù)的實(shí)施硬件或軟件的方法、以及隨著所使用的算法而變化,這是因?yàn)閳D的特征點(diǎn)的坐標(biāo)在幀內(nèi)是任意的。
[0014]因此,不易減小存儲(chǔ)了圖形計(jì)算中的中間數(shù)據(jù)的工作區(qū)域的存儲(chǔ)容量。
[0015]以下將描述用于解決上述問題的方法。由以下說(shuō)明書并且由附圖將明確其它問題和創(chuàng)新性特征。
[0016]以下描述本發(fā)明的一個(gè)方面。
[0017]總體而言,當(dāng)將要執(zhí)行圖形計(jì)算以根據(jù)輸入向量數(shù)據(jù)計(jì)算將要在由多個(gè)線條形成的幀內(nèi)繪制的圖的顯示數(shù)據(jù)時(shí),針對(duì)每個(gè)線條將其中將要顯示圖的幀分割為多個(gè)繪制區(qū)域。關(guān)于用于存儲(chǔ)中間數(shù)據(jù)的工作區(qū)域,向所有繪制區(qū)域分配相同的工作區(qū)域。通過(guò)重復(fù)使用相同的工作區(qū)域來(lái)依次執(zhí)行用于計(jì)算單獨(dú)繪制區(qū)域的中間數(shù)據(jù)的圖形計(jì)算。
[0018]以下簡(jiǎn)要描述由本發(fā)明一個(gè)方面提供的優(yōu)點(diǎn)。
[0019]因?yàn)獒槍?duì)在其中計(jì)算每個(gè)分割的繪制區(qū)域的中間數(shù)據(jù)的圖形計(jì)算而重復(fù)使用一個(gè)工作區(qū)域,所以可以減小工作區(qū)域被分配至的RAM的存儲(chǔ)容量。
【專利附圖】
【附圖說(shuō)明】
[0020]圖1是示出了根據(jù)本發(fā)明的實(shí)施例的圖像處理LSI的示例性配置以及使用圖像處理LSI的圖像處理裝置的示例性配置的框圖;
[0021]圖2是示出了被執(zhí)行以繪制線段的操作的示意圖;
[0022]圖3是圖2的局部放大視圖;
[0023]圖4是示出了被執(zhí)行以繪制矩形的操作的示意圖;
[0024]圖5是圖4的局部放大視圖;[0025]圖6是示出了根據(jù)本發(fā)明實(shí)施例的由圖像處理程序執(zhí)行的示例性操作的流程圖;以及
[0026]圖7A和圖7B是示出了如下示例的示意圖,其中工作區(qū)域改變?yōu)閳D6中所示。
【具體實(shí)施方式】
[0027]1.實(shí)施例的概述
[0028]首先,將概述表示本文檔中所公開的本發(fā)明的實(shí)施例。在代表性實(shí)施例的概述中涉及的附圖中括號(hào)內(nèi)的參考數(shù)字僅僅示出了附標(biāo)了參考數(shù)字的元件的概念中所包含的對(duì)象。
[0029][1]<圖像處理LSI —分割繪制區(qū)域并且重用相同的工作區(qū)域>
[0030]根據(jù)本發(fā)明的一個(gè)方面,提供了一種圖像處理LSI (1),圖像處理LSI (I)能夠執(zhí)行圖形計(jì)算,以用于根據(jù)輸入向量數(shù)據(jù)(12)計(jì)算在由多個(gè)線條所形成的一個(gè)幀(20)內(nèi)將要繪制的圖(22、23)的顯示數(shù)據(jù)。根據(jù)如以下描述配置圖像處理LSI (I)。
[0031]圖像處理LSI (I)包括圖形計(jì)算部分(2)和存儲(chǔ)部分(例如RAM) (5)。圖形計(jì)算部分(2)能夠執(zhí)行圖形計(jì)算。存儲(chǔ)部分(5)包括用于存儲(chǔ)用于圖形計(jì)算的中間數(shù)據(jù)的工作區(qū)域(13),并且從圖形計(jì)算部分可訪問存儲(chǔ)部分。
[0032]圖形計(jì)算部分針對(duì)多個(gè)線條中的每個(gè)將顯示了圖的幀分割為多個(gè)繪制區(qū)域(21),并且對(duì)于每個(gè)繪制區(qū)域順序地執(zhí)行圖形計(jì)算。
[0033]關(guān)于對(duì)每個(gè)繪制區(qū)域進(jìn)行圖形計(jì)算,圖形計(jì)算部分將存儲(chǔ)部分的相同工作區(qū)域
(13)分配至所有繪制區(qū)域以便存儲(chǔ)中間數(shù)據(jù)。
[0034]因此,可以減小存儲(chǔ)部分中的工作區(qū)域所需的存儲(chǔ)容量。
[0035][2]〈根據(jù)工作區(qū)域的大小限定繪制區(qū)域的節(jié)段大小>
[0036]根據(jù)本發(fā)明的另一方面,提供了一種如上[I]所述的圖像處理LSI。圖形計(jì)算部分根據(jù)分配至工作區(qū)域的預(yù)定的存儲(chǔ)容量而計(jì)算形成繪制區(qū)域的線條的數(shù)目。
[0037]因此,工作區(qū)域可以被分配至如下存儲(chǔ)部分,該存儲(chǔ)部分被形成為圖像處理LSI上的芯片上元件并且具有限制的存儲(chǔ)容量。
[0038][3]〈2D 向量圖形〉
[0039]根據(jù)本發(fā)明的另一方面,提供了如上[I]所述的圖像處理LSI。一個(gè)幀由具有多個(gè)像素的線條形成。中間數(shù)據(jù)包括指示圖的每個(gè)線條的所有邊緣的位置的像素的坐標(biāo)數(shù)據(jù)。工作區(qū)域能夠存儲(chǔ)線條的中間數(shù)據(jù)。
[0040]圖形計(jì)算部分根據(jù)將要存儲(chǔ)的線條數(shù)目與一個(gè)幀內(nèi)每個(gè)線條的邊緣的最大數(shù)目的乘積,而將所限定的存儲(chǔ)容量分配至存儲(chǔ)部分中的工作區(qū)域。
[0041]因此,可以精確地計(jì)算例如適用OpenVG的2D向量圖形中的工作區(qū)域的存儲(chǔ)容量。
[0042][4]〈在2D向量圖形中的繪制區(qū)域的節(jié)段的大小>
[0043]根據(jù)本發(fā)明的另一方面,提供了一種如上[I]所述的圖像處理LSI。圖形計(jì)算部分根據(jù)分配至工作區(qū)域的預(yù)定存儲(chǔ)容量而計(jì)算形成繪制區(qū)域的線條的數(shù)目(步驟34)。
[0044]因此,工作區(qū)域也可以被分配至如下存儲(chǔ)部分,該存儲(chǔ)部分被形成為圖像處理LSI上的芯片上元件并且具有例如在適用OpenVG的2D向量圖形中限制的存儲(chǔ)容量。
[0045][5]〈圖形引擎加上CPU (中央處理單元)>[0046]根據(jù)本發(fā)明的另一方面,提供了一種如上[I]至[4]所述的圖像處理LSI。圖形計(jì)算部分包括圖形引擎(4)和CPU (3)。圖形引擎(4)可以輸入向量數(shù)據(jù)并且輸出中間數(shù)據(jù)。CPU (3)可以控制圖形引擎。
[0047]因此,可以以高速執(zhí)行圖形計(jì)算。
[0048][6]〈圖像處理程序一分割繪制區(qū)域并且重用相同的工作區(qū)域>
[0049]根據(jù)本發(fā)明的另一方面,提供了一種圖像處理程序(30),圖像處理程序(30)能夠執(zhí)行圖形計(jì)算以用于通過(guò)使用圖形引擎(4)、CPU (3)和存儲(chǔ)部分(例如RAM) (5)根據(jù)輸入向量數(shù)據(jù)(12)來(lái)計(jì)算將要在由多個(gè)線條形成的一個(gè)幀(20)內(nèi)繪制的圖(22、23)的顯示數(shù)據(jù)。根據(jù)如以下描述配置圖像處理程序(30)。
[0050]圖像處理程序(3)包括步驟:當(dāng)由CPU執(zhí)行時(shí)將用于存儲(chǔ)用于圖形計(jì)算的中間數(shù)據(jù)的工作區(qū)域(13)分配至存儲(chǔ)部分;對(duì)于多個(gè)線條中的每個(gè)將顯示圖的幀分割為多個(gè)繪制區(qū)域(21),將向量數(shù)據(jù)輸入至圖形引擎以對(duì)每個(gè)繪制區(qū)域順序地執(zhí)行圖形計(jì)算,并且針對(duì)所有繪制區(qū)域?qū)⒅虚g數(shù)據(jù)存儲(chǔ)在相同的工作區(qū)域中,當(dāng)對(duì)每個(gè)繪制區(qū)域執(zhí)行圖形計(jì)算時(shí)輸出中間數(shù)據(jù)。
[0051]因此,可以減小存儲(chǔ)部分中的工作區(qū)域所需的存儲(chǔ)容量。
[0052][7]〈根據(jù)工作區(qū)域的大小限定繪制區(qū)域的節(jié)段的大小>
[0053]根據(jù)本發(fā)明的另一方面,提供了一種如上[6]所述的圖像處理程序。圖像處理程序進(jìn)一步包括使CPU根據(jù)分配至工作區(qū)域的預(yù)定存儲(chǔ)容量計(jì)算形成繪制區(qū)域的線條的數(shù)目的步驟(步驟34)。
[0054]因此,工作區(qū)域也可以被分配至如下存儲(chǔ)部分,該存儲(chǔ)部分被形成為圖像處理LSI上的芯片上元件并且具有限制的存儲(chǔ)容量。
[0055][8]〈2D 向量圖形〉
[0056]根據(jù)本發(fā)明的另一方面,提供了一種如上[6]所述的圖像處理程序。一個(gè)幀由具有多個(gè)像素的線條形成。中間數(shù)據(jù)包括指示圖的每個(gè)線條的所有邊緣的位置的像素的坐標(biāo)數(shù)據(jù)。
[0057]工作區(qū)域能夠存儲(chǔ)線條的中間數(shù)據(jù)。圖像處理程序進(jìn)一步包括使CPU將存儲(chǔ)容量分配至存儲(chǔ)部分中工作區(qū)域的步驟,存儲(chǔ)容量根據(jù)將要存儲(chǔ)的線條的數(shù)目與一個(gè)幀內(nèi)每個(gè)線條的邊緣的最大數(shù)目的乘積來(lái)限定。
[0058]因此,可以精確地計(jì)算例如適用OpenVG的2D向量圖形中工作區(qū)域的存儲(chǔ)容量。
[0059][9]〈在2D向量圖形中的繪制區(qū)域的節(jié)段的大小>
[0060]根據(jù)本發(fā)明的另一方面,提供了一種如上[8]所述的圖像處理程序。圖像處理程序進(jìn)一步包括根據(jù)分配至工作區(qū)域的預(yù)定存儲(chǔ)容量而使CPU計(jì)算形成繪制區(qū)域的線條的數(shù)目的步驟(步驟34)。
[0061]因此,工作區(qū)域也可以被分配至如下存儲(chǔ)部分,該存儲(chǔ)部分被形成為圖像處理LSI上的芯片上元件并且具有例如在適用OpenVG的2D向量圖形中限制的存儲(chǔ)容量。
[0062][10]〈計(jì)算分割的繪制區(qū)域的高度(線條的數(shù)目)>
[0063]根據(jù)本發(fā)明的另一方面,提供了一種如上[9]所述的圖像處理程序。圖像處理程序進(jìn)一步包括步驟:計(jì)算圖的每個(gè)線條的邊緣的數(shù)目(步驟32);從經(jīng)計(jì)算的每個(gè)線條的邊緣的數(shù)目確定每個(gè)線條的邊緣的最大數(shù)目(步驟33);以及根據(jù)確定的邊緣的最大數(shù)目計(jì)算繪制區(qū)域中的線條的數(shù)目(步驟34)。
[0064]因此,可以根據(jù)線條的數(shù)目計(jì)算適合于具有預(yù)定存儲(chǔ)容量的工作區(qū)域的分割的繪制區(qū)域的高度。
[0065][11]〈初始化并且改變分割的繪制區(qū)域的高度>
[0066]根據(jù)本發(fā)明的另一方面,提供了一種如上[9]所述的圖像處理程序。圖像處理程序進(jìn)一步包括步驟:暫時(shí)地確定繪制區(qū)域中的線條的數(shù)目以及每個(gè)線條的邊緣的數(shù)目(步驟31);計(jì)算圖的每個(gè)線條的邊緣的數(shù)目(步驟32);從經(jīng)計(jì)算的每個(gè)線條的邊緣的數(shù)目確定每個(gè)線條的邊緣的最大數(shù)目(步驟33);以及根據(jù)確定的邊緣的最大數(shù)目改變繪制區(qū)域中的暫時(shí)確定的線條的數(shù)目(步驟36)。
[0067]因此,可以針對(duì)將要繪制的每個(gè)圖合適地調(diào)整適合于具有預(yù)定存儲(chǔ)容量的工作區(qū)域的分割的繪制區(qū)域的高度(線條的數(shù)目)。
[0068][12]〈在外接矩形的邊界內(nèi)計(jì)算邊緣的數(shù)目>
[0069]根據(jù)本發(fā)明的又一方面,提供了一種如上[10]或[11]所述的圖像處理程序。圖像處理程序進(jìn)一步包括如下步驟,在根據(jù)確定的邊緣的最大數(shù)目而計(jì)算繪制區(qū)域中的線條的數(shù)目的步驟之后,計(jì)算所有繪制區(qū)域中每個(gè)繪制區(qū)域的中間數(shù)據(jù)并且將經(jīng)計(jì)算的中間數(shù)據(jù)存儲(chǔ)在工作區(qū)域中(步驟37)。僅僅在外接圖的矩形(24)的邊界內(nèi)執(zhí)行上述步驟(步驟37)。
[0070]因此,可以縮短圖像處理所需的計(jì)算時(shí)間。
[0071]2.實(shí)施例的細(xì)節(jié)
[0072]以下將進(jìn)一步詳細(xì)描述本發(fā)明的實(shí)施例。
[0073]第一實(shí)施例〈圖像處理LSI〉
[0074]圖1是示出了根據(jù)本發(fā)明的實(shí)施例的圖像處理LSI的示例性配置以及使用了該圖像處理LSI的圖像處理裝置的示例性配置的框圖。
[0075]根據(jù)本發(fā)明的第一實(shí)施例的圖像處理LSI能夠執(zhí)行圖形計(jì)算,以根據(jù)輸入向量數(shù)據(jù)12計(jì)算將要在由多個(gè)線條形成的一個(gè)幀內(nèi)繪制的圖的顯示數(shù)據(jù)。例如,顯示裝置10和非易失性存儲(chǔ)器(R0M)9耦合至圖像處理LSI1。存儲(chǔ)向量數(shù)據(jù)12等的R0M9通過(guò)外部總線11耦合至圖像處理LSI1。例如,閃存(注冊(cè)商標(biāo))可以用作R0M9。此外,R0M9也可以存儲(chǔ)用于操作圖像處理LSIl的程序。圖像處理LSIl被配置為使得圖形計(jì)算部分2、存儲(chǔ)部分5(諸如RAM)、系統(tǒng)接口 7和視頻接口 8通過(guò)總線6互連。工作區(qū)域13和幀緩沖器14被分配至RAM5。視頻接口 8是用于耦合至外部顯示裝置10的接口電路。圖形計(jì)算部分2根據(jù)輸入向量數(shù)據(jù)12執(zhí)行圖形計(jì)算并且將中間數(shù)據(jù)存儲(chǔ)在被分配至RAM5的工作區(qū)域13中。
[0076]圖形計(jì)算部分2針對(duì)多個(gè)線條中的每個(gè)線條將顯示了根據(jù)向量數(shù)據(jù)12繪制的圖的幀分割為多個(gè)繪制區(qū)域。相同的工作區(qū)域13被分配至所有分割的繪制區(qū)域。當(dāng)對(duì)分割的繪制區(qū)域的每一個(gè)順序地執(zhí)行圖形計(jì)算時(shí),圖形計(jì)算部分2重復(fù)地使用相同的工作區(qū)域13以存儲(chǔ)每個(gè)繪制區(qū)域的中間數(shù)據(jù)。
[0077]因此,可以減小RAM5中的工作區(qū)域所需的存儲(chǔ)容量。
[0078]以下將描述根據(jù)第一實(shí)施例的圖像處理LSIl的操作原理。
[0079]圖2是示出了被執(zhí)行以繪制線段的操作的示意圖。圖3是圖2的局部放大圖。圖2和圖3舉例說(shuō)明了其中將要在幀20內(nèi)繪制由多個(gè)線段形成的圖22的情形。豎直軸線表示線條數(shù)目,而水平軸線表示像素?cái)?shù)目。按照“
【發(fā)明內(nèi)容】
”下給出的說(shuō)明,圖2和圖3舉例說(shuō)明了其中將要顯示的圖像的大小是480X800寬屏VGA的情形。在該情形下,如之前所述,用于遵從OpenVG規(guī)范的主要方法根據(jù)邊緣的最大數(shù)目計(jì)算工作區(qū)域所需的存儲(chǔ)容量。邊緣各自表示繪制的線段與形成幀的線條之間的交叉點(diǎn)。如圖3所示,繪制的線段與形成幀的線條交叉。線條編號(hào)101的邊緣是87。線條編號(hào)102的邊緣也是87。線條編號(hào)103至105的邊緣是86。計(jì)算每個(gè)線條的邊緣的位置。如圖2所示,每個(gè)線條的邊緣的數(shù)目隨著圖的復(fù)雜性變化。當(dāng)繪制一個(gè)圖時(shí),用于遵從OpenVG規(guī)范的主要方法根據(jù)每個(gè)線條的邊緣的最大數(shù)目(也即具有邊緣的最大數(shù)目的線條的邊緣的數(shù)目)來(lái)限定用于存儲(chǔ)在一個(gè)域中的所有線條的中間數(shù)據(jù)的工作區(qū)域的大小。通過(guò)之前所述的方程(I)計(jì)算每個(gè)線條的大小。通過(guò)之前所述的方程(2)計(jì)算用于一個(gè)整個(gè)域的工作區(qū)域的存儲(chǔ)容量。
[0080]根據(jù)第一實(shí)施例,幀20被分割為多個(gè)繪制區(qū)域21。圖2示出了其中每個(gè)繪制區(qū)域具有20個(gè)線條并且?guī)?0被分割為24個(gè)繪制區(qū)域21_1至21_24的示例。用于存儲(chǔ)中間數(shù)據(jù)的20個(gè)線條的存儲(chǔ)區(qū)域被分配為RAM5中的工作區(qū)域13。如果假設(shè)邊緣的最大數(shù)目是68,按照“
【發(fā)明內(nèi)容】
”下給定的描述,每個(gè)線條的大小是相同的192字節(jié)。然而根據(jù)第一實(shí)施例,一個(gè)繪制區(qū)域所需的工作區(qū)域小至20個(gè)線條。因此,工作區(qū)域13所需的存儲(chǔ)容量是15,360字節(jié)(15千字節(jié))。該存儲(chǔ)容量與用于集中分配一個(gè)整幀的368,640字節(jié)(360千字節(jié))的之前存儲(chǔ)容量的二十四分之一一樣小。
[0081]當(dāng)將要繪制二維圖而不是線段時(shí)也同樣適用。
[0082]圖4是示出了被執(zhí)行以繪制矩形的操作的示意圖。圖5是圖4的局部放大圖。圖4和圖5舉例說(shuō)明了其中將要在幀20內(nèi)繪制由多個(gè)二維圖形成的圖23的情形。豎直軸線表示線條數(shù)目,而水平軸線表示像素?cái)?shù)目。如果將要繪制的圖是不具有寬度的線段,則線段與線條之間的交叉點(diǎn)視作邊緣。另一方面,如果將要繪制的圖是具有寬度的二維圖,則當(dāng)以從最低像素?cái)?shù)目至最高像素?cái)?shù)目的順序看每個(gè)線條中像素時(shí),用于反轉(zhuǎn)繪制數(shù)據(jù)的坐標(biāo)應(yīng)該視作邊緣。關(guān)于具有線條編號(hào)101的線條,具有高達(dá)84的像素?cái)?shù)目的像素是白色,具有像素?cái)?shù)目85至89的像素是黑色,而具有像素?cái)?shù)目90和更高的像素則是白色。因此,應(yīng)該采用視作邊緣的像素?cái)?shù)目85和90來(lái)確定中間數(shù)據(jù)。應(yīng)該以如此方式限定邊緣以維持關(guān)于從中間數(shù)據(jù)計(jì)算顯示數(shù)據(jù)的計(jì)算過(guò)程的一致性。取決于將要繪制的圖是不具有寬度的線段或者是具有寬度的二維圖,邊緣的定義或多或少需要調(diào)整。然而,根據(jù)在上述兩個(gè)情形的任何一個(gè)中的邊緣的數(shù)目可以計(jì)算工作區(qū)域所需的存儲(chǔ)容量。
[0083]在以上示例中,從在幀內(nèi)分割的繪制區(qū)域的數(shù)目計(jì)算工作區(qū)域13的存儲(chǔ)容量。相反地,可以預(yù)定義可以被分配至工作區(qū)域13的RAM5的存儲(chǔ)容量,以逆向計(jì)算可以存儲(chǔ)在具有這種存儲(chǔ)容量的工作區(qū)域13中的中間數(shù)據(jù)的量,以便計(jì)算分割的繪制區(qū)域的數(shù)目,也即在分割的繪制區(qū)域21中的線條的數(shù)目。
[0084]因此,工作區(qū)域13可以被分配至RAM5,RAM5被形成為圖像處理LSIl上的芯片上元件并且具有限制的存儲(chǔ)容量。
[0085]以下將進(jìn)一步詳述圖像處理LSIl的實(shí)施例。
[0086]圖像處理LSIl不具體地限定于,而是通過(guò)已知的CMOS(互補(bǔ)金屬氧化物半導(dǎo)體場(chǎng)效應(yīng)晶體管)LSI制造技術(shù)而形成在單個(gè)硅襯底上。
[0087]圖形計(jì)算部分2可以包括圖形引擎4和CPU3。當(dāng)輸入向量數(shù)據(jù)12時(shí),圖形引擎4可以計(jì)算中間數(shù)據(jù)。CPU3可以控制圖形引擎4。這可以使得有可能快速執(zhí)行圖形計(jì)算。MPU(微處理單元)、MCU (微控制器單元)或任何其它處理器可以用作CPU3。圖形引擎4例如是用于從向量數(shù)據(jù)12計(jì)算中間數(shù)據(jù)的硬件加速器,并且可以由可編程處理器形成。
[0088]圖像處理LSIl可以包括其它功能模塊。例如,如果圖像處理LSIl包括DMA(直接存儲(chǔ)器訪問)控制器,則顯示數(shù)據(jù)可以從幀緩沖器14轉(zhuǎn)移至視頻接口 8并且在由CPU編程操作的背景下被顯示在顯示裝置10上。在該情形下,圖像處理LSIl也需要包括仲裁對(duì)總線6的訪問的總線仲裁電路。
[0089]R0M9無(wú)需總是被提供為外部裝置。替代地,其可以被提供為耦合至圖像處理LSIl中的總線6的芯片上ROM。該配置使其能夠通過(guò)排除系統(tǒng)接口 7來(lái)減小電路規(guī)模,通過(guò)排除用于耦合至外部總線的端子來(lái)減小端子的數(shù)目,以及減小圖像處理LSIl被安裝在其中的封裝的大小。
[0090]同時(shí),能夠使用如下配置來(lái)將顯示數(shù)據(jù)從外部RAM直接轉(zhuǎn)移至顯示裝置10,在該配置中額外的外部RAM被耦合至外部總線11并且?guī)彌_器被分配至外部RAM。如果在使用高清晰度顯示裝置的情形中,將幀緩沖器分配至芯片上RAM是昂貴的,則該配置導(dǎo)致成本減小。
[0091]第二實(shí)施例〈圖像處理程序>
[0092]現(xiàn)在將描述根據(jù)本發(fā)明第二實(shí)施例的圖像處理程序30。圖像處理程序30能夠執(zhí)行圖形計(jì)算,以通過(guò)使用圖形引擎4、CPU3和存儲(chǔ)部分(例如RAM)5根據(jù)輸入向量數(shù)據(jù)12來(lái)計(jì)算將要在由多個(gè)線條形成的一個(gè)幀20內(nèi)繪制的圖22、23的顯示數(shù)據(jù)。
[0093]當(dāng)由CPU3執(zhí)行時(shí),圖像處理程序30將存儲(chǔ)了用于圖形計(jì)算的中間數(shù)據(jù)的工作區(qū)域13分配至RAM5,并且針對(duì)多個(gè)線條的每一個(gè)將顯示圖22、23的幀20分割為多個(gè)繪制區(qū)域21。圖像處理程序30將向量數(shù)據(jù)12輸入至圖形引擎4,并且使圖形引擎4順序地對(duì)包括在繪制區(qū)域21中的每個(gè)繪制區(qū)域21執(zhí)行圖形計(jì)算。圖像處理程序30操作以使得作為對(duì)每個(gè)繪制區(qū)域進(jìn)行圖形計(jì)算的結(jié)果輸出的中間數(shù)據(jù)被存儲(chǔ)在相同的工作區(qū)域13中。
[0094]因此,可以減小存儲(chǔ)部分中工作區(qū)域所需的存儲(chǔ)容量。
[0095]現(xiàn)在將進(jìn)一步描述根據(jù)第二實(shí)施例的由圖像處理程序30執(zhí)行的示例性操作。
[0096]圖6是示出了根據(jù)第二實(shí)施例的由圖像處理程序執(zhí)行的示例性操作的流程圖。
[0097]在步驟31中,通過(guò)暫時(shí)地確定繪制區(qū)域的線條的數(shù)目(高度)以及每個(gè)線條的邊緣的數(shù)目,并且確定允許存儲(chǔ)對(duì)應(yīng)于邊緣數(shù)目的中間數(shù)據(jù)的每個(gè)線條的存儲(chǔ)容量(跨距),來(lái)分配處于初始狀態(tài)的工作區(qū)域13。接著,在步驟32中,計(jì)算將要繪制的圖22、23的每個(gè)線條的邊緣數(shù)目。例如通過(guò)將將要繪制的圖22、23的向量數(shù)據(jù)12輸入至圖形引擎4并且允許圖形引擎4執(zhí)行計(jì)算來(lái)完成該步驟。根據(jù)計(jì)算的結(jié)果,在步驟33中,計(jì)算每個(gè)線條的邊緣的最大數(shù)目,也即具有邊緣的最大數(shù)目的線條的邊緣的數(shù)目。接著,在步驟34中,根據(jù)經(jīng)計(jì)算的邊緣的最大數(shù)目計(jì)算繪制區(qū)域中線條的數(shù)目,以改變?cè)诓襟E31中暫時(shí)確定的繪制區(qū)域的線條的數(shù)目(高度)。這使其能夠針對(duì)每個(gè)將要繪制的圖分配具有合適大小(存儲(chǔ)容量)的工作區(qū)域13。在2D向量圖形中,生成許多將要繪制圖的每一個(gè)的中間數(shù)據(jù),并且綜合中間數(shù)據(jù)所生成的集合以獲得顯示數(shù)據(jù)。因此,每次將要繪制圖改變時(shí),可以合適地設(shè)置工作區(qū)域的大小。在設(shè)置了合適的工作大小之后,在步驟37中,對(duì)每個(gè)分割的繪制區(qū)域執(zhí)行邊緣計(jì)算。例如,將要繪制的圖22、23的向量數(shù)據(jù)12可以輸入至圖形引擎4以允許圖形引擎4執(zhí)行計(jì)算。
[0098]自然,向量數(shù)據(jù)12不經(jīng)受區(qū)域分割。因此,如果按照原先樣子使用相關(guān)領(lǐng)域類型的圖形引擎4,則其計(jì)算一個(gè)整幀的中間數(shù)據(jù)。在該情形下,工作區(qū)域13僅存儲(chǔ)關(guān)于將要處理的繪制區(qū)域的中間數(shù)據(jù)。關(guān)于其它繪制區(qū)域的中間數(shù)據(jù)被丟棄。另一方面,當(dāng)圖形引擎4被配置為能夠執(zhí)行計(jì)算以計(jì)算僅關(guān)于指定將要計(jì)算的區(qū)域的中間數(shù)據(jù)時(shí),可以在步驟37中在較短計(jì)算時(shí)間內(nèi)執(zhí)行邊緣計(jì)算而同時(shí)減小了計(jì)算的量。
[0099]在步驟38中,確定是否針對(duì)所有分割的繪制區(qū)域21執(zhí)行邊緣計(jì)算過(guò)程(步驟37)。在步驟39中改變處理區(qū)域,以便對(duì)未經(jīng)受邊緣計(jì)算過(guò)程(步驟37)的未處理的每一個(gè)繪制區(qū)域21重復(fù)地執(zhí)行邊緣計(jì)算過(guò)程(步驟37)。當(dāng)完全處理了一個(gè)幀20內(nèi)所有區(qū)域時(shí),處理結(jié)束。
[0100]在步驟34中,備選例是預(yù)先將可分配至工作區(qū)域13的存儲(chǔ)容量限制至預(yù)定的存儲(chǔ)容量,并且計(jì)算形成每個(gè)繪制區(qū)域節(jié)段21的線條的數(shù)目。更具體地,在步驟35中,可以將在步驟33中計(jì)算的每個(gè)線條的邊緣的最大數(shù)目與在步驟31中分配的可以通過(guò)使用每個(gè)線條存儲(chǔ)容量(跨距)而存儲(chǔ)的邊緣的數(shù)目做比較。如果比較的結(jié)果指示前者大于后者,則可以執(zhí)行步驟36以增大每個(gè)線條的存儲(chǔ)容量(跨距),并且減小繪制區(qū)域的線條的數(shù)目(高度)。工作區(qū)域13的存儲(chǔ)容量隨后等于每個(gè)線條的存儲(chǔ)容量(跨距)與繪制區(qū)域的線條的數(shù)目(高度)的乘積。因此,應(yīng)該調(diào)整工作區(qū)域13的存儲(chǔ)容量,直至其仍然等于預(yù)定的限制的存儲(chǔ)容量。
[0101]現(xiàn)在將參照?qǐng)D7A和圖7B描述工作區(qū)域13中的示例性改變。圖7A和圖7B是示出了其中工作區(qū)域如圖6所示改變的示例。讓我們假設(shè),例如,在步驟31中,由針對(duì)64個(gè)邊緣的跨距SO以及針對(duì)40個(gè)線條的高度HO所限定的7,680字節(jié)(7.5千字節(jié))區(qū)域被分配為如圖7A所示的工作區(qū)域。如果步驟33中計(jì)算的邊緣的最大數(shù)目例如是100,其大于64的假設(shè)數(shù)值,則兩倍增大跨距(跨距=SI = S0X2),并且高度(繪制區(qū)域中線條的數(shù)目)與跨距成反比而減小為一半(高度=Hl = H0/2),如圖7B所示。改變之后獲得的工作區(qū)域的大小與初始大小相同為7,680字節(jié)(7.5千字節(jié))。
[0102]因此,工作區(qū)域13也可以合適地被分配至被形成為圖像處理LSIl上的芯片上元件并且具有限制的存儲(chǔ)容量的存儲(chǔ)部分(RAM) 5。
[0103]在參照附圖6所述的實(shí)施例中,對(duì)所有分割的繪制區(qū)域21執(zhí)行邊緣計(jì)算過(guò)程(步驟37)。然而,例如如果將要繪制的圖23較小并且存在于如圖4所示的幀的限制區(qū)域中,可以僅對(duì)于包括外接了圖23的矩形24的繪制區(qū)域21_2至21_7執(zhí)行步驟37,其中計(jì)算中間數(shù)據(jù)并且存儲(chǔ)在工作區(qū)域13中。這使其能夠縮短圖像處理所需的時(shí)間。外接矩形24由將要繪制的圖的水平方向(沿像素?cái)?shù)目方向)和豎直方向(沿線條數(shù)目方向)中最大和最小坐標(biāo)來(lái)限定。圖形引擎4可以被配置為能夠從輸入向量數(shù)據(jù)12計(jì)算外接矩形24。
[0104]盡管已經(jīng)根據(jù)優(yōu)選實(shí)施例詳細(xì)描述了由本發(fā)明人完成的本發(fā)明,但是應(yīng)該理解的是本發(fā)明不限于這些優(yōu)選實(shí)施例,而是擴(kuò)展至仍然落入所附權(quán)利要求的精神和范圍內(nèi)的各個(gè)修改例。
[0105]例如,本發(fā)明可以適用于耦合至任何大小的顯示裝置的圖像處理LSI,只要工作區(qū)域13的每個(gè)線條的存儲(chǔ)容量(跨距)以及繪制區(qū)域的線條數(shù)目(高度)根據(jù)所耦合的顯示裝置進(jìn)行調(diào)整。
【權(quán)利要求】
1.一種圖像處理大規(guī)模集成電路LSI,能夠執(zhí)行圖形計(jì)算,所述圖形計(jì)算用于根據(jù)輸入向量數(shù)據(jù)來(lái)計(jì)算在由多個(gè)線條形成的一個(gè)幀內(nèi)將要繪制的圖的顯示數(shù)據(jù),所述圖像處理LSI包括: 圖形計(jì)算部分,其能夠執(zhí)行所述圖形計(jì)算;以及 存儲(chǔ)部分,其包括用于存儲(chǔ)用于所述圖形計(jì)算的中間數(shù)據(jù)的工作區(qū)域,并且從所述圖形計(jì)算部分可訪問, 其中,所述圖形計(jì)算部分能夠針對(duì)多個(gè)線條中的每個(gè)線條將顯示所述圖的所述幀分割為多個(gè)繪制區(qū)域,并且對(duì)所述繪制區(qū)域中的每個(gè)繪制區(qū)域順序地執(zhí)行所述圖形計(jì)算,并且 其中,關(guān)于對(duì)所述繪制區(qū)域中的每個(gè)繪制區(qū)域執(zhí)行所述圖形計(jì)算,所述圖形計(jì)算部分能夠?qū)⑺龃鎯?chǔ)部分的相同的工作區(qū)域分配至所有所述繪制區(qū)域,以便于存儲(chǔ)所述中間數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的圖像處理LSI,其中,所述圖形計(jì)算部分能夠根據(jù)被分配至所述工作區(qū)域的預(yù)定存儲(chǔ)容量來(lái)計(jì)算形成所述繪制區(qū)域的線條的數(shù)目。
3.根據(jù)權(quán)利要求1所述的圖像處理LSI, 其中,所述一個(gè)幀由具有多個(gè)像素的線條形成, 其中,所述中間數(shù)據(jù)包括指示所述圖的每個(gè)線條的所有邊緣的位置的像素的坐標(biāo)數(shù)據(jù), 其中,所述工作區(qū)域能夠存儲(chǔ)所述線條的所述中間數(shù)據(jù),并且 其中,所述圖形計(jì)算部分能夠?qū)⒋鎯?chǔ)容量分配至所述存儲(chǔ)部分中的所述工作區(qū)域,所述存儲(chǔ)容量根據(jù)將要存儲(chǔ)的線條的數(shù)目與所述一個(gè)幀內(nèi)的每個(gè)線條的邊緣的最大數(shù)目的乘積來(lái)限定。
4.根據(jù)權(quán)利要求3所述的圖像處理LSI,其中,所述圖形計(jì)算部分能夠根據(jù)被分配至所述工作區(qū)域的預(yù)定存儲(chǔ)容量來(lái)計(jì)算形成所述繪制區(qū)域的線條的數(shù)目。
5.根據(jù)權(quán)利要求1所述的圖像處理LSI,其中,所述圖形計(jì)算部分包括能夠輸入所述向量數(shù)據(jù)并且輸出所述中間數(shù)據(jù)的圖形引 擎,以及能夠控制所述圖形引擎的CPU。
6.一種圖像處理程序,能夠執(zhí)行圖形計(jì)算,所述圖形計(jì)算用于通過(guò)使用圖形引擎、CPU和存儲(chǔ)部分根據(jù)輸入向量數(shù)據(jù)來(lái)計(jì)算在由多個(gè)線條形成的一個(gè)幀內(nèi)將要繪制的圖的顯示數(shù)據(jù),所述圖像處理程序包括步驟: 當(dāng)由所述CPU執(zhí)行時(shí),將用于存儲(chǔ)用于所述圖形計(jì)算的中間數(shù)據(jù)的工作區(qū)域分配至所述存儲(chǔ)部分; 針對(duì)多個(gè)線條中的每個(gè)線條將顯示所述圖的所述幀分割為多個(gè)繪制區(qū)域; 將所述向量數(shù)據(jù)輸入至所述圖形引擎,以對(duì)所述繪制區(qū)域中的每個(gè)繪制區(qū)域順序地執(zhí)行所述圖形計(jì)算;以及 針對(duì)所有所述繪制區(qū)域在相同工作區(qū)域中存儲(chǔ)所述中間數(shù)據(jù),當(dāng)對(duì)所述繪制區(qū)域中的每個(gè)繪制區(qū)域執(zhí)行所述圖形計(jì)算時(shí)輸出所述中間數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的圖像處理程序,進(jìn)一步包括步驟: 使所述CPU根據(jù)被分配至所述工作區(qū)域的預(yù)定存儲(chǔ)容量計(jì)算形成所述繪制區(qū)域的線條的數(shù)目。
8.根據(jù)權(quán)利要求6所述的圖像處理程序, 其中,所述一個(gè)幀由具有多個(gè)像素的線條形成, 其中,所述中間數(shù)據(jù)包括指示所述圖的每個(gè)線條的所有邊緣的位置的像素的坐標(biāo)數(shù)據(jù),并且 其中,所述工作區(qū)域能夠存儲(chǔ)所述線條的所述中間數(shù)據(jù), 所述圖像處理程序進(jìn)一步包括步驟: 使所述CPU將存儲(chǔ)容量分配至所述存儲(chǔ)部分中的所述工作區(qū)域,所述存儲(chǔ)容量根據(jù)將要存儲(chǔ)的線條的數(shù)目與所述一個(gè)幀內(nèi)的每個(gè)線條的邊緣的最大數(shù)目的乘積來(lái)限定。
9.根據(jù)權(quán)利要求8所述的圖像處理程序,進(jìn)一步包括步驟: 使所述CPU根據(jù)被分配至所述工作區(qū)域的預(yù)定存儲(chǔ)容量來(lái)計(jì)算形成所述繪制區(qū)域的線條的數(shù)目。
10.根據(jù)權(quán)利要求9所述的圖像處理程序,進(jìn)一步包括步驟: 計(jì)算所述圖的每個(gè)線條的邊緣的數(shù)目; 從經(jīng)計(jì)算的每個(gè)線條的邊緣的數(shù)目確定每個(gè)線條的邊緣的最大數(shù)目;以及 根據(jù)所確定的邊緣的最大數(shù)目計(jì)算所述繪制區(qū)域中的線條的數(shù)目。
11.根據(jù)權(quán)利要求9所述的圖像處理程序,進(jìn)一步包括步驟: 暫時(shí)地確定所述繪制區(qū)域中的線條的數(shù)目以及每個(gè)線條的邊緣的數(shù)目; 計(jì)算所述圖的每個(gè)線條的邊緣的數(shù)目; 從經(jīng)計(jì)算的每個(gè)線條的邊緣的數(shù)目確定每個(gè)線條的邊緣的最大數(shù)目;以及 根據(jù)所確定的邊緣的最大數(shù)目改變所述繪制區(qū)域中的暫時(shí)確定的線條的數(shù)目。
12.根據(jù)權(quán)利要求9所述的圖像處理程序,進(jìn)一步包括步驟: 在根據(jù)所確定的邊緣的最大數(shù)目計(jì)算所述繪制區(qū)域中的線條的數(shù)目的步驟之后,計(jì)算所有所述繪制區(qū)域中的每個(gè)繪制區(qū)域的所述中間數(shù)據(jù),并且將經(jīng)計(jì)算的中間數(shù)據(jù)存儲(chǔ)在所述工作區(qū)域中, 其中,僅在外接所述圖的矩形的邊界內(nèi)執(zhí)行上述步驟。
【文檔編號(hào)】G06T11/00GK104008560SQ201410064823
【公開日】2014年8月27日 申請(qǐng)日期:2014年2月25日 優(yōu)先權(quán)日:2013年2月26日
【發(fā)明者】淺野真一, 中村理, 山野真嗣 申請(qǐng)人:瑞薩電子株式會(huì)社