專利名稱:Rdp協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及ー種⑶I回顯及縮放方法及裝置,具體的說是RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法及系統(tǒng)。
背景技術(shù):
RDP協(xié)議作為ー種常用運維協(xié)議,已經(jīng)是廣大運維人員的ー個手中利器。安全運維及審計的要求,需要對RDP運維過程的畫面進行錄像及同步回放。為了滿足數(shù)據(jù)回放的要求,通常需要將RDP數(shù)據(jù)流轉(zhuǎn)換為流媒體視頻流,這樣的解決方案,需要提供專門的數(shù)據(jù)轉(zhuǎn)換模塊,提高了系統(tǒng)的復(fù)雜度,且轉(zhuǎn)換過程需要耗費較大的系統(tǒng)資源,且生成的視頻數(shù)據(jù)數(shù)據(jù)容量較大,回放效果也不夠清晰
發(fā)明內(nèi)容
·
本發(fā)明所要解決的技術(shù)問題是,克服現(xiàn)有技術(shù)的缺點,提供ー種RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法及系統(tǒng),省去了視屏轉(zhuǎn)換的過程,系統(tǒng)部署簡單,在畫面清晰度、系統(tǒng)資源消耗方面具有優(yōu)勢。本發(fā)明解決以上技術(shù)問題的技術(shù)方案是
RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法,包括
步驟(一),RDP協(xié)議解析,分離RDP協(xié)議里的圖像數(shù)據(jù)和控制數(shù)據(jù),得到圖像數(shù)據(jù),圖像數(shù)據(jù)包括屏幕背景、字體數(shù)據(jù)及點陣圖像數(shù)據(jù);
步驟(ニ),將步驟(一)得到圖像數(shù)據(jù)中的點陣圖像數(shù)據(jù)的每一個點陣轉(zhuǎn)換為一個內(nèi)存數(shù)據(jù)結(jié)構(gòu);
步驟(三),判斷內(nèi)存數(shù)據(jù)是否有效,若無效,則返回步驟(一);若有效,則進入下一歩
驟;
步驟(四),將內(nèi)存數(shù)據(jù)更新到對應(yīng)的內(nèi)存區(qū)域;
步驟(五),將內(nèi)存數(shù)據(jù)映射矩形區(qū)域的圖像數(shù)據(jù)轉(zhuǎn)換為位圖,為GDI回顯準備數(shù)據(jù),將枚舉出來的內(nèi)存數(shù)據(jù)矩形區(qū)域里的點陣數(shù)據(jù)轉(zhuǎn)換為小的矩形;
步驟(六),將位圖進行等比例縮放,同時計算等比例的回顯坐標,如不需要縮放,則直接進入下ー步驟;
步驟(七),通過WIN-⑶I回顯位圖數(shù)據(jù),將各個小的位圖根據(jù)坐標繪制到屏幕上。RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放系統(tǒng),包括
RDP協(xié)議解析模塊,用于分離RDP協(xié)議里的圖像數(shù)據(jù)和控制數(shù)據(jù),得到圖像數(shù)據(jù);圖像數(shù)據(jù)數(shù)據(jù)轉(zhuǎn)化為內(nèi)存數(shù)據(jù)模塊,用于將圖像數(shù)據(jù)中的點陣圖像數(shù)據(jù)的每一個點陣轉(zhuǎn)換為一個內(nèi)存數(shù)據(jù)結(jié)構(gòu);
內(nèi)存數(shù)據(jù)有效性判斷模塊,用于判斷內(nèi)存數(shù)據(jù)有效性;
內(nèi)存數(shù)據(jù)更新模塊,用于將內(nèi)存數(shù)據(jù)更新到內(nèi)存數(shù)據(jù)對應(yīng)的內(nèi)存位置;
圖像數(shù)據(jù)轉(zhuǎn)換位圖模塊,用于將內(nèi)存數(shù)據(jù)映射矩形區(qū)域的圖像數(shù)據(jù)轉(zhuǎn)換為位圖;位圖進行等比例縮放模塊,用于將位圖進行等比例縮放并計算等比例的回顯坐標;
回顯位圖數(shù)據(jù)模塊,用于通過WIN-GDI回顯位圖數(shù)據(jù),并將各個小的位圖根據(jù)坐標繪制到屏幕上。在本發(fā)明技術(shù)方案之前,申請人提出了一個基礎(chǔ)方案,基礎(chǔ)算法是通過解析RDP協(xié)議,識別圖像數(shù)據(jù)并將像數(shù)據(jù)完整映射到內(nèi)存。當內(nèi)存區(qū)域的圖像數(shù)據(jù)滿足完整性要求時,即將內(nèi)存數(shù)據(jù)轉(zhuǎn)換為32位色階的位圖數(shù)據(jù),通過WINDOW⑶I接ロ回顯。內(nèi)存數(shù)據(jù)在本文內(nèi)簡稱BS, [!卩BackgroundScreen 的縮寫。BS是RDP圖像分辨率寬X分辨率高X色階大小的三維內(nèi)存矩陣,數(shù)據(jù)必須在BS結(jié)構(gòu)里進行緩存,否則會丟失掉前面的數(shù)據(jù)。
初始的回顯算法是對整個BS進行等比率轉(zhuǎn)換及回顯,在測試過程中發(fā)現(xiàn),雖然算法實現(xiàn)相對簡單,單是對終端CPU資源占用率較大。同理,初始的縮放技術(shù)則是在轉(zhuǎn)換BS為等比例縮、放的位圖,達到回顯時的縮、放效果。經(jīng)過測試,圖像的分辨率的越高消耗CPU資源越多,因為對整個BS進行轉(zhuǎn)化及用⑶I回顯,需要大量的浮點運算。當分辨率達到720P及以上時,單路數(shù)據(jù)回放在主流桌面平臺上CPU占用可達到50%以上,增加縮、放運算后,還要消耗更多的CPU資源。根據(jù)對RDP圖形數(shù)據(jù)的跟蹤分析,發(fā)現(xiàn)RDP協(xié)議在更新圖像數(shù)據(jù)時,采用局部更新方案,即不變化的區(qū)域并不推送新的圖像數(shù)據(jù)。那么在算法上,RDP數(shù)據(jù)也僅需要映射變化區(qū)域的數(shù)據(jù)到BS,回顯時,也僅需要回顯BS上的變化區(qū)域。本發(fā)明采用動態(tài)矩形區(qū)域分塊技術(shù)方案最大的優(yōu)化就是將前基礎(chǔ)技術(shù)方案的全局回顯調(diào)整為動態(tài)局部更新區(qū)域回顯。由于,本發(fā)明的技術(shù)方案來自于申請人在提出前基礎(chǔ)技術(shù)方案的基礎(chǔ)上進一步優(yōu)化及改進,此過程對需解決的技術(shù)問題進行了測試及跟蹤分析,付出了創(chuàng)造性勞動。本發(fā)明技術(shù)方案BS在存儲內(nèi)容及結(jié)構(gòu)上和前方案并無變化,但是將BS分割成X*Y個三維區(qū)域,X,Y為根據(jù)動態(tài)算法計算出來的最佳的寬、高的分割比率,為了最大程度提升局部回顯的性能及消耗,動態(tài)算法提供的分割比例滿足在各常用分辨率下,分塊個數(shù)不小于10000塊。假設(shè)原生的RDP圖形數(shù)據(jù)對應(yīng)的內(nèi)存區(qū)域的大小為W*H*S,那么經(jīng)過分割后,BS則變成X*Y個(W/X) * (H/Y) *S大小的三維區(qū)域。RDP畫面的局部更新,最終映射到BS的N個小區(qū)域,回顯時,也僅回顯BS的N個小區(qū)域。這樣,減少了位圖轉(zhuǎn)換的數(shù)據(jù)量,減少了 GDI回顯的貼圖量,從而極大的優(yōu)化了性能。本發(fā)明進一歩限定的技術(shù)方案是
前述的RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法,步驟(一)中,RDP協(xié)議解析基于已經(jīng)破解的RDP5. X協(xié)議解析方法;RDP協(xié)議解析技術(shù)為現(xiàn)有技術(shù),不在這里贅述。前述的RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的GDI回顯及縮放方法,步驟(ニ)中,內(nèi)存數(shù)據(jù)結(jié)構(gòu)描述為
Struct pixel {
int PosX ;int PosY ;int Bpp ;し前述的RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法,步驟(三)中,判斷內(nèi)存數(shù)據(jù)是否有效的方法是判斷點陣數(shù)據(jù)是否與內(nèi)存數(shù)據(jù)(BS)對應(yīng)區(qū)域的數(shù)據(jù)重復(fù),將內(nèi)存數(shù)據(jù)同對應(yīng)的內(nèi)存映射數(shù)據(jù)的每一個點陣逐一對比,一旦對比結(jié)果發(fā)現(xiàn)差異,則認為數(shù)據(jù)有效;如果所有點陣數(shù)據(jù)都無變化,則認為數(shù)據(jù)無效。前述的RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法,步驟(四)中將內(nèi)存數(shù)據(jù)更新到對應(yīng)的內(nèi)存區(qū)域為
把內(nèi)存數(shù)據(jù)分割為大于10000個小矩形區(qū)域,把這大于10000個小矩形區(qū)域中涉及到數(shù)據(jù)更新的小矩形都枚舉出來,如果存在兩個相鄰的小矩形區(qū)域,則合并相鄰區(qū)域。本發(fā)明的有益效果是
本發(fā)明解決了 RDP源數(shù)據(jù)回顯及任意比率縮、放的實際需求。相對于現(xiàn)有技術(shù),本發(fā)明·并沒有將RDP源數(shù)據(jù)轉(zhuǎn)換為流媒體格式,而是直接解析RDP原協(xié)議,剝離畫面數(shù)據(jù)并回顯,省去了轉(zhuǎn)換為流媒體格式的過程,因此
本方案存在如下優(yōu)點
①系統(tǒng)部署簡單,不需要流媒體轉(zhuǎn)換模塊,僅需要RDP原始數(shù)據(jù)報的副本即可實現(xiàn)回放,同時由于省略了流媒體轉(zhuǎn)換的過程,節(jié)省了系統(tǒng)開銷。②RDP原始數(shù)據(jù)報的副本RDP數(shù)據(jù)流的副本,相對于流媒體錄像,大小僅為其1/5-1/10,假如需要保存副本的話,可以節(jié)省大量磁盤空間。③運用⑶I回放的RDP圖像數(shù)據(jù),經(jīng)過測試,回放的畫面清晰度相對流媒體數(shù)據(jù)有較大提高、回放的系統(tǒng)資源消耗也小。④本方案同時解決了縮放的問題,基本上可以做到對畫面的任意比率縮放,縮放的性能開銷也沒有顯著提高。
圖I是本發(fā)明的流程框圖。
具體實施例方式實施例I
本實施例提供ー種RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法,流程如圖I所示,包括
RDP協(xié)議解析及圖像數(shù)據(jù)獲取 分離RDP協(xié)議里的圖像數(shù)據(jù)和控制數(shù)據(jù)等數(shù)據(jù),并得到圖像數(shù)據(jù);RDP協(xié)議解析基于已經(jīng)破解的RDP5. X協(xié)議解析方法;RDP協(xié)議解析技術(shù)為現(xiàn)有技術(shù),不在這里贅述。圖像數(shù)據(jù)轉(zhuǎn)換為內(nèi)存數(shù)據(jù)RDP協(xié)議里包含的圖像數(shù)據(jù)通常包含屏幕背景、字體及點陣圖像數(shù)據(jù)等。關(guān)鍵是點陣圖像數(shù)據(jù),這種數(shù)據(jù)就是最終可以轉(zhuǎn)換為位圖并回顯到屏幕上的圖像數(shù)據(jù)的主要部分。該步驟的主要是將此類數(shù)據(jù)每ー個點陣轉(zhuǎn)換為ー個內(nèi)存數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)可以描述為
Struct pixel {int PosX ; int PosY ; int Bpp ;
し判斷內(nèi)存數(shù)據(jù)有效性結(jié)合屏幕背景、字體數(shù)據(jù)等分析點陣圖像數(shù)據(jù),并判斷點陣圖像是否可以或者需要更新到BS,這ー步的解析過程,同時也獲取了 BS的內(nèi)存區(qū)域。判斷內(nèi)存數(shù)據(jù)是否有效的方法是判斷點陣數(shù)據(jù)是否與內(nèi)存數(shù)據(jù)(BS)對應(yīng)區(qū)域的數(shù)據(jù)重復(fù),將內(nèi)存數(shù)據(jù)同對應(yīng)的內(nèi)存映射數(shù)據(jù)的每一個點陣逐一對比,一旦對比結(jié)果發(fā)現(xiàn)差異,則認為數(shù)據(jù)有效;如果所有點陣數(shù)據(jù)都無變化,則認為數(shù)據(jù)無效。內(nèi)存數(shù)據(jù)更新到BS :將內(nèi)存里的每ー個點陣數(shù)據(jù),更新BS里的每ー個點陣。調(diào)用分割算法得到對應(yīng)的小型矩形。把BS分割為大于10000的個小矩形區(qū)域,那么需要更新到BS里的數(shù)據(jù),必然包含在這10000個小矩形區(qū)域以內(nèi),把這其中涉及到數(shù)據(jù)更新的小矩形都枚舉出來,就是需要更新回顯的數(shù)據(jù)了。為了優(yōu)化計算量,會合并相鄰的小區(qū)域。舉例說明如果存在兩個相鄰的小矩形區(qū)域Xl X1+1,Y1 Y2與X1+1 X1+2,Y1 Y2,則合并為ー個較大的矩形區(qū)域Xl Χ1+2,Υ1 Υ2。增加合并操作,相對于不合并的情況,一次性轉(zhuǎn)換ー個更大的區(qū)域,減少了 CPU的消耗。BS映射矩形區(qū)域的圖像數(shù)據(jù)轉(zhuǎn)換為位圖為⑶I回顯準備數(shù)據(jù),因為⑶I回顯的是位圖數(shù)據(jù)。這一歩,將枚舉出來的BS矩形區(qū)域里的點陣數(shù)據(jù)轉(zhuǎn)換為小的矩形??s、放運算位圖進行等比例縮放,同時計算等比例的回顯坐標,假如不需要縮放的話,則略過。通過WIN-⑶I回顯位圖數(shù)據(jù)將各個小的位圖,根據(jù)坐標繪制到屏幕上。對應(yīng)的RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放系統(tǒng),包括
RDP協(xié)議解析模塊,用于分離RDP協(xié)議里的圖像數(shù)據(jù)和控制數(shù)據(jù),得到圖像數(shù)據(jù);圖像數(shù)據(jù)數(shù)據(jù)轉(zhuǎn)化為內(nèi)存數(shù)據(jù)模塊,用于將圖像數(shù)據(jù)中的點陣圖像數(shù)據(jù)的每一個點陣轉(zhuǎn)換為一個內(nèi)存數(shù)據(jù)結(jié)構(gòu);
內(nèi)存數(shù)據(jù)有效性判斷模塊,用于判斷內(nèi)存數(shù)據(jù)有效性;
內(nèi)存數(shù)據(jù)更新模塊,用于將內(nèi)存數(shù)據(jù)更新到內(nèi)存數(shù)據(jù)對應(yīng)的內(nèi)存位置;
圖像數(shù)據(jù)轉(zhuǎn)換位圖模塊,用于將內(nèi)存數(shù)據(jù)映射矩形區(qū)域的圖像數(shù)據(jù)轉(zhuǎn)換為位 位圖進行等比例縮放模塊,用于將位圖進行等比例縮放并計算等比例的回顯坐標;
回顯位圖數(shù)據(jù)模塊,用于通過WIN-GDI回顯位圖數(shù)據(jù),并將各個小的位圖根據(jù)坐標繪制到屏幕上。經(jīng)過測試,以720Ρ的源數(shù)據(jù)作為測試源_
權(quán)利要求
1.RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法,其特征在于包括 步驟(一),RDP協(xié)議解析,分離RDP協(xié)議里的圖像數(shù)據(jù)和控制數(shù)據(jù),得到圖像數(shù)據(jù),所述圖像數(shù)據(jù)包括屏幕背景、字體數(shù)據(jù)及點陣圖像數(shù)據(jù); 步驟(二),將步驟(一)得到圖像數(shù)據(jù)中的點 陣圖像數(shù)據(jù)的每一個點陣轉(zhuǎn)換為一個內(nèi)存數(shù)據(jù)結(jié)構(gòu); 步驟(三),判斷內(nèi)存數(shù)據(jù)是否有效,若無效,則返回步驟(一);若有效,則進入下一步驟; 步驟(四),將內(nèi)存數(shù)據(jù)更新到對應(yīng)的內(nèi)存區(qū)域; 步驟(五),將內(nèi)存數(shù)據(jù)映射矩形區(qū)域的圖像數(shù)據(jù)轉(zhuǎn)換為位圖,為GDI回顯準備數(shù)據(jù),將枚舉出來的內(nèi)存數(shù)據(jù)矩形區(qū)域里的點陣數(shù)據(jù)轉(zhuǎn)換為小的矩形; 步驟(六),將位圖進行等比例縮放,同時計算等比例的回顯坐標,如不需要縮放,則直接進入下一步驟; 步驟(七),通過WIN-⑶I回顯位圖數(shù)據(jù),將各個小的位圖根據(jù)坐標繪制到屏幕上。
2.如權(quán)利要求I所述的RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法,其特征在于所述步驟(一)中,RDP協(xié)議解析基于已經(jīng)破解的RDP5. X協(xié)議解析方法。
3.如權(quán)利要求I所述的RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的GDI回顯及縮放方法,其特征在于所述步驟(二)中,內(nèi)存數(shù)據(jù)結(jié)構(gòu)描述為Struct pixel{int PosX ;int PosY ;int Bpp ; }o
4.如權(quán)利要求I所述的RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法,其特征在于步驟(三)中,判斷內(nèi)存數(shù)據(jù)是否有效的方法是判斷點陣數(shù)據(jù)是否與內(nèi)存數(shù)據(jù)對應(yīng)區(qū)域的數(shù)據(jù)重復(fù),將內(nèi)存數(shù)據(jù)同對應(yīng)的內(nèi)存映射數(shù)據(jù)的每一個點陣逐一對比,一旦對比結(jié)果發(fā)現(xiàn)差異,則認為數(shù)據(jù)有效;如果所有點陣數(shù)據(jù)都無變化,則認為數(shù)據(jù)無效。
5.如權(quán)利要求I所述的RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法,其特征在于所述步驟(四)中將內(nèi)存數(shù)據(jù)更新到對應(yīng)的內(nèi)存區(qū)域為 把內(nèi)存數(shù)據(jù)分割為大于10000個小矩形區(qū)域,把這大于10000個小矩形區(qū)域中涉及到數(shù)據(jù)更新的小矩形都枚舉出來,如果存在兩個相鄰的小矩形區(qū)域,則合并相鄰區(qū)域。
6.用于權(quán)利要求I所述方法的RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放系統(tǒng),其特征在于包括 RDP協(xié)議解析模塊,用于分離RDP協(xié)議里的圖像數(shù)據(jù)和控制數(shù)據(jù),得到圖像數(shù)據(jù); 圖像數(shù)據(jù)數(shù)據(jù)轉(zhuǎn)化為內(nèi)存數(shù)據(jù)模塊,用于將圖像數(shù)據(jù)中的點陣圖像數(shù)據(jù)的每一個點陣轉(zhuǎn)換為一個內(nèi)存數(shù)據(jù)結(jié)構(gòu); 內(nèi)存數(shù)據(jù)有效性判斷模塊,用于判斷內(nèi)存數(shù)據(jù)有效性; 內(nèi)存數(shù)據(jù)更新模塊,用于將內(nèi)存數(shù)據(jù)更新到內(nèi)存數(shù)據(jù)對應(yīng)的內(nèi)存位置; 圖像數(shù)據(jù)轉(zhuǎn)換位圖模塊,用于將內(nèi)存數(shù)據(jù)映射矩形區(qū)域的圖像數(shù)據(jù)轉(zhuǎn)換為位圖;位圖進行等比例縮放模塊,用于將位圖進行等比例縮放并計算等比例的回顯坐標;回顯位圖數(shù)據(jù)模塊,用于通過WIN-GDI回顯位圖數(shù)據(jù),并將各個小的位圖根據(jù)坐標繪制到屏幕上。全文摘要
本發(fā)明涉及一種GDI回顯及縮放方法及裝置,是RDP協(xié)議基于動態(tài)矩形區(qū)域分塊的回顯縮放方法及系統(tǒng),將圖像數(shù)據(jù)中的點陣圖像數(shù)據(jù)的每一個點陣轉(zhuǎn)換為一個內(nèi)存數(shù)據(jù)結(jié)構(gòu);判斷內(nèi)存數(shù)據(jù)有效性;將內(nèi)存數(shù)據(jù)更新到內(nèi)存數(shù)據(jù)對應(yīng)的內(nèi)存位置;將內(nèi)存數(shù)據(jù)映射矩形區(qū)域的圖像數(shù)據(jù)轉(zhuǎn)換為位圖;將位圖進行等比例縮放并計算等比例的回顯坐標;WIN-GDI回顯位圖數(shù)據(jù),并將各個小的位圖根據(jù)坐標繪制到屏幕上。本發(fā)明解決了RDP源數(shù)據(jù)回顯及任意比率縮、放的實際需求,省去了視屏轉(zhuǎn)換的過程,因此系統(tǒng)部署簡單,同時在畫面清晰度、系統(tǒng)資源消耗方面具有較大優(yōu)勢。
文檔編號H04N5/93GK102752570SQ20121026718
公開日2012年10月24日 申請日期2012年7月30日 優(yōu)先權(quán)日2012年7月30日
發(fā)明者花衛(wèi)國 申請人:德訊科技股份有限公司