無線網絡中三維模型拓撲數據魯棒傳輸的編碼和重構方法
【專利摘要】本發(fā)明公開了一種無線網絡中三維模型拓撲數據魯棒傳輸的編碼和重構方法。本發(fā)明首先在服務端將三維模型拓撲數據編碼。具體是:按照一定規(guī)則遍歷三維模型的頂點,得到每個頂點的遍歷序號、度信息及相鄰點信息。其次,根據改進的順序著色算法,按照頂點被遍歷的序號將每個頂點著上顏色。然后,對模型按照顏色分組,將同種顏色頂點作為一個分組。最后,對分組使用哈夫曼編碼進行壓縮。然后在服務端將三維模型拓撲重構,具體是:接收到分組后,將接收到的頂點按序號從小到大的順序排序,再基于價驅動解碼方法重構模型拓撲結構。本發(fā)明通過有效的模型拓撲數據編碼和客戶端重構技術,使三維模型在高丟包率的網絡傳輸時,仍能獲得較好的重構效果。
【專利說明】無線網絡中三維模型拓撲數據魯棒傳輸的編碼和重構方法
【技術領域】
[0001]本發(fā)明屬于無線網絡中與便攜移動設備相關的多媒體【技術領域】,特別涉及一種無線網絡中三維模型拓撲數據魯棒傳輸的編碼和重構方法。
【背景技術】
[0002]2013年底移動、聯(lián)通和電信三大運營商獲得4G運營牌照,標志著我國正式進入4G時代。隨著3G/4G移動網絡的逐步鋪開和無線網絡的廣泛應用,面向手持移動設備的各種三維圖形應用得到了迅速發(fā)展。然而,無線網絡的窄帶寬和高丟包率及移動設備本身所固有的有限功耗供給和計算存儲資源等缺陷,還不能很好地滿足三維圖形在移動計算終端中的強烈真實感展現(xiàn)的要求。如何在無線移動網絡上對三維圖形數據進行魯棒傳輸并在移動設備上展現(xiàn)真實感3D場景成為目前研究的熱點問題。
[0003]不同于有線網絡,無線網絡由于信號衰退、信道噪聲以及終端節(jié)點的移動性導致數據在傳輸中有較高的丟失率和誤碼率。雖然相對于傳統(tǒng)2G移動網絡,3G/4G移動網絡的丟包率有所降低,但對于終端應用程序用戶來說,丟包所帶來視覺影響仍然較為嚴重。為克服網絡丟包的缺陷,研究者們提出了多種解決方法。這些方法通常分為基于網絡和模型兩大類。
[0004]基于網絡的方法的相關研究在網絡傳輸層提出了若干解決方法,從而改善無線網絡中傳輸協(xié)議的性能。此類方法通常使用重傳或FEC客服數據鏈路層丟包現(xiàn)象,但重傳數據浪費網絡帶寬并且耗時,明顯地影響了模型的整體傳輸速度和繪制視覺效果?;谀P偷姆椒紤]到模型編碼存在的依賴性問題。其中,典型的基于分割方法的目標就是減少模型數據之間的依賴性,將整個模型分成多個獨立的片段并進行分包編碼。這樣一個分組的丟失所帶來的影響被限制在其所在的片段這樣一個局部范圍之內。但是,模型被分割后的片段之間的邊界處理尤為重要,在傳輸中通常對其采用冗余的錯誤復原編碼方法,從而降低了模型編碼效率。并且,基于此種分割方法丟失的分組信息不能正?;謴?,從而將會影響模型重構效果。
[0005]因此,通過有效的模型編碼方法,降低甚至切斷模型數據之間的依賴性;同時,設計一種重構方法,最大程度恢復丟失的信息,將能夠極大地減少因無線網絡高丟包率而對三維模型在移動客戶端的繪制視覺效果造成的影響。
【發(fā)明內容】
[0006]本發(fā)明針對現(xiàn)有技術的不足,提供了一種無線網絡中三維模型拓撲數據魯棒傳輸的編碼和重構方法。
[0007]本發(fā)明解決其技術問題所采用的技術方案如下:
[0008]I)三維模型拓撲數據編碼。為適應真實不穩(wěn)定的無線網絡,提出一種面向三維模型拓撲數據魯棒傳輸的編碼方法。首先,按照一定規(guī)則遍歷三維模型的頂點,得到每個頂點的遍歷序號、度信息及相鄰點信息。其次,根據改進的順序著色算法,按照頂點被遍歷的序號將每個頂點著上顏色。然后,對模型按照顏色分組,將同種顏色頂點作為一個分組。最后,對分組使用哈夫曼編碼進行壓縮。
[0009]2)三維模型拓撲重構。在服務端,三維模型拓撲經過編碼,采用非可靠的UDP協(xié)議傳輸,在客戶端,接收到分組后,將接收到的頂點按序號從小到大的順序排序,再基于價驅動解碼方法重構模型拓撲結構?;诟倪M后的編碼方法,客戶端針對丟失的數據主要從頂點的度及遍歷方法結合、頂點的相鄰點信息方面考慮重構模型。
[0010]本發(fā)明與【背景技術】相比,具有的有益的效果是:
[0011]本發(fā)明是一種適用于無線有損網絡中三維模型拓撲數據編碼和重構方法,能夠在移動客戶端實現(xiàn)三維模型拓撲丟失后仍較大程度恢復模型的功能。
【專利附圖】
【附圖說明】
[0012]圖1三維網格遍歷結果;
[0013]圖2頂點著色結果;
[0014]圖3三維模型重構流程圖。
【具體實施方式】
[0015]I)三維模型 拓撲數據編碼。
[0016]首先,遍歷三維模型。對任一三維模型,遍歷三維模型拓撲過程為:
[0017]步驟1:在網格上任選一三角形,將其三頂點放入一個活動列表中(ActiveList),并取其中一個頂點作為焦點(Focus)。
[0018]步驟2:按逆時針次序遍歷所有與該焦點連接的未訪問的邊,每處理一條邊,對應的新頂點添加到活動列表?;顒恿斜碛行碌捻旤c加入時,都會輸出一個Add〈degree>命令,記錄該頂點的度。
[0019]步驟3:當處理完所有與焦點連接的邊之后,把活動列表中的下一個頂點選為焦點,重復(2)操作。
[0020]步驟4:直至網格中所有的邊被遍歷完。生成許多構成拓撲結構的頂點信息。每個頂點拓撲信息包括其遍歷序號、度、額外信息及相鄰點的序號、度和額外信息。
[0021]本發(fā)明遍歷結果中每個頂點信息格式如下:
[0022]{某頂點序號,某頂點度,該頂點額外信息[(第I個相鄰點的序號,第2個相鄰點的序號,……,第η個相鄰點的序號),(第I個相鄰點的度,額外信息,第2個相鄰點的度,額外信息,……,Mn個相鄰點的度,額外信息)]}
[0023]其中,頂點序號表示三維模型中頂點被遍歷的順序號碼,如1、2、3、……(如圖1);頂點度表示頂點所連接邊的個數;η表示某頂點的相鄰點個數;額外信息是標注遍歷三維模型過程中遇到的特殊情況(split, dummy, merge等情況)。
[0024]其次,執(zhí)行頂點著色。本發(fā)明提出一個改進的順序著色算法,按照頂點序號對其進行著色。
[0025]設圖G的頂點數為n,對圖G進行頂點著色,本發(fā)明改進的順序著色算法總體步驟如下。
[0026]步驟1:用i表示頂點序號,i=lo[0027]步驟2:用&表示給頂點i著色為第&種顏色,j=l。
[0028]步驟3:對第i個頂點著色,考慮它的一鄰接點和二鄰接點,如果都沒有使用第Cj種顏色,則給頂點i著色為第&種顏色,并轉第5步;只要有一個頂點使用了第&種顏色,則轉第4步。
[0029]步驟4:Cj = Cj+1 ;并轉第3步。
[0030]步驟5:若還有頂點未著色,則i=i+l,并轉向第2步,否則算法結束。
[0031]如圖2是三維模型按頂點遍歷順序著色后的結果。
[0032]然后,對模型按照顏色分組。本發(fā)明將同種顏色頂點作為一個分組。對于大模型,同種顏色頂點按序分多個分組。
[0033]最后,對分組進行壓縮。本發(fā)明使用哈夫曼編碼對分組進行壓縮。
[0034]2)三維模型拓撲重構。
[0035]在服務端三維模型拓撲經過編碼,采用非可靠的UDP協(xié)議傳輸,在客戶端接收到分組后,本發(fā)明將接收到的頂點按序號從小到大的順序排序,再基于價驅動解碼方法重構模型拓撲結構。基于改進后的編碼方法,本發(fā)明客戶端針對丟失的數據主要從頂點的度及遍歷方法結合、頂點的相鄰點信息方面考慮重構模型。但是,無線網絡的不穩(wěn)定,導致某些頂點信息丟失,本發(fā)明提出以下方法恢復:
[0036]三維模型拓撲重構時,當焦點F的度滿,焦點F轉移至下一個頂點NF,而NF的信息丟失,不知NF的度(即相鄰點個數)。此時,從接收的分組中,尋找頂點序號Vn0.大于焦點序號Fn0.并且d= I Vn0.-Fn0.|最小的頂點Vtl,利用該頂點Vtl與其相鄰點的關系,將V。作為焦點,繼續(xù)恢復模型,先順時針恢復,直到將NF的相鄰點恢復出,再逆時針恢復模型。其中:若Vtl及其相鄰點都已恢復出,按序尋找下一個大于焦點序號的頂點,直到該頂點與其相鄰點沒完全被恢復出為止。
[0037]下面針對Vtl列舉四種情況:
[0038]①如果頂點Vci的相鄰點有一個頂點沒被恢復(不包括Vfl及Vc1-1),那么增加這一頂點同時也會產生兩個新三角形,新頂點設為\,新三角形為Of0, V1, Vtl-1 >、<V0, V1, VfD。
[0039]②如果頂點Vci的相鄰點有兩個頂點沒被恢復(不包括Vfl及Vc1-1),分別為\、V3(V2<v3),則會新增三個三角形〈V。,V2, v0-l>,〈V。,V2, V3>、〈V。,V3, ν0+1>ο
[0040]③如果頂點Vci的相鄰點有三個頂點沒被恢復(不包括Vd+Ι及Vc1-1),分別為v4、v5、V6 (v4〈v5〈v6),則會新增四個三角形〈VQ-1,V0, V4>、〈V。,V4, V5>、〈V。,V5, V6>、<V0, V6, V0+l>o
[0041]④若頂點Vtl的相鄰中沒被恢復的包括Vfl和Vtl-1,那么在上面①②③情況下再新增三角形。分兩種情況:(a)如果已恢復的頂點為一個V7,新增三角形〈I Vc1-1J7X〈V。,V0+l, V7> ; (b)如果已恢復的頂點是兩個V8、V9,新增三角形〈V。,V8, v0-l>,〈V。,V8, \>、<V0, VI,V。
[0042]第①②③情況模型恢復:
[0043]順時針方向恢復:即Vtl及其相鄰點恢復完,焦點移至Vtl-1,由Vtl-1的度恢復其相鄰點,這里頂點是按降序順序恢復?;謴偷巾旤cNF相鄰點時,不知道NF的度,通過NF+1與NF-1作為焦點時恢復的最后一個頂點來判斷NF是否有相鄰點未被恢復。比如說NF+1與NF-1作為焦點時恢復的最后一個頂點分別為14、12,那么頂點13肯定是NF的相鄰點。
[0044]如果在順時針恢復過程還未恢復到NF作為焦點的相鄰點時,那么順時針恢復暫時停止,焦點移至Vo+l,繼續(xù)逆時針恢復模型。
[0045]第④種情況模型恢復:
[0046](a)情況焦點移至V7-1,順時針方向恢復;逆時針恢復時,焦點移至V7+l,繼續(xù)重構;(b)情況焦點移至V8-1,順時針方向恢復;逆時針恢復時,焦點移至V9+l,繼續(xù)重構。如果再次碰到下一個焦點信息丟失情況,此時,將焦點移至Vtl-1,重復①②③情況的模型恢復。
[0047]如圖3展示了三維模型重構的一個過程。此時假設客戶端僅僅接收到顏色為C2的分組,該分組包含頂點有2、14、17、27、36、39,每個頂點包含相鄰點信息,那么客戶端收到的所有信息如下所示:
[0048]{2,7 [ (1,3,7,8,9,10,11) (6,6,6,4,6,6,6)]}
[0049]{14,6 [ (4,13,15,29,30,31) (6,6,6,5,4,5) ]}
[0050]{17,5 [ (5,16,18,33,34) (7,5,6,5,5) ]}
[0051]{27,4 [(12,26,28) (6,5,5)]}
[0052]{36,5 [ (19,20,35,37) (5,6,5,5) ]}
[0053]{39,5 [ (21,22,38,40) (8,5,4,4,dummy 18) ]}
[0054]根據以上頂點信息,三維模型重構流程過程如下:
[0055]圖3(a):由頂點2及相鄰點1、3初始化三角形,頂點I為焦點。頂點1、2、3的度分別為6、7、6,圖中虛線表不未恢復的相鄰點。
[0056]圖3(b):頂點I的度為6,平面網格恢復到頂點7。因頂點6的信息沒有,故其相鄰點個數未知,不能使用虛線表示未恢復的相鄰點個數。
[0057]圖3(c):頂點I的度已滿,焦點移至頂點2。
[0058]圖3(d):同上方法三角網格恢復至頂點18,此時焦點為6。但是,頂點6的度未知,不能以6為焦點繼續(xù)恢復模型。
[0059]圖3(e):從接收到的信息中,找到頂點序號(Vn0.)大于焦點6 (Fn0.)并且d=|Vn0.-Fn0.|最小的頂點Vtl,此處,V0為頂點14。頂點14的相鄰點29、30、31未被繪制,符合上面提到對V。列舉的四種情況中的情況,那么新增三個三角形,〈13,14,29>、<14,29,30>、〈14,30,15>。并且焦點移至頂點13,順時針恢復模型。
[0060]圖3 (f):順時針恢復模型至頂點20,此時頂點7的度已滿,所有相鄰點都被恢復。
[0061]圖3(g):焦點移至頂點15,準備下一階段的逆時針恢復。
[0062]圖3(h):頂點7作為焦點時恢復的最后一個頂點是20,頂點6作為焦點時恢復的最后一個頂點是18,而頂點7的度已滿,所以頂點19應該是頂點6的相鄰點,新增三角形〈6,19,20X6,18,19>。
[0063]圖3(i):依次以15、16、17、18、19、20、21、22為焦點,逆時針恢復平面網格直頂點40。
[0064]圖3 (j):焦點移至23。
[0065]圖3 (k):從頂點40的額外信息dummyl8,添加虛擬頂點,將從40倒數18個頂點(40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23)與之相連。
[0066]圖3(1):平面網格完成重構。
【權利要求】
1.無線網絡中三維模型拓撲數據魯棒傳輸的編碼和重構方法,其特征在于該方法包括如下步驟: 1)服務端的三維模型拓撲數據編碼,具體是: 首先,按照一定規(guī)則遍歷三維模型的頂點,得到每個頂點的拓撲信息,包括如下步驟: 步驟1-1:在網格上任選一三角形,將其三頂點放入一個活動列表中,并取其中一個頂點作為焦點; 步驟1-2:按逆時針次序遍歷所有與該焦點連接的未訪問的邊,每處理一條邊,對應的新頂點添加到活動列表;活動列表有新的頂點加入時,都會輸出一個Add〈degree>命令,記錄該頂點的度; 步驟1-3:當處理完所有與焦點連接的邊之后,把活動列表中的下一個頂點選為焦點,重復步驟1-2操作; 步驟1-4:直至網格中所有的邊被遍歷完; 其次,根據改進的順序著色算法,按照頂點被遍歷的序號將每個頂點著上顏色,包括如下步驟: 步驟2-1:用i表示頂點序號,i=l ; 步驟2-2:用&表示給頂點i著色為第&種顏色,j=l ; 步驟2-3:對第i個頂點著色,考慮它的一鄰接點和二鄰接點,如果都沒有使用第Cj種顏色,則給頂點i著色為第&種顏色,并轉步驟2-5 ;只要有一個頂點使用了第&種顏色,則轉步驟2-4 ; 步驟2-4 =Cj=Cfl ;并轉步驟2-3 ; 步驟2-5:若還有頂點未著色,則i=i+l,并轉向步驟2-2,否則算法結束; 然后,對模型按照顏色分組,將同種顏色頂點作為一個分組; 最后,對分組使用哈夫曼編碼進行壓縮; 2)客戶端的三維模型拓撲重構,具體是: 三維模型拓撲重構時,當焦點F的度滿,焦點F轉移至下一個頂點NF,而NF的信息丟失,不知NF的度;此時,從接收的分組中,尋找頂點序號Vn0.大于焦點序號Fn0.并且d= I Vn0.-Fn0.|最小的頂點Vtl,利用該頂點Vtl與其相鄰點的關系,將Vtl作為焦點,繼續(xù)恢復模型,先順時針恢復,直到將NF的相鄰點恢復出,再逆時針恢復模型;其中:若Vtl及其相鄰點都已恢復出,按序尋找下一個大于焦點序號的頂點,直到該頂點與其相鄰點沒完全被恢復出為止。
2.根據權利要求1所述的無線網絡中三維模型拓撲數據魯棒傳輸的編碼和重構方法,其特征在于:所述的每個頂點拓撲信息包括其遍歷序號、度、額外信息及相鄰點的序號、度和額外信息,其中,頂點序號表示三維模型中頂點被遍歷的順序號碼,頂點度表示頂點所連接邊的個數;額外信息是標注遍歷三維模型過程中遇到的特殊情況。
【文檔編號】H04L1/00GK103840871SQ201410016396
【公開日】2014年6月4日 申請日期:2014年1月14日 優(yōu)先權日:2014年1月14日
【發(fā)明者】楊柏林, 王會琴, 王勛, 江照意 申請人:浙江工商大學