-
Die
Erfindung bezieht sich auf ein Verfahren zum Erzeugen komprimierter
Bilddaten bzw. eine Bildverarbeitungseinrichtung.
-
Wenn
ein Bild einer Szene, Umgebung oder eines Objekts aufgenommen wird,
wird das Bild durch ein Feld von Orten dargestellt, die als Pixel
bekannt sind. Jedes Pixel eines Bildes hat einen Wert, der sich
auf eine oder mehrere Farbebenen bezieht. Wenn ein Bild von einer
Bildverarbeitungseinrichtung, wie beispielsweise einer Digitalkamera,
aufgenommen wird, wird es oftmals in ein Farbfilterarray(CFA)-Muster
aufgenommen, das als Bayer-Muster bekannt ist. Bei dem Bayer-Muster
ist jeder Pixelort ein Intensitätswert,
der sich nur auf eine der drei Primärwiedergabefarben (Rot (R),
Grün (G)
und Blau (B)) bezieht. Das Bayer-Muster ordnet die Pixel wie folgt
an:
G R G R ...
B G B G ...
G R G R ...
B G
B G ...
-
Da
es zweimal so viele sich auf G beziehende Pixel gibt, wie sich auf
B oder R beziehende Pixel, kann die G- oder Grün-Farbebene als zwei separate
Farbebenen G1 (G-Pixel auf der gleichen Zeile wie R-Pixel) und G2
(G-Pixel auf der gleichen Zeile wie B-Pixel) angesehen werden. Somit
kann ein Bayer-Muster-"Roh"-Bild als ein vier
unabhängige
Farbebenen enthaltendes Bild angesehen werden. Um ein Farbbild vollständiger Auflösung (z.B.
zur Wiedergabe) zu gewinnen, sollte jeder Pixelort sämtliche
drei R-, G- und B-Komponenten und nicht nur eine enthalten. Um dies
zu erreichen, wird ein als Farbinterpolation bekannter Prozeß benutzt,
bei dem fehlende Farbkomponenten für ein Pixel auf der Grundlage
benachbarter Pixel abgeschätzt
werden.
-
Nachdem
ein Bild aufgenommen wurde und ggf. seine Farbe interpoliert wurde,
wird das Bild oftmals "komprimiert" oder hinsichtlich
der Gesamtanzahl der zum Speichern oder Übermitteln des Bildes erforderlichen
Bits reduziert. Eine derartige Bildkompression wird gewöhnlich nach
der Farbinterpolation angewendet, aber es wäre an bestimmten Stellen vorteilhaft,
eine geeignete Kompression vor der Farbinterpolation, während sich
ein Bild noch in dem Bayer-Muster-Rohbildformat befindet, durchzuführen. Die
Bildkompression spielt eine Schlüsselrolle
bei Multimediaanwendungen, wie beispielsweise bei Videokonferenzen,
der digitalen Bildverarbeitung und der Videolaufbildübermittlung über ein
Netzwerk. Bildkompressionsschemata für derartige Anwendungen sollten
so ausgebildet sein, daß sie
die Bit-Rate für
die Speicherung und Übertragung
des Bildes reduzieren, während
noch eine akzeptable Bildqualität
für die
spezielle Anwendung aufrecht erhalten wird.
-
Bildkompressionstechniken
können
entweder als "verlustbehaftet" oder "verlustlos" klassifiziert werden.
Bei der verlustlosen Kompression kann das vor der Kompression vorhandene
ursprüngliche
Bild exakt wieder hergestellt werden, wenn das komprimierte Bild
dekomprimiert wird. Demzufolge erreichen verlustlose Techniken,
deren Kompressionsverhältnisse
von der Entropie eines Bildes abhängen, gewöhnlich keine hohen Kompressionsverhältnisse
und können
darüber
hinaus, da sie einen hohen Prozentsatz der ursprünglichen Bildinformationen
bewahren, berechnungsintensiv sein. Im Gegensatz dazu stellen verlustbehaftete
Kompressionsschemata nur eine Annäherung des ursprünglichen
Bildes zur Verfügung.
So können
bei der verlustbehafteten Kompression im Vergleich zu den verlustlosen
Techniken größere Kompressionsverhält nisse
erreicht werden, aber oftmals bei Verlusten der Bildqualität. Eine
derartige verlustbehaftete Technik ist eine transformationsbasierte
Codierung, die als JPEG (Joint Photograhic Experts Group) bekannt
ist, welche die Pixel eines Eingabebilds unter Verwendung der gut
bekannten diskreten Kosinus-Transformation (DCT) transformiert.
Die sich ergebenden transformierten Pixelwerte werden auf eine kleinere
Menge von Werten quantisiert oder abgebildet, um eine Kompression
zu erreichen. Die Qualität
eines komprimierten Bildes, das dekomprimiert worden ist, hängt beträchtlich
davon ab, wie die Quantisierung der transformierten Pixels durchgeführt wurde.
Das Kompressionsverhältnis
(die Größe des ursprünglichen
Rohbildes im Vergleich zu der des komprimierten Bildes) wird außerdem durch
die Quantisierung beeinflußt,
kann aber durch die binäre
Codierung der Daten nach der Quantisierung verbessert werden.
-
Darüber hinaus
leiden Algorithmen mit hohen Kompressionsverhältnissen, wie beispielsweise
JPEG, an Mängeln,
wie beispielsweise "Block-Artifakten". Bei diesen Algorithmen
wird ein Bild in Blöcke
von Pixeln unterteilt, beispielsweise in 8 × 8- oder 16 × 16-Blöcke. Diese
Blöcke
werden unabhängig
voneinander verarbeitet und es ergibt sich somit zwischen den Blöcken eine
wahrnehmbare Diskontinuität
in der Helligkeit oder in der Farbe, welche einen "Block-Artifakt" bildet.
-
Diese
und andere Bildkompressionsschemata, welche hohe Kompressionsverhältnisse
und manchmal darüber
hinaus akzeptable dekomprimierte Bildqualitäten erreichen, arbeiten an
den Bildern besser, wenn die Bilder im "Luminanz-Chrominanz"-Format vorliegen. Im Unterschied zum
Bayer-Muster oder zu vollständigen
farblich interpolierten RGB-Farb-"Räumen" (d.h. Formaten),
welche die Farbe eines Pixels als ausgewählte Mischung von Primärfarben
(wie beispielsweise Rot, Grün
und Blau) darstellen, definieren Luminanz-Chrominanz-Format-Bilder jedes
Pixel anhand von Farbwert- und Sätti gungspegeln.
Da Bildverarbeitungseinrichtungen, wie beispielsweise Digitalkameras,
Bilder gewöhnlich
im Bayer-Muster-Format aufnehmen, muß ein Bild zunächst in
die vollständige
Auflösung
[RGB] farblich interpoliert werden, und dann sein "Farbraum" in ein Luminanz-Chrominanz-Format,
wie beispielsweise YCrCb konvertiert werden, bevor Luminanz-Chrominanz-Techniken
angewendet werden können.
Eine derartige Farbinterpolation und Farbraumkonvertierung ist oftmals
hinsichtlich der Kosten nicht vertretbar ebenso wie zeitraubend
und nicht erwünscht.
-
1 zeigt eine derartige herkömmliche
Lösung.
Ein Ursprungsbild
100, das beispielsweise von einem Gerät, wie beispielsweise
einer Digitalkamera, aufgenommen worden ist, liegt gewöhnlich in
einem Rohbildformat, wie beispielsweise dem Bayer-Muster, vor. In
dieser Form hat kein Pixel die vollständige Farbdarstellung. So wird
das Bild, entweder vollständig
oder blockweise, an eine Farbinterpolationspixelprozedur
110 weitergeleitet.
Die Farbinterpolationsprozedur erzeugt Voll-Farb-Pixel aus dem Bild
100,
wobei jedes Pixel des Bildes eine vollständige Farbauflösung (beispielsweise
R-, G- und B-Komponenten) aufweist. Das vollständige Farbbild wird dann aus
RGB in YUV oder einen anderen geeigneten Raum farbraumkonvertiert
(Block
120). Eine derartige Konvertierung kann das Kompressionsverhältnis, das
erreichbar ist, verbessern. Sobald es konvertiert ist, wird das
Bild dann an eine primäre
Kompressionsprozedur (Block
130) weitergeleitet. Die
US 5 412 427 beschreibt
ein Verfahren, bei dem zunächst
die Farbinterpolation und dann die Farbraumtransformation ausgeführt werden,
bevor die Luminanz-Chrominanz-Kanäle verlustbehafteten Kompressionsverfahren
zugeleitet werden. Diese Kompression kann eine Vielzahl von Prozeduren,
wie beispielsweise JPEG oder Fourieranalyse, etc., umfassen, weist
aber oftmals als eine Komponente eine als Quantisierung bekannte
Prozedur auf. Ein Bild wird quantisiert, indem ein die Bildpixel dargstellender
Wertebereich auf einen kleineren Wertebereich abgebildet wird. Nach
der Kompression können
die komprimierten Bildwerte codiert werden (Block
140), so
daß sie
für eine Übertragung
oder Speicherung geeignet sind. Ein Kompressionsverfahren unter
Verwendung von gewichteter Wavelet-Vektorquantisierung ist aus der
US 5 602 589 bekannt.
-
Diese
herkömmliche
Lösung
leidet an verschiedenen Nachteilen. Zunächst ist die gesamte Prozedur berechnungsintensiv,
insbesondere bei der Farbinterpolation und der Farbraumkonvertierung.
Die Farbraumkonvertierung allein erfordert (für RGB- in YCrCb-Raum beispielsweise)
neun Multiplikationen und sechs Additionen für jedes Pixel. Oftmals sind
derart komplizierte Techniken nicht in der Lage, auf effektive Weise
bei kleinen, preiswerten Geräten,
wie beispielsweise Digitalkameras, implementiert zu werden.
-
Wenn
Bilder auf einer Digitalkamera oder einer anderen Bildverarbeitungseinrichtung
komprimiert werden sollen, wären
die oben beschriebenen Kompressionstechniken ineffizient oder untragbar.
Somit besteht ein Bedarf für
eine Bildquantisierungs- und -kompressionstechnik, welche nicht
berechnungsintensiv ist, so daß die
Kosten der Digitalkameras, auf welchen diese Technik benutzt wird,
reduziert werden. Um das Erfordernis einer vorherigen Durchführung einer
Farbinterpolation zu vermeiden, sollte ein Quantisierungs- und Kompressionsverfahren
entwickelt werden, das direkt auf Bayer-Muster-Rohbilddaten angewendet
werden kann, die von transportablen Bildverarbeitungseinrichtungen
erzeugt werden, und das die Korrelation zwischen verschiedenen Farbebenen
ausnutzt, um hohe Kompressionsverhältnisse zu erreichen. Darüber hinaus besteht
ein Erfordernis für
die Erhöhung
der Quantisierung- und Kompressionsgeschwindigkeit, so daß die Bildaufnahme
und -speicherung im lokalen Speicher oder die Übertragung aus der Bildverarbeitungseinrichtung
echtzeitnah durchgeführt
werden kann, während
noch die Bildqualität
bewahrt bleibt.
-
Aufgabe
der Erfindung ist es, die komplexen Berechnungen bei der Farbinterpolation
und der Farbraumkonvertierung zu vermeiden.
-
Diese
Aufgabe wird erfindungsgemäß durch
ein Verfahren mit den Merkmalen des Anspruchs 1, eine Einrichtung
zum Verarbeiten eines Bildes mit den Merkmalen des Anspruchs 11
bzw. ein System mit den Merkmalen des Anspruchs 16 gelöst.
-
Vorteilhafte
und/oder bevorzugte Weiterbildungen der Erfindung sind in den Unteransprüchen gekennzeichnet.
-
Die
Aufgaben, Merkmale und Vorteile des Verfahrens und der Einrichtung
gemäß der vorliegenden
Erfindung werden aus der folgenden Beschreibung klar, in welcher:
-
1 eine herkömmliche
Lösung
für die
Bildkompression zeigt.
-
2 einen Bildkompressionsdatenfluß nach einem
Ausführungsbeispiel
der Erfindung veranschaulicht.
-
3 die Wiederherstellung
eines komprimierten und codierten Bildes nach einem Ausführungsbeispiel
der Erfindung veranschaulicht.
-
4 die Ergebnisse der iterativen
Anwendung einer zweidimensionalen DWT auf ein Bild zeigt.
-
5 eine Tabelle von Probenquantisierungsschwellenwerten
für gegebene
Teilbänder
und Kanäle ist.
-
6 eine Blockdarstellung
eines Ausführungsbeispiels
der Erfindung ist.
-
7 eine Blockdarstellung
einer Bildverarbeitungseinrichtung nach einem Ausführungsbeispiel
der Erfindung ist.
-
8 eine Systemdarstellung
eines Ausführungsbeispiels
der Erfindung ist.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Unter
Bezugnahme auf die Figuren werden jetzt Ausführungsbeispiele der Erfindung
beschrieben. Diese Ausführungsbeispiele
werden angegeben, um Aspekte der Erfindung zu veranschaulichen und
sollten nicht als den Umfang der Erfindung einschränkend angesehen
werden. Die Ausführungsbeispiele
werden primär
unter Bezugnahme auf Blockdarstellungen oder Ablaufdiagramme beschrieben.
Bezüglich
der Ablaufdiagramme stellt jeder Block in dem Ablaufdiagramm sowohl
einen Verfahrensschritt als auch ein Element einer Einrichtung zum
Durchführen
des Verfahrensschritts dar. In Abhängigkeit von der Implementierung
können
die zugehörigen
Einrichtungselemente in Hardware, Software, Firmware oder Kombinationen
davon konfiguriert werden.
-
2 veranschaulicht einen
Bildkompressionsdatenfluß nach
einem Ausführungsbeispiel
der Erfindung.
-
Bei
digitalen Anwendungen, wie beispielsweise der Standbild- oder Laufbildverarbeitung,
ist es erwünscht,
daß ein
ursprüngliches
Bild, wie beispielsweise eines, das durch eine Digitalkamera aufgenommen worden
ist, bei Aufrechterhaltung eines bestimmten Qualitätsgrades
in seiner Größe soweit
wie möglich
komprimiert wird, bevor es zur Dekompression übertragen und dann angezeigt
wird. Im Idealfall kann die ausgewählte Kompressionstechnik auch
auf eine beliebige Art eines Datenübertragungsmechanismus angwendet werden.
Die offenbarte Kompressionstechnik, die Gegenstand eines oder mehrerer
Ausführungsbeispiele
der Erfindung ist, wurde speziell entwickelt, um in angepaßter Weise
die Empfindlichkeit des menschlichen Sehapparates gegenüber Farbe
und Licht auszunutzen, um die Bildqualität zu erhalten.
-
Wie
oben erwähnt,
ist ein Rohbild, das von einer Digitalkamera oder einer anderen ähnlichen
Einrichtung aufgenommen worden ist, typischerweise in einem Bayer-Muster
dargestellt. Das Sensor-Array 200 besteht aus einer Menge
von Pixelorten oder "Sinnesorgan", die für jeden
Ort einen Intensitätswert
des auf die Sensoren aus der Umgebung/Szene, die abgebildet wird,
einfallenden Lichtes zur Verfügung
stellen. Bei einem Bayer-Muster weist jeder Pixelort eines Bildes
in dem Sensor-Array (im folgenden "ursprüngliches Bild" genannt) 200 eine
Zuordnung zu einer Farbebene – Rot
(R), Grün
(G) oder Blau (B) – auf.
Da das Bayer-Muster zwei zugeordnete Werte für jedes R und B aufweist, kann
die Grün-Farbebene
als zwei Ebenen G1 und G2 angesehen werden. Die G1 zugeordneten
Pixel liegen in dem Bayer-Muster auf der gleichen Zeile in dem ursprünglichen
Bild 200 wie die R zugeordneten Pixel, während die
G2 zugeordneten Pixel auf der gleichen Zeile liegen wie die B zugeordneten
Pixel.
-
Nach
einem Ausführungsbeispiel
der Erfindung werden sowohl die Korrelation zwischen einem R zugeordneten
Pixel und seinem G1 zugeordneten Nachbarpixel ebenso wie die Korrelation
zwischen einem B zugeordneten Pixel und seinem G2 zugeordneten Nachbarpixel
in vorteilhafter Weise ausgenutzt. Die Pixel in dem Bayer-Muster
können
bei diesem Ausführungsbeispiel
der Erfindung direkt und ohne die Notwendigkeit einer Farbinterpolation
und/oder Farbraumkonvertierung einer Kompression unterzogen werden.
Die G1 und G2 zugeordneten Pixel werden direkt der Kompression (Blöcke 212 und 216)
zugeleitet. Die R- und B-Pixel werden weniger direkt behandelt.
Von dem R-Pixelwert wird sein West-Nachbar-G1-Pixelwert subtrahiert (Block 205).
Diese Differenz (R-G1) wird an die Kompression weitergeleitet (Block 210).
In gleicher Weise wird von jedem B zugeordneten Pixel sein G2 zugeordnetes
Ost-Nachbar-Pixel
subtrahiert (Block 206). Diese Differenz (B-G2) wird dann an
die Kompression (Block 216) weitergeleitet.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung werden die Differenzkanäle, R-G1 und B-G2, erzeugt,
um Vorteil aus einer starken Korrelation zwischen den Farbebenen
zu ziehen. Diese "Kanäle" zusammen mit den
G1- und G2-Kanälen
werden jeweils an geeignete Kompressionsstufen weitergeleitet. Die
reinen Farbkanäle
werden bei einem Ausführungsbeispiel
durch Verwendung einer Subtraktion dekorreliert, aber es könnten andere
Verfahren der Dekorrelation ebenso gut verwendet werden. Da Grün die für den menschlichen Sehapparat
am besten wahrnehmbare Farbe (von den drei Farben R, G und B) ist,
werden die Grün-Ebenen G1
und G2 als Kanäle
bewahrt und als Referenzkanäle
zum Dekorrelieren von Rot und Blau benutzt.
-
Jeder
der vier Kanäle,
R-G1, G1, G2 und B-G2 wird an einen der Kompressionsblöcke 210, 212, 214 und 216 weitergeleitet.
Gemäß einem
Ausführungsbeispiel
der Erfindung finden in jedem Kompressionsblock 210, 212, 214 und 216 zwei
Prozesse statt. Der erste Prozeß ist
eine zweidimensionale diskrete Wavelet-Transformation (2-D DWT).
Die DWT ist nützlicher
bei der Bildkompression als die Fouriertransformation oder eine
andere auf periodischen Funktionen basierende Transformation, da
sie abrupte Änderungen,
Diskontinuitäten
und somit Kantenmerkmale eines Bildes genauer und effektiver beschreibt.
Die 2-D DWT erzeugt "Teilbänder" des Bildes, wie
es unten unter Bezugnahme auf 4 gezeigt
und beschrieben ist. Nachdem die DWT ausgeführt ist, wird ein zweiter,
als Quantisierung bekannter Prozeß ausgeführt.
-
Die
Quantisierung ist die Prozedur des Abbildens einer Menge von n möglichen
Werten auf eine Menge von m möglichen
Werten, wobei m < n
ist. Durch Quantisierung wird die Gesamtzahl der möglichen
Datenwerte für
die DWT-Bilddatenmenge reduziert. Die Abbildung wird gemäß irgendeiner
mathematischen Formel y = f(x) erreicht, wobei x der DWT-Datenwert
und y der quantisierte Datenwert ist. Bei einer derartigen Formel wird
die Anzahl der Gesamtbits, die zum Darstellen des Bildes erforderlich
sind, verringert. Während
dies einen Fehler einbringt, gibt es verschiedene Verfahren im Stand
der Technik, welche benutzt werden können, um die Fehler zu reduzieren.
Nachdem die transformierten Bilddaten quantisiert worden sind, werden
sie codiert. Die Codierung 130 ordnet (packt) die quantisierten
Daten derart an, daß sie
eine geeignete Darstellung aufweisen. Die komprimierten und codierten
Bilddaten können
dann auf einem Medium gespeichert, von einem System zu einem anderen
gesendet oder über
einen Kommunikationsweg, wie beispielsweise ein Netzwerk verteilt werden.
Darüber
hinaus brauchen die komprimierten und codierten Bilddaten nicht
als Einzelbild gesammelt und übertragen
werden, sondern können
als ein codierter Wert nach dem anderen laufend zu ihrem Ziel übertragen
werden.
-
In
Abhängigkeit
von den genauen Parametern, die für die DWT-Transformation, die
Quantisierung und die Codierung verwendet werden, variiert das Kompressionsverhältnis, welches
die Größe des ursprünglichen Bildes
geteilt durch die Größe des komprimierten
Bildes ist. Dieses Ausführungsbeispiel
der Erfindung schafft einen verbesserten Kompressionsprozeß, der dazu
dienen kann, die Qualität
des dekomprimierten Bildes vorteilhaft zu erhöhen, die Komplexität des Dekomprimierens
zu senken und das Kompressionsverhältnis zu optimieren.
-
Nimmt
man an, daß andere
Bildkompressionstechniken ebenfalls die DWT benutzen können, so
hängt die
Qualität
des dekomprimierten Bildes zum großen Teil von der benutzten
Quantisierung ab. Ein wichtiger Aspekt der Erfindung ist eine scheinbar
verlustlose Quantisierungslösung,
deren Ergebnisse eine verlustbehaftete Kompression sind, die beim
Dekomprimieren von dem menschlichen Betrachter als verlustlos wahrgenommen
wird. Darüber
hinaus ist die bei diesem Ausführungsbeispiel
der Erfindung verwendete Quantisierungslösung zu einer schnellen und
einfachen Berechnung in der Lage, was eine echtzeitnahe Leistung
für die Hardware
ergibt, auf welcher die Kompression implementiert ist. Durch Ausnutzung
der Eigenschaft der DWT, Teilbänder
des Bildes zu erzeugen, wird bei einem Ausführungsbeispiel der Erfindung
eine adaptive Quantisierungsprozedur zur Verfügung gestellt, die auf die
Teilbandeigenschaften und Farbkanaleigenschaften anspricht.
-
Für jeden
Kanal, (R-G1), G1, G2 und (B-G2), wird ein Quantisierungsschwellwert
für jedes
von dem 2-D-DWT-Prozeß erzeugte
Bildteilband definiert. Jeder derartige Schwellwert Q(s,c), wobei "s" das Teilband darstellt und "c" den Kanal, wird beim Quantisieren der
DWT-Ergebniswerte bei diesem Kanal "c" und
Teilband "s" verwendet. Somit
ist für
Werte Xsc (oder DWT-Koeffizienten, die beim Erlangen dieser Werte
verwendet werden) der quantisierte Wert Ysc einfach
wobei die Funktion round
(k) den Wert k auf die nächste
ganze Zahl auf- oder abrundet. Somit ist bei einem gegebenen Subband
und einem gegebenen Kanal die Quantisierung eine skalare und gleichförmige Quantisierungsformel
und folglich zu einer schnellen und effektiven Hardwareimplementierung
in der Lage. Bei einem Ausführungsbeispiel
der Erfindung modifizieren die Quantisierungsschwellwerte die DWT-Koeffizienten
selbst, womit die Notwendigkeit einer separaten Quantisierung beseitigt
wird (siehe
6 und zugehörige Beschreibung).
Darüber
hinaus verbessert die Verwendung eines speziell in Abhängigkeit
von dem Kanal und dem Teilband angepaßten Schwellenwerts die Qualität des bei
der Dekompression wieder hergestellten Bildes in bezug auf Farben
(Kanäle)
und Kantenwahrnehmbarkeit (eine Funktion der DWT-Teilbandauflösung) beträchtlich gegenüber Quantisierungstechniken,
die gleichförmig
oder willkürlich
sind. Der während
der Quantisierung eingeführte
absolute Fehler ist gleich oder kleiner als Q(s,c)/2. Bei einem
Ausführungsbeispiel
der Erfindung werden experimentell abgeleitete Werte für Q(s,c)
derart bestimmt, daß der
Fehler nicht zu einem wahrnehmbaren Verlust der Bildqualität führt.
-
3 veranschaulicht die Wiederherstellung
eines komprimierten und codierten Bildes gemäß einem Ausführungsbeispiel
der Erfindung.
-
Die
Decodierungsblöcke,
Inverse-Quantisierung-Blöcke
und Inverse-DWT-Blöcke
enthalten einen Prozeß,
welcher versucht, das ursprüngliche
Bild 200 aus den komprimierten und codierten Bilddaten 240 (siehe 2) wieder herzustellen.
Das gewonnene decodierte und dekomprimierte Bild ist keine exakte
Pixel-für-Pixel-Rekonstruktion
des ursprünglichen
Bildes, da die Kompression "verlustbehaftet" ist. Durch Verwendung
der DWT-Eigenschaften und der scheinbar verlustlosen Quantisierungstechniken,
die Gegenstand der verschiedenen Ausführungsbeispiele der Erfindung
sind, kann jedoch der Verlust so gering sein, daß er für die menschliche Betrachtung
nicht wahrnehmbar ist, und somit die Qualitität des dekomprimierten Bildes
gegenüber
anderen verlustbehafteten Techniken erhöht werden. Darüber hinaus
macht die im Vergleich zu anderen inversen Techniken erhöhte Einfachheit
der inversen DWT-Prozedur sie für
eine schnelle und einfache Implementierung geeignet.
-
Die
komprimierten und codierten Bilddaten 240 können Kanal
für Kanal
und Teilband für
Teilband effizient gespeichert werden (siehe 4). So können die komprimierten und
codierten Kanäle
(R-G1), G1, G2 und (B-G2) separat decodiert und dekomprimiert werden.
Zunächst
werden die zu jedem Kanal gehörenden Daten
decodiert (z.B. Null-Lauflängen-,
Huffmann-Decodierung, etc.) (Blöcke 310, 312, 314 und 316).
Jeder Kanal und jedes Teilband der Daten können unter Verwendung von Techniken
codiert sein, die sich von denen der anderen Teilbänder und
Kanäle
unterscheiden, so daß sie
unter Berücksichtigung
irgendwelcher Differenzen der Codiertechniken decodiert werden müssen. Jeder
Kanal der decodierten Daten wird dann dekomprimiert (Blöcke 320, 322, 324 und 326).
Wie dies bei den in 2 gezeigten
Kompressionsblöcken
der Fall war, besteht die Dekompression aus zwei Prozeduren, die
Dequantisierung der decodierten Daten und die anschließende Ausführung einer
inversen DWT (IDWT).
-
Der
Dequantisierungsblock multipliziert einfach die decodierten Datenwerte
(welche die quantisierten DWT-Koeffizienten sind) mit dem Quantisierungschwellwert
Q(s,c) für
das jeweils gegebene Teilband und den richtigen Kanal. Nach der
Dequantisierung wird eine inverse DWT für die Daten jedes Kanals und
Teilbands durchgeführt.
Sobald die IDWT abgeschlossen ist, kann eine Approximation des ursprünglichen
Bildes 200 Pixel für
Pixel gewonnen werden. Durch Zurückaddieren
von G1 zu dem wiederhergestellten Wert (R-G1) (Block 325)
und von G2 zu dem wiederhergestellten Wert von (B-G2) (Block 326)
kann jeder Bayer-Muster-Pixelwert R, G1, G2 und B aus dem ursprünglichen
Sensor-Array 200 näherungsweise
wiederhergestellt werden. Die wiederhergestellten R-, G1-, G2- und
B-Werte können
mit den Werten des ursprünglichen
Bildes 200 identisch sein oder davon abweichen, zeigen
aber infolge der Benutzung der Farbkanalkorrelation scheinbar verlustlose Eigenschaften.
So ist das wiederhergestellte Bild von hoher Qualität. Nach
einem weiteren Ausführungsbeispiel
der Erfindung kann der Dequantisierungsprozeß mit der inversen DWT verschmolzen
werden, indem die inversen DWT-Koeffizienten
durch die richtigen Quantisierungsschwellwerte modifiziert werden.
-
Die
Dekompression kann als Hardware, Software oder durch eine Kombination
davon implementiert werden und kann physisch von der die Funktion
des Codierungskompressionsprozesses durchführenden Einrichtung getrennt
sein. Der grundlegende Datenfluß für verlustbehaftete
Kompressionsschemata besteht aus der Kompression und Dekompression
und enthält
oftmals außerdem
eine Zwischenübertragung
aus dem Kompressionsblock zu dem gewünschten Ziel, welches Zugriff
auf die Dekompressionsmöglichkeit
hat.
-
4 zeigt die Ergebnisse der
iterativen Anwendung einer zweidimensionalen (2-D) DWT auf ein Bild.
-
Wie
es in der parallel anhängigen
US-Patentanmeldung mit dem Titel "An Integrated Systolic Architecture
for Decomposition and Reconstruction of Signals Using Wavelet Transforms", Seriennummer 08/767,976 (im
folgenden als Patentanmeldung '976
bezeichnet) beschrieben ist, führt
die Anwendung einer 2-D-DWT auf einen Bildraum zur Erzeugung von
vier "Teilbändern". Beispielsweise
zeigt 4 daß ein Bild
F durch die 2-D-DWT in vier Teilbänder S1, S2, S3 und S4 zerlegt
wird. Das kritischste Teilband dieser Teilbänder ist S1. Das Teilband S1
wird auch als "LL"-Teilband bezeichnet,
was auf der Doppel-Tiefpaß (LP)-Filterung
beruht, die zu seiner Erzeugung verwendet wird. S1 (LL) ist im wesentlichen
maßstäblich an
das ursprüngliche
Bild S angenähert
und enthält
die hervorstechendsten Bildinformationen. Die Teilbänder S2,
S3 und S4 enthalten Kanteninformationen und dann, wenn das Eingangsbild
verrauscht ist, darüber
hinaus eine beträchtliche
Menge dieses Rauschens. Die Teilbänder S2, S3 und S4 werden infolge
der zu ihrer Erzeugung verwendeten verschiedenen Tiefpaß- und Hochpaß-Filterung
auch als HL-, LH- und HH-Teilbänder
bezeichnet. Da die Teilbänder
S2, S3 und S4 für
die Wahrnehmung weniger signifikant sind als das Teilband S1, können diese
Teilbänder "gröber" quantisiert werden
(das heißt
ihnen ein höherer
Schwellenwert q zugewiesen werden), so daß die darin befindlichen Werte
stärker
komprimiert werden. Das S1-Teilband braucht eventuell nicht direkt
quantisiert zu werden, da dieses Teilband bei der Erzeugung von
DWTs höherer
Ebene benutzt wird. Wie oben erwähnt, wird
das ursprüngliche
Bild gemäß einem
Ausführungsbeispiel
der Erfindung Kanal für
Kanal einer 2-D-DWT unterworfen. Die vier bei einem Ausführungsbeispiel
der Erfindung benutzten Kanäle
umfassen (R-G1), G1, G2 und (B-G2). Die jeden dieser Kanäle bildenden
Daten können
für sich
genommen als "Bild" angesehen werden,
an dem eine 2-D-DWT durchgeführt
wird. Die vier Teilbänder
S1, S2, S3 und S4 bilden eine DWT der Ebene 1. So bezeichnet
der Index 1 in 4 un ter
den Bezeichnungen LL1, HL1,
LH1 und HH1, das
diese Teilbänder zur
Ebene 1 gehören.
-
Die
Teilbänder
S1, S2, S3 und S4 der Ebene 1 ergeben sich aus der einmaligen
Anwendung der 2-D-DWT auf das Bild S. Sofern die 2-D-DWT erneut,
auf das Teilbandergebnis S1, angewendet wird, wird dies als die
Anwendung einer 2-Ebenen-2-D-DWT
angesehen. Die 2-D-DWT der zweiten Ebene würde zu der Erzeugung von vier
neuen Teilbändern
S11, S12, S13 und S14 führen,
welche aus dem Teilband S1 aus der 2-D-DWT der Ebene 1 erzeugten
Teilbänder
sind. Diese Teilbänder
S11, S12, S13 und S14 haben die Bezeichnung LL2,
HL2, LH2 bzw. HH2, da sie Teilbänder der DWT der Ebene 2 sind.
Wiederum enthält
das LL2-Teilband S11 die hervorstechendsten
Merkmale aus S1, während
die Teilbänder
S12, S13 und S14 Kanten und mögliche
Rauschinformationen aus dem Teilband S1 enthalten. Die 2-D-DWT kann
somit viele Male auf LL-Teilbänder
jeder Ebene angewendet werden, um immer mehr Ebenen der DWT-Auflösung und
somit Bildteilbänder zu
gewinnen. Gemäß einem
Ausführungsbeispiel
der Erfindung wird nur eine Ebene-l-2-D-DWT-Prozedur betrachtet. Wenn weitere
Ebenen der 2-D-DWT-Verarbeitung
auftreten, würde
jedem der neu erzeugten Teilbänder
ein Q oder Quantisierungsschwellwert für jeden darin vorhandenen Kanal
zugewiesen werden. Die Bestimmung des Q(s,c)-Werts für ein gegebenes
Teilband "s" und einen gegebenen
Kanal "c" erfolgte empirisch
für ein
9-7-biorthogonales Spline-DWT-Filter. Das Ergebnis dieser Studie
ist in 5 tabellarisch
dargestellt.
-
5 ist eine Tabelle von Beispielquantisierungsschwellwerten
für gegebene
Teilbänder
und Kanäle.
-
Die
Quantisierungsschwellwerte Q(s,c) können auf verschiedenstartige
Weise bestimmt/ausgewählt werden.
Bei einer zum Ersinnen der verschiedenen Ausführungsbeispiele der Erfindung
durchgeführten
Studie wurden empirische Daten, die die Wahrnehmung einer Gruppe
von Beobachtern einer Menge von DWT-komprimierten Bildern betrafen,
gesammelt. Bei diesen Experimenten wurden die Schwellenwerten Q(s,c)
erhöht, bis
eine Artifakt-Bildung infolge der Quantisierung beobachtbar wurde.
Eine breite Vielfalt von Bildern mit jeweils unterschiedlichen Charakteristika
wurde für
die Studie ausgeführt.
Die Tabelle gemäß 5 veranschaulicht die Ergebnisse
der Studie, und es ist statistisch gesichert, daß diese auf ein beliebiges
Bild anwendbar sind, vorausgesetzt daß das 9-7-biorthogonale Spline-Filter,
welches im Stand der Technik gut bekannt ist, als Grundlage für die DWT
verwendet wird. Wenn eine abweichende Technik, wie beispielsweise
DCT oder eine abweichende Grundlage für die DWT verwendet wird, kann
es erforderlich sein, daß neue
Quantisierungsschwellwerte ausgewählt oder bestimmt werden müssen, da
jedes Filter dasselbe Bild unterschiedlich wiedergibt. Bei einem
Ausführungsbeispiel
der Erfindung können
diese Werte in einen ROM vorab geladen werden, oder bei einem anderen
Ausführungsbeispiel
der Erfindung können
diese Werte in einen überschreibbaren Speicher
eingeschrieben werden, so daß sie
modifiziert werden können.
-
Gemäß 4 gehören die Teilbänder, die
mit S1, S2, S3 und S4 bezeichnet sind, sämtlich zur DWT der Ebene 1.
Das Teilband S4 weist Quantisierungsschwellwerte auf, die etwa fünfmal größer sind
als die der Teilbänder
S2 und S3. Somit werden die Informationen (Datenwerte) in dem Teilband
S4 in stärkerem
Maße quantisiert
und somit stärker
komprimiert. Der bei einem höheren
Quantisierungsschwellwert und somit bei weniger abgebildeten Werten
implizit enthaltene Fehler ist tolerierbar, da das S4-Teilband die
am wenigsten relevanten visuell wahrnehmbaren Bilddetails, wie beispielsweise
diagonale Kanten und Rauschen, enthält. Wie oben erwähnt, enthält S1 die
meisten hervorstechenden und visuell wesentlichen Informationen
des ursprünglichen
Bildes S. Für
eine DWT der Ebene k werden die niedrigsten k-1 LL-Teilbänder bewahrt
(das heißt
q = 1) und somit nicht quantisiert, da diese Teilbänder selbst
weiter in LL-, LH-, HL- und HH-Teil bänder höherer Ebene aufgelöst werden.
Das LLk-Teilband oder DWT-Teilband der höchsten Ebene
wird quantisiert (Q größer als
1), da es keine Auflösung
von LLk einer höheren Ebene gibt, innerhalb
welcher die Quantisierung berücksichtigt würde. Die
Teilbänder
S2 und S3 sämtlicher
Ebenen weisen Quantisierungsschwellwerte auf, die irgendwo zwischen
denen der S1- und S4-Teilbänder
der gleichen Ebene liegen.
-
Bezüglich der
Kanäle
wurden die Quantisierungsschwellwerte für R, G, B und dann (R-G1) und
(B-G2) bestimmt. Die G-Werte gelten sowohl für G1 als auch G2. Im allgemeinen
kann blau stärker
(mit höheren Schwellwerten)
quantisiert werden als grün
(G1, G2) und rot. Jedoch werden bei dem Ausführungsbeispiel der Erfindung
die Kanäle
(R-G1) und (B-G2) anstelle des reinen R und B bei dem Kompressionsprozeß berücksichtigt.
Diese "Differenz-" oder dekorrelierten
Kanäle
haben viel höhere
Quantisierungsschwellwerte als die reinen Farbkanäle R, G
und B. Dies beruht auf der Tatsache, daß die Kanteninformationen des
Bildes in der G1- und G2-Ebene (Kanäle) berücksichtigt werden. Wenn diese
G1- und G2-Werte von den Werten der R- bzw. B-Ebene subtrahiert
werden, bewahrt die sich ergebende Differenz die Chrominanzkomponente
in der R- und B-Ebene, die sich nicht in G1 und G2 befindet. Somit
optimierten die Differenzkanäle
(R-G1) und (B-G2) den Beitrag der R- und B-Ebene zu dem Gesamtbild
und seiner wahrnehmbaren Qualität.
Beobachtungen zeigten, daß das
S4-Teilband in den
Differenzkanälen
(R-G1) und (B-G2) keine Bildinformationen enthält, die wahrnehmbar von den
in den G1- und G2-Kanälen
enthaltenden Informationen abweicht, und somit werden Nullwerte
dem gesamten Teilband zugewiesen (ein Q-Wert von 00). Gemäß einem
Ausführungsbeispiel
der Erfindung braucht das Teilband S4 nicht für die Differenzkanäle gespeichert
zu werden, da in ihm keine wahrnehmbaren Informationen enthalten
sind. Je höher
die DWT-Ebene desto mehr Genauigkeit oder Auflösung wird aus dem eingegebenen
Teilband LL der vorhergehenden Ebene gewonnen. Obwohl eine 3- Ebenen-DWT in 4 gezeigt ist, kann eine
beliebige Anzahl von DWT-Ebenen gemäß den konstruktiven Anforderungen erzeugt
werden.
-
6 ist eine Blockdarstellung
eines Ausführungsbeispiels
der Erfindung.
-
Gemäß einem
Ausführungsbeispiel
der Erfindung, das unter Bezugnahme auf die 2 und 3 beschrieben
worden ist, werden die Kompressions- und Dekompressionsprozesse
in zwei Stufen unterteilt, eine für die Quantisierung (und Dequantisierung)
und eine weitere separate Stufe für die DWT (und inverse DWT). Gemäß einem
anderen Ausführungsbeispiel
der Erfindung jedoch können
die Quantisierungs (Dequantisierungs)-Stufen mit der DWT (und inversen
DWT) vereinigt werden. Die Ausgaben der DWT und inversen DWT werden
durch einen Satz kaskadierender Filter (siehe Patentanmeldung '976) erzeugt, deren
Koeffizienten die Koeffizienten der DWT-Funktion (und inversen DWT-Funktion)
sind. Diese Koeffizienten werden mit Eingabepixelwerten multipliziert,
und die Produkte selektiv addiert, um die DWT-Ausgaben zu erzeugen.
Wenn die Quantisierungsschwellwerte algebraisch mit den DWT-Koeffizienten
kombiniert werden, wird die Quantisierung während der DWT-Berechnung selbst
erreicht.
-
Bei
dem Ausführungsbeispiel
gemäß 6 wird die 2-D-DWT implementiert,
indem die eindimensionale (1-D) DWT zweimal wiederholt wird. Diese
Lösung
ist infolge der Trennbarkeit der DWT-Filter möglich (siehe Patentanmeldung '976). Es mag möglich sein,
zweidimensionale DWT- oder andere zweidimensionale Transformationen
unter Verwendung eines einzigen zweidimensionalen Filters zu implementieren,
sofern ein derartiges Filter machbar ist. Im Gegensatz dazu führt, wie
es in der Patentanmeldung '976
ausgeführt
ist, die eindimensionale Filterlösung
die DWT zeilenweise und dann spaltenweise an den zeilenweise erzeugten DWT-Ergebnissen
durch. Beispielsweise sei ein Kanal 'c' 600 betrachtet,
wie er in 6 gezeigt
ist. Dieser repräsentiert
bei einem Ausführungs beispiel
der Erfindung die Pixeldaten aus einem bestimmten Farb/Differenz-Kanal,
G1, G2, (R-G1) oder (B-G2), kann aber bei einem anderen Ausführungsbeispiel
auch ein gesamtes Bild oder einen Bildabschnitt darstellen. Zunächst wird
eine DWT zeilenweise durch das 1-D-DWT-Modul 610 durchgeführt. Ein
Satz Steuersignale #1 regelt den Betrieb dieser zeilenweise durchgeführten DWT
und kann Koeffizienten in Abhängigkeit
von der Ebene der DWT liefern (siehe unten). Das Modul 610 erzeugt
ein "L-Band" und "H-Band" aus dem Kanal "c".
-
Sobald
die zeilenweise durchgeführte
DWT durchgeführt
ist, werden die sich ergebenden "L"- und "H"-Bänder
durch eine Matrixtransponierschaltung 620 transponiert.
Derartige Matrixtransponierschaltungen sind im Stand der Technik
gut bekannt. Die Matrixtransponierschaltung 620 liefert
Spalte für
Spalte das Ergebnis aus der Matrixtransponierschaltung 620 als
Eingabe in das zweite 1-D-DWT-Modul 630. Das zweite 1-D-DWT-Modul 630 wird
geregelt und gegebenenfalls mit Koeffizienten versorgt mit Hilfe
eines Satzes von Steuersignalen #2. Das Ergebnis der Durchführung einer
1-D-DWT, die spaltenweise an den transponierten zeilenweise erzeugten
1-D-DWT-Daten aus
der Matrixtransponierschaltung 620 durchgeführt wird,
wird als 2-D-DWT-Ergebnisdaten 640 gezeigt. Jeder Durchlauf
durch die zeilenweise durchgeführte
1-D-DWT, die Transponierung und die spaltenweise durchgeführte 1-D-DWT ist äquivalent
der Durchführung
einer 2-D-DWT. Die Ergebnisdaten 640 sind die zusammengesetzten
Teilbänder
LL, HL, LH und HA und umfassen eine Ebene der DWT, wie sie anhand
von 4 beschrieben wurde.
-
Der
oben beschriebene Prozeß dient
dem Erzeugen der Ergebnisse einer Ebene der DWT. Sofern mehr als
eine Ebene, wie beispielsweise drei Ebenen der DWT-Auflösung gewünscht sind,
so kann ein Zähler verwendet
werden und mit dem Wert drei geladen werden. Jedesmal dann, wenn
ein 2-D-DWT-Zyklus abgeschlossen wird, wird der Zähler dekrementiert.
Ein Entscheidungsblock 650 kann diesen Zähler überprüfen, um
zu be stimmen, ob eine weitere DWT-Ebene erforderlich ist. Sofern
eine weitere Ebene erforderlich ist, wird das "LL"-Teilband
zurück
in den 2-D-DWT-Prozeß geleitet,
um einen weiteren Satz von Teilbändern
daraus zu erzeugen. 4 beispielsweise
zeigt ein 3-Ebenen-2-D-DWT-Ergebnis. Auf jeder Ebene wird das Teilband LLk, wobei k die Ebene ist, als Eingabe verwendet
und dann in vier weitere Teilbänder
durch Verwendung der 2-D-DWT zerlegt. Diese Prozedur wird wiederholt,
bis die letzte gewünschte
Ebene der DWT-Auflösung
erreicht ist. Darüber
hinaus werden, wenn jede Ebene der DWT abgeschlossen ist, die Teilbänder HL,
LH und HA an einen Codierer 660 gesendet, welche eine Binärcodierung,
wie beispielsweise eine Huffman- oder Lauflängencodierung an den Daten
durchführt.
Die codierten Daten werden dann als Abschnitt eines komprimierten
Kanals c' 670 gespeichert.
Auf jeder Ebene vor der letzten Ebene der DWT-Auflösung wird
das LL-Teilband nicht
codiert, da es zurück
an den 2-D-DWT-Prozeß eingespeist
wird, um weitere Teilbänder
zu erzeugen. Auf der letzten Ebene der DWT wird das LL-Teilband
gesendet, um durch die Codierung 660 codiert zu werden. Die
Ausgabe des Codierers 660 wird gespeichert und gesammelt
und bildet bei Abschluß einen
komprimierten Kanal c' 670.
Auf die oben beschriebene Weise wird jeder der Kanäle R-G1,
G1, G2 und B-G2 in einen komprimierten Kanal verarbeitet.
-
Um
eine Quantisierung während
der (von den DWT-Modulen 610 und 630 ausgeführten) DWT-Filterung
zu erreichen, müssen
die Filterkoeffizienten von den Quantisierungskoeffizienten Q(s,c)
modifiziert werden, wobei s das Teilband und oder Kanal ist. Die
Modifikation der DWT-Koeffizienten variiert gemäß der Natur des Filters und
des verarbeiteten Teilbands und ist unten zusammengefaßt:
-
ZEILENWEISE DURCHGEFÜHRTE 1-D-DWT:
-
- • Tiefpaßfilterung über das
LLk-1-Teilband (oder über das Quellbild für k=1) (Erzeugung
des Teilbands L): Jedes Ge wicht (Koeffizient) li des
Filters wird um den Faktor skaliert.
- • Hochpaßfilterung über das
LLk-1-Teilband (oder über das Quellbild) (Erzeugung
des Teilbands H): Jedes Gewicht (Koeffizient) hi des
Filters wird um den Faktor skaliert:
-
SPALTENWEISE DURCHGEFÜHRTE 1-D-DWT:
-
- • Tiefpaßfilterung über die
Teilbänder
L und H (Erzeugung der Teilbänder
LL und LH): Jedes Gewicht (Koeffizient) li des
Filters wird um den Faktor skaliert:
- • Hochpaßfilterung über das
Teilband L (Erzeugung des Teilbands HL): Jedes Gewicht (Koeffizient)
hi des Filters wird um den Faktor skaliert:
- • Hochpaßfilterung über das
H-Teilband (Erzeugung des Teilbands HH): Jedes Gewicht (Koeffizient)
hi des Filters wird skaliert um den Faktor: wobei Q (HLk,
c), Q (HHk, c) und Q (LLk,
c) sind jeweils die scheinbar verlustlosen Schwellenwerte der Teilbänder HL,
HH und LL in der k-ten Ebene für
den Kanal c. Die obigen Bedingungen erreichen direkt die Quantisierung,
da Q(HLk, c) = Q(LHk,
c) ist. Tatsächlich
ergeben sich nach der zeilenweise und spaltenweise durchgeführte Filterung
der vier Teilbänder
auf einer beliebigen Ebene die vier Teilbänder in einer skalierten (das
heißt
quantisierten) Form, jeweils um die Faktoren:
-
7 ist eine Blockdarstellung
einer Bildverarbeitungseinrichtung nach einem Ausführungsbeispiel der
Erfindung.
-
7 ist eine Blockdarstellung
der internen Bildverarbeitungs- und -kompressionskomponenten einer Bildverarbeitungseinrichtung,
die wenigstens ein Ausführungsbeispiel
der Erfindung enthält.
Bei der Beispielschaltung gemäß 7 erzeugt ein Sensor 700 Pixelkomponenten,
welche Farb/Intensitätswerte
aus irgendeiner Szene/Umgebung sind. Die n-Bit-Pixelwerte, die von
dem Sensor 700 erzeugt worden sind, werden an eine Aufnahmeschnittstelle 710 gesendet.
Der Sensor 700 erfaßt
in dem sich auf die Erfindung beziehenden Kontext typischerweise
entweder R-G- oder B-Komponenten aus einer "Abtastung" einer Fläche oder eines Ortes. So ist
der Intensitätswert
jedes Pixels nur einer der drei Farbebenen zugeordnet, und sie können zusammen
ein Bayer-Muster, wie beispielsweise das oben gezeigte, bilden.
Die Aufnahme schnittstelle 710 löst das von dem Sensor erzeugte
Bild auf und weist den einzelnen Pixeln Intensitätswerte zu. Die Menge sämtlicher
derartiger Pixel für
das gesamte Bild liegt in einem Bayer-Muster gemäß wenigstens einem der Ausführungsbeispiele
der Erfindung vor.
-
Es
ist typisch bei einem Sensorbauelement, daß es sein kann, daß einige
der Pixelzellen in der Sensorebene nicht in der richtigen Weise
auf den Beleuchtungszustand in der Szene/Umgebung antworten. Im
Ergebnis können
die von dieser Zelle erzeugten Pixelwerte defekt sein. Diese Pixel
werden "tote Pixel" genannt. Die "Pixelaustausch"-Einheit 715 ersetzt
jedes tote Pixel durch das unmittelbar vorhergehende gültige Pixel
in der Zeile.
-
Eine
RAM-Tabelle 716 besteht aus den Zeilen- und Spaltenindizes
der toten Pixel, welche durch den Sensor geliefert werden. Diese
RAM-Tabelle 716 unterstützt
die Identifizierung des Orts der toten Pixel in Bezug auf das aufgenommene
Bild. Ein Kompandierungsmodul 725 ist eine Schaltung, die
jedes ursprüngliche Pixel
von n Bit (typischerweise ist n = 10) Intensität, das von dem Sensor aufgenommen
wurde, in einen m-Bit-Intensitätswert
konvertieren kann, wobei m < n
(typischerweise ist m = 8). Das Kompandierungsmodul 725 ist
nicht erforderlich, sofern der Sensor 700 und die Aufnahmeschnittstelle 710 einen
m-Bit-Pixelwert liefern.
-
Gemäß wenigstens
einem Ausführungsbeispiel
der Erfindung, wie es oben beschrieben wurde, können Sätze von m-Bit-Pixelwerten direkt
ohne Rückgriff
auf Farbinterpolationen und/oder Farbraumkonversionen kompremiert
werden. Der Kanalgenerator 727 ist mit dem Kompandierungsmodul 725 gekoppelt
und kann aus diesem m-Bit-Pixeldatenwerte empfangen, welche gemäß dem Bayer-Muster
angeordnet sein können.
Jeder m-Bit-Wert
wird von dem Kanalgenerator verwendet, um die vier Kanäle (R-G1),
G1, G2 und (B-G2) zu erzeugen. Wenn beispielsweise Pixel Zeile für Zeile
aufgenommen werden, würde
eine erste Zeile R- und G1-Pixelwerte und somit nur Ausgaben auf den
Kanälen
(R-G1) und G1 ergeben. Die nächste
aufgenommene Zeile würde
den G2- und den (B-G2)-Kanal ergeben. Der Kanalgenerator 727 sendet
zwei Kanäle
während einer
Zeile und die beiden verbleibenden zwei Kanäle während der nächsten Zeile. Diese Kanäle werden
dann einem Kompressor/Quantisierer 728 eingegeben. Eine
RAM-Tabelle 729 kann verwendet werden, um DWT-Koeffizienten
und/oder Quantisierungsschwellwerte für jeden Kanal/jedes Teilband
zu speichern, wie sie bei der Ausführung der oben beschriebenen
Kompressionstechniken gewünscht
sind. Darüber
hinaus können Additions-
und Multiplikationseinheiten, Schieber und eine Steuersignalisierung
in dem Kompressor/Quantisierer 728 zur Verfügung gestellt
werden, um die erforderliche DWT-Berechnung auszuführen (siehe
Patentanmeldung '976).
Der Kompressor/Quantisierer 728 kann so ausgebildet sein,
daß er
Hochpaß-
und Tiefpaß-DWT-Ausgaben
für jeden
Kanal und jedes Teilband bereitstellt. Diese komprimierten Kanalausgangssignale,
welche die komprimierten Bilddaten darstellen, werden dann durch
einen Codierer 730 binärcodiert.
Der Codierer 730 kann eine Lauflängen-, Huffman- oder eine andere
geeignete Codierung benutzen, um die komprimierten Daten zur Speicherung
in die Speicherarrays 740 zu packen.
-
Jede
der RAM-Tabellen 716, 726 und 729 kann
direkt mit dem Bus 760 derart kommunizieren, daß ihre Daten
geladen und dann später,
sofern gewünscht,
modifiziert werden können.
Darüber
hinaus können diese
RAM-Tabellen und weitere RAM-Tabellen verwendet werden, um gegebenenfalls
Zwischenergebnisdaten zu speichern. Obwohl die einzelnen Komponenten
(Auswähler,
Schieber, Register, Additions-, Multiplikationseinheiten und Steuer/Adreß-Signale)
der Module 727, 728 und 730 nicht detailliert
beschrieben worden sind, wird ein Fachmann ohne weiteres in der
Lage sein, eine derartige Einrichtung zu implementieren, sofern er
die für
die verschiedenen Ausführungsbeispiele
der Erfindung angegebenen Details kennt.
-
8 ist eine Systemdarstellung
eines Ausführungsbeispiels
der Erfindung.
-
Veranschaulicht
ist ein Computersystem 810, welches eine beliebige Mehrzweckdatenverarbeitungsmaschine
oder spezielle Datenverarbeitungsmaschine, wie beispielsweise ein
PC (Personalcomputer), sein kann, die mit einer Kamera 830 gekoppelt
ist. Die Kamera 830 kann eine Digitalkamera, eine digitale
Videokamera oder eine beliebige Bildaufnahmeeinrichtung oder Bildverarbeitungseinrichtung
oder eine Kombination dessen sein und wird verwendet, um ein Bild
einer Szene 840 aufzunehmen. Im wesentlichen werden die
aufgenommenen Bilder durch eine Bildverarbeitungsschaltung 832 verarbeitet,
so daß sie
auf effektive Weise in einer Bildspeichereinheit 834, welche
ein ROM, RAM oder eine andere Speichereinrichtung, wie beispielsweise
eine Festplatte sein kann, gespeichert werden kann. Das in der Bildspeichereinheit 834 enthaltene
Bild, das für
das Computersystem 810 vorgesehen ist, kann gemäß einem
Ausführungsbeispiel
der Erfindung direkt als komprimiertes Bild gespeichert werden.
Bei den meisten Digitalkameras, die eine Standbildgebung ausführen können, werden
die Bilder zunächst
gespeichert und später
heruntergeladen. Dies gestattet der Kamera 830, das/die
nächste
Objekt/Szene schnell ohne zusätzliche
Verzögerung
aufzunehmen. Die Erfindung in ihren verschiedenen Ausführungsbeispielen
verringert, insbesondere weil sie ein komprimiertes Bild zur Verfügung stellt,
daß direkt
aus dem aufgenommenen 8-Bit-Bayer-Muster konvertiert ist, die Berechnungsanforderungen an
die Kamera 830 und die zugehörigen Kosten, was eine weniger
teure Kamera ermöglicht.
-
Die
Bildverarbeitungsschaltung 832 führt die Kompression, Quantisierung
und Codierung direkt aus der Bayer-Muster-Erfassung (mit weiteren Zwischenschritten,
wie beispielsweise Pixelsubstitution oder Kompandierung, siehe 7 und zugehörige Beschreibung)
der Kamera 830 bei diesem Ausführungsbeispiel der Erfindung
aus. Wenn ein komprimiertes und codiertes Bild zu dem Computersystem 810 heruntergeladen
wird, kann es an irgendein Ausgabegerät, wie beispielsweise einen
(nicht gezeigten) Drucker oder an ein Monitorgerät 820 ausgegeben werden.
Wenn gemäß einem
Ausführungsbeispiel
der Erfindung das Bild in dem Bayer-Muster-Format vorliegt, nachdem
es dekomprimiert worden ist, kann es erforderlich sein, daß es vor
seiner Wiedergabe in ein RGB-Format vollständiger Farbauflösung konvertiert
werden muß.
Die Bilddekompression kann unter Verwendung eines Prozessors 812,
wie beispielsweise des Pentium® (ein Produkt der Intel
Corporation), und eines Speichers 811, wie beispielsweise
eines RAM, welcher verwendet wird, um Befehlsadressen und Ergebnisdaten
zu speichern/zu laden, erreicht werden und ist eine gut bekannte
Operation auf dem Gebiet der Kollorimetrie.
-
Bei
einem alternativen Ausführungsbeispiel
kann der oben beschriebene Kompressionsprozeß in einer Software-Anwendung
erreicht werden, die auf dem Computersystem 810 abläuft, statt
direkt in der Kamera 830. Bei einem derartigen Ausführungsbeispiel
kann die Bildverarbeitungsschaltung vorteilhafterweise nur das Bayer-Muster-Bild
speichern. Die zum Durchführen
der integrierten Farbinterpolation und Farbraumkonversion nach dem
Herunterladen aus der Kamera 830 verwendeten Anwendungen
können
in Form einer ausführbaren Datei
vorliegen, die aus einem in einer Sprache wie beispielsweise C++
geschriebenen Quellcode kompiliert wurde. Die Befehle dieser ausführbaren
Datei, welche den zum Skalieren des Bildes erforderlichen Befehle entsprechen,
können
auf einer Platte 818 oder in einem Speicher 811 gespeichert
werden. Darüber
hinaus kann eine derartige Anwendungssoftware auf einem Netzwerk
oder einem computerlesbaren Medium zur Verwendung mit anderen Systemen
verteilt sein. Für
einen Fachmann ist es sofort klar, wie eine Rechenmaschine zu programmieren
ist, um eine scheinbar verlustlos quantisierte DWT- Kompression eines
Bildes auszuführen, wenn
die oben beschriebene Vorgehensweise verfolgt wird.
-
Wenn
ein Bild, wie beispielsweise ein Bild einer Szene 840,
von der Kamera 830 aufgenommen wird, wird es an die Bildverarbeitungsschaltung 832 gesendet.
Die Bildverarbeitungsschaltung 832 besteht aus ICs und
anderen Bauelementen, welche neben anderen Funktionen die auf einer
scheinbar verlustlosen Kompression eines Bildes basierende DWT ausführen. Die
Bildspeichereinheit 834 speichert die komprimierten Kanaldaten.
Sobald sämtliche
Pixel verarbeitet und gespeichert oder an das Computersystem 810 zur
Wiedergabe übertragen
worden sind, ist die Kamera 830 frei, das nächste Bild
aufzunehmen. wenn der Benutzer oder eine Anwendung ein Herunterladen
der Bilder wünscht/anfordert,
werden die in der Bildspeichereinheit gespeicherten Bilder, ob sie
nun als xyz-Raum-Bilder oder als Bayer-Muster-Bilder gespeichert
sind, aus der Bildspeichereinheit 834 an den I/O-Port 817 übertragen.
Der I/O-Port 817 verwendet die gezeigte Busbrückenhierarchie (I/O-Bus 815 zur
Brücke 814 zum
Systembus 813), um die xyz-Farbraumbilddaten in den Speicher 811 oder optional
auf die Platte 818 vorübergehend
zu speichern. Das Computersystem 810 weist einen Systembus 813 auf,
welcher die Informationsübertragung
zu/aus dem Prozessor 812 und dem Speicher 811 ermöglicht,
und eine Brücke 814,
welche an einen I/O-Bus 815 ankoppelt. Der I/O-Bus 815 verbindet
verschiedene I/O-Einrichtungen, wie beispielsweise einen Anzeigeadapter 816,
eine Platte 818 und einen I/O-Port 817, wie beispielsweise
einen seriellen Port. Es können
viele derartige Kombinationen von I/O-Einrichtungen, Bussen und
Brücken
in Verbindung mit der Erfindung benutzt werden, und die gezeigte
Kombination soll bloß eine
der möglichen
Kombinationen veranschaulichen.
-
Bei
einem Ausführungsbeispiel
der Erfindung können
die komprimierten Bilder in eine scheinbar verlustlose Version auf
dem Computersystem 810 durch eine geeignete Anwendungs software
(oder Hardware) dekomprimiert/wiederhergestellt werden, welche den
Prozessor 812 für
ihre Ausführung
benutzt. Ein vollständig
aufgelöstes
RGB-Bild kann durch Farbinterpolationsdaten erzeugt und dann visuell
unter Verwendung eines Anzeigeadapters 816 als scheinbar
verlustloses Bild 850 wiedergegeben werden. Da Farbinterpolation und
Farbraumkonversion auf einfache Weise in der Kamera bei einem Ausführungsbeispiel
der Erfindung ermöglicht
werden, kann es möglich
sein, einen Kommunikationsport in der Kamera 830 zu implementieren,
der es den Bilddaten gestattet, direkt zu den anderen Einrichtungen
transportiert zu werden.
-
In
der vorstehenden Beschreibung wurde die Erfindung unter Bezugnahme
auf ihre speziellen Ausführungsbeispiele
beschrieben. Es ist jedoch klar, daß verschiedene Modifikationen
und Änderungen
daran vorgenommen werden können,
ohne vom breiteren Geist und Umfang der Erfindung, wie sie in den
anhängigen Ansprüchen angegeben
sind, abzuweichen. Die Beschreibung und die Zeichnungen sind demzufolge
in einem veranschaulichenden und keinem einschränkenden Sinne zu verstehen.
-
Die
beschriebenen Ausführungsbeispiele
sind bloß zur
Veranschaulichung der Prinzipien der Erfindung angegeben und sollten
nicht so verstanden werden, daß sie
den Umfang der Erfindung einschränken. Stattdessen
können
die Prinzipien der Erfindung auf einen breiten Bereich von Systemen
angewendet werden, um die hier beschriebenen Vorteile zu erreichen
und um andere Vorteile zu erreichen oder um andere Aufgaben ebensogut
zu erfüllen.