專利名稱:一種適用圖形硬件的分格化方法
技術(shù)領(lǐng)域:
本發(fā)明主要是提出一種適用圖形硬件實(shí)現(xiàn)的分格化(Tessellator)方法,可以高 效地實(shí)現(xiàn)曲面細(xì)分的功能。本發(fā)明提出的分格化方法,盡量避免占用硬件資源較多地乘除 法操作,適合采用圖形硬件電路來實(shí)現(xiàn),屬于適用于圖形硬件的曲面細(xì)分設(shè)計(jì)方法領(lǐng)域。圖形處理需要巨大的計(jì)算能力,來實(shí)現(xiàn)圖形的實(shí)時(shí)產(chǎn)生。一個(gè)三維應(yīng)用或游戲場 景中,為了獲得細(xì)膩,真實(shí)的顯示效果,通常將物體表面分格化后,產(chǎn)生數(shù)萬到數(shù)百萬個(gè)多 邊形,通常為三角形,再進(jìn)行染色,貼圖等處理。要實(shí)現(xiàn)這樣數(shù)量巨大的多邊形進(jìn)行實(shí)時(shí)處 理,其性能要求是較高的,需要各種圖形加速器硬件的支持,其中包括對曲線和曲面計(jì)算的 硬件支持。圖形硬件所繪制的是最基本的圖元,即點(diǎn)、直線和多邊形(通常是三角形),一個(gè) 平滑的曲面是通過使用大量微小的多邊形來模擬的。曲面細(xì)分(Tessellation)就是把一 個(gè)曲面進(jìn)行分格化以產(chǎn)生一系列多邊形的技術(shù)。在較早的圖形處理系統(tǒng)中,曲面細(xì)分是靠 軟件來實(shí)現(xiàn)的,而最新的圖形處理器則包含了完成曲面細(xì)分的硬件,從而提高了曲面渲染 的速度。
背景技術(shù):
曲面細(xì)分的思想可以追溯到20世紀(jì)50年代G. Miam提出的多邊形割角算法,1974 年,Chaikin提出的曲線細(xì)分方法。1978年Catmull與Clark, Doo與Sabin分別將三次和 二次均勻B樣條曲面推廣到任意拓?fù)?,提出了著名的Catmull-Clark細(xì)分和Doo-Sabin細(xì) 分算法。1987年美國華盛頓大學(xué)的Loop發(fā)明了著名的Loop細(xì)分模式,該方法至今仍是最 常用的細(xì)分模式之一 ;1990年,Dyn等提出了插值三角網(wǎng)格頂點(diǎn)的蝶式(Butterfly)細(xì)分; 同年,Kobbelt提出了插值四邊形頂點(diǎn)的KcAbelt細(xì)分;1997年,Peters與Reif給出了基 于四邊形網(wǎng)格的中邊細(xì)分;2000年,Kobbelt又給出了對偶的三角網(wǎng)格細(xì)分模式^細(xì)分, Labsik與Greiner在此基礎(chǔ)上提出了插值^細(xì)分;2002年,Loop給出了基于三角網(wǎng)格的
三分細(xì)分格式;2003年Mam與Loop提出了基于三角網(wǎng)格和四邊形網(wǎng)格的混合細(xì)分。在Directll和OpenGL 4. O中最顯著的變化就是增加曲面細(xì)分(Tessellation) 功能,也就是這個(gè)功能將由圖形處理器(GPU)來實(shí)現(xiàn)。這樣由圖形硬件來實(shí)現(xiàn)LOD (Level Of Detail)的表面細(xì)化,既能達(dá)到非常真實(shí)細(xì)膩的畫面效果,同時(shí)又盡可能地發(fā)揮硬件的 性能。在DirectX 11中曲面細(xì)分(Tessellation)功能是由三個(gè)功能模塊實(shí)現(xiàn)的, 即Hull Shader (外殼著色器),Tessellator (分格化處理單元)和Domain Shader (域 著色器)。在DirectX 11中,Hull Shader和Domain Shader都是可編程的著色器,而 Tessellator則完全是由固定硬件算法實(shí)現(xiàn)的加速器。圖1. Direct3D 11流水線結(jié)構(gòu)示意圖如圖1所示,Hull Shader負(fù)責(zé)收集圖形曲面的參數(shù)信息,如控制點(diǎn)等用來定義曲 面的參數(shù)變量。HS根據(jù)由控制點(diǎn)生成的曲面表達(dá)式產(chǎn)生一系列的面片(surface patches)以及與之相對應(yīng)的LOD信息。Tessellator是一個(gè)固定功能模塊,它并不需要曲面的控制點(diǎn)信息,它的輸入是面 片和對應(yīng)的LOD信息。Tessellator根據(jù)LOD信息將面片細(xì)分成若干個(gè)四邊形或三角形。 如果是四邊形還會(huì)進(jìn)一步分解成兩個(gè)三角形。這些三角形的頂點(diǎn)伴隨著它們在面片中參數(shù) 坐標(biāo)等分格化信息送入下一級處理。Domain Siader根據(jù)面片中的參數(shù)坐標(biāo)對每一個(gè)三角形的頂點(diǎn)進(jìn)行單獨(dú)處理,并 從其附帶的分格化信息中進(jìn)行計(jì)算。Domain Siader會(huì)計(jì)算出每個(gè)頂點(diǎn)所對應(yīng)的信息,包 括坐標(biāo)數(shù)據(jù)、紋理坐標(biāo)等,并將該頂點(diǎn)和對應(yīng)的頂點(diǎn)信息向下一級傳送。后面的DirectX 11中各模塊根據(jù)頂點(diǎn)信息進(jìn)行各種圖形操作,包括投影變換、 三維剪裁、視口變換、圖元裝配、光柵化、像素染色和顏色混合等操作,最終在屏幕上呈現(xiàn)出 所要求的曲面表面。曲面細(xì)分的方法雖然很多,因?yàn)橛泻芏嗟某顺ú僮鳎布?shí)現(xiàn)效率較低,我們提 出的方法,主要采用定點(diǎn)整數(shù)的加法和比較運(yùn)算,盡量避免乘除法操作,適用于硬件實(shí)現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提出一種在圖形處理器中適用于硬件實(shí)現(xiàn)的高效曲面細(xì)分的 方法。本發(fā)明針對Direct 11流水線結(jié)構(gòu)中的Tessellator,提出該模塊的核心實(shí)現(xiàn)方法。Tessellator的輸入是曲面的面片(surface patches),以及與之相對應(yīng)的LOD信 息。每一個(gè)面片都是由內(nèi)部的規(guī)則矩形和外部的不規(guī)則邊界構(gòu)成,如圖2所示。圖2面片結(jié)構(gòu)示意圖面片的內(nèi)部規(guī)則矩形可以根據(jù)LOD信息劃分成很多小的矩形網(wǎng)格。如圖2所示, 面片中規(guī)則矩形的高度LOD值LODh = 5,寬度LOD值LODw = 10,因此面片中規(guī)則矩形可以 劃分成50個(gè)矩形網(wǎng)格。面片的四個(gè)邊界構(gòu)成了四邊形,且每邊的LOD值可以各不相同。如 圖2所示,左邊界的LOD值LODf = 8,右邊界的LOD值LODk = 7,上邊界的LOD值LODt = 8, 下邊界的LOD值LODb = 5。在本發(fā)明方法中,對面片中規(guī)則矩形的網(wǎng)格頂點(diǎn)是按從左向右,從下到上的順序 進(jìn)行編號。對面片邊界上的頂點(diǎn)是從按左下角開始,沿順時(shí)針方向進(jìn)行編號。分格化方法的 具體實(shí)現(xiàn)方法可以分為兩個(gè)分支面片中規(guī)則矩形的分格化和面片邊界區(qū)域的分格化。以 下是兩個(gè)分支方法的具體說明。3. 1面片中規(guī)則矩形的分格化面片中規(guī)則矩形的分格化分為兩個(gè)步驟。首先是要將面片的內(nèi)部規(guī)則矩形分成若 干個(gè)矩形塊(rectangle),每個(gè)矩形塊中包含若干個(gè)矩形網(wǎng)格(mesh)。這一步驟要求盡量 減少向下一級傳送的矩形塊數(shù)量,同時(shí)又能保證下一步處理的運(yùn)算量適當(dāng)。圖3面片內(nèi)部規(guī)則矩形分成矩形塊示意圖如圖3所示,每個(gè)矩形塊是由兩行三列共6個(gè)矩形網(wǎng)格構(gòu)成,因此每個(gè)矩形塊包括 12個(gè)網(wǎng)格頂點(diǎn)。為了使劃分方法簡便,規(guī)定劃分的順序?yàn)閺牡紫蛏希瑥淖笙蛴?,依次進(jìn)行。 在最頂上的矩形塊和最右邊的矩形塊可能會(huì)與其他矩形塊不同,如圖3所示。該步驟的偽 代碼如下所示Algorithm Tessellate—Mesh(LOT)訓(xùn),LODh, bw, bh);
1.for(i=0; i<LODw; i=i+bw) {
2.cw = min((LODw - i), (bw + 1));
3.forG=0;j<LODH;j=j+bh){
4.ch = min((LODH - j), (bh + 1));
5.if(bw<=cw) {
6.if(bh<ch)
7.Generate—Rectangle(i,j,bw, bh);
8.else
9.Generate—Rectangle(i, j, bw, ch);
10.}
11.else{
12.Generate_Rectangle(i, j, cw, LODh);
13.break;
14.}
15.}
16. }在上面的偽代碼描述中,LODw* LODh分別是面片內(nèi)部規(guī)則矩形的寬度和高度LOD 值。而W和W1分別是矩形塊的寬度值和高度值。在上面的方法描述中,都是整數(shù)操作,且 只有加法和比較操作,沒有乘法和除法,使得硬件實(shí)現(xiàn)設(shè)計(jì)簡單。其次要對每個(gè)矩形塊進(jìn)行處理。即從矩形塊中分離出矩形網(wǎng)格,并將每個(gè)矩形網(wǎng) 格分成兩個(gè)三角形。具體實(shí)現(xiàn)方法的偽代碼如下所示
Procedure Generate_Rectangle(\, j, w, h); 1. for(n=0 ; n<w; n++) {
2.for(m=0; m<h; m++){
3.vl = (n+i)*( L〇DH+l)+m+j;
4.v2 = (n+i)*( LODH+l)+m+l+j;
5.v3 = (n+l+i)*( LODH+l)+m+j+l;
6.v4 = (n+l+i)*( LODH+l)+m+j;
7.Build_Triangle(vl, v2, v3);
8.Build一Triangle(vl, v3, v4);
9.}—
10. }在上面的偽代碼描述中,雖然使用了乘法運(yùn)算,但可以使用n*(L0DH+l)和 (n+l)*(L0DH+l)這樣兩個(gè)簡單的計(jì)數(shù)器來實(shí)現(xiàn)累加運(yùn)算。因此,也可以在硬件實(shí)現(xiàn)中不使 用乘法器。接下來BuilcLTriangle步驟將三角形的頂點(diǎn)坐標(biāo),從原來在內(nèi)部規(guī)則矩形的節(jié) 點(diǎn)編號轉(zhuǎn)換為在面片中的參數(shù)坐標(biāo)lu,v,w},并計(jì)算相應(yīng)的分格化數(shù)據(jù)信息。在Tessellate Mesh步驟中,每次循環(huán)都能得到一個(gè)矩形塊。而在Generate_ Rectangle步驟中,每次循環(huán)都能把一個(gè)矩形網(wǎng)格分成兩個(gè)三角形。在內(nèi)部規(guī)則矩形細(xì)分 中,這兩個(gè)步驟總共循環(huán)L0Dw*L0Dh次,每次都只有定點(diǎn)數(shù)加法和比較操作,因此總的算法 復(fù)雜度為0(L0Dw*L0Dh)。又因?yàn)槊嫫械囊?guī)則矩形中矩形網(wǎng)格的數(shù)量是L0DW*L0Dh個(gè),所
5以該方法性能是最優(yōu)的。3. 2面片邊界區(qū)域分格化面片邊界區(qū)域分格化方法稍顯復(fù)雜一些,目的是要將面片的邊界與內(nèi)部規(guī)則矩形 之間的空白區(qū)域用三角形“縫合”起來,如圖2所示。在本方法中絕大多數(shù)情況下只需要定 點(diǎn)數(shù)加法運(yùn)算和比較操作,乘法運(yùn)算只需要在初始時(shí)使用一次即可。面片邊界區(qū)域分格化 需要兩個(gè)步驟。首先對四個(gè)邊界區(qū)域進(jìn)行分別處理,包括初始化一些參數(shù)信息等,該步驟的 具體實(shí)現(xiàn)的偽代碼如下所示
Algorithm Tessellate_External(LOOL, LODT, LODr, LODb, LODh, LODw);
1.stride = 1; Ns = O, Ne = O;
2.Border_Stitching(LOOu LODh, stride, Ns, Ne);
3.stride = LODh+ 1; Ns += LODl, Ne = LODh;
4.Border_Stitching(LOOi, LODw, stride, Ns, Ne);
5.stride = -1; Ns += LODT, Ne = (LODh+1)* (LODw+1)-1;
6.Border_Stitching(LOOR, LODh, stride, Ns, Ne);
7.stride = —LODh-I; Ns += LODr, Ne = (LODH+l)*LODw;
8.Border_Stitching(LOO^, LODw, stride, Ns, Ne);在上面的偽代碼描述中,分別對面片的四個(gè)邊,從左邊起,按順時(shí)針方向,依次進(jìn) 行邊界區(qū)域的分格化處理。其中,Ns是面片邊界上的節(jié)點(diǎn)索引值,Ne是面片中規(guī)則矩形邊 界的節(jié)點(diǎn)索引值,如圖2所示。其次要對面片的邊界和與之相對的規(guī)則矩形的邊界進(jìn)行分格化處理,即三角形 “縫合”處理。該步驟具體實(shí)現(xiàn)的偽代碼如下所示
Procedure Border_Stitching(LOO^, LODi, stride, Ns, Ne);
1.integer range = LODe * LOD1;
2.integer iPos = O, ePos = O, iStep = LODe, eStep = LODi;
3.make_Triangle(Ns, Ns+1, Ne);
4.ePos += eStep;
5.Ns +=1;
3. while (iPos < range 丨丨 ePos < range) {
5.if ((iPos + iStep) < (ePos + eStep)){
6.Make—Triangle(Ns,Ne, Ne+stride);
7.iPos += iStep;
8.Ne += stride;
9- }
10.else{
11.Make—Triangle(Ns,Ns+1, Ne);
12.ePos += eStep;
13.Ns+=1;
14.}
15.}在上面的偽代碼描述中,大多數(shù)情況下只有定點(diǎn)數(shù)加法和比較運(yùn)算。在該步驟初 始的時(shí)候需要用到一次定點(diǎn)數(shù)乘法,由于是給定參數(shù)的乘法運(yùn)算,因此,也可以將乘法結(jié)果由Hull Siader傳過來,這樣可在此省去乘法器設(shè)計(jì)。接下來在Makejriangle步驟中,將 三角形的頂點(diǎn)坐標(biāo),從原來在內(nèi)外邊界中的節(jié)點(diǎn)索引值轉(zhuǎn)換為在面片中的參數(shù)坐標(biāo)lu,ν, w},并計(jì)算相應(yīng)的分格化數(shù)據(jù)信息。在Tessellate_External步驟中,依次對四個(gè)邊界區(qū)域進(jìn)行初始化處理。而在 Border_Stitching步驟中,每循環(huán)一次,都可得到一個(gè)三角形,總共循環(huán)LODfLOD1次,因此 該方法的計(jì)算復(fù)雜度為O(LODfLOD1)。又因?yàn)槊織l邊界對應(yīng)的三角形數(shù)為LODfLOD1個(gè),所 以該方法的性能是最優(yōu)的。
圖1. Direct3D 11流水線結(jié)構(gòu)示意2.面片結(jié)構(gòu)示意3.面片內(nèi)部規(guī)則矩形分成矩形塊示意4.分格化方法硬件實(shí)現(xiàn)示意圖
具體實(shí)施例方式5.1硬件結(jié)構(gòu)設(shè)計(jì)采用本方明提出的分格化處理方法所設(shè)計(jì)的硬件結(jié)構(gòu)如圖4所示。在該硬件結(jié)構(gòu) 中,Tessellator內(nèi)部首先用Branch模塊接收從Hull Siader送過來的面片信息,包括面 片的內(nèi)部規(guī)則矩形的寬度和高度LOD值,以及面片的4個(gè)邊界的LOD值等信息。在Branch 模塊內(nèi)部處理這些數(shù)據(jù)信息,然后將數(shù)據(jù)信息打包分為兩條支路傳送。這兩條支路分別進(jìn) 行面片的內(nèi)部規(guī)則矩形的分格化和面片邊界區(qū)域的分格化處理。圖4分格化方法硬件實(shí)現(xiàn)示意圖在面片的內(nèi)部規(guī)則矩形的分格化這一分支中,TeSSellate_MeSh模塊接收從 Branch模塊傳來的面片的內(nèi)部規(guī)則矩形的寬度和高度的LOD值仏01\和LODh),以及矩形塊 的寬度和高度值(bw和Wi)。在TessellaLMesh模塊內(nèi)部處理中,將面片的內(nèi)部規(guī)則矩形 劃分為若干個(gè)矩形塊。在TessellaLMesh模塊內(nèi)部狀態(tài)機(jī)中,每一個(gè)節(jié)拍都能得到一個(gè)矩 形塊,然后將該矩形塊向下一級傳送。Generate_Rectangle模塊接收從iTessellate_Mesh模塊傳來的矩形塊的起始點(diǎn) 信息(i,j)和寬度高度信息(w,h)。在Generat^Rectangle模塊內(nèi)部處理中,首先將矩形塊 分解為若干個(gè)矩形網(wǎng)格(mesh),緊接著將單個(gè)矩形網(wǎng)格劃分為兩個(gè)三角形。在Generate Rectangle模塊內(nèi)部狀態(tài)機(jī)中,每個(gè)節(jié)拍都能得到兩個(gè)三角形,然后將這兩個(gè)三角形的頂點(diǎn) 信息向下一級傳送。Build_Triangle模塊接收從Generate_Rectangle模塊傳送來的三角形的頂點(diǎn) 數(shù)據(jù)信息(V0、VI、V2)。因?yàn)橐粋€(gè)節(jié)拍會(huì)有兩個(gè)三角形傳送過來,因此設(shè)計(jì)兩個(gè)BuilcL Triangle模塊接收信息。BuiIcLTriangle模塊內(nèi)部處理中,將三角形的頂點(diǎn)坐標(biāo),從原來 在內(nèi)部規(guī)則矩形的節(jié)點(diǎn)編號轉(zhuǎn)換為在面片中的參數(shù)坐標(biāo)lu,ν, w},并計(jì)算相應(yīng)的分格化數(shù) 據(jù)信息。在Generat^Rectangle模塊內(nèi)部狀態(tài)機(jī)中,每個(gè)節(jié)拍都能計(jì)算出三角形三個(gè)頂點(diǎn) 的參數(shù)坐標(biāo),然后將包含該信息的分格化數(shù)據(jù)向下一級Domain Shader傳送。在面片邊界的分格化這一分支中,Tessellate_External模塊接收從Branch模塊傳來的面片的邊界信息,包括面片的內(nèi)部規(guī)則矩形的寬度和高度LOD值,以及面片的4個(gè)邊 界的LOD值等信息。在Tessellat^External模塊內(nèi)部處理中,計(jì)算出4個(gè)邊界分格化所 需要的參數(shù),如內(nèi)外邊界起始節(jié)點(diǎn)索引值和步長等信息。在Tessellat^External模塊的 內(nèi)部狀態(tài)機(jī)中,每個(gè)節(jié)拍能計(jì)算出一條邊界區(qū)域分格化所需要的初始數(shù)據(jù)信息,然后向下
一級傳送。Border_Stitching模塊接收從iTessellate_External模塊傳送來的內(nèi)部和外部 邊界LOD值(LODjP L0DE),以及步長(stride)、內(nèi)部和外部邊界起始節(jié)點(diǎn)索引值(隊(duì)和隊(duì))。 在BorderJtitching模塊中,將內(nèi)部和外部邊界區(qū)域用三角形逐個(gè)“縫合”。在Border_ Pitching模塊狀態(tài)機(jī)中,每個(gè)節(jié)拍都能得到一個(gè)三角形,以及三個(gè)頂點(diǎn)在內(nèi)部和外部邊界 中的索引值,然后將該信息向下一級傳送。Makejriangle模塊接收從BorderJtitching模塊傳來的三角形的三個(gè)頂點(diǎn)在 內(nèi)外邊界中的索引值等數(shù)據(jù)信息(Ne,Ns, Ne/Ns+Ι)。在MakeJriangle模塊內(nèi)部處理中, 將三角形的頂點(diǎn)坐標(biāo),從原來在內(nèi)外邊界中的節(jié)點(diǎn)索引值轉(zhuǎn)換為在面片中的參數(shù)坐標(biāo)lu, v,w},并計(jì)算相應(yīng)的分格化數(shù)據(jù)信息。在Makejriangle模塊內(nèi)部狀態(tài)機(jī)中,每個(gè)節(jié)拍都 能計(jì)算出三角形三個(gè)頂點(diǎn)的參數(shù)坐標(biāo),然后將包含該信息的分格化數(shù)據(jù)向下一級Domain Shader 傳送。根據(jù)本方明方法所設(shè)計(jì)Tessellator的硬件結(jié)構(gòu)采用流水線工作方式。在流水線 滿負(fù)荷情況下,每個(gè)節(jié)拍可以輸出3個(gè)三角形。在具體實(shí)現(xiàn)中,絕大多數(shù)運(yùn)算都是定點(diǎn)數(shù)加 法和比較操作。在本方法中只有少數(shù)運(yùn)算需要用到乘法操作,可以通過一些方式避免,如前 所述。本方法在設(shè)計(jì)時(shí)充分考慮了硬件的實(shí)現(xiàn),比較容易提高運(yùn)算并行性。5. 2仿真結(jié)果驗(yàn)證依據(jù)本發(fā)明方法編寫了相應(yīng)的C語言仿真程序,分別對面片的內(nèi)部規(guī)則矩形和面 片邊界區(qū)域進(jìn)行了分格化。設(shè)定面片的內(nèi)部規(guī)則矩形的面片中規(guī)則矩形的高度LOD值LODh =5,寬度LOD值LODw = 10。每個(gè)矩形塊初始設(shè)為高度為2,寬度為3。對面片的內(nèi)部規(guī)則 矩形分格化所結(jié)果如表1所示表1面片內(nèi)部規(guī)則矩形的分格化結(jié)果
權(quán)利要求
1. 一種適用圖形硬件的分格化方法,該方法包含內(nèi)部矩形分格化和邊界區(qū)域分格化兩 部分,在劃分過程中(除了初始化時(shí))僅使用了定點(diǎn)整數(shù)的加法和比較運(yùn)算,且內(nèi)部分格化 時(shí)可以按照硬件配置進(jìn)行并行劃分,分格化的結(jié)果包括有序的頂點(diǎn)索引和相應(yīng)的參數(shù)坐標(biāo) {u,ν};其中邊界區(qū)域分格化實(shí)現(xiàn)方法為將面片邊界的LOD值與對應(yīng)的內(nèi)部規(guī)則矩形邊界 的LOD值相乘,用該乘積作為判斷循環(huán)終止的條件,且面片邊界上節(jié)點(diǎn)索引值和內(nèi)部矩形 邊界上節(jié)點(diǎn)索引值按各自步長依次交替增長,步長均為定點(diǎn)整數(shù);內(nèi)部矩形分格化實(shí)現(xiàn)方 法為將面片的內(nèi)部規(guī)則矩形首先劃分為若干個(gè)矩形塊,接著將每個(gè)矩形塊劃分為若干矩 形網(wǎng)格,最后將每個(gè)矩形網(wǎng)格劃分為兩個(gè)三角形。
全文摘要
“一種適用圖形硬件的分格化方法”發(fā)明,屬于適用于圖形硬件的曲面細(xì)分設(shè)計(jì)方法領(lǐng)域。為了解決圖形曲面細(xì)分加速處理中將圖形表面細(xì)分為更小的多邊形時(shí),硬件實(shí)現(xiàn)的效率問題,提出了此方法。方法將曲面面片分格化分解為面片的內(nèi)部矩形分格化和邊界區(qū)域分格化兩部分,減少了硬件實(shí)現(xiàn)中消耗時(shí)間較長的乘除法操作,采用定點(diǎn)整數(shù)的加法與比較操作實(shí)現(xiàn)。該方法主要用于圖形處理器中曲面細(xì)分的分格化處理單元。該方法的提出可以有效提高硬件實(shí)現(xiàn)的效率。
文檔編號G06T17/20GK102096948SQ20111004801
公開日2011年6月15日 申請日期2011年3月1日 優(yōu)先權(quán)日2011年3月1日
發(fā)明者劉海, 曹小鵬, 董梁 申請人:西安郵電學(xué)院