DE69820148T2 - Verfahren zur Kompression/Dekompression von Bilddaten - Google Patents

Verfahren zur Kompression/Dekompression von Bilddaten Download PDF

Info

Publication number
DE69820148T2
DE69820148T2 DE69820148T DE69820148T DE69820148T2 DE 69820148 T2 DE69820148 T2 DE 69820148T2 DE 69820148 T DE69820148 T DE 69820148T DE 69820148 T DE69820148 T DE 69820148T DE 69820148 T2 DE69820148 T2 DE 69820148T2
Authority
DE
Germany
Prior art keywords
value
color
block
flags
red
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69820148T
Other languages
English (en)
Other versions
DE69820148D1 (de
Inventor
Alex San Francisco Ostrovsky
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Electronics America Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Electronics America Inc filed Critical Fujitsu Electronics America Inc
Application granted granted Critical
Publication of DE69820148D1 publication Critical patent/DE69820148D1/de
Publication of DE69820148T2 publication Critical patent/DE69820148T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/90Determination of colour characteristics

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Color Television Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

  • Ein Abschnitt der Offenbarung dieses Patentdokumentes enthält Material, das dem Urheberrechtsschutz unterliegt. Der Urheberrechtsinhaber hat nichts gegen die Faksimilewiedergabe durch irgendeine Patentoffenbarung einzuwenden, wenn sie in Patentakten und -aufzeichnungen des Patent- und Markenamtes erscheint, behält sich aber im übrigen alle Urheberrechte vor, welche es auch sein mögen.
  • Diese Erfindung betrifft im allgemeinen die Datenkomprimierung und -dekomprimierung und im besonderen ein Verfahren zum Codieren von Farbgraphikbilddaten gemäß Sätzen von ähnlichen Farben.
  • Farbgraphikstandbilder finden breite Verwendung zur Anzeige durch Computersysteme, speziell durch Multimedia-Personalcomputer (PCs). Da der Grad der vorgesehenen Auflösungen und die Anzahl von Farben, die in einem Bild dargestellt werden kann, höher werden, nimmt die Größe der Daten, die das Farbgraphikbild darstellen, immer mehr zu. Da ferner größere Computermonitore verwendet werden, verlangen Nutzer die Anzeige von größeren Bildern. Die Reduzierung des Speicherraumes, der zum Speichern von Farbgraphikbildern benötigt wird, und die Reduzierung der Zeit, die zum Übertragen und Anzeigen solcher Bilder benötigt wird, war und bleibt ein wichtiges Ziel in der Computergraphiktechnik.
  • 1 ist ein Diagramm nach Stand der Technik eines Farbgraphikbildes und dessen zugeordneter Speicherdarstellung. Ein Bitmap-Bild 10 hat n Zeilen mit m Pixels pro Zeile. Typischerweise ist sowohl n als auch m durch acht teilbar. Daher kann das Bitmap-Bild 10 logisch in quadratische Blöcke von 8 mal 8 Pixels geteilt werden. Somit sind m/8 Blöcke quer über die horizontale Achse des Bitmap-Bildes und n/8 Blöcke längs der vertikalen Achse des Bitmap-Bildes vorhanden, oder (m/8*n/8) 8 × 8 Blöcke in dem Bitmap-Bild. Ein gegebener Block 8 × 8 kann durch ein (i, j)-Paar bezeich net werden, wobei i in dem Bereich von 0 bis (m/8 – 1) liegt und j in dem Bereich von 0 bis (n/8 – 1) liegt.
  • Jeder Block 8 × 8 12 enthält deshalb 64 Pixels. Jedes Pixel wird als RGBA-Vierergruppe 14 dargestellt. Die RGBA-Vierergruppe 14 enthält einen Rot-Farbwert (R) 16, einen Grün-Farbwert (G) 18, einen Blau-Farbwert (B) 20 und einen Helligkeitswert (A) 22, Die Farbe und die Helligkeit des Pixels werden durch die R-, G-, B- und A-Werte bestimmt. Bei den meisten Farbbildern enthält ein Block 8 × 8 5 bis 12 verschiedene Farben. Jeder der R-, G-, B- und A-Werte wird in einem Acht-Bit-Byte gespeichert. Deshalb belegt jedes Pixel 4 Byte des Speichers, und ein Block 8 × 8 belegt 256 Byte des Speichers. Somit erfordert das Bitmap-Bild 10 256*(m/8*n/8) Byte des Speichers. Falls das Bitmap-Bild zum Beispiel 640 Pixels pro Zeile mal 480 Zeilen hat, beläuft sich die Größe von unkomprimierten Bitmap-Bilddaten auf 256*(640/8*480/8), also auf 1.228.800 Byte. Bei einem Bitmap-Bild von 1280 Pixels pro Zeile mal 1024 Zeilen beläuft sich die Größe des unkomprimierten Bitmap-Bildes auf 256*(1280/8*1024/8), also auf 5.242.880 Byte. Demzufolge benötigen unkomprimierte Bitmap-Bilder große Mengen an Speicher.
  • Ein Verfahren zur Standbildkomprimierung wurde ersonnen durch die Joint Photographic Experts Group (JPEG), die eine Gruppe ist, die durch die International Standards Organization (ISO) sanktioniert wird. Der JPEG-Komprimierungsstandard ist ein verlustbehafteter Bildkomprimierungsalgorithmus, der die Größe von einzelbitweise dargestellten Bildern bei einer kaum erkennbaren Bildverschlechterung reduziert. Verlustbehaftete Komprimierungsverfahren reduzieren die Größe des Bildes, indem einige Bildinformationen außer acht gelassen werden. Im Gegensatz dazu reduzieren verlustfreie Komprimierungsverfahren die Anzahl von Bits, die ein Bild normalerweise erfordern würde, ohne jeglichen Datenverlust. Der JPEG-Komprimierungsalgorithmus konvertiert ein Farbbild in Reihen von Pixels, wobei jedes Pixel Zahlenwerte hat, die die Helligkeit und Farbe darstellen, wie oben beschrieben. Das Bild wird in Blöcke zerlegt, wobei jeder Block 16 mal 16 Pixels hat, und dann auf Blöcke von 8 mal 8 Pixels verkleinert, indem jedes zweite Pixel bei jedem Block weggenommen wird. Bei dem Komprimierungsalgorithmus wird eine Formel verwendet, mit der ein Durchschnittsfarbwert für jeden Block berechnet wird, wodurch er mit weniger Daten dargestellt werden kann. Um die Bilddaten zurückzugewinnen, wird der Prozeß einfach umgekehrt, um das Bild zu dekomprimieren.
  • Obwohl der JPEG-Standard weit verbreitet ist, hat er Nachteile. Beim JPEG-Algorithmus kommen Fourier-Transformations-, Hoffman-Codierungs-, "Zickzack-" und YW-Transformationsberechnungen zum Einsatz, um lokale Durchschnittsfarbwerte für zusammenhängende Pixels in dem Bild zu berechnen. Der Algorithmus stellt jede Farbe, die in einer Reihe von Pixels in dem Bild verwendet wird, als Kurve dar. Die lokalen Durchschnittsfarbwerte werden durch das Berechnen von Kosinusfunktionen und durch das Multiplizieren mit Gleitkommakoeffizienten für Terme der Polynomialgleichung errechnet, die die Kurve darstellt. Diese Berechnungen sind relativ langsam, wodurch sie die gesamte Bildkomprimierungs- und -dekomprimierungsgeschwindigkeit beeinträchtigen. Ein schnelleres Verfahren zum Komprimieren und Dekomprimieren von Farbgraphikbildern wird benötigt, das keine Gleitkommaberechnung von Kosinusfunktionen und Multiplikationsoperationen erfordert. Ferner wäre ein Verfahren, das ein gutes Komprimierungsverhältnis vorsieht und einen höheren Paralle litätsgrad während der Dekomprimierung zuläßt, ein wertvoller Beitrag zur Computergraphikkunst.
  • DE-A-196 06 178 offenbart die Farbabbildungscodierung von Bildblöcken, d. h., für jede Farbe, die in einem Block angetroffen wird, wird ein entsprechendes Bitmap betrachtet. Das Bitmap gibt die Stellen von Pixels an, die die jeweilige Farbe haben. CA-A-2 168 284 offenbart das Codieren von Bitmaps, indem sie auf eine Weise indiziert werden, die der Verwendung von Gruppenflags und Zeilenflags, wie sie hierin gelehrt wird, ähnlich ist.
  • Eine Ausführungsform der vorliegenden Erfindung sieht ein Verfahren zum Komprimieren und Dekomprimieren von Graphikbilddaten vor. Das Verfahren zum Komprimieren eines Blocks von Graphikbilddaten in einen komprimierten Block, wobei der Block eine Vielzahl von Zeilen hat, jede Zeile eine Vielzahl von Spalten hat, jede Spalte ein Pixel enthält, jedes Pixel eine Farbe hat, die durch Rot-, Grün-, Blau- und Intensitätswerte repräsentiert wird, enthält die Schritte zum Aufbauen eines Arrays von Farbordinalzahlen durch das Identifizieren aller Farben, die in den Pixels des Blocks vorhanden sind, wobei jede Farbordinalzahl eine der Farben repräsentiert, welches Array von Farbordinalzahlen eine der Farbordinalzahlen, die der Farbe eines Pixels entspricht, für jedes Pixel in dem Block umfaßt; Speichern der Rot-, Grün-, Blau- und Intensitätswerte für eine selektierte der Farben in dem komprimierten Block; Aufbauen eines Satzes von Gruppenflags, der Zeilen in dem Block angibt, die Pixels mit der selektierten Farbe haben, gemäß dem Array von Farbordinalzahlen; Speichern des Satzes von Gruppenflags in dem komprimierten Block; Aufbauen wenigstens eines Satzes von Zeilenflags, der Spalten angibt, die Pixels mit der selektierten Farbe innerhalb von Zeilen in dem Block haben, die Pixels mit der selektierten Farbe haben, gemäß dem Array von Farbordinalzahlen, wobei jede Zeile, die Pixels mit der selektierten Farbe hat, durch eines von dem Satz von Zeilenflags repräsentiert wird; Speichern des Satzes von Zeilenflags in dem komprimierten Block; und Wiederholen dieser Schritte für alle Farben in dem Block.
  • Das Verfahren zum Dekomprimieren eines komprimierten Blocks von Graphikbilddaten in einen unkomprimierten Block enthält die Schritte zum Erhalten der Rot-, Grün-, Blau- und Intensitätswerte für eine selektierte Farbe von dem komprimierten Block; Erhalten des Satzes von Gruppenflags für die selektierte Farbe von dem komprimierten Block; Erhalten eines Satzes von Zeilenflags, der einem von dem Satz von Gruppenflags entspricht und das Vorhandensein der selektierten Farbe in wenigstens einer Zeile des komprimierten Blocks angibt; Schreiben der Rot-, Grün-, Blau- und Intensitätswerte in den unkomprimierten Block an selektierten Stellen, die durch Spalten indiziert sind, welche die selektierte Farbe haben, wie sie durch den Satz von Zeilenflags angegeben wird, und durch Zeilen, welche die selektierte Farbe haben, wie sie durch Satz von Gruppenflags angegeben wird; Wiederholen dieser Schritte für jedes Flag in dem Satz von Gruppenflags, der das Vorhandensein der selektierten Farbe in wenigstens einer Zeile des komprimierten Blocks angibt; und Wiederholen der obigen Schritte für alle verschiedenen Farbkombinationen des komprimierten Blocks.
  • Zusätzliche Vorteile und neue Merkmale der Erfindung werden in gewissem Grade in der folgenden Beschreibung bekanntgegeben und werden für die Fachwelt bei Prüfung derer ersichtlich sein oder können durch das Umsetzen der Erfindung in die Praxis erkannt werden.
  • Gemäß einer anderen Ausführungsform der vorliegenden Erfindung werden die obigen und andere Vorteile durch ein System zum Komprimieren eines Blocks von Graphikbilddaten in einen komprimierten Block erreicht, wobei der Block eine Vielzahl von Zeilen hat, jede Zeile eine Vielzahl von Spalten hat, jede Spalte ein Pixel enthält und jedes Pixel eine Farbe hat, die durch Rot-, Grün-, Blau- und Intensitätswerte repräsentiert wird. Die Vorrichtung enthält ein Mittel zum Aufbauen eines Arrays von Farbordinalzahlen durch das Identifizieren aller Farben, die in den Pixels des Blocks vorhanden sind, wobei jede Farbordinalzahl eine der Farben repräsentiert, welches Array von Farbordinalzahlen eine der Farbordinalzahlen, die der Farbe eines Pixels entspricht, für jedes Pixel in dem Block umfaßt; ein Mittel zum Aufbauen eines ersten Satzes von Flags, der Zeilen in dem Block angibt, die Pixels mit einer selektierten Farbe haben, gemäß dem Array von Farbordinalzahlen ein Mittel zum Aufbauen wenigstens eines zweiten Satzes von Flags, der Spalten angibt, die Pixels mit der selektierten Farbe innerhalb von Zeilen in dem Block haben, die Pixels mit der selektierten Farbe haben, gemäß dem Array von Farbordinalzahlen, wobei jede Zeile, die Pixels mit der selektierten Farbe hat, durch eines von dem zweiten Satz von Flags repräsentiert wird und ein Mittel zum Speichern der Rot-, Grün-, Blau- und Intensitätswerte, des ersten Satzes von Flags und des wenigstens einen zweiten Satzes von Flags für eine selektierte der Farben in dem komprimierten Block.
  • In einer anderen Ausführungsform der vorliegenden Erfindung werden die obigen und andere Vorteile durch ein System zum Dekomprimieren eines komprimierten Blocks von Graphikbilddaten in einen unkomprimierten Block erreicht, wobei der komprimierte Block eine Vielzahl von verschiedenen Rot-, Grün-, Blau- und Intensitätswert-Farbkombinationen hat, jede verschiedene Farbkombination einen Satz von Gruppenflags hat, der das Vorhandensein der verschiedenen Farbkombination in Zeilen des unkomprimierten Blocks repräsen tiert, und wenigstens einen Satz von Zeilenflags, der das Vorhandensein der verschiedenen Farbkombination in Spalten des unkomprimierten Blocks für Zeilen des unkomprimierten Blocks mit der verschiedenen Farbkombination repräsentiert. Die Vorrichtung enthält ein Mittel zum Lesen der Rot-, Grün-, Blau- und Intensitätswerte für eine selektierte Farbe von dem komprimierten Block, des Satzes von Gruppenflags für die selektierte Farbe von dem komprimierten Block und eines Satzes von Zeilenflags, der einem Gruppenflag in dem Satz von Gruppenflags entspricht, der das Vorhandensein der selektierten Farbe in wenigstens einer Zeile des komprimierten Blocks angibtt und ein Mittel zum Schreiben der Rot-, Grün-, Blau- und Intensitätswerte in den unkomprimierten Block an selektierten Stellen, die durch Spalten indiziert sind, welche die selektierte Farbe haben, wie sie durch den Satz von Zeilenflags angegeben wird, und durch Zeilen, die die selektierte Farbe haben, wie sie durch den Satz von Gruppenflags angegeben wird.
  • Die Ziele und Vorteile der vorliegenden Erfindung, die durch die beigefügten Ansprüche definiert ist, sind für die Fachwelt aus der folgenden eingehenden Beschreibung ohne weiteres ersichtlich, in der nur die bevorzugte Ausführungsform der Erfindung gezeigt und beschrieben ist, indem einfach der Modus dargestellt wird, der als der beste zum Ausführen der Erfindung betrachtet wird. Wie erkannt werden wird, kann die Erfindung andere und unterschiedliche Ausführungsformen haben und können ihre verschiedenen Details abgewandelt werden, ohne dabei den Schutzumfang der Erfindung zu verlassen. Daher sind die Zeichnungen und die Beschreibung von Natur aus als erläuternd und nicht als einschränkend anzusehen. Der Schutzumfang der Erfindung wird nur durch die beigefügten Ansprüche begrenzt.
  • 1 ist ein Diagramm eines Farbgraphikbildes und dessen zugeordneter Speicherdarstellung (Stand der Technik).
  • 2 ist ein Diagramm eines Beispielblocks 8 × 8 mit den RGBA-Vierergruppen, die als Ordinalzahlen dargestellt sind, gemäß der vorliegenden Erfindung.
  • 3 ist ein Diagramm, das die Umsetzung von Ordinalzahlen in RGBA-Vierergruppen zeigt.
  • 4 ist eine textliche Darstellung einer Datenstruktur für den Beispielblock von 2.
  • 5 ist ein Diagramm der Beispieldatenstruktur von 4, wie sie in einem Computerspeicher gespeichert ist.
  • 6 ist ein Diagramm einer verallgemeinerten Datenstruktur zum Speichern eines komprimierten Blocks gemäß der vorliegenden Erfindung.
  • 78 sind problemorientierte Flußdiagramme der Schritte zum Komprimieren von Bilddaten gemäß der vorliegenden Erfindung.
  • 910 sind problemorientierte Flußdiagramme der Schritte zum Dekomprimieren von zuvor komprimierten Bilddaten gemäß der vorliegenden Erfindung.
  • 11 ist ein Diagramm einer Software-Ausführungsform der vorliegenden Erfindung, wie sie auf einem Computersystem implementiert wird.
  • 12 ist ein Diagramm eines M*N-Verteilers, der zur Dekomprimierung verwendet wird.
  • 13 ist ein Blockdiagramm einer Dekomprimierungsschaltungsanordnung.
  • Die vorliegende Erfindung arbeitet mit unkomprimierten Bitmap-Bilddaten, wie etwa jenen, die in 1 gezeigt sind, um eine komprimierte Darstellung des Bildes zu erzeugen. Sie arbeitet auch mit komprimierten Bitmap-Bilddaten, um die originale, unkomprimierte Darstellung zu erzeugen. Um ein Bild zu komprimieren, verarbeitet die vorliegende Erfindung im allgemeinen alle Blöcke aus 8 mal 8 Pixels des Bildes der Reihe nach individuell. Für jeden Block werden alle verschiedenen Farben, die in dem Block vorhanden sind, identifiziert und einer Ordinalzahl zugeordnet. Eine Datenstruktur für den Block wird erzeugt, um die Anzahl von verschiedenen Farben zu speichern, die in dem Block vorhanden sind, einen Komprimierungsbildqualitätsmaskenwert (der weiter unten erläutert ist), die eigentliche RGBA-Vierergruppe für jede Farbe, die in dem Block vorhanden ist, und Sätze von Gruppen- und Zeilenbinärflags, die das Vorhandensein einer besonderen Farbe an einem besonderen Pixel innerhalb des Blocks angeben. Die resultierende Datenstruktur benötigt wesentlich weniger Speicher als der Satz von originalen RGBA-Vierergruppen für den Block. Die Datenstruktur für den Block wird dann in dem Speicher oder in einer Computerdatei gespeichert, und der nächste Block des Bildes wird verarbeitet. Dieser Prozeß wird für alle Blöcke des Bitmap-Bildes wiederholt. Um das Bild zu dekomprimieren, werden die RGBA-Vierergruppen von allen Pixels innerhalb jedes Blocks aus der Datenstruktur für den Block rekonstruiert. Diese Rekonstruktion wird für alle Blöcke in dem Bild wiederholt.
  • Die Darstellung der komprimierten Bilddaten gemäß der vorliegenden Erfindung kann am besten unter Bezugnahme auf ein einfaches Beispiel verstanden werden. 2 ist ein Diagramm eines Beispielblocks 8 × 8, wobei die RGBA-Vierergruppen als Ordinalzahlen dargestellt sind, gemäß der vorliegenden Erfindung. Block 24 verkörpert einen Block 8 × 8 von einem Bitmap-Bild. Er wird auch als Farbordinaltabelle bezeichnet. Er hat Indizes in der horizontalen Richtung von 0 bis 7 und in der vertikalen Richtung von 0 bis 7. Alternativ kann er als eindimensionales Array mit 64 Elementen dargestellt werden. Die Pixels des Blocks werden gescant, um zu bestimmen, welche verschiedenen Farben in dem Block dargestellt sind. Jede gefundene verschiedene Farbe wird einer Ordinalzahl zugeordnet. 3 ist ein Diagramm, das die Umsetzung von Ordinalzahlen in RGBA-Vierergruppen zeigt. Zum Beispiel gibt die Ordinalzahl Eins eine Farbe an, die gebildet ist aus dem Rotwert R1, dem Grünwert G1, dem Blauwert B1 und dem Helligkeitswert A1. Die Ordinalzahl Zwei gibt eine Farbe an, die gebildet ist aus dem Rotwert R3, dem Grünwert G3, dem Blauwert B3 und dem Helligkeitswert A3. Jede RGBA-Kombination ist eine einzigartige Farb- und Helligkeitsspezifikation für wenigstens ein Pixel in dem gegenwärtigen Block. Die anderen Farben, die in dem Beispielblock gefunden werden, werden so umgesetzt, wie es gezeigt ist. Unter erneuter Bezugnahme auf das Beispiel von 2 gibt die Farbordinaltabelle an, daß eine erste Farbe gefunden wird in Reihe 0, Spalte 1; Reihe 5, Spalten 0 und 2–7; und Reihe 6, Spalten 2–5. Eine zweite Farbe wird gefunden in Reihe 3, Spalten 0 und 6; Reihe 4, Spalten 0–4; Reihe 5, Spalte 1; und Reihe 6, Spalten 0–1. Eine dritte Farbe wird gefunden in Reihe 0, Spalten 0 und 2–3; Reihe 1, Spalten 1, 3 und 5; Reihe 2, Spalten 0–7; und Reihe 6, Spalten 6–7. Die übrigen Farben werden auf ähnliche Weise identifiziert. Bei dem in 2 gezeigten Beispiel sind sechs unterschiedliche Farben in dem Block 24 dargestellt. Das Auftreten von jeder Farbe in dem Block kann als Satz von Binärflags dargestellt werden, wobei jedes Flag das Vorhandensein oder Nichtvorhandensein der spezifizierten Farbe in einer Zeile des Blocks durch ein Bit in dem komprimierten Block angibt. Zusätzliche Sätze von Flags können für jede Zeile erzeugt werden, die eine spezifizierte Farbe hat, die alle Spalten angeben, die der selektierten Zeile mit der spezifizierten Farbe entsprechen.
  • Bei der Darstellung des Blocks 24 in 2 können Sätze von Flags für jede in dem Block gefundene Farbe erzeugt werden und in einer Datenstruktur für den Block gespeichert werden. Zum Beispiel ist die erste Farbe in den Zeilen 0, 5 und 6 zu finden. Daher kann ein Satz von Binärflags für diese Zeilen in dem Block für die erste Farbe erzeugt werden, der den Wert {10000110} hat. Diese Flags werden als Gruppenflags bezeichnet. Jede Position in dem Satz von Gruppenflags stellt eine Zeile in dem Block dar, beginnend bei der nullten Zeile und weiter bis zur siebten Zeile. Eine Eins an einer Satzposition gibt an, daß die selektierte Farbe irgendwo in der Zeile vorhanden ist, und eine Null an einer Satzposition gibt an, daß die selektierte Farbe in der Zeile nicht vorhanden ist. Für jede Zeile, die die selektierte Farbe hat, wird ein Satz von Binärflags erzeugt, die das Vorhandensein der selektierten Farbe in jeder Spalte der gegenwärtigen Zeile angeben. Diese Flags werden Zeilenflags genannt. Zum Beispiel ist die erste Farbe nur in der Spalte 1 von Zeile 1 zu finden. Daher wird ein Satz von Binärflags mit dem Wert {01000000B} erzeugt, um den Fakt darzustellen, daß die erste Farbe in Spalte 1 gefunden wird, aber in keiner anderen Spalte der Zeile. Ähnlich wird ein Satz von Binärflags mit dem Wert {10111111B} erzeugt, um die Existenz der ersten Farbe in den Spalten 0 und 2–7 von Zeile 5 darzustellen, und wird ein Satz von Binärflags mit dem Wert {00111100B} erzeugt, um die Existenz der ersten Farbe in den Spalten 2–5 von Zeile 6 darzustellen. Dieser Satzerzeugungsprozeß wird für alle in dem Block gefundenen Farben ausgeführt. Wenn alle Farben verarbeitet worden sind, ist eine Datenstruktur für den Block vollständig erzeugt worden, die wesentlich weniger Speicher als frühere Verfahren benötigt und keine Kosinusfunktionsauswertung oder Gleitkommakoeffizient-Multiplikationsoperationen erfordert.
  • 4 ist eine textliche Darstellung einer Datenstruktur für den Beispielblock von 2. Jedes Feld der Datenstruktur wird in einem Byte des Speichers gespeichert. Das Feld 30 "N" gibt die Anzahl von verschiedenen Farben an, die in dem Block gefunden wurden. Bei diesem Beispiel beträgt die Anzahl von Farben sechs. Das Feld 32 "Maskenwert" wird verwendet, wenn Sätze von ähnlichen Farben verglichen werden. Es wird unten eingehender beschrieben. Die Byte R1, G1, B1 und A1 34 halten die R-, G-, B- und A-Werte für die erste Farbe. Bei der verlustfreien Komprimierung werden die R-, G-, B- und A-Werte in vier Byte gespeichert, wie in dem Originalblock. Bei der verlustbehafteten Komprimierung wird jede Komponente in vier Bit gespeichert. In dem Fall werden die R-, G-, B- und A-Werte in zwei Byte gespeichert. Das Feld 36 "Gruppe1" enthält Bits, die das Vorhandensein der ersten Farbe in den Zeilen des Blocks angeben. Die erste Farbe tritt, wie oben erläutert, in den Zeilen 0, 5 und 6 auf. Daher wird ein Satz von Gruppenflags für das Feld 36 " Gruppe1" für die erste Farbe mit dem Wert {10000110B} erzeugt. Das niedrigstwertige Bit stellt die untere Zeile des Blocks dar. Da die erste Farbe in drei Zeilen gefunden wird, werden drei zusätzliche Sätze von Binärflags benötigt, um die Spalten in jenen drei Zeilen darzustellen, wo die erste Farbe auftritt. Deshalb enthält die Datenstruktur drei Sätze von Zeilenflags: Zeile10 38, Zeile15 40 und Zeile16 42. Die Zahlen in dem Feldnamen geben die Gruppennummer und die Zeilennummer an (z. B. bedeutet Zeile10 Gruppennummer 1, Zeile 0; bedeutet Zeile15 Gruppennummer 1, Zeile 5; und bedeutet Zeile16 Gruppennummer 1, Zeile 6). Der Wert {01000000B} wird erzeugt, wie zuvor erläutert, um den Fakt darzustellen, daß die erste Farbe in Spalte 1 gefunden wird, aber in keiner anderen Spalte. Dieser Wert wird in dem Feld 38 "Zeile10" gespeichert. Ähnlich wird der Wert {10111111B} erzeugt, um die Existenz der ersten Farbe in den Spalten 0 und 2–7 von Zeile 5 darzustellen, und im Feld 40 "Zeile15" gespeichert. Der Wert {00111100B} wird erzeugt, um die Existenz der ersten Farbe in den Spalten 2–5 von Zeile 6 darzustellen, und in dem Feld 42 "Zeile16" gespeichert.
  • Bei diesem Beispiel wird die vierte Farbe in die Kombination 44 aus R2, G2, B2, A2 umgesetzt. Die vierte Farbe wird in den Zeilen 0, 1, 3 und 4 gefunden, weshalb das Feld 46 "Gruppe2" den Wert {110011000B} erhält. Da diese Farbe in vier Zeilen auftritt, folgen vier Sätze von Zeilenflags: Zeile20, Zeile21, Zeile23 und Zeile24. Diese Felder erhalten die Werte {00001111B}, {10101011B}, {00000100B} bzw. {00000111B}. Die zweite Farbe wird in die Kombination 48 aus R3, G3, B3, A3 umgesetzt. Die zweite Farbe wird in den Zeilen 3–6 gefunden, weshalb das Feld 50 "Gruppe3" den Wert {00011110B} erhält. Da diese Farbe in vier Zeilen gefunden wird, folgen vier Sätze von Zeilenflags: Zeile33, Zeile34, Zeile35 und Zeile36. Diese Felder haben die Werte {10000010B}, {11111000B}, {01000000B} bzw. {11000000B}. Die fünfte Farbe wird in die Kombination 52 aus R4, G4, B4, A4 umgesetzt. Die fünfte Farbe wird in Zeile 3 gefunden, weshalb das Feld 54 "Gruppe4" den Wert {00010000B} erhält. Da die fünfte Farbe in nur einer Zeile gefunden wird, folgt ein Satz von Zeilenflags: Zeile43. Dieses Feld erhält den Wert {01111001B}, um zu reflektieren, daß die fünfte Farbe in den Spalten 1–4 und 7 von Zeile 3 gefunden wird. Die sechste Farbe wird in die Kombination 56 aus R5, G5, B5, A5 umgesetzt. Die sechste Farbe wird in Zeile 7 gefunden, weshalb das Feld 58 "Gruppe5" den Wert {00000001B} erhält. Da die sechste Farbe nur in einer Zeile gefunden wird, folgt ein Satz von Zeilenflags: Zeile57. Dieses Feld erhält den Wert {11111110B}, um zu reflektieren, daß die sechste Farbe in den Spalten 0–6 von Zeile 7 auftritt.
  • Die dritte Farbe wird in die Kombination 60 aus R6, G6, B6, A6 umgesetzt. Die dritte Farbe wird jedoch nicht von einem Satz von Gruppenflags oder Sätzen von Zeilenflags begleitet. Die Informationen, die die Positionen der dritten Farbe in dem Block beschreiben, können während des Dekomprimierungsprozesses rekonstruiert werden. Diese Stellen sind die Pixels in dem Block, die übrigbleiben, nachdem alle anderen Farben verarbeitet worden sind. Deshalb ist eine Spezifizierung von Pixels, die diese Farbe haben, unnötig.
  • 5 ist ein Diagramm der Beispieldatenstruktur von 4, wie sie in einem Computerspeicher gespeichert ist. Bei diesem Beispiel wird die verlustbehaftete Komprimierung verwendet, wobei die Werte R, G, B und A in insgesamt zwei Byte gespeichert sind. Bei diesem Beispiel beträgt die Gesamtanzahl von Byte, die zum Speichern der komprimierten Daten benötigt wird, die den Block darstellen, 32. Da der unkomprimierte Block 256 Byte benötigte, ergab die Operation der vorliegenden Erfindung ein Komprimierungsverhältnis von 8 : 1 für den Musterblock.
  • 6 ist ein Diagramm einer verallgemeinerten Datenstruktur zum Speichern eines komprimierten Blocks gemäß der vorliegenden Erfindung. Die Größe (in Byte) des komprimierten Blocks 62 wird zusammen mit einem Maskenwert 64 gespeichert. Für jede Farbe in dem Block werden die R-, G-, B- und A-Werte 66 gespeichert, und ein Satz von Gruppenflags 68 wird erzeugt. Für jede Zeile, die die gegenwärtige Farbe hat, wird ein Satz von Zeilenflags 70 erzeugt, um die Position der gegenwärtigen Farbe in der Zeile zu speichern. Diese Datenstruktur wird für alle Blöcke in dem Bitmap-Bild wiederholt.
  • Das vorliegende Verfahren zum Konstruieren einer Datenstruktur für einen Block von Bilddaten während der Komprimierung weist zwei Ausnahmen auf. Falls der Block nur eine Farbe hat, ist dann nur eine RGBA-Farbgruppe vorhanden, und das Format der Datenstruktur ist {N = 4, Maskenwert, RG, BA}. Daher kann der Block mit nur sechs Byte bei der verlustbehafteten Komprimierung und mit acht Byte bei der verlustfreien Komprimierung dargestellt werden. Falls 64 RGBA-Farbgruppen vorhanden sind (mit der Bedeutung, daß jedes Pixel eine verschiedene Farbe hat), lautet das Format dann {N = 130, Maskenwert, R1G1, B1A1, R2G2, B2A2, R3G3, B3A3, ..., R64G64, B64A64}. In der Praxis ist es jedoch unwahrscheinlich, daß in einem Block 8 × 8 jedes Pixel eine verschiedene Farbe hat.
  • Unter erneuter Bezugnahme auf 4 hält das Feld 32 " Maskenwert" die Anzahl von Maskenbits, die verwendet werden, wenn die Farben von zwei Pixels in einem Block verglichen werden. Der Maskenwert wird während der Komprimierung eines unkomprimierten Blocks verwendet und an die Dekomprimierungsfunktion zur Verwendung während der Dekomprimierung eines komprimierten Blocks übergeben. In der bevorzugten Ausführungsform der vorliegenden Erfindung lautet der Standardwert des Maskenwertes 16D, oder 00001000B. Dies bedeutet, daß die vier niedrigstwertigen Bits von jedem R-, G-, B- und A-Wert maskiert werden, wenn Farben verglichen werden. Das heißt, nur die vier höchstwertigen Bits von jedem R-, G-, B- und A-Wert werden für jedes Pixel verglichen. Dadurch ergeben sich zwei Farben, die ähnlich, aber nicht identisch sind, wobei sie für Komprimierungszwecke als dieselbe Farbe betrachtet werden. Der Maskenwert ist eine Variable, die durch den Benutzer des Komprimierungsalgorithmus festgelegt werden kann. Genauer gesagt, zwei RGBA-Vierergruppen, nämlich RpGpBpAp und RgGqBqAq, werden hinsichtlich der Farbe als gleich betrachtet, falls Rp = Rq mod Maskenwert, Gp = Gq mod Maskenwert, Bp = Bq mod Maskenwert und Ap = Aq mod Maskenwert ist. Wenn der Maskenwert auf Null gesetzt wird, findet keine Maskierung statt. Dies ist dann eine verlustfreie Komprimierung, und das dekomprimierte Bild hat die beste Qualität, da es alle Originalinformationen enthält. Das resultierende Komprimierungsverhältnis ist in diesem Fall jedoch niedriger. Wenn der Maskenwert auf 16D festgelegt wird, ist die Qualität des dekomprimierten Bildes nicht ganz so gut, wie wenn der Maskenwert Null ist, aber das Komprimierungsverhältnis ist besser. Bei dem Standardwert für die vorliegende Erfindung können die meisten Benutzer keine Verschlechterung der Bildqualität entdecken, nachdem Komprimierungs- und Dekomprimierungsoperationen ausgeführt worden sind. Der Benutzer kann den Maskenwert auf der Basis dessen selektieren, was er in Hinblick auf Komprimierungsverhältnis vs. Bildqualität bevorzugt. Je niedriger der Maskenwert ist, desto wenigere verschiedene Farben werden für Komprimierungszwecke als dieselbe Farbe angesehen und desto niedriger ist das Komprimierungsverhältnis je höher der Maskenwert, desto mehr verschiedene Farben werden für Komprimierungszwecke als dieselbe angesehen und desto höher ist das Komprimierungsverhältnis.
  • 78 sind problemorientierte Flußdiagramme der Schritte zum Komprimieren von Bilddaten gemäß der vorliegenden Erfindung. Nach dem Komprimierungsstartschritt 100 bei Schritt 102 wird der Maskenwert für diese Komprimierungsoperation erhalten. Der Maskenwert kann durch einen Anwender des Komprimierungsverfahrens auf der Basis des gewünschten Komprimierungsverhältnisses und der resultierenden Qualität des dekomprimierten Bildes festgelegt werden. Alternativ kann der Maskenwert auf einen Standardwert voreingestellt werden, wie zum Beispiel auf 16D. Der Maskenwert kann für alle Blöcke in dem zu komprimierenden Bild derselbe sein, oder es kann ein neuer Maskenwert für jeden Block spezifiziert werden. Ein unkomprimierter Block von Bilddaten von 8 × 8 Pixels wird bei Schritt 104 zur Komprimierungsverarbeitung erhalten. Typischerweise sind die Bilddaten in einer Datei auf einem Computersystem gespeichert, wird die Datei geöffnet und wird der erste Block von Bilddaten von der Datei gelesen.
  • Bei Schritt 106 werden die 64 Pixels des unkomprimierten Blocks gescant, um eine Farbordinaltabelle (die der in 2 gezeigten Beispieltabelle ähnlich ist) von allen verschiedenen Farben gemäß dem Maskenwert zu erstellen. Die Farben, die in dem Block vorhanden sind, werden identifiziert, und jedem Pixel wird eine Ordinalzahl der Farbe zugeordnet, die in dem Pixel vorhanden ist. Zwei Pixels werden als ein und dieselbe Farbe betrachtet, falls die RGBA-Werte der Pixels um weniger als den Maskenwert differieren. Sobald die Farbordinaltabelle für den Block erstellt ist, wird bei Schritt 108 die erste Farbe von der Farbordinaltabelle selektiert. Dies ist die Farbe, die zuerst zu verarbeiten ist, wenn die Datenstruktur konstruiert wird, die die komprimierten Bilddaten für den Block hält. Als nächstes werden bei Schritt 110 die RGBA-Werte für die gegenwärtig verarbeitete Farbe aus dem unkomprimierten Block von Bilddaten extrahiert und in der Datenstruktur des komprimierten Blocks gemäß dem spezifizierten Maskenwert gespeichert. Die Datenstruktur des komprimierten Blocks ist in 6 gezeigt. Dann wird die Farbordinaltabelle bei Schritt 112 gescant, um einen Satz von Gruppenflags zu erstellen, der Zeilen in dem unkomprimierten Block angibt, die die gegenwärtige Farbe haben. Da acht Zeilen in dem Block vorhanden sind, reicht ein Satz von acht Binärflags aus, um das Vorhandensein oder Nichtvorhandensein der gegenwärtigen Farbe in den Zeilen des Blocks anzugeben. Der Satz von Gruppenflags kann in einem 8-Bit-Byte gespeichert werden. Der Satz von Gruppenflags wird dann in dem komprimierten Block gespeichert. Bei Schritt 114 wird die Farbordinaltabelle verarbeitet, um einen oder mehrere Sätze von Zeilenflags zu erstellen, die Spalten angeben, die die gegenwärtige Farbe haben, und zwar für jede in dem gegenwärtigen Satz von Gruppenflags durch ein Flag gekennzeichnete Zeile. Das heißt, für jede Zeile in dem Block, die ihr zugeordnetes Bit hat, das in dem Satz von Gruppenflags gesetzt ist, wird ein Satz von Zeilenflags erzeugt. Da acht Spalten in dem Block vorhanden sind, reicht ein Satz von acht Binärflags aus, um das Vorhandensein oder Nichtvorhandensein der gegenwärtigen Farbe in den Spalten der selektierten Zeile anzugeben. Der Satz von Zeilenflags wird in einem 8-Bit-Byte gespeichert. Alle Sätze von Zeilenflags, die gesetzten Bits in dem Satz von Gruppenflags entsprechen, werden in dem komprimierten Block gespeichert. Die Komprimierungsverarbeitung wird in 8 über die Verbindung 8A fortgesetzt.
  • Falls bei dem Testschritt 116 in 8 in der Farbordinaltabelle weitere Farben übrig sind, um verarbeitet zu werden, wird der JA-Pfad 118 über die Verbindung 7B zu Schritt 108 in 7 gewählt. Bei Schritt 108 wird die nächste zu verarbeitende Farbe von den Farben in der Farbordinaltabelle selektiert, und diese Farbe wird wie oben beschrieben verarbeitet. Falls keine weiteren zu verarbeitenden Farben mehr übrig sind, wird dann der NEIN-Pfad 120 zu Schritt 122 gewählt. Als Optimierungsmerkmal der vorliegenden Erfindung wird die Farbe, die in dem Originalblock von Bilddaten am häufigsten vorkommt, als letzte Farbe in dem komprimierten Block dargestellt, wobei der Satz von Gruppenflags und die Sätze von Zeilenflags weggelassen werden. Während der Dekomprimierungsverarbeitung wird angenommen, daß diese Farbe in allen Pixels vorhanden ist, die nicht durch andere Sätze von Gruppenflags und Sätze von Zeilenflags bezeichnet sind. Deshalb werden die RGBA-Werte der größten Farbgruppe bei Schritt 122 an das Ende des komprimierten Blocks verschoben, und andere Bytes des komprimierten Blocks werden verschoben, um den Block zu verdichten und die Lücke im Speicher zu füllen, die durch die größte Farbgruppe verblieben ist, falls erforderlich. Bei Schritt 124 werden die Größe des komprimierten Blocks und der während der Verarbeitung des Blocks verwendete Maskenwert in dem komprimierten Block gespeichert. Der komprimierte Block wird dann bei Schritt 126 ausgegeben. Typischerweise hat diese Ausgabeoperation das Schreiben des komprimierten Blocks in eine Datei zum Speichern der komprimierten Bilddaten zur Folge. Falls bei dem Testschritt 128 weitere Blöcke der Bilddaten verarbeitet werden müssen, wird dann über die Verbindung 7A der JA-Pfad 130 zu Schritt 104 in 7 gewählt. Bei Schritt 104 wird der nächste unkomprimierte Block von Bilddaten zur Komprimierungsverarbeitung erhalten. Anderenfalls wird der NEIN-Pfad 132 zu dem Endschritt 134 gewählt, und die Komprimierungsverarbeitung für die Bilddaten ist vollendet.
  • Tabelle I beschreibt einen Pseudocode zum Komprimieren eines Blocks von Bilddaten gemäß der vorliegenden Erfindung. In Anhang A ist eine Implementierung des Komprimierungsalgorithmus der vorliegenden Erfindung in der Sprache "C" offenbart.
  • TABELLE I
    Figure 00190001
  • Figure 00200001
  • Figure 00210001
  • 910 sind problemorientierte Flußdiagramme der Schritte zum Dekomprimieren von zuvor komprimierten Bilddaten gemäß der vorliegenden Erfindung. Die Dekomprimierungsschritte werden gewöhnlich ausgeführt, wenn eine Anzeige eines komprimierten Bildes gewünscht wird. Nach dem Dekomprimierungsstartschritt 150 wird bei Schritt 152 ein komprimierter Block von Bilddaten zur Dekomprimierungsverarbeitung erhalten. Typischerweise ist der komprimierte Block in einer Datei auf einem Computersystem gespeichert, wird die Datei geöffnet und wird der erste komprimierte Block von Bilddaten von der Datei gelesen. Bei Schritt 154 werden die Größe des komprimierten Blocks und der Maskenwert aus den ersten zwei Speicherstellen des komprimierten Blocks extrahiert. Bei Schritt 156 werden die letzten RGBA-Werte in dem komprimierten Block extrahiert und an alle Stellen des unkomprimierten Blocks geschrieben, um durch die Dekomprimierungsverarbeitung ausgegeben zu werden. Durch ein anschließendes Schreiben an selektierte Stellen in dem unkomprimierten Block wird die Standardfarbe überschrieben, da aber diese Farbe die am häufigsten verwendete Farbe in dem Block ist, werden durch diesen Schritt Speicher sowie Dekomprimierungsverarbeitungszeit eingespart. Bei Schritt 158 wird die erste Farbe des komprimierten Blocks selektiert. Die RGBA-Werte für diese Farbe werden aus dem komprimierten Block unter Verwendung des Maskenwertes bei Schritt 160 extrahiert. Als nächstes wird bei Schritt 162 der Satz von Gruppenflags für diese Farbe aus dem komprimierten Block extrahiert. Falls der Satz von Gruppenflags irgendwelche gesetzten Bit hat (die angeben, daß diese Farbe in der entsprechenden Zeile des Blocks vorkommt), wird dann bei Schritt 164 ein Satz von Zeilenflags für diese Farbgruppe aus dem komprimierten Block extrahiert. Die Verarbeitung dieser Farbe wird über die Verbindung 10A mit Schritt 166 in 10 fortgesetzt.
  • Bei Schritt 166 werden die RGBA-Werte an selektierten Stellen in den unkomprimierten Block geschrieben, die durch die Kombination aus den Gruppen- und Zeilenflags angegeben sind, und zwar für alle Spalten in dem Satz von Zeilenflags mit gesetzten Bits. Es sei daran erinnert, daß jeder Satz von Zeilenflags das Vorhandensein der gegenwärtigen Farbe in Spalten der gegenwärtigen Zeile des Blocks angibt. Falls ein Spaltenbit für eine besondere Zeile gesetzt ist, werden dann die RGBA-Werte an die Stelle für das selektierte Pixel in dem unkomprimierten Block geschrieben. Falls bei dem Testschritt 168 weitere Sätze von Zeilenflags für die gegenwärtige Farbgruppe existieren, wird als nächstes dann der JA-Pfad 170 über die Verbindung 9C zu Schritt 164 in 9 gewählt, um den nächsten Satz von Zeilenflags für diese Farbe zu erhalten. Anderenfalls wird der NEIN-Pfad 172 zu dem Testschritt 174 gewählt. Falls bei diesem Schritt weitere Farben übrig sind, die für den gegenwärtigen Block zu verarbeiten sind, wird dann der JA-Pfad 176 über die Verbindung 9B zu Schritt 158 in 9 zum Selektieren der nächsten Farbe gewählt. Anderenfalls wird der NEIN-Pfad 178 zu dem Testschritt 180 gewählt. Falls bei dem Testschritt 180 keine weiteren Blöcke vorhanden sind, die für dieses komprimierte Bild zu verarbeiten sind, wird dann der JA-Pfad 182 über die Verbindung 9A zu Schritt 152 in 9 zum Erhalten des nächsten zu verarbeitenden komprimierten Blocks gewählt. Falls alle Blöcke des Bildes verarbeitet worden sind, wird dann der NEIN-Pfad 184 zu dem Endschritt 186 gewählt und ist die Dekomprimierungsverarbeitung vollendet.
  • Tabelle II beschreibt einen Pseudocode zum Dekomprimieren eines zuvor komprimierten Blocks von Bilddaten gemäß der vorliegenden Erfindung. Eine Implementierung des Dekomprimierungsalgorithmus der vorliegenden Erfindung in der Sprache "C" ist in Anhang B offenbart.
  • TABELLE II
    Figure 00230001
  • Figure 00240001
  • Die vorliegende Erfindung wurde auf mehrere Muster-Bitmap-Bilder mit einem Standardmaskenwert von 16D angewendet (das heißt, vier Bits wurden bei jedem R-, G-, B-, A-Wert maskiert). So wurde eine verlustbehaftete Komprimierung getestet, aber der Maskenwert wurde so festgelegt, daß keine Verschlechterung der Bildqualität spürbar war. Zuerst wurde das Musterbild komprimiert, und dann wurde die komprimierte Darstellung des Bildes dekomprimiert. Die Musterbilder hatten eine Größe von 640 × 480 Pixels, wobei jedes Pixel durch 32 Bit dargestellt wurde. Die Komprimierungs-/ Dekomprimierungsoperationen wurden während der Ausführung durch einen PC auch zeitlich erfaßt. Für Vergleichszwecke wurden Komprimierungs- und Dekomprimierungsoperationen an denselben Bildern auch unter Verwendung einer Implementierung des JPEG-Standards ausgeführt. Die exakten Zeitwerte, die unten angegeben sind, würden variieren, wenn diese Algorithmen auf verschiedenen Computersystemen implementiert würden, aber die wesentliche Maßzahl ist die reaktive Differenz zwischen den Resultaten der gegenwärtigen Erfindung und dem JPEG-Standard. Tabelle III zeigt die Resultate der Komprimierungs- und Dekomprimierungsoperationen, wobei R das resultierende Komprimierungsverhältnis ist und T die verstrichene Zeit in Sekunden zur Komprimierung und Dekomprimierung darstellt.
  • TABELLE III
    Figure 00250001
  • Gemäß diesen Testresultaten ist das Komprimierungsverhältnis für die vorliegende Erfindung besser als das Komprimierungsverhältnis für den JPEG-Standard, wenn auch nicht signifikant. Die Gesamtzeit, die zum Komprimieren und Dekomprimieren eines Bildes benötigt wird, ist bei Anwendung der vorliegenden Erfindung im Vergleich zu dem JPEG-Standard jedoch bedeutend kürzer (hier beträgt die Verarbeitungszeit bei der vorliegenden Erfindung etwa 1,3% der Verarbeitungszeit bei dem JPEG-Standard für jedes Bild).
  • Oben ist eine Software-Implementierung der vorliegenden Erfindung beschrieben. 11 ist ein Diagramm einer Software-Ausführungsform der vorliegenden Erfindung bei Implementierung auf einem Computersystem. Ein unkomprimiertes Bild 180 wird auf einer Speichervorrichtung 182 gespeichert, die mit einem Computersystem 184 gekoppelt ist. Das Computersystem 184 führt eine Komprimierungsfunktion 186 gemäß der vorliegenden Erfindung aus, um ein unkomprimiertes Bild 180 zu lesen und zu komprimieren. Die Resultate der Komprimierungsoperation werden in dem komprimierten Bild 188 der Speichervorrichtung 182 zur künftigen Verwendung gespeichiert. Anschließend führt dasselbe Computersystem 184, oder ein verschiedenes Computersystem (nicht gezeigt), eine Dekomprimierungsfunktion 190 gemäß der vorliegenden Erfindung aus, um ein komprimiertes Bild zu lesen und zu dekomprimieren. Das dekomprimierte Bild wird zu einer Anzeige 192 zur Darstellung für einen Benutzer des Computersystems gesendet.
  • Obwohl die oben beschriebenen Komprimierungs- und Dekomprimierungsverfahren in Form von Software implementiert werden können, die auf einem Mehrzweckcomputer ausführt wird, ist die bevorzugte Ausführungsform der vorliegenden Erfindung eine Multiprozessor-Hardware-Implementierung, die von der inhärenten Parallelität profitiert, die bei dem vorliegenden Verfahren zur Verfügung steht. Obgleich sowohl die Komprimierung als auch die Dekomprimierung wichtig ist, wird in der Praxis ein Bild typischerweise einmal komprimiert, aber viele Male dekomprimiert. Deshalb ist die Dekomprimierungsgeschwindigkeit sehr wichtig. Falls die Dekomprimierungsschritte parallel auf mehreren Verarbeitungsvorrichtungen implementiert werden können, kann eine Gesamtdekomprimierungszeit extrem reduziert werden. Der Dekomprimierungsprozeß ist in dem in Tabelle IV gezeigten Pseudocode allgemein beschrieben.
  • TABELLE IV
    Figure 00260001
  • Auf der Basis des Pseudocodes von Tabelle IV sind drei mögliche Ebenen vorhanden, um RGBA-Vierergruppen-Schreiboperationen während einer Dekomprimierungsverarbeitung gleichzeitig auszuführen, nämlich eine für jede der drei inneren Steuerschleifen. Jede RGBA-Vierergruppen-Schreiboperation ist von allen anderen Schreiboperationen unabhängig, so daß mehrere Verarbeitungsvorrichtungen parallel verwendet werden können, um das Original-Bitmap-Bild von der komprimierten Datendarstellung zu rekonstruieren. Falls zum Beispiel acht Farben in einem Block von Bilddaten vorhanden sind, könnten dann acht Prozessoren, die jeweils eine verschiedene Farbe verarbeiten, parallel arbeiten, um die RGBA-Vierergruppen für die einem gegebenen Prozessor zugeordnete Farbe zu schreiben. Solch ein System sieht eine erhöhte Dekomprimierungsgeschwindigkeit für Multimedia-PC-Anwendungen vor.
  • In der bevorzugten Hardware-Ausführungsform wird eine Dekomprimierungsvorrichtung in einem M*N-Verteiler mit einem 32 Bit breiten Datenweg dargestellt. 12 ist ein Diagramm eines M*N-Verteilers, der zur Dekomprimierung verwendet wird. Die Anzahl von Eingangsleitungen zu dem Verteiler (M) ist auf acht festgelegt, und die Anzahl von Ausgangsleitungen (N) ist auf 64 festgelegt. Die Ausgangsleitungen sind mit konsekutiven Speicherelementen (nicht gezeigt) verbunden. Die Anzahl von Eingangsleitungen M sollte der tatsächlichen Anzahl von Farbgruppen in dem Bild entsprechen. Durch das Festlegen von M auf acht und unter der Annahme, daß die Anzahl von Farbgruppen in dem Bild größer als acht ist, kann der gesamte Satz von Farbgruppen jedoch in Untersätze von acht geteilt werden und können die Untersätze sequentiell verarbeitet werden. Bei diesem Verarbeitungsniveau würde keine Parallelität zur Anwendung kommen.
  • Für jeden gegenwärtigen Untersatz von Farbgruppen sendet der Verteiler Daten von den M Eingängen gemäß den Werten von Elementen in einer Matrix zu den N Ausgängen. Für jeden Untersatz von Farbgruppen wird ein Verteiler verwendet. Die Matrix wird mit den Informationen gebildet, die durch die Sätze von Gruppenflags und die Sätze von Zeilenflags vorgesehen sind. Die Reihe i der Matrix A = {aij}, 1 <= i <= 8, 1 <= j <= 64, die dem Eingang i entspricht, kann wie folgt konstruiert sein: aij = 1, falls P = 1 und Q = 1 ist, anderenfalls ist aij = 0; wobei P der Wert des Bits m in dem Satz von Gruppenflags entsprechend der Farbgruppe i ist; m = (int) (j/8) ist Q der Wert des Bits n in dem Satz von Zeilenflags für m entsprechend der Farbgruppe i ist; und n = j%8 ist (d. h., Rest nach Division durch 8).
  • 13 ist ein Blockdiagramm einer Dekomprimierungsschaltungsanordnung. Komprimierte Daten 200 sind in einem Lokalspeicher 202 gespeichert. Der Lokalspeicher überträgt komprimierte Daten über M Eingangsleitungen zu wenigstens einem M × N-Verteiler 204, wo die Eingabe-/Ausgabematrix durch Verschiebungsoperationen an den Daten gebildet wird. Es sind keine Additions- oder Multiplikationsoperationen erforderlich, und es werden keine Gleitkommazahlen manipuliert. Der M × N-Verteiler 204 überträgt alle Daten von den M Eingängen zu den jeweiligen N Ausgängen und in einen schnellen 64 × 32-Lokalspeicher 206. Unkomprimierte Daten 208 werden aus dem schnellen 64 × 32-Lokalspeicher zur weiteren Verarbeitung ausgelesen, wie etwa zur Anzeige des unkomprimierten Bildes auf einem Computermonitor.
  • Die Erfindung ist in einem Modus beschrieben worden, der zur Zeit als ihr bester betrachtet wird, und es ist klar, daß sie verschiedene Abwandlungen zuläßt. Daher ist der Schutzumfang in den beigefügten Ansprüchen angegeben, die die Erfindung definieren.
  • ANHANG A
  • Implementierung des Algorithmus zum Komprimieren eines Blocks von Bilddaten in der Sprache C
    Figure 00290001
    Figure 00300001
  • ANHANG B
  • Implementierung des Algorithmus zum Dekomprimieren eines zuvor komprimierten Blocks von Bilddaten in der Sprache C
    Figure 00310001

Claims (14)

  1. Verfahren zum Verarbeiten von Daten, die einen Block von Graphikbilddaten repräsentieren, wobei der Block eine Vielzahl von Zeilen hat, jede Zeile eine Vielzahl von Spalten hat, jede Spalte ein Pixel enthält, jedes Pixel eine Farbe hat, die durch Rot-, Grün-, Blau- und Intensitätswerte repräsentiert wird, welches Verfahren den Schritt zum Ausführen wenigstens eines der folgenden Schritte umfaßt: Erstellen eines unkomprimierten Blocks von Graphikbilddaten aus einem komprimierten Block von Graphikbilddaten; und Bilden eines komprimierten Blocks von Graphikbilddaten aus einem unkomprimierten Block von Graphikbilddaten; wobei der komprimierte Block von Graphikbilddaten umfaßt: – eine Vielzahl von verschiedenen Farbkombinationen, die Rot-, Grün-, Blau- und Intensitätswerte (34, 44, 48, 52, 56, 60, 66) haben; – für jede verschiedene Farbkombination, außer der letzten, einen Satz von Binärgruppenflags (36, 46, 50, 54, 58, 68), der angibt, welche Zeilen des unkomprimierten Blocks Pixels mit der genannten verschiedenen Farbkombination enthalten; – für den genannten Satz von Binärgruppenflags wenigstens einen Satz von Binärzeilenflags (38, 40, 42, 70), wobei jeder Satz von Zeilenflags eine verschiedene Zeile repräsentiert, welche die genannte verschiedene Farbkombination enthält, und innerhalb der genannten Zeile die Spalten von Pixels angibt, welche die genannte verschiedene Farbkombination haben.
  2. Verfahren nach Anspruch 1, bei dem der Schritt zum Bilden eines komprimierten Blocks von Graphikbilddaten die folgenden Schritte umfaßt: (A) Aufbauen eines Arrays von Farbordinalzahlen durch das Identifizieren aller Farben, die in den Pixels des Blocks vorhanden sind, wobei jede Farbordinalzahl eine der Farben repräsentiert, welches Array von Farbordinalzahlen eine der Farbordinalzahlen, die der Farbe eines Pixels entspricht, für jedes Pixel in dem Block umfaßt; (B) Speichern der Rot-, Grün-, Blau- und Intensitätswerte für eine selektierte der Farben in dem komprimierten Block; (C) Aufbauen eines ersten Satzes von Flags, der Zeilen in dem Block angibt, die Pixels mit der selektierten Farbe haben, gemäß dem Array von Farbordinalzahlen; (D) Speichern des ersten Satzes von Flags in dem komprimierten Block; (E) Aufbauen wenigstens eines zweiten Satzes von Flags, der Spalten angibt, die Pixels mit der selektierten Farbe innerhalb von Zeilen in dem Block haben, die Pixels mit der selektierten Farbe haben, gemäß dem Array von Farbordinalzahlen, wobei jede Zeile, die Pixels mit der selektierten Farbe hat, durch einen zweiten Satz von Flags repräsentiert wird; (F) Speichern des wenigstens einen zweiten Satzes von Flags in dem komprimierten Block; und (G) Wiederholen der Schritte (B) bis (F) für alle Farben in dem Block.
  3. Verfahren nach Anspruch 1 oder 2, ferner mit dem Schritt zum Speichern einer Größe des komprimierten Blocks in dem komprimierten Block.
  4. Verfahren nach Anspruch 1, 2 oder 3, bei dem der Block acht Zeilen aus acht Spalten pro Zeile umfaßt.
  5. Verfahren nach Anspruch 2, das ferner den Schritt zum Erzielen eines Maskenwertes umfaßt und bei dem der Schritt zum Aufbauen eines Arrays von Farbordinalzahlen das Identifizieren aller Farben, die in den Pixels des Blocks vorhanden sind, gemäß dem Maskenwert enthält.
  6. Verfahren nach Anspruch 5, ferner mit dem Schritt zum Speichern des Maskenwertes in dem komprimierten Block.
  7. Verfahren nach Anspruch 6, bei dem zwei Farben, wobei eine erste Farbe einen ersten Rotwert, einen ersten 15 Grünwert, einen ersten Blauwert und einen ersten Intensitätswert hat, und eine zweite Farbe einen zweiten Rotwert, einen zweiten Grünwert, einen zweiten Blauwert und einen zweiten Intensitätswert hat, verschieden sind, falls der erste Rotwert modulo Maskenwert nicht gleich dem zweiten 20 Rotwert modulo Maskenwert ist, der erste Grünwert modulo Maskenwert nicht gleich dem zweiten Grünwert modulo Maskenwert ist, der erste Blauwert modulo Maskenwert nicht gleich dem zweiten Blauwert modulo Maskenwert ist und der erste Intensitätswert modulo Maskenwert nicht gleich dem zweiten 25 Intensitätswert modulo Maskenwert ist.
  8. Verfahren nach irgendeinem vorhergehenden Anspruch, ferner mit dem Schritt zum Bewegen der Rot-, Grün-, Blau- und Intensitätswerte einer Farbe, die in Pixels 30 des Blocks am häufigsten auftritt, an das Ende des komprimierten Blocks.
  9. Verfahren nach irgendeinem vorhergehenden Anspruch, bei dem der Schritt zum Erstellen eines unkomprimierten Blocks von Graphikbilddaten die folgenden Schritte umfaßt: 5 (A) Erhalten der Rot-, Grün-, Blau- und Intensitätswerte für eine selektierte Farbe von dem komprimierten Block; (B) Erhalten des Satzes von Gruppenflags für die selektierte Farbe von dem komprimierten Block; 10 (C) Erhalten eines Satzes von Zeilenflags, der einem selektierten Gruppenflag in dem Satz von Gruppenflags entspricht und das Vorhandensein der selektierten Farbe in wenigstens einer Zeile des komprimierten Blocks angibt; (D) Schreiben der Rot-, Grün-, Blau- und Intensitätswerte in den unkomprimierten Block an selektierten Stellen, die durch Spalten indiziert sind, welche die selektierte Farbe haben, wie sie durch den Satz von Zeilenflags angegeben wird, für die Zeile, welche die selektierte Farbe hat, wie sie durch das selektierte Gruppenflag angegeben wird; 20 (E) Wiederholen der Schritte (C) und (D) für jedes Gruppenflag in dem Satz von Gruppenflags, der das Vorhandensein der selektierten Farbe in wenigstens einer Zeile des komprimierten Blocks angibt; und (F) Wiederholen der Schritte (A)–(E) für alle verschiedenen Farbkombinationen des komprimierten Blocks.
  10. Verfahren nach Anspruch 9, ferner mit den folgenden Schritten: Erhalten der Rot-, Grün-, Blau- und Intensitätswerte 30 für eine letzte Farbe von dem komprimierten Block; und Schreiben der Rot-, Grün-, Blau- und Intensitätswerte für die letzte Farbe in den unkomprimierten Block für alle Pixels des unkomprimierten Blocks.
  11. Verfahren nach Anspruch 9 oder 10, bei dem der komprimierte Block einen Maskenwert enthält und ferner die folgenden Schritte umfaßt: 5 Erhalten des Maskenwertes von dem komprimierten Block und Abwandeln der Rot-, Grün-, Blau- und Intensitätswerte gemäß dem Maskenwert. 10 12. Verfahren nach Anspruch 11, bei dem zwei Farben, wobei eine erste Farbe einen ersten Rotwert, einen ersten Grünwert, einen ersten Blauwert und einen ersten Intensitätswert hat, und eine zweite Farbe einen zweiten Rotwert, einen zweiten Grünwert, einen zweiten Blauwert und einen 15 zweiten Intensitätswert hat, verschieden sind, falls der erste Rotwert modulo Maskenwert nicht gleich dem zweiten Rotwert modulo Maskenwert ist, der erste Grünwert modulo Maskenwert nicht gleich dem zweiten Grünwert modulo Maskenwert ist, der erste Blauwert modulo Maskenwert nicht gleich 20 dem zweiten Blauwert modulo Maskenwert ist und der erste Intensitätswert modulo Maskenwert nicht gleich dem zweiten Intensitätswert modulo Maskenwert ist.
  12. Computersystem mit einer Vorrichtung, die dafür 25 ausgelegt ist, das Verfahren nach irgendeinem der Ansprüche 1 bis 12 auszuführen.
  13. Speicher, der Daten zum Repräsentieren eines komprimierten Blocks von Graphikbilddaten auf der Basis 30 eines unkomprimierten Blocks von Graphikbilddaten speichert, wobei der unkomprimierte Block eine Vielzahl von Zeilen hat, jede Zeile eine Vielzahl von Spalten hat, jede Spalte ein Pixel enthält, jedes Pixel eine Farbe hat, die durch Rot-, Grün-, Blau- und Intensitätswerte repräsentiert wird, welcher Speicher umfaßt: eine Datenstruktur, die in dem Speicher gespeichert ist und den komprimierten Block von Graphikbilddaten repräsentiert, der umfaßt: - eine Vielzahl von verschiedenen Farbkombinationen, die Rot-, Grün-, Blau- und Intensitätswerte (34, 44, 48, 52, 56, 60, 66) haben; - für jede verschiedene Farbkombination, außer der 10 letzten, einen Satz von Binärgruppenflags (36, 46, 50, 54, 58, 68), der angibt, welche Zeilen des unkomprimierten Blocks Pixels mit der genannten verschiedenen Farbkombination enthalten; - für den genannten Satz von Binärgruppenflags wenigstens einen Satz von Binärzeilenflags (38, 40, 42, 70), wobei jeder Satz von Zeilenflags eine verschiedene Zeile repräsentiert, welche die genannte verschiedene Farbkombination enthält, und innerhalb der genannten Zeile die Spalten von Pixels angibt, welche die genannte verschiedene Farbkombination haben.
  14. Speicher nach Anspruch 14, bei dem die Datenstruktur ferner einen Maskenwert für den komprimierten Block umfaßt und bei dem zwei Farben, wobei eine erste Farbe einen ersten Rotwert, einen ersten Grünwert, einen ersten Blauwert und einen ersten Intensitätswert hat, und eine zweite Farbe einen zweiten Rotwert, einen zweiten Grünwert, einen zweiten Blauwert und einen zweiten Intensitätswert hat, verschieden sind, falls der erste Rotwert modulo Maskenwert nicht gleich dem zweiten Rotwert modulo Maskenwert ist, der erste Grünwert modulo Maskenwert nicht gleich dem zweiten Grünwert modulo Maskenwert ist, der erste Blauwert modulo Maskenwert nicht gleich dem zweiten Blauwert modulo Maskenwert ist und der erste Intensitätswert modulo Maskenwert nicht gleich dem zweiten Intensitätswert modulo Maskenwert ist.
DE69820148T 1997-04-30 1998-04-29 Verfahren zur Kompression/Dekompression von Bilddaten Expired - Lifetime DE69820148T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US846549 1997-04-30
US08/846,549 US6128406A (en) 1997-04-30 1997-04-30 Method of compressing and decompressing graphics images

Publications (2)

Publication Number Publication Date
DE69820148D1 DE69820148D1 (de) 2004-01-15
DE69820148T2 true DE69820148T2 (de) 2004-06-09

Family

ID=25298258

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69820148T Expired - Lifetime DE69820148T2 (de) 1997-04-30 1998-04-29 Verfahren zur Kompression/Dekompression von Bilddaten

Country Status (5)

Country Link
US (1) US6128406A (de)
EP (1) EP0875858B1 (de)
JP (1) JP4189443B2 (de)
KR (1) KR100573527B1 (de)
DE (1) DE69820148T2 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6505256B1 (en) * 1999-01-15 2003-01-07 Compaq Information Technologies Group, L.P. Automatic synchronization of state colors across a web-based system
US7075681B1 (en) * 1999-11-09 2006-07-11 Kodak Graphic Communications Canada Company System and method for reducing the data volume of images
KR100700510B1 (ko) * 2000-01-04 2007-03-28 엘지전자 주식회사 공유 메모리 다중 프로세서 시스템 및 이를 위한 디렉토리압축방법
US7184087B2 (en) * 2001-05-22 2007-02-27 Fuji Photo Film Co., Ltd. On-screen device for subject of interest in portable electronic device, and method of controlling same
US7062088B1 (en) * 2001-08-28 2006-06-13 Adobe Systems Incorporated Variable lossy compression
US20030074364A1 (en) * 2001-10-12 2003-04-17 Sewall Patrick M. Compressed data structure and decompression system
US7397962B2 (en) * 2001-10-25 2008-07-08 Infoprint Solutions Company, Llc Automatic method of identifying image subregions for reuse during datastream transmission
KR100495001B1 (ko) * 2002-12-14 2005-06-14 (주)이엔제이소프트 이미지 압축 부호화 방법 및 시스템
KR100834439B1 (ko) * 2004-05-29 2008-06-04 삼성전자주식회사 그래픽 데이터 압축 및 복원 장치와 그 방법
EP1924970B1 (de) * 2005-08-19 2009-03-11 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Texturkomprimierung auf der basis zweier farbtöne mit modifizierter helligkeit
US10038902B2 (en) * 2009-11-06 2018-07-31 Adobe Systems Incorporated Compression of a collection of images using pattern separation and re-organization
US11469772B2 (en) * 2017-04-11 2022-10-11 Joshua Huang Method, system and program product for mask-based compression of a sparse matrix
CN105898305B (zh) * 2016-04-12 2019-02-15 上海兆芯集成电路有限公司 基于无损联合图像专家小组格式的图像压缩与解压缩方法
US10684993B2 (en) * 2016-06-15 2020-06-16 International Business Machines Corporation Selective compression of unstructured data
JP6907880B2 (ja) * 2017-10-24 2021-07-21 オムロン株式会社 画像処理装置、画像処理システム、画像処理プログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5253078A (en) * 1990-03-14 1993-10-12 C-Cube Microsystems, Inc. System for compression and decompression of video data using discrete cosine transform and coding techniques
US5408542A (en) * 1992-05-12 1995-04-18 Apple Computer, Inc. Method and apparatus for real-time lossless compression and decompression of image data
US5424755A (en) * 1992-06-25 1995-06-13 Lucas; Bruce D. Digital signal video color compression method and apparatus
US5585944A (en) * 1994-05-10 1996-12-17 Kaleida Labs, Inc. Method for compressing and decompressing images by subdividing pixel color distributions
US5659631A (en) * 1995-02-21 1997-08-19 Ricoh Company, Ltd. Data compression for indexed color image data
US5673209A (en) * 1995-03-29 1997-09-30 International Business Machines Corporation Apparatus and associated method for compressing and decompressing digital data
KR102168284B1 (ko) * 2019-08-29 2020-10-21 주식회사 두오텍 풍량가이드를 구비한 번인 테스트 장치

Also Published As

Publication number Publication date
EP0875858B1 (de) 2003-12-03
KR19980081853A (ko) 1998-11-25
JP4189443B2 (ja) 2008-12-03
US6128406A (en) 2000-10-03
JPH1196345A (ja) 1999-04-09
EP0875858A3 (de) 2000-07-19
DE69820148D1 (de) 2004-01-15
KR100573527B1 (ko) 2007-07-18
EP0875858A2 (de) 1998-11-04

Similar Documents

Publication Publication Date Title
DE69020564T2 (de) Verfahren und vorrichtung zur behandlung von numerischen daten.
DE3877374T2 (de) Verfahren und vorrichtung zur herstellung transponierter bilddaten von einer &#34;run end&#34;- oder &#34;run length&#34;-bilddarstellung.
DE4309105C2 (de) Verfahren zum Behandeln eines Teils eines verdichteten Bildes für eine Aufbereitung
DE19983253B4 (de) Die Kompression von Farbbildern auf der Grundlage einer zweidimensionalen diskreten Wavelet-Transformation, die ein scheinbar verlustloses Bild hervorbringt
DE69820148T2 (de) Verfahren zur Kompression/Dekompression von Bilddaten
DE2625973C3 (de) Verfahren und Anordnung zur redundanzvermindernden Transformation von Bildern
DE69730109T2 (de) Verfahren und Vorrichtung zum Herstellen von Wasserzeichen
DE68927082T2 (de) Verfahren und Vorrichtung für die Bilddatenkomprimierung
DE60032689T2 (de) Verfahren und Vorrichtung zur Bildkompression
DE2640140C2 (de) Verfahren und Anordnung zur redundanzvermindernden Bildcodierung
DE69826928T2 (de) Kompression eines Mosaikbildes
DE4339753A1 (de) Vorrichtung zum Komprimieren und Dekomprimieren von Bilddaten
DE60203850T2 (de) System und Verfahren zum Verarbeiten von Bildern mit aufgelöster Mosaikstruk- tur, um durch Farb-Aliasing hervorgerufenen Artefakte zu verringern.
DE60114651T2 (de) Verfahren zur Kompression von im Farbfilteranordnungsformat (CFA) aufgenommenen digitalen Bildern
EP3624456A1 (de) Verfahren zur kompression und dekompression von bilddaten
DE69118962T2 (de) System zur Bildverarbeitung
EP1374559B1 (de) Verfahren zur komprimierung und dekomprimierung von bilddaten
DE69738363T2 (de) Codierverfahren für Digitalinformationen
DE3917362C2 (de) Verfahren zum Vermindern visueller Artefakte aufgrund von Kompression über eine Transformierte in medizinischen Bildern
DE69123645T2 (de) Bildverarbeitungsverfahren und -system
DE3545106C2 (de)
DE19944213C1 (de) Verfahren zum Komprimieren eines digitalen Bildes mit mehreren Bit-Ebenen
EP1034511B1 (de) Verfahren zur umsetzung digitaler daten im raster einer ersten auflösung in digitale zieldaten einer zweiten auflösung
DE4136636A1 (de) Einrichtung zur codierung von bildsignalen
EP3624455A1 (de) Verfahren zur kompression von bilddaten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: FUJITSU MICROELECTRONICS LTD., YOKOHAMA-SHI, K, JP

8327 Change in the person/name/address of the patent owner

Owner name: FUJITSU SEMICONDUCTOR LTD., YOKOHAMA, KANAGAWA, JP

8328 Change in the person/name/address of the agent

Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE