Enkonduko en la aŭtomatan daten-prilaboradon

9 Kodado de datenaj tipoj: Bildoj

Koloraj bildoj estas nun tre multe uzataj en komputiloj. Ili beligas retpaĝojn; amatoraj kaj profesiaj fotantoj storas kaj prilaboras siajn fotojn komputile. Kaj, kiel proverbo diras, "bildo diras pli ol 1000 vortoj" (aŭ eĉ pli ol 1024 vortoj?); do bildoj estas grava helpilo por komuniki, ĉar ofte eblas pli rapide kaj facile percepti ilin ol tekstojn.

9 Kodierung von Bildern

Farbige Bilder werden jetzt sehr häufig in Rechnern verwendet. Sie dienen zur Verschönerung von WWW-Seiten, und viele Fotografen, Profis wie Amateure, speichern und bearbeiten ihre Bilder im Rechner. Und, wie ein Sprichwort lautet, "ein Bild sagt mehr als 1000 Worte" (oder sogar mehr als 1024 Worte?); Bilder sind also ein wichtiges Kommunikationsmittel, da man sie oft schneller und besser aufnehmen kann als Texte.

La bazaj metodoj por kodi bildojn estas kodado kiel punkt-matrico (krado) aŭ kiel strekaro. Ekzistas kodado de strekaj bildoj en formo de "vektoroj", sed la punktmatrica metodo superregas. En kompleksaj inĝenieraj sistemoj (KAD = komputile asistata desegnado) ekzistas pli komplikaj manieroj, kiuj konsideras tri dimensiojn. Tiajn teknikojn ni ne traktas tie ĉi.

Die grundlegenden Techniken zur Kodierung von Bildern sind die Kodierung als Punktmatrix (Punktgitter, Raster) oder als Strichgrafik. Die Kodierung von Strichbildern in Form von "Vektoren" wird verwendet, aber die Punktmatrix-Methode herrscht vor. In komplexen grafiksystemen für Ingenieure (CAD = Computer-Aided Design, Rechnergestützter Entwurf) kommen kompliziertere Techniken zum Einsatz, die drei Dimensionen unterstützen. Diese Techniken werden hier nicht behandelt.

Rastrumaj (kradaj, punkt-matricaj) bildoj

Tiu tekniko malkomponas bildon kiel kradon da senstrukturaj bilderoj (Angle: pixel = picture element, bildero). Ĉiu punkto de matrica bildoj havas difinitan kolor-valoron. Depende de la dezirataj aspekto kaj kvalito eblas uzi malsame da bitoj por kodi ĉiun bilderon.

  1. La plej simpla okazo estas tiu de nigra-blanka bildo. Se eblas nur du koloroj, ekzemple "blanka" kaj "nigra", unu bito sufiĉas por unu punkto.
  2. Diversaj intensoj (grizecoj) permesas pli da detaloj; ofte oni uzas 16 aŭ 256 nivelojn de grizeco, alidire 4 bitojn aŭ 8 bitojn = 1 bajton.
  3. Koloraj bildoj ofte estas kodataj per tri apartaj intensecoj de ruĝo, verdo kaj bluo (RVB aŭ, angle, RGB), kiuj estas adicie miksataj. Minimume do necesas tri bitoj por havi 8 kolorojn laŭ la sekva tabelo:

Rasterbilder (Punktmatrix-Bilder)

Bei dieser Technik wird das Bild in ein Gitter von unstrukturierten Bildpunkten (englisch: pixel = picture element) zerlegt. Jeser Punkt eines Rasterbildes hat einen bestimmten Farbwert. Abhängig vom gewünschten Aussehen und der gewünschten Qualität werden unterschiedlich viele Bits zur Kodierung eines jeden Punktes verwendet.

  1. Der einfachste Fall ist der eines Schwarz-Weiß-Bildes. Wenn es nur zwei Farben gibt, genügt ein Bit für jeden Punkt.
  2. Verschiedene Helligkeiten (Graustufen) erlauben mehr Einzelheiten; oft werden 16 oder 256 Graustufen benutzt, mit anderen Worten vier Bits oder 8 Bits = 1 Byte.
  3. Farbige Bilder werden oft durch drei verschiedene Helligkeiten für die Farben Rot, Grün und Blau (RGB) kodiert, die additiv gemischt werden. Es sind also mindestens drei Bits notwendig, um 8 Farben entsprechend der folgenden Tabelle zu kodieren:
