Human visual system model

A human visual system model (HVS model) is used by image processing, video processing and computer vision experts to deal with biological and psychological processes that are not yet fully understood. Such a model is used to simplify the behaviours of what is a very complex system. As our knowledge of the true visual system improves, the model is updated.

Psychovisual involves the study of the psychology of vision.

It is common to think of "taking advantage" of the HVS model to produce desired effects. Examples of taking advantage of an HVS model include colour television. Originally it was thought that colour television required too high a bandwidth for the then available technology. Then it was noticed that the colour resolution of the HVS was much lower than the brightness resolution; this allowed colour to be squeezed into the signal by chroma subsampling. Another example is image compression, like JPEG. Our HVS model says that we cannot see high frequency detail so in JPEG we can quantise these components without a perceptible loss of quality. Similar concepts are applied in audio compression, where sound frequencies inaudible to humans are bandstop filtered.

Several HVS features are derived from evolution, when we needed to defend ourselves or hunt for food. We often see demonstrations of HVS features when we are looking at optical illusions.

Block diagram of HVS

Assumptions about the HVS

  • Low-pass filter characteristic (limited number of rods in human eye): see Mach bands
  • Lack of colour resolution (fewer cones in human eye than rods)
  • Motion sensitivity
    • More sensitive in peripheral vision
    • Stronger than texture sensitivity, e.g. viewing a camouflaged animal
  • Texture stronger than disparity - 3D depth resolution does not need to be so accurate
  • Integral Face recognition (babies smile at faces)
    • Depth inverted face looks normal (facial features overrule depth information)
      • Upside down face with inverted mouth and eyes looks normal[1]

Examples of taking advantage of an HVS model

gollark: `<ctype.h>`> Defines set of functions used to classify characters by their types or to convert between upper and lower case in a way that is independent of the used character set (typically ASCII or one of its extensions, although implementations utilizing EBCDIC are also known). osmarkslibc will ship the entire Unicode table in this header for purposes.
gollark: `complex.h`> A set of functions for manipulating complex numbers. What an oddly useful standard library feature. I'll use quaternions instead in osmarkslibc™ as they are better.
gollark: `assert.h`> Contains the assert macro, used to assist with detecting logical errors and other types of bugs in debugging versions of a program. My version of `assert` will just be a signal to the compiler that the value being `false` would be undefined behavior, for performance.
gollark: Hold on, let me see what else libc should contain.
gollark: Yes.

See also

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.