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:
Xorigzum Ermitteln des ursprünglichen Pixelwerts (z.B. 10 Bits),Xpredzum Ermitteln des vorhergesagten Pixelwerts,Xdiffzum Ermitteln der Differenz zwischen dem ursprünglichen
und vorhergesagten Wert (Xorig – Xpred),Xencozum Ermitteln des kodierten Pixelwerts (z.B. 8 Bits) undXdecozum 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.
Tabelle 1.
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.
Anspruch[de]
Verfahren zur Bildverarbeitung, bei dem die Anzahl von Bits in einer
kodierten Bitfolge fixiert ist, wobei ein Pixel in die Bitfolge kodiert wird,
dadurch gekennzeichnet, dass im Verfahren
– am Zeilenanfang, wenn ein Vorhersagewert für das Pixel nicht verfügbar
ist, ein quantisierter Pixelwert in die Bitfolge kodiert wird, und
– wenn der Vorhersagewert für das Pixel verfügbar ist,
eine Differenz zwischen dem Pixelwert und dem Vorhersagewert ermittelt und die Differenz
verwendet wird, um unter mehr als zwei Kodierverfahren ein Kodierverfahren auszuwählen,
um das Pixel in die Bitfolge zu kodieren, wobei jedes Kodierverfahren eine bestimmte
Schrittgrösse für die Quantisierung des Wertes besitzt und die bestimmte
Schrittgrösse in jedem Kodierverfahren eine andere ist, worin
ein Kodewort, mit dem das ausgewählte Kodierverfahren und die Quantisiererschrittgrösse
anzeigt werden, sowie
der quantisierte Wert in die Bitfolge kodiert werden,
– und im Verfahren die Bitfolge für jedes kodierte Pixel im Bild eine
festgelegte Länge besitzt, die geringer als die Länge des ursprünglich
digitalisierten Pixels ist.Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass das Kodewort,
mit dem das ausgewählte Kodierverfahren angezeigt wird, von variabler Länge
ist.Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass Quantisierung
im Verfahren zur Kodierung der Bitfolge verwendet wird, wobei zuerst ein Grenzwert
ermittelt wird, die Differenz mit dem Grenzwert in der Weise verglichen wird, dass
der quantisierte Wert durch Quantisierung der Differenz bestimmt wird, wenn die
Differenz kleiner ist, der quantisierte Wert aber durch Quantisierung des ursprünglichen
digitalisierten Pixelwertes bestimmt wird, wenn die Differenz grösser ist.Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet,
dass das Kodewort auf der Grundlage der ursprünglichen und der begrenzten Anzahl
von Bits im Pixel in der Weise bestimmt wird, dass die Kodewortlänge N –
(M – 1) nicht übersteigt, wenn M der begrenzten Anzahl von Bits und
N der ursprünglichen Anzahl von Bits entspricht.Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet,
dass das Kodewort auf der Grundlage der ursprünglichen und der begrenzten Anzahl
von Bits im Pixel in der Weise bestimmt wird, dass die Kodewortlänge zwei beträgt,
wenn der Absolutwert der Differenz kleiner als 32 ist, aber die Kodewortlänge
drei beträgt, wenn der Absolutwert der Differenz grösser als 31 und kleiner
als 128 ist, wobei die Kodewortlänge zu eins gewählt wird, wenn der Absolutwert
der Differenz 128 übersteigt, wobei das Kodierverfahren gewechselt wird.Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet,
dass das Kodierverfahren DPCM ist, wenn die Kodewortlängen grösser als
ein Bit sind.Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet,
dass das Kodierverfahren PCM-Kodierung ist, wenn die Kodewortlänge ein Bit
beträgt.Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet,
dass das Kodierverfahren DPCM-Kodierung mit Werten ist, die in der Vorhersagekodierung
sonst nicht verwendet werden, wenn die Kodewortlänge ein Bit beträgt.Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet,
dass der Vorhersagewert der Wert eines kodierten Pixelwertes oder der Durchschnitt
mehrerer kodierter Pixelwerte ist.Verfahren nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet,
dass das Pixel für die Übertragung zwischen einem Kameramodul und einer
elektronischen Vorrichtung kodiert wird.Vorrichtung zur Bildverarbeitung, wobei die Vorrichtung zur Verarbeitung
eines Bildes konfiguriert ist und Mittel umfasst, ein Pixel zu einer kodierten Bitfolge
zu kodieren, in der die Anzahl von Bits fixiert ist, dadurch gekennzeichnet, dass
– am Zeilenanfang, wenn ein Vorhersagewert für das Pixel nicht verfügbar
ist,
die Vorrichtung in der Lage ist, einen quantisierten Pixelwert zur Bitfolge zu kodieren,
und
– wenn der Vorhersagewert verfügbar ist, die Vorrichtung konfiguriert
wird, um
eine Differenz zwischen dem Pixelwert und dem Vorhersagewert zu ermitteln, und die
Differenz verwendet wird, um unter mehr als zwei Kodierverfahren ein Kodierverfahren
auszuwählen, um das Pixel in die Bitfolge zu kodieren, wobei jedes Kodierverfahren
eine bestimmte Schrittgrösse für die Quantisierung des Wertes besitzt
und die bestimmte Schrittgrösse in jedem Kodierverfahren eine andere ist, und
ein Kodewort zur Bitfolge zu kodieren, mit dem das ausgewählte Kodierverfahren
und die Quantisiererschrittgrösse angezeigt werden, sowie
den quantisierten Wert zur Bitfolge zu kodieren,
– und in der Vorrichtung die Bitfolge für jedes kodierte Pixel im Bild
eine festgelegte Länge besitzt, die geringer als die Länge des ursprünglich
digitalisierten Pixels ist.Vorrichtung nach Anspruch 11, dadurch gekennzeichnet, dass die Vorrichtung
auch Mittel umfasst, um einen Grenzwert zu ermitteln, und worin die Vorrichtung
weiter so eingerichtet ist, die Differenz mit dem Grenzwert in der Weise zu vergleichen,
dass die Vorrichtung dafür eingerichtet wird, den quantisierten Wert durch
Quantisierung der Differenz zu bestimmen, wenn die Differenz kleiner ist, die Vorrichtung
aber dafür eingerichtet wird, den quantisierten Wert durch Quantisierung des
ursprünglichen Pixelwertes zu bestimmen, wenn die Differenz grösser ist.Vorrichtung nach Anspruch 11 oder 12, dadurch gekennzeichnet, dass die
Vorrichtung auch Mittel umfasst, die Bitfolge in der durch das Kodewort angezeigten
Weise zu dekodieren.Vorrichtung nach einem der Ansprüche 11 bis 13, dadurch gekennzeichnet,
dass die Vorrichtung auch Mittel umfasst, Mobilkommunikation auszuführen.Bildverarbeitungssystem mit der Vorrichtung von Anspruch 11.System nach Anspruch 15, dadurch gekennzeichnet, dass das System auch
Mittel umfasst, um einen Grenzwert zu ermitteln, und worin das System weiter so
eingerichtet ist, die Differenz mit dem Grenzwert in der Weise zu vergleichen, dass
das System dafür eingerichtet wird, den quantisierten Wert durch Quantisierung
der Differenz zu bestimmen, wenn die Differenz kleiner ist, das System aber dafür
eingerichtet wird, den quantisierten Wert durch Quantisierung des ursprünglichen
digitalisierten Pixelwertes zu bestimmen, wenn die Differenz grösser ist.System nach Anspruch 15 oder 16, dadurch gekennzeichnet, dass das System
dafür eingerichtet ist, das Kodewort auf der Grundlage der ursprünglichen
und der begrenzten Anzahl von Bits im Pixel in der Weise zu bestimmen, dass die
Kodewortlänge N – (M – 1) nicht übersteigt, wenn M der begrenzten
Anzahl von Bits und N der ursprünglichen Anzahl von Bits entspricht.System nach einem der Ansprüche 15 bis 17, dadurch gekennzeichnet,
dass das System auch Mittel umfasst, um die Länge des Kodewortes auf der Grundlage
der ursprünglichen und der begrenzten Anzahl von Bits im Pixel in der Weise
zu bilden, dass die Kodewortlänge zwei Bits beträgt, wenn der Absolutwert
der Differenz kleiner als 32 ist, aber die Kodewortlänge drei Bits beträgt,
wenn der Absolutwert der Differenz grösser als 31 und kleiner als 128 ist,
wobei die Kodewortlänge ein Bit beträgt, wenn der Absolutwert der Differenz
128 übersteigt, um das Kodierverfahren zu wechseln.System nach einem der Ansprüche 15 bis 18, gekennzeichnet durch
einen DPCM-Codec, den das System zu verwenden eingerichtet ist, wenn die Kodewortlängen
grösser als ein Bit sind.System nach einem der Ansprüche 15 bis 18, gekennzeichnet durch
einen PCM-Codec, den das System zu verwenden eingerichtet ist, wenn die Kodewortlänge
ein Bit beträgt.System nach einem der Ansprüche 15 bis 18, dadurch gekennzeichnet,
das das System dafür eingerichtet ist, einen DPCM-Codec mit
Werten zu verwenden, die sonst nicht in der Vorhersagekodierung verwendet werden,
wenn die Kodewortlänge ein Bit beträgt.System nach einem der Ansprüche 15 bis 21, dadurch gekennzeichnet,
dass der Vorhersagewert der Wert eines kodierten Pixelwertes oder der Durchschnitt
mehrerer kodierter Pixelwerte ist.System nach einem der Ansprüche 15 bis 22, dadurch gekennzeichnet,
dass das System auch Mittel umfasst, die Bitfolge zu dekodieren.System nach einem der Ansprüche 15 bis 23, dadurch gekennzeichnet,
dass das System auch einen Kameramodul und eine elektronische Vorrichtung umfasst.System nach Anspruch 24, dadurch gekennzeichnet, dass die elektronische
Vorrichtung Mittel umfasst, Mobilkommunikation auszuführen.Rechnersoftwareprodukt für eine Bildverarbeitung, das Speichermittel
umfasst, die Rechnersoftwarebefehle enthalten, um das Verfahren von Anspruch 1 auszuführen.Kameramodul mit der Vorrichtung nach Anspruch 11.Bildverarbeitungssystem nach Anspruch 15 mit einem Dekoder.System nach Anspruch 28, dadurch gekennzeichnet, dass das zu verwendende
Kodierverfahren DPCM- oder PCM-Kodierung ist.System nach Anspruch 28, dadurch gekennzeichnet, dass das zu verwendende
Kodierverfahren DPCM-Kodierung ist, die in der Lage ist, Werte zu verwenden, die
in der Vorhersagekodierung sonst nicht verwendet werden.