專利名稱:面向移動(dòng)設(shè)備的3d參數(shù)解碼系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及解碼和3D顯示技術(shù)領(lǐng)域,特別涉及一種用于移動(dòng)設(shè)備的3D模型解碼與繪制的系統(tǒng)。
背景技術(shù):
隨著計(jì)算機(jī)硬件技術(shù)與圖形繪制技術(shù)的迅速發(fā)展,移動(dòng)設(shè)備已經(jīng)引入了 3D顯示功能。由于增加了透視與光影效果,與2D圖形顯示相比,3D繪制更形象更具有真實(shí)感。因此3D圖形再現(xiàn)技術(shù)是移動(dòng)設(shè)備中的研究熱點(diǎn)。當(dāng)前,大部分移動(dòng)設(shè)備用軟件模擬的方法來(lái)實(shí)現(xiàn)3D圖形的繪制,不但占用了大部分的CPU資源,增加了 CPU功耗;而且圖形繪制的速度和質(zhì)量也受到了很大的限制。因此,用專用硬件電路來(lái)實(shí)現(xiàn)移動(dòng)設(shè)備的3D圖形繪制系統(tǒng)勢(shì)在必行。 3D圖形的繪制主要包括兩個(gè)部分,分別是頂點(diǎn)處理單元和光柵處理單元。頂點(diǎn)處理單元將場(chǎng)景中各個(gè)模型的頂點(diǎn)和法線進(jìn)行矩陣變換并將模型放到觀察空間中;根據(jù)物體的材質(zhì)、紋理以及光源的屬性等參數(shù)計(jì)算頂點(diǎn)的光照;根據(jù)物體距離眼睛的遠(yuǎn)近計(jì)算霧化因子;然后將位于觀察空間中的模型進(jìn)行投影變換,變換到一個(gè)單位立方體中;隨后進(jìn)行裁減操作,舍棄所有在單位立方體之外的圖元;最后將裁減后的圖元映射到屏幕上面,并進(jìn)行簡(jiǎn)單的背向面判斷后送入光柵處理單元。光柵處理單元首先將頂點(diǎn)處理單元傳來(lái)的數(shù)據(jù)送入掃描轉(zhuǎn)換單元進(jìn)行掃描,產(chǎn)生被三角面覆蓋的每一個(gè)像素的位置;隨后送入插值單元進(jìn)行插值,算出每個(gè)像素的顏色、霧化因子、紋理坐標(biāo)等等;接著將紋理坐標(biāo)送入紋理貼圖單元,紋理單元返回的紋理顏色與插值出來(lái)的光照顏色進(jìn)行混合,并將混合的顏色送入霧化單元進(jìn)行霧化混合,得到最終的像素顏色;然后通過(guò)可見(jiàn)性測(cè)試判斷像素是否可以被看見(jiàn),如果可見(jiàn),則將像素的顏色寫入幀緩沖;最后顯示單元讀取幀緩沖的內(nèi)容進(jìn)行顯示。
為簡(jiǎn)化設(shè)計(jì),面向移動(dòng)設(shè)備的圖形加速硬件常采用固定功能的頂點(diǎn)處理單元,主要由轉(zhuǎn)換單元、光照單元以及裁減單元組成,只能實(shí)現(xiàn)標(biāo)準(zhǔn)的坐標(biāo)轉(zhuǎn)換和簡(jiǎn)單的光照功能,而且這些功能用戶無(wú)法修改。固定功能的頂點(diǎn)處理單元限制了 3D圖形繪制的靈活性,同時(shí)造成了硬件資源的浪費(fèi)。因此,使用處理器架構(gòu)來(lái)替代固定功能的硬件模塊,已經(jīng)是圖形硬件發(fā)展的一個(gè)重要趨勢(shì)。 當(dāng)前的視頻編碼標(biāo)準(zhǔn)都是基于波形的編碼,H. 264視頻編碼標(biāo)準(zhǔn)幾乎達(dá)到了基于波形編碼方法效率的極限。這種傳統(tǒng)的視頻編碼方法是利用基于平移的運(yùn)動(dòng)塊信源模型和顏色參數(shù)來(lái)描述物體的。為了進(jìn)一步降低碼率,近年來(lái)出現(xiàn)了基于3D參數(shù)的編碼方案,這種方法利用3D模型、攝像機(jī)參數(shù)和紋理圖像等來(lái)表示視頻內(nèi)容,經(jīng)過(guò)壓縮后進(jìn)行傳輸。要想在解碼端重建原始數(shù)據(jù),就需要對(duì)3D模型進(jìn)行解碼和繪制。目前在移動(dòng)設(shè)備上還缺少能夠支持對(duì)這種編碼方案進(jìn)行解碼的硬件系統(tǒng)。
發(fā)明內(nèi)容
本發(fā)明的目的是解決現(xiàn)有技術(shù)存在的上述問(wèn)題,提供一種可以對(duì)壓縮的3D模型進(jìn)行繪制的系統(tǒng),以便支持3D參數(shù)的解碼。 本發(fā)明主要包括用于3D模型解碼和相關(guān)控制的通用處理器、可編程頂點(diǎn)處理單元和基于Tile的光柵處理單元,三者之間通過(guò)總線共享數(shù)據(jù)。頂點(diǎn)處理單元和光柵處理單元構(gòu)成圖形處理器,用于3D模型的繪制。通用處理器將解壓后的3D模型傳送到頂點(diǎn)處理單元,并負(fù)責(zé)啟動(dòng)頂點(diǎn)處理單元;接收到頂點(diǎn)數(shù)據(jù)后,頂點(diǎn)處理單元將頂點(diǎn)變換到正確的觀察位置中并根據(jù)光照模型和物體表面材質(zhì)計(jì)算光照;光柵單元?jiǎng)t根據(jù)處理后的頂點(diǎn)數(shù)據(jù),建立三角面,進(jìn)行掃描轉(zhuǎn)換和顏色填充,最終將幀緩沖中數(shù)據(jù)送到LCD中進(jìn)行顯示。用戶可以根據(jù)需要改變頂點(diǎn)處理單元中的視點(diǎn)變換矩陣和光照模型,實(shí)現(xiàn)各種透視和光影效果。另外,為了降低功耗,減小電路的復(fù)雜度,在頂點(diǎn)處理單元和光柵處理單元中都采用了定點(diǎn)化的方法來(lái)設(shè)計(jì)數(shù)據(jù)通道。 本發(fā)明壓縮3D模型繪制系統(tǒng),其中所述的可編程頂點(diǎn)處理單元包括
指令譯碼和控制系統(tǒng)用于指令的加載和譯碼; 四路并行ALU單元用于處理向量移動(dòng)、向量加以及向量比較等操作;
四路并行MAD單元用于處理向量乘、向量乘加以及向量點(diǎn)乘等操作;
特殊功能單元用于計(jì)算一些非線性函數(shù)的值; 存儲(chǔ)器單元用于通用處理器與頂點(diǎn)處理單元之間的數(shù)據(jù)交換以及臨時(shí)數(shù)據(jù)的存放。 本發(fā)明壓縮3D模型繪制系統(tǒng),其中所述的基于Tile的光柵處理單元包括
掃描轉(zhuǎn)換單元用于產(chǎn)生被三角面覆蓋的像素的數(shù)據(jù),包括坐標(biāo),深度,顏色,紋理坐標(biāo)和霧化因子等; 紋理單元用于3D模型的紋理貼圖; 可見(jiàn)性測(cè)試單元將像素的深度與深度緩沖中的深度進(jìn)行比較,通過(guò)測(cè)試的像素的顏色被寫入顏色緩沖中; 顏色緩沖管理單元對(duì)像素的各個(gè)采樣點(diǎn)的顏色進(jìn)行混合,送到最終顯示的幀緩沖中。
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明進(jìn)一步說(shuō)明。 圖l為本發(fā)明系統(tǒng)的框圖。 圖2是在本發(fā)明系統(tǒng)上對(duì)壓縮3D模型進(jìn)行繪制的一個(gè)實(shí)例流程圖。 圖3為可編程頂點(diǎn)處理單元的框圖。 圖4為四路并行ALU單元的框圖。 圖5為四路并行MAD單元的框圖。 圖6為特殊功能單元的框圖。 圖7為基于Tile的光柵處理單元的框圖。 圖8是紋理單元的框圖。 圖9是在通用處理器上進(jìn)行3DMC解碼的一個(gè)實(shí)例流程圖。
具體實(shí)施例方式
如圖1所示,本發(fā)明系統(tǒng)包括通用處理器、可編程頂點(diǎn)處理單元、光柵處理單元、 SRAM控制器、DDR內(nèi)存控制器、程序存儲(chǔ)器、LCD控制器和時(shí)鐘控制器。通用處理器負(fù)責(zé)對(duì) 壓縮的3D模型進(jìn)行解碼以及其他硬件設(shè)備的初始化、啟動(dòng)、停止等。頂點(diǎn)處理單元和光柵 處理單元?jiǎng)t負(fù)責(zé)對(duì)3D模型進(jìn)行繪制。SRAM控制器用于管理寄存器堆文件的讀寫操作。程 序存儲(chǔ)器用于存儲(chǔ)通用處理器和頂點(diǎn)處理器上運(yùn)行程序的機(jī)器碼。LCD控制器負(fù)責(zé)將光柵 處理單元輸出的像素發(fā)送到LCD的幀緩沖中進(jìn)行顯示。時(shí)鐘控制器負(fù)責(zé)管理各個(gè)硬件單元 的時(shí)鐘信號(hào)。 由于定點(diǎn)計(jì)算能夠節(jié)省電路面積,降低功耗,因此在頂點(diǎn)處理單元和光柵處理單 元的數(shù)據(jù)通路中采用了定點(diǎn)化計(jì)算。在定點(diǎn)計(jì)算中,小數(shù)點(diǎn)位置的不同,數(shù)據(jù)所能表示的范 圍和精度也不一樣。因此,在數(shù)據(jù)位寬一定的前提下,數(shù)據(jù)范圍和數(shù)據(jù)精度相互矛盾,表示 范圍大精度就低,反之精度高則表示范圍就小。所以在設(shè)計(jì)中,必須根據(jù)頂點(diǎn)處理單元和 光柵處理單元的特點(diǎn),選取合適的小數(shù)點(diǎn)位置。頂點(diǎn)處理單元的主要運(yùn)算是坐標(biāo)轉(zhuǎn)換和光 照計(jì)算。對(duì)于移動(dòng)設(shè)備而言,屏幕的分辨率一般為QVGA,顏色的每個(gè)分量一般為5到8位, 因此在頂點(diǎn)處理單元,顏色采用8位的精度就可以滿足要求;而對(duì)于頂點(diǎn)坐標(biāo)和法線,通過(guò) 對(duì)大量3D模型繪制效果的統(tǒng)計(jì),發(fā)現(xiàn)采用16位的精度能夠得到較好的效果。對(duì)于光柵處 理單元,由于移動(dòng)設(shè)備屏幕的分辨率有限,屏幕坐標(biāo)采用了 4位的精度;與頂點(diǎn)處理單元一 樣,顏色采用了8位的精度。 在本發(fā)明系統(tǒng)上對(duì)一個(gè)壓縮3D模型進(jìn)行繪制的過(guò)程如圖2所示。通用處理器首 先初始化各個(gè)硬件單元,例如定時(shí)器初始值設(shè)定、啟動(dòng),頂點(diǎn)輸入寄存器清空等;然后通用 處理器將頂點(diǎn)處理單元運(yùn)行程序的機(jī)器碼從主存中加載到頂點(diǎn)處理單元的程序存儲(chǔ)器中; 之后通用處理器讀入壓縮的3D模型比特流,進(jìn)行解碼,得到模型的頂點(diǎn)、三角面等數(shù)據(jù);通 用處理器通過(guò)總線接口將這些解壓后的數(shù)據(jù)發(fā)送到頂點(diǎn)處理單元中,通過(guò)API接口設(shè)置好 繪制的環(huán)境,例如光照模型、投影模式等,并啟動(dòng)頂點(diǎn)處理單元和光柵處理單元,進(jìn)行繪制; 最后在LCD上顯示繪制出的圖像。在這個(gè)過(guò)程中,用戶通過(guò)可編程頂點(diǎn)處理單元可以改變 投影模式和光照模型,例如選擇透視投影還是正交投影,選擇Phong光照模型還是各向異 性光照模型。 為了能夠兼容0penGL ES接口 ,使硬件支持這些API,本發(fā)明參照0penGL ES1. 1的 規(guī)范設(shè)計(jì)了頂點(diǎn)處理單元和光柵處理單元。對(duì)于3D模型的頂點(diǎn)坐標(biāo)和屬性而言,都可以用 四維向量表示,例如頂點(diǎn)坐標(biāo)可表示成(x, y, z, w),頂點(diǎn)顏色可表示為(r, g, b, a)。因此 對(duì)頂點(diǎn)數(shù)據(jù)的處理可以轉(zhuǎn)換成四維向量的運(yùn)算。為了加快向量運(yùn)算,本發(fā)明采用了四路并 行單指令多數(shù)據(jù)的處理器架構(gòu)來(lái)設(shè)計(jì)頂點(diǎn)處理單元。頂點(diǎn)處理單元的框圖如圖3所示,主 要包括五個(gè)部分。第一部分是指令譯碼和控制系統(tǒng),用于指令的加載和譯碼;第二部分是四 路并行ALU單元,用于處理向量移動(dòng)、向量加以及向量比較等算術(shù)運(yùn)算;第三部分是四路并 行MAD單元,用于處理向量乘、向量乘加以及向量點(diǎn)乘等乘加運(yùn)算;第四部分是特殊功能單 元,用于計(jì)算諸如倒數(shù)、指數(shù)和對(duì)數(shù)等非線性函數(shù)的值;第五部分是存儲(chǔ)單元,包括程序存 儲(chǔ)器、頂點(diǎn)輸入寄存器、頂點(diǎn)輸出寄存器、臨時(shí)寄存器、常量寄存器和輔助寄存器,用于通用 處理器和頂點(diǎn)處理單元之間數(shù)據(jù)的交換以及臨時(shí)數(shù)據(jù)的存儲(chǔ)。 ALU運(yùn)算單元采用了 4路并行的單指令多數(shù)據(jù)結(jié)構(gòu)以加快計(jì)算速度,結(jié)構(gòu)如圖4所示。ALU運(yùn)算單元的功能包括數(shù)據(jù)轉(zhuǎn)移、加法和比較,這些操作全部在一個(gè)時(shí)鐘周期內(nèi)完成。 ALU中4路32位加法器可在一個(gè)時(shí)鐘周期內(nèi)完成4路加法運(yùn)算;選擇器和控制邏輯負(fù)責(zé)實(shí) 現(xiàn)數(shù)據(jù)轉(zhuǎn)移和比較的功能。根據(jù)繪制的功能需求,MAD運(yùn)算單元需要實(shí)現(xiàn)的功能有乘法、乘 加、三維向量和四維向量的點(diǎn)乘。同樣,為了提高速度,采用了 4路并行的單指令多數(shù)據(jù)結(jié) 構(gòu),如圖5所示。MAD包含4個(gè)32位乘加運(yùn)算單元,每一路可以獨(dú)立對(duì)每一個(gè)分量進(jìn)行乘加 運(yùn)算,最后還可以把四個(gè)分量的結(jié)果相加完成點(diǎn)乘操作。 在光照計(jì)算中,涉及到除法運(yùn)算、指數(shù)運(yùn)算以及對(duì)數(shù)運(yùn)算,為了計(jì)算這些非線性函 數(shù)值,需要設(shè)計(jì)一個(gè)特殊功能單元。綜合考慮存儲(chǔ)器容量、運(yùn)算周期和計(jì)算精度,采用二次 多項(xiàng)式逼近法來(lái)實(shí)現(xiàn)特殊函數(shù)的求值計(jì)算。將一個(gè)非線性函數(shù)分成若干段,然后用二次多 項(xiàng)式對(duì)每一段進(jìn)行逼近擬合,并將每一段的逼近多項(xiàng)式系數(shù)存儲(chǔ)在一個(gè)表中。為了減小變 量的范圍,使得計(jì)算結(jié)果不至于溢出,在求取某個(gè)變量的函數(shù)值時(shí),首先需要對(duì)該變量進(jìn)行 歸一化;然后判斷變量落在哪個(gè)段中,并從系數(shù)表中查出該段的系數(shù);最后計(jì)算該變量的 二次多項(xiàng)式值,并對(duì)結(jié)果進(jìn)行調(diào)整以消除歸一化的影響。特殊功能單元的結(jié)構(gòu)如圖6所示。
頂點(diǎn)處理單元將頂點(diǎn)變換到正確的位置,計(jì)算好頂點(diǎn)的光照系數(shù)并經(jīng)過(guò)裁剪和背 向面剔除后,光柵處理單元就可以進(jìn)行掃描轉(zhuǎn)換和顏色填充了。光柵處理單元完成三角面 到像素的轉(zhuǎn)換工作,也就是在頂點(diǎn)處理單元送來(lái)的三角面的三個(gè)頂點(diǎn)之間進(jìn)行填充,使得 三角面可以顯示在屏幕上,需要完成的操作有掃描轉(zhuǎn)換、三角面填充、紋理貼圖以及可見(jiàn)性 測(cè)試等。基于Tile的繪制方法每次只繪制屏幕上的一個(gè)小區(qū)域(Tile),可以減少訪問(wèn)外 部存儲(chǔ)器的帶寬,更適合用于移動(dòng)設(shè)備的圖形處理器中??紤]到這些因素,本發(fā)明采用基 于Tile的光柵處理單元設(shè)計(jì)方案,其結(jié)構(gòu)如圖7所示,主要包括光柵掃描轉(zhuǎn)換單元、像素 FIFO、紋理單元、可見(jiàn)性測(cè)試單元和顏色緩沖管理單元。 光柵掃描轉(zhuǎn)換單元負(fù)責(zé)三角面的填充以及像素的插值,實(shí)現(xiàn)屏幕坐標(biāo)系下三角面 到像素的轉(zhuǎn)換。本發(fā)明采用了基于Tile的塊掃描算法,首先通過(guò)掃描操作來(lái)測(cè)試Tile是否 與三角面包圍盒相交;如果相交,則將Tile細(xì)分為四個(gè)子塊,再判斷各個(gè)子塊是否與三角 面包圍盒相交;然后在與三角面包圍盒相交的子塊中進(jìn)行細(xì)分,直到細(xì)分到初始?jí)K的尺寸, 找出與三角面包圍盒相交的塊;接著在塊內(nèi)逐一判斷每個(gè)像素是否在三角面之內(nèi);最后將 在三角面內(nèi)的像素輸出到像素FIFO中。其中在三角面包圍盒內(nèi)的塊掃描,采用了Zig-Zag 掃描方法,以便找到一系列與三角面相交的塊。 紋理單元主要包括以下幾個(gè)功能單元紋理地址產(chǎn)生單元,紋理Cache單元,紋理 解壓?jiǎn)卧图y理濾波單元。其中,紋理Cache單元由兩級(jí)Cache組成。紋理單元的硬件框 圖如圖8所示。紋理單元的工作過(guò)程是首先,經(jīng)過(guò)S3TC壓縮后的紋理以4X4的紋素塊 的方式保存在片外存儲(chǔ)器中;紋理地址產(chǎn)生單元根據(jù)光柵掃描轉(zhuǎn)換單元送來(lái)的紋理坐標(biāo)以 及紋理等級(jí),計(jì)算紋素在內(nèi)存中的存放地址,該地址的標(biāo)簽送入LlCache進(jìn)行比對(duì),如果命 中,直接從LlCache中將紋素的顏色值讀取出來(lái),如果LlCache未命中,則向L2Cache提出 請(qǐng)求,如果L2Cache命中,則從L2Cache中提取一個(gè)紋素塊進(jìn)行紋理解壓,解壓的結(jié)果替換 掉LlCache中的某幾行;否則L2Cache將通過(guò)存儲(chǔ)器總線向片外存儲(chǔ)器請(qǐng)求一個(gè)壓縮塊的 數(shù)據(jù);紋理濾波單元讀取空間相鄰的4個(gè)紋素的顏色值進(jìn)行雙線性濾波。
對(duì)于可見(jiàn)性測(cè)試單元,采用了 Z-Buffer算法,其過(guò)程是利用一個(gè)Z-Buffer(深 度緩沖單元)保存離人眼最近的點(diǎn)的深度值,并在繪制的過(guò)程中不斷進(jìn)行更新;當(dāng)從前級(jí)傳過(guò)來(lái)的像素的深度值比Z-Buffer中相應(yīng)的深度值要小,說(shuō)明這個(gè)像素是可見(jiàn)的,需要繪 制,將這個(gè)像素傳入下一級(jí)的同時(shí)更新Z-Buffer中的深度值;否則這個(gè)像素是不可見(jiàn)的, 予以拋棄。 顏色緩沖管理單元用于存儲(chǔ)通過(guò)可見(jiàn)性測(cè)試的像素的顏色信息。每個(gè)單元共存儲(chǔ) 32bit的R,G,B,A四個(gè)顏色分量。在一個(gè)Tile處理結(jié)束之后,保存在顏色緩沖中的顏色數(shù) 據(jù)需要拷貝到幀緩沖中,并且需要清除顏色緩沖為下一個(gè)Tile的繪制做好準(zhǔn)備。本發(fā)明采 用乒乓緩沖的方式, 一個(gè)緩沖單元供光柵處理單元使用,另一個(gè)供輸出控制單元使用。在光 柵化進(jìn)行的過(guò)程中,可以同時(shí)將上一個(gè)Tile的顏色緩沖的內(nèi)容進(jìn)行反走樣混合并拷貝到 片外幀緩沖進(jìn)行顯示。 為了驗(yàn)證本發(fā)明系統(tǒng)的有效性,在型號(hào)為XUPV2P的FPGA開(kāi)發(fā)板上實(shí)現(xiàn)了本系統(tǒng)。 開(kāi)發(fā)板上的FPGA型號(hào)為XC2VP30-FF896,含有13560個(gè)Slice單元、2個(gè)PowerPC硬核、136 個(gè)硬核乘法器和136個(gè)塊RAM。將FPGA自帶的其中一個(gè)PowerPC硬核作為通用處理器,并 將FPGA上的可編程邏輯單元設(shè)計(jì)成一個(gè)可編程頂點(diǎn)處理單元和一個(gè)基于Tile的光柵處理 單元。以一個(gè)經(jīng)過(guò)MPEG-43DMC工具壓縮后的模型顯示為例來(lái)驗(yàn)證系統(tǒng)能否正確的進(jìn)行解 碼和繪制。3D模型的3匿C解碼過(guò)程如圖9所示,首先從壓縮比特流的頭文件中得到頂點(diǎn) 數(shù)據(jù)的預(yù)測(cè)模式和量化方法;然后分別解壓頂點(diǎn)圖和三角面樹(shù),得到連通信息和量化后的 頂點(diǎn)數(shù)據(jù);最后對(duì)頂點(diǎn)數(shù)據(jù)進(jìn)行反量化得到頂點(diǎn)屬性數(shù)據(jù),從而完成解碼過(guò)程。通用處理器 完成比特流的解碼后,就可以啟動(dòng)頂點(diǎn)處理單元和光柵處理單元進(jìn)行繪制,整個(gè)過(guò)程如圖2 所示。為了降低通用處理器在運(yùn)行中的功耗,本發(fā)明對(duì)3DMC解碼程序進(jìn)行了優(yōu)化,主要是 (1)盡量減少動(dòng)態(tài)空間的申請(qǐng)與釋放操作。在3匿C的解碼過(guò)程中,需要進(jìn)行多次動(dòng)態(tài)空間 的分配申請(qǐng)與釋放,這是非常耗時(shí)的操作。采用靜態(tài)數(shù)組來(lái)代替這些動(dòng)態(tài)存儲(chǔ)空間,可以加 快執(zhí)行時(shí)間,降低功耗。(2)減少條件分支和多重循環(huán)。條件分支的硬件開(kāi)銷非常高,盡量 采用條件移動(dòng)指令代替條件分支語(yǔ)句。多重循環(huán)會(huì)明顯降低高速緩存的性能。為最佳利用 高速緩存的性能, 一方面盡量在程序中減少多重循環(huán);另一方面使引用數(shù)組的循環(huán)步進(jìn)順 序按照數(shù)組在內(nèi)存中排列的順序一致起來(lái)。(3)采用定點(diǎn)數(shù)。當(dāng)前移動(dòng)設(shè)備的通用處理器 大多不支持浮點(diǎn)類型運(yùn)算,應(yīng)用程序中的浮點(diǎn)數(shù)最終都需要轉(zhuǎn)換成定點(diǎn)數(shù),否則通用處理 器不能處理。
權(quán)利要求
一種用于移動(dòng)設(shè)備的可以對(duì)壓縮的3D模型進(jìn)行繪制的系統(tǒng),其特征在于包括通用處理器、可編程頂點(diǎn)處理單元和基于Tile的光柵處理單元,其中,所述通用處理器用于3D模型壓縮碼流的解碼和其他硬件設(shè)備的初始化、啟動(dòng)、停止控制。
2. 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于其中所述可編程頂點(diǎn)處理單元包括 指令譯碼和控制系統(tǒng),用于指令的加載和譯碼;四路并行ALU單元,用于處理向量移動(dòng)、向量加以及向量比較操作; 四路并行MAD單元,用于處理向量乘、向量乘加以及向量點(diǎn)乘操作; 特殊功能單元,用于計(jì)算非線性函數(shù)的值;存儲(chǔ)單元,用于通用處理器與頂點(diǎn)處理單元之間的數(shù)據(jù)交換以及臨時(shí)數(shù)據(jù)的存放。
3. 根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于所述的四路并行ALU單元采用了 4路并 行的單指令多數(shù)據(jù)結(jié)構(gòu),可以在一個(gè)時(shí)鐘周期內(nèi)完成數(shù)據(jù)轉(zhuǎn)移、加法和比較操作。
4. 根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于所述的四路并行MAD單元采用了 4路并 行的單指令多數(shù)據(jù)結(jié)構(gòu),包含4個(gè)32位乘加運(yùn)算單元,每一路可以獨(dú)立對(duì)每一個(gè)分量進(jìn)行 乘加運(yùn)算,最后還可以把四個(gè)分量的結(jié)果相加完成點(diǎn)乘操作。
5. 根據(jù)權(quán)利要求2所述的系統(tǒng),其特征在于所述的特殊功能單元采用二次多項(xiàng)式逼 近法來(lái)實(shí)現(xiàn)特殊函數(shù)的求值計(jì)算;將一個(gè)非線性函數(shù)分成若干段,然后用二次多項(xiàng)式對(duì)每 一段進(jìn)行逼近擬合,并將每一段的逼近多項(xiàng)式系數(shù)存儲(chǔ)在一個(gè)表中,最后通過(guò)查表進(jìn)行二 次多項(xiàng)式運(yùn)算得到最終計(jì)算結(jié)果。
6. 根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于其中所述基于Tile的光柵處理單元包括光柵掃描轉(zhuǎn)換單元,用于三角面的填充以及像素的插值,實(shí)現(xiàn)屏幕坐標(biāo)系下三角面到 像素的轉(zhuǎn)換;像素FIFO,用于存儲(chǔ)所述光柵掃描轉(zhuǎn)換單元輸出的像素; 紋理單元,用于紋理貼圖和濾波;可見(jiàn)性測(cè)試單元,用于判斷像素是否可見(jiàn),僅將通過(guò)可見(jiàn)性測(cè)試的像素送入顏色緩沖 管理單元,其他像素予以舍棄;顏色緩沖管理單元,對(duì)像素的各個(gè)采樣點(diǎn)的顏色進(jìn)行混合,送到最終顯示的幀緩沖中。
7. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于所述的光柵掃描轉(zhuǎn)換單元采用了基于 Tile的塊掃描算法,首先通過(guò)Zig-Zag掃描操作來(lái)測(cè)試Tile是否與三角面包圍盒相交;如 果相交,則將Tile細(xì)分為四個(gè)子塊,再判斷各個(gè)子塊是否與三角面包圍盒相交;然后在與 三角面包圍盒相交的子塊中進(jìn)行細(xì)分,直到細(xì)分到初始?jí)K的尺寸,找出與三角面包圍盒相 交的塊;接著在塊內(nèi)逐一判斷每個(gè)像素是否在三角面之內(nèi);最后將在三角面內(nèi)的像素輸出 到像素FIFO中。
8. 根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述的紋理單元包括 紋理地址產(chǎn)生單元,根據(jù)光柵掃描轉(zhuǎn)換單元送來(lái)的紋理坐標(biāo)以及紋理等級(jí),計(jì)算紋素(texel)在內(nèi)存中的存放地址;紋理Cache單元,由LI Cache和L2 Cache組成,其中LI Cache用于緩存從L2 Cache 中取出并經(jīng)過(guò)解壓的紋素塊,L2 Cache用于緩存從外部存儲(chǔ)器中取出的壓縮紋素塊;紋理解壓?jiǎn)卧?,用于解壓?jīng)過(guò)S3TC壓縮的紋素塊;紋理濾波單元,用于雙線性濾波。
全文摘要
本發(fā)明提供了用于移動(dòng)設(shè)備的可對(duì)壓縮3D模型進(jìn)行繪制的系統(tǒng),包括用于對(duì)3D模型壓縮碼流進(jìn)行解碼的通用處理器、用于繪制的由可編程頂點(diǎn)處理單元和基于Tile的光柵處理單元組成的圖形加速硬件。本發(fā)明的優(yōu)點(diǎn)是支持對(duì)壓縮3D模型的繪制;頂點(diǎn)處理單元具有可編程功能,用戶可任意修改顯示的視角和模型的光影效果;基于Tile的光柵處理單元只需要很小的深度緩沖和顏色緩沖,可集成在片內(nèi),從而可以減小訪問(wèn)外存的帶寬;兼容OpenGL ES接口;可廣泛應(yīng)用于手機(jī)、PDA等移動(dòng)設(shè)備上的3D界面交互、3D游戲、3D導(dǎo)航等。
文檔編號(hào)H04N7/26GK101754039SQ20091024382
公開(kāi)日2010年6月23日 申請(qǐng)日期2009年12月22日 優(yōu)先權(quán)日2009年12月22日
發(fā)明者池凌鴻, 袁紅星, 郭立, 陳運(yùn)必, 韓龍 申請(qǐng)人:中國(guó)科學(xué)技術(shù)大學(xué)