DE69730148T2 - Speichereffiziente komprimierung und quantisierung für bildsignale - Google Patents

Speichereffiziente komprimierung und quantisierung für bildsignale Download PDF

Info

Publication number
DE69730148T2
DE69730148T2 DE69730148T DE69730148T DE69730148T2 DE 69730148 T2 DE69730148 T2 DE 69730148T2 DE 69730148 T DE69730148 T DE 69730148T DE 69730148 T DE69730148 T DE 69730148T DE 69730148 T2 DE69730148 T2 DE 69730148T2
Authority
DE
Germany
Prior art keywords
value
pixel
values
quantization
data
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
DE69730148T
Other languages
English (en)
Other versions
DE69730148D1 (de
Inventor
Haoping Yu
Alan Barth CANFIELD
Wesley Billy BEYERS
Wai-Man Lam
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.)
Technicolor USA Inc
Original Assignee
Thomson Consumer Electronics 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 Thomson Consumer Electronics Inc filed Critical Thomson Consumer Electronics Inc
Publication of DE69730148D1 publication Critical patent/DE69730148D1/de
Application granted granted Critical
Publication of DE69730148T2 publication Critical patent/DE69730148T2/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/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/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • H04N19/428Recompression, e.g. by spatial or temporal decimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

  • Die Erfindung betrifft einen digitalen Videoprozessor. Genauer gesagt betrifft die Erfindung ein Bildkompressionsverfahren und eine Vorrichtung zur Verminderung der Speichererfordernisse eines digitalen Videoprozessors.
  • Die wirksame Verwendung von Speicherung ist bei der Entwicklung und bei dem Betrieb von Bildprozessoren wichtig. Beispielsweise können Verbraucherprodukte wie Fernsehsysteme Bildprozessoren verwenden, die eine MPEG-2-Signalverarbeitung einschließen. Die MPEG-(Motion Picture Experts Group)-Signal-Kompressions-Norm (ISO/IEC 13181-2, 10. Mai 1994) ist eine verbreitet angenommene Bildverarbeitungs-Norm, die insbesondere für die Verwendung bei Satelliten-, Kabel- und terrestrischen Rundfunksystemen attraktiv ist, die hochauflösende Fernseh-(HDTV)-Verarbeitung neben anderen Arten von Bildverarbeitung verwenden. Produkte, die hochauflösende Anzeigen verwenden, können 96 Mbits oder mehr an Speicherung erfordern, um zeitweilig gemäß MPEG kodierte Vollbilder vor der Anzeige zu speichern. Ein MPEG-Prozessor benötigt diese Vollbilder für die Bewegungsbewertung und die Kompensation, um genaue Bilder für die Anzeige zu rekonstruieren.
  • Systeme, die Bilder aus nach MPEG dekodierten Bildelementen (Pixel oder Pels) rekonstruieren, verwenden differentielle Impuls-Code-Modulation (DPCM). Für DPCM erzeugt ein Prozessor einen Vorhersagewert, der den nächsten Pixelwert vorhersagt. Ein Summierungsnetzwerk subtrahiert die Vorhersage von dem aktuellen Pixelwert, was zu einer Differenz führt, die zur Darstellung des gegenwärtigen Pixelwertes als auch dazu dient, den nächsten Pixelwert vorherzusagen. Diese Differenz, bekannt als Vorhersagefehler, ist im allgemeinen kleiner als die ursprünglichen Pixel- oder Vorhersagewerte, so dass die Verarbeitung der Differenz an statt der ursprünglichen Pixelwerte Bandbreite-Erfordernisse des Systems vermindert. Der Vorhersagefehler kann einen positiven oder negativen Wert haben. Ang et al. „Video Compression Makes Big Gains", IEEE-Spectrum, Oktober 1991, beschreibt allgemein einen MPEG-Kodierer und -Dekodierer, der DPCM-Verarbeitung verwendet.
  • Speicher-wirksame Bildprozessoren verwenden weniger Speicherung, um Vollbilder durch Neukodierung (Rekompression) der Blockdaten vor der Speicherung zu speichern. In dem räumlichen Bereich beeinträchtigt die Verminderung der Zahl von Bits pro Pixel, die zur Speicherung von Vollbildern verwendet wird, die Bildqualität, wenn die Pixel nicht genau auf ihre ursprüngliche Bitgröße rekonstruiert werden können. Artefakte können insbesondere in ruhigen Bereichen des Bildes auftreten. Bildprozessoren mit Speicherverminderung sollten das gemäß MPEG dekodierte Signal genau und so wirksam und wirtschaftlich wie möglich quantisieren und dequantisieren. Es ist bekannt, die menschliche optische Physiologie durch unterschiedliche Verarbeitung von Luminanz- und Chrominanzdaten auszunutzen. Die Optimierung von Kompressionsgesetzen für jede Art von Daten, um die Energie in den Daten zu begründen, wie auch das, was das menschliche Auge sehen kann, ist im US-Patent 4,575,749, Acampora et al., beschrieben. Das Acampora-Patent offenbart Amplitudenkompression, um Rauschen in Fernsehsignalen vor der Übertragung zu vermindern.
  • Die Erfinder haben den Wunsch nach Schaffung eines wirksamen Datenverminderungssystems erkannt, das minimale Hardware und Software verwendet, das Speicherung einspart und die physikalische Größe des Prozessors vermindert, wäh rend in die rekonstruierten Daten eingeführte Artefakte minimiert werden.
  • Gemäß den Prinzipien der Erfindung, die in den unabhängigen Ansprüchen 1 und 17 dargelegt sind, erzeugt ein Bildprozessor zu quantisierende DPCM-Vorhersage-Fehlerwerte. Vor der Quantisierung bestimmt der Prozessor, ob der Vorhersagefehler positiv oder negativ ist. Wenn der Vorhersage-Fehlerwert positiv ist, gelangt der Wert unverändert zu einem Quantisierer. Wenn der Vorhersage-Fehlerwert negativ ist, wird dem Vorhersage-Fehlerwert ein Vorspannungswert hinzugefügt, um eine positive Zahl in dem Umfang des Quantisierers zu erzeugen. Vorgespannte und nicht vorgespannte Vorhersage-Fehlerwerte verlaufen zu dem Quantisierer. Da alle von dem Quantisierer empfangenen Werte positiv sind und innerhalb der gegenwärtigen Quantisierer-Grenzen liegen, braucht die von dem Quantisierer verwendete Quantisierungs-Tabelle keine Quantisierungswerte für negative Vorhersage-Fehlerwerte zu enthalten. Dies vermindert den Umfang der Vorhersage-Fehlerwerte um einen Faktor 2 und verdoppelt die Quantisierungs-Auflösung. Weitere Ausführungsformen der Erfindung sind in den Unteransprüchen offenbart.
  • Kurze Beschreibung der Zeichnungen
  • In den Zeichnungen stellen dar:
  • 1 ein Blockschaltbild eines Pixelblock-Prozessors, der ein erfindungsgemäßes System enthält;
  • 2 Einzelheiten des Kompressionsteils des Systems von 1;
  • 3 ein paketisiertes Datenformat, das für die Verwendung in einem erfindungsgemäßen System geeignet ist;
  • 4 Einzelheiten des Dekompressionsteils des Systems von 1;
  • 5A Einzelheiten des Quantisierungs-Abbildungsteils von 2;
  • 5B eine Wahrzeits-Tabelle für den Auswahlblock von 5A;
  • 6A die positiven und negativen Eigenschaften von Vorhersage-Fehlerwerten über Rekonstruktionsstufen der Quantisierungs-Tabelle;
  • 6B eine 4-Bit-Quantisierungs/Dequantisierungs-Tabelle gemäß der vorliegenden Erfindung;
  • 6C eine 5-Bit-Quantisierungs/Dequantisierungs-Tabelle gemäß der vorliegenden Erfindung;
  • 7 ein Flussdiagramm des Aufbaus einer Quantisierungs/Dequantisierungs-Tabelle und der Verarbeitung von Daten unter Verwendung der Tabelle gemäß der vorliegenden Erfindung;
  • 8 ein Blockschaltbild eines mit MPEG kompatiblen Fernsehsystems, das die vorliegende Erfindung verwendet.
  • In einem Ausführungsbeispiel der Erfindung enthält ein Fernsehempfänger einen MPEG-Dekodierer. Ein Daten-Kompressions-Netzwerk quantisiert ein dekodiertes und dekomprimiertes MPEG-Signal, das 8 × 8 Bildblöcke enthält, vor der Speicherung in einem Vollbildspeicher und rekonstruiert die Bildblöcke, wenn sie für eine Bildanzeige benötigt werden. Eine Anzeigevorrichtung zeigt die von dem Vollbildspeicher abgeleiteten Bildinformationen an.
  • Um die Datenintegrität in dem ganzen Datenverminderungs-Netzwerk aufrecht zu erhalten, tastet das Netzwerk einen Pixelblock ab und bestimmt den Bereich von Bildpixelwerten. Das Netzwerk führt eine beste Anpassung zwischen dem aktuellen Bereich und einer Gruppe von vorbestimmten Bereichen aus. Unter Verwendung des ausgewählten vorbestimmten Bereiches nimmt das Netzwerk Zugriff zu einer Quantisierungs-Tabelle, die Quantisierungs-Stufen enthält, die von der positiven Domäne des vorbestimmten Bereichs abgeleitet sind. Die Quantisierungs-Tabelle hat einen ausreichenden Umfang, um DPCM-Werte – wie zuvor beschrieben – zu quantisieren. Für dieses Beispiel ist der oben beschriebene Vorspannungswert der ausgewählte vorbestimmte Bereich. Da der ausgewählte vorbestimmte Bereich im allgemeinen kleiner als der größtmögliche Pixelwert für das System ist (256 für acht Bits), und da die Quantisierungs-Tabelle (und die entsprechende Dequantisierungs-Tabelle) nur positive Werte enthalten, wird die Quantisierungs-Auflösung verdoppelt. Es ist möglich, die Quantisierungs-Auflösung um einen Faktor von 32 zu erhöhen, wenn der kleinste vorbestimmte Bereich für einen gegebenen Pixelblock adäquat ist.
  • In 1 liefert ein Dekodierer, z. B. ein MPEG-Dekodierer (nicht dargestellt) einen Block von gemäß MPEG dekodierten Pixeldaten an den Eingang 10 eines Kompressors 12. Der Kompressor 12 enthält einen Prediktor 18, einen Quantisierer 20 und einen Kombinierer 22. Der Prediktor 18 verwendet allgemein bekannte Prinzipien und kann vom dem Typ sein, der in Jain, A., Fundamentals of Digital Image Processing, Prentice-Hall, Inc., Seite 484 (1989), zum Beispiel beschrieben ist.
  • Der Quantisierer 20 liefert einen datenverminderten Pixelblock an den Speicher 14. Wenn ein Anzeigeprozessor (nicht dargestellt) Zugriff zu dem verminderten Datenblock im Speicher 14 nimmt, um ein Bild anzuzeigen, rekonstruiert der Dekompressor 16 den ursprünglichen Datenblock. Der Dekompressor 16 enthält einen Prediktor 24 und einen Dequantisierer 26, um verminderte Daten aus dem Speicher 14 wiederzugewinnen und den verminderten Datenblock zu rekonstruieren. Der Quantisierer 20 und der Dequantisierer 26 sind gemäß den Prinzipien der vorliegenden Erfindung angeordnet, was noch erläutert wird. Der Prediktor 24 gleicht dem Prediktor 18.
  • Der Eingang 10 des Kompressors 12 empfängt einen Pixelblock von einem MPEG-Dekodierer, was in Verbindung mit 8 noch erläutert wird. Der Pixelblock befindet sich im räumlichen Bereich und umfasst zum Beispiel einen 8 × 8-Block von Bildpixeln. Der Eingang 10 führt die Pixelblockdaten einem nicht invertierenden Eingang der Kombinationsschaltung 22 und dem Quantisierer 20 zu. Der Prediktor 18 führt Pixel-Vorhersagedaten einem invertierenden Eingang der Kombinationsschaltung 22 und dem Quantisierer 20 zu. Die Kombinationsschaltung 22 kombiniert ihre Signale von dem invertierenden und nicht invertierenden Eingang und führt die Differenz dem Quantisierer 20 zu. Der Quantisierer 20 gibt quantisierte Pixelwerte an den Prediktor 18 und quantisierte Pixel-Differenzwerte an den Speicher 14 zur Speicherung aus.
  • 2 veranschaulicht den Quantisierer 20 in größeren Einzelheiten. Gleiche Bezugsziffern bezeichnen gleiche Elemente in den 1 und 2. Genauer gesagt enthält der Quantisierer 20 einen Vorhersagefehler-Prozessor 27, einen Quantisierungs-Mapper 28, eine Kodierungs-Steuereinheit 29, einen Min–Max-Bereichs-Prozessor (MMRP) 30, einen ersten Pixelprozessor 31 und einen Multiplexer 32. Der Eingang 10 führt Blockpixeldaten dem MMRP 30 zu, der den Pixelblock abtastet und den minimalen Pixelwert, den maximalen Pixelwert und den Bereich bestimmt. MMRP 30 definiert den aktuellen Bereich als den minimalen Wert, subtrahiert von dem maximalen Wert plus eins (1). MMRP 30 wählt einen vorbestimmten Bereich aus einer Gruppe von vorbestimmten Bereichen als Funktion des aktuellen Bereichs aus und wechselt den ausgewählten vorbestimmten Bereich gegen den aktuellen Bereich für die nachfolgende Verwendung innerhalb des Netzwerks aus. MMRP 30 komprimiert die minimalen, maximalen und vorbestimmten Bereichs-Block-Parameterwerte und führt sie dem Multiplexer 32 zu.
  • Der minimale Pixelwert und der Bereich werden auch dem ersten Pixelprozessor 31 zugeführt, und der Bereich wird dem Vorhersagefehler-Prozessor 27 zugeführt, was noch erläutert wird. Der Vorhersagefehler-Prozessor 27 empfängt Vorhersage-Fehlerdaten von der Kombinationsschaltung 22 und spannt negative Werte mit dem ausgewählten vorbestimmten Bereich vor. Der Quantisierer-Prozessor 28 empfängt vorgespannte und nicht vorgespannte Vorhersagefehler-Werte von dem Vorhersagefehler-Prozessor 27. Diese Werte werden quantisiert und dem Multiplexer 32 zugeführt. Der Quantisierer-Prozessor 28 führt auch quantisierte Vorhersagefehler-Werte dem Prediktor 18 zu, die der Prediktor 18 zur Berechnung der Vorhersagedaten verwendet. Der Multiplexer 32 führt die Block-Parameter und die quantisierten Daten dem Speicher 14 unter Timing und Steuerung zu, was noch später erläutert wird. Die Block-Parameter stellen zusätzliche Daten dar, die im Speicher 14 innerhalb eines Parameter-Feldes gespeichert werden, das dem quantisierten Pixelblock zugeordnet ist. Das Parameter-Feld und die quantisierten Daten bilden zusammen ein Paket, das alle Informationen konsolidiert, die von dem Dequantisierer-Prozessor 36 benötigt werden, um Zugriff zu geeigneten Dequentisierungs-Tabellen zu nehmen und den Pixelblock zu rekonstruieren. Die Kodier-Steuereinheit 29 überwacht den Transfer der Block-Parameter und der komprimierten Daten ebenso wie die Auswahl von Quantisierungs-Tabellen für individuelle Pixelblöcke, was noch beschrieben wird.
  • Der erste Pixelprozessor 31 empfängt den Pixelblock von dem Eingang 10 und identifiziert einen vorbestimmten Referenz-Pixelwert. Der minimale, von dem MMRP 30 empfangene Block-Pixelwert erleichtert die Kompression des Referenz-Pixels unabhängig von anderen Blockpixeln. Das komprimierte Referenz-Pixel wird mit ausreichend Bits für den Dequantisierer 26 dargestellt, um seinen ursprünglichen Wert in einer verlustlosen oder nahezu verlustlosen Weise zu rekonstruieren. Der erste Pixelprozessor 31 führt den kompri mierten Referenz-Pixelwert als Block-Parameter dem Multiplexer 32 zu, der Block-Parameter, einschließlich des Referenz-Pixelwertes und der quantisierten Daten dem Speicher 14 zuführt. Der Dequantisierer 26 verwendet das Referenz-Pixel als Vorhersagewert für die quantisierten Blockpixel während der Pixel-Dekompression. Da der erste in dem Vorhersage-Netzwerk während der Dekompression verwendete Wert (der Referenz-Pixelwert) unabhängig ist, kann ein gegebener Pixelblock ohne Informationen von anderen Pixelblöcken dekomprimiert werden. Dieser Wert ist auch genau, was eine Ausbreitung des Vorhersagefehlers von den rekonstruierten Daten beseitigt.
  • Das Referenz-Pixel wird unter Verwendung des Pixelblock-Minimum-Wertes als Prediktor für die Ableitung des komprimierten Wertes verwendet. Der Minimum-Wert wird von dem Referenzwert subtrahiert und die Differenz durch zwei geteilt. Das Ergebnis wird im Speicher 14 mit einem Bit weniger gespeichert als für eine binäre Darstellung des Bereichs der Pixelwerte des Blocks notwendig ist. Der Bereich definiert die Zahl von Bits, die zur Speicherung des komprimierten Referenz-Pixelwertes verwendet wird, weil bei Verwendung von Block-Pixelwerten als Prediktoren für andere Werte in dem Pixelblock die Differenz zwischen allen Zwei-Block-Pixelwerten, wie den Referenz- und Minimum-Pixelwerten in die Domäne des Bereichs fällt. Die Domäne des Bereichs erstreckt sich von null bis zu dem Bereichswert minus eins (1). Der komprimierte Referenz-Wert verwendet ein Bit weniger als notwendig zur Darstellung des Bereichs, weil die Differenz durch zwei geteilt wird, was die Zahl von Bits vermindert, die für eine binäre Darstellung durch ein Bit erforderlich ist.
  • Der Quantisierer 20 und der Dequantisierer 26 nehmen jeweils Zugriff zu Quantisierungs- und Dequantisierungs-Tabellen, die für jedem Block optimiert werden. Die Quantisierungs- und Dequentisierungs-Tabellen enthalten Werte, die auf einem annähernden Bereich des Pixelblocks beruhen. Der Bereich ist die Differenz zwischen den maximalen und minimalen Pixelwerten für einen Block. Der Min–Max-Bereichs-Quantisierer 30 empfängt einen Eingangs-Datenblock und tastet ihn ab, um den Minimum-Pixelwert und den Maximum-Pixelwert zu bestimmen. Der Quantisierer 20 subtrahiert dann das Minimum von dem Maximum und fügt eins hinzu (max – min + 1), um den Bereich für den Pixelblock zu berechnen.
  • Der Quantisierer 20 vergleicht den berechneten Bereich mit einer Gruppe von vorbestimmten Bereichen, von denen wenigstens einer größer als oder gleich dem berechneten Bereich ist, wählt einen vorbestimmten Bereich aus und nimmt Zugriff zu Quantisierungs-Tabellen, die von dem ausgewählten vorbestimmten Bereich abgeleitet werden. Der vorbestimmte Bereich wird durch eine am besten angepasste Analyse ausgewählt, die den vorbestimmten Bereich identifiziert, der der kleinste Wert der Gruppe ist, der größer oder gleich dem aktuellen berechneten Bereich ist. Die Quantisierungs- und Dequantisierungs-Tabellen sind kundenspezifisch, um Werte innerhalb der Domäne des ausgewählten vorbestimmten Bereichs einzubeziehen und enthalten daher Werte des gesamten aktuellen Bereichs. Der Quantisierer 20 verwendet DPCM-Verarbeitung und erzeugt unterschiedliche Werte, die Vorhersagefehler sind. Diese Vorhersagefehler liegen in der Domäne des aktuellen Bereichs, wenn Pixelwerte, die dem Prediktor 18 zugeführt werden, von demselben Pixelblock kommen wie die Pixel, für die der Prediktor 18 gegenwärtig einen Vorhersagewert erzeugt. Der Kompressor 12 folgt diesem Parameter und hält diesen aufrecht. Der aktuelle Bereich ist oft beträchtlich kleiner als 256 (dem maximalen Wert eines 8-Bit-Pixelwertes), und die von diesem Bereich abgeleiteten Tabellenstufen erzeugen eine bessere Auflösung als die von 256 abgeleiteten Tabellenstufen, weil der ausgewählte vorbestimmte Bereich in seinem Wert allgemein dicht bei dem aktuellen Bereich liegt. Daher nimmt die Systemgenauigkeit und Wirksamkeit durch Anpassung der Tabellenstufen an den Bereich zu.
  • Um Eingangs-Blockdaten zu rekonstruieren, muss der Dequentisierer 26 wissen, welcher vorbestimmte Bereichs-Quantisierer 20 verwendet wird, um Zugriff zu der Quantisierungs-Tabelle zu nehmen, die bei der Quantisierung des Pixelblocks verwendet wird. Darstellungen des Bereichs und anderer Pixelblock-Parameter werden im Speicher 14 innerhalb eines Parameter-Feldes mit dem quantisierten Pixelblock gespeichert. Durch Speichern einer Block-Parameter-Darstellung im Speicher 14 zusammen mit dem quantisierten Pixelblock kann der Dekompressor 16 Zugriff zu der geeigneten Dequantisierungs-Tabelle nehmen und den Pixelblock wirksam und genau rekonstruieren. Andere in dem Parameter-Feld enthaltene Pixelblock-Parameter können zum Beispiel der minimale Pixelblock-Wert oder ein Referenz-Pixelblock-Wert sein. 3 veranschaulicht eine mögliche Konfiguration eines Parameter-Feldes und komprimierte Daten. Das Parameter-Feld besteht aus jenen Block-Parametern, die in dem gestrichelten Kasten in 3 enthalten sind. Bei diesem Ausführungsbeispiel ist ein Parameter-Feld als Header eines Datenpakets angeordnet, das komprimierte Nutzdaten enthält.
  • Um die Verminderung des Vollbildspeichers ohne beträchtliche Verschlechterung des angezeigten Bildes zu maximieren, werden die zusätzlichen Informationen, die durch die Block-Parameter in dem Parameter-Feld dargestellt werden, im Speicher 14 gespeichert. Jedes verwendete Bit zur Speicherung des Parameter-Feldes vermindert die Verfügbarkeit des Speichers zum Speichern quantisierter Pixel. Daher wird die Zahl von Bits, die zur Speicherung von zwei Block-Parametern, nämlich dem Bereichs- und Minimum-Wert, von 8 Bits auf 3 Bits für jeden Parameter in den meisten Fällen vermindert. Dieser Prozess arbeitet wie folgt.
  • Der aktuelle Bereich wird mit einer Gruppe von vorbestimmten Bereichen verglichen, um eine beste Anpassung zu bestimmen. Der vorbestimmte Bereich erhält den Wert, der verwendet wird, um den Bereich für den Pixelblock darzustellen, der dann verarbeitet wird. Der vorbestimmte Bereich ist größer als der aktuelle Bereich, um zu gewährleisten, dass alle Pixelwerte innerhalb des Blocks dargestellt werden. Die Gruppe von vorbestimmten Bereichen enthält sieben Werte, nämlich 16, 32, 64, 96, 128, 192 und 256. Da die Gruppe für beide Quantisierer 20 und 26 verfügbar ist, kann der vorbestimmte Bereich in dem Parameter-Feld durch einen Index-Wert dargestellt werden. Der Index erfordert nur drei Bits für eine binäre Darstellung, weil es nur sieben vorbestimmte Bereiche für die Darstellung gibt.
  • Das System handhabt den minimalen Pixelwert in gleicher Weise. Für fünf der sieben vorbestimmten Bereiche nimmt das System Zugriff zu einer vorbestimmten Gruppe von acht minimalen Pixelwerten, die für den ausgewählten vorbestimmten Bereich eindeutig sind. Der Quantisierer 20 ver gleiche den aktuellen Minimum-Pixelwert mit der vorbestimmten Gruppe und wählt den größten vorbestimmten Minimum-Wert aus, der kleiner als oder gleich dem aktuellen Minimum-Wert ist. Das vorbestimmte Minimum wird dann der Wert, der zur Darstellung des minimalen Pixels für den verarbeiteten Pixelblock verwendet wird. Die Gruppe ist sowohl für den Quantisierer 20 als auch für den Dequentisierer 26 verfügbar, so dass das vorbestimmte Minimum in dem Parameter-Feld durch einen Index-Symbolwert dargestellt werden kann. Dieses Index-Symbol erfordert auch drei Bits für eine binäre Darstellung, weil es für die Darstellung nur acht vorbestimmte Minimum-Pixelwerte gibt.
  • Die Gruppe von acht vorbestimmten Minimum-Pixelwerten für fünf der sieben Bereiche wird durch die nachfolgende Gleichung (1) definiert. Die Gleichung sieht einen konstanten linearen Schritt für jedes Bereichs-Minimum beginnend mit null vor. Qmin(Rs, i) = INT{i((256 – Rs)/7)}; 0 <= i <= 7 (1)
  • In dieser Gleichung ist i der Index-Symbolwert, der durch drei Bits in dem zusätzlichen Parameter-Feld dargestellt wird. INT{f(x)} zeigt an, dass nur der ganzzahlige Teil des resultierenden Wertes verwendet wird. Die fünf Bereiche, auf die die Gleichung (1) zutrifft, sind 32, 64, 96, 128 und 192. Der Ausdruck f(x) in den Klammern stellt jeden Ausdruck dar, wie den in der Gleichung (1), auf den die Funktion INT einwirkt. Für den vorbestimmten Bereich von 16 wird der ursprüngliche 8-Bit-Minimum-Wert verwendet. Für den vorbestimmten Bereich von 256 wird kein Minimum-Wert gespeichert, weil der Minimum-Wert für 256 null (0) für ein 8-Bit-Wort ist.
  • Die nachfolgende Gleichung (2) wählt den vorbestimmten minimalen Pixelwert aus der Gruppe aus, die für den aktuellen Minimum-Pixelblock-Wert ersetzt wird. MAXi{f(x)} gibt an, dass der maximale Wert von i, der die Bedingung innerhalb der Klammern erfüllt und zur Erzeugung von Qmin verwendet werden soll. QminMAXi{Qmin(Rs, i)|Qmin(Rs, i) <= Xmin; 0 <= i <= 7} (2)
  • Die Gleichung (2) kann einen vorbestimmten Bereich auswählen, der nicht ausreicht, um die aktuellen Pixelblockwerte abzudecken, wenn der quantisierte Pixelblock rekonstruiert wird, weil vorbestimmte Minimum-Werte kleiner als der aktuelle Minimum-Wert sind. Wenn zum Beispiel in einem gegebenen Pixelblock der minimale Pixelwert 100 und der maximale Pixelwert 140 ist, dann ist der ausgewählten vorbestimmte Bereich 64. Der ausgewählte vorbestimmte Minimum-Pixelwert, der sich aus der Gleichung (1) ergibt, ist 82. Das Ergebnis der Addition des ausgewählten Minimums zu dem ausgewählten Bereich ist 146, was größer ist als der aktuelle maximale Pixelwert. Daher werden alle Werte des Pixelblocks durch die ausgewählten vorbestimmten Werte dargestellt. Wenn jedoch der maximale Pixelblock-Wert statt dessen 160 ist, bleiben die ausgewählten vorbestimmten Werte gleich, stellen aber nicht vollständig die Domäne des Pixelblocks dar. In diesem Fall wird der nächst höhere vorbestimmte Bereich von 96 ausgewählt, und ein neuer ausgewählter vorbestimmter Minimum-Wert ist 91. Die Summierung von 91 und dem vorbestimmten Bereich von 96 ist 187, was größer ist als der aktuelle Maximum-Pixelblockwert von 160. Daher liefern die Quantisierungs- und Dequantisierungs-Tabellen, die von diesem Bereich ausgewählt werden, Stufen für alle Pixel in dem Block. Der Quantisierer 28 führt die oben beschriebene Analyse durch, um zu bestimmen, ob die erste Wahl von einem vorbestimmten Bereich und von Minimum-Pixelwerten gültig ist. Falls dies nicht der Fall ist, wählt der Quantisierer 28 den nächst größeren vorbestimmten Bereich aus und wählt einen neuen Minimum-Pixelwert aus.
  • Wenn, wie zuvor festgestellt wurde, das Vorhersage-Netzwerk seine vorhergesagten Werte aus Pixelwerten innerhalb desselben Blocks auswählt, dann liegt die Differenz (E) zwischen einem aktuellen Pixelwert und dem vorhergesagten Pixelwert innerhalb der folgenden Grenzen: –Bereich < E < Bereich (3),worin Bereich = Xmax – Xmin + 1 (4)
  • In der Gleichung (3) ist E der Vorhersagefehler. In der Gleichung (4) sind Xmax und Xmin die Maximum- bzw. Minimum-Block-Pixelwerte. Daher definiert der Bereich von Pixeldaten aus dem Block die Werte, die Quantisierung- und Dequantisierungs-Tabellen empfangen, und die Grenzen, für die Tabellen für den besonderen Block vorgesehen werden müssen. Wenn der Bereich kleiner als der Maximum-Wert der Wortgröße (256 für ein 8-Bit-Wort) ist, dann kann die Auflösung der Quantisierungs- und Dequantisierungs-Tabellen erhöht werden.
  • Die Quantisierungs- und Dequantisierungs-Tabellen, die die Prinzipien der vorliegenden Erfindung verwenden, haben die doppelte Auflösung von Tabellen, die nur für den Bereich des Pixelblocks bemessen sind. Die Auflösung ist doppelt, weil die Tabellen nur die Werte von null bis zu dem posititen Bereichswert abdecken müssen und nicht alle anderen Werte zwischen dem negativen und positiven Bereich. 6B und 6C zeigen 3-Bit- bzw. 4-Bit-Tabellen für den vorbestimmten Bereich von 64. Vor der Quantisierung bestimmt der Vorhersagefehler-Prozessor 27 (2), ob der Vorhersagefehler von der Kombinationsschaltung 22 positiv oder negativ ist. Wenn der Wert positiv ist, verläuft er unverändert zum Quantisierungs-Mapper 28. Wenn der Wert negativ ist, addiert der Vorhersagefehler-Prozessor 27 den Bereich zu dem negativen Vorhersage-Fehlerwert, bevor der Wert dem Quantisierungs-Mapper 28 zugeführt wird. Da ein negativer Vorhersagefehler-Wert innerhalb der Domäne des negativen Bereichswertes ist, führt die Hinzufügung des positiven Bereichswertes zu dem negativen Vorhersagefehler-Wert zu einem vorgespannten Fehlerwert. Dieser vorgespannte Fehlerwert ist positiv (größer als null) und ist kleiner als der positive Bereichswert. Der Quantisierungs-Mapper 28 empfängt sowohl die vorgespannten als auch die nicht vorgespannten Vorhersage-Fehlerwerte und quantisiert sie mit einer Quantisierungs-Tabelle, die an die Domäne des positiven vorbestimmten Bereichs angepasst ist. Quantisierte Fehlerwerte werdem dem Multiplexer 32 zugeführt und dann im Speicher 14 unter der Steuerung einer System-Steuereinheit (nicht dargestellt) zugeführt.
  • Da eine die Prinzipien der vorliegenden Erfindung verwendende Quantisierungs-Tabelle nur Werte von null bis zu dem Bereich –1 anstelle von dem negativen Bereichswert zu dem positiven Bereichswert quantisiert, wird die Auflösung der Tabelle verdoppelt. Wenn zum Beispiel der vorherbestimmte Bereich von Pixelwerten für einen gegebenen Block 64 ist, und wenn es 14 Quantisierungs/Dequantisierungs-Stufen in einer Tabelle gibt, haben Tabellen, die nicht die Prinzipien der Erfindung verwenden, eine Durchschnitts-Schrittgröße von 9,2 (aufgerundet auf die nächsten zehn) zwischen jeder Stufe ((64 × 2)/14). Dieselben gemäß den Prin zipien der vorliegenden Erfindung aufgebauten Tabellen haben eine doppelte Durchschnitts-Auflösung durch Vermindern der Schrittgröße auf 4,6 (ebenfalls abgerundet) zwischen den 14 Stufen (64/14) für denselben vorbestimmten Bereich.
  • Die in 6B dargestellte Tabelle hat 14 mögliche Quantisierungs-Stufen, verglichen mit einem Maximum von 16 möglichen Stufen in einer typischen 4-Bit-Tabelle (24). Die Zahl von möglichen Stufen ist vermindert, weil zwei der Symbole (000 und 001) nur drei Bits enthalten. Die 3-Bit-Code-Wort-Symbole werden innerhalb der 14-Stufen-Tabelle so platziert, dass auf sie häufig Zugriff genommen werden kann, was eine beträchtliche Verminderung an Bandbreite und Speichererfordernissen bringt, die den Verlust in der Datenauflösung an Gewicht übertrifft. In einer Quantisierungs-Tabelle mit N Stufen (z. B. 14 Stufen), in der jede Stufe ein zugeordnetes Ausgangssymbol von überwiegend M Bits hat (z. B. 4 Bits), ist wenigstens eine Stufe (z. B. die Stufen 1 und 13) häufig auftretenden Eingangswerten und einem entsprechenden eindeutigen Code-Wort-Symbol zugeordnet, das weniger als M Bits hat (z. B. 3 Bits).
  • Ein Dekompressions-Netzwerk muss die 3-Bit- und 4-Bit-Symbole identifizieren, wenn die Daten für die Dekompression wiedergewonnen werden. Dies wird durch Reservieren des Bit-Schemas des 3-Bit-Symbols erleichtert. Zum Beispiel haben in 6B nur die 3-Bit kurzen Symbole die Schemata „000" und „001". Die drei Bits aller kurzen Symbole werden so reserviert, dass immer beim Auftreten eines der Bit-Schemata in vorbestimmten Bit-Positionen das Netzwerk das 3-Bit-Symbol identifiziert und nicht ein viertes Bit verarbeitet, wenn der 8-Bit-Datenwert dequantisiert und rekonstruiert wird. Für alle Vier-Bit-Schemata kommt jedes ge wählte 3-Bit-Schema zweimal vor. Nur eines dieser Vorkommen stellt eine Quantisierungs-Stufe in einer Tabelle dar, weil das Netzwerk nur eine Stufe für das 3-Bit-Symbol ohne andere Informationen erkennen kann. Jedes 3-Bit-Schema kann im Fall einer 4-Bit-Tabelle verwendet werden, und nur das 3-Bit-Symbol kann das reservierte Schema haben.
  • Wenn ein Entwickler bei einem gegebenen System, in dem die Tabellen verwendet werden, bestimmt, dass es wirksamer ist, ein 3-Bit-Symbol anstelle von zwei in einer überwiegend 4-Bit-Tabelle zu verwenden, dann können die Quantisierungs- und Dequantisierungs-Tabellen mit 15 oder weniger Stufen bemessen werden.
  • Die ein oder mehr 3-Bit-Symbole werden so positioniert, dass die Chancen der Symbole, häufig auftretenden Eingangsdaten-Werten während der Quantisierung zugeordnet zu werden, optimiert werden. Daher muss ein bestimmtes System im voraus so bewertet werden, dass statistisch identifiziert wird, wo die kurzen 3-Bit-Symbole platziert werden. Die Auflösung der Stufe(n), die durch 3-Bit-Symbole dargestellt werden sollen, kann so eingestellt werden, dass die Verwendung der 3-Bit-Symbole optimiert wird. In 6B werden die 3-Bit-Symbole um null herum platziert, wo das Auftreten des Vorhersagefehlers für dieses System am wahrscheinlichsten ist, wenn das Vorspannen einmal aus der Tabelle herausgefallen ist. Dies bedeutet, dass negative Eingangs-Vorhersage-Fehlerwerte mit einem kleinen absoluten Wert vorgespannt werden und in die Quantisierungs-Tabelle als eine große Zahl relativ zu der Domäne der Tabelle eingegeben werden. Die Index-Stufe 1 ist die Stufe für Eingangswerte auf der positiven Seite des Vorhersagefehlers null. Die Index-Stufe 13 ist die Stufe für Eingangswerte auf der negativen Seite des Vorhersagefehlers null mit hinzugefügter Vorspannung. Bei Dequantisierung und Rekonstruktion wird der Vorspannungswert aus geeigneten Rekonstruktionswerten der Stufe 13 entfernt. Die Platzierung von zwei kurzen Symbolen („000" und „001") auf beiden Seiten der Stufe null hält die Symmetrie aufrecht und vermindert Bandbreiten- und Speichererfordernisse im Vergleich zum Platzieren eines kurzen Symbols bei der Stufe null. Die Stufe 1 und die Stufe 13 haben jeweils eine Auflösung von 3 (von 4 bis 1 für die Stufe 1), weil die Platzierung der Tabellen-Stufe und die Stufen-Auflösung für statistisches Auftreten optimiert werden. Wiederum hängt je nach Typ des verwendeten Kompressions-Netzwerks die Platzierung der 3-Bit-Symbole von dem statistischen Auftreten von Datenwerten ab, die die Quantisierungs- und Dequantisierungs-Tabellen empfangen. Die statistisch optimale Platzierung kann bei verschiedenen System-Typen schwanken, ohne dass die Verwendung von kurzen Code-Wort-Symbolen beeinträchtigt wird.
  • 4 ist ein Blockschaltbild des Dequantisierers 26 von 1. Unter Steuerung eines System-Mikroprozessors empfängt der Demultiplexer 34 ein Datenpaket, das ein Parameter-Feld in einem Header und quantisierte Daten in einem Nutzdatenabschnitt des Pakets enthält. Der Demultiplexer 34 sendet den minimalen Pixelwert-Index und den vorbestimmten Bereichs-Index an den Min–Max-Bereichs-Dekodierer (MMRD) 38. Der Demultiplexer 34 führt den komprimierten ersten Pixelwert dem ersten Pixel-Dekodierer 37 zu, der auch die vorbestimmten rekonstruierten Bereichs- und Minimum-Pixelwerte vom MMRD 38 empfängt. Der erste Pixel-Dekodierer 37 verwendet diese drei Werte, um das Bezugs-Pixel zu rekonstruieren und führt es dem Prediktor 24 zu. Bei Dequantisierung führt der Demultiplexer 34 die quantisierten Wer te dem Dequantisierer-Mapper 36 zu, der die Vorhersage-Fehlerwerte dequantisiert und sie der Addierschaltung 39 zuleitet. Die Addierschaltung 39 addiert den vorhergesagten Wert zu dem dequentisierten Fehlerwert und führt das Ergebnis dem Vorhersagefehler-Prozessor 35 zu, der das Ergebnis mit dem rekonstruierten Maximum-Pixelblock-Wert vergleicht. Wenn der Fehlerwert vor der Quantisierung vorgespannt wurde, ist das Ergebnis größer als der rekonstruierte maximale Pixelwert. Ist dies nicht der Fall, ist das Ergebnis kleiner als oder gleich dem rekonstruierten Maximum-Pixelwert. Wenn der Vorhersagefehler-Prozessor 35 bestimmt, dass der Fehlerwert vorgespannt war, wird der vorbestimmte Bereichswert von dem Ergebnis subtrahiert, wodurch die auf der Quantisierungsseite des Prozesses eingeführte Vorspannung korrigiert wird. Der Pixelfehler-Prozessor 35 und der erste Pixel-Prozessor 37 führen die rekonstruierten Daten einschließlich des Bezugs-Pixels in richtiger Reihenfolge einem Ausgangs-Netzwerk zu (z. B. einem nicht dargestellten Anzeige-Prozessor).
  • Die für den Dequantisierer 26 verfügbaren Werte sind quantisierte und/oder kodierte Werte. Der rekonstruierte quantisierte Minimum-Pixelwert muss kleiner als oder gleich dem aktuellen Minimum-Pixelwert sein, und der rekonstruierte quantisierte Maximum-Pixelwert und der rekonstruierte quantisierte Bereichswert müssen größer als oder gleich ihren aktuellen Werten sein. MMRP 30 gewährleistet, dass diese Erfordernisse erfüllt werden, wie zuvor erläutert wurde.
  • Die folgenden Gleichungen (5) bis (12) veranschaulichen, dass ein vorgespannter Fehlerwert größer als der rekonstruierte quantisierte Maximum-Block-Pixelwert ist, wodurch eine richtige Identifizierung und Korrektur von vor gespannten Daten während der Rekonstruktion erlaubt wird. Die Gleichungen (6) bis (11) sollen helfen, die Ableitung von Gleichung (12) zu verstehen. In den Gleichungen ist Qmin der quantisierte Minimum-Block-Pixelwert, und Qmax ist der quantisierte Maximum-Block-Pixelwert. X ist irgendein Pixelwert aus einem gegebenen Pixelblock, und P ist der vorhergesagte Pixelwert von X. E ist der Fehlerwert oder die aktuelle Differenz zwischen X und P; E kann eine positive oder negative Zahl sein. Q(E) ist der quantisierte Wert von E, und er ist das Ergebnis der Addition von E und dem Quantisierungs-Rauschen Nq; Nq kann eine positive oder negative Zahl sein. Xr ist der rekonstruierte Pixelwert von X, und Rq ist der am besten angepasste vorbestimmte Bereich. Es seien die folgenden Beziehungen betrachtet Qmax = Qmin + Rq – 1 (5) E = X – P (6) Q(E) = E + Nq (7) Qmin <= X <= Qmax (8)
  • Für irgendeinen positiven Wert von E existieren die folgenden Beziehungen Xr = Q(E) + P = E + Nq + P = X – P + Nq + P (9) Xr = X + Nq (10)
  • Gleichung (9) stellt die Werte dar, die der Dekompressor 16 verwendet, um irgendeinen Pixelwert zu rekonstruieren. Die Gleichung (10) vereinfacht die Gleichung (9) auf Werte, die für den Kompressor 12 verfügbar sind. Für irgendeinen negativen Wert von E existiert das Folgende Xr = Q(E + Rq) + P = E + Rq + Nq + P = X – P + Rq + Nq + P (11) Xr = X + Rq + Nq (12)
  • Die Gleichung (11) stellt die Werte dar, die der Dekompressor 16 verwendet, um irgendeinen Pixelwert zu rekonstruieren. Die Gleichung (12) vereinfacht die Gleichung (11) auf Werte, die für den Kompressor 12 verfügbar sind. Um die Diskussion zu vereinfachen, sei Nq in der Gleichung (12) gleich null. Da X größer als oder gleich Qmin sein muss (Gleichung 8), und die Beziehung von Gleichung (5) gegeben ist, die Qmax definiert, führt das Addieren des vorbestimmten Bereichs zu irgendeinem Pixelwert zu einem Wert, der um wenigstens eins größer als Qmax ist.
  • Die Ausführung der vorliegenden Erfindung muss die Ergebnisse von Gleichung (10) und Gleichung (12) berücksichtigen, wenn Nq nicht null ist. Wenn Nq positiv ist, kann das Ergebnis von Gleichung (10) größer als Qmax sein, und der Vorhersagefehler-Prozessor 35 kann einen vorgespannten Vorhersagefehler falsch identifizieren. Wenn Nq negativ ist, kann in gleicher Weise das Ergebnis von Gleichung (12) kleiner sein als Qmax, und der Vorhersagefehler-Prozessor 35 kann einen nicht vorgespannten Vorhersagefehler falsch identifizieren.
  • 5A veranschaulicht, wie der Quantisierer-Mapper 28 sicherstellt, dass sein Ausgang aufgrund von Quantisierungs-Rauschen nicht falsch interpretiert wird. Der Quantisierer 80 liefert drei Ausgangswerte für jeden quantisierten Pixelwert. Die drei Werte sind die beste Rekonstruktions-Stufe für den Entscheidungspunkt (I) der Quantisierungs-Tabelle und die Rekonstruktions-Stufe auf beiden Seiten der richtigen Stufe (I + 1, I – 1). Wenn die erste oder letzte Stufe in einer Quantisierungs-Tabelle die beste ist, wird nur die nächst größere oder kleinere Quantisierungs-Stufe mit der besten Stufe vorgesehen. Dann berechnet die Kombinationsschaltung 84 den rekonstruierten Pixelwert (Gleichung (10) oder Gleichung (12)) für den besten Rekonstruktionswert und vergleicht das Ergebnis mit Qmax durch die Kombinationsschaltung 86. Wenn der Vorhersagefehler vorgespannt war (S2 ist negativ) und das Ergebnis von der Kombinationsschaltung 86 kleiner als Qmax ist (S1 ist negativ), dann ist es möglich, dass bei Rekonstruktion der Vorhersagefehler-Prozessor 35 falsch bestimmt, dass der dequantisierte Vorhersagefehler-Wert nicht vorgespannt war. Um dieses Problem zu verhindern, wird das Code-Wort, das der nächst größeren Rekonstruktions-Stufe für den Vorhersagefehler entspricht, dem Multiplexer 32 zugeführt. Wenn der Vorhersagefehler nicht vorgespannt war (S2 ist positiv) und das Ergebnis von der Kombinationsschaltung 86 größer ist als Qmax (S1 ist positiv), dann ist es möglich, dass bei Rekonstruktion der Vorhersagefehler-Prozessor 35 falsch bestimmt, dass der dequantisierte Vorhersagefehler-Wert vorgespannt war. Um dieses Problem zu verhindern, wird das Code-Wort, das der nächst kleineren Rekonstruktions-Stufe für den Vorhersagefehler entspricht, dem Multiplexer 32 zugeführt. 5B zeigt eine Wahrheits-Tabelle, die die Ausgänge des Quantisierers 80 veranschaulicht, die am Ausgang des Quantisierungs-Mappers 28 verfügbar sind, wie von der Einheit 82 als Reaktion auf die Signale ±S1 und ±S2 ausgewählt.
  • 6A unterstützt die Erklärung, warum die Auswahl des nächst größeren oder kleineren Rekonstruktionspegels das Problem korrigiert, das auftritt, wenn Quantisierungs-Rauschen bewirkt, dass die rekonstruierte Stufe ein fal sches Ergebnis ergibt, wenn bestimmt wird, ob der quantisierte Vorhersagefehler vorgespannt ist. „I" bezieht sich auf den Index-Wert der Tabellen. Jeder Vorhersagefehler-Wert, der kleiner als oder gleich dem Entscheidungspunkt I, aber größer als der Entscheidungspunkt I – 1 ist, wird quantisiert und dann zum Wert R rekonstruiert. Wie man aus den 3- und 4-Bit-Quantisierungs-Tabellen in 6B bzw. 6C sieht, können Vorhersagefehler-Werte, die in die Tabelle und innerhalb irgendeines Entscheidungspunktes I eingegeben werden, beide größer als oder gleich oder kleiner als der Vorhersagefehler-Rekonstruktions-Stufen-Wert R sein. Zum Beispiel akzeptiert in 6 die Index-Stufe 7 Eingangswerte von 36 bis 28 einschließlich, wie durch den Entscheidungspunkt-Wert 36 für die Stufe 7 und den Entscheidungspunkt-Wert 27 der Stufe 6 definiert. Jeder Eingangswert innerhalb dieses Bereiches wird auf den Rekonstruktions-Stufen-Wert von 32 dequentisiert. Wenn der Eingangswert 34 ist, dann ist der Quantisierungsfehler –2; wenn der Eingangswert 32 ist, dann ist der Quantisierungsfehler null; und wenn der Eingangswert 29 ist, dann ist der Quantisierungsfehler 3. Wie früher festgestellt wurde, werden diese Fehler als Quantisierungs-Rauschen definiert. Ein negativer Quantisierungs-Rauschwert entspricht –E in 6A. Ein positiver Quantisierungs-Rauschwert entspricht +E in 6A. Wenn die Vorhersagefehler-Rekonstruktions-Stufe nicht gleich dem aktuellen Vorhersagefehler ist, ist die Differenz das Quantisierungs-Rauschen, das positiv oder negativ ist. Wenn der Quantisierer-Mapper 28 bestimmt, dass bei Rekonstruktion Quantisierungs-Rauschen eine falsche Analyse bewirkt, ob der Vorhersagefehler vorgespannt ist, korrigiert die Wahl der Stufe auf der anderen Seite der Polarität des Quantisierungs-Rauschens das Problem. Wenn bei Fortsetzung des obigen Beispiels der Rekonstruktions- Stufen-Wert 32 bewirkt, dass –E = –2 ist und eine falsche Analyse bewirkt, wird der I + 1-Rekonstruktions-Stufen-Wert gewählt, der einen Quantisierungs-Rauschwert hat, der gleich ++E ist, was gewährleistet, dass die Vorspannung richtig erkannt und verarbeitet wird. Da es das Quantisierungs-Rauschen ist, das bewirken kann, dass die Analyse der Vorspannungs-Korrektur falsch ist, beeinflusst die Wahl eines Wertes von Quantisierungs-Rauschen mit einem entgegengesetzten Vorzeichen nicht die Beziehung zwischen Qmax und dem rekonstruierten Pixelwert.
  • Da der absolute Wert von Nq im allgemeinen nicht groß ist, wählt der Quantisierer 80 normalerweise die beste Quantisierungs-Stufe. Wenn der Quantisierer 80 die nächst größere oder kleinere Stufe wählt, induziert die Wahl einen zusätzlichen Fehler in das rekonstruierte Pixel. Dieser Fehler wird jedoch durch Auswahl der am nächsten liegenden Stufe minimiert, die das Problem in einer Tabelle mit einer Auflösung, die viel besser als die bekannten DPCM-Quantisierungs-Tabellen ist, korrigiert. Im allgemeinen bewirkt diese Korrektur keine merkliche Verschlechterung der Qualität des angezeigten Bildes.
  • Die Quantisierungs-Auflösung wird oft durch mehr als den Faktor zwei erhöht, was von der Vorspannung von negativen Vorhersagefehlern herrührt. Die Auswahl eines vorbestimmten Bereichs führt auch zu einer erhöhten Quantisierungs-Auflösung.
  • Wenn zum Beispiel für einen gegebenen Pixelblock der ausgewählte vorbestimmte Bereich 16 ist, dann quantisiert eine 4-Bit, 16-Stufen-Tabelle (nicht dargestellt) genau die Vorhersagefehler-Werte. Für 8-Bit-Pixelwerte nimmt die Auflösung um einen Faktor von 16 aus einer Quantisierungs- Tabelle zu, die Eingangswerte für den Bereich von 256 akzeptiert gegenüber einer Quantisierungs-Tabelle, die Eingangswerte für den Bereich von 16 (256/16) akzeptiert. Da nur positive Werte in der Quantisierungs/Dequentisierungs-Tabelle für denselben positiven Bereichswert benötigt werden, nimmt die Auflösung um einen weiteren Faktor von 2 auf einen Gesamt-Faktor von 32 zu. Dieser Prozess kann dazu verwendet werden, die Erhöhung der Auflösung für die Quantisierungs/Dequantisierungs-Tabelle zu berechnen, die von irgendeinem der vorbestimmten Bereichswerte abgeleitet wird.
  • 7 ist ein Flussdiagramm, das den Aufbau einer Quantisierungs-Tabelle und von Verarbeitungsdaten veranschaulicht, wobei die Quantisierungs-Tabelle den Prinzipien der vorliegenden Erfindung entspricht. Beim Schritt 100 wird eine bekannte Quantisierungs-Tabelle mit N Stufen aufgebaut, die sowohl positive als auch negative Eingangswerte akzeptiert. Bei diesem Beispiel sind die Eingangswerte DPCM Vorhersagefehler-Werte, und die positiven und negativen Eingangswerte sind daher symmetrisch zu null. Beim Schritt 102 wird der Mittenpunkt der Tabelle bestimmt, in diesem Fall null. Alle N Stufen werden beim Schritt 104 von dem Mittenpunkt dem Maximum-Vorhersagefehler-Wert zugeordnet. Die resultierende Quantisierungs-Tabelle hat die doppelte Auflösung der Anfangs-Tabelle. Die Auflösung jedes Quantisierungs-Pegels kann gemäß dem statistischen Auftreten der Eingangswerte eingestellt werden.
  • Beim Schritt 106 werden Eingangswerte, die kleiner als der Mittenpunkt-Wert sind, einem Vorspannungswert hinzugefügt. Für DPDM-Vorhersagefehler-Werte kann der Vorspannungswert der Bereich eines zugeordneten Datenblocks sein. Bei den Schritten 108 und 110 werden die vorgespannten und nicht vorgespannten Eingangswerte mit der eine hohe Auflösung aufweisenden Quantisierungs-Tabelle komprimiert. Der Schritt 112 gibt alle komprimierten Daten aus, wenn sie quantisiert sind. Schritt 114 dekomprimiert die komprimierten Daten mit der die hohe Auflösung aufweisenden Tabelle, um dekomprimierte Ausgangswerte zu erzeugen. Der Schritt 116 fügt allen dekomprimierten Ausgangswerten den Vorspannungswert hinzu. Schritt 118 vergleicht das Ergebnis für jeden Ausgangswert mit einem Schwellenwert. Dieser Wert kann der Maximum-Eingangsdaten-Wert für den zugeordneten Datenblock sein. Wenn das Ergebnis größer als der Schwellenwert ist, dann enthält der dekomprimierte Ausgangswert eine Vorspannung, und der Vorspannungswert wird im Schritt 120 subtrahiert, und der rekonstruierte Wert wird beim Schritt 122 an ein Ausgangs-Netzwerk ausgegeben. Wenn im Schritt 118 das Ergebnis nicht größer als der Schwellenwert ist, dann enthält der dekomprimierte Ausgangswert keine Vorspannung, und das Ergebnis ist der rekonstruierte Wert, der im Schritt 122 an das Ausgangs-Netzwerk ausgegeben wird.
  • Unter erneuter Bezugnahme auf 1 speichert der Speicher 14 den quantisierten Pixelblock und das Parameterfeld, bis sie nicht länger für die Pixel-Rekonstruktion und -Anzeige benötigt werden. Während der Zeit, in der die Daten im Speicher 14 bleiben, kann auf sie Zugriff genommen werden, und sie können durch einen nachfolgenden Anzeige-Prozessor über den Dekompressor 16 unter der Steuerung eines Mikroprozessors und Verwendung von einem gemeinsamen Datenbus dekodiert werden. Der Kompressor 12 und der Dekompressor 16 befinden sich in einer gemeinsamen integrierten Schaltung und sind gleich in Bemessung und Aufbau, um die integrierte Schaltung zu vereinfachen. Der Speicher 14 befindet sich vorteilhafterweise außerhalb der integrierten Schaltung, wodurch erlaubt wird, dass die Größe des Speichers 14 so ausgewählt wird, wie es nötig ist, um die Signalverarbeitungs-Erfordernisse eines bestimmten Systems zu erfüllen. Dies führt zur Einsparung der Herstellungskosten, z. B. im Fall eines preiswerten Verbraucher-Fernsehempfängers unter Verwendung einer Anzeige mit verminderter Auflösung, die weniger Vollbildspeicherung für den MPEG-Dekodierer erfordert. Auch ist der eingesparte Speicherbereich üblicherweise für andere System-Komponenten verwendbar, was die Fähigkeiten des Gesamtsystems erhöht.
  • 8 zeigt Teile eines praktischen digitalen Signalverarbeitungssystems in einem Fernsehempfänger, der eine oben beschriebene erfindungsgemäße Vorrichtung enthält. Das digitale Fernsehempfängersystem von 8 ist vereinfacht, um die Zeichnung nicht mit übermäßigen Einzelheiten zu belasten. Zum Beispiel sind Erst-ein-erst-Aus-FIFO-Eingangs- und -Ausgangspuffer, die verschiedenen Elementen zugeordnet sind, Lese/Schreib-Steuerung, Taktgenerator-Netzwerke und Steuersignale zum Anschließen an externe Speicher, die vom erweiterten Daten-Aus-Typ (EDO), vom synchronen Typ (SDRAM), vom Rambus-DRAM-Typ (RDRAM) oder irgendeinem anderen Typ von RAM sein können, nicht dargestellt.
  • Gemeinsame Elemente in 1 und 8 haben dieselben Bezugsziffern. Elemente im Signalprozessor 72 mit Ausnahme der Einheit 70 entsprechen Elementen, die man in der integrierten Video-Dekodierer-Schaltung STi 3500A MPEG-2-CCIR 600 findet, die im Handel von SGS-Thomson Microelectronics erhältlich ist.
  • Kurz gesagt enthält das System von 8 einen Mikroprozessor 40, eine Bus-Schnittstellen-Einheit 42 und eine Steuerschaltung 44, die mit einem internen Steuerbus 46 verbunden ist. Bei diesem Beispiel befindet sich der Mikroprozessor 40 außerhalb der integrierten Schaltung, die den MPEG-Dekodierer 72 enthält. Ein 192 Bit umfassender interner Speicherbus 48 ist eine Zuleitung für Daten zu und von dem Kompressor 12, gleichen Dekompressoren 16 und 50 und einem externen Vollbildspeicher 14. Die Einheiten 12, 16 und 50 empfangen Kompressions- und Dekompressions-Faktor-Steuersignale von dem Mikroprozessor 40 über die Steuerschaltung 44 zusammen mit Auslöse-Steuersignalen. Auch enthalten ist eine lokale Speicher-Steuereinheit 52, die Anforderungs-Eingänge empfängt und Bestätigungs-Ausgänge sowie Speicher-Adressen-Ausgänge, Lese-Auslöse- und Schreib-Auslöse-Ausgänge erzeugt. Die Speicher-Steuereinheit 52 erzeugt Echtzeit-Adressen- und Steuersignale zur Steuerung des Speichers 14. Die Speicher-Steuereinheit 52 liefert auch Ausgangs-Taktsignale Clock Out als Reaktion auf Eingangs-Taktsignale Clock In von einem lokalen Taktgenerator (nicht dargestellt). Der Mikroprozessor 40 unterteilt den Speicher 14 in Bit-Puffer, Video-Vollbildspeicher-Abschnitte und Vollbildspeicher-Puffer für MPEG-Dekodierung und Anzeigeverarbeitung sowie On-Screen-Anzeige-Maps.
  • Der Anzeigeprozessor 54 enthält horizontale und vertikale Wieder-Abtastfilter, die benötigt werden, um ein dekomprimiertes Bildformat in ein vorbestimmtes allgemeines Format für die Anzeige durch eine bilderzeugende Anzeigevorrichtung 56 umzuwandeln. Das System kann zum Beispiel Bildsequenzen empfangen und dekodieren, die Formaten wie 525 Zeilen mit Zeilensprung, 1125 Zeilen mit Zeilensprung oder 720 Zeilen mit progressiver Abtastung entsprechen. Ein Fernsehempfänger wird wahrscheinlich ein gemeinsames Anzeige-Format für alle Empfänger-Formate verwenden.
  • Externe Schnittstellen-Netzwerke 58 übermitteln Steuer- und Konfigurations-Informationen zwischen dem MPEG-Dekodierer und dem externen Mikroprozessor 40 zusätzlich zu komprimierten Eingangs-Videodaten für die Verarbeitung durch den MPEG-Dekodierer. Das MPEG-Dekodierersystem ist einem Koprozessor-Prozessor für den Mikroprozessor 40 ähnlich. Zum Beispiel gibt der Mikroprozessor 40 einen Dekodierbefehl an den MPEG-Dekodierer für jedes zu dekodierende Vollbild aus. Der Dekodierer lokalisiert die zugehörige Header-Information, die der Mikroprozessor 40 dann liest. Mit dieser Information gibt der Mikroprozessor 40 Daten zur Konfigurierung des Dekodierers aus, z. B. in Bezug auf Vollbild-Typ, Quantisierungs-Matrizen usw., worauf der Dekodierer geeignete Dekodierbefehle ausgibt. Technisches Spezifikationsmaterial für die oben bezeichnete integrierte Schaltung SGS-Thomson STi 3500A liefert zusätzliche Informationen hinsichtlich der Art der Operation des MPEG-Dekodierers.
  • Der Mikroprozessor 40 übermittelt Betriebsart-Steuerdaten, die von dem Hersteller des Empfängers programmiert sind, an die Speicher-Steuerschaltung 52 zur Steuerung der Operation des Multiplexers 32 (2) und des Demultiplexers 36 (5), und zur Erstellung der Kompressions/Dekompressions-Faktoren für die Einheiten 12, 16 und 50, wie sie benötigt werden. Das offenbarte System kann mit allen Profilen und allen Stufen der MPEG-Spezifikation in Verbindung mit verschiedenen digitalen Datenverarbeitungs-Schemata verwendet werden, die zum Beispiel terrestrischen Rundfunk-, Kabel- und Satelliten-Übertragungssystemen zugeordnet sind.
  • 8 zeigt auch einen Teil eines digitalen Videosignal-Prozessors 72 wie man ihn in einem Fernsehempfänger zur Erzeugung eines hochauflösenden Video-Eingangssignals findet. Der Signalprozessor 72 kann in einer integrierten Schaltung enthalten sein, die verschiedene Vorkehrungen zum Empfang und zur Verarbeitung von Videosignalen mit Norm-Auflösung über einen analogen Kanal (nicht dargestellt) enthält. Der Signalprozessor 72 enthält einen konventionellen MPEG-Dekodierer, der durch die Blöcke 60, 62, 64, 66, 68 und 70 einschließlich des Vollbildspeichers 14 gebildet wird. Zum Beispiel beschreiben Ang et al. „Video Compression Makes Big Gains", IEEE Spectrum, Oktober 1991, die Arbeitsweise eines MPEG-Kodierers und -Dekodierers.
  • Der Signalprozessor 72 empfängt einen gesteuerten Datenstrom von gemäß MPEG kodierten Daten von einem vorangehenden Eingangs-Prozessor (nicht dargestellt), z. B. einem Transport-Dekodierer, der Datenpakete nach Demodulation des Eingangssignals trennt. In diesem Beispiel stellt der empfangene Eingangs-Datenstrom Bildmaterial mit hoher Auflösung (1920 × 1088 Pixel) dar, wie er in der Grand Alliance-Spezifikation für das terrestrische Fernseh-Rundfunksystem mit hoher Auflösung für die Vereinigten Staaten spezifiziert ist. Der Eingangs-Datenstrom befindet sich in der Form eines geschichteten Datenstroms, der eine Sequenz von Bildern darstellt, die unter Verwendung der MPEG-Kompressions-Norm komprimiert worden sind. Periodisch werden diese Bilder komprimiert und als Intra-Vollbild- und Inter-Vollbild-Information kodiert. Die Intra-Vollbild-Information umfasst I-Vollbild-Anker-Vollbilder. Allgemein umfasst die Inter-Vollbild-Information vorhersagende, bewegungskodierte Restinformationen, die die Bilddifferenz zwischen benachbarten Vollbildern darstellen. Die Inter-Vollbild-Bewegungskodierung beinhaltet die Erzeugung von Bewegungs-Vektoren, die den Offset zwischen einem gegenwärtigen gerade verarbeiteten Block und einem Block in einem zuvor rekonstruierten Bild darstellen. Der Bewegungs-Vektor, der die beste Anpassung zwischen gegenwärtigem und vorherigem Block darstellt, wird kodiert und übertragen. Auch die Differenz (Rest) zwischen jedem bewegungskompensierten 8 × 8-Block und dem früher rekonstruierten Block wird einer diskreten Cosinus-Transformation (DCT) unterworfen, quantisiert und einer variablen Längenkodierung (VLC) unterworfen, bevor die Übertragung erfolgt. Verschiedene Veröffentlichungen, einschließlich Ang, et al., beschreiben bewegungskompensierte Kodierprozesse in größeren Einzelheiten.
  • Der Puffer 60 akzeptiert die komprimierten Eingangs-Pixel-Datenblöcke vor der variablen Längen-Dekodierung durch den variablen Längen-Dekodierer (VLD) 62. Der Puffer 60 weist eine Speicherkapazität von 1,75 Mbits im Falle eines Haupt-Stufen-, Haupt-Profil-MPEG-Datenstroms auf. Ein inverser Quantisierer 64 und ein inverser diskreter Cosinus-Wandler (IDCT) 66 dekomprimiert dekodierte komprimierte Daten vom VLD 62. Ausgangsdaten von dem IDCT 66 werden einem Eingang der Addierschaltung 68 zugeführt.
  • Ein Signal vom Puffer 60 steuert die Quantisierungs-Schrittgröße des inversen Quantisierers 64, um einen glatten Datenfluss sicherzustellen. Der VLD 62 erzeugt dekodierte Bewegungs-Vektoren für die Bewegungs-Kompensations-Einheit 70, was noch erläutert wird. Der VLD 62 erzeugt auch – wie bekannt – ein Inter/Intra-Vollbild-Betriebsarten-Auswahl-Steuersignal (der Einfachheit halber nicht dargestellt). Die von den Einheiten 62, 64 und 66 ausgeführten Operationen sind invers zu den entsprechenden Operationen eines bei einem Sender befindlichen Kodierers.
  • Durch Summieren der restlichen Bilddaten von der Einheit 66 mit vorhergesagten Bilddaten, die von dem Ausgang der Einheit 70 geliefert werden, erzeugt die Addierschaltung 68 ein rekonstruiertes Pixel auf der Basis des Inhalts des Video-Vollbildspeichers 14. Wenn der Signalprozessor 72 ein vollständiges Vollbild aus Pixelblöcken verarbeitet hat, speichert der Vollbildspeicher 14 das resultierende rekonstruierte Bild. Bei der Inter-Vollbild-Betriebsart liefern Bewegungs-Vektoren, die von dem VLD 62 erhalten werden, den Ort der vorhergesagten Blöcke aus der Einheit 70.
  • Der Bild-Rekonstruktions-Prozess, an dem die Addierschaltung 68, der Speicher 14 und die Bewegungs-Kompensations-Einheit 70 beteiligt sind, weist vorteilhafte, beträchtlich verminderte Speichererfordernisse aufgrund der Verwendung des Block-Kompressors 12 vor der Datenspeicherung in dem Vollbildspeicher 14 auf. Die Größe des Vollbildspeichers 14 kann bis hinauf zu 50% vermindert werden, zum Beispiel wenn ein Kompressions-Faktor von 50% verwendet wird. Die Einheit 50 führt die inverse Funktion der Einheit 12 aus und ist gleich dem oben beschriebenen Dekompressor 16. Der Dekompressor 50 rekonstruiert den Bildblock, so dass der Bewegungskompensator 70 wie oben beschrieben funktionieren kann. Der Kompressor 12 und die Dekompressoren 16 und 50 sind gemäß den Prinzipien der vorliegenden Erfindung aufgebaut. 1, 2, 4 und 5A aufgebaut. 1, 2, 4 und 5A veranschaulichen Einzelheiten innerhalb der Einheiten 12, 16 und 50.

