[主要編輯10年1月14日]
我還是有點貴的瓷磚提起,迷茫時,TIFF是不是平鋪。
我確實使用平鋪/金字塔TIFF圖像。我創建了那些VIPS
vips im_vips2tiff source_image output_image.tif:none,tile:256x256,pyramid
我認爲你可以這樣做:
vips im_vips2tiff source_image output_image.tif:none,tile:256x256,flat
你可能想用瓷磚大小的實驗。然後你可以使用TIFFReadEncodedTile進行閱讀。
如果您需要放大/縮小,使用金字塔tiff的多分辨率存儲速度要快得多。您可能還想用它來製作一幅粗略的圖像,接下來是詳細的圖片。
切換到(大小適中的)平鋪存儲(這會爲隨機訪問帶來巨大的性能改進!),您的瓶頸將是磁盤io。如果按順序讀取,文件讀取速度會更快。這裏的映射可能是解決方案。
一些有用的鏈接:
VIPS IIPImage LibTiff.NET stackoverflow VIPS是一種圖像處理庫,可以做更多的不僅僅是讀/寫。它有自己的,非常有效的內部格式。它有一個很好的算法文檔。首先,它從文件系統中分離處理,從而允許緩存切片。
IIPImage是一個多變焦網絡服務器/瀏覽器庫。我發現該文檔是多分辨率成像信息的非常好的來源(如谷歌地圖)
此頁面上的其他解決方案使用mmap,僅對'小'文件有效。我經常碰到32位的邊界。通常情況下,分配1 GB的內存將在32位操作系統(安裝4 GB內存)上失敗,這是因爲即使在運行一個或兩個應用程序後,虛擬內存也會分裂。仍然有足夠的內存來緩存部分或整個圖像。更多的內存=更多的性能。
我們可以假設它們是未壓縮的嗎? – 2009-10-30 17:30:40
而且數據是在掃描線中組織的? – 2009-10-30 17:44:03
是,數據是未壓縮和組織最traditinal方式: 一號線2號線 3號線 ... – Juan 2009-11-02 12:47:32