-
Die
vorliegende Erfindung betrifft ein Verfahren zur Bildverarbeitung,
bei dem die Anzahl von Bits pro Pixel begrenzt ist, wobei das Pixel
mit der begrenzten Anzahl von Bits kodiert wird. Die vorliegende
Erfindung betrifft außerdem
ein System zur Bildverarbeitung, wobei das System zum Verarbeiten
des Bilds unter Verwendung einer begrenzten Anzahl von Bits in der
Bitfolge pro Pixel eingerichtet ist, wobei das System außerdem Mittel
zum Kodieren des Pixels zu der begrenzten Anzahl von Bits umfasst.
Die Erfindung betrifft außerdem ein
Rechnersoftwareprodukt zur Bildverarbeitung. Die Erfindung betrifft
außerdem
ein Kameramodul und eine Schaltung, die einen Kodierer und einen
Dekodierer umfassen. Ferner betrifft die Erfindung eine Vorrichtung zur
Bildverarbeitung, wobei die Vorrichtung einen Dekodierer umfasst.
-
ALLGEMEINER STAND DER TECHNIK
-
Digitalkameras
umfassen Halbleiterzellen, wie etwa CCD-(Charge Coupled Device-) oder CMOS-(Complementary
Metal-Oxide Semiconductor-)
Zellen, die einen lichtempfindlichen Sensor umfassen. Der Betrieb
des Sensors in der Zelle gründet
auf dem Prinzip, dass sie stets aufgeladen wird, wenn Licht auf sie
auftrifft. Die Zelle umfasst dicht angeordnete, parallele Pixel,
die Licht in elektrische Signale umwandeln. Zur Farberkennung sind
die Pixel der Zelle mit einem Filter überdeckt, der an bestimmten
Pixeln nur rote Farbe, nur grüne
Farbe bzw. nur blaue Farbe durchlässt, wodurch eine Farbfilteranordnung
ausgebildet ist. Es besteht eine vorgegebene Anzahl (N) von Bits
pro jedem Pixel. Wenn die Bildverarbeitungseinheit imstande ist, Bilder
von M Bits zu verarbeiten, und wenn N > M, ist eine Umformung des Bilds in eine
kleinere Größe erforderlich,
was eine Reduzierung der Anzahl von Bits pro Pixel bedeutet.
-
Normalerweise
ist die Anzahl von Bits pro Pixel 8 Bits, es gibt jedoch Fälle, in
denen eine größere Anzahl
benutzt wird, z.B. 10 Bits pro Pixel. Normalerweise besteht in einer
Datenverarbeitungsvorrichtung ein Byte aus 8 Bits; daher ist es
notwendig, ein Bild von 10 Bits zu komprimieren.
-
Zudem
ist die Komprimierung des Bilds notwendig, weil die digitale Wiedergabe
oder Verarbeitung von Bildern nicht länger auf Rechner beschränkt ist,
sondern Bilder in zunehmendem Maße mit kleineren Vorrichtungen,
wie etwa beispielsweise mobilen Kommunikationsvorrichtungen, erzeugt
und angezeigt werden können.
Bei mobilen Kommunikationsvorrichtungen ähnelt die Benutzung von Bildern
weitgehend der Benutzung in Rechnern. Bilder werden in der Vorrichtung
gespeichert, und sie werden über
ein gebräuchliches
Kommunikationsnetz an eine andere Vorrichtung übertragen. Die Übertragung
von Bildern in dem Kommunikationsnetz, wie etwa einem mobilen Telefonnetz,
ist wegen der großen
Informationsmenge problematisch. Da der verfügbare Kommunikationskanal langsam
ist, muss das Bildmaterial komprimiert werden, sodass die Übertragung
eines einzigen Bilds nicht mehrere Minuten dauert.
-
DPCM
(different pulse code modulation) ist ein bekanntes Verfahren, durch
das ein Pixel auf der Grundlage des vorangehenden Pixels kodiert/übertragen
wird. Das Verfahren wird für
die Umwandlung eines analogen Signals in ein digitales Signal verwendet,
wobei die Differenz zwischen einem Abtastwert des analogen Signals
und seinem vorhergesagten Wert quantisiert und in digitalem Format kodiert
wird. Durch das DPCM-Verfahren gebildete Kodewörter stellen Differenzen zwischen
Werten dar.
-
Durch
Differenzieren der PCM-Kodewörter
wird eine DPCM-Kodewortfolge
mit variabler Länge
erhalten, die normalerweise die gegebenen Daten zu einem Format
komprimieren, das für
die Übertragung
geeignet ist. Da die Kodewörter
normalerweise eine variable Länge
aufweisen, liegt das Ergebnis nicht immer notwendigerweise unter
der vorgegebenen Bitanzahl (M), da das längste Kodewort länger als
die ursprüngliche
Anzahl (N) von Bits ist. Um zu gewährleisten, dass das Kodewort
kürzer
als der Grenzwert (M) ist, müssen
die DPCM-Kodewörter quantisiert
werden, wonach das Kompressionsverfahren verlustreich wird.
-
Die
Schrift US-A-4 734 768 offenbart ein Verfahren zum Übertragen
von DPCM-Werten, das es ermöglicht,
mehrere aufeinander folgende DPCM-Werte in Datenwörter von
identischer optimal-minimaler Länge
umzuwandeln und die DPCM-Werte mit einer Präambel zu kombinieren, die die
Wortlänge
kennzeichnet. In der Schrift wird darauf abgezielt, ein oder mehrere
Datenwörter – unter
Verwendung verschiedener Verfahren (4·DPCM oder 3·DPCM oder
2·DPCM
oder DPCM oder PCM oder RL) – in
einen Datenblock mit einer Länge von
10 bis 20 Bit und mit stets derselben Länge einzufügen. In der Schrift müssen die
Werte dekodiert werden, um das Datenwort aufzufinden.
-
Die
Schrift US-A-5 790 705 offenbart ein Verfahren zum Komprimieren
von digitalen Bildern von mehr als einer vorgegebenen Anzahl in
die erste vorgegebene Anzahl von Bits auf im Wesentlichen verlustfreie
Art und Weise. In der Schrift werden mehrere Bereiche, unter die
Eingabebilddaten fallen, ermittelt und die laufenden Bilddaten mit
den mehreren Bereichen verglichen. In der Schrift werden die PCM-Kodes
durch Ausführen von
nicht linearem, stückweise
linearem Mapping zwischen den ursprünglichen Daten und den resultierenden Daten
quantisiert.
-
Dieses
Problem wird in der Schrift
DE
4210246 A1 besprochen, die einen mit PCM-Technologie ergänzten DPCM-Bildcodec offenbart.
Zum Reduzieren der Datenmenge in einem digitalen Bild wird ein fragwürdiges Verfahren
benutzt. Bei dem Verfahren wird der Vorgang des Kodierens von digitalen
Daten zum Umwandeln der Daten mit M Bits pro Pixel in ein Kodewort
von N Bits benutzt, wenn N < M.
Die Wahl zwischen dem PCM- und DPCM-Verfahren wird bezüglich der
Differenzwerte in der Graustufe getroffen. Der Dekodiervorgang wird
zur Gewährleistung
benutzt, dass die Länge
des erzeugten Kodeworts geringer als 9 Bits ist, aber diese Kodewortlänge ist
nicht festgelegt, sondern variiert gemäß den Graustufenänderungen
in dem Bild. Das Verfahren, das in der Schrift dargestellt ist,
basiert auf einem Zustandsautomaten, der Steuersignale zum Betrieb
benötigt.
Das Dekodieren der Pixel mit variierender Länge hängt daher stark von anderen
Pixeln ab. Ein anderes Problem beim Dekodieren von Pixeln mit variierender
Länge gemäß dem Stand
der Technik ist, dass es nicht leicht ist, aus dem Kodestrom zu
ermitteln, welche Pixel jeder Kode darstellt.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Es
ist das Ziel der vorliegenden Erfindung, ein verbessertes Verfahren
zum Komprimieren von Bilddaten bereitzustellen, bei dem der Standort
jeden kodierten Pixels unabhängig
ermittelt werden kann. Dies ist dadurch möglich, dass die Kodewörter eine
festgelegte Länge
aufweisen, wobei keine separaten Signale zum Anzeigen des Anfangspunkts
des nächsten
Kodeworts erforderlich sind. Durch das Verfahren der Erfindung kann
außerdem
jede Bildzeile unabhängig
kodiert und dekodiert werden. Dies ist möglich, weil kein Pixel Information über andere
Pixel in einer anderen Zeile benötigt.
Mithilfe der Erfindung ist Kompression mit hoher Qualität für Rohdaten
von N Bits zu ihrer Übertragung
an ein Bildverarbeitungsmodul von M Bits (M < N) erzielt. Mithilfe der Erfindung
können
Pixel in einem Bild schnell und mit geringer Speicherkapazität kodiert
werden, ohne die Qualität
des Bilds spürbar
zu beeinträchtigen.
-
Die
oben angegebenen Ziele werden durch die Erfindung gemäß den beiliegenden
Ansprüchen
erreicht.
-
Bei
der Erfindung werden geringere Änderungen
zwischen Pixeln mit einem differentiellem Pulskode kodiert, während größere Änderungen
zwischen Pixeln mit einem Pulskode kodiert werden. Bei dem Verfahren gemäß der Erfindung
werden zum Auswählen
des Verfahrens zum Dekodieren der Pixel keine Steuersignale benötigt, wodurch
jedes Pixel unabhängig
dekodiert werden kann. Dies wird dadurch erreicht, dass das Bitformat
am Anfang der Bitfolge das Dekodierverfahren anzeigt, das benutzt
werden soll. Das Kodiersystem ist derart gebildet, dass die Bitauflösung fortschreitend
langsamer abnimmt, als die Anzahl von Farben in jeder Kodieralternative
zunimmt. Die Qualität
des Bilds wird bei dem Verfahren nicht beeinträchtigt, weil das Bitformat, das
das letzte Kodierverfahren angibt, das kürzeste von allen ist, wodurch
mehr Bits zum Kodieren des Farbwerts verbleiben als bei den anderen
Alternativen. Im Verhältnis
zu der Anzahl von Farben liegen jedoch weniger Bits vor.
-
Durch
die vorliegende Erfindung wird der Vorgang zum Kodieren von Pixeln
schneller, und zudem erfordert das Verfahren der Erfindung weniger
Speicherkapazität
als Verfahren des Stands der Technik. Das gemäß der Erfindung erzeugte Bild
weist eine bessere Qualität
als Bilder auf, die durch die verlustreichen Verfahren des Stands
der Technik erzeugt werden. Bei dem Verfahren werden festgelegte
Kodewörter
gebildet, die leichter zu dekodieren sind und eine Ausgabe gewährleisten,
die zur Übertragung
geeignet ist. Der Codec gemäß der Erfindung
ist einfach zu implementieren und erfordert keine großen Zwischenspeicher,
da weniger Zwischenspeichern in Verbindung mit festgelegten Kodewörtern benutzt
werden kann oder überhaupt
keine Zwischenspeicherung erforderlich ist.
-
BESCHREIBUNG DER ZEICHNUNGEN
-
Im
Folgenden wird die Erfindung unter Bezugnahme auf die beiliegenden
Zeichnungen detaillierter beschrieben.
-
Es
zeigen:
-
1 ein
vorteilhaftes Beispiels eines Kodierers/Dekodierers gemäß der Erfindung,
der eine 10-8-10-Bit-Umwandlung
implementiert,
-
2 ein
anderes vorteilhaftes Beispiel eines Kodierers/Dekodieres gemäß der Erfindung,
der eine 10-7-10-Bit-Umwandlung
implementiert,
-
3 eine
Vorrichtung, die das Kodieren und/oder Dekodieren eines Bilds gemäß einer
besonders vorteilhaften Ausführungsform
der Erfindung ausführt,
-
4 ein
Ablaufdiagramm des Betriebs des Kodierers gemäß einer besonders vorteilhaften
Ausführungsform
der Erfindung.
-
DETAILLIERTE BESCHREIBUNG
DER ERFINDUNG
-
In
der detaillierteren Beschreibung der Erfindung sind folgende Variablen
benutzt:
Xorig | zum
Ermitteln des ursprünglichen
Pixelwerts (z.B. 10 Bits), |
Xpred | zum
Ermitteln des vorhergesagten Pixelwerts, |
Xdiff | zum
Ermitteln der Differenz zwischen dem ursprünglichen und vorhergesagten
Wert (Xorig – Xpred), |
Xenco | zum
Ermitteln des kodierten Pixelwerts (z.B. 8 Bits) und |
Xdeco | zum
Ermitteln des dekodierten Pixelwerts. |
-
Der
Grundgedanke der Erfindung ist, dass, wenn die Vorhersage gut genug
ist, d.h. die Differenz zwischen dem ursprünglichen und vorhergesagten
Pixelwert kleiner als ein vorgegebener Grenzwert (abs(Xdiff < Lim) ist, der Differenzwert
in quantisiertem Format an den DPCM-Codec übertragen wird. Sonst wird
der ursprüngliche
Wert in quantisiertem Format an den DPCM-Codec übertragen. Information über den
ausgewählten
Codec wird außerdem
in Verbindung mit den Werten übertragen.
Bei beiden Verfahren wird eine festgelegte Anzahl (M) von Bits zur Darstellung
eines Pixels verwendet. Die Bitanzahl M wird der Kapazität, die benutzt
werden soll, ermittelt.
-
In
einer vorteilhaften Ausführungsform
der Erfindung wird ein Beispiel eines 10-Bit-Farbbilds verarbeitet,
das für
die Dauer der Bildübertragung
und -verarbeitung auf 8 Bits komprimiert wird. 1 zeigt
eine vorteilhafte Ausführungsform
eines Kodierers/Dekodierers, der das Verfahren implementiert. Zudem
zeigt Tabelle 1 unten das Kodieren eines Pixels als Beispiel. In
der Tabelle sind vierzehn Pixel einer Zufallspixelzeile erfasst, die
durch das Verfahren gemäß der Erfindung
kodiert werden. Die Tabelle zeigt das ursprüngliche Pixel (Xorig), das
Vorhersagepixel (Xpred), das dem ursprünglichen entspricht, die Differenz
(Xdiff) zwischen dem ursprünglichen
Pixel und dem Vorhersagewert, die kodierte Bitfolge (Xenco) des
Pixels und das dekodierte Pixel (Xdeco). In dem Beispiel in der
Tabelle besteht das ursprüngliche
Pixel (Xorig) aus 10 Bits und wird zu einem Pixel von acht Bits
(Xenco) kodiert. Die kodierte Bitfolge (Xenco) wird ferner durch
das Verfahren gemäß der Erfindung
zu 10 Bits dekodiert. Natürlich
sind die dargestellten Werte nur Beispiele und sollen nicht als
die Erfindung einschränkend
ausgelegt werden.
-
-
-
In
einer vorteilhaften Ausführungsform
der Erfindung wird ein Pixel zur Vorhersage benutzt, wobei der Wert
auf der linken Seite des Pixels als Vorhersagewert (Xpred) benutzt
wird. Wenn kein Vorhersagewert verfügbar ist, d.h. in einer Situation,
in der die zwei ersten Pixel einer Bildzeile verarbeitet werden,
wird das ursprüngliche
Pixel von N Bits zu M Bits quantisiert und an den PCM-Codec übertragen.
In einer zweiten vorteilhaften Ausführungsform der Vorhersage können mehr
Pixel benutzt werden, beispielsweise drei Pixel, wobei der Vorhersagewert
aus drei einem Pixel benachbarten Pixeln (oberes, linkes, oberes
linkes Pixel) geschätzt wird.
Die Drei-Pixel-Vorhersage wird vorzugsweise derart implementiert,
wie in der Patentveröffentlichung WO-A-01/54416 des Anmelders
dargestellt. Diese Vorhersageart ergibt ein besseres Endergebnis
in der Erfindung, erfordert jedoch mehr Speicherkapazität als die
Vorhersage durch ein Pixel und schließt die Möglichkeit aus, jede Bildzeile
unabhängig
zu kodieren und dekodieren. Aus diesem Grund konzentriert sich die
detailliertere Beschreibung der Erfindung auf die Vorhersage unter
Benutzung eines Pixels.
-
Das
Bild wird derart kodiert, dass dasselbe Zeilenverfahren zum Kodieren
jeder Zeile in dem Bild verwendet wird. Das Kodierprinzip gemäß der Erfindung
für eine
Zeile ist in dem Ablaufdiagramm von 4 dargestellt.
Aus dem Bayer-Matrixbild, die die allgemein bekannteste Form der
Farbmatrix (CFA) ist, ist bekannt, dass die Daten eines Farbbilds
derart dargestellt sind, dass zwischen zwei identischen Farbkomponenten
in derselben Zeile eine andere Farbkomponente ist (z.B. GRGRGR oder
BGBGBG, wobei Rot R, Grün
G und Blau B ist). Auf der Grundlage dieser Information kann die
Vorhersage derart implementiert werden, dass bei der Vorhersage
eines Pixels X(n) das vorausgehende dekodierte Pixel derselben Farbe
benutzt wird, wobei anders gesagt das Pixel X(n – 2), das dem vorausgehenden
Pixel vorausgeht, benutzt wird, das folglich dieselbe Farbe wie
das Pixel X(n) aufweist. Natürlich
gibt es keinen vorausgehenden Wert (zur Verwendung bei der Vorhersage)
für die
ersten zwei Pixel am Anfang einer Bildzeile, womit der ursprüngliche
Wert quantisiert wird.
Xenco(0) = Xorig(0)/4
-
Der
Grund für
die Benutzung der Zahl 4 als Quantisierer ist, dass der Wert in
dem Beispiel von 10-Bit-Daten zu 8-Bit-Daten komprimiert werden soll (1024/256
= 4). Wenn Xenco(0) = 0, wird der Wert 1 (00000001) übertragen,
um das Kodewort „0" (00000000) zu vermeiden.
Das dekodierte Wort kann folgendermaßen gebildet werden:
Xdeco(0)
= 4 × Xenco(0)
+ 2, wobei die Zahl Zwei zum Runden addiert wird.
-
Das
zweite Pixel Xorig(1) wird entsprechend verarbeitet (Xenco(1) =
Xorig(1)/4), weil es eine andere Farbe als das Pixel Xorig(0) aufweist.
-
Zum
Kodieren des dritten Pixels (n = 2) wird eine Vorhersage benötigt, für die der
dekodierte Wert derselben Farbe, der dem betreffenden Pixel vorangeht,
benutzt wird, um den Vorhersagewert für das dritte Pixel Xpred(2)
= Xdeco(2 – 2)
zu erhalten. In dem allgemeinen Format wird der Vorhersagewert erhalten
Xpred(n) = Xdeco(n – 2),
wenn n den Standort des Pixels anzeigt. Die Änderung (Differenz) in dem
Pixel kann durch das Berechnen von Xdiff(n) = Xorig(n) – Xpred(n)
ermittelt werden. Wenn der Absolutwert der Änderung zwischen dem betreffenden
Pixel und dem vorhergesagten Wert klein genug (< 128) ist, wird das DPCM-Codec beim Kodieren
benutzt. Wenn der Absolutwert der Änderung zwischen dem betreffenden
Pixel und dem Vorhersagewert hoch ist (> 127), wir der PCM-Codec beim Kodieren
benutzt (unten in Abschnitt (1) detaillierter beschrieben).
-
Die
kodierte Bitfolge umfasst zu Beginn ein Kodewort, aus dem die Größe der Änderung
erfasst wird (00, 010, 011; <32,
32 bis 63 bzw. 64 bis 127). Die Länge des Kodeworts entspricht
den Längen
von Huffman-Kodewörtern,
die 1, 2, 3 und 3 betragen. Das Kodewort mit der Länge von
eins ist für
das Zeichen reserviert, das das die Flucht vor dem Kodierverfahren
anzeigt, das entweder „0" oder „1" sein sollte. Vorzugsweise ist
das Kodewort für
das Fluchtzeichen „1", weil daher das
zweitkleinste Kodewort mit einer Länge von 2 als „00" ausgewählt werden
kann. Als Grund für
diese Wahl kann die Tatsache angeführt werden, dass es somit möglich ist,
das komplette Kodewort „00000000" zu vermeiden, wenn
die Differenz null als der Wert -0 übertragen wird, d.h. „00 1 00000". Dadurch muss das
komplette Kodewort „00000000" nicht andernorts
vermieden werden, da die anderen Kodewörter zumindest eine „1" enthalten. Wenn
das zweite Kodewort als „00" ausgewählt wird,
muss das Kodewort mit der Länge
eins „1" sein, um das Dekodieren
eindeutig zu machen. Wegen der eindeutigen Dekodierung sind die
anderen zwei Kodewörter
daher „010" und „011". Wenn die Benutzung des
kompletten Kodeworts „00000000" nicht vermieden
werden müsste,
könnten
die Kodewörter
natürlich auch
beispielsweise „0", „10", „110" und „111" sein. Es ist zu
beachten, dass zuweilen außerdem
ein Erfordernis bestehen kann, andere komplette Kodewörter zu
vermeiden, wie etwa beispielsweise „11111111", wobei ein Erfordernis bestehen kann,
die Kodewörter
zu ändern.
Folglich ist die Wahl der Kodewörter
nicht auf die in der Beschreibung genannten Kodewörter beschränkt.
-
Nach
dem Kodewort wird ein Bit für
das Vorzeichen reserviert, da die Änderung zwischen den Pixeln negativ
sein kann. Die restlichen Bits geben den Änderungswert in einer binären Darstellung
an. Im Dekodiervorgang erkennt der Dekodierer entsprechend das Kodewort
am Anfang der Bitfolge, um das Verfahren auszuwählen, das zum Dekodieren benutzt
werden soll. Beim Dekodieren wird der Pixelwert unter Benutzung
des vorhergehenden Werts derselben Farbe, bereits dekodiert, (Xpred(n)
= Xdeco(n – 2)
sowie die Änderung,
die zwischen dem ursprünglichen
Pixel und dem vorhergehenden Pixel derselben Farbe (Wert Xdiff =
Xorig(n) – Xpred(n))
ermittelt. Der Pseudocode unten stellt einen Codec dar, der den
Kodier/Dekodierprozess für
jeden Änderungsbereich
darstellt: DPCM1:
wobei 00 das Kodewort ist,
s das Vorzeichen darstellt und „xxxxx" in fünf Bits den Wert = abs(Xdiff(n))/1
angibt, wobei der Quantisierer 1 ist. Wenn z.B. X(diff(n)) = -9,
ist der kodierte Wert Xenco(n) = „00 1 01001". DPCM2:
wobei 010 das Kodewort ist, s das Vorzeichen darstellt
und „xxxx" in vier Bits den
Wert = abs(Xdiff(n)) – 32)/2 angibt,
wobei der Quantisierer 2 ist. Wenn z.B. X(diff(n)) = 54 oder 55,
ist der kodierte Wert Xenco(n) = 010 0 1011. DPCM3:
wobei 011 den Anfang des Kodeworts darstellt,
s das Vorzeichen darstellt und „xxxx" in vier Bits den Wert = abs(Xdiff(n)) – 64)/4
angibt, wobei der Quantisierer 4 ist. Wenn z.B. X(diff(n)) = -123,
-122, -121 oder -120, ist der kodierte Wert Xenco(n) = 011 1 1011.
-
Es
ist ersichtlich, dass im letzten Absatz die Zahl eins zu dem decodierten
Wert addiert wurde, was auf dem Runden beruht. Wenn der Quantisierer
vier ist, folgt daraus, dass vier verschiedene Werte im selben Übertragungswert
quantisiert werden. Diese Werte sind (X), (X + 1), (X + 2) und (X
+ 3), wobei X eine durch vier teilbare ganze Zahl ist. Zum Minimieren
des Rundungsfehlers sollte der ausgewählte Rückgabewert (X + 1,5) sein.
Dies ist jedoch nicht möglich,
weil der Rückgabewert
eine ganze Zahl sein muss. Infolgedessen ist die beste Wahl (X +
1) und (X + 2). Der Wahrscheinlichkeit nach treten die niedrigeren
Zahlen (X) und (X + 1) etwas häufiger
auf als die höheren
Zahlen (X + 2) und (X + 3), weil die Anzahl des Auftretens stets
etwas verringert ist, wenn die Differenz erhöht ist, infolge erfolgreicher
Operation des Prediktors. Aufgrund dieses Arguments wurde (X + 1)
als Rückgabewert
ausgewählt.
-
Wenn
die Änderung
größer als
der höchste
der Grenzwerte (> 127)
ist, wird der PCM-Codec in der vorteilhaften Ausführungsform
der Erfindung benutzt (Fall 1). Daher wird der kodierte Wert nicht
aus dem vorhergehenden Wert vorhergesagt, sondern aus dem ursprünglichen
Pixelwert gebildet. Die Änderung
des Kodierverfahrens wird durch ein spezielles Kodewort angezeigt,
ein Fluchtzeichen, das oben in Verbindung mit der Bildung der Kodewörter eingeführt wurde. FALL
1: ERSTE AUSFÜHRUNGSFORM
PCM
wobei 1 das Kodewort ist, das eine Änderung
anzeigt, „xxxxxxx" in sieben Bits den
Wert = (Xorig(n)/8) angibt, wobei der Quantisierer 8 ist. Wenn beispielsweise Xdiff(n)
= 520–527,
dann ist die kodierte Bitfolge „1 1000001".
-
Die
kodierte Bitfolge umfasst das PCM-Verfahren anwendend als erstes
Bit das Fluchtzeichenkodewort 1, das derart ausgewählt wurde,
dass mehr Bits zum Kodieren des Farbwerts benutzt werden können als bei
DPCM-Verfahren. Durch diese Einrichtung ist es möglich, die Bildqualität zu gewährleisten,
da die Bitauflösung
fortschreitend langsamer abnimmt, als die Anzahl von Farben bei
den verschiedenen Kodieralternativen zunimmt.
-
Die
Pixel der Bildzeile werden auf entsprechende Art und Weise zum Ende
der Zeile (EOR) durch Kodieren kleinerer Änderungen mit dem DPCM-Verfahren
und größerer Änderungen
mit dem PCM-Verfahren kodiert. Entsprechend wird der Rest der Zeilen
zum Ende des Bilds unabhängig
auf dieselbe Art und Weise wie die vorhergehende Pixelzeile verarbeitet,
wodurch das ganze Bild komprimiert werden kann.
-
Die Überlegenheit
der Kombination der DPCM- und PCM-Codecs zum DPCM-Codec allein ist im
Vergleich der Kombination mit dem Gebrauch des DPCM-Codecs alleine
wohlfundiert. Als Beispiel wird eine Situation (Fall 2) dargestellt,
in dem der DPCM-Codec zum Kodieren von kleineren wie auch größeren Änderungen
benutzt wird. Mithilfe dieses Beispiels sind die Vorteile, die durch
Kombinieren des DPCM-Verfahrens mit dem PCM-Verfahren auf die der
Erfindung entsprechenden Art und Weise erzielt sind, für den Fachmann
besser verständlich.
Es ist zu beachten, dass dieses Beispiel nur zur Veranschaulichung
der Vorteile der Erfindung dient; es ist für die Umsetzung der Erfindung
nicht erheblich. FALL
2: ZWEITE AUSFÜHRUNGSFORM
wobei 1 das Kodewort anzeigt, s, das Vorzeichen
darstellt und „xxxxxx" in sechs Bits den
Wert = (abs(Xdiff(n))/16) angibt, wobei der Quantisierer 16 ist.
Wenn beispielsweise Xdiff(n) = 528–543, dann ist die kodierte
Bitfolge „1
0 100001".
-
Es
ist ersichtlich, dass sich das Zeichen „s" ein Bit des zu quantisierenden Werts „nimmt", wobei der Fehler
mit dem DPCM-Codec größer als
mit dem PCM-Codec ist, weil die Quantisierung größer sein muss. Dies ist so,
weil die Werte, die an die PCM- und DPCM-Codecs übertragen werden sollen, in
den Bereichen [0,1023] (10 Bits) bzw. [-1023, 1023] (11 Bits) liegen.
-
In
einer vorteilhaften Ausführungsform
der Erfindung ist das benutzte Fluchtzeichen das kürzeste Kodewort „1", wie oben dargestellt.
Obwohl das Fluchtzeichen nicht das wahrscheinlichste Zeichen ist,
würde seine
Wahl zu einer Situation führen,
in der der Quantisierungsfehler so groß ist, dass die Kodewortlänge nicht weiter
zunehmen kann. Die Beeinträchtigung
der Qualität,
die durch das längere
Fluchtzeichenkodewort bewirkt ist, kann nicht länger durch Reduzieren der Kodewörter der
anderen Zeichen und z.B. durch Erweitern des nicht quantisierten
Bereichs der wahrscheinlicheren Zeichen wiederhergestellt werden.
Zudem lohnt es nicht, die Verarbeitung einer größeren Änderung im DPCM-Codes umzusetzen,
da dies zur selben Situation führen
würde,
als wenn die Länge
des Fluchtzeichens in der ursprünglichen
Lösung
erweitert wäre.
-
Es
ist außerdem
zu beachten, dass die anderen Zeichen als die Fluchtzeichen der
wirklichen Wahrscheinlichkeit der Zeichen folgen. Dies gilt außerdem,
wenn der Quantisierer für
größere Änderungen
größer ist.
Die Länge
der Kodewörter
basiert folgendermaßen
auf der Quantität
der Änderung:
1 = Änderung [128-1023],
2 = [0-31], 3 = [32-63],
3 = [64-127]. Die Längen
basieren auf der Form der Änderungsverteilung nach
der Beseitigung des Quantisierungsfehlers. Die Anzahl von in dem
DPCM-Codec benötigter
Zeichen ist geringer oder gleich N – (M – 1) (z.B. 10 – (8 – 1) = 3).
Bei der DPCM-Kodierung gemäß der Erfindung
werden vorzugsweise alle drei davon benutzt. Bei der Berechnung
der Höchstanzahl
von DPCM-Zeichen basiert die Gleichung auf der Länge des Werts des Fluchtzeichens,
die M – 1
(8 – 1
= 7) Bits beträgt.
Für die
Zeichen des DPCM-Codec besteht daher kein wesentliches Erfordernis,
größere oder
gleiche Quantisierung wie in Verbindung mit dem PCM-Codec zu benutzen.
Ferner ist es nicht notwendig, zwei verschiedene Kodewörter für denselben
Quantisierer zu benutzen, da die Kodewortreihenfolge somit geändert sein
kann oder zwei Wörter
kombiniert sein können.
-
Durch
die Nutzung des Verfahrens der Erfindung ist die Ausgabe im schlimmsten
Falle in 7 bis 10 Bits kodiert. In einer entsprechenden Situation
führt die
Benutzung des DPCM-Codec allein zu einer Ausgabe, die in 6 bis 10
Bits kodiert ist. Durch die Nutzung des Verfahrens gemäß der Erfindung
befindet sich das Signal-Rausch-Verhältnis PSNR (Peak Signal Noise
Ratio), das zum Messen der Bildqualität benutzt wird, im Bereich
von 67,48 dB und 78,01 dB. Wenn der PCM-Codec durch den DPCM-Codec
ersetzt wird, fällt
die entsprechende Ziffer auf einen Bereich von 63,67 bis 74,48 dB.
-
Die
durch die Einrichtung gemäß der vorhergehenden
Ausführungsformen
der Erfindung erzielte Bildqualität kann außerdem unter Benutzung eines
intelligenten DPCM-Codec
(Fall 3) erzielt sein, wobei dies jedoch die Komplexität des Codec
erhöhen
würde,
was ein erhebliches Hindernis für
die Nutzung dieser Ausführungsform
der Erfindung in einigen Umgebungen sein könnte. In dieser Ausführungsform
der Erfindung wurde herausgefunden, dass selbst wenn sich die Werte,
die kodiert werden sollen, im Bereich von -1023 bis 1023 befinden,
es nur 1024 verschiedene Werte für
die Vorhersage gibt. Durch die anderen Werte wird ein Xdeco-Wert
erhalten, der kleiner als 0 oder größer als 1023 ist. Diese Werte
treten in dem ursprünglichen
Bild niemals auf. Infolgedessen kann in Verbindung mit größeren Änderungen
der DPCM-Codec auf intelligente Art und Weise folgendermaßen benutzt
werden: Fall
3: dritte Ausführungsform
wobei 1 den Anfang des Kodeworts anzeigt, s das
Vorzeichen darstellt und „xxxxxx" in sechs Bits den
Wert = (abs(Xdiff(n))/8 anzeigt, wobei der Quantisierer 8 ist.
-
Diese
hohen Absolutwerte sollten unter Benutzung von Werten kodiert werden,
die sonst bei der Vorhersagekodierung nicht benutzt werden. Das
Beispiel unten stellt erst die Änderung
des Bereichs und der Kodierung dar:
-
Beim
Dekodieren werden folgende Schritte ausgeführt:
-
1 zeigt
ein vorteilhaftes Beispiel des Kodierers und des entsprechenden
Dekodierers, die das Verfahren der Erfindung umsetzen. Der Kodierer
implementiert die Bitumwandlung von 10 Bits zu acht Bits, und der
Dekodierer implementiert entsprechend die Bitumwandlung von acht
zu zehn Bits. Der Kodierer (Enc) umfasst einen Selektor (Sel/Enc),
der den Codec gemäß der Größenordnung
der betreffenden Änderung ändert. DPCM1
ist in Benutzung, wenn Xdiff < 32,
DPCM2 wenn Xdiff < 64,
DPCM3 wenn Xdiff < 128,
und sonst PCM. Der Kodierer umfasst außerdem einen internen Dekodierer
(Dec) zum Implementieren des Zeichens für Vorhersage (Pred). Zu diesem
Zweck sind die zwei Zeichen, die dem Zeichen, das dekodiert werden
soll, vorangehen, in dekodierter Form in einem Speicher (MEM) gespeichert.
Ein ähnlicher
Dekodierprozess wird außerdem
von dem eigentlichen Dekodierer (Dec 8 – 10) ausgeführt.
-
2 zeigt
ein vorteilhaftes Beispiel des Kodierers und Dekodierers gemäß der Erfindung,
die zum Ausführen
der Bitumwandlung von 10 zu sieben Bits und zurück zu zehn Bits eingerichtet
sind. Bei der Vorhersage benutzt der Prediktor von
2 alle
die Farbwerte in der Zeile (zwei Farben pro Zeile in der Bayer-Matrix).
Das erste Pixel wird ohne Vorhersage kodiert. Das zweite Pixel wird
unter Verwendung des vorhergehenden dekodierten Werts als Vorhersagewert
benutzt: Xpred(n) = Xdeco(n-1). Das dritte Pixel wird unter Verwendung
des vorhergehenden dekodierten Werts derselben Farbe als Vorhersagewert
benutzt: Xpred(n) = Xdeco(n-2). Das vierte Pixel wird unter Anwendung
folgender Gleichung vorhergesagt:
-
Die
anderen Pixel in der Zeile werden unter Anwendung folgender Gleichung
vorhergesagt:
-
Da
der Kodierer gemäß dem Beispiel
von 2 vorhergehende Pixel bei der Vorhersage benutzt,
ist der Speicher (Mem) entsprechend für vier Pixel eingerichtet.
-
In
Verbindung mit dieser Bitumwandlung (10 – 7 – 10) wird das Kodieren/Dekodieren
auf eine der Umwandlung von 10 Bits zu acht Bits ähnliche
Art und Weise ausgeführt.
Es ist jedoch zu beachten, dass die benutzten Kodewörter und
die ihnen entsprechenden Bereiche folgender Definition folgen:
-
Wie
aus dem Obigen ersichtlich werden fünf Kodewörter in Verbindung mit der
Bitumwandlung der beschriebenen Art benötigt, während vier Kodewörter in
Verbindung mit der Bitumwandlung (10 – 8 – 10) benötigt werden.
-
3 zeigt
eine sehr reduzierte Ansicht eines Systems, das eine vorteilhafte
Ausführungsform
der Erfindung umsetzt. Das System umfasst vorzugsweise Gerät A und
B, die jeweils die Kodierung (Enc)/Dekodierung (Dec) gemäß der Erfindung
implementieren. Die Geräte
A, B können
physisch separat in dem System angeordnet sein. Die Geräte A, B
können
außerdem
als einzige, physische Einheit implementiert sein. Einrichtungen
der beschriebenen Art, die DPCM- und PCM-Modulation kombinieren
oder intelligente DPCM-Modulation nutzen, können daher als Teil des elektronischen
Geräts
umgesetzt sein, beispielsweise in einer digitalen Verarbeitungseinheit
(DPS) in einer Kamera oder dergleichen. Typischerweise umfasst das
elektronische Gerät
außerdem
andere Funktionen, wie etwa Mittel zum Anzeigen von Bildinformation
für den
Benutzer und einen Prozessor zum Steuern des elektronischen Geräts. Eine
digitale Kamera (C), die ein Bildverarbeitungssystem gemäß der Erfindung
umfasst, kann vorzugsweise in Verbindung mit einem Mobilgerät umgesetzt
sein, entweder als separate Einheit oder in das Gerät integriert,
wobei das Mobilgerät
außerdem
Mittel zur Mobilkommunikation umfasst. Ferner kann die digitale
Kamera, die das Bildverarbeitungssystem gemäß der Erfindung umfasst, außerdem an
ein Kommunikationsnetz (z.B. Internet) verbunden sein, wie etwa
als Webcam. Die gesamte Erfindung kann unter Benutzung von Hardwareeinrichtungen,
einem mikrokodierbarem Prozessor oder alternativ durch Rechnersoftware
allein umgesetzt sein. Alle Kombinationen aller dieser sind außerdem möglich. Folglich
kann die Erfindung typischerweise außerdem als Teil einer größeren Software
benutzt sein, kann als Teil einer separaten Kodierschaltung gebaut
sein oder kann in Verbindung mit einem Kameramodul zum separaten
Verkauf im Einzelhandel umgesetzt sein.