[主要编辑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