Claims (18)

  1. Verfahren zum Quantisieren von Pixelblock-Daten, die Werte mit positiver und negativer Polarität um einen Zwischenpunkt innerhalb eines umfassenden Bereichs von Pixelblock-Grenzwerten haben und einen Vorhersagefehler von null anzeigen, umfassend die folgenden Schritte: (a) Identifizieren von Pixelwerten mit positiver Polarität in Bezug auf den Zwischenpunkt; gekennzeichnet durch (b) Identifizieren von Pixelwerten mit negativer Polarität in Bezug auf den Zwischenpunkt; (c) Definieren einer Quantisierungs-Tabelle für die Zuordnung einer vorbestimmten Quantisierungsstufe aus N Stufen, die zwischen dem Zwischenpunkt und dem maximalen Eingangswert angeordnet sind, zu einem individuellen Pixelwert; (d) Addieren eines Vorspannungswertes zu Pixelwerten mit negativer Polarität, um vorgespannte Eingangswerte mit positiver Polarität in Bezug auf den Zwischenpunkt zu erzeugen; (e) Quantifizieren des Pixelwertes gemäß der Quantisierungs-Tabelle; und (f) Ausgeben der quantisierten vorgespannten und nicht vorgespannten Daten an ein Ausgangs-Netzwerk.
  2. Verfahren nach Anspruch 1, das die folgenden weiteren Schritte beim Erzeugen dekodierter Daten enthält: Hinzufügen eines Vorspannungswertes zu quantisierten Datenwerten, um Testwerte zu erzeugen; Vergleichen jedes der Testwerte mit einem Schwellenwert; Identifizieren der Testwerte, die größer sind als Schwellenwerte, als vorgespannte Datenwerte; und Subtrahieren des Vorspannungswertes von identifizierten vorgespannten Datenwerten, um dekodierte Daten zu erhalten.
  3. Verfahren nach Anspruch 1 oder 2, das den Schritt der Abtastung eines Pixelblocks einschließt, um einen die Pixelblock-Grenzwerte umfassenden Maximum- und Minimum-Wert zu bestimmen.
  4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Pixelwerte Pixel-Fehlerwerte sind, die eine Differenz zwischen einem vorhergesagten Pixelwert und einem gegenwärtigen Pixelwert darstellen.
  5. Verfahren nach einem der Ansprüche 1 bis 4, bei dem die Pixelwerte Pixel-Fehlerwerte sind, die (a) eine Luminanz-Differenz zwischen einem vorhergesagten Pixelwert und einem gegenwärtigen Pixelwert oder (b) eine Chrominanz-Differenz zwischen einem vorherge sagten Pixelwert und einem gegenwärtigen Pixelwert darstellen.
  6. Verfahren nach Anspruch 4 oder 5, das den Schritt einschließt, Pixelwerte zu erzeugen, die Pixel-Fehlerwerte umfassen, die Differenzen zwischen vorhergesagten Pixelwerten und gegenwärtigen Pixelwerten darstellen.
  7. Verfahren nach einem der Ansprüche 1 bis 6, bei dem der Vorspannungswert den umfassenden Bereich von Pixelblock-Grenzwerten umfasst.
  8. Verfahren nach einem der Ansprüche 2 bis 7, bei dem der Schwellenwert der maximale Pixelblock-Wert ist.
  9. Verfahren nach einem der Ansprüche 1 bis 8, bei dem die Pixelblock-Werte DPCM-Werte darstellen.
  10. Verfahren nach einem der Ansprüche 1 bis 9, bei dem die Pixelblock-Daten Pixel mit positiver Polarität und negativer Polarität haben, die Bilder darstellende komprimierte Pixeldaten betreffen, wobei der Verarbeitungsschritt die Schritte umfasst: (a) Dekodieren der Bilder darstellenden komprimierten Pixeldaten, um einen Quantisierungswert zu erzeugen, der einen Pixel-Fehlerwert in einem Pixelblock darstellt; (b) Bestimmen eines vorhergesagten Wertes des Pixel-Fehlerwertes aus zuvor dekodierten benachbarten Pixelwerten in dem Pixelblock; (c) Bestimmen einer Vor-Quantisierungs-Polarität des Pixel-Fehlerwertes auf der Basis einer Summierung des Quantisierungswertes mit dem vorhergesagten Wert, um die Vorspannung festzustellen; und (d) Dekodieren des Quantisierungswertes unter Verwendung der bestimmten Polarität.
  11. Verfahren nach Anspruch 10, bei dem die Vor-Quantisierungs-Polarität durch Vergleich der Summierung mit einem vorbestimmten maximalen Pixelblock-Grenzwert bestimmt wird.
  12. Verfahren nach Anspruch 10 oder 11, bei dem bei der Dekodierung des Quantisierungswertes ein vorhergesagter Pixelwert einem quantisierten Pixel-Fehlerwert hinzugefügt wird.
  13. Verfahren nach einem der Ansprüche 10 bis 12, bei dem der Pixel-Fehlerwert (a) eine Luminanz-Differenz zwischen einem vorhergesagten Pixelwert und einem gegenwärtigen Pixelwert oder (b) eine Chrominanz-Differenz zwischen einem vorhergesagten Pixelwert und einem gegenwärtigen Pixelwert darstellt.
  14. Verfahren nach einem der Ansprüche 10 bis 13, das den Schritt einschließt, den Vorspannungswert von der Summierung zu subtrahieren, wenn die Vor-Quantisierung-Polarität als negativ bestimmt wird.
  15. Verfahren nach einem der Ansprüche 10 bis 14, bei dem der Schritt des Dekodierens des Quantisierungswertes den Schritt der Erzeugung eines vorhergesagten Pixelwertes und der Hinzufügung eines Fehler-Quantisierungs-Wertes einschließt, der eine Diffe renz zwischen einem vorhergesagten Pixelwert und einem nicht vorhergesagten Pixelwert darstellt.
  16. Verfahren nach einem der Ansprüche 10 bis 15, bei dem der Pixel-Fehlerwert (a) einen positiven Polaritätswert oder (b) einen negativen Polaritätswert um einen Zwischenpunkt innerhalb eines umfassenden Bereichs von Pixelblock-Grenzwerten hat.
  17. Vorrichtung zur Verarbeitung von Bilder darstellenden Pixeldaten umfassend: einen ersten Prozessor (18) zur Verarbeitung der Bilder darstellenden Pixeldaten, um DPCM-Vorhersage-Fehlerwerte zu erzeugen, gekennzeichnet durch: einen zweiten Prozessor (27) zum Hinzufügen eines Vorspannungswertes zu negativen Vorhersage-Fehlerwerten, um positiv vorgespannte Vorhersage-Fehlerwerte zu erzeugen; und einen Quantisierer (28) zum Quantisieren von positiven nicht vorgespannten Vorhersage-Fehlerwerten und der positiv vorgespannten Vorhersage-Fehlerwerte, um quantisierte Daten zu erzeugen, wobei der Quantisierer die quantisierten Daten unter Verwendung einer Quantisierungs-Tabelle quantisiert, die N Stufen zwischen null und dem maximalen Eingangswert aufweist.
  18. Vorrichtung nach Anspruch 17, die ferner umfasst: einen Dequantisierer zum Dequantisieren der quantisierten Werte, um die positiv vorgespannten Vorhersage-Fehlerwerte und die nicht vorgespannten Vorhersage-Fehlerwerte zu rekonstruieren; einen dritten Prozessor zum Identifizieren der positiv vorgespannten Vorhersage-Fehlerwerte und zum Subtrahieren des Vorspannungswertes von den positiv vorgespannten Vorhersage-Fehlerwerten, um die negativen Vorhersage-Fehlerwerte, beruhend auf einem Vergleich eines Schwellenwertes und einer Summierung eines quantisierten Wertes mit einem vorhergesagten Wert zu erzeugen; und einen vierten Prozessor zum Verarbeiten der positiven und negativen Vorhersage-Fehlerwerte, um ein rekonstruiertes Bild darstellende Pixeldaten zu erzeugen.
