本發(fā)明屬于影像處理,具體涉及一種tiled?image影像文件壓縮方法。
背景技術:
1、tiled?image影像文件是把圖像數據按照tiff(tag?image?file?format,標簽圖像)格式分割成瓦片塊存儲的文件,每一塊瓦片有特定的tile編號。在tiled?image圖像數據處理中,首先讀取圖像寬度imagewidth、圖像長度imagelength參數,將圖像按照瓦片寬度為tilewidth和瓦片長度為tilelength分割成若干個瓦片,共有tilesperimage個瓦片,在分割成若干個瓦片時,若存在需分割部分不足一個瓦片寬度為tilewidth和瓦片長度為tilelength的瓦片時,將圖片使用黑色(黑色的rgb值為r=0、g=0、b=0)填充擴展圖像邊界至能完全被瓦片寬度為tilewidth和瓦片長度為tilelength的瓦片分割,最終瓦片總個數tilesperimage=tilesacross*tilesdown。
2、如圖1所示為分割成100個瓦片,圖像中每個瓦片均對應一個瓦片編號,且100個瓦片的編號均不相同,具體地瓦片及其對應的編號如圖1所示,以使各個瓦片對應唯一的編號。對應的瓦片的偏移量、瓦片的字節(jié)數、瓦片數據都是按這種方式排列,并將瓦片采用圖2所示的tiff格式存儲。
3、tiff(tag?image?file?format)圖像文件是圖形圖像處理中常用的格式之一,其圖像格式復雜,由于它獨立于操作系統(tǒng),而且圖像信息的存放形式靈活、可以支持很多色彩系統(tǒng),有包含坐標系、比例尺、經緯度、長度及角度單位地理編碼信息等優(yōu)點,在地理信息系統(tǒng)、航拍、攝影測量與遙感等領域得到了廣泛應用。
4、tiff圖像文件格式是一種以.tif為擴展名的3級結構體系,包括文件頭信息區(qū)、標識信息區(qū)和圖像數據區(qū)(圖2所示),格式說明如下:
5、第一個結構體系為文件頭信息區(qū),它的英文名稱為image?file?header(簡稱ifh),ifh由16個字節(jié)構成,它在tiff圖像文件結構體系的最高層,位于文件的開始部分,在tiff文件中是唯一的且有固定的位置,主要用于說明tiff文件所需的必要信息,如圖2中文件頭信息的第8-15格是用于記錄文件目錄的位置的偏移量。
6、第二個結構體系為標識信息區(qū),它由圖像文件目錄和標記組成。圖像文件目錄的英文名稱為image?file?directory(簡稱ifd),它是用于區(qū)分一個或多個可變長度的名為標記(名為標記的英文名稱為tag)數據塊的表。ifd存放了一系列的指針(指針也叫索引),這些指針用于標記tag有關的數據在tiff文件中的開始位置,并給出每個字段的數據類型及長度,其格式十分靈活。圖2中標識信息區(qū)從第9個格開始記錄tag的信息,文件目錄占用(20n+16)個字符,其中單個tag數據說明信息占用20個格子,tag1的第12至19字節(jié)用于說明指向存儲空間的指針,指向圖像數據區(qū)中的tag1的存儲位置。
7、第三個結構體系為圖像數據,它是根據ifd所指向的地址來存儲相關的圖像信息。圖2中所示圖像數據每個tag都有一個20字節(jié)的說明文件,圖像數據都是以升序排列的。
8、tiff格式影像文件在地理信息系統(tǒng)、航拍、攝影測量與遙感等領域的實際應用中,首先按照用戶要求劃定一個目標多邊形條帶,再輸出一個面積大于目標多邊形條帶的規(guī)則矩形影像,其目標多邊形條帶外部邊界填充黑色,這樣填充導致圖像文件中存在很多冗余空間的問題,例如圖1中左上角編號為01的黑色塊與右上角的編號10的黑色塊信息相同,因此采用現有技術tiff格式存儲時有一個存儲空間冗余的缺陷。
技術實現思路
1、本發(fā)明的目的在于提供一種tiled?image影像文件壓縮方法,用以解決現有的基于tiff格式進行影像存儲時,因存在存儲空間冗余的情況導致存儲空間大的問題。
2、為解決上述技術問題,本發(fā)明提供了一種tiled?image影像文件壓縮方法,包括如下步驟:
3、1)將原始tiled?image圖像按照設定劃分規(guī)則劃分為多個影像塊;
4、2)將圖像數據信息相同的影像塊中,僅選取其中一個影像塊的圖像數據存儲于tiff圖像文件中的圖像數據區(qū),并獲取該圖像數據的存儲地址,作為圖像數據信息相同的影像塊對應的存儲地址;將圖像數據信息唯一的影像塊的圖像數據也存儲于tiff圖像文件中的圖像數據區(qū),并獲取對應的存儲地址作為影像塊對應的存儲地址;
5、3)構建tiff圖像文件的文件頭信息以及標識信息區(qū),所述標識信息區(qū)中按照設定順序建立劃分后的各個影像塊的數據說明信息;所述數據說明信息中的地址為影像塊對應的存儲地址。
6、其有益效果為:本發(fā)明的方法通過將相同的影像塊僅存儲一次,使得tiff圖像文件中的圖像數據區(qū)不存在存儲空間冗余的情況,進而縮小了tiff圖像文件的存儲空間,實現了對tiled?image影像文件的壓縮,并且本發(fā)明的方法僅是將相同的影像塊僅存儲一次的方式縮小存儲空間,而不改變原始影像的數據失真度,即本發(fā)明的壓縮方法在不改變數據失真度的情況下縮小了tiff圖像文件的存儲空間。
7、進一步地,步驟2)中,通過將影像塊的圖像數據信息依次存儲于tiff圖像文件中的圖像數據區(qū),并在存儲前判斷已經存儲的圖像數據信息中是否包括該待存儲的影像塊的圖像數據信息,若有則不進行存儲的方式僅選取其中一個影像塊的圖像數據存儲于tiff圖像文件中的圖像數據區(qū)。
8、本發(fā)明的方法通過在存儲前與已經存儲的信息進行判斷,進而能夠準確確定該待存儲的信息是否已經進行存儲,若存儲則無需再次存儲,若在已經存儲的信息內沒有與該待存儲的信息相同的信息,則將此信息進行存儲,避免了存儲信息的冗余,進而縮小了存儲空間。
9、進一步地,所述圖像數據信息相同的影像塊相同的影像為黑色的影像塊。
10、因黑色影像塊中不存儲信息,因此本發(fā)明中通過僅將黑色的影像塊進行合并,避免了重復對黑色影像塊進行存儲導致存儲空間冗余的情況,并且保證了原有影像的其他影像塊的正常存儲,進而保證了其他影像塊的數據信息不丟失。
11、進一步地,步驟2)中,通過將一個黑色的影像塊的圖像數據信息先存儲于tiff圖像文件中的圖像數據區(qū),再將其他影像塊的圖像數據信息依次存儲于tiff圖像文件中的圖像數據區(qū)。
12、因本發(fā)明的方法僅將黑色的影像塊進行合并,因此先將黑的影像塊進行存儲后,能夠在后續(xù)存儲其他影像塊時僅與該黑色影像塊進行比較,進而簡化了比較過程,提高了壓縮效率。
13、進一步地,在存儲圖像數據信息唯一的影像塊的圖像數據時,對該唯一的影像塊按照設定壓縮規(guī)則壓縮后再進行存儲。
14、通過在存儲數據信息前對影像塊進行壓縮,能夠使得存儲空間進一步減小,進一步地縮小了tiff圖像文件的存儲空間。
15、進一步地,步驟1)中,所述設定劃分規(guī)則為將圖像劃分為設定尺寸的規(guī)則矩形影像塊。
16、因原始tiled?image圖像為規(guī)則的矩形,因此通過運用設定尺寸的規(guī)則矩形影像塊對原始tiled?image圖像進行劃分,保證了原始tiled?image圖像與分割后的影像塊在形狀上相匹配,并且基于本發(fā)明的方法,能夠實現運用設定尺寸的規(guī)則矩形影像塊將原始tiled?image圖像進行完全劃分。
17、進一步地,步驟1)中,在按照設定劃分規(guī)則劃分后將影像塊進行編號,且影像塊與該影像塊的編號一一對應,步驟3)中所述設定順序為按照編號由小到大的順序。
18、通過將劃分后的影像塊先進行編號,且一個編號僅對應一個影像塊,使得在后續(xù)步驟中能夠基于編號的規(guī)則對影像塊依次進行處理,能夠避免對需處理的影像塊遺漏的問題。
19、進一步地,步驟1)中,若原始tiled?image圖像的長不能被設定尺寸的規(guī)則矩形影像塊的長整除,或原始tiled?image圖像的寬不能被設定尺寸的規(guī)則矩形影像塊的寬整除,則先將原始tiled?image圖像的長補充至被設定尺寸的規(guī)則矩形影像塊的長整除,且寬補充被設定尺寸的規(guī)則矩形影像塊的寬整除后,再按照設定劃分規(guī)則劃分為多個影像塊,補充的部分采用黑色填充。
20、進一步地,步驟1)中,按照設定劃分規(guī)則劃分為多個影像塊的數量tilesperimage為:
21、tilesperimage=tilesacross×tilesdown,其中tilesacross為寬度方向瓦片數,lengthtiles為長度方向瓦片數,且tilesacross=(imagewidth+tilewidth-1)/tilewidth,tilesdown=(imagelength+tilelength-1)/tilelength,imagewidth為原始tiled?image圖像寬度,imagelength為原始tiled?image圖像長度,tilewidth為設定尺寸的規(guī)則矩形影像塊的寬,tilelength為設定尺寸的規(guī)則矩形影像塊的長。
22、本發(fā)明的方法在計算寬度方向瓦片數時,先將讀取的圖像寬度增加(瓦片寬度-1)的數值,從而通過上述寬度方向瓦片數的定義公式計算的結果取整(即若實際計算結果不為整數,則對實際計算結果向下取整得到最終計算結果,例如若實際計算結果為5.6則最終計算結果為5)的方式,能夠準確計算出寬度方向影像塊數,同樣的通過本發(fā)明的上述公式能夠準確且簡便的計算出長度方向影像塊數,進而確定出劃分的影像塊的總數。
23、進一步地,步驟2)中,在將影像塊的圖像數據存儲于tiff圖像文件前,對影像塊進行壓縮后再進行存儲。