# Image processor

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Image_processor
> Markdown URL: https://mediated.wiki/source/Image_processor.md
> Source: https://en.wikipedia.org/wiki/Image_processor
> Source revision: 1344850204
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{short description|Specialized digital signal processor used for image processing}}
[[File:Nikon D90 - board 0 - Nikon Expeed EI-149-1769.jpg|thumb|[Nikon EXPEED](/source/EXPEED), a [system on a chip](/source/system_on_a_chip) including an [image processor](/source/Color_image_pipeline), [video processor](/source/Video_scaler), [digital signal processor](/source/digital_signal_processor) (DSP) and a [32-bit](/source/32-bit) [microcontroller](/source/microcontroller) controlling the chip]]
An '''image processor''', also known as an '''image processing engine''', '''image processing unit''' ('''IPU'''), or '''image signal processor''' ('''ISP'''), is a type of [media processor](/source/media_processor) or specialized [digital signal processor](/source/digital_signal_processor) (DSP) used for [image processing](/source/image_processing), in [digital camera](/source/digital_camera)s or other devices.<ref>[http://www.robots.ox.ac.uk/~sjrob/Teaching/B4_SP/b4_sp.pdf DIGITAL SIGNAL & IMAGE PROCESSING]</ref><ref>[http://homepages.inf.ed.ac.uk/rbf/BOOKS/VERNON/Chap004.pdf Fundamentals of digital image processing]</ref>
Image processors often employ [parallel computing](/source/parallel_computing) even with [SIMD](/source/Single_instruction%2C_multiple_data) or [MIMD](/source/Multiple_instruction%2C_multiple_data) technologies to increase speed and efficiency.<ref>{{Cite journal |last1=Merigot |first1=Alain |last2=Petrosino |first2=Alfredo |date=2008-12-01 |title=Parallel processing for image and video processing: Issues and challenges |url=https://www.sciencedirect.com/science/article/abs/pii/S0167819108000999 |journal=Parallel Computing |volume=34 |issue=12 |pages=694–699 |doi=10.1016/j.parco.2008.09.009 |issn=0167-8191|url-access=subscription }}</ref> The [digital image](/source/digital_image) processing engine can perform a range of tasks. 
To increase the system integration on [embedded devices](/source/Embedded_system), often it is a [system on a chip](/source/system_on_a_chip) with [multi-core processor](/source/multi-core_processor) architecture.

==Function==
{{Unreferenced section|date=October 2017}}
=== Bayer transformation ===
The [photodiode](/source/photodiode)s employed in an [image sensor](/source/image_sensor) are color-blind by nature: they can only record [shades of grey](/source/Shades_of_gray). To get [color](/source/color) into the picture, they are covered with different color filters: [red](/source/red), [green](/source/green) and [blue](/source/blue) ([RGB](/source/RGB)) according to the pattern designated by the [Bayer filter](/source/Bayer_filter).<ref>{{Cite web |author1=Ben Andrews |date=2025-05-08 |title=Your camera sensor is mostly blind, but that could be about to change |url=https://www.digitalcameraworld.com/tech/your-camera-sensor-is-mostly-blind-but-that-could-be-about-to-change |access-date=2025-10-07 |website=Digital Camera World |language=en}}</ref> As each photodiode records the color information for exactly one [pixel](/source/pixel) of the image, without an image processor there would be a green pixel next to each red and blue pixel.

This process, however, is quite complex, and involves a number of different operations. Its quality depends largely on the effectiveness of the [algorithms](/source/Algorithm) applied to the raw data coming from the sensor. The mathematically manipulated data becomes the recorded photo file.

=== Demosaicing ===
As stated above, the image processor evaluates the color and [brightness](/source/brightness) data of a given pixel, compares them with the data from neighboring pixels, and then uses a [demosaicing](/source/demosaicing) algorithm to produce an appropriate color and brightness value for the pixel.<ref>{{Cite journal |last=Chang |first=Lanlan |date=Mar 2006 |title=Hybrid color filter array demosaicking for effective artifact suppression |url=http://www3.ntu.edu.sg/home5/CHAN0069/JEI013003.pdf |journal=Journal of Electronic Imaging |volume=15 |issue=1 |pages=013003-1 - 013003-17|doi=10.1117/1.2183325 |bibcode=2006JEI....15a3003C |archive-url=https://web.archive.org/web/20091229063407/http://www3.ntu.edu.sg/home5/CHAN0069/JEI013003.pdf |archive-date=29 December 2009 }}</ref> The image processor also assesses the whole picture to guess at the correct distribution of [contrast](/source/Contrast_(vision)). By adjusting the [gamma](/source/Gamma_correction) value (heightening or lowering the contrast range of an image's mid-tones), subtle tonal gradations, such as in [human skin](/source/human_skin) or the blue of the [sky](/source/sky), become much more realistic.

=== Noise reduction ===
[Noise](/source/Image_noise) is a phenomenon found in any [electronic circuitry](/source/Electronic_circuit). In [digital photography](/source/digital_photography) its effect is often visible as random spots of obviously wrong color in an otherwise smoothly-colored area. Noise increases with temperature and [exposure](/source/Exposure_(photography)) times. When higher [ISO](/source/ISO_5800%3A1987) settings are chosen the electronic signal in the image sensor is amplified, which at the same time increases the noise level, leading to a lower [signal-to-noise ratio](/source/signal-to-noise_ratio). The image processor attempts to separate the noise from the image information and to remove it. This can be quite a challenge, as the image may contain areas with fine textures which, if treated as noise, may lose some of their definition.<ref>{{Cite journal |last1=Fan |first1=Linwei |last2=Zhang |first2=Fan |last3=Fan |first3=Hui |last4=Zhang |first4=Caiming |date=2019-07-08 |title=Brief review of image denoising techniques |journal=Visual Computing for Industry, Biomedicine, and Art |volume=2 |issue=1 |pages=7 |doi=10.1186/s42492-019-0016-7 |doi-access=free |issn=2524-4442 |pmc=7099553 |pmid=32240414}}</ref>

=== Image sharpening ===
As the color and brightness values for each pixel are [interpolated](/source/interpolated) some [image sharpening](/source/image_sharpening) is applied to even out any fuzziness that has occurred. To preserve the impression of [depth](/source/Depth_perception), clarity and fine details, the image processor must sharpen edges and contours.  It therefore must [detect edges](/source/Edge_detection) correctly and reproduce them smoothly and without over-sharpening.

==Models==
Image processor users are using industry standard products, application-specific standard products (ASSP) or even [application-specific integrated circuit](/source/application-specific_integrated_circuit)s (ASIC) with trade names: Canon's is called [DIGIC](/source/DIGIC), Nikon's [Expeed](/source/Expeed), Olympus' TruePic, Panasonic's [Venus Engine](/source/Venus_Engine) and Sony's [Bionz](/source/Bionz). Some are known to be based on the [Fujitsu](/source/Fujitsu) [Milbeaut](/source/Milbeaut), the [Texas Instruments](/source/Texas_Instruments) [OMAP](/source/OMAP), [Panasonic](/source/Panasonic) [MN103](/source/MN103), [Zoran](/source/Zoran_Corporation) Coach, Altek Sunny or [Sanyo](/source/Sanyo) image/video processors.

[ARM architecture](/source/ARM_architecture) processors with its [NEON SIMD](/source/ARM_NEON) [Media Processing Engine](/source/Media_Processing_Engine)s (MPE) are often used in [mobile phone](/source/mobile_phone)s.

===Processor brand names===
*ATI - [Imageon](/source/Imageon) (graphics co-processor used in many early mobile phones to offer camera image signal processing<ref>{{cite web |title=Handheld Products |url=http://www.ati.com/products/handheld.html |archive-url=https://web.archive.org/web/20060311005523/http://www.ati.com/products/handheld.html |url-status=dead |archive-date=11 March 2006 |access-date=14 September 2019 |date=11 March 2006}}</ref>)
*Canon - [DIGIC](/source/DIGIC) (based on Texas Instruments [OMAP](/source/OMAP))<ref>[http://www.chipworks.com/blog/recentteardowns/2012/07/06/inside-the-canon-rebel-t4i-dslr/ Inside the Canon Rebel T4i DSLR] {{webarchive|url=https://web.archive.org/web/20120921024804/http://www.chipworks.com/blog/recentteardowns/2012/07/06/inside-the-canon-rebel-t4i-dslr/ |date=2012-09-21 }} Chipworks</ref>
*Casio - EXILIM engine 
*Epson - EDiART 
*Fujifilm - EXR III or X Processor Pro
*Google - [Pixel Visual Core](/source/Pixel_Visual_Core)<ref>{{cite news|last1=Amadeo|first1=Ron|title=Surprise! The Pixel 2 is hiding a custom Google SoC for image processing|url=https://arstechnica.com/gadgets/2017/10/the-pixel-2-contains-a-custom-google-soc-the-pixel-visual-core/|access-date=19 October 2017|publisher=Ars Technica|date=17 October 2017}}</ref>
*HTC - ImageSense
*Intel - IPU<ref>{{Cite web |title=7.8. Intel Image Processing Unit 6 (IPU6) Input System driver — The Linux Kernel documentation |url=https://docs.kernel.org/admin-guide/media/ipu6-isys.html |access-date=2024-08-30 |website=docs.kernel.org}}</ref>
*MediaTek - Imagiq
*Minolta / Konica Minolta - [SUPHEED](/source/SUPHEED) with CxProcess
*Leica - MAESTRO (based on Fujitsu [Milbeaut](/source/Milbeaut))<ref>[http://www.fujitsu.com/hk/news/pr/20080926.html Fujitsu Microelectronics-Leica's Image Processing System Solution For High-End DSLR] {{Webarchive|url=https://web.archive.org/web/20081007190028/http://www.fujitsu.com/hk/news/pr/20080926.html |date=208-10-04 }}</ref> 
*Nikon - [Expeed](/source/Expeed) (based on Fujitsu [Milbeaut](/source/Milbeaut))<ref>[http://www.dslrbodies.com/newsviews/milbeaut-and-expeed.html Milbeaut and EXPEED] {{Webarchive|url=https://web.archive.org/web/20160521154952/http://www.dslrbodies.com/newsviews/milbeaut-and-expeed.html |date=2016-05-21 }} byThom</ref>
*Olympus - TruePic (based on Panasonic [MN103](/source/MN103)/MN103S)
*OPPO - MariSilicon X
*Panasonic - [Venus Engine](/source/Venus_Engine) (based on Panasonic [MN103](/source/MN103)/MN103S)
*Pentax - PRIME (Pentax Real IMage Engine) (newer variants based on Fujitsu [Milbeaut](/source/Milbeaut))
*Qualcomm - [Qualcomm Spectra](/source/Qualcomm_Spectra) (based on [Qualcomm Snapdragon](/source/Qualcomm_Snapdragon))
*Ricoh - GR engine (GR digital), Smooth Imaging Engine
*Samsung - DRIMe (based on [Samsung](/source/Samsung_Electronics) [Exynos](/source/Exynos))
*Sanyo - Platinum engine 
*Sigma - True
*Sharp - ProPix
*Socionext - [http://socionextus.com/products/image-processors-milbeaut/ Milbeaut] Family of ISPs - SC2000 (M-10V), SC2002 (M-11S)
*Sony - [Bionz](/source/Bionz)
*THine - THP series [https://www.thine.co.jp/en/products/camera_processor/Image-Signal-Processor/] with compatible SDK Kit for developing firmware [https://www.thinesolutions.com/camera-development-kit-cdk]
*UNISOC - Vivimagic

=== Speed ===
With the ever-higher pixel count in image sensors, the image processor's speed becomes more critical: [photographers](/source/Photographer) don't want to wait for the camera's image processor to complete its job before they can carry on shooting - they don't even want to notice some processing is going on inside the camera. Therefore, image processors must be optimised to cope with more data in the same or even a shorter period of time.

== Software ==
[libcamera](/source/libcamera) is a software library that supports using image signal processors for the capture of pictures.

== See also ==
*[Color image pipeline](/source/Color_image_pipeline)
*[Image processing](/source/Image_processing)
*[Digital image processing](/source/Digital_image_processing)
*[Digital image editing](/source/Digital_image_editing)
*[Demosaicing](/source/Demosaicing)

==References==
{{reflist}}

{{System on a chip}}

Category:Digital signal processors
Category:Image processors
Category:Photography equipment

---
Adapted from the Wikipedia article [Image processor](https://en.wikipedia.org/wiki/Image_processor) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Image_processor?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
