Jump to content

Image processor

From Wikipedia, the free encyclopedia
(Redirected from Image processing engine)
Nikon EXPEED, a system on a chip including an image processor, video processor, digital signal processor (DSP) and a 32-bit 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 or specialized digital signal processor (DSP) used for image processing, in digital cameras or other devices.[1][2] Image processors often employ parallel computing even with SIMD or MIMD technologies to increase speed and efficiency. The digital image processing engine can perform a range of tasks. To increase the system integration on embedded devices, often it is a system on a chip with multi-core processor architecture.

Function

[edit]

Bayer transformation

[edit]

The photodiodes employed in an image sensor are color-blind by nature: they can only record shades of grey. To get color into the picture, they are covered with different color filters: red, green and blue (RGB) according to the pattern designated by the Bayer filter - named after its inventor. As each photodiode records the color information for exactly one 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 applied to the raw data coming from the sensor. The mathematically manipulated data becomes the photo file recorded.

Demosaicing

[edit]

As stated above, the image processor evaluates the color and brightness data of a given pixel, compares them with the data from neighboring pixels, and then uses a demosaicing algorithm to produce an appropriate color and brightness value for the pixel. The image processor also assesses the whole picture to guess at the correct distribution of contrast. By adjusting the gamma value (heightening or lowering the contrast range of an image's mid-tones), subtle tonal gradations, such as in human skin or the blue of the sky, become much more realistic.

Noise reduction

[edit]

Noise is a phenomenon found in any electronic circuitry. In 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 times. When higher ISO 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. 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.

Image sharpening

[edit]

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

Models

[edit]

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

ARM architecture processors with its NEON SIMD Media Processing Engines (MPE) are often used in mobile phones.

Processor brand names

[edit]
  • ATI - Imageon (graphics co-processor used in many early mobile photos to offer camera image signal processing[3])
  • Canon - DIGIC (based on Texas Instruments OMAP)[4]
  • Casio - EXILIM engine
  • Epson - EDiART
  • Fujifilm - EXR III or X Processor Pro
  • Google - Pixel Visual Core[5]
  • HTC - ImageSense
  • Intel - IPU[6]
  • MediaTek - Imagiq
  • Minolta / Konica Minolta - SUPHEED with CxProcess
  • Leica - MAESTRO (based on Fujitsu Milbeaut)[7]
  • Nikon - Expeed (based on Fujitsu Milbeaut)[8]
  • Olympus - TruePic (based on Panasonic MN103/MN103S)
  • OPPO - MariSilicon X
  • Panasonic - Venus Engine (based on Panasonic MN103/MN103S)
  • Pentax - PRIME (Pentax Real IMage Engine) (newer variants based on Fujitsu Milbeaut)
  • Qualcomm - Qualcomm Spectra (based on Qualcomm Snapdragon)
  • Ricoh - GR engine (GR digital), Smooth Imaging Engine
  • Samsung - DRIMe (based on Samsung Exynos)
  • Sanyo - Platinum engine
  • Sigma - True
  • Sharp - ProPix
  • Socionext - Milbeaut Family of ISPs - SC2000 (M-10V), SC2002 (M-11S)
  • Sony - Bionz
  • THine - THP series [1] with compatible SDK Kit for developing firmware [2]
  • UNISOC - Vivimagic

Speed

[edit]

With the ever-higher pixel count in image sensors, the image processor's speed becomes more critical: photographers 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

[edit]

libcamera is a software library that supports using image signal processors for the capture of pictures.

See also

[edit]

References

[edit]
  1. ^ DIGITAL SIGNAL & IMAGE PROCESSING
  2. ^ Fundamentals of digital image processing
  3. ^ "Handheld Products". 11 March 2006. Archived from the original on 11 March 2006. Retrieved 14 September 2019.
  4. ^ Inside the Canon Rebel T4i DSLR Archived 2012-09-21 at the Wayback Machine Chipworks
  5. ^ Amadeo, Ron (17 October 2017). "Surprise! The Pixel 2 is hiding a custom Google SoC for image processing". Ars Technica. Retrieved 19 October 2017.
  6. ^ "7.8. Intel Image Processing Unit 6 (IPU6) Input System driver — The Linux Kernel documentation". docs.kernel.org. Retrieved 2024-08-30.
  7. ^ Fujitsu Microelectronics-Leica's Image Processing System Solution For High-End DSLR Archived 2008-10-07 at the Wayback Machine
  8. ^ Milbeaut and EXPEED Archived 2016-05-21 at the Wayback Machine byThom