MM - Chapter 2: Image Data Representation (copy)

0.0(0)
studied byStudied by 1 person
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/17

encourage image

There's no tags or description

Looks like no tags are added yet.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

18 Terms

1
New cards

Wat zijn “Raster Images”? En wat is nog een andere manier om afbeeldingen te beschrijven?

Raster image:

  • meeste multimedia → content op raster display / device (LCD, OLED …)

  • rasters komen ook veel voor in input devices voor images

  • meest gebruikte manier op afbeeldingen op te slaan en te verwerken

  • device-independent beschrijving van de weertegeven afbeelding

    • scherm resolutie meestal anders dan image resolutie

    • display devices approximeren de ideale afbeelding

Vector image:

Contain descriptions of shapes and/or areas of color bounded by lines or curves

  • geen referentie naar een of andere pixel grid

  • instructies voor display ipv de pixels zelf

  • these images are resolution-independent

  • moeten rasterized worden voordat ze gedisplayed kunnen worden (SVG)

2
New cards

Raster devices: Displays (2 mogelijkheden)

transmissive: liquid crystal display

  • Use a backlight that goes through the ‘pixel array’

  • backlight dat licht zend door de pixel array

  • liquid crystal

    • onder spanning de polarisatie roteren

    • aantal licht dat erdoor kan aanpassen: 0° → 90°

knowt flashcard image

emissive: light-emitting diode (LED) display

  • Directly emit controllable amounts of light,

    • met verschillende intensities, afhankelijk van de stroom

  • light-emitting diodes based (inorganic or organic semiconductors)

  • 3 onafhankelijk bestuurbare subpixels

knowt flashcard image

3
New cards

Raster devices: Hardcopy (2 mogelijkheden)

Ink-jet Printers (binary)

  • print head contains liquid ink carrying pigment

  • can be sprayed in very small drops under electronic control (binary)

  • resolution determined by the ‘dot’ density (e.g., 1200 dots per inch (dpi)) high resolutions are desirable to avoid ‘staircase effects’ or aliasing (use of dithering (see later))

Continuous Tone Printing (Laser printing)

  • Thermal dye transfer process

    • donor ribbon met gekleurde inkt

  • print head containing a linear array of heating elements

    • higher temperatures cause more dye to be transferred

  • varying amounts of dye can be deposited at each ‘pixel’

  • resolution determined by pixel density (e.g., 300 pixels per inch (ppi))

  • Hoge resoluties zijn wenselijk om tussentinten te simuleren door puntpatronen met variërende dichtheid te printen (zogenaamde halftonen).

4
New cards

Leg Dithering en ordered dithering uit. (Raster devices stuk)

  • stappen

Dithering

  • dithering wordt gebruikt om patronen van puntjes te berekenen zodat pixel waarden (0-255) overeenkomen met patronen die meer gevuld (meer punten) zijn voor donkere pixel waarden

    → printen met 1-bit printer

  • het patroon simuleert hoe lichte/donkere tinten ontstaan door meer of minder stipjes, net als bij klassieke halftoondruk

  • hierdoor wordt de grootte van de foto veel groter

    • iedere pixel door een 4×4 array van punten

    • 2^4 keer groter

