專利名稱:高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法
傳輸和顯示的存取方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種圖像數(shù)據(jù)存取方法,尤其是指一種高命中率的高分地圖 圖像數(shù)據(jù)分塊傳輸和顯示的存取方法。
背景技術(shù):
隨著拼墻應(yīng)用領(lǐng)域的擴(kuò)大,如何在拼墻中更好地顯示圖像成了 一個不可 回避的問題,在拼墻領(lǐng)域的傳統(tǒng)方法中,顯示端若要顯示圖像,常常只向圖 像服務(wù)器申請那些當(dāng)前需要顯示的圖像塊數(shù)據(jù),并不緩存或預(yù)申請即將用到 的圖像塊數(shù)據(jù),這樣,在整個系統(tǒng)中,顯示端的圖像塊數(shù)據(jù)命中率很低,其 畫面每變動一次(如圖像的移動、縮放等),顯示端就要向圖像服務(wù)器申請 一次數(shù)據(jù),沒能有效利用之前已經(jīng)申請到的數(shù)據(jù),圖像數(shù)據(jù)利用率低下,并 且由于高分圖像數(shù)據(jù)量通常很大,這勢必造成網(wǎng)絡(luò)的擁塞或操作的等待。
因此,提供一種圖像數(shù)據(jù)利用率高、圖像移動縮放操作流暢的,高命中 率的高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法實(shí)為必要。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種圖像數(shù)據(jù)利用率高、圖像移動縮放操作流暢 的,高命中率的高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法。
為實(shí)現(xiàn)本發(fā)明目的,提供以下技術(shù)方案
提供一種高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,該方法主要是通過在顯示端預(yù)申請和緩存"即將用到的圖像塊,,數(shù)據(jù)和保存"已經(jīng)申請到的圖 像塊數(shù)據(jù)"的方法來提高顯示端圖像塊數(shù)據(jù)命中率。"即將用到的圖像塊,, 包括當(dāng)前顯示區(qū)域(當(dāng)前比例尺)周圍的圖像塊以及之前的操作未刪除的圖 像塊、前一個比例尺(或縮略圖)的當(dāng)前顯示區(qū)域圖像塊和下一比例尺(或 縮略圖)的當(dāng)前顯示區(qū)域圖像塊。并且,本發(fā)明通過采用"刪除最不活躍圖 像塊"、"預(yù)申請當(dāng)前比例周圍圖像塊"、"預(yù)申請相鄰比例尺當(dāng)前區(qū)域的圖像 塊"等方法來維護(hù)和更新顯示端中的圖像塊數(shù)據(jù)。
該高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法采用設(shè)備有控制服務(wù)器、圖
像存儲服務(wù)器和存儲服務(wù)器,其包括如下步驟
(1) 控制服務(wù)器要求顯示端顯示圖像;
(2) 顯示端根據(jù)拼墻顯示的矩陣規(guī)模和當(dāng)前顯示端在矩陣中的位置、 縮放比例及圖像和圖像塊的寬高,計算其需要請求的圖像塊數(shù)據(jù);
(3) 顯示端根據(jù)步驟(2)的計算結(jié)果,向圖像存儲服務(wù)器請求當(dāng)前圖 像塊數(shù)據(jù)以及周圍圖像塊數(shù)據(jù);
(4) 顯示端接收圖像塊數(shù)據(jù),并將這些圖像塊數(shù)據(jù)插入到圖像塊鏈表中。
該步驟(2)所述的圖像塊包括當(dāng)前顯示區(qū)域及其周圍的圖像塊,以及 相鄰比例尺中當(dāng)前顯示區(qū)域及其周圍的圖像塊。
該步驟(3)中優(yōu)先請求當(dāng)前比例尺中當(dāng)前顯示區(qū)域的圖像塊數(shù)據(jù),其 次是當(dāng)前中當(dāng)前顯示區(qū)域周圍的圖像塊數(shù)據(jù),接著是相鄰比例尺中當(dāng)前顯示 區(qū)域的圖像塊數(shù)據(jù),最后是相鄰比例尺中當(dāng)前顯示區(qū)域周圍的圖像塊數(shù)據(jù)。
系統(tǒng)預(yù)設(shè)資源占用率超出警戒值,當(dāng)資源占用率超出警戒值時,通過刪 除最不活躍圖像塊數(shù)據(jù)來維護(hù)系統(tǒng)中緩存的圖像塊。獲取到的新的圖像塊數(shù) 據(jù)被插入當(dāng)前顯示圖像塊數(shù)據(jù)鏈表的尾部。刪除最不活躍圖像塊數(shù)據(jù)則從圖 像塊數(shù)據(jù)鏈表的尾部入手。對比現(xiàn)有技術(shù),本發(fā)明具有以下優(yōu)點(diǎn)
本發(fā)明提供了一種高分圖像數(shù)據(jù)分塊傳輸和顯示的高命中率存取方法, 使系統(tǒng)中圖像數(shù)據(jù)利用率更高,圖像移動縮放操作更流暢。
圖l是本發(fā)明中對圖像分塊處理的分塊圖像數(shù)據(jù)示意圖2是本發(fā)明中預(yù)申請顯示區(qū)域周圍的圖像塊數(shù)據(jù)的示意圖3是本發(fā)明中預(yù)申請當(dāng)前顯示區(qū)域及其周圍的相鄰比例尺的圖像塊數(shù) 據(jù)的示意圖4是本發(fā)明中當(dāng)前比例尺圖像塊鏈表的示意圖5是本發(fā)明中下一比例尺圖像塊鏈表的示意圖。
具體實(shí)施方式
本發(fā)明通過在顯示端緩存即將用到的圖像塊,來提高顯示端的圖像塊命 中率。
我們對地像常做的操作主要有縮放、比例尺切換、移動等。因 此,我們采用緩存當(dāng)前圖像區(qū)域的周圍一圈(或多圏)的圖像塊數(shù)據(jù),便可 提高"縮放"和"移動"等操作的圖像塊數(shù)據(jù)命中率;采用緩存相鄰比例尺 (前一個比例尺和下一個比例尺)的相應(yīng)圖像塊(和當(dāng)前顯示區(qū)域相同)的 方法,便可提高"比例尺切換"等操作的圖像塊數(shù)據(jù)命中率。具體實(shí)施方法 如下
1、分塊圖像數(shù)據(jù)
請參閱圖l, 一幅完整的圖像被平分為36個小的數(shù)據(jù)塊,在圖片數(shù)據(jù)傳輸?shù)臅r候,圖像數(shù)據(jù)是以"塊"為單位進(jìn)行傳輸?shù)?;在圖片顯示的時候,也 是以"塊"為單位進(jìn)行顯示的。
例如, 一個顯示端當(dāng)前需要顯示塊號為15、 16、 21、 22的4個圖像塊, 則該顯示端就要向圖像服務(wù)器申請這4個塊的圖像數(shù)據(jù),然后再將這4個塊逐 個顯示出來(或者先解壓到內(nèi)存,再將這4個塊一起顯示出來)。
2、 預(yù)申請當(dāng)前顯示區(qū)域周圍的圖像塊數(shù)據(jù)
請參閱圖2, 假設(shè)顯示端當(dāng)前要顯示圖像塊15、 16、 21、 22等4個圖像 塊,則其就可以將這4個圖像塊周圍的一圈或多圏圖像塊也向圖像服務(wù)器預(yù) 先申請并保存下來。
本實(shí)施例中,我們預(yù)先申請了當(dāng)前顯示區(qū)域(圖像塊15、 16、 21、 22) 周圍的一圏圖像塊數(shù)據(jù)(8、 9、 10、 11、 14、 17、 20、 23、 26、 27、 28、 29)。 在實(shí)際中,我們需要根據(jù)圖像塊的規(guī)模(寬和高)和用戶習(xí)慣移動的幅度(比 如用戶經(jīng)常習(xí)慣每次移動2個圖像塊的寬度),根據(jù)需要申請周圍一圏或多圈 的圖像塊數(shù)據(jù)。這樣做的目的主要就是在響應(yīng)用戶的"移動"和"縮放"請 求時,減少圖像塊數(shù)據(jù)的網(wǎng)絡(luò)傳輸時間,加速圖像的顯示。
3、 預(yù)申請當(dāng)前顯示區(qū)域及其周圍的相鄰比例尺圖像塊數(shù)據(jù)
圖3是圖1的相鄰比例尺的圖像,圖中的陰影區(qū)域?qū)?yīng)于圖2中的區(qū)域。
在新比例尺中計算需要申請的圖像塊有很多策略,本文中采用的方法是 根據(jù)當(dāng)前顯示區(qū)域及其周圍區(qū)域(如圖2所示)的寬高和在當(dāng)前整幅圖像(如 圖l所示)中的位置,計算其在新比例尺圖像中所對應(yīng)的圖像塊。圖2中所 申請區(qū)域的起點(diǎn)(左上角)位置是大概整幅圖像(如圖l所示)的1 / 6處, 寬高大概是整幅圖像的2 / 3,那么其在新比例圖像(如圖3所示)中的起 點(diǎn)大概就是l / 6處(從圖像塊l 0開始),所申請的區(qū)域大概就是整幅圖 像的2 / 3 (寬高分別為5個圖像塊 2*8/3 = 5),由此,最終的 與申請區(qū)域也就是圖3中的陰影區(qū)域。
由于一幅地像的相鄰比例尺有2個(前一個和下一個),那么就要分別申請"前一個"和"后一個"比例尺圖像中對應(yīng)的圖像塊。
4、 數(shù)據(jù)組織結(jié)構(gòu)
用戶可以采用多種多樣的形式用來組織相關(guān)的圖像塊數(shù)據(jù),本實(shí)施例是 使用"雙向鏈表"的方式來組織圖像塊數(shù)據(jù)。
每一幅圖像的顯示,原則上需要維護(hù)3個鏈表當(dāng)前正在使用的比例尺 的圖像塊數(shù)據(jù)鏈表(CurLinker)、前一個比例尺的圖像塊數(shù)據(jù)鏈表(PreLinker) 和下 一個比例尺的圖像塊數(shù)據(jù)鏈表(NextLinker)。
圖2對應(yīng)當(dāng)前圖像塊數(shù)據(jù)鏈表(CurLinker),圖3對應(yīng)下一比例尺圖像塊 數(shù)據(jù)鏈表(NextLinker ),前一個比例尺的圖像塊數(shù)據(jù)鏈表(PreLinker)格式 等同于下一比例尺圖像塊數(shù)據(jù)鏈表(NextLinker)。數(shù)據(jù)組織圖如圖4所示(為 了圖的簡潔,圖中鏈表節(jié)點(diǎn)間采用了單向箭頭,實(shí)際鏈表為雙向鏈表)。
在這樣的數(shù)據(jù)組織方式中,我們將當(dāng)前正在使用的圖像塊數(shù)據(jù)放在鏈表 的開始處,把預(yù)申請的圖像塊數(shù)據(jù)放在鏈表的尾部,以便將"當(dāng)前正在顯示 的圖像塊,,和"預(yù)申請的圖像塊,,區(qū)分開來,并且提高鏈表查找的效率。
為了敘述的簡便,我們將"當(dāng)前正在顯示的圖像塊"叫做"當(dāng)前子鏈表", 把"預(yù)申請的圖像塊"叫做"預(yù)申請子鏈表"。例如在圖5中,圖像塊19、 20、 27、 28構(gòu)成了 "當(dāng)前子鏈表",上下的圖像塊構(gòu)成了 "預(yù)申請子鏈表"。
我們約定,(l)將新的要顯示的圖像塊數(shù)據(jù)插入在"當(dāng)前子鏈表"頭部, 如果該圖像塊存在于"預(yù)申請子鏈表"中,就將其從"預(yù)申請子鏈表"中刪 除,并插入到"當(dāng)前子鏈表"頭部;(2)將新預(yù)申請到的圖像塊數(shù)據(jù)或剛從 "正在顯示"變?yōu)?不再顯示"的圖像塊插入在"預(yù)申請子鏈表"的頭部。 這樣,在整個鏈表中,頭部的節(jié)點(diǎn)都是用于當(dāng)前顯示的圖像塊,越靠近鏈表 尾的圖像塊,就越不活躍。
5、 圖像塊數(shù)據(jù)的維護(hù)
A、"最不活躍刪除"的方法由于內(nèi)存資源有限,我們不可能無限制地在顯示端中保存所有申請到的 圖像塊數(shù)據(jù),我們需要采取一定的策略,釋放那些在短期時間內(nèi)最不可能再 被使用的圖像塊數(shù)據(jù)資源。本文中的策略為"最不活躍刪除',的方法。
"最不活躍刪除,,的方法當(dāng)系統(tǒng)的資源消耗達(dá)到一定比例的時候(例
如內(nèi)存資源使用率已經(jīng)超過了85%),就將那些"最不活躍"的圖像塊從內(nèi)存 中刪除,如果顯示端有本地固定存儲設(shè)備,就先將圖像塊保存到固定儲設(shè)備 上面去,然后再A^內(nèi)存中刪除。本文中的示例估文法如下
(a) 、當(dāng)系統(tǒng)資源占用率超出某個警戒值時,優(yōu)先刪除當(dāng)前顯示圖像的 "非臨近比例尺,,的圖像塊鏈表。
由于系統(tǒng)中要維護(hù)當(dāng)前正在顯示的圖像的3個比例尺的圖像塊數(shù)據(jù)(當(dāng) 前比例尺的圖像塊數(shù)據(jù)和前后比例尺的圖像塊數(shù)據(jù)),因此,在用戶切換比 例尺的時候,系統(tǒng)中會存在"非臨近比例尺"的圖像塊數(shù)據(jù)。這些"非臨近 比例尺"的圖像塊數(shù)據(jù)的存在,雖然會加速比例尺切換的響應(yīng)速度,但也耗 費(fèi)了很大的內(nèi)存等資源,因此,在系統(tǒng)資源占用率超出警戒值(用戶可根據(jù) 實(shí)際情況自定義)時,我們有必要將其從內(nèi)存中刪除。
例如,某幅圖像有A、 B、 C、 D、 E五個比例尺,當(dāng)前比例尺為C,那么 系統(tǒng)中緩存就保存著B、 C、 D比例尺的圖像塊數(shù)據(jù);隨后,用戶將比例尺切 換到了B,那么我們?yōu)榱司彺?前后比例尺,,的圖像塊數(shù)據(jù),就會緩存A、 B、 C比例尺的圖像塊數(shù)據(jù),那么此時,系統(tǒng)中就存在A、 B、 C、 D四個比例尺 的圖像塊數(shù)據(jù),而當(dāng)前正在顯示的比例尺是B,因此,此時若系統(tǒng)資源占用 率超出了警戒值,我們就可以將比例尺D (非臨近比例尺)的圖像塊數(shù)據(jù)從 內(nèi)存中刪除(如果顯示端有本地固定存儲設(shè)備,就先將圖像塊數(shù)據(jù)保存到固 定存儲設(shè)備上面去,然后再從內(nèi)存中刪除,以下從內(nèi)存中刪除圖像塊的操作 都包含這個動作)。
(b) 、 如果執(zhí)行了步驟(a)后,系統(tǒng)資源占用率仍高于警戒值,就刪 除臨近比例尺圖像塊的"非當(dāng)前顯示區(qū)域的圖像塊數(shù)據(jù)"。
例如在圖3中,鄰近比例尺圖1象塊19、 20、 27、 28對應(yīng)著當(dāng)前顯示區(qū)域(圖2中的圖像塊15、 16、 21、 22),那么圖3中的圖像塊19、 20、 27、 28就 是"當(dāng)前顯示區(qū)域的圖像塊數(shù)據(jù)";其周圍的圖像塊IO、 ll等就是"非當(dāng)前 顯示區(qū)域的圖像塊數(shù)據(jù)"。當(dāng)系統(tǒng)資源占用率高于警戒值時,我們就可以將 臨近比例尺(共2個,前一個比例和后一個比例尺)的"非當(dāng)前顯示區(qū)域的 圖像塊數(shù)據(jù)"刪除。
(c) 、如果執(zhí)行了步驟(b)后,系統(tǒng)資源占用率仍高于警戒值,我們 就要從當(dāng)前顯示鏈表(CurLinker)中從隊尾以"若干個(例如8個)圖像塊 數(shù)據(jù)"為單位刪除"非當(dāng)前顯示圖像塊",直至所有的"非當(dāng)前顯示圖像塊" 全部被刪除,或者系統(tǒng)資源占用率已經(jīng)低于于警戒值。
例如在圖2中,圖1象塊15、 16、 21、 22是"當(dāng)前顯示圖像塊",其周圍的 圖像塊8、 9、 IO等是"非當(dāng)前顯示圖像塊"。當(dāng)系統(tǒng)資源占用率高于警戒值 值時,我們就以"8個圖像塊數(shù)據(jù)"為單位(用戶可根據(jù)實(shí)際情況進(jìn)行調(diào)整) 刪除"非當(dāng)前顯示圖像塊",直至所有的"非當(dāng)前顯示圖像塊"全部被刪除, 或者系統(tǒng)資源、占用率已經(jīng)低于于警戒值。
(d) 、如果執(zhí)行了步驟(c)后,系統(tǒng)資源占用率仍高于警戒值,我們 就從隊尾以"若干個(例如8個)圖像塊數(shù)據(jù)"為單位將臨近比例尺的"當(dāng) 前顯示區(qū)域的圖像塊數(shù)據(jù)"從內(nèi)存中刪除。至此,鄰近比例尺的圖像塊數(shù)據(jù) 已經(jīng)全部被刪除,只剩下當(dāng)前顯示鏈表(CurLinker )中的"當(dāng)前顯示圖像塊,,, 無法再繼續(xù)刪除了。
(e) 、如果執(zhí)行了步驟(d)后,系統(tǒng)資源占用率仍高于警戒值,那么 就進(jìn)行出錯處理。
B、圖像塊數(shù)據(jù)的更新
在顯示端中,圖像塊數(shù)據(jù)既存在于內(nèi)存中,也存在于本地固定存儲設(shè)備 (如果有的話)上。當(dāng)顯示端需要使用圖像塊數(shù)據(jù)的時候,首先查詢內(nèi)存的 圖像塊鏈表中是否存在所需的圖像塊;然后再查詢本地固定存儲設(shè)備上面是 否存在所需的圖像塊數(shù)據(jù)。因此,當(dāng)圖像塊數(shù)據(jù)需要更新的時候,顯示端就 要查詢內(nèi)存和本地固定存儲設(shè)備(例如硬盤)中是否存在需要更新的圖像塊,如果有,則將其更新。
以上所述僅為本發(fā)明的較佳實(shí)施例,本發(fā)明的保護(hù)范圍并不局限于此, 任何基于本發(fā)明技術(shù)方案上的等效變換均屬于本發(fā)明保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,其包括有控制服務(wù)器、圖像存儲服務(wù)器和顯示端,其特征在于,其包括如下步驟(1)控制服務(wù)器要求顯示端顯示圖像;(2)顯示端根據(jù)拼墻顯示的矩陣規(guī)模和當(dāng)前顯示端在矩陣中的位置、縮放比例及圖像和圖像塊的寬高,計算其需要請求的圖像塊數(shù)據(jù);(3)顯示端根據(jù)步驟(2)的計算結(jié)果,向圖像存儲服務(wù)器請求當(dāng)前圖像塊數(shù)據(jù)以及周圍圖像塊數(shù)據(jù);(4)顯示端接收圖像塊數(shù)據(jù),并將這些圖像塊數(shù)據(jù)存儲于內(nèi)存或本地固定存儲設(shè)備中。
2、 如權(quán)利要求l所述的高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,其特 征在于,所述的顯示端接收圖像塊數(shù)據(jù)以圖像塊鏈表的方式進(jìn)行存儲。
3、 如權(quán)利要求2所述的高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,其特 征在于,其還包括將圖像分塊處理的步驟,圖像數(shù)據(jù)以"塊"為單位進(jìn)行傳 輸和顯示。
4、 如權(quán)利要求3所述的高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,其特 征在于,該步驟(2)所述的圖像塊包括當(dāng)前顯示區(qū)域及其周圍的圖像塊, 以及相鄰比例尺中當(dāng)前顯示區(qū)域及其周圍的圖像塊。
5、 如權(quán)利要求4所述的高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,其特 征在于,該步驟(3)中優(yōu)先請求當(dāng)前比例尺中當(dāng)前顯示區(qū)域的圖像塊數(shù)據(jù), 其次是當(dāng)前中當(dāng)前顯示區(qū)域周圍的圖像塊數(shù)據(jù),接著是相鄰比例尺中當(dāng)前顯 示區(qū)域的圖像塊數(shù)據(jù),最后是相鄰比例尺中當(dāng)前顯示區(qū)域周圍的圖像塊數(shù) 據(jù)。
6、 如權(quán)利要求5所述的高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,其特征在于,獲取到的新的圖像塊數(shù)據(jù)被插入當(dāng)前顯示圖像塊數(shù)據(jù)鏈表的尾部。
7、 如權(quán)利要求6所述的高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,其特 征在于,通過刪除最不活躍圖像塊數(shù)據(jù)來維護(hù)系統(tǒng)中緩存的圖像塊。
8、 如權(quán)利要求7所述的高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,其特 征在于,從圖像塊數(shù)據(jù)鏈表的尾部刪除最不活躍圖像塊數(shù)據(jù)。
9、 如權(quán)利要求8所述的高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,其特 征在于,系統(tǒng)資源占用率超出預(yù)設(shè)警戒值,當(dāng)資源占用率超出警戒值時,優(yōu) 先刪除當(dāng)前顯示圖像的非臨近比例尺的圖像塊鏈表;再刪除臨近比例尺圖像 塊的非當(dāng)前顯示區(qū)域的圖像塊數(shù)據(jù);然后以若干個圖像塊數(shù)據(jù)為單位刪除非 當(dāng)前顯示圖像塊;最后是以若干個圖像塊數(shù)據(jù)為單位將臨近比例尺的當(dāng)前顯 示區(qū)域的圖像塊數(shù)據(jù)從內(nèi)存中刪除。
10、 如權(quán)利要求9所述的高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,其 特征在于,若執(zhí)行刪除后只剩下當(dāng)前顯示鏈表中的當(dāng)前顯示圖像塊,系統(tǒng)資 源占用率仍高于警戒值,就進(jìn)行出錯處理。
全文摘要
提供一種高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法,該方法主要是通過在顯示端預(yù)申請和緩存即將用到的圖像塊數(shù)據(jù)和保存已經(jīng)申請到的圖像塊數(shù)據(jù)的方法來提高顯示端圖像塊數(shù)據(jù)命中率。并且,本發(fā)明通過采用刪除最不活躍圖像塊、預(yù)申請當(dāng)前比例周圍圖像塊、預(yù)申請相鄰比例尺當(dāng)前區(qū)域的圖像塊等方法來維護(hù)和更新顯示端中的圖像塊數(shù)據(jù)。該高分圖像數(shù)據(jù)分塊傳輸和顯示的存取方法提高了圖像數(shù)據(jù)利用率、使得圖像移動縮放操作流暢快速。
文檔編號H04N7/26GK101534435SQ20081002995
公開日2009年9月16日 申請日期2008年8月4日 優(yōu)先權(quán)日2008年8月4日
發(fā)明者劉亞平, 荊建營, 蔡才冠, 谷新征 申請人:廣東威創(chuàng)視訊科技股份有限公司