DE60319742T2 - Lauflängencodierung eines quantisierten digitalen bildes - Google Patents

Lauflängencodierung eines quantisierten digitalen bildes Download PDF

Info

Publication number
DE60319742T2
DE60319742T2 DE60319742T DE60319742T DE60319742T2 DE 60319742 T2 DE60319742 T2 DE 60319742T2 DE 60319742 T DE60319742 T DE 60319742T DE 60319742 T DE60319742 T DE 60319742T DE 60319742 T2 DE60319742 T2 DE 60319742T2
Authority
DE
Germany
Prior art keywords
pixel
symbol
quantized
picture element
picture elements
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
DE60319742T
Other languages
English (en)
Other versions
DE60319742D1 (de
Inventor
Michael El Dorado Hills DWYER
Thomas Granite Bay PIAZZA
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE60319742D1 publication Critical patent/DE60319742D1/de
Publication of DE60319742T2 publication Critical patent/DE60319742T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/156Availability of hardware or computational resources, e.g. encoding based on power-saving criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Television Signal Processing For Recording (AREA)
  • Transmission Systems Not Characterized By The Medium Used For Transmission (AREA)
  • Image Processing (AREA)

Description

  • ALLGEMEINER STAND DER TECHNIK
  • Rechengeräte umfassen in der Regel eine Anzeige-Steuereinheit zum Rendern digitaler Bilder und zum Anzeigen der gerenderten digitalen Bilder auf einer Anzeigevorrichtung, wie zum Beispiel einem Computermonitor oder einem Flachbildschirm. Die Anzeige-Steuereinheit kann ein digitales Bild rendern und das gerenderte digitale Bild in einem Frame-Puffer speichern. Der Frame-Puffer kann sich in gemeinsam genutztem Systemspeicher oder in dediziertem Videospeicher befinden. Wenn der Zeitpunkt kommt, das gerenderte digitale Bild anzuzeigen, so kann die Anzeige-Steuereinheit das digitale Bild aus dem Frame-Puffer abrufen und kann ein Signal erzeugen, um das abgerufene digitale Bild auf der Anzeigevorrichtung anzuzeigen. Der Prozeß des Speicherns und Abrufens digitaler Bilder aus dem Frame-Puffer kann eine erhebliche Menge Speicherbandbreite in Anspruch nehmen. Wenn sich der Frame-Puffer in gemeinsam genutztem Systemspeicher befindet, so kann die Leistung des Rechengerätes stark verringert werden, weil die Anzeige-Steuereinheit die verfügbare Speicherbandbreite für andere Aufgaben ganz erheblich reduziert. Wenn sich des Weiteren der Frame-Puffer in dediziertem Videospeicher befindet, so ist das Videospeicher-Teilsystem möglicherweise mit teuren Speichertechnologien implementiert, um genügend Speicherbandbreite zur Verfügung zu stellen.
  • Das Dokument US 4,903,317 A offenbart eine Bildverarbeitungsvorrichtung, die eine Verlustkompressionsschaltung zur Verlustkompression von Bilddaten, eine Expansionsschaltung zum Expandieren der verlustkomprimierten Bilddaten und eine Differenzschaltung zum Berechnen einer Differenz zwischen den ursprünglichen Bilddaten und den expandierten Bilddaten umfaßt. Eine Verlustfrei-Kompressionsschaltung komprimiert verlustfrei die Differenzbilddaten. Ein Multiplexer multiplexiert die verlustkomprimierten Bilddaten mit den verlustfrei komprimierten Differenzdaten. Die Kompressionsschaltungen nehmen eine Transformation in einen Frequenzbereich vor, und die Expansionsschaltung nimmt die inverse Transformation vor.
  • Des Weiteren ist aus dem Dokument US 6,392,705 B1 ein Multimedia-Kompressionssystem bekannt, bei dem aufgrund der Ausnutzung des Vorteils der Korrelation zwischen benachbarten Pixelblöcken ein kleineres Codebuch benötigt wird. Insbesondere offenbart dieses zum Stand der Technik gehörende Dokument einen Algorithmus zum adaptiven Auswählen eines Quantisierers zum Codieren eines Blocks aus Restwerten, die aus der Vorhersage resultieren. Eingangsdaten werden zu einer Reihe von Datenvektoren umgewandelt. Ein momentaner Datenvektor wird in mehrere Untervektoren segmentiert, und es wird eine Nachschlagetabelle verwendet, die mehrere Nachschlagetabellen umfaßt. Die mehreren Untervektoren werden durch aufeinanderfolgende Benutzung der mehreren Nachschlagetabellen auf einen Satz Codes abgebildet. In diesem System werden Seitenpixel von quantisierten benachbarten Blöcken verwendet, um den zu codierenden momentanen Block vorherzusagen.
  • Das Dokument US 5,576,835 A offenbart ein Verfahren zur Lauflängencodierung. Gemäß diesem Verfahren werden der numerisch definierten Lauflänge die gleichen Codewörter für Weiß und Schwarz zugewiesen, und es wird gemäß einem Sequenzkriterium von Weiß zu Schwarz und von Schwarz zu Weiß umgeschaltet. Während des Codierens verschiedener aufeinanderfolgender weißer Zeilen kann die Übertragungszeit weiter verkürzt werden, indem man die codierte Zahl weißer Zeilen vor oder nach dem Codewort für die weiße Zeile angibt. Während einer Farbbildübertragung werden Code-Multiplexierung und erforderlichenfalls QAM-basierte Übertragung ausgeführt. Die behandelten Werte sind quantisierte Werte.
  • Schließlich sind aus dem Dokument EP 0 339 947 A2 ein Verfahren und ein System zum Dekomprimieren von Farbvideodaten zur Verwendung in einem Videoinformationskommunikationssystem bekannt, das digitalisierte Lauflängen und Farbinformationen zum Wiedergeben der Pixel in den Abtastzeilen eines Videobild-Frames benutzt. Die digitalisierten Signale sind von einer ersten digitalen Wortgröße, der Lauflängenabschnitt des digitalisierten Signals ist von einer zweiten digitalen Wortgröße, und der Farbabschnitt des digitalisierten Signals ist von einer dritten digitalen Wortgröße. Der Lauflängenabschnitt und die drei digitalen Farbkomponentendaten werden in einem Array in einem Speicher gespeichert, um die Pixel in den Abtastzeilen des Videobild-Frame darzustellen, und der Farbabschnitt des digitalisierten Signals wird in drei digitale Farbkomponenten von vierten, fünften und sechsten digitalen Wortgrößen umgewandelt. Der Speicher besteht aus einem Pingpong-A-Pufferspeicher und einem Pingpong-B-Pufferspeicher, von wo die Lauflängen- und Farbinformationen zu einer Anzeigezeichnungsmaschine übertragen werden, die eine Reihe umgewandelter digitaler Farbkomponenten erzeugt, die einzelne Pixel darstellen, die dann zur Anzeige auf einem Monitor zu analog umgewandelt wird.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die im vorliegenden Text beschriebene Erfindung ist beispielhafte und nicht einschränkend in den begleitenden Figuren veranschaulicht. Im Interesse der Einfachheit und Klarheit der Illustration sind die in den Figuren veranschaulichten Elemente nicht unbedingt maßstabsgerecht gezeichnet. Zum Beispiel können die Abmessungen einiger Elemente relativ zu anderen Elementen im Interesse der Klarheit übertrieben dargestellt sein. Des Weiteren wurden dort, wo es für zweckmäßig erachtet wurde, Bezugszahlen zwischen den Figuren wiederholt, um einander entsprechende oder analoge Elemente anzuzeigen.
  • 1 veranschaulicht eine Ausführungsform eines Rechengerätes, das einen Chipsatz mit einer integrierten Anzeige-Steuereinheit aufweist.
  • 2 veranschaulicht eine beispielhafte Ausführungsform eines digitalen Bildes.
  • 3 veranschaulicht eine Ausführungsform eines Rechengerätes, das eine Anzeige-Steuereinheit aufweist, die von dem Chipsatz getrennt ist.
  • 4 veranschaulicht ein Verfahren, das die Anzeige-Steuereinheiten von 1 und 3 verwenden können, um eine digitale Bildeinheit zu komprimieren.
  • 5 veranschaulicht ein Verfahren, das die Anzeige-Steuereinheiten von 1 und 3 verwenden können, um eine digitale Bildeinheit zu komprimieren.
  • DETAILLIERTE BESCHREIBUNG
  • Die folgende Beschreibung beschreibt Techniken zum Komprimieren und Dekomprimieren einer digitalen Bildeinheit. In der folgenden Beschreibung werden zahlreiche konkrete Details dargelegt, wie zum Beispiel Logikimplementierungen, Opcodes, Mittel zum Spezifizieren von Operanden, Implementierungen zum Teilen, gemeinsamen Nutzen und Duplizieren von Ressourcen, Arten von und Beziehungen zwischen Systemkomponenten sowie Auswahlmöglichkeiten zum Teilen und Integrieren von Logik, um ein gründlicheres Verstehen der vorliegenden Erfindung zu ermöglichen. Dem Fachmann leuchtet jedoch ein, daß die Erfindung auch ohne diese konkreten Details praktiziert werden kann. In anderen Fällen wurden Steuerstrukturen, Gatterebenenschaltungen und volle Software- Instruktionssequenzen nicht im Detail gezeigt, um die Erfindung nicht in den Hintergrund treten zu lassen. Dem Durchschnittsfachmann wird es mit Hilfe der im vorliegenden Text enthaltenen Beschreibungen möglich sein, entsprechende Funktionen ohne unnötiges Experimentieren zu implementieren.
  • Wenn in der Spezifikation von "einer Ausführungsform", "einer beispielhaften Ausführungsform" usw. die Rede ist, so ist damit gemeint, daß die beschriebene Ausführungsform einsbesondere Merkmal, eine bestimmte Struktur oder einsbesondere Charakteristikum enthalten kann, aber es muß nicht unbedingt jede Ausführungsform das bestimmte Merkmal, die bestimmte Struktur oder das bestimmte Charakteristikum enthalten. Des Weiteren beziehen sich solche Wendungen nicht unbedingt auf dieselbe Ausführungsform. Wenn des Weiteren einsbesondere Merkmal, eine bestimmte Struktur oder einsbesondere Charakteristikum in Verbindung mit einer Ausführungsform beschrieben wird, so wird davon ausgegangen, daß es im Rahmen der Fähigkeiten des Fachmanns liegt, ein solches Merkmal, eine solche Struktur oder ein solches Charakteristikum in Verbindung mit anderen Ausführungsformen hervorzubringen, unabhängig davon, ob sie nun ausdrücklich beschrieben sind oder nicht.
  • Eine beispielhafte Ausführungsform eines Rechengerätes 100 ist in 1 gezeigt. Das Rechengerät 100 kann einen oder mehrere Prozessoren 102 umfassen, die über einen Prozessorbus 106 mit einem Chipsatz 104 gekoppelt sind. Der Chipsatz 104 kann einen oder mehrere integrierte Schaltungsbausteine oder Chips umfassen, welche die Prozessoren 102 mit Systemspeicher 108, Firmware 110 und/oder anderen Vorrichtungen 112 (zum Beispiel einer Maus, einer Tastatur, einem Festplattenlaufwerk, einem Scanner, einer Kamera usw.) koppeln. Die Firmware 110 kann Basic Input/Output System-Routinen (BIOS) umfassen, welche die Prozessoren 102 während des Hochfahrens des Systems ausführen können, um Komponenten des Rechengerätes 100 zu initialisieren und die Ausführung eines Betriebssystems zu initiieren.
  • In einer Ausführungsform kann der Chipsatz 104 eine Speicher-Steuereinheit 114 umfassen. Jedoch können in anderen Ausführungsformen die Prozessoren 102 die gesamte oder einen Teil der Speicher-Steuereinheit 114 umfassen. Die Speicher-Steuereinheit 114 kann eine Schnittstelle für eine integrierte Anzeige-Steuereinheit 116 und andere Komponenten des Rechengerätes 100 bereitstellen, um auf den Systemspeicher 108 zuzugreifen. Der Chipsatz 104 kann auch E/A-Operationen auf E/A-Bussen unterstützen, wie zum Beispiel Peripheral Component Interconnect(PCI)-Bussen, PCI-Express-Bussen, Accelerated Graphics Port(AGP)-Bussen, Universal Serial Bus(USB)-Bussen, Low Pin Count(LPC)-Bussen oder sonstigen (nicht gezeigten) Arten von E/A-Bussen.
  • Der Chipsatz 104 kann des Weiteren eine integrierte Anzeige-Steuereinheit 116 zum Anzeigen digitaler Bilder auf einer Anzeigevorrichtung 118 umfassen, wie zum Beispiel einem Computermonitor, einem Flachbildschirm oder einem Fernseher. Die integrierte Anzeige-Steuereinheit 116 kann eine Computerschnittstelle 120 umfassen, um Befehle und/oder Daten von dem Rechengerät 100 zu empfangen oder zu erhalten. Die Computerschnittstelle 120 kann mit der Speicher-Steuereinheit 114 zusammenwirken, um Grafikbefehle aus dem Systemspeicher 108 abzurufen. Darüber hinaus kann die Computerschnittstelle 120 einen oder mehrere Video-Ports bereitstellen, wie zum Beispiel einen AGP-Port, einen PCI-Port oder einen PCI-Express-Port, über den die Computerschnittstelle 120 Daten und/oder Befehle 30 von den Prozessoren 102 empfangen kann. Die integrierte Anzeige-Steuereinheit 116 kann des Weiteren eine Speicherschnittstelle 122 umfassen, um Bildelemente, Zonen, Frames, Bildfelder usw. aus dem Videospeicher 124 zu erhalten. Wie gezeigt, können der Systemspeicher 108 und der Videospeicher 124 dieselben physischen Speichervorrichtungen gemeinsame nutzen oder mit den gleichen physischen Speichervorrichtungen implementiert sein. Bei einer solchen Ausführungsform werden Teile der Speichervorrichtungen statisch oder dynamisch entweder dem Systemspeicher 108 oder dem Videospeicher 124 zugewiesen. Dementsprechend kann die Speicherschnittstelle 122 der integrierten Anzeige-Steuereinheit 116 mit der Speicher-Steuereinheit 114 des Chipsatzes 104 interagieren, um Bildelemente, Zonen, Frames, Bildfelder usw. aus dem Videospeicher 124 zu lesen oder in den Videospeicher 124 zu schreiben.
  • Die Rendermaschine 126 der integrierten Anzeige-Steuereinheit 116 kann Grafikbefehle ausführen, um digitale Bilder zum Anzeigen zu erzeugen. Wie in 2 gezeigt, kann ein digitales Bild eine oder mehrere rechteckige nicht-überlappende Zonen umfassen. Des Weiteren kann jede Zone eine oder mehrere Zeilen aus Bildelementen umfassen, und jedes Bildelement kann ein visuelles Erscheinungsbild (zum Beispiel Farbe, Schattierung, Tönung, Transparenz usw.) des digitalen Bildes an einem bestimmten Punkt des digitalen Bildes definieren. Zum Beispiel können die Bildelemente einen oder mehrere Kanäle umfassen, die das Erscheinungsbild entsprechend einem bestimmten Videoformat definieren, wie zum Beispiel ein RGB-Format, ein YUV-Format, ein RGBA-Format oder ein anderes Format. Im RGB-Format umfaßt jedes Bildelement einen roten (R) Kanal, einen grünen (G) Kanal und einen blauen Kanal. Gleichermaßen umfaßt jedes Bildelement im RGBA-Format einen roten (R) Kanal, einen grünen (G) Kanal, einen blauen (B) Kanal und einen alpha(A)-Kanal zum Anzeigen eines Transparenzgrades. Zum Beispiel kann die integrierte Anzeige-Steuereinheit 116 24 Bit Farbe implementieren, indem sie jedem Bildelement einen roten Kanal von 8 Bit, einen grünen Kanal von 8 Bit und einen blauen Kanal von 8 Bit zuweist. Im YUV-Format kann jedes Bildelement einen Luminanz(Y)-Kanal, einen ersten Chrominanz(U)-Kanal und einen zweiten Chrominanz(V)-Kanal umfassen. Gleichermaßen kann die integrierte Anzeige-Steuereinheit 116 24 Bit Farbe implementieren, indem sie jedem Bildelement einen 8-Bit-Wert für jeden der YUV-Kanäle zuweist. Jedoch kann die integrierte Anzeige-Steuereinheit 116 entscheiden, den Luminanz(Y)-Kanal präziser darzustellen. Dementsprechend kann die integrierte Anzeige-Steuereinheit 116 24 Bit YUV-Farbe implementieren, indem sie jedem Bildelement einen Luminanz(Y)-Kanal von 12 Bit, einen ersten Chrominanz(U)-Kanal von 6 Bit und einen zweiten Chrominanz(V)-Kanal von 6 Bit zuweist. Ein digitales Bild, das im YUV-Format codiert wurde, kann auch ein räumlich reduziertes Chrominanzformat verwenden, wie zum Beispiel ein 4:1:1-Format. Im 4:1:1-Format kann ein Makro-Bildelement vier Luminanz(Y)-Kanäle, einen ersten Chrominanz(U)-Kanal und einen zweiten Chrominanz(V)-Kanal umfassen, die das visuelle Erscheinungsbild von Teilen des Makro-Bildelements definieren.
  • Die Rendermaschine 126 kann Grafikbefehle ausführuen, die durch die Befehls-/Dateneinheit 128 aus dem Systemspeicher 108 abgerufen wurden, und kann einer oder mehrere Zonen aktualisieren, die in einem Zonencache 130 der integrierten Anzeige-Steuereinheit 116 gespeichert sind. Nach dem Rendern einer oder mehrerer Zonen eines digitalen Bildes kann die Rendermaschine 126 veranlassen, daß die gerenderten Zonen aus dem Cache 130 ausgeworfen und in den Frame-Puffer 132 geschrieben werden. Der Frame-Puffer-Komprimierer/Dekomprimierer (Codec) 134 kann die ausgeworfenen Zonen komprimieren und kann die komprimierten Zonen an die Speicherschnittstelle 122 übergeben, um sie in dem Frame-Puffer 132 zu speichern. Die Anzeige-Maschine 136 kann gerenderte digitale Bilder später aus dem Frame-Puffer 132 abrufen, um das digitale Bild zu einem geeigneten Zeitpunkt anzuzeigen. Insbesondere kann die Anzeige-Maschine 136 komprimierte Zonen aus dem Frame-Puffer 132 abrufen, und der Codec 134 kann die abgerufenen Zonen dekomprimieren. Die Anzeige-Maschine 136 kann die dekomprimierten Zonen des digitalen Bildes mit anderen Video-Quellen, wie zum Beispiel einem Overlay, einem Hardware-Cursor usw., mischen und kann an die Anzeige-Schnittstelle 138 ein zusammengesetztes Video-Signal übermitteln. Die Anzeige-Schnittstelle 138 kann das von der Anzeige-Maschine 136 empfangene digitale Video-Signal in ein analoges oder ein digitales Signal umwandeln, das für die Anzeigevorrichtung 118 geeignet ist.
  • Wenden wir uns nun 3 zu, wo eine weitere Ausführungsform des Rechengerätes 100 veranschaulicht ist. Wie in 3 gezeigt, kann das Rechengerät 100 eine nicht-integrierte Anzeige-Steuereinheit 140 umfassen, der von dem Chipsatz 104 getrennt ist. Wie die integrierte Anzeige-Steuereinheit 116 kann die nicht-integrierte Anzeige-Steuereinheit 140 eine Computerschnittstelle 120, eine Speicherschnittstelle 122, eine Rendermaschine 126, eine Befehls-/Dateneinheit 128, einen Zonencache 130, einen Codec 134, eine Anzeige-Maschine 136 und eine Anzeige-Schnittstelle 138 umfassen.
  • Des Weiteren kann die nicht-integrierte Anzeige-Steuereinheit 140 Onboard-Videospeicher 124 umfassen. Die nicht-integrierte Anzeige-Steuereinheit 140 kann in einer ähnlichen Weise wie die integrierte Anzeige-Steuereinheit 116 von 1 arbeiten. Jedoch kann die Computerschnittstelle 120 der nicht-integrierten Anzeige-Steuereinheit 140 einen AGP-Port, einen PCI-Port, einen PCI-Express-Port oder eine andere Geräteschnittstelle umfassen, um Befehle und/oder Daten mit einer entsprechenden Grafik-Schnittstelle 142 des Chipsatzes 104 zu übertragen, die ebenfalls einen AGP-Port, einen PCI-Port, einen PCI-Express-Port oder eine andere Geräteschnittstelle umfassen kann. Darüber hinaus kann die Speicherschnittstelle 122 der nicht-integrierten Anzeige-Steuereinheit 140 direkt auf den Videospeicher 124 zugreifen, wodurch die nicht-integrierte Anzeige-Steuereinheit 140 in die Lage versetzt wird, Bildelemente, Zonen, Bildfelder, Frames usw. in den und aus dem Videospeicher 124 zu übertragen, ohne erhebliche Bandbreite der Speicher-Steuereinheit 114 und des Systemspeichers 108 in Anspruch zu nehmen.
  • Wenden wir uns nun 4 zu, wo ein Verfahren gezeigt ist, das durch den Codec 134 verwendet werden kann, um Bildelemente einer Zonenzeile, eine Zone, eine Frame-Zeile, ein Frame-Feld, einen Frame oder eine andere digitale Bildeinheit zu komprimieren, bevor sie zu dem Frame-Puffer 132 übertragen wird. Allgemein erzeugt das Verfahren ein oder mehrere Symbole für eine digitale Bildeinheit, wobei jedes Symbol einen Durchgang von einem oder mehreren Bildelementen darstellt. In Block 200 kann der Codec 134 ein momentanes Bildelement erhalten, das einen oder mehrere Kanäle umfaßt, und kann eine Lauflänge auf einen Anfangswert (zum Beispiel 0) einstellen. In Block 202 kann der Codec 134 das momentane Bildelement quantisieren, um ein quantisiertes momentanes Bildelement zu erhalten, das einen oder mehrere quantisierte Kanäle umfaßt. Jeder quantisierte Kanal kann ein oder mehrere höchstwertige Bits (Most Significant Bits – MSBs) jedes Kanals umfassen und kann ein oder mehrere niedrigstwertige Bits (Least Significant Bits – LSBs) jedes Kanals verwerfen. Zum Beispiel kann der Codec 134 ein 24-Bit-RGB-Bildelement (zum Beispiel 10010101-11111001-01110001) auf einer 18-Bit-Quantisierungsebene quantisieren, um ein quantisiertes momentanes Bildelement (zum Beispiel 100101-111110-011100) zu erhalten, das drei quantisierte 6-Bit-Kanäle umfaßt, welche die sechs MSBs jedes Kanals beibehalten und welche die zwei LSBs jedes Kanals verwerfen. Der Codec 134 kann eine Vielzahl verschiedener Techniken nutzen, um das quantisierte momentane Bildelement zu erhalten. In einer Ausführungsform kann der Codec 134 das quantisierte momentane Bildelement erhalten, indem er ein Bit-weises UND der Kanäle mit einer Maske ausführt und/oder indem er geeignete Bitverschiebungsoperationen auf den Kanälen des momentanen Bildelements ausführt. Darüber hinaus kann der Codec 134 jeden Kanal eines Bildelements auf einer anderen Ebene quantisieren. Zum Beispiel kann der Codec 134 für ein 24-Bit-YUV-Bildelement die 7 MSBs des Y-Kanals, die 6 MSBs des U-Kanals und die 5 MSBs des V-Kanal beibehalten.
  • In Block 204 kann der Codec 134 bestimmen, ob ein neuer Durchgang von Bildelementen und ein entsprechendes neues Symbol begonnen hat. In einer Ausführungsform kann der Codec 134 bestimmen, daß ein neuer Durchgang begonnen hat, nachdem er bestimmt hat, daß die Lauflänge eine vorgegebene Beziehung (zum Beispiel "gleich") zu einem Anfangswert (zum Beispiel 0) hat. In Reaktion auf das Bestimmen, daß ein neuer Durchgang begonnen hat, kann der Codec 134 zu Block 210 übergehen. Anderenfalls kann der Codec 134 in Block 208 ein quantisiertes Durchgangs-Bildelement gleich dem quantisierten momentanen Bildelement setzen.
  • In Block 210 kann der Codec 134 bestimmen, ob verlustfreie oder verlustbehaftete Kompression für das momentane Bildelement zu verwenden ist. In einem Beispiel kann der Codec 134 auf der Grundlage eines Zustands eines oder mehrerer (nicht gezeigter) Konfigurationsregister des Chipsatzes 104 oder der Anzeige-Steuereinheit 116, 140 bestimmen, ob verlustfreie oder verlustbehaftete Kompression zu verwenden ist. In einer anderen Ausführungsform kann der Codec 134 auf der Grundlage der Arbeitslast des Rechengerätes 100 bestimmen, ob verlustfreie oder verlustbehaftete Kompression zu verwenden ist. Zum Beispiel kann der Codec 134 bestimmen, verlustbehaftete Kompression zu verwenden oder sogar den Verlustgrad zu erhöhen, wenn die Arbeitslast des Speichersystems, des Prozessors und/oder eines anderen Teilsystems des Rechengerätes 100 einen Schwellenwert übersteigt. Insbesondere kann der Codec 134 bestimmen, den Verlustgrad zu erhöhen, wenn er bestimmt, daß die verfügbare Speicherbandbreite zum Systemspeicher 108 unter einen bestimmten Wert gefallen ist. Der Codec 134 kann später den Verlustgrad verringern oder verlustfreie Kompression verwenden, wenn er bestimmt, daß die verfügbare Speicherbandbreite über einen bestimmten Wert gestiegen ist.
  • In Reaktion auf das Bestimmen, daß verlustfreie Kompression zu verwenden ist, kann der Codec 134 in Block 212 einen verlustfreien Fehlervektor erzeugen, der einen verlustfreien Kanalfehler für jeden Kanal des momentanen Bildelements umfaßt. Insbesondere kann jeder verlustfreie Kanalfehler den einen oder die mehreren LSBs umfassen, die aus dem quantisierten Kanal in Block 202 verworfen wurden. Zum Beispiel kann der Codec 134 einen verlustfreien 6-Bit-Fehlervektor (zum Beispiel [01-01-00]) erzeugen, der einen verlustfreien 2-Bit-Kanalfehler für jeden Kanal des momentanen Bildelements umfaßt. Insbesondere kann jeder verlustfreie Kanalfehler die 2 LSBs umfassen, die aus einem entsprechenden Kanal während der Bildelement-Quantisierung von Block 202 verworfen wurden. Der Codec 134 kann eine Vielzahl verschiedener Techniken nutzen, um den verlustfreien Fehlervektor zu erhalten. In einer Ausführungsform kann der Codec 134 den verlustfreien Fehlervektor erhalten, indem er ein Bit-weises UND der Kanäle mit einem Inversen einer Maske, die in Block 202 verwendet wurde, ausführt und/oder indem er geeignete Bitverschiebungsoperationen auf den Kanälen des momentanen Bildelements ausführt.
  • In Reaktion auf das Bestimmen, daß verlustbehaftete Kompression zu verwenden ist, kann der Codec 134 in Block 214 einen verlustbehafteten Fehlervektor erzeugen, der einen verlustbehafteten Kanalfehler für jeden Kanal des momentanen Bildelements umfaßt. Insbesondere kann jeder verlustbehaftete Kanalfehler eine Teilmenge der Bits umfassen, die bei der Quantisierung des momentanen Bildelements verworfen wurden. Wie oben angedeutet, kann der Verlustgrad der Kompression auf der Grundlage der Arbeitslast des Rechengerätes 100 eingestellt werden. Zum Beispiel kann der Verlustgrad erhöht werden, indem die Zahl der Bits in der Teilmenge der verworfenen Bits, die zum Definieren des verlustbehafteten Fehlervektors verwendet werden, verringert wird. Gleichermaßen kann der Verlustgrad verringert werden, indem die Zahl der Bits in der Teilmenge der verworfenen Bits, die zum Definieren der verlustbehafteten Fehlervektoren verwendet werden, erhöht wird. Zum Beispiel kann der Codec 134 in Reaktion darauf, daß die Teilmenge als ein einzelnes Bit definiert ist, einen verlustbehafteten 3-Bit-Fehlervektor (zum Beispiel 0-0-0) erzeugen, der einen verlustbehafteten 1-Bit Kanalfehler für jeden Kanal des momentanen Bildelements umfaßt Insbesondere kann jeder verlustbehaftete Kanalfehler das MSB der 2 LSBs umfassen, die aus jedem Kanal des momentanen 24-Bit-RGB-Bildelements in Block 202 verworfen wurden. Des Weiteren kann der Codec 134 eine Vielzahl verschiedener Techniken nutzen, um den verlustbehafteten Fehlervektor zu erhalten. In einer Ausführungsform kann der Codec 134 den verlustbehafteten Fehlervektor erhalten, indem er ein Bit-weises UND der Kanäle mit einem Inversen einer Maske, die in Block 202 verwendet wurde, ausführt und/oder indem der geeignete Bitverschiebungsoperationen auf den Kanälen des momentanen Bildelements ausführt. Darüber hinaus kann der verlustbehaftete Fehlervektor in einer Ausführungsform keine Bits umfassen, wodurch der Verlustgrad der Kompression weiter erhöht wird.
  • In Block 215 kann der Codec 134 bestimmen, ob das quantisierte momentane Bildelement eine vorgegebene Beziehung (zum Beispiel "gleich") zu dem quantisierten Durchgangs-Bildelement hat Wenn die quantisierten Bildelemente die vorgegebene Beziehung haben, so kann der Codec 134 zu Block 217 übergehen. Anderenfalls kann der Codec 134 in Block 216 ein Symbol an einen Ausgabepuffer ausgeben, das ein oder mehrere Bildelemente darstellt, kann die Lauflänge aktualisieren, um einen neuen Durchgang von Bildelementen anzuzeigen, kann den Fehlervektorpuffer für das nächste Symbol löschen und kann das quantisierte Durchgangs-Bildelement gleich dem quantisierten momentanen Bild element setzen. In einer Ausführungsform kann das durch den Codec 134 erzeugte Symbol eine Lauflänge (zum Beispiel 0011), das quantisierte momentane Bildelement (zum Beispiel 100101-111110-011100) und die Fehlervektoren für die Bildelemente des Durchgangs, die in dem Fehlervektorpuffer gespeichert wurden (zum Beispiel [01-01-00] [00-11-01] [11-11-10]), umfassen. In einer anderen Ausführungsform kann das Symbol des Weiteren einen Kompressionsmodus (zum Beispiel einen 1-Bit-Wert) umfassen, um anzuzeigen, daß der Durchgang verlustfreie Kompression oder einen Grad an verlustbehafteter Kompression verwendet. Das Symbol enthält in der Regel weniger Bits als die ursprüngliche Bildelementdarstellung des einen oder der mehreren Bits. Jedoch enthält das Symbol in einer Ausführungsform sogar mehr Bits als die ursprüngliche Darstellung. Zum Beispiel kann in einer Ausführungsform ein Symbol, das ein einzelnes 24-Bit-RGB-Bildelement darstellt oder codiert, eine Lauflänge von 4 Bit, ein quantisiertes 18-Bit-Bildelement und einen verlustfreien 6-Bit-Fehlervektor, also insgesamt 28 Bits, enthalten. Jedoch kann ein Symbol, das zwei 24-Bit-RGB-Bildelemente darstellt oder codiert, eine Lauflänge von 4 Bit, ein quantisiertes 18-Bit-Bildelement und einen verlustfreien 12-Bit-Fehlervektor, also insgesamt 34 Bits, enthalten.
  • Der Codec 134 in Block 217 kann den erhaltenen verlustfreien oder verlustbehafteten Fehlervektor in einem Fehlervektorpuffer speichern. In Block 218 kann der Codec 134 die Lauflänge, die dem momentanen Bildelement und dem momentanen Durchgang zugeordnet ist, aktualisieren, um anzuzeigen, daß dem Symbol ein weiteres Bildelement hinzugefügt wurde. In einer Ausführungsform kann der Codec 134 die Lauflänge aktualisieren, indem er die Lauflänge um Eins inkrementiert. Der Codec 134 kann in Block 220 bestimmen, ob der momentane Durchgang beendet werden soll. In einer Ausführungsform kann der Codec 134 den momentanen Durchgang in Reaktion darauf beenden, daß er bestimmt, daß das momentane Bildelement das letzte Bildelement einer Zonenzeile, einer Zone, einer Frame-Zeile, eines Frame-Feldes, eines Frames oder eines Teils der codierten digitalen Bildeinheit ist. In einer anderen Ausführungsform kann der Codec 134 des Weiteren bestimmen, den momentanen Durchgang auf der Grundlage von Beschränkungen des Codec 134 zu beenden. Zum Beispiel kann der Codec 134 den Durchgang von Bildelementen, die durch das Symbol dargestellt werden, auf eine Zahl beschränken, die keine Register, Puffer usw. des Codec 134, die zum Speichern der Lauflänge und/oder des Fehlervektors verwendet werden, überlaufen läßt.
  • In Reaktion auf das Bestimmen in Block 220, den momentanen Durchgang zu beenden, kann der Codec 134 in Block 222 ein Symbol an einen Ausgabepuffer ausgeben, das ein oder mehrere Bildelemente darstellt, kann die Lauflänge aktualisieren, um einen neuen Durchgang anzuzeigen, und kann den Fehlervektorpuffer für das nächste Symbol löschen. Nach der Ausgabe des Symbols in Block 222 oder der Entscheidung in Block 220, den Durchgang nicht zu beenden, kann der Codec 134 in Block 223 bestimmen, ob alle Bildelemente der digitalen Bildeinheit codiert wurden. Wenn alle Bildelemente codiert wurden, so ist das Codieren der digitalen Bildeinheit vollständig, und der Codec 134 kann abbrechen. Anderenfalls kann der Codec 134 in Block 224 das momentane Bildelement gleich dem nächsten Bildelement der digitalen Bildeinheit setzen. Der Codec 134 kann dann zu Block 202 zurückkehren, um das momentane Bildelement zu quantisieren und zu codieren.
  • Wenden wir uns nun 5 zu, wo ein Verfahren gezeigt ist, daß durch den Codec 134 verwendet werden kann, um eine Zonenzeile, eine Zone, eine Frame-Zeile, ein Frame-Feld, einen Frame oder eine andere digitale Bildeinheit aus mehreren Symbolen, die aus dem Frame-Puffer 132 erhalten wurden, zu rekonstruieren. Allgemein kann das Verfahren dafür verwendet werden, ein digitales Bild aus einem oder mehreren Symbolen zu rekonstruieren, welche die Bildelemente des digitalen Bildes darstellen. Der Codec 134 kann in Block 300 ein Symbol eines komprimierten digitalen Bildes erhalten, das aus dem Frame-Puffer 132 abgerufen wurde. In Block 302 kann der Codec 134 eine Lauflänge aus dem Symbol erhalten. Der Codec 134 kann in Block 304 ein quantisiertes Bildelement (zum Beispiel [100101-111110-011100]) aus dem Symbol erhalten. In Block 306 kann der Codec 134 auf der Grundlage der Lauflänge bestimmen, ob die Dekompression des Symbols vollständig ist. In einer Ausführungsform kann der Codec 134 bestimmen, daß die Dekompression nicht vollständig ist, wenn er feststellt, daß die Lauflänge eine vorgegebene Beziehung (zum Beispiel "größer als") zu einen Stopp-Wert (zum Beispiel 0) hat.
  • In Reaktion auf das Bestimmen, daß die Dekompression vollständig ist, kann der Codec 134 in Block 307 bestimmen, ob alle Symbole der digitalen Bildeinheit decodiert wurden. Wenn alle Symbole der digitalen Bildeinheit decodiert wurden, so ist das Decodieren der digitalen Bildeinheit vollständig, und der Codec 134 kann abbrechen. Anderenfalls kann der Codec 134 zu Block 300 zurückkehren, um das nächste Symbol der digitalen Bildeinheit zu beschaffen.
  • In Reaktion auf das Bestimmen, daß die Dekompression nicht vollständig ist, kann der Codec 134 in Block 308 bestimmen, ob eine verlustbehaftete oder eine verlustfreie Dekompression auszuführen ist. In einer Ausführungsform kann der Codec 134 auf der Grundlage eines oder mehrerer Register des Chipsatzes 104, der integrierten Anzeige-Steuereinheit 116 und/oder der nicht-integrierten Anzeige-Steuereinheit 140 bestimmen, ob eine verlustfreie oder eine verlustbehaftete Dekompression auszuführen ist. In einer anderen Ausführungsform kann der Codec 134 auf der Grundlage eines aus dem Symbol erhaltenen Kompressionsmodus' bestimmen, ob eine verlustfreie Dekompression oder ein Grad einer verlustbehafteten Dekompression auszuführen ist. In Reaktion auf das Bestimmen, daß eine verlustfreie Dekompression zu verwenden ist, kann der Codec 134 in Block 310 den nächsten verlustfreien Fehlervektor (zum Beispiel [01-01-00]) aus dem Symbol erhalten.
  • In Reaktion auf das Bestimmen, daß eine verlustbehaftete Dekompression zu verwenden ist, kann der Codec 134 in Block 312 den nächsten verlustbehafteten Fehlervektor (zum Beispiel [0-0-0]) aus dem Symbol erhalten. Der Codec 134 kann in Block 314 die verworfenen Bits des verlustbehafteten Fehlervektors ersetzen, um einen rekonstruierten Fehlervektor zu erhalten. In einer Ausführungsform kann der Codec 134 einen vorgegebenen Wert (zum Beispiel 0) an jeden verlustbehafteten Kanalfehler des verlustbehafteten Fehlervektors (zum Beispiel [0-0-0]) anhängen, um einen rekonstruierten Fehlervektor (zum Beispiel [00-00-00]) zu erhalten. In einer anderen Ausführungsform kann der Codec 134 den momentanen Pixelschattierungswert (zum Beispiel 10) an jeden Kanalfehler des verlustbehafteten Fehlervektors anhängen (zum Beispiel [0-0-0]), um einen rekonstruierten Fehlervektor (zum Beispiel [010-010-010]) zu erhalten. In einer anderen Ausführungsform kann der Codec 134 die verworfenen Bits des verlustbehafteten Fehlervektors durch einen Pixelschattierungswert ersetzen, um den rekonstruierten Fehlervektor zu erhalten. Zum Beispiel kann der Codec 134 einen Pixelschattierungswert von 0 zu einem Pixelschattierungswert von 1 und einen Pixelschattierungswert von 1 zu einem Pixelschattierungswert von 0 aktualisieren und kann den aktualisierten Pixelschattierungswert verwenden, um die verworfenen Bits zu ersetzen. Für eine Ausführungsform, die mehr als ein einzelnes Bit verwirft, kann der Codec 134 den Pixelschattierungswert aktualisieren, indem er zwischen zwei mittigen Werten umschaltet. Insbesondere kann der Codec 134 zwei Bits einer Pixelschattierung unterziehen, indem er zwischen 01 und 10 umschaltet, kann drei Bits einer Pixelschattierung unterziehen, indem er zwischen 011 und 100 umschaltet, und kann vier Bits einer Pixelschattierung unterziehen, indem er zwischen 0111 und 1000 umschaltet.
  • In Block 316 kann der Codec 134 ein Bildelement aus dem erhaltenen quantisierten Bildelement und dem erhaltenen Fehlervektor (zum Beispiel einem verlustfreien Vektor oder einem rekonstruierten Fehlervektor) erzeugen und kann das rekonstruierte Bildelement in einem Ausgabepuffer speichern. In einer Ausführungsform kann der Codec 134 jeden Kanalfehler des Fehlervektors an jeden quantisierten Kanal des quantisierten Bildelements anhängen. Der Codec 134 kann den Kanalfehler mittels einer Reihe verschiedener Techniken an den quantisierten Kanal anhängen. Insbesondere kann der Codec 134 den quantisierten Kanal entsprechend verschieben und kann ein Bit-weises ODER des verschobenen quantisierten Kanals und des Kanalfehlers ausführen.
  • Der Codec 134 kann in Block 318 die Lauflänge aktualisieren, um anzuzeigen, daß ein Bildelement des Symbols rekonstruiert wurde. In einer Ausführungsform kann der Codec 134 die Lauflänge aktualisieren, indem er die Lauflänge um Eins inkrementiert. Der Codec 134 kann dann zu Block 306 zurückkehren, um zu bestimmen, ob die Dekompression des Symbols vollständig ist. Wenn sie vollständig ist, so kann der Codec 134 zu 300 zurückkehren, um das nächste Symbol des komprimierten digitalen Bildes, das aus dem Frame-Puffer 132 abgerufen wurde, zu erhalten.
  • Das Rechengerät 100 kann die gesamten – oder eine Teilmenge der – beispielhaften Verfahren von 4 und 5 in Reaktion auf Ausführungsbefehle eines maschinenlesbaren Mediums ausführen, wie zum Beispiel Nurlesespeicher (ROM); Direktzugriffsspeicher (RAM); Magnetplattenspeichermedien; optische Speichermedien; Flash-Speicherbausteine; und/oder elektrische, optische, akustische oder sonstige Formen ausgebreiteter Signale, wie zum Beispiel Trägerwellen, Infrarot-Signale, digitale Signale oder analoge Signale. Obgleich die beispielhaften Verfahren von 4 und 5 als eine Abfolge von Operationen veranschaulicht sind, kann des Weiteren das Rechengerät 100 in einigen Ausführungsformen verschiedene veranschaulichte Operationen der Verfahren parallel oder in einer anderen Reihenfolge ausführen.
  • Ein Beispiel für verlustfreie Komprimierung/Dekomprimierung und ein Beispiel für verlustbehaftete Komprimierung/Dekomprimierung sind in den folgenden Tabellen 1–7 gezeigt. Insbesondere zeigt die Tabelle 1 eine Zonenzeile mit vier 24-Bit-RGB-Bildelementen, und Tabelle 2 zeigt die vier 24-Bit-RGB-Bildelemente nach der Quantisierug auf ein 18-Bit-Quantisierungsniveau unter Verwendung von 6 Bits je Kanal. Wie zu sehen ist, kann der Codec die 18-Bit-quantisierten Bildelemente erzeugen, indem er einfach die 2 LSBs jedes Kanals abwirft.
    Position R-Kanal G-Kanal B-Kanal
    0 10010101 11111001 01110000
    1 10010100 11111011 01110001
    2 10010111 11111011 01110010
    3 10000000 11111011 01110001
    Tabelle 1: Zonenzeile aus vier 24-Bit-RGB-Bildelementen
    Position R-Kanal G-Kanal B-Kanal
    0 100101 111110 011100
    1 100101 111110 011100
    2 100101 111110 011100
    3 100000 111110 011100
    Tabelle 2: 18-Bit-quantisierte Bildelemente der Zonenzeile
  • Tabelle 3 zeigt des Weiteren verlustfreie Fehlervektoren für die 18-Bit-quantisierten Bildelemente von Tabelle 2. Wie aus Tabelle 3 zu erkennen ist, kann der Codec verlustfreie 6-Bit-Fehlervektoren erzeugen, indem er einfach die 2 LSBs beibehält, die während der Bildelement-Quantisierung aus jedem Kanal abgeworfen wurden. Wenden wir uns nun Tabelle 4 zu, wo verlustbehaftete Fehlervektoren für die 18-Bit-quantisierten Bildelemente von Tabelle 2 gezeigt sind. Der Codec kann die verlustbehafteten 3-Bit-Fehlervektoren erzeugen, indem er einfach das MSB beibehält, das während der Bildelement-Quantisierung aus jedem Kanal abgeworfen wurde.
    Position R-Kanalfehler G-Kanalfehler B-Kanalfehler
    0 01 01 00
    1 00 11 01
    2 11 11 10
    3 00 11 01
    Tabelle 3: Verlustfreie Fehlervektoren für 18-Bit-quantisierte Bildelemente
    Position R-Kanalfehler G-Kanalfehler B-Kanalfehler
    0 0 0 0
    1 0 1 0
    2 1 1 1
    3 0 1 0
    Tabelle 4: Verlustbehaftete Fehlervektoren für 18-Bit-quantisierte Bildelemente
  • Wenden wir uns nun Tabelle 5 zu, wo eine verlustfreie Codierung der vier 24-Bit-RGB-Bildelemente von Tabelle 1 veranschaulicht ist. Wie gezeigt, enthält die verlustfreie Codierung ein Symbol 0, das die Bildelemente 0, 1 und 2 von Tabelle 1 codiert, und ein Symbol 1, das das Bildelement 3 von Tabelle 1 codiert. Das Symbol 0 umfaßt eine Lauflänge von 4 Bit, die anzeigt, daß das Symbol drei Bildelemente darstellt. Darüber hinaus umfaßt das Symbol 0 ein 18-Bit-quantisiertes Bildelement, das gleich den 18-Bit-quantisierten Bildelementen 0, 1 und 2 von Tabelle 2 ist. Des Weiteren umfaßt das Symbol 0 die drei verlustfreien 6-Bit-Fehlervektoren für die Bildelemente 0, 1 und 2, wie in Tabelle 3 gezeigt. Gleichermaßen umfaßt das Symbol 1 eine Lauflänge, die anzeigt, daß das Symbol 1 ein einzel nes Bildelement, das 18-Bit-quantisierte Bildelement für Bildelement 3 und den verlustfreien Fehlervektor für Bildelement 3 darstellt. Tabelle 5 zeigt an, daß die zwei Symbole 96 Bits an Bildelement-Daten mit nur 68 Bits darstellen, wodurch eine komprimierte Darstellung der Bildelemente 0, 1, 2 und 3 gegeben wird. Der Codec kann später die verlustfreien Fehlervektoren jedes Symbols an das quantisierte Bildelement jedes Symbols anhängen, um die Symbole zu dekomprimieren und die vier Bildelemente von Tabelle 1 erhalten.
    Symbol Lauflänge Quantisiertes Bildelement Verlustfreie Fehlervektoren Uncod. Bits Cod. Bits
    0 0011 100101-111110-011100 [01-01-00][00-11-01][11-11-10] 72 40
    1 0001 100000-111110-011100 [00-11-01] 24 28
    Tabelle 5: Verlustfreie Symbole für Zonenzeile
  • Wenden wir uns nun Tabelle 6 zu, wo eine verlustbehaftete Codierung der vier 24-Bit-RGB-Bildelemente von Tabelle 1 veranschaulicht ist Wie gezeigt, enthält die verlustbehaftete Codierung ein Symbol 0, das die Bildelemente 0, 1 und 2 von Tabelle 1 codiert, und ein Symbol 1, welches das Bildelement 3 von Tabelle 1 codiert Das Symbol 0 umfaßt gleichermaßen eine Lauflänge von 4 Bit, die anzeigt, daß das Symbol 0 drei Bildelemente darstellt. Darüber hinaus umfaßt das Symbol 0 ein 18-Bit-quantisiertes Bildelement, das gleich den 18-Bit-quantisierten Bildelementen 0, 1 und 2 von Tabelle 2 ist Des Weiteren umfaßt das Symbol 0 den verlustbehafteten 3-Bit-Fehlervektor von Tabelle 4 für jedes der Bildelemente 0, 1 und 2. Gleichermaßen umfaßt das Symbol 1 eine Lauflänge, die anzeigt, daß das Symbol 1 ein einzelnes Bildelement, das 18-Bit-quantisierte Bildelement von Tabelle 2 für Bildelement 3 und den verlustbehafteten Fehlervektor 15 von Tabelle 4 für Bildelement 3 darstellt. Tabelle 6 zeigt des Weiteren an, daß die zwei Symbole 96 Bits an Bildelement-Daten mit nur 56 Bits darstellen, wodurch eine komprimierte Darstellung der Bildelemente 0, 1, 2 und 3 gegeben wird.
    Symbol Lauflänge Quantisiertes Bildelement Verlustbehafteter Fehlervektor Uncod. Bits Cod. Bits
    0 0011 100101-111110-011100 [0-0-0][0-1-0][1-1-1] 72 31
    1 0001 100000-111110-011100 [0-1-0] 24 25
    Tabelle 6: Verlustbehaftete Symbole für Zonenzeile
  • Der Codec kann später ein Bit an die verlustbehafteten Fehlervektoren von Tabelle 6 anhängen, um einen rekonstrierten Fehlervektor zu erhalten, und kann des Weiteren den rekonstruierten Fehlervek tor an das quantisierte Bildelement jedes Symbols von Tabelle 6 anhängen, um die Symbole zu dekomprimieren und die vier 24-Bit-Bildelemente zu erhalten. Tabelle 7 zeigt einen möglichen Satz aus vier 24-Bit-Bildelementen, der aus den verlustbehafteten Symbolen von Tabelle 6 erhalten werden kann.
  • Insbesondere wurden die vier Bildelemente von Tabelle 6 erhalten, indem die letzte Bit-Position jedes Kanals von Bildelement 0 auf 0 gesetzt wurde und für jedes Bildelement die letzte Bit-Position der Kanäle umgeschaltet wurde. Wie aus einem Vergleich der rekonstruierten Bildelemente von Tabelle 7 mit den ursprünglichen Bildelementen von Tabelle 1 zu erkennen ist, ist das LSB jedes Kanal manchmal korrekt und ist manchmal falsch, aber im Allgemeinen sind die rekonstruierten Kanäle sehr nahe an – wenn nicht gar gleich – den ursprünglichen Kanälen. In dem meisten Fällen würde ein Benutzer nicht zwischen einem ursprünglichen digitalen Bild und einem digitalen Bild, das aus verlustbehafteten Symbolen rekonstruiert wurde, unterscheiden können.
    Position R-Kanal G-Kanal B-Kanal
    0 10010100 11111000 01110000
    1 10010101 11111011 01110001
    2 10010110 11111010 01110010
    3 10000001 11111011 01110001
    Tabelle 7: Rekonstruierte Zonenzeile aus verlustbehafteten Symbolen (mit Pixelschattierug)
  • Obgleich bestimmte Merkmale der Erfindung anhand beispielhafter Ausführungsformen beschrieben wurden, darf die Beschreibung nicht in einem einschränkenden Sinn verstanden werden. Es sind verschiedene Modifikationen der beispielhaften Ausführungsformen sowie weitere Ausführungsformen der Erfindung innerhalb des Geltungsbereichs der angehängten Ansprüche möglich.

Claims (16)

  1. Verfahren zum Komprimieren eines Digitalbildes, wobei das Verfahren Folgendes umfaßt: – Quantisieren eines ersten Bildelements und eines zweiten Bildelements, um ein quantisiertes erstes Bildelement und ein quantisiertes zweites Bildelement zu erhalten (202), wobei das erste Bildelement mehrere erste Kanäle umfaßt und das zweite Bildelement mehrere zweite Kanäle umfaßt, wobei beide Kanal-Sätze entweder eine Kombination aus Farbe mit optional einem Transparenzgrad oder eine Kombination aus Luminanz und Chrominanz definieren, wobei das Quantisieren Verwerfen eines oder mehrerer geringst-signifikanter Bits aus mindestens einem der mehreren ersten Kanäle sowie das Verwerfen eines oder mehrerer geringst-signifikanter Bits aus mindestens einem der mehreren zweiten Kanäle umfaßt, – Bestimmen anhand der Arbeitslast einer Rechenvorrichtung (210), ob eine verlustfreie oder eine verlustbehaftete Kompression zu verwenden ist, was Folgendes umfaßt: – Erzeugen eines ersten Fehlervektors, der eine Teilmenge des einen oder der mehreren geringst-signifikanten Bits umfaßt, die aus mindestens einem der mehreren ersten Kanäle verworfen wurden (214), und – Erzeugen eines zweiten Fehlervektors, der eine Teilmenge des einen oder der mehreren geringst-signifikanten Bits umfaßt, die aus mindestens einem der mehreren zweiten Kanäle verworfen wurden (214), wobei eine Anzahl von in der Teilmenge enthaltenen Bits anhand der Arbeitslast der Rechenvorrichtung eingestellt wird (210), – Identifizieren von Durchgängen aufeinanderfolgender quantisierter Bildelemente, die eine zuvor festgelegte Beziehung aufweisen (215), und – Inkrementieren einer Lauflänge, die dem ersten Bildelement zugeordnet ist, in Reaktion auf das quantisierte erste Bildelement und das quantisierte zweite Bildelement, die eine zuvor festgelegte Beziehung aufweisen (218).
  2. Verfahren nach Anspruch 1, das des Weiteren das Erzeugen eines Symbols umfaßt, um das erste Bildelement und das zweite Bildelement dazustellen, welches das quantisierte erste Bildelement, die Lauflänge, den ersten Fehlervektor und den zweiten Fehlervektor umfaßt (216).
  3. Verfahren zum Rekonstruieren eines Digitalbildes, das mit einem Verfahren zum Komprimieren eines Digitalbildes nach Anspruch 1 oder 2 komprimiert wurde, wobei das Verfahren Folgendes umfaßt: – Erhalten einer Lauflänge und eines quantisierten Bildelements aus einem Symbol, das ein oder mehrere Bildelemente darstellt (302, 304), und – Rekonstruieren des einen oder der mehreren Bildelemente auf der Grundlage der Lauflänge und des quantisierten Bildelements (316).
  4. Verfahren nach Anspruch 3, das des Weiteren Folgendes umfaßt: – Erhalten eines oder mehrerer Fehlervektoren aus dem Symbol, die dem einen oder den mehreren Bildelementen des Symbols entsprechen (312), und – Rekonstruieren des einen oder der mehreren Bildelemente des Weiteren auf der Grundlage des einen oder der mehreren Fehlervektoren (316).
  5. Verfahren nach Anspruch 3, das des Weiteren Folgendes umfaßt: – Erhalten eines oder mehrerer verlustbehafteter Fehlervektoren aus dem Symbol, die dem einen oder den mehreren Bildelementen des Symbols entsprechen (312), und – Rekonstruieren des einen oder der mehreren Bildelemente des Weiteren auf der Grundlage des einen oder der mehreren verlustbehafteten Fehlervektoren und eines zuvor festgelegten Wertes für fehlende Bits des einen oder der mehreren Bildelemente (314, 316).
  6. Verfahren nach Anspruch 3, das des Weiteren Folgendes umfaßt: – Erhalten eines oder mehrerer verlustbehafteter Fehlervektoren aus dem Symbol, die dem einen oder den mehreren Bildelementen des Symbols entsprechen (312), und – Rekonstruieren des einen oder der mehreren Bildelemente des Weiteren auf der Grundlage des einen oder der mehreren verlustbehafteten Fehlervektoren (316), und – Pixelschattieren fehlender Bits des einen oder der mehreren Bildelemente (314).
  7. Anzeige-Steuereinheit (116), die Folgendes umfaßt: – einen Komprimierer (134) zum Quantisieren eines ersten Bildelements und eines zweiten Bildelements, um ein quantisiertes erstes Bildelement und ein quantisiertes zweites Bildelement zu erhalten, wobei das erste Bildelement mehrere erste Kanäle umfaßt und das zweite Bildelement mehrere zweite Kanäle umfaßt, wobei beide Kanal-Sätze entweder eine Kombination aus Farbe mit optional einem Transparenzgrad oder eine Kombination aus Luminanz und Chrominanz definieren, zum Verwerfen eines oder mehrerer geringst-signifikanter Bits aus mindestens einem von mehreren ersten Kanälen des ersten Bildelements und zum Verwerfen eines oder mehrerer geringst-signifikanter Bits aus mindestens einem von mehreren zweiten Kanälen des zweiten Bildelements, zum Bestimmen anhand der Arbeitslast einer Rechenvorrichtung (210), ob eine verlustfreie oder eine verlustbehaftete Kompression zu verwenden ist, was Folgendes umfaßt: Erzeugen eines ersten Fehlervektors, der eine Teilmenge des einen oder der mehreren geringst-signifikanten Bits umfaßt, die aus mindestens einem der mehreren ersten Kanäle verworfen wurden (214), und Erzeugen eines zweiten Fehlervektors, der eine Teilmenge des einen oder der mehreren geringst-signifikanten Bits umfaßt, die aus mindestens einem der mehreren zweiten Kanäle verworfen wurden (214), wobei eine Anzahl von in der Teilmenge enthaltenen Bits anhand der Arbeitslast der Rechenvorrichtung eingestellt wird (214), zum Identifizieren von Durchgängen aufeinanderfolgender Bildelemente, die eine zuvor festgelegte Beziehung aufweisen, zum Aktualisieren einer Lauflänge in Reaktion auf das quantisierte erste Bildelement und das quantisierte zweite Bildelement, falls es die zuvor festgelegte Beziehung zwischen dem ersten Bildelement und dem zweiten Bildelement gibt, und zum Erzeugen eines Symbols, welches das erste Bildelement und das zweite Bildelement darstellt, mit der Lauflänge und dem quantisierten ersten Bildelement, und – eine Speicherschnittstelle (122) zum Übertragen des Symbols zu einem Frame-Puffer (132).
  8. Anzeige-Steuereinheit nach Anspruch 7, die des Weiteren einen Videospeicher (124) umfaßt, der den Frame-Puffer (132) umfaßt.
  9. Anzeige-Steuereinheit nach Anspruch 7, wobei die Speicherschnittstelle (122) des Weiteren das Symbol aus dem Frame-Puffer (132) erhält, wobei die Anzeige-Steuereinheit (116) des Weiteren einen Dekomprimierer (134) umfaßt, um die Lauflänge, das quantisierte erste Bildelement, den ersten Fehlervektor und den zweiten Fehlervektor aus dem Symbol zu erhalten, das aus dem Frame-Puffer (132) erhalten wurde, und um das erste Bildelement und das zweite Bildelement auf der Grundlage der Lauflänge, des quantisierten ersten Bildelements, des ersten Fehlervektors und des zweiten Fehlervektors aus dem Symbol zu rekonstruieren.
  10. Anzeige-Steuereinheit nach Anspruch 7, wobei der Dekomprimierer (134) des Weiteren einen zuvor festgelegten Wert für fehlende Bits des ersten Bildelements und des zweiten Bildelements verwendet.
  11. Anzeige-Steuereinheit nach Anspruch 7, wobei der Dekomprimierer (134) des Weiteren eine Pixelschattierung an fehlenden Bits des ersten Bildelements und des zweiten Bildelements vornimmt.
  12. Rechenvorrichtung (100), die Folgendes umfaßt: – einen Systemspeicher (108) zum Speichern eines Frame-Puffers (132), und – eine integrierte Anzeige-Steuereinheit (116) nach einem der Ansprüche 7 bis 11, die des Weiteren dafür geeignet ist, ein Symbol aus dem Frame-Puffer (132) zu erhalten, eine Lauflänge und ein quantisiertes Bildelement aus dem Symbol zu erhalten und ein oder mehrere Bildelemente auf der Grundlage der Lauflänge und des quantisierten Bildelements zu rekonstruieren.
  13. Rechenvorrichtung (100) nach Anspruch 12, wobei die integrierte Anzeige-Steuereinheit (116) einen oder mehrere Fehlervektoren aus dem Symbol enthält, die dem einen oder den mehreren Bildelementen des Symbols entsprechen, und das eine oder die mehreren Bildelemente des Weiteren auf der Grundlage des einen oder der mehreren Fehlervektoren rekonstruiert.
  14. Rechenvorrichtung (100) nach Anspruch 12, wobei die integrierte Anzeige-Steuereinheit (116) einen oder mehrere verlustbehaftete Fehlervektoren aus dem Symbol enthält, die dem einen oder den mehreren Bildelementen des Symbols entsprechen, und das eine oder die mehreren Bildelemente des Weiteren auf der Grundlage des einen oder der mehreren verlustbehafteten Fehlervektoren und eines zuvor festgelegten Wertes für fehlende Bits des einen oder der mehreren Bildelemente rekonstruiert.
  15. Rechenvorrichtung (100) nach Anspruch 12, wobei die integrierte Anzeige-Steuereinheit (116) einen oder mehrere ver lustbehaftete Fehlervektoren aus dem Symbol enthält, die dem einen oder den mehreren Bildelementen des Symbols entsprechen, und das eine oder die mehreren Bildelemente des Weiteren auf der Grundlage des einen oder der mehreren verlustbehafteten Fehlervektoren und einer Pixelschattierung fehlender Bits rekonstruiert.
  16. Maschinenlesbares Medium, das mehrere Instruktionen umfaßt, die, wenn sie ausgeführt werden, eine Rechenvorrichtung ergeben, die ein Verfahren nach einem der Ansprüche 1 oder 2 und/oder 3 bis 6 ausführt.
DE60319742T 2002-12-30 2003-11-13 Lauflängencodierung eines quantisierten digitalen bildes Expired - Lifetime DE60319742T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US335377 2002-12-30
US10/335,377 US7532765B2 (en) 2002-12-30 2002-12-30 Run length encoded digital image
PCT/US2003/036346 WO2004061773A1 (en) 2002-12-30 2003-11-13 Run length encoded digital image

Publications (2)

Publication Number Publication Date
DE60319742D1 DE60319742D1 (de) 2008-04-24
DE60319742T2 true DE60319742T2 (de) 2009-04-30

Family

ID=32655336

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60319742T Expired - Lifetime DE60319742T2 (de) 2002-12-30 2003-11-13 Lauflängencodierung eines quantisierten digitalen bildes

Country Status (9)

Country Link
US (1) US7532765B2 (de)
EP (1) EP1579389B1 (de)
KR (1) KR100803402B1 (de)
CN (1) CN1231066C (de)
AT (1) ATE389219T1 (de)
AU (1) AU2003287730A1 (de)
DE (1) DE60319742T2 (de)
TW (1) TWI240215B (de)
WO (1) WO2004061773A1 (de)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4500213B2 (ja) * 2005-05-20 2010-07-14 オリンパスイメージング株式会社 データ符号化装置、データ復号化装置、データ符号化方法、データ復号化方法、プログラム
US8243340B2 (en) * 2006-02-23 2012-08-14 Microsoft Corporation Pre-processing of image data for enhanced compression
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
US8369642B2 (en) * 2006-11-21 2013-02-05 Stmicroelectronics (Research & Development) Ltd Artifact removal from phase encoded images
US9391635B2 (en) * 2009-05-15 2016-07-12 Texas Instruments Incorporated Block scanner and run-level encoder from AC to DC values
US11310033B2 (en) * 2019-06-05 2022-04-19 Blackberry Limited System and method for operating pseudorandom generators

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4903317A (en) * 1986-06-24 1990-02-20 Kabushiki Kaisha Toshiba Image processing apparatus
US4888795A (en) * 1987-06-30 1989-12-19 Nec Corporation Videotelephone apparatus for transmitting high and low resolution video signals over telephone exchange lines
CA1326898C (en) * 1988-04-27 1994-02-08 John Music Method and system for decompressing color video encoded data
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
US5576835A (en) 1992-02-24 1996-11-19 Dirr; Josef Method for run-length coding for shortening transmission time
US5318173A (en) * 1992-05-29 1994-06-07 Simco/Ramic Corporation Hole sorting system and method
US5614952A (en) * 1994-10-11 1997-03-25 Hitachi America, Ltd. Digital video decoder for decoding digital high definition and/or digital standard definition television signals
EP1158810B1 (de) * 1993-06-30 2003-05-14 Sony Corporation Aufzeichnungsmedium
US5450130A (en) * 1994-03-30 1995-09-12 Radius Inc. Method and system for cell based image data compression
US5764374A (en) * 1996-02-05 1998-06-09 Hewlett-Packard Company System and method for lossless image compression having improved sequential determination of golomb parameter
US5818877A (en) * 1996-03-14 1998-10-06 The Regents Of The University Of California Method for reducing storage requirements for grouped data values
US6728775B1 (en) 1997-03-17 2004-04-27 Microsoft Corporation Multiple multicasting of multimedia streams
GB9919805D0 (en) * 1999-08-21 1999-10-27 Univ Manchester Video cording
US6760479B1 (en) * 1999-10-22 2004-07-06 Research Foundation Of The City University Of New York Super predictive-transform coding
US6959116B2 (en) * 2001-09-18 2005-10-25 Emc Corporation Largest magnitude indices selection for (run, level) encoding of a block coded picture
US7088398B1 (en) * 2001-12-24 2006-08-08 Silicon Image, Inc. Method and apparatus for regenerating a clock for auxiliary data transmitted over a serial link with video data
US7016547B1 (en) * 2002-06-28 2006-03-21 Microsoft Corporation Adaptive entropy encoding/decoding for screen capture content
US6982722B1 (en) * 2002-08-27 2006-01-03 Nvidia Corporation System for programmable dithering of video data
US7116718B2 (en) * 2002-09-11 2006-10-03 Njr Corporation Unified memory address generation system and method for fetching and storing MPEG video data
US6707397B1 (en) * 2002-10-24 2004-03-16 Apple Computer, Inc. Methods and apparatus for variable length codeword concatenation

Also Published As

Publication number Publication date
KR20050084472A (ko) 2005-08-26
US7532765B2 (en) 2009-05-12
EP1579389B1 (de) 2008-03-12
TW200421203A (en) 2004-10-16
WO2004061773A1 (en) 2004-07-22
KR100803402B1 (ko) 2008-02-13
AU2003287730A1 (en) 2004-07-29
TWI240215B (en) 2005-09-21
CN1231066C (zh) 2005-12-07
ATE389219T1 (de) 2008-03-15
CN1512782A (zh) 2004-07-14
DE60319742D1 (de) 2008-04-24
EP1579389A1 (de) 2005-09-28
US20040126031A1 (en) 2004-07-01

Similar Documents

Publication Publication Date Title
DE19983253B4 (de) Die Kompression von Farbbildern auf der Grundlage einer zweidimensionalen diskreten Wavelet-Transformation, die ein scheinbar verlustloses Bild hervorbringt
DE69116869T2 (de) Digitale bildkodierung mit einer zufallsabtastung der bilder
DE69934939T2 (de) Kompression von Grenzen zwischen Bildern
DE102018118362A1 (de) Systeme und verfahren zur effizienten und verlustfreien komprimierung von erfassten rohbilddaten
JPH09505188A (ja) 4分木構造walsh変換符号化
JPH09507347A (ja) 4分木構造walsh変換ビデオ/イメージ符号化
DE602004006716T2 (de) Verarbeitung von bildern unter verwendung einer begrenzten anzahl von bits
DE60313664T2 (de) Digitale bildkompression durch ausnutzung übereinstimmender msb
DE60211171T2 (de) Verarbeitung von einem komprimierten mediensignal
EP3434015B1 (de) Datenkompression mittels adaptiven unterabtastens
DE69724440T2 (de) Mpeg-2-videodatendekodierer für codes variabler länge und dekodiererarchitektur mit zwei geschwindigkeiten
DE69928616T2 (de) System zur extrahierung von codierungsparametern aus videodaten
EP2541937A1 (de) Kompression bittiefenstarker Bilder
DE10204617B4 (de) Verfahren und Vorrichtungen zur Kompression und Dekompression eines Videodatenstroms
DE112008003626T5 (de) Kodierung mit geringer Komplexität in Datenkomprimierungssystemen
DE19900150B4 (de) Apparat und Verfahren zum Kodieren von Information mit einem finiten Automaten
DE19819405B4 (de) Implementation eines reversiblen eingebetteten Wavelet-Systems
CN114245989A (zh) 编码器和编码帧序列的方法
DE60015755T2 (de) Verlustfreie adaptive codierung von daten eines endlichen alphabets
DE60319742T2 (de) Lauflängencodierung eines quantisierten digitalen bildes
JP2005523660A (ja) ウェーブレット変換を使用するカラー画像のデータ圧縮
DE10218541A1 (de) Verfahren zur Videocodierung und Computerprogrammprodukt
DE69917380T2 (de) Vektordatenkompression
KR20020026189A (ko) 고정된 비율 압축을 이용하는 효율적인 비디오 데이터엑세스
CN107027027B (zh) 图像的编码、解码方法及装置、以及图像的编解码系统

Legal Events

Date Code Title Description
8364 No opposition during term of opposition