stappen

  • ramap de image values in [0, 255] into the new range (bv [0,4]) by integer dividing

  • als pixel waarde = 4 (“white”) → print niets in een 2×2 area

  • pixel waarde = 0 (“back”') → print de 4 dots

Ordered Dithering

  • gebruikt een vaste dither matrix

  • oplossen van probleem dat image size veel groter wordt

    • 4×4 maakt de image 4² = 16 keer groter

  • An "ordered dither" consists of turning on the printer output bit for a pixel if the intensity level is smaller than the particular matrix element just at that pixel position

    • de matrix over de afbeelding / pixels schuiven

zie voorbeeld in cursus p21

5
New cards

Raster Devices: Input devices

Digital cameras

  • Each pixel of the sensor measures the light energy falling on it (CCD or CMOS sensor technology)

  • ‘Pixels’ are allowed to see only red, green or blue light

    • via color filters, e.g., (Bayer) mosaic

    • via separate pixel arrays or layers of arrays (e.g. 3-CCD/3-CMOS)

    • laten image processing software de missende waarden invullen

6
New cards

Images and pixels

  • algemeen:

    • waarom

    • wat is een pixel

  • pixel values:

    • hoe opgeslagen

    • wat is clipping

    • wat is banding/quantization

  • monitor intensities and gamma

    • wat betekent gamma correctie hier specifiek?

Images and pixels:

  • voor berekeningen op computer → gemakkelijke abstractie dat onafhankelijk is van de specifics van een apparaat

    • kunnen gebruiken om te redeneren over hoe de waarden van fotos te produceren

  • A pixel value is a local average of the color of the image, and it is called a point sample of the image

  • The idea of images as sampled representations of functions is a core aspect in image signal processing (strongly related to sampling theory)

Pixel values:

  • conceptueel: fotos = array van floating point nummers → 1/pixel voor grayscale + 3 voor kleur

    • kan zo gedaan worden als precisie / range of vales nodig zijn

      • hdr (high dynamic range): images met floating point nummers

      • ldr (low dynamic range): fotos opgeslaan met integers

  • However, devices always have a finite maximum, so intensity values are bounded, say [0,1]

  • Storage is important, so for we typically choose a number of bits

    • e.g., 8 bit: 256 different intensity levels

    • clipping: intensities brighter than the maximum are clipped to the maximum

    • banding/quantization: abrupt changes in intensity levels or color due to low precision encoding and rounding pixel values to nearest representable value

7
New cards

monitor intensities / gamma

monitor intensities and gamma

  • alle moderne monitors nemen de digitale input voor de waarde van een pixel en zetten dit om naar en intensiteit level

  • Monitors are nonlinear with respect to input (!)

    • input: 0, 0.5, and 1 for three pixels

    • displayed intensities might be 0, 0.25, 1

    • tonen donkere waarden te donker

    • zorgen dat wat zien overeenkomt met wat bedoeld is

  • benaderde karakterisatie van deze niet-lineariteit wordt gedaan door een gamma waarde zodat:

  • Gamma can be derived visually

    • de waarde = de gamme als gerasteriseerd zwart / wit op scherm is

    • even veel zwarte blokken als witte

  • Once we know gamma, we can gamma correct our input so that a value of a = 0.5 is displayed with intensity halfway between black and white:

8
New cards

Leg kort RGB color space uit. (Komt nog aanbod in H3)

  • RGB color space is displayed by mixing 3 primary colors/lights

  • Common practice to use 8 bit per color channel

    • 24-bit color images (see later)

    • 256 intensity levels per primary light/color

      • gamma correction applied to each color channel separately

  • note: verschil scherm en papier:

9
New cards

Wat is Alpha Compositing (kort)?

  • combineren van een voorgrond en een achtergrond foto (volledig / deels transparante pixels)

  • bvb png met transparante background over andere foto plaatsen.

Alpha (α) = mate van transparantie (0 = volledig transparant, 1 = ondoorzichtig)

Kleurcombinatieformule:

  • c = α · cf + (1 − α) · cb

    • → cf = kleur voorgrond, cb = achtergrond

Toepassing bij bijv. schaduwen, glas, antialiased randen

Wordt opgeslagen als:

  • apart alfakanaal (masker)

  • RGBA-afbeelding (bv. PNG met 4 × 8-bit = 32 bits per pixel)

alpha mask / trasparency mask: waarden voor de pixels in een image kunnen worden opgeslaan als een aparte grayscale image

misvattingen

  • nietlineariteit van een CRT-monitor is een fout

    • de niet-lineariteit komt juist overeen met hoe ons oog gevoelig is voor licht, het zorgt ervoor dat de CRT visueel gelijkmatig reageert

    • geen fout maar eigenschap

  • gamma-correctie er is om die CRT-non-linearity recht te trekken

    • gamma correctie wordt gebruikt om licht- of kleurwaarden zo te coderen dat ze optimaal passen in een beperkt aantal bits, met behoud van hoe wij dat visueel waarnemen,

      • codering niet compensatie

10
New cards

Image Storage

  • noem enkele populaire formaten en verklaar kort (5)

  • leg volgende soorten x-bit images uit

    • 1-bit grayscale images

    • 8-bit grayscale images

    • 24-bit color Images

    • multispectral images

    • higher bit-depth images

populaire formaten:

  • BMP: bitmap raster image format

  • 8-bit GIF: one of the first important formats

    • historical connection to the WWW and HTML markup language

    • first image type recognized by web browsers

    • ‘revival’ of this rather old format on social media

  • JPEG: currently the most important common file format

  • PNG: most popular lossless image format

  • TIFF: flexible file format due to the addition of tags

    • can actually contain different types of data representations and/or compression schemes

x-bit images:

  • 1-bit grayscale images

    • Each pixel is stored as a single bit (0 or 1), so also referred to as binary image

    • Such an image is also called a 1-bit monochrome image since it contains no color

  • 8-bit Grayscale Images

    • Each pixel is usually stored as a byte (a value between 0 to 255)

    • When an image is printed, the basic strategy of dithering is used

  • 24-bit Color Images

    • In a 24-bit color image, each pixel is represented by three bytes, usually representing RGB. (256x256x256 possible combined colors)

    • An important point: many 24-bit color images are actually stored as 32-bit images, with the extra byte of data for each pixel used to store an alpha value representing special effect information (e.g., transparency).

    • Each color channel can be visualized as a grayscale image

  • multispectral images

    • using special cameras that view more than just three colors

    • invisible light, higher-dimensional medial images, satellite imaging

    • images called multispectral (> 3 colors) or hyperspectral (many image planes)

  • Higher bit-depth images

    • More information about the scene can be gained by using more accuracy by using higher pixel depths

      • more bit for color channel values

      • higher range and/or more precision

    • High Dynamic Range (HDR)

      • HVS covers 10-14 stops (f-stops – related to contrast ratio (log2)) up to 20 or more with adaptation

      • SDR is around 8 f-stops

    • Medical images often require 16-bit grayscales

11
New cards

Paletted images

  • 8-bit color images

  • Color look up tabels (LUT’s)

    • wat?

    • wat heeft dithering hier mee te maken?

8-Bit Color Images: Paletted Images

  • veel systemen maken gebruik van 8 bits (256 kleuren) voor kleur informatie bij het maken van een scherm image

  • gebruiken lookup table to store color information.

    • ze slaan geen kleuren op, maar een set bytes

    • bytes = index in een tabel met 3-byte waarden die de kleur voor een pixel specifieren

Color Look-up Tables (LUTs)

  • The idea is to store only the index, or code value, for each pixel. Then, e.g., if a pixel stores the value 25, the meaning is to go to row 25 in a color look-up table (LUT).

  • Als exact 23 pixels de RGB-waarde (45, 200, 91) hebben, dan sla je de waarde 23 op in een driedimensionale array, op de plek met index [45, 200, 91].

color dithering is vaak nodig omdat je met een CLUT werkt en dus niet direct de gewenste kleur kan tonen: → kleuren mengen door slimme pixel patronen →lijken er meer kleuren dan dat je uit je lut kan halen

  • geven grote opslag voordelen om 8-bit fotos op te slaan ipv 24-bit

  • However, what if there are more than 256 distinct colors in the original?

  • wat als meer dan 256 verschillende kleuren zijn in het origineel

    • color dithering → aantal bits dat de foto gebruikt verminderen maar zelfde uitzien (gebruikt minder kleuren)

12
New cards

Hoe stel je een Color look-up tabel op? (3 manieren)

  • uniform quantization

  • popularity-based approach

  • median-cut

uniform quantization:

  • De meest eenvoudige manier om 8-bit look-up kleuren te maken uit 24-bit kleuren is door de RGB-kubus in gelijke stukken te verdelen in elke dimensie.

Popularity-based approach (populariteitsgebaseerde aanpak)

  • Lijkt op uniforme kwantisatie, maar vaak met kleinere kubussen.

Median-cut algorithm:

  • simple solution that provides better quality (not a single algorithm, but rather a set/family/type of approaches)

  • partitioning schema dat de bits op de plekken zet waar ze het meest nodig / clustered zijn

Levert beste kwaliteit van de drie.

13
New cards

uniform quantization

De meest eenvoudige manier om 8-bit look-up kleuren te maken uit 24-bit kleuren is door de RGB-kubus in gelijke stukken te verdelen in elke dimensie.

  • De centra van de gevormde kubussen worden de ingangen in de color LUT

  • Door RGB-bereiken 0..255 te schalen naar kleinere bereiken, krijg je 8-bit codes.

Omdat mensen gevoeliger zijn voor R en G dan voor B:

  • verklein je het R- en G-bereik van 0..255 naar een 3-bit bereik 0..7;

  • verklein je het B-bereik naar een 2-bit bereik 0..3, samen 8 bits totaal.

Om R en G te verkleinen, deel je simpelweg de R- of G-bytewaarde door (256/8)=32 en neem je het geheel getal.

  • Elk pixel in het beeld wordt dan vervangen door zijn 8-bit index, en de color LUT gebruikt die index om de volledige 24-bit kleur te genereren.

probleem: color banding

  • kleurbereik sterk beperkt:

    • 24-bit → ~16 miljoen kleuren

    • 8-bit LUT → maar 256 kleuren

  • Daardoor vallen veel subtiele overgangen (bijv. in schaduwen of lucht) weg → je ziet abrupte sprongen tussen kleurzones → color banding.

14
New cards

Popularity-based approach

Popularity-based approach (populariteitsgebaseerde aanpak)

  • Lijkt op uniforme kwantisatie, maar vaak met kleinere kubussen.

  • De 256 (bij 8-bit) meest gevulde kubussen worden behouden in de LUT (bijvoorbeeld één kleur per kubus).

  • Als een niet-lege kubus niet geselecteerd is, wordt zijn index gemapt naar de dichtstbijzijnde in de LUT (bijvoorbeeld op basis van Euclidische afstand).

Banding is nog steeds aanwezig, maar minder erg.De popularity-based approach (populariteitsgebaseerde aanpak) is een methode om een color lookup table (LUT) op te bouwen voor het beperken van het aantal kleuren in een afbeelding. Hieronder leg ik het helder en stap voor stap uit:


Wat is het doel?

We willen een afbeelding hercoderen met bijvoorbeeld slechts 256 kleuren (zoals bij 8-bit afbeeldingen), terwijl het origineel veel meer kleuren heeft. Dat doen we via een LUT.


Hoe werkt de popularity-based approach?

  1. Verdeel de kleurruimte in kleine blokjes (kubussen)
    De kleurruimte (bijvoorbeeld RGB) wordt opgedeeld in een 3D-raster van kleine kubussen. Elke kubus bevat een aantal kleuren die “bij elkaar in de buurt” liggen.

  2. Tel hoeveel kleuren er in elke kubus voorkomen
    Je scant de afbeelding en houdt bij hoeveel keer er een kleur voorkomt in elk van die kubussen.

  3. Kies de 256 meest populaire kubussen
    Je selecteert de 256 kubussen met de meeste kleuren erin. Uit elke van deze kubussen kies je dan één representatieve kleur (vaak het gemiddelde of de meest voorkomende kleur in die kubus). Deze vormen je LUT.

  4. Voor kleuren die niet in de top-256 vallen
    Als een kleur in de afbeelding in een kubus valt die niet geselecteerd is, dan wordt die kleur toegewezen aan de dichtstbijzijnde kleur in de LUT (bijvoorbeeld via Euclidische afstand in RGB-ruimte).


Voordelen:

  • Simpel en efficiënt.

  • Werkt goed bij beelden met veel herhaling van bepaalde kleuren.

Nadelen:

  • Banding (abrupte kleurovergangen) kan nog steeds voorkomen, maar is minder erg dan bij uniforme kwantisatie.

  • Kan kleuren met lage frequentie volledig negeren, zelfs als ze visueel belangrijk zijn.

Laat me weten als je ook een visueel voorbeeld of pseudocode wil.

15
New cards

Median-cut algorithm

Median-cut algorithm: simple solution that provides better quality (not a single algorithm, but rather a set/family/type of approaches)

  • sort the byte values of a color channel and find their median;

    • values smaller than the median are labelled with a “0” bit

    • values larger than the median are labelled with a “1” bit

  • This type of scheme will concentrate bits where they most need to differentiate between high populations of close colors

  • One can most easily visualize finding the median by using a histogram showing counts at position 0..255.

  • Figure shows a histogram of the R byte values for the forestfire.bmp image along with the median of these values, shown as a vertical line

  • More detailed overview of (a possible) Median-cut algorithm

    • Find the smallest box that contains all the colors in the image

    • Sort the enclosed colors along the longest dimension

      • de byte waarden van 1 kanaal, kan gekozen worden op verschillende manieren, variantie / …

    • Split the box into two regions at the median of the sorted list

      • waarden < median = 0

      • waarden > median = 1

    • Repeat two previous steps until the original space is divided into the desired number of regions (cf. number of target bits)

    • For every box, pick the representative color (e.g., mean of R, G, and B)

    • For every pixel in the (original) image: replace pixel value by the LUT code corresponding to the ‘nearest’ representative color

Levert beste kwaliteit van de drie.

16
New cards

Wat is GIF? Bespreek GIF file format (figuur).

GIF (= Graphics Interchange Format)

- GIF-standaard: (We bekijken de GIF-standaard omdat ze zo simpel is! maar toch veel algemene elementen bevat.)

- Beperkt tot (maximaal) 8-bit (max 256) kleurenbeelden, wat weliswaar aanvaardbare kleurenbeelden oplevert, maar het best geschikt is voor beelden met weinig verschillende kleuren (bijv. grafieken of tekeningen).

- GIF-standaard ondersteunt interlacing — opeenvolgende weergave van pixels in breed verspreide rijen via een 4-pas weergaveproces.

- GIF bestaat eigenlijk in twee smaken:
GIF87a: de originele specificatie.
GIF89a: de latere versie. Ondersteunt eenvoudige animatie via een Graphics Control Extension-blok in de data, biedt eenvoudige controle over vertragingstijd, een transparantie-index, enz.

screen descriptor

  • comprises een set attributen die gelijk is voor iedere file

color map

  • de color lookup table waarin de kleuren opgeslaan zijn

  • de lengte = 2^(pixel + 1) zoals gegeven in de screen descriptor

image descriptor

  • blok met info over één beeld in de GIF

Bevat o.a.:

  • linksboven x, y positie

  • breedte, hoogte

  • flags (zoals local color table aanwezig, interlaced, etc.)

Het vjertelt hoe en waar dat beeld moet getoond worden binnen het canvas.

17
New cards

Bespreek kort enkele andere image formaten:

  • jpeg

  • png

  • tiff

JPEG

  • The most important current standard for image compression

  • The human vision system has some specific limitations and JPEG takes advantage of these to achieve high rates of compression

  • JPEG allows the user to set a desired level of quality, or compression ratio (input divided by output)

  • voorbeeld dia 67-68

PNG – Portable Network Graphics

  • Meant to supersede the GIF standard

    • extends it in important ways

  • Special features of PNG files include:

    • Support for up to 48 bits of color information — a large increase (i.e., up to 16 bit per color channel).

    • Files may contain gamma-correction information for correct display of color images, as well as alpha-channel information

TIFF - Tagged Image File Format

  • Support for attachment of additional information (referred to as “tags”) provides a great deal of flexibility

    • the most important tag is a format signifier: what type of compression etc. is in use in the stored image.

    • TIFF can store many different types of image: 1-bit, grayscale, 8-bit color, 24-bit RGB, etc.

    • TIFF was originally a lossless format but now a JPEG tag allows one to opt for JPEG compression.

    • the TIFF format was developed by the Aldus Corporation in the 1980's and was later supported by Microsoft.

18
New cards

Wat is S3 Texture Compression?

S3 Texture Compression (S3TC) – DXT1Wat is het?

S3TC is een groep compressie-algoritmes ontwikkeld door S3 Graphics om texturen efficiënt te comprimeren voor hardwareversnelde 3D-graphics.

  • Voordeel: snelle random access tot individuele pixels (texels)

  • Gevolg: ideaal voor real-time rendering, want enkel zichtbare delen van de textuur moeten ingelezen worden

  • lossy → kwaliteit is goed gng

  • LUT-gebaseerde compressie


Rendering 3D Graphics (context)

  • Een 3D-model bestaat uit geometrie (mesh) en texturen

  • Texturen worden op het model geprojecteerd via UV-coördinaten

  • Efficiënte opslag en toegang tot texturen zijn cruciaal voor performantie


Hoe werkt DXT1?

Kernidee: elk blok van 4×4 pixels (16 texels) → 64 bits gecomprimeerde data

  • Inhoud van een blok:

    • Twee 16-bit kleurenwaarden (RGB 5:6:5) → c₀ en c₁

    • Eén 4×4 lookup table van 2 bits per pixel → 32 bits

  • Kleurinterpolatie:

    • Als c₀ > c₁:

      • c₂ = (2/3)·c₀ + (1/3)·c₁

      • c₃ = (1/3)·c₀ + (2/3)·c₁

    • Als c₀ ≤ c₁:

      • c₂ = (1/2)·c₀ + (1/2)·c₁

      • c₃ = transparant

  • Per pixel wordt een index (0–3) uit de LUT gehaald → bepaalt of de pixel c₀, c₁, c₂ of c₃ krijgt.


Toy Example

De getoonde blokken illustreren hoe blokken met felle kleuren worden vereenvoudigd in DXT1, waarbij sommige overgangen worden afgevlakt of details verloren gaan, maar de algemene kleurstructuur behouden blijft.


Laat weten als je dit wil in schema- of bulletvorm voor notities.