DE69730148T 1996-12-17 1997-12-09 Speichereffiziente komprimierung und quantisierung für bildsignale Expired - Lifetime DE69730148T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US3360796P 1996-12-17 1996-12-17
US33607P 1996-12-17
US910709 1997-08-12
US08/910,709 US6621934B1 (en) 1996-12-17 1997-08-12 Memory efficient compression apparatus in an image processing system
PCT/US1997/022322 WO1998027735A1 (en) 1996-12-17 1997-12-09 Memory efficient compression apparatus and quantizer in an image processing system

Publications (2)

Publication Number Publication Date
DE69730148D1 DE69730148D1 (de) 2004-09-09
DE69730148T2 true DE69730148T2 (de) 2005-08-04

Family

ID=26709902

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69730148T Expired - Lifetime DE69730148T2 (de) 1996-12-17 1997-12-09 Speichereffiziente komprimierung und quantisierung für bildsignale

Country Status (8)

Country Link
US (1) US6621934B1 (de)
EP (1) EP0947102B1 (de)
JP (1) JP4260894B2 (de)
KR (1) KR100531259B1 (de)
CN (1) CN1191719C (de)
AU (1) AU5594298A (de)
DE (1) DE69730148T2 (de)
WO (1) WO1998027735A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807311B1 (en) * 1999-07-08 2004-10-19 Ati International Srl Method and apparatus for compressing and storing image data
GB2368248A (en) * 2000-10-20 2002-04-24 Sony Uk Ltd Image compression using iterative intraframe predictive coding
WO2003034340A2 (en) * 2001-10-11 2003-04-24 International Business Machines Corporation Color bitmap normalization
JP4217657B2 (ja) * 2003-07-30 2009-02-04 キヤノン株式会社 画像処理方法、プログラム、記憶媒体及び装置
US7689051B2 (en) * 2004-04-15 2010-03-30 Microsoft Corporation Predictive lossless coding of images and video
TWI307607B (en) * 2006-02-13 2009-03-11 Novatek Microelectronics Corp Pixel data compression and decompression method and device thereof
US20080115185A1 (en) * 2006-10-31 2008-05-15 Microsoft Corporation Dynamic modification of video properties
WO2008095825A1 (en) * 2007-02-05 2008-08-14 Thomson Licensing Video transcoding with reduced drift
CN102783037B (zh) * 2010-03-03 2015-05-13 三菱电机株式会社 数据压缩装置和数据压缩方法
JP5362099B2 (ja) * 2010-03-19 2013-12-11 株式会社東芝 符号化装置
JP5482474B2 (ja) * 2010-06-09 2014-05-07 富士通株式会社 符号化装置及び符号化プログラム
US9978156B2 (en) * 2012-10-03 2018-05-22 Avago Technologies General Ip (Singapore) Pte. Ltd. High-throughput image and video compression
US9363517B2 (en) 2013-02-28 2016-06-07 Broadcom Corporation Indexed color history in image coding
GB2593523B (en) * 2020-03-26 2023-06-14 Imagination Tech Ltd Image data compression

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4422094A (en) 1981-11-06 1983-12-20 Rca Corporation Digital signal processor with symmetrical transfer characteristic
JPS59200592A (ja) * 1983-04-27 1984-11-13 Fuji Photo Film Co Ltd カラ−画像の適応形圧縮方式
US5539865A (en) 1992-11-10 1996-07-23 Adobe Systems, Inc. Method and apparatus for processing data for a visual-output device with reduced buffer memory requirements
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

Also Published As

Publication number Publication date
JP4260894B2 (ja) 2009-04-30
JP2001506444A (ja) 2001-05-15
US6621934B1 (en) 2003-09-16
CN1191719C (zh) 2005-03-02
KR100531259B1 (ko) 2005-11-28
EP0947102B1 (de) 2004-08-04
EP0947102A1 (de) 1999-10-06
DE69730148D1 (de) 2004-09-09
CN1240555A (zh) 2000-01-05
AU5594298A (en) 1998-07-15
WO1998027735A1 (en) 1998-06-25
KR20000057237A (ko) 2000-09-15

Similar Documents

Publication Publication Date Title
DE69626483T2 (de) Speicherverwaltung in einem Videodekodierer
DE69116869T2 (de) Digitale bildkodierung mit einer zufallsabtastung der bilder
DE69433272T2 (de) Vorrichtung zum Vermeiden von Rundungsfehlern bei der inversen Transformation von Transformationskoeffizienten eines Bewegtbildsignales
DE69123705T2 (de) Verfahren zur Kompression von bewegten Bildsignalen nach dem Zeilensprungverfahren
DE69030056T2 (de) Videosignalkodierungsgerät, Kodierungsverfahren und Videosignalübertragungssystem
DE69535228T2 (de) Bildumsetzungsvorrichtung
DE69738264T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE4205896B4 (de) Anordnung zur rangmäßigen Aufteilung von Daten z. B. für eine Videosignal-Verarbeitungseinrichtung
DE69124784T2 (de) HDTV-Empfänger
DE69817460T2 (de) Bildsequenzdekodierungsverfahren
DE69637335T2 (de) Bildsignalkodierungsmethode und -vorrichtung
DE69635369T2 (de) Videokodierungsvorrichtung
DE69730148T2 (de) Speichereffiziente komprimierung und quantisierung für bildsignale
EP0687111A2 (de) Verfahren zur Codierung/Decodierung eines Datenstroms
DE3886144T2 (de) Kodierung von Signalen.
DE4442643B4 (de) Verfahren zum Abschätzen der Bewegung in einem Bewegtbild
DE60309039T2 (de) Verfahren und vorrichtung zur optimierung der bildschärfe während der kodierung
DE19757630A1 (de) Bewegungsbestimmungsverfahren
DE112012006541B4 (de) Verfahren zur Videokompression
DE69126525T2 (de) Digitale bildverarbeitung mit filterung der blockkanten
EP1472888A1 (de) Kontextsensitive kodierung und dekodierung eines videodatenstroms
DE10296787T5 (de) Selektive Prädikation für ein Intra-Codieren eines Videodatenblocks
DE19907132B4 (de) Videodecoder für einen Digitalfernseher
DE3486396T2 (de) Vektor-Quantisierer.
DE19753976A1 (de) Dekoder mit einer adaptiven Funktion zur Vermeidung von Blockeffekten

Legal Events

Date Code Title Description
8364 No opposition during term of opposition