DE69714071T2 - Vorrichtung zur kompression von pixelblöcken in einem bildverarbeitungssystem - Google Patents
Vorrichtung zur kompression von pixelblöcken in einem bildverarbeitungssystemInfo
- Publication number
- DE69714071T2 DE69714071T2 DE69714071T DE69714071T DE69714071T2 DE 69714071 T2 DE69714071 T2 DE 69714071T2 DE 69714071 T DE69714071 T DE 69714071T DE 69714071 T DE69714071 T DE 69714071T DE 69714071 T2 DE69714071 T2 DE 69714071T2
- Authority
- DE
- Germany
- Prior art keywords
- pixel
- block
- data
- bit
- value
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 27
- 230000015654 memory Effects 0.000 claims description 68
- 230000006835 compression Effects 0.000 claims description 28
- 238000007906 compression Methods 0.000 claims description 28
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000013139 quantization Methods 0.000 description 81
- 238000000034 method Methods 0.000 description 14
- 239000000872 buffer Substances 0.000 description 10
- 241000023320 Luma <angiosperm> Species 0.000 description 7
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 7
- 230000006837 decompression Effects 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000012952 Resampling Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/98—Adaptive-dynamic-range coding [ADRC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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/423—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Color Television Systems (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
- Die Erfindung betrifft eine Vorrichtung zur Verminderung der Speichererfordernisse eines digitalen Videoprozessors. Insbesondere beschreibt die Erfindung eine Vorrichtung zur genauen Kompression von Pixel-Informationen vor der Speicherung in einem Speicher.
- Die wirksame Verwendung von Speichern ist für die Entwicklung und für den Betrieb von Bildprozessoren wichtig. Beispielsweise können Verbraucherprodukte, wie Fernsehsysteme, Bildprozessoren mit MPEG-2-Signalverarbeitung verwenden. Die MPEG- (Motion Picture Experts Group)-Signal-Kompressions-Norm (ISO/lEC 13181-2, 10. Mai, 1994) ist eine weit akzeptierte Bildverarbeitungs-Norm, die insbesondere attraktiv für die Verwendung bei Satelliten-, Kabel- und terrestrischen Rundfunk-Sendesystemen ist, die eine Verarbeitung von Fernsehsignalen mit hoher Auflösung (HDTV) unter anderen Formen der Bildverarbeitung verwenden. Produkte, die eine Anzeige mit hoher Auflösung verwenden, erfordern 96 Mbits oder mehr an Speicherung, um vorübergehend gemäß MPEG dekodierte Vollbilder vor der Anzeige zu speichern. Ein MPEG-Prozessor benötigt diese Vollbilder für die Bewegungsabschätzung und Kompensation, um genaue Bilder für die Anzeige zu rekonstruieren.
- Systeme, die Bilder von nach MPEG dekodierten Bildelementen (Pixel oder pels) rekonstruieren, verwenden Differential-Impuls- Code-Modulation (DPCM). Bei der DPCM-Verarbeitung erzeugt ein Prozessor einen Vorhersagewert, der den nächsten Pixel-Wert voraussagt. Ein Summierungs-Netzwerk subtrahiert die Vorhersage von dem aktuellen Pixel-Wert, was zu einer Differenz führt, die dazu verwendet wird, die Video-Daten darzustellen. Diese Differenz, bekannt als Vorhersagefehler, ist allgemein kleiner als der Datenwert, so dass die Verarbeitung des Differenzwertes anstatt des ursprünglichen Pixel-Wertes die Bandbreiten-Erfordernisse des Systems vermindert. Dieser Vorhersagefehler kann einen positiven oder negativen Wert haben. Ang et al. « Video Compression Makes Big Gains » IEEE Spectrum, Oktober 1991, beschreiben einen MPEG-Kodierer und -Dekodierer.
- Speicherwirksame Bildprozessoren verwenden weniger Speicher zur Speicherung von Vollbildern, indem die Blockdaten vor der Speicherung neu kodiert (rekomprimiert) werden. In dem räumlichen Bereich beeinträchtigt das Vermindern der Anzahl von Bits pro Pixel, die zum Speichern der Vollbilder verwendet werden, die Bildqualität, wenn die Pixel nicht genau auf ihren ursprünglichen Wert rekonstruiert werden können. Es können Artefakte insbesondere in glatten Bereichen des Bildes auftreten. Bildprozessoren mit verminderter Speicherung sollten genau das MPEG- dekodierte Signal so wirksam und wirtschaftlich wie möglich quantisieren und dequantisieren.
- Es ist bekannt, die menschlichen optischen Empfangsbegrenzungen auszunutzen und Luminanz- und Chrominanz-Daten unterschiedlich zu verarbeiten. Optimierende Kompressionsgesetze für jeden Daten-Typ zur Berücksichtigung der Energie- und Frequenz- Komponenten in den Daten, sowie dessen, was das menschliche Auge sehen kann, ist im US-Patent 4,575,749 von Acampora et al. beschrieben. Acampora spricht die Amplituden-Kompression an, um Rauschen in Fernsehsignalen vor der Übertragung zu vermindern. Anzeige-Formate wie zum Beispiel 4 : 2 : 2 und 4 : 2 : 0 beschreiben ebenfalls die Kompression von Video-Daten, wo Luminanz- und Chrominanz-Daten unterschiedlich verarbeitet worden sind. Format- Verhältnisse von 4 : 2 : 2 und 4 : 2 : 0 zeigen an, dass ein Chrominanz- Datenblock die Hälfte oder ein Viertel der Informationsmenge enthält, die ein Luminanz-Datenblock enthält. Wenn jedoch die Video-Daten einmal in einem Anzeigeprozessor empfangen werden, werden die Daten als n-Bit-Pixel-Daten dargestellt. Die obigen bekannten Kompressionsverfahren sprechen nicht die Kompression relativ zu dem Anzeigeprozessor an.
- In dem Anzeigeprozessor können die Luminanz- und Chrominanz- Daten getrennt verarbeitet werden, aber nicht in Bezug auf Rekompression. Ein Beispiel für einen Anzeigeprozessor, der Luminanz- und Chrominanz-Daten unterschiedlich verarbeitet, würde die Umwandlung von Daten mit einem Verhältnis von 4 : 2 : 2 oder 4 : 2 : 0 in Raster-Zeilen-Daten sein, so dass nicht jedes Pixel mit Chrominanz-Informationen definiert wird. Dies hat jedoch nichts mit der Kompression oder Rekompression von Daten zu tun. Bevor das MPEG-Format verfügbar wurde, war die Zuordnung eines Speichers zu einem Anzeigeprozessor von geringer Bedeutung, weil keine Notwendigkeit bestand, ein Vollbild aus Bewegungs-Vektoren oder Bewegungs-Kompositions-Informationen zu berechnen. Seit dem Erscheinen des MPEG-Formats müssen Mehrfach-Vollbilder von Pixel-Daten in einem der Anzeige zugeordneten Speicher gespeichert werden, um Vollbilder zu rekonstruieren. Die ebenfalls schwebende Anmeldung 08/579,129 beschreibt die Rekompression von Video- Pixel-Daten vor der Speicherung in einem Vollbildspeicher vor Empfang durch den Anzeigeprozessor.
- Genauer gesagt, da Chrominanz-Daten durch weniger Pixel (Bit-begrenzt) im Vergleich zu Luminanz-Daten definiert werden (z. B. in dem 4 : 2 : 2- oder 4 : 2 : 0-Format), wird eine weitere Kompression oder Rekonpression kontra-indiziert. Kompression oder Rekompression von Chrominanz-Daten, z. B. mittel Quantisierung, sind nun ein ernster Kompromiss für die Fähigkeit, genau die ursprünglichen Chrominanz-Daten für die Anzeige zu rekonstruieren, was zu verminderter Bildqualität führt. Eine Verminderung der Speicher-Erfordernisse für Anzeigeprozessoren, die zum Beispiel durch Rekomprimieren von Luminanz- und Chrominanz-Pixel-Daten vor der Speicherung in einem Vollbildspeicher erzielbar ist, und die Notwendigkeit für eine genaue Rekonstruktion von Bilddaten für die Anzeige sind miteinander konkurierende Interessen. Dies gilt insbesondere in dem Fall eines Systems mit hoher Auflösung, wie HDTV, wo Einzelheiten deutlich angezeigt werden.
- Die Erfinder haben den Wunsch erkannt, ein wirksames Datenverminderungssystem vorzusehen, das minimale Hardware und Software verwendet, das Speichermittel einspart, und das die physikalische Größe des Prozessors vermindert, während es Artefakte minimiert, die in das rekonstruierte Bild eingeführt werden. Das offenbarte System löst diese Probleme durch unterschiedliche Verarbeitung von Chrominanz- und Luminanz-Daten gemäß den Prinzipien der vorliegenden Erfindung.
- Ein speichereffizienter Bildprozessor gemäß der vorliegenden Erfindung empfängt einen digitalen Datenstrom von gemäß MPEG formatierten Video-Daten. Die MPEG-Daten werden dekodiert und dekomprimiert und dem Prozessor als Bild-Pixel-Blöcke aus Luminanz- und Chrominanz-Daten präsentiert. Die Luminanz- und Chrominanz-Daten werden auf eine vorbestimmte Bit-Zahl pro Pixel- Block rekomprimiert, wobei jeder Pixel-Darstellung eine Durchschnitts-Bit-Rate zur Speicherung in einem Vollbildspeicher zugeordnet wird. Die Durchschnitts-Zahl von Bits pro Pixel- Darstellung ist wenigstens ein Bit weniger für Chrominanz-Daten als für Luminanz-Daten.
- Fig. 1 ist ein Blockschaltbild eines Pixel-Block- Prozessors, der ein System gemäß der vorliegenden Erfindung enthält.
- Fig. 2 zeigt Einzelheiten des Kompressionsteils des Systems von Fig. 1.
- Fig. 3 zeigt ein paketisiertes Daten-Format, das für die Verwendung in einem die Erfindung enthaltenden System geeignet ist.
- Fig. 4 zeigt Einzelheiten des Dekompressionsteils des Systems von Fig. 1.
- Fig. 5A zeigt Einzelheiten des Quantisierungs- Abbildungsteils von Fig. 2.
- Fig. 5B ist eine wahre Tabelle für den Auswahlblock von Fig. 5A.
- Fig. 6A, 6B und 6C sind Drei-Bit-, Vier-Bit- bzw. Fünf-Bit-Quantisierungs/Dequantisierungs Tabellen.
- Fig. 7 zeigt eine Vorrichtung zur Erzeugung von symmetrischen Dequantisierungs-Tabellen.
- Fig. 8 ist eine Tabelle, die überschüssige Quantisierungs-Bits zeigt.
- Fig. 9A, 9B und 9C stellen ein Fließdiagramm einer Kodier-Steuereinheit gemäß den Prinzipien der vorliegenden Erfindung dar.
- Fig. 10 ist ein Blockschaltbild eines MPEG- kompatiblen, die Erfindung verwendenden Fernsehsystems.
- Als Einführung wird eine beispielhafte Ausführungsform der Erfindung kurz beschrieben, bevor die Beschreibung von Einzelheiten der Elemente der Erfindung erfolgt. Die beispielhafte Ausführungsform ermöglicht die Kompression von Bildelement- (Pixel)-Daten von Acht-Bit-Werten auf Vier-Bit-Werte für Chrominanz-Daten. Dies ist eine verlustbehaftete Verminderung der Auflösung von 16 auf 1, die normalerweise zu einer ernsthaften Verschlechterung der Bildqualität führen würde. Das die Erfindung verkörpernde Verfahren erlaubt eine genaue Daten-Rekonstruktion.
- Ein speichereffizienter Bildprozessor bestimmt, dass DPCM- Vorhersage-Fehlerwerte für Luminanz- und Chrominanz-Daten- Komponenten von Pixel-Blöcken quantisiert werden sollen. Luminanz-Daten werden durch eine Sechs-Bit-Quantisierungs-Tabelle mit 64 Pegeln komprimiert, während Chrominanz-Daten mit einer Gruppe von Drei-, Vier- und Fünf-Bit-Quantisierungs-Tabellen komprimiert werden, die auf einen ausgewählten Bereich aus einer Gruppe von vorbestimmten Bereichen zugeschnitten sind und zu diesem Zugriff haben. Ein Bezugs-Pixel von jedem Pixel-Block wird unterschiedlich zu anderen Pixeln komprimiert, um eine Anfangs-Genauigkeit in dem Vorhersage-Netzwerk zu erzielen. Block- Parameter werden bestimmt, kodiert und mit dem komprimierten Pixel-Block gespeichert, um die Rekonstruktion zu erleichtern. Die Quantisierungs-Tabellen geben kurze Code-Wort-Symbole mit Pegeln aus, zu denen statistisch wahrscheinlich Zugriff genommen wird, wodurch eine Block-Parameter-Speicherung in dem festen Speicherraum kompensiert wird. Pixel werden individuell verarbeitet, um eine maximale Auflösung und einen Gesamt-Durchschnitt von vier Bits pro Pixel einschließlich Block-Parametern sicherzustellen.
- Vor der Quantisierung werden negative Vorhersage-Fehlerwerte beeinflusst, um einen positiven Wert innerhalb des Rahmens des Quantisierers vorzusehen. Somit empfängt der Quantisierer positive Werte, und die Tabellen enthalten nur positive Entscheidungspunkte. Symmetrische Tabellen erlauben, dass die Tabellen- Mittenpunkte und eine Hälfte der Tabellen in einem ROM liegen, während die andere Hälfte einer Schaltung zugeordnet ist.
- In der Praxis kann ein Fernsehempfänger einen MPEG- Dekodierer enthalten. Ein Datenverminderungs-Netzwerk quantisiert ein dekodiertes und dekomprimiertes MPEG-Signal, das Bildblöcke darstellt, vor der Speicherung in einem Vollbildspeicher, wobei die Blöcke in der notwendigen Weise für eine Bildanzeige rekonstruiert werden. Eine Anzeigevorrichtung zeigt Bilddaten an, die vom Vollbildspeicher abgeleitet werden. Von dem Netzwerk empfangene und verarbeitete Daten sind ein hochauflösendes 1920 · 1080 Pixel, 4 : 2 : 2- oder 4 : 2 : 0-Videosignal. Luminanz-Daten werden in Blöcken von 8 · 8 Pixeln in dem räumlichen Bereich unterteilt, wobei die Chrominanz-Daten gemäß dem speziellen Format unterteilt werden.
- Das Netzwerk verarbeitet Pixel-Block-Daten wie oben beschrieben. Für jeden Pixel-Block mit Luminanz-Daten wird das erste Pixel sieben Bits verschoben, wobei das am wenigsten bedeutsame Bit nicht beachtet wird. Das letzte Pixel wird mit der Fünf-Bit-Quantisierungs-Tabelle quantisiert, die für den Bereich von 256 zugeführt wird. Alle anderen Bits werden mit einer Sechs-Bit-Quantisierungs-Tabelle quantisiert. Das Gesamt- Ergebnis ist eine Rekompression von sechs Bits pro Pixel.
- Für die Chrominanz-Daten tastet das Netzwerk einen Pixel- Block ab und bestimmt den Bereich und die minimalen und maximalen Pixel-Werte für den Block. Repräsentative vorbestimmte Werte werden durch die Bereichs- und die minimalen Pixel-Werte ersetzt und mit dem Bezugs-Pixel-Wert als Header zu den Daten gespeichert. Das Bezugs-Pixel kann zum Beispiel das erste Pixel des Blocks sein. Eine Steuereinheit verwendet Register für jeden Chrominanz-Pixel-Block und wählt eine Drei-, Vier- oder Fünf- Bit-Quantisierungs-Tabelle aus, um jedes Pixel zu verarbeiten und behält einen Durchschnitt von vier Bits pro Pixel nach der Kompression bei. Drei-Bit-Symbole in ausgewählten Pegeln der Vier- und Fünf-Bit-Tabellen kompensieren die Bits, die zum Speichern des Headers benötigt werden. Drei-Bit-Symbole liegen auf Pegeln, wo Eingangsdaten statistisch am wahrscheinlichsten auftreten, wodurch die Kompressionsauflösung minimal beeinträchtigt wird. Wenn überschüssige Bits durch Ausgabe von Drei-Bit- Symbolen eingespart werden, werden hochauflösende Fünf-Bit- Symbole ausgegeben. Ebenso wird, wenn nicht genug Bits eingespart werden, Zugriff zu einer Drei-Bit-Tabelle genommen, um einen Durchschnitt von vier Hits für jedes Pixel einschließlich Header beizubehalten. Luminanz-(Luma)-Daten werden um 25% und Chrominanz-(Chroma)-Daten werden um 50% relativ zu dem Pixel- Block vermindert, der verfügbar ist, nachdem empfangene Daten aus dem empfangenen Transportstrom dekomprimiert werden. Bei dem offenbarten System können Bit-begrenzte Chroma-Daten mit weniger Bits als Luminanz-Daten rekomprimiert werden, ohne dass die Bildqualität ungünstig beeinflusst wird. Das obige System erleichtert die Genauigkeit während der Pixel-Rekonstruktion.
- Die folgende Beschreibung ist ein Beispiel in Verbindung mit einem MPEG-2-kompatiblen hochauflösenden Fernsehempfänger, um die Erklärung der Erfindung zu unterstützen. Das beschriebene System erlaubt eine Fest-Längen-Kompression auf einer Datenblock-für-Datenblock-Basis für ein gegebenes oder ausgewähltes Kompressionsverhältnis. Speicherung eines Datenblocks mit fester Länge erlaubt einen willkürlichen Block-Zugriff. Der Datenblock mit fester Länge wird unter Verwendung einer Kombination von in diesem Dokument beschriebenen Merkmalen erreicht. Das System gemäß den Prinzipien der vorliegenden Erfindung kann verwendet werden, um wirksam Blockdaten von irgendeiner Quelle zu komprimieren und zu dekomprimieren und sollte nicht auf Fernsehempfänger beschränkt werden.
- In Fig. 1 liefert ein Dekodierer, z. B. ein MPEG-Dekodierer (nicht dargestellt) einen Block von gemäß MPEG dekodierten Pixel-Daten an den Eingang 10 eines Speicher-Verminderungs- Prozessors, der einen Kompressor 12 enthält. Der Kompressor 12 enthält einen Prediktor 18, einen Quantisierer 20 und einen Kombinator 22. Der Prediktor verwendet allgemein bekannte Prinzipien und kann von dem Typ sein, der zum Beispiel von Jain in "Fundamentals of Digital Image Processing", Prentice-Hall, Seite 484 (1989) beschrieben wird.
- Der Quantisierer 20 liefert einen Pixel-Block mit verminderten Daten an den Speicher 14. Wenn ein Anzeigeprozessor (nicht dargestellt) Zugriff zu dem Block mit verminderten Daten 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 Block mit den verminderten Daten 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 ist ähnlich wie der Prediktor 18.
- Der Eingang 10 des Kompressors 12 empfängt einen Pixel-Block von einem MPEG-Dekodierer, der in Verbindung mit Fig. 10 noch erläutert wird. Der Pixel-Block ist in dem räumlichen Bereich und umfasst zum Beispiel einen Block von 8 · 8 Bild-Pixeln, die Luminanz-(Luma)-Daten darstellen. Bei einem System, das 4 : 2 : 2- Daten verarbeitet, umfassen die Chrominanz-(Chroma)-Daten z. B. einen Block von 8 · 4 Bild-Pixeln, und in einem System, das 4 : 2 : 0-Daten verarbeitet, umfassen die Chrominanz-(Chroma)-Daten einen Block von 4 · 4 Bild-Pixeln. Der Eingang 10 führt die Pixel-Block-Daten einem nicht-invertierenden Eingang des Kombinators 22 und dem Quantisierer 20 zu. Der Prediktor 18 führt die Pixel-Vorhersage-Daten einem invertierenden Eingang des Kombinators 22 und dem Quantisierer 20 zu. Der Kombinator 22 kombiniert seine Signale vom invertierenden und nicht-invertierenden Eingang und liefert die Differenz an den Quantisierer 20. Der Quantisierer 20 gibt quantisierte Bildwerte an den Prediktor 18 aus und quantisierte Vorhersage-Fehlerwerte an den Speicher 14 zur Speicherung.
- Die Luminanz-Daten werden unterschiedlich verarbeitet als die Chrominanz-Daten. Jedem Pixel des Luminanz-Pixel-Blocks sind im Durchschnitt sechs Bits an Speicherraum im Speicher 14 zugeordnet. Der Quantisierer 20 wählt ein Bezugs-Pixel aus einem empfangenen Pixel-Block aus. Das Bezugs-Pixel kann beispielsweise das erste Pixel des Blocks sein. Das Bezugs-Pixel wird gerade um ein Bit verschoben und in dem Speicher 14 an einem vorbestimmten Platz mit den verbleibenden quantisierten Pixeln des Blocks gespeichert. Ein anderes Pixel vom Block wird unterschiedlich gegenüber dem Bezugs-Pixel und allen anderen verbleibenden Pixeln aus dem Pixel-Block verarbeitet. Dieses andere Pixel kann beispielsweise das letzte Pixel des Pixel-Blocks sein. Es wird unter Verwendung einer Fünf-Bit-Quantisierungs-Tabelle mit 26 Pegeln verarbeitet, was in Fig. 6C dargestellt ist. Das Komprimieren dieses Pixels mit fünf Bits kompensiert die Bezugs- Pixel-Verarbeitung, weil das Einsparen eines Bits in der letzten Pixel-Position den Sechs-Bit-Durchschnitt aufrechterhält, was als Kompromiss durch die Verwendung von sieben Bits für das erste Pixel erreicht wurde. Wenn der Pegel in der Fünf-Bit-Tabelle, auf den Zugriff genommen wurde, ein kurzes Code-Wort enthält, ist das Code-Wort null, das auf fünf Bits aufgepolstert ist. Alle anderen Pixel des Luminanz-Pixel-Blocks werden unter Verwendung einer Sechs-Bit-Quantisierungs-Tabelle mit 64 Pegeln komprimiert. Die Quantisierungs-Tabelle ist so ausgelegt, dass sie nur positive DPCM-Vorhersage-Fehlerwerte akzeptiert. Einzelheiten der Ausbildung dieser Tabelle sind für alle Quantisierungs- Tabellen in diesem System dieselben und werden später diskutiert. Auch wird später die Beeinflussung von negativen Vorhersage-Fehlerwerden diskutiert, um positive Eingangswerte in die Quantisierungs-Tabellen sicherzustellen, was gleich sowohl für Luma- als auch Chroma-Daten ist.
- Chroma-Daten werden in unterschiedlicher Weise als Luma- Daten verarbeitet und komprimiert. Fig. 2 veranschaulicht den Quantisierer 20 in größeren Einzelheiten, da er zu Chroma-Daten gehört. Dieselben Bezugsziffern identifizieren gemeinsame Elemente in Fig. 1 und 2. Genauer gesagt enthält der Quantisierer 20 einen Vorhersage-Fehler-Prozessor 27, einen Quantisierungs- Abbildner 28, eine Kodier-Steuereinheit 29, einen Min-Max- Bereich-Prozessor (MMRP) 30, einen ersten Pixel-Prozessor 31 und einen Multiplexer 32. Der Eingang 10 liefert Block-Pixel-Daten an den MMRP 30, der den Pixel-Block abtastet und den minimalen Pixel-Wert, den maximalen Pixel-Wert und den Bereich für den Block bestimmt. MMRP 30 wählt einen vorbestimmten Bereich aus einer Gruppe von vorbestimmten Bereichen als Funktion des aktuellen Bereiches aus und tauscht den ausgewählten vorherbestimmten Bereich gegen den aktuellen Bereich für die nachfolgende Verwendung innerhalb des Netzwerks aus. MMRP 30 komprimiert die Minimum-, Maximum- und die vorhergesagten Bereichs-Block- Parameter-Werte und überträgt sie zum Multiplexer 32.
- Der minimale Pixel-Wert und der Bereich werden auch zum ersten Pixel-Prozessor 31 übertragen, und der vorbestimmte Bereich wird zum Vorhersage-Fehler-Prozessor 27 übertragen, was noch erläutert wird. Der Vorhersage-Fehler-Prozessor 27 empfängt Vorhersage-Fehlerdaten von dem Kombinator 22 und beeinflusst negative Werte mit dem ausgewählten vorbestimmten Bereich. Der Quantisierungs-Abbildner 28 empfängt beeinflusste und unbeeinflusste Vorhersage-Fehlerwerte von dem Vorhersage-Fehler-Prozessor 27. Diese Werte werden quantisiert und zum Multiplexer 32 geschickt. Der Quantisierungs-Abbildner 28 schickt ebenfalls quantisierte Vorhersage-Fehlerwerte zum Prediktor 18, die der Prediktor 18 dazu verwendet, Vorhersage-Daten zu berechnen. Der Multiplexer 32 schickt die Block-Parameter und die quantisierten Daten unter Timing und Steuerung zum Speicher 14, was später erläutert wird. Die Block-Parameter stellen Überschuss-Daten (overhead data) dar, die im Speicher 14 innerhalb eines Parameter-Feldes gespeichert werden, das dem quantisierten Pixel-Block zugeordnet ist. Das Parameter-Feld und die quantisierten Daten bilden zusammen ein Paket, das alle Informationen konsolidiert, die von dem Dekompressor 16 benötigt werden, um Zugriff zu geeigneten Dequantisierungs-Tabellen zu nehmen und den Pixel-Block zu rekonstruieren. Die Kodier-Steuereinheit 29 überwacht die Übertragung von Block-Parametern und komprimierten Daten sowie die Auswahl von Quantisierungs-Tabellen für individuelle Pixel-Blöcke, was noch erläutert wird.
- Der erste Pixel-Prozessor 31 empfängt den Pixel-Block vom Eingang 10 und identifiziert einen vorbestimmten Bezugs-Pixel- Wert. Der minimale Pixel-Wert des Blocks, der von dem MMRP 30 empfangen wird, erleichtert die Kompression des Bezugs-Pixels unabhängig von anderen Block-Pixeln. Das komprimierte Bezugs- 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 Pixel- Prozessor 31 lässt den komprimierten Bezugs-Pixel-Wert als Block-Parameter zum Multiplexer 32 durch, der Block-Parameter einschließlich des Bezugs-Pixel-Wertes und die quantisierten Daten zum Speicher 14 überträgt. Der Dequantisierer 26 verwendet das Bezugs-Pixel als einen Vorhersagewert für die quantisierten Block-Pixel während der Pixel-Dekompression. Da der erste Wert (der Bezugs-Pixel-Wert), der in dem Vorhersage-Netzwerk während der Dekompression benutzt wird, unabhängig ist, kann ein gegebener Pixel-Block ohne Informationen von anderen Pixel-Blöcken dekomprimiert werden. Dieser Wert ist auch genau, was einen sich fortpflanzenden Vorhersagefehler aus den rekonstruierten Daten beseitigt.
- Das Bezugs-Pixel wird unter Verwendung des Pixelblock- Minimum-Wertes als ein Preduktor zur Ableitung des komprimierten Wertes komprimiert. Der Minimum-Wert wird von dem Bezugs-Wert subtrahiert, und die Differenz wird durch zwei geteilt. Das Ergebnis wird im Speicher 14 mit einem Bit weniger als für die binäre Darstellung des vorbestimmten Bereiches notwendig ist, gespeichert. Der vorbestimmte Bereich definiert die Zahl von Bits, die zur Speicherung des komprimierten Bezugs-Pixel-Wertes verwendet werden, weil bei Verwendung von Block-Pixel-Werten als Prediktoren für andere Werte in demselben Pixelblock die Differenz zwischen irgendwelchen zwei Block-Pixelwerten, wie zum Beispiel dem Bezugs- und dem Minimum-Pixel-Wert, in die Domäne des Bereichs fällt. Der komprimierte Bezugs-Wert verwendet ein Bit weniger als notwendig ist, um den Bereich darzustellen, weil die Differenz durch zwei geteilt wird, was die Anzahl von Bits vermindert, die für eine binäre Darstellung durch ein Bit erforderlich ist.
- Der Quantisierer 20 und der Dequantisierer 26 nehmen Zugriff auf Quantisierungs- bzw. Dequantisierungs-Tabellen, die zu jedem Block optimiert werden. Die Quantisierungs- und Dequantisierungs-Tabellen enthalten Werte, die auf einem angenäherten Bereich des Pixelblocks beruhen. Der Min-Max-Bereichs-Prozessor MMRP 30 empfängt einen Eingangs-Datenblock und tastet ihn ab, um den minimalen Pixelwert und den maximalen Pixelwert zu bestimmen. MMRP 30 subtrahiert dann den minimalen Pixelwert von dem maximalen Pixelwert und addiert eine Eins hinzu (max-min + eins), 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 Best- Fit-Analyse ausgewählt, die den vorbestimmten Bereich identifiziert, der der kleinste Wert der Gruppe ist, der größer als oder gleich dem aktuellen berechneten Bereich ist. Die Quantisierungs- und Dequantisierungs-Tabellen werden so zugeschnitten, dass sie Werte innerhalb der Domäne des ausgewählten vorbestimmten Bereiches enthalten und daher Werte des gesamten aktuellen Bereiches enthalten. Der Quantisierer 20 verwendet DPCM- Verarbeitung und erzeugt Differenzwerte, die Vorhersagefehler sind. Diese Vorhersagefehler liegen in der Domäne des aktuellen Bereiches, wenn dem Prediktor 18 zugeführte Pixelwerte von demselben Pixelblock kommen wie das Pixel, für das der Prediktor 18 gegenwärtig einen Vorhersagewert erzeugt. Der Kompressor 12 folgt diesem Parameter und behält ihn bei. Der aktuelle Bereich eines gegebenen Pixelblocks ist oft beträchtlich kleiner als 256 (der maximale Wert eines 8-Bit-Pixelwertes), und von dem vorbestimmten Bereich abgeleitete Tabellen-Pegel erzeugen eine bessere Auflösung als Tabellen-Pegel, die von 256 abgeleitet werden, weil der ausgewählte vorbestimmte Bereich allgemein nahe bei dem Wert des aktuellen Bereichs ist. Daher nimmt die Systemgenauigkeit und -wirksamkeit durch Zuschneiden der Tabellen-Pegel für diesen Bereich zu.
- Um die Eingangs-Block-Daten zu rekonstruieren, muss der Dequantisierer 26 wissen, welcher vorbestimmte Bereich der Quantisierer 20 verwendet hat, um zur Quantisierungs-Tabelle Zugriff zu nehmen, die beim Quantisieren des Pixelblocks verwendet wurde. Darstellungen des Bereichs und anderer Pixelblock-Parameter werden im Speicher 14 in einem Parameter-Feld mit dem quantisierten Pixelblock gespeichert. Durch Speicherung 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 beispielsweise der minimale Pixelblock-Wert oder ein Bezugs-Pixelblock-Wert sein. Fig. 3 veranschaulicht eine mögliche Konfiguration eines Parameter- Feldes und komprimierter Daten. Das Parameter-Feld besteht aus jenen Block-Parametern, die in dem gestrichelten Kasten in Fig. 3 enthalten sind. Bei diesem Ausführungsbeispiel ist ein Parameter-Feld als Header eines Datenpaketes angeordnet, das eine komprimierte Daten-Nutzlast enthält.
- Um die Verminderung von Vollbild-Speicherung ohne nennenswerte Verschlechterung des angezeigten Bildes zu maximieren, wird die durch die Block-Parameter in dem Parameter-Feld dargestellte Überschuss-Information im Speicher 14 gespeichert. Jedes Bit, das zur Speicherung des Parameter-Feldes verwendet wird, vermindert die verfügbare Speicherung für die Speicherung von quantisierten Pixeln. Daher vermindert ein die vorliegende Erfindung verwendendes System die Zahl von Bits, die zur Speicherung von zwei Block-Parametern benötigt wird, nämlich den Bereichswert und den minimalen Wert, von acht Bits auf drei Bits für jeden Parameter in den meisten Fällen. Dieser Prozess arbeitet wie folgt.
- Der aktuelle Bereich wird mit einer Gruppe von vorbestimmten Bereichen verglichen, um den am besten passenden zu bestimmen. Der vorbestimmte Bereich wird zu dem Wert, der dazu verwendet wird, den Bereich für den dann verarbeiteten Pixelblock darzustellen. Der vorbestimmte Bereich ist größer als der aktuelle Bereich, um sicherzustellen, dass alle Pixelwerte innerhalb des Pixelblocks dargestellt werden. Die Gruppe von vorbestimmten Bereichen enthält sieben Werte, nämlich 16, 32, 64, 96, 128, 192 und 256. Da die Gruppe sowohl für den Quantisierer 20 als auch für den Dequantisierer 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 einer ähnlichen Weise. Für fünf der sieben vorbestimmten Bereiche nimmt das System Zugriff zu einer vorbestimmten Gruppe von acht minimalen Pixelwerten, die eindeutig für den ausgewählten vorbestimmten Bereich sind. Der Quantisierer 20 vergleicht den aktuellen minimalen Pixelwert mit der vorbestimmten Gruppe und wählt den größten vorbestimmten minimalen Wert aus, der kleiner als oder gleich dem aktuellen minimalen Wert ist. Das vorbestimmte Minimum wird dann der Wert, der dazu verwendet wird, das minimale Pixel für den Pixelblock, der verarbeitet wird, darzustellen. Die Gruppe ist sowohl für den Quantisierer 20 als auch für den Dequantisierer 26 verfügbar, so dass das vorbestimmte Minimum in dem Parameter-Feld durch einen Indexwert dargestellt werden kann. Dieser Index erfordert auch drei Bits für eine binäre Darstellung, weil es nur acht vorbestimmte minimale Pixelwerte für die Darstellung gibt.
- Die Gruppe von acht vorbestimmten minimalen Pixelwerten für fünf der sieben Bereiche werden durch die nachfolgende Gleichung (1a) definiert. Die fünf Bereiche, für die die Gleichung (1) zutrifft, sind 32, 64, 96, 128 und 192. Die Gleichung liefert beginnend mit null einen konstanten linearen Schritt für jedes Bereichs-Minimum.
- Die nachfolgende Gleichung (1) wählt den vorbestimmten minimalen Pixelwert aus der Gruppe Qmin(Rs, i) (Gleichung (1a)) aus, die den aktuellen minimalen Pixelblock-Wert ersetzt. MAXI{f(x)} zeigt an, dass der maximale Wert von i, der die Bedingung innerhalb der Klammern erfüllt, verwendet werden soll, um Qmin zu erzeugen.
- Qmin = MAXi{Qmin(Rs, i) Qmin(Rs, I)< = Xmin; 0< = I< = 7, (1) wobei
- Qmin (Rs, i) = INT{i((256-Rs)/7)}; 0< = i< = 7. (1a)
- In diesen Gleichungen ist i der Indexwert, der durch drei Bits in dem Überschuss-Parameter-Feld dargestellt wird. INT{f(x)} zeigt an, dass nur der ganzzahlige Teil des resultierenden Werdes verwendet wird. Der Ausdruck f(x) innerhalb der Klammern ist repräsentativ für irgendeinen Ausdruck, z. B. den in Gleichung (1), auf den die Funktion INT einwirkt. Für den vorbestimmten Bereich von 256 wird kein minimaler Wert gespeichert, denn der minimale Wert für 256 ist null (0) für ein Acht-Bit- Wort. Für den vorbestimmten Bereich von 16 wird der ursprüngliche Acht-Bit-Minimum-Wert verwendet, weil die Auflösung für diesen Bereich klein relativ zu den Minimum-Werten ist, die aus der Gleichung (1) verfügbar sind. Die Verwendung der Gleichung (1) zur Erzeugung eines Minimum-Wertes für den Bereich von 16 kann bewirken, dass aktuelle Pixelwerte bei der Rekonstruktion aus den rekonstruierten Daten herausfallen. Der Minimum-Wert ist ein Versatz, der den Abstand zwischen null und dem Minimum-Block- Pixelwert darstellt.
- Die Gleichung (1) kann einen vorbestimmten Bereich wählen, der nicht ausreicht, um die aktuellen Pixelblock-Werte abzudecken, wenn der quantisierte Pixelblock rekonstruiert wird, weil vorbestimmte Minimum-Werte kleiner als der aktuelle Minimum-Wert sind. Wenn beispielsweise in einem gegebenen Pixelblock der Minimum-Pixelwert 100 ist und der Maximum-Pixelwert 140, dann ist der ausgewählte 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 Maximum-Pixelwert. Daher werden alle Werte des Pixelblocks durch die ausgewählten vorbestimmten Werte dargestellt. Wenn jedoch der Maximum--Pixelblock-Wert statt dessen 160 ist, bleiben die ausgewählten vorbestimmten Werte dieselben, stellen aber nicht vollständig die Domäne des Pixelblocks dar (160> 146). In diesem Fall wird der nächsthöhere vorbestimmte Bereich von 96 ausgewählt, und ein neuer ausgewählter vorbestimmter Minimum- Wert ist 91. Die Summe von 91 und dem vorbestimmten Bereich von 96 ist 187, was größer ist als der aktuelle Maximum-Pixelblock- Wert von 160. Daher liefern die Quantisierungs- und Dequantisierungs-Tabellen, die aus diesem Bereich ausgewählt werden, Pegel für alle Pixel in dem Block. Der Quantisierungs-Abbildner 28 führt die oben beschriebene Analyse aus, um zu bestimmen, ob die erste Auswahl des vorbestimmten Bereiches und der Minimum- Pixelwerte gültig ist, oder ob der nächstgrößere vorbestimmte Bereich erforderlich ist.
- Wenn - wie früher festgestellt wurde - das Vorhersage- Netzwerk seine Vorhersage-Werte aus Pixelwerten innerhalb desselben Blocks ableitet, dann liegt die Differenz (E) zwischen einem aktuellen Pixelwert und dem vorhergesagten Pixelwert innerhalb der folgenden Grenzen:
- - Bereich< E< Bereich, worin (2)
- Bereich = Xmax - Xmin + 1 (3)
- In Gleichung (2) ist E der Vorhersagefehler. In Gleichung (3) sind Xmax und Xmin die aktuellen Maximum- bzw. Minimum- Block-Pixelwerte. Daher definiert der Bereich von Pixel-Daten aus dem Block die Werte, die Quantisierungs- und Dequantisierungs-Tabellen empfangen, und die Grenzen, die die Tabellen für diesen besonderen Block vorsehen müssen. Wenn der Bereich kleiner als der Maximum-Wert der Wortgröße (256 für ein Acht-Bit- Wort) ist, dann kann die Auflösung der Quantisierungs- und Dequantisierungs-Tabellen erhöht werden.
- Sowohl Luma- als auch Chroma-Daten werden mit beeinflussten negativen Vorhersagefehlern verarbeitet. Daher sind die Quantisierungs- und Dequantisierungs-Tabellen für Luma- und Chroma- Daten so ausgelegt, dass sie nur positive Eingangswerte annehmen. Quantisierungs- und Dequantisierungs-Tabellen, die beeinflusste negative Vorhersage-Fehlerwerte verwenden, haben die doppelte Auflösung wie Tabellen, die nur für den Bereich des Pixelblocks ausgelegt sind. Die Auflösung wird verdoppelt, weil die Tabellen nur Abdeckwerte von null bis zum positiven Bereichswert benötigen, statt alle Werte zwischen dem negativen und positiven Bereich. Fig. 6A, 6B und 6C zeigen Drei-Bit-, Vier-Bit- bzw. Fünf-Bit-Tabellen für den vorbestimmten Bereich von 64. Vor der Quantisierung stellt der Vorhersagefehler- Prozessor 27 (Fig. 2) fest, ob der Vorhersagefehler von dem Kombinator 22 positiv oder negativ ist. Wenn der Wert positiv ist, verläuft er ungeändert zum Quantisierungs-Abbildner 28. Wenn der Wert negativ ist, fügt der Vorhersagefehler-Prozessor den vorbestimmten Bereich zu dem negativen Vorhersage-Fehlerwert hinzu, bevor der Wert zum Quantisierungs-Abbildner 28 durchgelassen wird. Da ein negativer Vorhersage-Fehlerwert innerhalb der Domäne des negativen Bereichswerts ist, führt das Hinzufügen des positiven Bereichswertes zu dem negativen Vorhersage-Fehlerwert zu einem beeinflussten (biased) Fehlerwert. Dieser beeinflusste Fehlerwert ist positiv (größer als null) und kleiner als der positive Bereichswert. Der Quantisierungs-Abbildner 28 empfängt sowohl die beeinflussten als auch die unbeeinflussten Vorhersage-Fehlerwerte und quantisiert sie mit einer Quantisierungs- Tabelle, die an die Domäne des positiven vorbestimmten Bereichs angepasst ist. Quantisierte Fehlerwerte werden zum Multiplexer 32 durchgelassen und dann im Speicher 14 unter Steuerung einer System-Steuereinheit (nicht dargestellt) gespeichert. Da die Tabelle nur Werte von null bis zum Bereich -1 quantisiert, anstatt von dem negativen Bereichtswert zu dem positiven Bereichswert, wird die Auflösung der Tabelle verdoppelt.
- Fig. 4 ist ein Blockschaltbild des Dequantisierers 26 von Fig. 1. Unter Steuerung eines System-Mikroprozessors empfängt der Demultiplexer 34 ein Datenpaket, das ein Parameter-Feld und quantisierte Daten enthält. Der Demultiplexer 34 sendet den Minimum-Pixelwert-Index und den vorbestimmten Bereichs-Index zu dem min-max-Bereichs-Dekodierer (MMRD) 38. Der Demultiplexer 34 sendet den komprimierten ersten Pixelwert zum ersten Pixel- Dekodierer 37, der auch die vorbestimmten rekonstruierten Bereichs- und Minimum-Pixel-Werte vom MMRD 38 empfängt. Der erste Pixel-Dekodierer 37 verwendet diese drei Werte, um das Bezugs- Pixel zu rekonstruieren und sendet es zum Prediktor 24. Bei der Dequantisierung sendet der Demultiplexer 34 die quantisierten Werte zum Dequantisierungs-Abbildner 36, der die Vorhersage- Fehlerwerte dequantisiert und sie zur Addierstufe 39 durchlässt. Die Addierstufe 39 addiert den vorhergesagten Wert zu dem dequantisierten Fehlerwert und lässt das Ergebnis zum Vorhersagefehler-Prozessor 35 durch, der das Ergebnis mit dem rekonstruierten Maximum-Pixelblock-Wert vergleicht. Wenn der Fehlerwert so beeinflusst wurde, dass vor der Quantisierung ein negativer Wert in einen positiven Wert umgewandelt wurde, ist das Ergebnis größer als der rekonstruierte Maximum-Pixelwert. Wenn nicht, ist das Ergebnis kleiner als oder gleich dem rekonstruierten Maximum-Pixelwert. Wenn der Vorhersagefehler- Prozessor 35 bestimmt, dass der Fehlerwert beeinflusst wurde, wird der vorherbestimmte Bereichswert von dem Ergebnis subtrahiert, wodurch die auf der Quantisierungsseite des Netzwerks eingeführte Beeinflussung korrigiert wird. Der Vorhersagefehler- Prozessor 35 und der erste Pixel-Dekodierer 37 lassen die rekonstruierten Daten einschließlich des Bezugs-Pixels in der geeigneten Reihenfolge zu einem Ausgangs-Netzwerk (nicht dargestellt) durch.
- Die für den Dequantisierer 26 verfügbaren Werte sind quantisierte und/oder kodierte Werte. Der rekonstruierte quantisierte Minimum-Pixelwert (Qmin) muss kleiner als der oder gleich dem aktuellen Minimum-Pixelwert sein, und der rekonstruierte quantisierte Maximum-Pixelwert (Qmax) und der rekonstruierte quantisierte Bereichswert müssen größer als oder gleich ihren aktuellen Werten sein. MMRP 30 garantiert, dass diese Erfordernisse erfüllt werden, wie zuvor erläutert wurde. Da jeder Pixelwert größer als oder gleich Qmin sein muss, führt das Hinzufügen des vorbestimmten Bereichs zu irgendeinem rekonstruierten Pixelwert, der eine Beeinflussung enthält, allgemein zu einem Wert, der größer als Qmax um wenigstens eins ist.
- Jedoch kann das Quantisierungs-Rauschen Nq eine falsche Bestimmung verursachen, ob der Quantisierer 20 einen negativen Vorhersage-Fehlerwert festgestellt und den Wert beeinflusst hat. Das Quantisierungs-Rauschen ist die Differenz zwischen dem aktuellen Pixelwert und dem rekonstruierten Wert, die durch die Auflösung in den verlustreichen Quantisierungs-Tabellen verursacht wird. Der Vorhersagefehler-Prozessor 35 addiert den rekonstruierten Pegel zu dem vorbestimmten Bereich und vergleicht das Ergebnis mit Qmax. Wenn das Ergebnis größer als Qmax ist, wird der vorbestimmte Bereich von dem Ergebnis subtrahiert, um den richtigen rekonstruierten Pixelwert zu erhalten. Wenn Nq aber positiv ist, kann es bewirken, dass das Ergebnis größer als Qmax ist, und der Vorhersagefehler-Prozessor 35 würde fälschlich einen beeinflussten Vorhersagefehler identifizieren. Wenn Nq negativ ist, kann es ebenfalls bewirken, dass das Ergebnis kleiner als Qmax ist, und der Vorhersagefehler-Prozessor 35 würde fälschlich einen unbeeinflussten Vorhersagefehler identifizieren.
- Fig. 5A veranschaulicht, wie der Quantisierungs-Abbildner 28 (Fig. 2) gewährleistet, dass sein Ausgang nicht aufgrund des Quantisierungs-Rauschens fehlinterpretiert wird. Der Quantisierer 80 liefert drei Ausgänge für jeden quantisierten Pixelwert. Die drei Werte sind der beste Rekonstruktions-Pegel für den Entscheidungs-Punkt der Quantisierungs-Tabelle (I), und der Rekonstruktions-Pegel an beiden Seiten des besten Pegels (I+1, I- 1). Der Kombinator 84 berechnet den rekonstruierten Pixelwert für den besten Rekonstruktions-Wert, und das Ergebnis wird mit Qmax durch den Kombinator 86 verglichen. Wenn der Vorhersagefehler beeinflusst war (S2 ist negativ) und das Ergebnis vom Kombinator 86 kleiner als Qmax ist (S1 ist negativ), ist es möglich, dass bei der Rekonstruktion der Vorhersagefehler-Prozessor 35 fälschlich bestimmt, dass der dequantisierte Vorhersage- Fehlerwert nicht beeinflusst war. Um dieses Problem zu verhindern, wird das Code-Wort, das dem nächstgrößeren Rekonstruktions-Pegel für den Vorhersagefehler entspricht, zum Multiplexer 32 geschickt. Wenn der Vorhersagefehler nicht beeinflusst war (S2 ist positiv) und das Ergebnis vom Kombinator 86 größer als Qmax ist (S1 ist positiv), ist es möglich, dass bei der Rekonstruktion der Vorhersagefehler-Prozessor 35 fälschlich bestimmt, dass der dequentisierte Vorhersage-Fehlerwert beeinflusst war. Um dieses Problem zu verhindern, wird das Code-Wort, das dem nächstkleineren Rekonstruktions-Pegel für den Vorhersagefehler entspricht, dem Multiplexer 32 zugeleitet. In allen anderen Fällen wird der beste Pegel ausgewählt und zum Multiplexer 32 geleitet.
- Wenn der erste oder letzte Pegel in einer Quantisierungs- Tabelle der beste ist, wird nur der nächstgrößere oder kleinere Quantisierungs-Pegel mit dem besten Pegel versehen. Fig. 5B zeigt eine Wahrheits-Tabelle, die die Wahlen vom Quantisierer 80 veranschaulicht, die für die Ausgabe durch den Quantisierungs- Abbildner 28 verfügbar sind, und wenn die Auswahleinheit 82 jede dieser Wahlen verwendet. Da das Quantisierungs-Rauschen bewirken kann, dass die Analyse der Beeinflussungs-Fehlerkorrektur 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 allgemein nicht groß ist, wählt der Quantisierungs-Abbildner 28 normalerweise den besten Quantisierungs-Pegel. Wenn der Quantisierungs-Abbildner 28 den nächstgrößeren oder kleineren Pegel wählt, induziert die Wahl einen hinzugefügten Fehler in das rekonstruierte Pixel. Der Fehler wird jedoch durch Wahl des am nächsten liegenden Pegels minimiert, der das Problem in einer Tabelle korrigiert, deren Auflösung viel besser ist als bekannte DPCM-Quantisierungs-Tabellen. Im allgemeinen verursacht diese Korrektur keine merkbare Verschlechterung der Qualität des angezeigten Bildes.
- Die Quantisierungs-Auflösung wird oft mehr als gerade um den Faktor zwei erhöht, was von der Beeinflussung negativer Vorhersagefehler herrührt, um positive Werte zu erzeugen. 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 die Vier-Bit-Tabelle genau die Vorhersage-Fehlerwerte in einer verlustlosen Weise. Die Auflösung nimmt um einen Faktor 16 von einem Bereich von 256 (für acht Bits) auf 16 (256/16) zu. Durch den Bedarf nur positiver Werte in der Quantisierungs- /Dequantisierungs-Tabelle für denselben positiven Bereichswert niummt die Auflösung um einen weiteren Faktor von zwei auf einen Gesamt-Faktor von 32 zu. Dieser Prozess kann dazu verwendet werden, die Zunahme der Auflösung für Quantisierungs- /Dequantisierungs-Tabellen zu berechnen, die von irgendeinem der vorherbestimmten Bereichswerte abgeleitet werden.
- Wenn MMRP 30 (Fig. 2) einen Chroma-Pixelblock abtastet und einen vorbestimmten Bereich aus der Gruppe von sieben auswählt, können die Daten skaliert werden, um die aktuellen Quantisierungs-Tabellen zu reduzieren, die zum Komprimieren der Daten erforderlich sind. Für die vorbestimmten Bereiche von 32, 192 und 256 gibt es eine Gruppe von drei angepassten Tabellen. Dies sind die Drei-, Vier- und Fünf-Bit-Tabellen, die früher diskutiert wurden. Daten, die zu drei der anderen vorbestimmten Bereiche passen, werden um einen Faktor zwei aufwärts skaliert. Pixelblöcke, die zu dem vorbestimmten Bereich von 32 passen, werden skaliert, um die Quantisierungs-Tabellen zu nutzen, zu denen der Bereich von 64 Zugriff hat. Für Pixelblöcke, die zum vorbestimmten Bereich von 96 passen, werden die Quantisierungs-Tabellen für 192 verwendet. In gleicher Weise werden für die Pixelblöcke, die zum vorbestimmten Bereich von 128 passen, die Quantisierungs-Tabellen für 256 verwendet. Das Skalieren der Daten vermindert die Kompliziertheit von Hardware und Software und vermindert die Menge von Festspeichern (ROM), die in dem Netzwerk erforderlich sind. Bei der Rekonstruktion werden skalierte Pixelblöcke nach der Dequantisierung durch zwei geteilt, um eine Datengenauigkeit zu beizubehalten.
- Alle Quantisierungs-Tabellen sowohl für Luma- als auch Chroma-Daten sind so aufgebaut, dass sie zu ihrem Mittelpunkt symmetrisch sind. Fig. 6A, 6B und 6C zeigen die Drei-, Vier- und Fünf-Bit-Quantisierungs-Tabellen für den vorbestimmten Bereich von 64. Die Symmetrie erlaubt, dass eine Hälfte jeder Tabelle in einem ROM gespeichert wird, während eine einfache Hardware- Schaltung die andere Hälfte der Tabelle ausführt. Dies vermindert die Größe des ROM, wodurch die Herstellungskosten vermindert werden.
- Quantisierungs-Tabellen sind für eine einfache Gruppe von Beziehungen ausgelegt, die unten angegeben ist, wobei eine Symmetrie um den Mittelpunkt der Tabelle besteht. In diesen Beziehungen ist I der Quantisierungs-Pegel-Index; Dt ist der I. Entscheidungs-Punkt; QI ist der I. Rekonstruktions-Pegel; M ist die Gesamtzahl von Pegeln in einer Tabelle; und Rd ist der Quantisierungsbereich. Ein Entscheidungs-Punkt ist der Wert, bei dem ein Pixelwert, der in eine Quantisierungs-Tabelle eingegeben wird, sich innerhalb der Tabelle von einem Pegel zu einem anderen bewegt. Die Beziehungen sind wie folgt:
- M ist eine gerade Zahl; (4)
- DI + DM - 1 - I = Rd-1 für 0< = I< = (M/2) - 1; (5)
- Q0 = 0; (6)
- QM/2 = Rd/2; (7)
- QI + QM - I = Rd für 1< = I< = M/2. (8)
- Die Tabellen in Fig. 6A, 6B und 6C sind im Einklang mit diesen Beziehungen wie auch alle Quantisierungs-Tabellen, die in dem Netzwerk verwendet werden. Wenn die Tabellen Vorhersage- Fehlerwerte akzeptiert haben, die nicht beeinflusst waren, in anderen Worten sowohl positive als auch negative Werte, dann würde M eine ungerade Zahl sein.
- Die Ausgangs-Code-Wort-Symbole dieser Tabellen haben auch Beziehungen, um eine Symmetrie zu gewährleisten, wobei vorteilhafterweise nur die Hälfte der Tabellen in ROM gespeichert werden. Alle Symbole in diesen Beziehungen sind dieselben wie in den Beziehungen oben. Die einzigen Hinzufügungen sind CI, das das Code-Wort für den I. Pegel ist und n, das die Zahl von Bits in dem Code-Wort ist. Diese Beziehungen sind wie folgt:
- CI = 0 und cm - I = 1 für kurze Code-Worte; (9)
- CO = (2n) - 2; (10)
- cm/2 = (2n) - 1; (11)
- CI = 2I für 2< = I< = (M/2) - 1; (12)
- C (M/2) + I = C (M/2) - I + 1 für 1< = I< = (M/2) - 1. (13) Die Beziehungen (9) bis (13) sind in den Tabellen in binärer Form dargestellt. Wenn die Tabellen Vorhersage-Fehlerwerte akzeptiert haben, die nicht beeinflusst waren, in anderen Worten sowohl positive als auch negative Werte, dann würde es auch eine ungerade Zahl von Drei-Bit-Code-Worten geben.
- Die Beziehung (9) definiert die statistisch optimale Platzierung für die Drei-Bit-Code-Worte für Quantisierungs-Tabellen, die DPCM-Vorhersage-Fehlerwerte empfangen. Durch Platzieren der kurzen Code-Worte bei Rekonstruktions-Pegeln, zu denen höchstwahrscheinlich Zugriff genommen wird, wird das System optimiert, um Speicher-Bits für andere Zwecke einzusparen. Die Verwendung von kurzen Code-Worten vermindert die Zahl von in einer Quantisierungs-Tabelle verfügbaren Pegeln, aber die Bit-Einsparungen sind bedeutender als der Auflösungs-Verlust, weil im allgemeinen genug Bits im Speicher eingespart werden, um eine Anpassung an die Überschuss-Information zu bewirken und den Vier-Bit- Durchschnitt pro Code-Wort aufrechtzuerhalten.
- Da die Tabellen symmetrisch zu ihrem Mittelpunkt sind, braucht nur die Hälfte der Tabellen-Pegel einschließlich des Mittelpunkt-Pegels tatsächlich im Speicher gespeichert zu werden. Die verbleibenden Pegel können durch Schaltungen abgebildet werden. Fig. 7 zeigt eine einfache Hardware-Ausführung zur Abbildung der verbleibenden Tabellen-Rekonstruktionswerte bei der Dequantisierung und gibt alle konstruierten Acht-Bit-Pixelwerte für beide Hälften der Tabellen aus.
- Die Kodier-Steuereinheit 29 (Fig. 2) und die Dekodier- Steuereinheit 33 (Fig. 4) führen gegenseitig ähnliche, aber inverse Operationen für Chroma-Pixelblöcke aus. Sie enthalten beide vier Register, die die Zahl von Pixeln zählen, die für jeden Block verarbeitet wird, und die Zahl von Bits, die konserviert oder für Überschuss-Informationen benötigt wird. Ein Register, das Bereichs-Register, ist ein Kennzeichen-Register, das identifiziert, welcher vorbestimmte Bereich den gegenwärtig verarbeiteten Pixelblock darstellt. Unter Verwendung der Register wählen die Steuereinheiten 29 und 33 für jedes verarbeitete Pixel entweder die Drei-, Vier- oder Fünf-Bit-Quantisierungs-Tabelle aus und stellen sicher, dass der Pixelblock, der alle Überschuss- Informationen enthält, auf eine vorbestimmte Größe für die Speicherung im Speicher 14 komprimiert und dann dekomprimiert und in den ursprünglichen Pixelblock rekonstruiert wird.
- Die Überschuss-Informationen, die für Chroma-Daten enthalten sind, erfordern eine vorbestimmte Zahl von Bits je nach den Block-Parametern, die gespeichert werden sollen. Fig. 8 zeigt die Zahl von Überschuss-Bits, die für jeden Block-Parameter für jeden vorbestimmten Bereich benötigt werden. Für jedes Pixel einschließlich des Bezugs-Pixels ist ein Durchschnitt von vier Bits im Speicher 14 reserviert. Die Steuereinheit 29 kompensiert vier weniger Bits als die Gesamtzahl von Bits, die für den Überschuss verwendet wird. Die Zahl von als Kompensation für Überschuss-Bits für jeden vorbestimmten Bereich benötigten Bits ist in der letzten Reihe von Fig. 8 dargestellt.
- Der primäre Gegenstand der Steuereinheit 29 ist die Kodierung jedes Pixels mit entweder den Vier- oder Fünf-Bit-Tabellen, und um nur die Drei-Bit-Tabelle zu verwenden, wenn gewährleistet werden muss, dass alle Blockpixel in den reservierten Raum passen. Die kurzen Drei-Bit-Code-Worte in den Vier- und Fünf-Bit- Tabellen sorgen für die beste Möglichkeit, diesen Gegenstand zu erfüllen. Da die kurzen Code-Worte statistisch innerhalb der Tabellen in Pegeln platziert sind, zu denen am wahrscheinlichsten DPCM-Daten Zugriff nehmen sollen, wird jeder Block oft ohne Verwendung der Drei-Bit-Quantisierungs-Tabelle komprimiert. Ferner werden allgemein mehrere Pixel innerhalb eines gegebenen Pixelblocks mit Fünf-Bit-Code-Worten quantisiert, wodurch die Auflösung und die Anzeigequalität erhöht wird. Wenn der Pixelblock jedoch nicht oft genug Zugriff zu den kurzen Code-Worten in den Vier- und Fünf-Bit-Quantisierungs-Tabellen nimmt, um die erforderliche Zahl von Überschuss-Bits zu kompensieren, nimmt die Steuereinheit 29 Zugriff zu der Drei-Bit-Quantisierungs-Tabelle. Die Steuereinheit 29 identifiziert die letzten N Bits in jedem Pixelblock als Pixel mit niedriger Priorität (LPP), wobei N die Zahl von kompensierten Überschuss-Bits für diesen Pixelblock ist. Beruhend auf den Zählern, die identifizieren, wenn ein LPP verarbeitet wird und wie viele Überschuss-Bits unkompensiert bleiben, wählt die Steuereinheit 29 die Drei-Bit-Quantisierungs- Tabelle für LPP's aus. Die Steuereinheit 29 wählt so lange die Drei-Bit-Quantisierungs-Tabelle nicht aus, bis die Zahl von verbleibenden, zu komprimierenden Pixeln gleich der Zahl von Überschuss-Bits ist, die unkompensiert bleiben.
- Fig. 9A, 9B und 9C zeigen ein Fließdiagramm der Steuereinheiten 29 und 33. Beide Steuereinheiten arbeiten in derselben Weise und führen dieselben Schritte aus, um einen Pixelwert entweder zu komprimieren oder zu dekomprimieren. Um die Erläuterung der Steuereinheiten 29 und 33 zu vereinfachen, wird nur die Kompressions-Steuereinheit 29 erklärt.
- Beim Start werden vier Register beim Beginn jedes Chroma- Pixelblocks initialisiert. Das Bereichs-Register wird gemäß dem vorbestimmten Bereich für den gegenwärtigen Pixelblock kodiert. Das Überschuss-Register wird auf die Zahl der Überchuss-Bits gesetzt, die die Steuereinheit 29 kompensieren muss, wie in Fig. 8 dargestellt ist. Dieses Register wird schrittweise jedes Mal um ein vermindert, wenn ein LPP verarbeitet wird. Das Bit-Einspar- Register wird auf den negativen Wert des Überschuss-Registers ausgelöst und jedes Mal um einen Schritt erhöht, wenn ein kurzes Code-Wort verwendet wird. Das Pixel-Zählwert-Register wird auf den negativen Wert der Zahl von Pixeln in dem gegenwärtigen Pixelblock ausgelöst. Das Register wird jedes Mal um einen Schritt erhöht, wenn ein Pixel verarbeitet wird. Die Pixel-Zählung dient zur Identifizierung, ob das verarbeitete Pixel ein LPP ist.
- Beim Start in Fig. 9A verläuft ein Acht-Bit-Pixelwert zum Schritt 100 und identifiziert, ob das Pixel ein Pixel mit niedriger Priorität (LFP) ist. Trifft dies zu, fügt der Schritt 102 Bit-Einsparungen und einen Überschuss hinzu und vergleicht das Ergebnis mit null. Dies ist ein bedeutsamer Schritt, denn wenn bis zu diesem Punkt nicht ausreichend Bits eingespart worden sind, wird Zugriff zur Drei-Bit-Quantisierungs-Tabelle genommen, und es wird ein Drei-Bit-Code-Wort verwendet, um das Pixel beim Schritt 104 zu komprimieren. Da das gegenwärtige Pixel ein LPP ist, können alle vorhergehenden verarbeiteten Pixel nicht mit den kurzen Drei-Bit-Code-Worten in der Vier-Bit-Tabelle ausreichend oft komprimiert worden sein, um alle Überschuss-Bits in diesem Pixelblock zu kompensieren. Wenn daher die Register-Werte von Bit-Einsparungen plus Überschuss > 0, muss ein Bit hier eingespart werden, und die Drei-Bit-Tabelle mit niedriger Auflösung wird dazu verwendet, das Pixel zu komprimieren. Zur gleichen Zeit werden die Bit-Einsparungs- und Pixel-Zähl-Register einen Schritt erhöht, und das Überschuss-Register wird um einen Schritt vermindert. An diesem Punkt wird das Pixel komprimiert, und das nächste Pixel wird von Start verarbeitet.
- Wenn im Schritt 102 das Ergebnis größer als null ist, bestimmt der Schritt 106, wenn Bit-Einsparungen größer als null sind. Wenn dies nicht der Fall ist, werden gerade genug Bits eingespart, um den Überschuss an diesem Punkt zu kompensieren, und es gibt dieselbe Zahl von LPP's, die verbleibt, wie nicht kompensierte Überschuss-Bits vorhanden sind. Dann schaltet der Schritt 104 die Bit-Einsparungs- und Pixel-Zählung fort, vermindert den Überschuss um einen Schritt und gibt das Drei-Bit-Code-Wort aus der Drei-Bit-Tabelle aus. Wenn die Bit-Einsparungen im Schritt 106 nicht größer als null sind, prüft der Schritt 108 den eindeutigen Umstand der Bit-Einsparung = null und des Bereiches - 16. Wenn dies zutrifft, nimmt der Schritt 110 Zugriff zu der 16- Pegel-, Vier-Bit-Quantisierungs-Tabelle ohne kurze Code-Worte, weil es keine Notwendigkeit gibt, ein Bit für dieses Pixel einzusparen. Die Pixel-Zählung wird fortgeschaltet, der Überschuss wird um einen Schritt zurückgeschaltet, und das nächste Pixel wird für die Kompression wiedergewonnen. Wenn das Ergebnis vom Schritt 8 nein ist, wird zur Vier-Bit-Tabelle für den gegenwärtigen vorbestimmten Bereich beim Schritt 112 Zugriff genommen. Der Schritt 114 prüft, ob der Pixelwert in einen kurzen Code- Wort-Pegel der Vier-Bit-Tabelle fällt. Wenn dies zutrifft, erhöht der Schritt 116 die Bit-Einsparungs- und Pixel-Zählung, vermindert den Überschuss und gibt das Drei-Bit-Code-Wort aus. Wenn dies nicht der Fall ist, schaltet der Schritt 118 die Pixel-Zählung fort, vermindert den Überschuss und gibt das Vier- Bit-Code-Wort aus. Nach den beiden Schritten 116 und 118 wird das nächste Pixel für die bei Start beginnende Verarbeitung wiedergewonnen.
- Zurückgehend zum Schritt 106 und daran erinnernd, dass das Pixel im Schritt 110 als LPP bestimmt wurde, wenn Bit- Einsparungen größer als null sind, setzt sich der Prozess in Fig. 9B fort. Da die Bit-Einsparungen größer als null sind, ist eine mehr als ausreichende Zahl von Bits zu diesem Punkt in dem Pixelblock eingespart worden. Daher wird beim Schritt 120 die hochauflösende Fünf-Bit-Tabelle verwendet. Die Fünf-Bit-Tabelle enthält kurze Code-Worte, und der Schritt 120 bestimmt, ob der Pixelwert in einen kurzen Code-Wort-Pegel der Tabelle fällt. Wenn dies nicht zutrifft, schaltet der Schritt 132 die Pixel- Zählung fort, schaltet die Bit-Einsparungen und den Überschuss zurück und gibt ein Fünf-Bit-Code-Wort aus. Wenn dies der Fall ist, fügt der Schritt 124 die Bit-Einsparungs- und die Pixel- Zählwerte hinzu, um zu bestimmen, ob zu viele Bits eingespart worden sind. Wenn die Zahl von eingesparten Bits zu groß wird, wird die System-Synchronisation nicht aufrechterhalten. Um dies und die Notwendigkeit für einen Puffer zum Halten der komprimierten Daten zu verhindern, bis das System seinen Betrieb aufnimmt, können Drei-Bit-Code-Worte in null eingebettet werden. Das Ergebnis von Schritt 124 bestimmt den Weg, dem die Pixel- Kompression folgt. Wenn das Ergebnis kleiner als null ist, dann sind nicht genug Bits eingespart worden, und es erfolgt beim Schritt 126 keine Null-Einbettung. Bit-Einsparungs- und Pixel- Zählwerte werden um einen Schritt erhöht, der Überschuss wird um einen Schritt vermindert, und das Drei-Bit-Code-Wort wird ausgegeben. Wenn das Ergebnis gleich null ist, dann spart das Drei- Bit-Code-Wort ein Bit zu viel ein. Daher wird im Schritt 128 das Code-Wort bei einer Null eingebettet, der Pixelwert wird um einen Schritt erhöht, der Überschuss wird um einen Schritt vermindert, und das eingebettete Vier-Bit-Code-Wort wird ausgegeben. Wenn das Ergebnis vom Schritt 124 gleich eins ist, dann spart das Drei-Bit-Code-Wort zwei Bits zu viel ein. Daher wird beim Schritt 130 das Code-Wort bei zwei Nullen eingebettet, der Pixel-Zählwert wird um einen Schritt erhöht, die Bit-Einsparungen und der Überschuss werden um einen Schritt vermindert, und das eingebettete Fünf-Bit-Code-Wort wird ausgegeben. Nach den Schritten 126, 128, 130 und 132 ist die Kompression des Pixels vollendet, und das nächste Pixel wird für die Verarbeitung bei Start wiedergewonnen.
- Wenn beim Schritt 100 das Pixel nicht als LPP identifiziert wird, geht der Prozess zum Schritt 124, wo Bit-Einsparungen mit null verglichen werden. Wenn Bit-Einsparungen nicht größer als null sind, werden die Schritte von 108 bis 118 durch die Schritte 136 bis 146 mit einem Unterschied wiederholt. Die Schritte 110, 116 und 118 vermindern den Überschuss um einen Schritt, weil für diese Wege das verarbeitete Pixel ein LPP ist, während in den Schritten 138, 144 und 146 das verarbeitete Pixel ein LPP ist und der Überschuss nicht um einen Schritt vermindert wird.
- Wenn die Bit-Einsparungen beim Schritt 134 größer als null sind, wiederholen die Schritte 148 bis 160 die Schritte von 120 bis 132 unter Verwendung der Fünf-Bit-Tabelle und der Null- Einbettungs-Analyse. Da wiederum das während der Schritte 148 bis 160 verarbeitete Pixel kein LPP ist, wird der Überschuss in den Schritten 154, 156, 158 und 160 nicht um einen Schritt vermindert. Nach allen Schritten 138, 144, 146, 154, 156, 158 und 160 ist die Kompression vollständig, und das nächste Pixel wird für die Verarbeitung beginnend bei Start wiedergewonnen.
- Der Gegenstand der Steuereinheit 29 ist die Verarbeitung jedes Chroma-Pixels mit der Quantisierungs-Tabelle mit der höchsten Auflösung. Da die Pixel-Datenwerte räumliche Darstellungen sind, enthält jeder Pixelwert Informationen, die für die Anzeige wichtig sind, im Gegensatz zu transformierten Block-Daten, die die meisten ihrer Informationen am Beginn des Blocks enthalten. Dies liegt daran, weil jedes Pixel individuell verarbeitet wird, wobei seine relative Position in dem Pixelblock und die Zahl von Bits, die die Steuereinheit 29 kompensieren muss, in Betracht gezogen wird.
- Unter erneutem Bezug auf Fig. 1 speichert der Speicher 14 den quantisierten Pixelblock und das Parameter-Feld, bis diese nicht länger für die Pixel-Rekonstruktion und die Anzeige benötigt werden. Während der Zeit, in der die Daten sich im Speicher 14 befinden, kann zu ihnen Zugriff genommen werden, und sie können durch einen nachfolgenden Anzeige-Prozessor über den Dekompressor 16 unter Steuerung eines Mikroprozessors unter Verwendung eines gemeinsamen Datenbusses kodiert werden. Der Kompressor 12 und der Dekompressor 16 befinden sich in einer gemeinsamen integrierten Schaltung und weisen den gleichen Aufbau und die gleiche Konstruktion auf, um die integrierte Schaltung zu vereinfachen. Der Speicher 14 befindet sich vorteilhafterweise außerhalb der integrierten Schaltung, wodurch ermöglicht wird, dass die Größe des Speichers 14 nach Bedarf ausgewählt wird, um eine Anpassung an die Signalverarbeitungs-Erfordernisse eines bestimmten Systems zu erreichen. Dies führt zu einer Einsparung von Herstellungskosten, z. B. bei einem Verbraucher- Fernsehempfänger mit verminderten Kosten unter Verwendung einer Anzeige mit verminderter Auflösung, die für den MPEG-Dekodierer weniger Vollbild-Speicherung erfordert. Obwohl sich der Speicher 14 außerhalb der integrierten Schaltung befinden kann, können ferner einheitliche Speicher-Architekturen einen unbenutzten Speicherbereich innerhalb des Speichers 14 für die Benutzung durch andere System-Komponenten zulassen. Dies reduziert weiter die gesamten Systemkosten und erhöht die Brauchbarkeit des gesamten Systems. Ferner ist ein eingesparter Speicherbereich üblicherweise durch andere System-Komponenten verwendbar, die das Gesamt-Vermögen des Systems erhöhen.
- Fig. 10 stellt Teile eines praktischen digitalen Signalverarbeitungs-Systems in einem Fernsehempfänger dar, das eine Vorrichtung gemäß der zuvor erläuterten vorliegenden Erfindung enthält. Das digitale Fernsehempfänger-System von Fig. 10 ist so vereinfacht, dass die Zeichnung nicht mit übermäßigen Einzelheiten belastet wird. Beispielsweise sind keine FIFO-Eingangs- und -Ausgangspuffer, die verschiedenen Elementen zugeordnet sind, Lese/Schreib-Steuerungen, Taktgenerator-Netzwerke und Steuersignale zu Schnittstellen mit externen Speichern dargestellt, die vom ausgedehnten Daten-Ausgangstyp (EDO) oder vom synchronen Typ (SDRAM), Rambus DRAM (RDRAM) oder einer anderen Art von RAM ausgedehnt werden können.
- Gemeinsame Elemente in Fig. 1 und Fig. 10 sind gleich bezeichnet. Elemente im Signal-Prozessor 72 entsprechen mit Ausnahme der Einheit 70 Elementen, die in der integrierten Schaltung Sti 3500A MPEG-2/CCIR 600 Video-Decoder gefunden werden, die von SGS-Thomson Microelectronics verfügbar ist.
- Kurz gesagt enthält das System von Fig. 10 einen Mikroprozessor 40, eine Bus-Schnittstellen-Einheit 42 und eine Steuereinheit 44, die mit einem internen Steuerbus 46 verbunden ist. Bei diesem Beispiel befindet sich der Mikroprozessor 40 extern von der integrierten Schaltung, die den MPEG-Dekodierer 72 enthält. Ein 192 Bit breiter interner Speicherbus 48 bildet eine Leitung für Daten zu dem und von dem Kompressor 12, ähnlichen Dekompressoren 16 und 50 und einem externen Vollbildspeicher 14. Die Einheiten 12, 16 und 50 empfangen Kompressions- und Dekompressions-Faktor-Steuersignale vom Mikroprozessor 40 über die Steuereinheit 44 zusammen mit Auslöse-Steuersignalen. Auch enthalten ist eine örtliche 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 liefert. Die Speicher-Steuereinheit 52 erzeugt Echtzeit-Adressen und Steuersignale zur Steuerung des Speichers 14. Die Speicher-Steuereinheit 52 liefert auch Ausgangs-Taktsignale Clock Out in Abhängigkeit von Eingangs-Steuersignalen Clock In von einem örtlichen Taktgenerator (nicht dargestellt). Der Mikroprozessor 40 unterteilt den Speicher 14 in Bit-Puffer, Video- Vollbild-Speicherabschnitte und Vollbild-Speicher-Puffer für die MPEG-Dekodierung und die Anzeige-Verarbeitung und On-Screen- Anzeige-Darstellungen.
- Der Anzeige-Prozessor 54 enthält Horizontal- und Vertikal- Neuabtast-Filter, die dazu benötigt werden, ein dekomprimiertes Bildformat in ein vorbestimmtes gemeinsames Format für die Anzeige durch eine Bild-Wiedergabe-Anzeigevorrichtung 56 umzuwandeln. Beispielsweise kann das System Bildsequenzen empfangen und dekodieren, die Formaten wie 525 Zeilensprung, 1125 Zeilensprung oder 720 Zeilen progressiver Abtastung entsprechen. Ein Fernsehempfänger wird wahrscheinlich ein gemeinsames Anzeige-Format für alle Empfänger-Formate verwenden.
- Externe Schnittstellen-Netzwerke 58 übertragen Steuer- und Konfigurations-Informationen zwischen dem MPEG-Dekodierer und dem externen Mikroprozessor 40 zusätzlich zu komprimierten Eingangs-Video-Daten für die Verarbeitung durch den MPEG- Dekodierer. Das MPEG-Dekodierer-System gleicht einem Koprozessor-Prozessor für den Mikroprozessor 40. Beispielsweise gibt der Mikroprozessor 40 an den MPEG-Dekodierer einen Dekodierungsbefehl für jedes zu dekodierende Vollbild aus. Der Dekodierer lokalisiert die zugeordnete Header-Information, die der Mikroprozessor 40 dann liest. Mit dieser Information gibt der Mikroprozessor 40 Daten zur Konfigurierung des Dekodierers aus, zum Beispiel in Bezug auf den Vollbild-Typ, Quantisierungs-Matrizen, und so weiter, worauf der Dekodierer geeignete Dekodierungs- Befehle ausgibt. Material über technische Vorschriften für die oben erwähnte integrierte Schaltungsvorrichtung SGS-Thomson Sti 3500A liefern zusätzliche Informationen für eine solche Art von Operation des MPEG-Dekodierers.
- Der Mikroprozessor 40 überträgt Betriebsarten-Steuerdaten, die vom Hersteller des Empfängers programmiert sind, zur Speicher-Steuereinheit 52 zur Steuerung der Operation des Multiplexers 32 (Fig. 2) und des Multiplexers 34 (Fig. 4), und zur Errichtung der Kompressions/Dekompressions-Faktoren für die Einheiten 12, 16 und 50, wie erforderlich. Das offenbarte System kann mit allen Profilen und allen Pegeln der MPEG-Vorschrift in Verbindung mit verschiedenen digitalen Datenverarbeitungs- Schemata verwendet werden, die zum Beispiel terrestrischen Rundfunk-, Kabel- und Satelliten-Übertragungssystemen zugeordnet sind.
- Fig. 10 zeigt auch einen Teil eines digitalen Videosignal- Prozessors 72, den man in einem Fernsehempfänger zur Verarbeitung eines Video-Eingangssignals mit hoher Auflösung finden kann. Der Signalprozessor 72 kann in einer integrierten Schaltung enthalten sein, die Maßnahmen zum Verarbeiten und zum Empfang von Videosignalen mit Normauflösung über einen analogen Kanal (nicht dargestellt) vorsieht. Der Signalprozessor 72 enthält einen üblichen MPEG-Dekodierer, der durch Blöcke 60, 62, 64, 66, 68 und 70 einschließlich eines Vollbild-Speichers 14 gebildet wird. Beispielsweise beschreibt Ang et al. In "Video Compression Makes Big Gains", IEEE Spectrum, Oktober 1991, den Betrieb eines MPEG-Kodierers und -Dekodierers.
- Der Signalprozessor 72 empfängt einen gesteuerten Datenstrom von gemäß MPEG kodierten Daten aus einem vorhergehenden Eingangs-Prozessor (nicht dargestellt), z. B. einem Transport- Dekodierer, der Datenpakete nach Eingangs-Signal-Demodulation trennt. Bei diesem Beispiel stellt der empfangene Eingangs- Datenstrom Bildmaterial mit hoher Auflösung (1920 · 1088 Pixel) dar, wie in der Grand Alliance-Vorschrift für das US- terrestrische Fernseh-Rundfunk-System mit hoher Auflösung 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 stellen die-Datenblöcke komprimierte, kodierte Intra-Vollbild- und Inter-Vollbild- Informationen dar. Die Intra-Vollbild-Informationen umfassen I- Vollbilder und Anker-Vollbilder. Im allgemeinen umfassen die Inter-Vollbild-Informationen vorhersagende bewegungskodierte restliche Informationen, die die Bild-Differenz zwischen benachbarten Vollbildern darstellen. Die Inter-Vollbild- Bewegungskodierung beinhaltet die Erzeugung von Bewegungs- Vektoren, die den Versatz zwischen einem gerade verarbeiteten gegenwärtigen Block und einem Block in einem zuvor konstruierten Bild darstellen. Der Bewegungs-Vektor, der die beste Anpassung zwischen dem gegenwärtigen und den vorherigen Blöcken darstellt, wird kodiert und übertragen. Auch die Differenz (restlich) zwischen jedem bewegungskompensierten 8 · 8-Block und dem früher rekonstruierten Block wird einer diskreten Cosinus- Transformation (DCT) unterworfen, quantisiert und in der Länge kodiert (VLC), bevor eine Übertragung erfolgt. Verschiedene Veröffentlichungen einschließlich Ang et al. - wie oben zitiert - beschreiben bewegungskompensierte Kodierungs-Prozesse in größeren Einzelheiten.
- Der Puffer 60 akzeptiert die Eingangs-komprimierten 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 Fall eines Haupt-Pegel-Haupt- Profil-MPEG-Datenstroms auf. Der inverse Quantisierer 64 und der inverse diskrete Cosinus-Transformierer (IDCT) 66 dekomprimiert dekodierte komprimierte Daten vom VLD 62. Ausgangs-Daten vom IDCT 66 werden einem Eingang der Addierstufe 68 zugeführt.
- Ein Signal vom Puffer 60 steuert die Quantisierungs- Schrittgröße des inversen Quantisierers 64, um einen glatten Datenfluss sicherzustellen. VLD 62 liefert dekodierte Bewegungs- Vektoren an eine Bewegungs-Kompensations-Einheit 70, was noch erläutert wird. VLD 62 erzeugt auch ein Inter/Intra-Vollbild- Betriebsart-Auswahl-Steuersignal wie bekannt (der Einfachheit halber nicht dargestellt). Die von den Einheiten 62, 64 und 66 ausgeführten Operationen sind invers zu entsprechenden Operationen eines beim Sender befindlichen Kodierers.
- Durch Summierung der restlichen Bilddaten von der Einheit 66 mit vorhergesagten Bilddaten, die vom Ausgang der Einheit 70 geliefert werden, sieht die Addierstufe 68 ein rekonstruiertes Pixel vor, das auf dem Inhalt des Video-Vollbildspeichers 14 beruht. Wenn der Signalprozessor 72 ein vollständiges Vollbild von Pixelblöcken verarbeitet hat, speichert der Vollbildspeicher 14 das resultierende rekonstruierte Bild. Bei der Inter-Vollbild- Betriebsart liefern die von dem VLD 62 erhaltenen Bewegungs- Vektoren den Ort der vorhergesagten Blöcke von der Einheit 70.
- Der Bild-Rekonstruktions-Prozess mit der Addierstufe 68, dem Speicher 14 und der Bewegungs-Kompensations-Einheit 70 weist vorteilhafterweise beträchtlich verminderte Speicheranforderungen aufgrund der Verwendung des Block-Kompressors 12 vor der Datenspeicherung in dem Vollbildspeicher 14 auf. Die Größe des Vollbildspeichers 14 kann bis zu fünfzig Prozent (50%) vermindert werden, wenn beispielsweise ein Kompressions-Faktor von 50% verwendet wird. Die Einheit 50 führt die inverse Funktion der Einheit 12 aus und ist gleich dem Dekompressor 16, der oben beschrieben wurde. Der Dekompressor 50 rekonstruiert den Bild- Block, so dass der Bewegungs-Kompensator 70 wie oben beschrieben funktionieren kann. Der Kompressor 12 und die Dekompressoren 16 und 50 sind gemäß den Prinzipien der vorliegenden Erfindung aufgebaut. Fig. 1, 2, 4, 5A und 17 veranschaulichen Einzelheiten innerhalb der Einheiten 12, 16 und 50.
Claims (8)
1. Digitales Bildverarbeitungssystem zum Empfang eines
Datenstroms (10) von komprimierten Bild-Pixelblöcken,
enthaltend:
- Mittel (72) zum Dekomprimieren der komprimierten
Pixelblöcke;
- eine erste Schaltung (12) zum Rekomprimieren von
Pixel-Darstellungen von einem dekomprimierten
Pixelblock, so dass die Durchschnittszahl von Bits für eine
rekomprimierte Luminanz-Pixel-Darstellung wenigstens
ein Bit größer ist als die für eine rekomprimierte
Chrominanz-Pixel-Darstellung;
- einen Speicher (14) zum Speichern der rekomprimierten
Pixel-Darstellungen;
- eine Vorhersagevorrichtung (18) zum Erzeugen von
Vorhersage-Fehlerwerten als den Pixel-Darstellungen;
- eine zweite Schaltung (30) zum Ableiten eines Block-
Parameters aus dem Pixelblock;
- einen Vorhersage-Fehlerprozessor (27) zum Beeinflussen
negativer Vorhersage-Fehlerwerte, um positive Werte
vor der Rekompression zu erzeugen;
- eine Steuereinheit (29), um zu gewährleisten, dass ein
rekomprimierter Pixelblock und der Block-Parameter
gleich einer vorherbestimmten Zahl von Bits sind.
2. System nach Anspruch 1, bei dem die zweite Schaltung (30)
den Bereich von Pixelwerten des Pixelblocks an eine
Gruppe von vorbestimmten Bereichen anpasst und einen
vorbestimmten Bereich auswählt, und wobei der vorbestimmte
Bereich Zugriff zu einer Gruppe von Kompressionstabellen
nimmt, die auf den vorbestimmten Bereich zugeschnitten
sind.
3. System nach Anspruch 2, bei dem die zugeschnittenen
Tabellen ein kurzes Code-Wort enthalten.
4. System nach Anspruch 2, bei dem die zugeschnittenen
Tabellen symmetrisch sind.
5. System nach einem der Ansprüche 1 bis 4, bei dem der
Block-Parameter kodiert und als Parameterfeld des
rekomprimierten Pixelblocks angeordnet ist, und wobei das
Parameterfeld und der rekomprimierte Pixelblock eine
Datenpaket bilden.
6. System nach einem der Ansprüche 1 bis 4 oder Anspruch 5,
wenn abhängig von einem der Ansprüche 2 bis 4, bei dem
der Block-Parameter ein minimaler Pixelwert oder ein
maximaler Pixelwert, oder der Bereich oder der vorbestimmte
Bereich ist.
7. System nach einem der Ansprüche 1 bis 6, bei dem der
Datenstrom (10) ein gemäß MPEG kodierter Datenstrom ist.
8. Digitales Bildverarbeitungssystem zum Verarbeiten von
gemäß MPEG kodierten Bild-Pixelblöcken, die Luminanz- und
Chrominanz-Daten enthalten, wobei die Luminanzdaten durch
mehr Pixel als die Chrominanzdaten dargestellt werden,
enthaltend:
- einen ersten Dekompressor (72) zum Dekomprimieren von
komprimierten Pixelblöcken;
- eine Schaltung (12) zum Rekomprimieren von Pixel-
Darstellungen aus einem dekomprimierten Pixelblock in
rekomprimierte Pixel-Darstellungen;
- einen Vollbildspeicher (14) zum Speichern der
rekomprimierten Pixel-Darstellungen, worin
- der dekomprimierte Pixelblock Luminanz- und
Chrominanz-Daten enthält, die auf eine vorbestimmte Durchschnittszahl
von Bits rekomprimiert sind, wobei die
Durchschnittszahl von Bits für eine Luminanz-Pixel-
Darstellung wenigstens ein Bit größer ist als die für
eine Chrominanz-Pixel-Darstellung;
- ein Vorhersage-Netzwerk zur Verarbeitung von
Vorhersage-Fehlerwerten;
- einen zweiten Dekompressor (16) zum Dekomprimieren der
rekomprimierten Pixel-Darstellungen in rekonstruierte
Pixel;
- einen Anzeigeprozessor (54) zum Empfangen von Pixel-
Informationen aus dem Speicher (14) zu einer Bild-
Anzeigevorrichtung (56), die eine Auflösung aufweist,
die größer als die NTSC-Norm-Auflösung ist, und worin
- die rekomprimierten Pixel-Darstellungen die
Vorhersage-Fehlerwerte sind;
- wobei die Vorhersage-Fehlerwerte differentielle
Impuls-Code-Modulationswerte sind; und
- wobei die Rekompression durch Beeinflussen negativer
Vorhersagefehler, positive Vorhersagefehler zu werden,
erleichtert wird.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US3360896P | 1996-12-17 | 1996-12-17 | |
US08/911,525 US6256347B1 (en) | 1996-12-17 | 1997-08-12 | Pixel block compression apparatus in an image processing system |
PCT/US1997/022329 WO1998027736A2 (en) | 1996-12-17 | 1997-12-09 | Pixel block compression apparatus in an image processing system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69714071D1 DE69714071D1 (de) | 2002-08-22 |
DE69714071T2 true DE69714071T2 (de) | 2002-12-12 |
Family
ID=26709904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69714071T Expired - Lifetime DE69714071T2 (de) | 1996-12-17 | 1997-12-09 | Vorrichtung zur kompression von pixelblöcken in einem bildverarbeitungssystem |
Country Status (12)
Country | Link |
---|---|
US (1) | US6256347B1 (de) |
EP (1) | EP0943210B1 (de) |
JP (1) | JP4216341B2 (de) |
KR (1) | KR100549436B1 (de) |
CN (1) | CN1147161C (de) |
AU (1) | AU7740898A (de) |
BR (1) | BR9713711B1 (de) |
DE (1) | DE69714071T2 (de) |
MY (1) | MY120714A (de) |
TR (1) | TR199901336T2 (de) |
TW (1) | TW376664B (de) |
WO (1) | WO1998027736A2 (de) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6343101B1 (en) * | 1998-01-16 | 2002-01-29 | Ess Technology, Inc. | Frame-based sign inversion method and system for spectral shaping for pulse-coded-modulation modems |
JP3075265B2 (ja) * | 1998-08-12 | 2000-08-14 | ソニー株式会社 | ディジタルスチルカメラおよび画像データの処理装置 |
WO2000026860A1 (en) * | 1998-10-29 | 2000-05-11 | Koninklijke Philips Electronics N.V. | Watermark detection |
US6552749B1 (en) * | 1999-01-29 | 2003-04-22 | Intel Corporation | Method and apparatus for video motion compensation, reduction and color formatting |
US6754764B1 (en) * | 1999-12-21 | 2004-06-22 | Intel Corporation | Method and apparatus for maintaining order in a pipelined process and its application |
US6738423B1 (en) * | 2000-01-21 | 2004-05-18 | Nokia Mobile Phones Ltd. | Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder |
US6459452B1 (en) * | 2000-03-31 | 2002-10-01 | Intel Corporation | System, method, and apparatus for decoding digital video sequences |
JP3464437B2 (ja) * | 2000-07-31 | 2003-11-10 | シャープ株式会社 | デジタル映像信号伝送装置および映像表示装置 |
US6650773B1 (en) * | 2000-09-29 | 2003-11-18 | Hewlett-Packard Development Company, L.P. | Method including lossless compression of luminance channel and lossy compression of chrominance channels |
US6826584B1 (en) * | 2000-12-22 | 2004-11-30 | Sony Corporation | Refinement of interpolated signals |
US7043051B2 (en) * | 2001-02-21 | 2006-05-09 | Lg Electronics Inc. | Proprietary watermark system for secure digital media and content distribution |
US7058201B2 (en) * | 2001-03-28 | 2006-06-06 | Lg Electronics Inc. | Method of embedding watermark into digital image |
KR100493284B1 (ko) * | 2001-05-11 | 2005-06-03 | 엘지전자 주식회사 | 디지털 미디어의 복제 제어 방법 및 시스템 |
US20030112863A1 (en) | 2001-07-12 | 2003-06-19 | Demos Gary A. | Method and system for improving compressed image chroma information |
JP2003110429A (ja) * | 2001-09-28 | 2003-04-11 | Sony Corp | 符号化方法及び装置、復号方法及び装置、伝送方法及び装置、並びに記録媒体 |
ATE358946T1 (de) * | 2002-02-01 | 2007-04-15 | Matsushita Electric Ind Co Ltd | Kodierungsverfahren und dekodierungsverfahren für bewegliche bilder |
CN100574450C (zh) * | 2002-02-01 | 2009-12-23 | 松下电器产业株式会社 | 动画图象编码方法和动画图象编码装置 |
TW588253B (en) * | 2002-10-11 | 2004-05-21 | Via Tech Inc | Data compression method and image data compression device |
US7120195B2 (en) * | 2002-10-28 | 2006-10-10 | Hewlett-Packard Development Company, L.P. | System and method for estimating motion between images |
US7039247B2 (en) * | 2003-01-31 | 2006-05-02 | Sony Corporation | Graphic codec for network transmission |
US7589788B1 (en) * | 2003-02-28 | 2009-09-15 | Intel Corporation | Method and apparatus for video motion compensation, reduction and color formatting |
NO319007B1 (no) * | 2003-05-22 | 2005-06-06 | Tandberg Telecom As | Fremgangsmate og apparat for videokomprimering |
US7502415B2 (en) * | 2003-07-18 | 2009-03-10 | Microsoft Corporation | Range reduction |
US8014450B2 (en) * | 2003-09-07 | 2011-09-06 | Microsoft Corporation | Flexible range reduction |
US7649539B2 (en) * | 2004-03-10 | 2010-01-19 | Microsoft Corporation | Image formats for video capture, processing and display |
WO2006087314A1 (en) * | 2005-02-18 | 2006-08-24 | Thomson Licensing | Method for deriving coding information for high resolution images from low resoluton images and coding and decoding devices implementing said method |
KR100679047B1 (ko) * | 2005-09-29 | 2007-02-05 | 삼성전자주식회사 | 비트 해상도 확장 방법 및 장치 |
US8059712B2 (en) * | 2006-01-13 | 2011-11-15 | Adobe Systems Incorporated | Independently adjusting the quality levels for luminance and chrominance channels in a digital image |
TWI307607B (en) * | 2006-02-13 | 2009-03-11 | Novatek Microelectronics Corp | Pixel data compression and decompression method and device thereof |
KR101464770B1 (ko) * | 2006-04-20 | 2014-11-26 | 텔레폰악티에볼라겟엘엠에릭슨(펍) | 이미지 처리 |
US8880571B2 (en) * | 2006-05-05 | 2014-11-04 | Microsoft Corporation | High dynamic range data format conversions for digital media |
US20080056381A1 (en) * | 2006-08-30 | 2008-03-06 | Chih-Ta Star Sung | Image compression and decompression with fast storage device accessing |
CN100464588C (zh) * | 2007-01-18 | 2009-02-25 | 北京中星微电子有限公司 | 一种数据压缩的方法和装置 |
US8054886B2 (en) * | 2007-02-21 | 2011-11-08 | Microsoft Corporation | Signaling and use of chroma sample positioning information |
KR101415564B1 (ko) * | 2007-10-29 | 2014-08-06 | 삼성디스플레이 주식회사 | 표시 장치의 구동 장치 및 방법 |
US8401071B2 (en) * | 2007-12-19 | 2013-03-19 | Sony Corporation | Virtually lossless video data compression |
CN101488194B (zh) * | 2008-01-18 | 2013-12-25 | 王鑫 | 四方图像编码方法 |
TW201006251A (en) * | 2008-07-30 | 2010-02-01 | Etron Technology Inc | Symbol-sharing differential pulse code modulator/demodulator, multiple differential pulse code modulator/demodulator, image encoding/decoding system and method thereof |
US20100098166A1 (en) * | 2008-10-17 | 2010-04-22 | Texas Instruments Incorporated | Video coding with compressed reference frames |
CN101494788B (zh) * | 2009-01-23 | 2011-07-27 | 炬才微电子(深圳)有限公司 | 视频图像的压缩/解压缩方法与装置 |
US8578058B2 (en) * | 2010-03-10 | 2013-11-05 | International Business Machines Corporation | Real-time multi-block lossless recompression |
UA109312C2 (uk) | 2011-03-04 | 2015-08-10 | Імпульсно-кодова модуляція з квантуванням при кодуванні відеоінформації | |
US8767823B2 (en) * | 2011-03-30 | 2014-07-01 | Industrial Technology Research Institute | Method and apparatus for frame memory compression |
US9485502B2 (en) * | 2012-01-20 | 2016-11-01 | Sony Corporation | Chroma quantization parameter extension |
US9106936B2 (en) | 2012-01-25 | 2015-08-11 | Altera Corporation | Raw format image data processing |
JP2014116733A (ja) | 2012-12-07 | 2014-06-26 | Canon Inc | 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム |
JP2015053590A (ja) * | 2013-09-06 | 2015-03-19 | 三星ディスプレイ株式會社Samsung Display Co.,Ltd. | 画像符号化装置および画像符号化方法 |
US10616578B2 (en) * | 2015-01-30 | 2020-04-07 | Texas Instruments Incorporated | Semi-global matching (SGM) cost compression |
AU2019271411A1 (en) * | 2018-05-15 | 2020-12-03 | Monash University | Method and system of image reconstruction for magnetic resonance imaging |
WO2020056763A1 (en) * | 2018-09-21 | 2020-03-26 | Alibaba Group Holding Limited | Adaptive coding of video coding units based on coding block type |
GB2593522B (en) * | 2020-03-26 | 2023-02-22 | Imagination Tech Ltd | Image data decompression |
GB2593523B (en) * | 2020-03-26 | 2023-06-14 | Imagination Tech Ltd | Image data compression |
Family Cites Families (14)
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 |
US5070402A (en) * | 1987-11-27 | 1991-12-03 | Canon Kabushiki Kaisha | Encoding image information transmission apparatus |
JP2625012B2 (ja) | 1989-02-16 | 1997-06-25 | 富士写真フイルム株式会社 | 画像信号圧縮符号化装置 |
GB2230673A (en) | 1989-04-14 | 1990-10-24 | Philips Electronic Associated | Generating a series of dpcm code words for storing colour image data |
DE69033946T2 (de) | 1989-12-25 | 2002-11-21 | Mitsubishi Denki K.K., Tokio/Tokyo | Kodierungsgerät |
JPH0474063A (ja) * | 1990-07-13 | 1992-03-09 | Matsushita Electric Ind Co Ltd | 画像の符号化方法 |
JPH0662431A (ja) | 1992-08-14 | 1994-03-04 | Oki Electric Ind 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 |
US5541595A (en) | 1994-05-19 | 1996-07-30 | Matsushita Electric Corporation Of America | Variable length code decoder for simultaneous decoding the most significant bits and the least significant bits of a variable length code |
DE59510756D1 (de) | 1994-06-06 | 2003-09-11 | Sci Worx Gmbh | Verfahren zur Codierung/Decodierung eines Datenstroms |
KR970010397B1 (ko) | 1994-10-24 | 1997-06-25 | 엘지전자 주식회사 | 티브이의 색신호 처리 장치 |
EP0778709B1 (de) | 1995-12-04 | 2001-05-23 | STMicroelectronics S.r.l. | MPEG-2 Dekodierung mit reduziertem RAM Bedarf durch ADPCM Rekomprimierung vor der Speicherung von dekomprimierten MPEG-Daten |
EP0842585A2 (de) | 1996-06-05 | 1998-05-20 | Koninklijke Philips Electronics N.V. | Verfahren und vorrichtung zur decodierung codierter digitaler videosignale |
US5844608A (en) * | 1996-12-12 | 1998-12-01 | Thomson Consumer Electronics, Inc. | Picture element processor for a memory management system |
-
1997
- 1997-08-12 US US08/911,525 patent/US6256347B1/en not_active Expired - Lifetime
- 1997-12-09 CN CNB971818185A patent/CN1147161C/zh not_active Expired - Fee Related
- 1997-12-09 TR TR1999/01336T patent/TR199901336T2/xx unknown
- 1997-12-09 KR KR1019997004837A patent/KR100549436B1/ko not_active IP Right Cessation
- 1997-12-09 BR BRPI9713711-1A patent/BR9713711B1/pt not_active IP Right Cessation
- 1997-12-09 AU AU77408/98A patent/AU7740898A/en not_active Abandoned
- 1997-12-09 WO PCT/US1997/022329 patent/WO1998027736A2/en active IP Right Grant
- 1997-12-09 JP JP52777298A patent/JP4216341B2/ja not_active Expired - Fee Related
- 1997-12-09 DE DE69714071T patent/DE69714071T2/de not_active Expired - Lifetime
- 1997-12-09 EP EP97949765A patent/EP0943210B1/de not_active Expired - Lifetime
- 1997-12-16 MY MYPI97006072A patent/MY120714A/en unknown
- 1997-12-17 TW TW086119085A patent/TW376664B/zh not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
JP4216341B2 (ja) | 2009-01-28 |
BR9713711B1 (pt) | 2011-06-28 |
KR100549436B1 (ko) | 2006-02-06 |
BR9713711A (pt) | 2000-05-09 |
WO1998027736A3 (en) | 1998-08-06 |
WO1998027736A2 (en) | 1998-06-25 |
EP0943210A1 (de) | 1999-09-22 |
EP0943210B1 (de) | 2002-07-17 |
TR199901336T2 (xx) | 1999-09-21 |
JP2002514363A (ja) | 2002-05-14 |
CN1147161C (zh) | 2004-04-21 |
TW376664B (en) | 1999-12-11 |
MY120714A (en) | 2005-11-30 |
CN1246246A (zh) | 2000-03-01 |
KR20000057339A (ko) | 2000-09-15 |
US6256347B1 (en) | 2001-07-03 |
AU7740898A (en) | 1998-07-15 |
DE69714071D1 (de) | 2002-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69714071T2 (de) | Vorrichtung zur kompression von pixelblöcken in einem bildverarbeitungssystem | |
DE69719069T2 (de) | Bilddatenprozessor für bildspeichersystem mit erneuter komprimierung | |
DE69626483T2 (de) | Speicherverwaltung in einem Videodekodierer | |
DE69129595T2 (de) | Systeme und Verfahren zur Kodierung alternierender Halbbilder in Zeilensprungbildsequenzen | |
DE69131438T2 (de) | Adaptive Bewegungskompensation für das digitale Fernsehen | |
DE69221191T2 (de) | Verfahren und Vorrichtung zur Prädiktiven Kodierung eines Bildsignals mit Bewegungskompensation | |
DE69120139T2 (de) | Gerät und Verfahren zur adaptiven Kompression von aufeinanderfolgenden Blöcken eines digitalen Videosignals | |
DE69535228T2 (de) | Bildumsetzungsvorrichtung | |
DE69324134T2 (de) | Hdtv empfänger mit einer schaltung zur umsetzung von daten hoher auflösung in daten niedrigerer auflösung | |
DE69425919T2 (de) | Adaptive Komprimierung von digitalen Videodaten | |
DE69313692T2 (de) | Kodierung und Dekodierung zur Videokompression mit automatischer Halbbild/Bild Bewegungskompensation auf der Subpixelebene | |
DE69232063T2 (de) | Adaptive Bewegungskompensation mit mehreren Bewegungskompensatoren | |
DE69719070T2 (de) | Formatieren von rekomprimierten daten in einem mpeg-decoder | |
DE69329983T2 (de) | Bildverarbeitungsverfahren und -vorrichtung | |
DE69116869T2 (de) | Digitale bildkodierung mit einer zufallsabtastung der bilder | |
DE69735028T2 (de) | Videokodierungs- und Videodekodierungsvorrichtung | |
DE69320731T2 (de) | Raum- und Frequenzhybridkodierung eines Videosignals zur Vereinfachung der Bildung von Bildern variabler Auflösung | |
DE69624669T2 (de) | Videokodierer und -dekodierersystem und -methoden | |
DE69416509T2 (de) | Transkoder | |
DE69418525T2 (de) | Bildsignalkodierung mit hoher Wirksamkeit | |
DE69422564T2 (de) | Verfahren zur halbpixel Bewegungskompensation in Bilddekodierung | |
DE69614675T2 (de) | MPEG-2 Dekodierung mit reduziertem RAM Bedürfnis durch ADPCM Rekomprimierung vor der Speicherung von dekomprimierten MPEG-2 Daten, wahlweise nach einem Unterabtastungsalgorithmus | |
DE69231678T2 (de) | Bewegungskompensierte Prädiktionseinrichtung | |
EP0687111A2 (de) | Verfahren zur Codierung/Decodierung eines Datenstroms | |
EP0279053A1 (de) | Verfahren zum Übertragen und zum Wiedergeben von Fernsehbildsequenzen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |