The key idea here is the partial image descriptor

VIPS(VASARI Image Processing System) 是近几年逐渐兴起的针对大图像数据高效处理的开源库,下面给出一个表格显示出其相对于目前的一些其他开源库,针对同一组5000×5000,8-bit的RGB三通道TIFF图像,在运行时间,内存消耗上的对比,明显可以看出其优势。

Software Run time (secs real) Memory (peak RSS MB) Times slower
VIPS C/C++ 8.1 0.20 43 1.0
Python VIPS 8.1 0.30 52 1.5
VIPS command-line 8.1 0.55 40 2.4
VIPS C/C++ 8.1, JPEG images 0.38 59 2.7
ymagine 0.7.0 1.07 2.7 2.8 (compared to vips-c JPEG)
GraphicsMagick 1.3.20 0.67 492 3.4
sips 10.4.4 0.74 (est.) 268 3.7
ImageMagick 6.8.9-9 0.78 484 3.9
VIPS nip2 8.1 0.79 78 4.0
RMagick 2.15.2 (ImageMagick 6.8.9) 0.87 684 4.4
NetPBM 10.0 0.93 76 4.7
Pillow 2.7.0 0.93 207 4.7
OpenCV 2.4.9 1.13 206 5.7
libgd 2.1.1 2.34 186 6.1 (compared to vips-c JPEG)
Imlib2 1.4.7 1.53 250 7.7
ExactImage 0.8.9 1.54 130 7.7
FreeImage 3.15.4 (incomplete) 1.63 183 8.1
gmic 1.5.7.1 1.87 700 9.35
ImageScience 1.2.6 (based on FreeImage 3.15.4, incomplete) 1.9 267 9.5
OpenImageIO 1.3.12 2.79 811 14
GEGL 0.2 16.2 410 43 (compared to vips-c JPEG)
Octave 3.8 30 (est.) 8500 (est.) 200

测试环境:

E5-1650 @ 3.20GHz (HP workstation), Ubuntu 15.04

对应的Memory vs. time 曲线图如下:

可以看出,相比于其它库,vips处理速度更快,而且消耗的内存更小,但是比较麻烦的是配置比较麻烦…

提供一个下载链接: http://www.vips.ecs.soton.ac.uk/supported/current/win32/

Image Processing for Very Large Images的更多相关文章

  1. MySQL vs. MongoDB: Choosing a Data Management Solution

    原文地址:http://www.javacodegeeks.com/2015/07/mysql-vs-mongodb.html 1. Introduction It would be fair to ...

  2. mapreduce源码分析总结

    一 MapReduce概述 Map/Reduce是一个用于大规模数据处理的分布式计算模型,它最初是由Google工程师设计并实现的,Google已经将它完整的MapReduce论 文公开发布了.其中对 ...

  3. 什么是Hadoop

    配上官方介绍 What Is Apache Hadoop?    The Apache™ Hadoop® project develops open-source software for relia ...

  4. 一些公司对quantitative的要求

    来自日月光华BBS: Company: UBS AG Job Title: Quantitative Developers / Analysts (Entry Level, Multiple Posi ...

  5. 初识分布式计算:从MapReduce到Yarn&Fuxi

      这些年,云计算.大数据的发展如火如荼,从早期的以MapReduce为代表的基于文件系统的离线数据计算,到以Spark为代表的内存计算,以及以Storm为代表的实时计算,还有图计算等等.只要数据规模 ...

  6. MapReduce 原理与 Python 实践

    MapReduce 原理与 Python 实践 1. MapReduce 原理 以下是个人在MongoDB和Redis实际应用中总结的Map-Reduce的理解 Hadoop 的 MapReduce ...

  7. 典型分布式系统分析之MapReduce

    在 <分布式学习最佳实践:从分布式系统的特征开始(附思维导图)>一文中,提到学习分布式系统的一个好方法是思考分布式系统要解决的问题,有哪些衡量标准,为了解决这些问题:提出了哪些理论.协议. ...

  8. 典型分布式系统分析:MapReduce

    在 <分布式学习最佳实践:从分布式系统的特征开始(附思维导图)>一文中,提到学习分布式系统的一个好方法是思考分布式系统要解决的问题,有哪些衡量标准,为了解决这些问题:提出了哪些理论.协议. ...

  9. GitHub awesome Resource

    各种Awesome技术资源的资源聚合: https://github.com/sindresorhus/awesome Contents Platforms Programming Languages ...

随机推荐

  1. CentOs下安装图形界面

    CentOS6的图形界面对计算机的内存有要求,应该是要大于512M吧,如果不满足这个条件 在安装的时候,图形界面是不会安装的,可以在linux系统安装完毕后,进入命令后再次安装图形界面 安装图形界面有 ...

  2. powershell远程访问

    在服务器上打开powershell 1.winrm quickconfig 2.Enable-PSRemoting -Force 在客户端上打开powershell 1.Enter-PSSession ...

  3. BA-WG-泰豪发电机

    泰豪发电机的控制主板有2个端口,一个是RS232端口,一个是RS485端口,通常接网关需要将这个RS485的端口调整为modbus协议输出,再将modbus协议通过网关转换为bacnet / ip协议 ...

  4. LCA【模板】

    #include <algorithm> #include <cstdio> #include <vector> #define N 10015 using nam ...

  5. 2014年spark开发人员大赛火热进行中!

    "发现最有正能量的网络达人".Spark开发人员大赛火热进行! watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvd3d0dHoxOTc0/ ...

  6. HDU 3886

    一开始又往打表想了....不过,打表确实不好处理,转DFS. DFS有几个要注意的问题,1.对于枚举以零开始的数.我纠结了很久,最终学习别人的方法,设一个BOOL,并且假设最高一位有零,很方便.2.当 ...

  7. jQuery的父,子,兄弟节点查找方法

    以下罗列一下jQery下节点查找的方法: jQuery.parent(expr) 找父亲节点.能够传入expr进行过滤,比方$("span").parent()或者$(" ...

  8. 广东工业大学2016校赛决赛-网络赛 1169 Problem A: Krito的讨伐 优先队列

    Problem A: Krito的讨伐 Description Krito终于干掉了99层的boss,来到了第100层.第100层可以表示成一颗树,这棵树有n个节点(编号从0到n-1),树上每一个节点 ...

  9. Java基础之对象序列化

    1. 什么是Java对象序列化 Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长.但在现 ...

  10. 爬虫概念与编程学习之如何爬取视频网站页面(用HttpClient)(二)

    先看,前一期博客,理清好思路. 爬虫概念与编程学习之如何爬取网页源代码(一) 不多说,直接上代码. 编写代码 运行 <!DOCTYPE html><html><head& ...