RVBKoloro Farbe
000nigra schwarz   
001blua blau  
010verda grün  
011cejana/turkisacyan  
100ruĝa rot  
101malva/purpuramagenta  
110flava gelb  
111blankaweiß  

La kolor-nomoj "cejana" kaj "malva" estas uzataj preskaŭ nur en la komputila faklingvo. Ili similas al koloroj, kiujn oni komun-lingve ofte nomas "turkisa" kaj "purpura", sed pro precizeco oni kreis apartajn terminojn. Tiuj du koloroj estas la "komplementaj koloroj" de ruĝa resp. verda. Detaloj pri tiu temo estas ekster la kadro de tiu ĉi kurso.

Se via krozilo subtenas Java-programetojn, vi povas ĉi-sube eksperimenti per la kunmetado de koloroj el ruĝo, verdo kaj bluo. Ŝanĝu la valorojn de la tri skaloj kaj observu la koloron en la kampo super ili. La maldekstra pozicio de la tri skaloj signifas, ke la kontribuo de la koncerna koloro estas nula (nigro), la dekstra signifas plenan kontribuon.

Die Farbnamen "cyan" und "magenta" werden fast nur in der Fachsprache benutzt. Sie ähneln Farben, die man in der Umgangssprache als "türkis" bzw. "purpur" bezeichnet; der Genauigkeit halber hat man eigene Fachausdrücke geschaffen. Diese beiden Farben sind die "Komplementärfarben" von Rot bzw. Grün. Einzelheiten zu diesem Thema würden den Rahemn dieses Kurses sprengen.

Wenn Ihr Browser Java-Applets unterstützt, können Sie mit dem nachstehenden Programm mit der Zusammensetzung von Farben aus Rot, Grün und Blau experimentieren. Ändern Sie die Werte der drei Skalen und beobachten Sie die Farbe in dem Feld darüber. Die linke Position der drei Skalen bedeutet, dass der Beitrag der betreffenden Farbe null (schwarz) ist, die rechte Position bedeutet vollen Farb-Beitrag.

Ĉi-tie devus esti Java-programeto, kiun via krozilo bedaŭrinde ne subtenas.

Praktike oni uzas, por kodi kolorajn bildojn, minimume kvar bitojn (16 kolorojn), ofte 8 (256 kolorojn), 16 (65536 kolorojn) aŭ 24 (16777216 kolorojn). Ĉi-lastaj estas multe pli ol kapablas distingi la homa okulo; aliflanke tamen tiel ne eblas ekzakte reprezenti la aron de la koloroj videblaj por homo, ĉar la "kolor-spaco" de la homa okulo ne estas adicie prezentebla per tri koloroj. En la reala mondo do ekzistas koloroj, kiujn ekrano ne kapablas vidigi.

Ĉe 256 koloroj la 8 bitoj ofte kodas ne rekte la koloron, sed la pozicion en "paletro" de uzataj koloroj. Tiamaniere oni disponas 256 ne antaŭfiksitajn, sed libere elekteblajn kolorojn. Tiel eblas koncentriĝi al la koloroj, kiuj efektive aperas en bildo; ekzemple bildo de lago povus uzi paletron kun multaj diversaj bluoj. Paletron uzas ekzemple la aranĝo GIF.

In der Praxis verwendet man zur Kodierung farbiger Bilder mindestens vier Bits (16 Farben), oft 8 (256 Farben), 16 (65536 Farben) oder 24 (16777216 Farben). Letzteres sind viel mehr Farben, als das menschliche Auge unterscheiden kann; trotzdem lassen sich so nicht alle Farben exakt darstellen, die der Mensch sehen kann. Der Grund ist, dass der "Farb-Raum" des menschlichen Auges sich nicht durch additive Kombination von drei Farben darstellen lässt. Es gibt also in der wirklichen Welt Farben, die ein Bildschirm nicht anzeigen kann.

