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. hdu 1385 floyd记录路径

    可以用floyd 直接记录相应路径 太棒了! http://blog.csdn.net/ice_crazy/article/details/7785111 #include"stdio.h& ...

  2. 使用动态代理实现dao接口

    使用动态代理实现dao接口的实现类 MyBatis允许只声明一个dao接口,而无需写dao实现类的方式实现数据库操作.前提是必须保证Mapper文件中的<mapper>标签的namespa ...

  3. SQL--各种约束

    约束名称 含义 主键约束 定义一个唯一的标识符 外键约束 为了维护和主键表的数据完整性 check约束 限定表中某个列的值的范围 default约束 如果没有指定插入值,则插入默认值 unique约束 ...

  4. powershell远程访问

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

  5. 对thinkpad太失望了

    本来本着对thinkpad的信任买的,结果买回来一直吱吱吱吱响个不停. 好像是磁盘的问题,太垃圾了. http://benyouhui.it168.com/thread-1111376-1-1.htm ...

  6. POSIX 线程编程(二)线程建立与终止

    创建与终止线程 线程的管理常用的API有: pthread_create(thread,attr,start_routine,arg) pthread_exit(status) pthread_can ...

  7. [React] Reference a node using createRef() in React 16.3

    In this lesson, we look at where we came from with refs in React. Starting with the deprecated strin ...

  8. Linux系统编程——多线程实现多任务

    概述 每一个进程都拥有自己的数据段.代码段和堆栈段.这就造成进程在进行创建.切换.撤销操作时,须要较大的系统开销. 为了降低系统开销,从进程中演化出了线程.为了让进程完毕一定的工作.进程必须至少包括一 ...

  9. Error: CompareBaseObjectsInternal can only be called from the main thread

    Posted: 01:39 PM 06-17-2013 hi, we're working on a project where we need to do some calculations on ...

  10. 2014秋C++ 第7周项目 数据类型和表达式

    课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课 ...