HOME

TheInfoList



OR:

VIPS is an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
image processing An image is a visual representation of something. It can be two-dimensional, three-dimensional, or somehow otherwise feed into the visual system to convey information. An image can be an artifact, such as a photograph or other two-dimensiona ...
software package. It is particularly good with large images, works with
multi-core processor A multi-core processor is a microprocessor on a single integrated circuit with two or more separate processing units, called cores, each of which reads and executes program instructions. The instructions are ordinary CPU instructions (such a ...
s, working with colour, scientific analysis and general research & development. It was developed during and is the product of several European research projects (VASARI, MARC, ACOHIR, Viseum) which were primarily about Imaging art, but which demanded a new approach to image processing. Compared to most image processing libraries VIPS needs little
RAM Ram, ram, or RAM may refer to: Animals * A male sheep * Ram cichlid, a freshwater tropical fish People * Ram (given name) * Ram (surname) * Ram (director) (Ramsubramaniam), an Indian Tamil film director * RAM (musician) (born 1974), Dutch * Ra ...
and runs quickly, especially on machines with more than one
CPU A central processing unit (CPU), also called a central processor, main processor or just processor, is the electronic circuitry that executes instructions comprising a computer program. The CPU performs basic arithmetic, logic, controlling, and ...
. This is primarily due to its architecture which automatically parallelises the image workflows. The software has two main parts: libvips is the image-processing library and nip2 is the graphical user-interface. The GUI aims to be about half-way between
Photoshop Adobe Photoshop is a raster graphics editor developed and published by Adobe Inc. for Windows and macOS. It was originally created in 1988 by Thomas and John Knoll. Since then, the software has become the industry standard not only in raster ...
and
Excel ExCeL London (an abbreviation for Exhibition Centre London) is an exhibition centre, international convention centre and former hospital in the Custom House area of Newham, East London. It is situated on a site on the northern quay of the ...
. It is not designed for tasks such as retouching photographs, but more useful for the many other imaging tasks that programs like Photoshop are used for. Both work on
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
,
Unix Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
,
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
and Apple
macOS macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
(10.2 and later). VIPS is a standard package for many
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
distributions, including
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of D ...
,
Fedora A fedora () is a hat with a soft brim and indented crown.Kilgour, Ruth Edwards (1958). ''A Pageant of Hats Ancient and Modern''. R. M. McBride Company. It is typically creased lengthwise down the crown and "pinched" near the front on both sides ...
,
Mint MiNT is Now TOS (MiNT) is a free software alternative operating system kernel for the Atari ST system and its successors. It is a multi-tasking alternative to TOS and MagiC. Together with the free system components fVDI device drivers, XaAES g ...
, and
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: ''Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All the ...
.


Software Design

Most of libVIPS is written in C, with bindings available for
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (pro ...
,
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sa ...
and several other languages. image:vipspartials.png VIPS processes images in small portions (rectangles or groups of lines) and groups of operations are automatically run by separate threads. This makes the processing parallel because modern systems run the threads on different cores. It also means that image intermediates are small and can easily be stored in
RAM Ram, ram, or RAM may refer to: Animals * A male sheep * Ram cichlid, a freshwater tropical fish People * Ram (given name) * Ram (surname) * Ram (director) (Ramsubramaniam), an Indian Tamil film director * RAM (musician) (born 1974), Dutch * Ra ...
. This is how multi-GB sized images can be processed on machines efficiently. It also uses the smallest storage type for values, so a typical RGB image would use three one byte values but after arithmetic operations these scale up to avoid errors to 16 and 32 bit values. The demand-driven design means that if only a certain part of input images are required to compute what is needed, only the required parts are calculated. There are many architectural elements which give VIPS its speed including its lack of locks and ability to overlap input and output. Most images start as three bytes per pixel (RGB) but when processing VIPS will upsize the elements to 16, 32 or 64 bits each if necessary to avoid clipping/rounding errors. This also contributes to the speed and low RAM use. Its demand-driven design means that, for example, a very large intermediate image may not be fully calculated if the output target requires just a small part of it.


History

VASARI was an EU-funded research project to build a system capable of measuring long-term colour change in old master paintings. Previous systems had made a series of point measurements of areas thought likely to degrade - of course this meant that changes in parts of the painting that hadn't been measured would be missed. VASARI aimed to fix this through imaging: it would use a camera to measure colour and simply record the whole painting. The project had partners in Germany, France, Italy and Britain.
Kirk Martinez Kirk Martinez is a Professor in Electronics and Computer Science at the University of Southampton UK. He gained a BSc in Physics from the University of Reading and a PhD in Image Processing in the department of Electronic Systems Engineering at ...
of
Birkbeck College Birkbeck, University of London (formally Birkbeck College, University of London), is a public university, public research university, located in Bloomsbury, London, England, and a constituent college, member institution of the federal Universit ...
and David Saunders of the
National Gallery London The National Gallery is an art museum in Trafalgar Square in the City of Westminster, in Central London, England. Founded in 1824, it houses a collection of over 2,300 paintings dating from the mid-13th century to 1900. The current Director of ...
were responsible for building the London scanner. Kirk hired Nicos Dessipris, who had been a fellow research student in the Image Processing group of the University of Essex, and David hired John Cupitt, who had just finished a PhD in Theoretical Computer Science at the University of Kent. The project wanted to image paintings up to about 1m by 1m, with a resolution of up to about 20 pixels per millimetre, since the smallest interesting features in a painting are about 0.1mm. Multiple colour bands were needed (7 was decided upon), since the aim was to measure reflectance spectra rather than just colour. The final requirement was for 16 bit data. Put these requirements together and you reach an image size of about 1GB per colour channel. A suitable image processing library which could handle the data size needed could not be found, so custom one was developed. Machines of the time were very modest by today's standards: a
Sun workstation The SUN workstation was a modular computer system designed at Stanford University in the early 1980s. It became the seed technology for many commercial products, including the original workstations from Sun Microsystems. History In 1979 Xerox do ...
cost £40,000, had 64MB of
RAM Ram, ram, or RAM may refer to: Animals * A male sheep * Ram cichlid, a freshwater tropical fish People * Ram (given name) * Ram (surname) * Ram (director) (Ramsubramaniam), an Indian Tamil film director * RAM (musician) (born 1974), Dutch * Ra ...
and ran at 25 MHz, so this was quite a challenge. Kirk had developed simple but fast C libraries during his PhD which worked on memory-mapped "framestores" for video processing. Kirk and Nikos looked a
HIPS
for inspiration but found pipes too inefficient. So VIPS was based on their experience with that as well as early Unix image processing software they developed. Early VIPS code used memory-mapped files for input (back then an exciting novelty which was faster than file I/O) and wrote data a scanline at a time. At the National Gallery, John Cupitt wrote a GUI called "vf" in SunView, Sun's graphical environment. The first version just displayed an image on the workstation screen and let you pan and zoom. The next version added a simple expression language and let you type in things like "a + 12" to brighten an image. It was renamed "ip", for image processing. It was through these early experiments that the basics of libVIPS were created. VASARI ended in 1993 but a follow-on European project called MARC allowed for more development. This aimed to use the imaging techniques developed in VASARI to build a
colorimetric Colorimetry is "the science and technology used to quantify and describe physically the human color perception". It is similar to spectrophotometry, but is distinguished by its interest in reducing spectra to the physical correlates of color ...
camera and to use it to print an art catalogue. Nicos left and John took over the development of the VIPS library, the GUI and the camera software. Sun had just produced their first two-CPU workstation, so VIPS gained SMP support. A further aim was to reduce the time spent on disc IO, so at the same time the ability to "chain" operators together without the need for intermediate storage was added. ip was rewritten to use the Motif user-interface toolkit and gained fully editable history. In 1997 Kirk Martinez moved to the
University of Southampton , mottoeng = The Heights Yield to Endeavour , type = Public research university , established = 1862 – Hartley Institution1902 – Hartley University College1913 – Southampton University Coll ...
so development and use continued in more projects (including Viseum, ACOHIR and Artiste) and VIPS and ip developed in response to their needs. The software was moved from Sun to Linux in the late 90s and ip moved from Motif to
GTK+ GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprie ...
, becoming nip. VIPS gained support for files larger than 2GB, and for up to 64 CPUs. nip was rewritten again for GTK+-2.0 and became the nip2 we know today. In 2005, John Cupitt moved from the National Gallery to
Imperial College Imperial College London (legally Imperial College of Science, Technology and Medicine) is a public research university in London, United Kingdom. Its history began with Prince Albert, consort of Queen Victoria, who developed his vision for a cu ...
to work on medical imaging and VIPS and nip2 gained many features while worked there. Recent additions have been support for Analyze, DICOM3, FITS,
Matlab MATLAB (an abbreviation of "MATrix LABoratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks. MATLAB allows matrix manipulations, plotting of functions and data, implementation ...
and Radiance images, run-time code generation, and the start of a move to a
GObject The GLib Object System, or GObject, is a free software library providing a portable object system and transparent cross-language interoperability. GObject is designed for use both directly in C programs to provide object-oriented C-based APIs ...
foundation. It is John's ingenuity and programming skills which have made libVips so successful today.


Users

libVIPS is currently used in MediaWiki and hence by Wikipedia itself in the VipsScaler extension. This speeds up and extends image handling compared to previously used software and hence saves processor time on the busy systems. For similar reasons it is used by Booking.com, Amazon, the New York Times, fda.gov, Homefinder and Idealista among over a thousand companies. The popular Sharp Node.js module and Gatsby use libVIPS so web sites using them rely on libVIPS.
Amazon Web Services Amazon Web Services, Inc. (AWS) is a subsidiary of Amazon.com, Amazon that provides Software as a service, on-demand cloud computing computing platform, platforms and Application programming interface, APIs to individuals, companies, and gover ...
recommend Sharp/VIPS in their guidelines Many image archives use IIPimage to allow browsing of very high resolution images online - and these are normally prepared using libVIPS.


License

libvips is licensed under the
LGPL The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
and nip2 is licensed under the
GPL The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general us ...
.


References

{{Reflist


External links


The VIPS website

libvips github page

NIP2 demonstration video
Image processing software Cross-platform free software Free software programmed in C Graphics-related software for Linux Graphics software that uses GTK Software using the LGPL license