Bei 256 Farben kodieren die 8 Bits oft nicht direkt den Farbwert, sondern eine Nummer in einer "Palette" von verwendeten Farben. Damit hat man nicht 256 von vornherein festgelegte, sondern 256 frei wählbare Farben zur Verfügung. So kann man sich auf die Farben konzentrieren, die in einem bestimmten Bild tatsächlich vorkommen; zum Beispiel könnte das Bild eines Sees viele verschiedene Blautöne verwenden. Zum Beispiel benutzt das Dateiformat GIF eine Palette.

Pro la grandaj kvantoj da datenoj en bildoj estas utile densigi la informon. Tiucele eblas utiligi la fakton, ke en bildoj ofte troviĝas pluraj sam- aŭ similkoloraj bilderoj apude, aŭ la fakton, ke la homa okulo malpli bone distingas ruĝajn ol verdajn kolorojn, ktp. Dosier-aranĝoj por densigitaj bildoj estas GIF, PNG kaj JPEG. La aranĝo BMP, ofte uzata en la sistemo Windows, ne densigas la bildo-datenojn.

Teknika problemo estas, ke la "puraj" bazaj koloroj ruĝa, verda kaj blua diferencas inter la diversaj ekranoj, presiloj, projekciiloj ktp. Tial eĉ tre precize (mult-bite) koditaj koloroj povas aspekti tre malsame, se prezentataj per diversaj aparatoj. La aŭtoroj de la ekran-sistemo "X Windows" provis kompensi tion per listo de (angla-lingve) nomitaj koloroj, por kiu la produktantoj de aparatoj provizu la kod-valorojn taŭgajn por iliaj produktoj; sed tiu eblo preskaŭ neniam estis utiligata.

Wegen der großen Informationsmengen in Bildern ist es günstig, die Information zu komprimieren (verdichten). Dazu kann man die Tatsache ausnützen, dass in Bildern oft mehrere Punkte mit gleichen oder ähnlichen Farben nebeneinander vorkommen; ebenso die Tatsache, dass das menschliche Auge Rottöne schlechter unterscheidet als Grüntöne, usw. Bekannte Datenformate für komprimierte Bilder sind GIF, PNG und JPG. Das Format BMP, das oft in Windows-Systemen verwendet wird, verdichtet die Bilddaten nicht.

Ein technisches Problem ist, dass die "reinen" Grundfarben Rot, Grün und Blau sich bei verschiedenen Geräten (Bildschirme, Drucker, Projektoren) unterscheiden. Daher können auch sehr genau (mit vielen Bits) kodierte Farben sehr unterschiedlich aussehen, wenn sie mit verschiedenen Geräten dargestellt werden. Die Autoren des Bildschirmsystems "X Windows" versuchten, das durch eine Liste von (auf englisch benannten) Farben zu kompensieren, zu denen die Hersteller von Geräten geeignete Kodewerte liefern sollten. Diese Möglichkeit wurde aber kaum ausgenutzt.


Specimenaj demandoj

  • Kradaj (rastrumaj) bildoj konsistas el krado da bilderoj. Kiu informo necesas pri ĉiu bildero, por havi bildon?
  • Kiom da koloroj eblas prezenti per unu bito?
  • Kiom da koloroj eblas prezenti per kvar bitoj?
  • Ĉu eblas per 24 bitoj reprezenti ĉiujn kolorojn, kiujn distingas la homa okulo?
  • Nomu dosieraranĝon por densigitaj bildo-datenoj.
  • Kiu estas la avantaĝo de paletro?

Beispielfragen

  • Punktbilder (Rasterbilder) bestehen aus einem Gitter von Punkten. Welche Information ist zu jedem Punkt nötig, damit sich ein Bild ergibt?
  • Wie viele Farben kann man mit einem Bit kodieren?
  • Wie viele Farben kann man mit vier Bits kodieren?
  • Kann man mit 24 Bits alle Farben kodieren, die das menschliche Auge unterscheiden kann?
  • Nennen Sie ein Dateiformat zur Komprimierung von Bild-Daten.
  • Was ist der Vorteil einer Palette?

Pri la kodado de koloraj bildoj ekzistas propra kurso de AIS.

Zur Kodierung von farbigen Bildern gibt es einen eigenen Kurs der AIS.