DE69918980T2 - Videokompression mit speicherreduktion, farbrotation und kombinierter signal- und blockrandfilterung - Google Patents

Videokompression mit speicherreduktion, farbrotation und kombinierter signal- und blockrandfilterung Download PDF

Info

Publication number
DE69918980T2
DE69918980T2 DE69918980T DE69918980T DE69918980T2 DE 69918980 T2 DE69918980 T2 DE 69918980T2 DE 69918980 T DE69918980 T DE 69918980T DE 69918980 T DE69918980 T DE 69918980T DE 69918980 T2 DE69918980 T2 DE 69918980T2
Authority
DE
Germany
Prior art keywords
section
compressed
blocks
block
sections
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69918980T
Other languages
English (en)
Other versions
DE69918980D1 (de
Inventor
C. William LYNCH
D. Krasimir KOLAROV
Robert D. Hoover
J. William ARRIGHI
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Interval Research Corp
Palo Alto Research Center Inc
Original Assignee
Interval Research Corp
Palo Alto Research Center Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/079,104 external-priority patent/US6516030B1/en
Priority claimed from US09/079,427 external-priority patent/US6396948B1/en
Priority claimed from US09/079,101 external-priority patent/US7130351B1/en
Priority claimed from US09/079,049 external-priority patent/US6229929B1/en
Application filed by Interval Research Corp, Palo Alto Research Center Inc filed Critical Interval Research Corp
Application granted granted Critical
Publication of DE69918980D1 publication Critical patent/DE69918980D1/de
Publication of DE69918980T2 publication Critical patent/DE69918980T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/649Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding the transform being applied to non rectangular image segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/112Selection of coding mode or of prediction mode according to a given display mode, e.g. for interlaced or progressive display mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/62Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding by frequency transforming in three dimensions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/645Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission by grouping of coefficients into blocks after the transform

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)
  • Processing Of Color Television Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf die Komprimierung und Dekomprimierung von Daten. Insbesondere bezieht sich die vorliegende Erfindung auf eine Videocodeimplementierung mit guter Qualität, die ein gutes Komprimierungsverhältnis für Video mit niedriger Bitrate erreicht.
  • Hintergrund der Erfindung
  • Eine Anzahl von wichtigen Anwendungen bei der Bildverarbeitung erfordert eine sehr kostengünstige, schnelle und hochqualitative Video-Codec-Implementierung (Codec = Codierer/Decodierer), die ein gutes Komprimierungsverhältnis erreicht. Insbesondere ist eine kostengünstige und schnelle Implementierung für Videoanwendungen mit niedriger Bitrate wünschenswert, wie z. B. Videokassettenaufzeichengeräte (VCRs), Kabelfernsehen, Kameras, Set-Top-Boxen und andere Verbrauchervorrichtungen.
  • Eine Möglichkeit zum Erreichen einer schnelleren und kostengünstigeren Codec-Implementierung ist, zu versuchen, den Speicherbetrag zu reduzieren, der durch einen bestimmten Komprimierungsalgorithmus benötigt wird. Ein reduzierter Speicher (wie z. B. RAM) ist besonders wünschenswert für Komprimierungsalgorithmen, die in Hardware implementiert sind, wie z. B. auf einer integrierten Schaltung (oder ASIC). Zum Beispiel kann es unerschwinglich teuer sein, große Beträge eines RAM in eine kleine Videokamera zu platzieren, um eine effizientere Komprimierung von Bildern zu ermöglichen. Üblicherweise werden geringere Mengen von RAM verwendet, um einen bestimmten Codec zu implementieren, aber dies führt zu einem Codec, der weniger effizient und von geringerer Qualität ist.
  • Obwohl erkennbare Vorteile auf dem Gebiet gemacht wurden, und insbesondere mit JPEG- und MPEG-Codierung, liegen immer noch Nachteile bei diesen Techniken vor, die von einer besseren Codec-Implementierung profitieren könnten, die ein höheres Komprimierungsverhältnis unter Verwendung von weniger Speicher erreicht. Zum Beispiel führen sowohl JPEG- als auch Bewegungs-JPEG-Codierung eine Block-für-Block-Komprimierung eines Rahmens eines Bildes durch, um komprimierte, unabhängige Blöcke zu erzeugen. Hauptsächlich werden diese Blöcke unabhängig voneinander behandelt. Anders ausgedrückt komprimieren JPEG-Codierung und andere ähnliche Formen einer Standbildcodierung schließlich einen Rahmen zu einer, Zeit ohne Bezugnahme auf vorangehende oder nachfolgende Rahmen. Diese Techniken ziehen keinen umfassenden Vorteil aus den Ähnlichkeiten zwischen Rahmen oder zwischen Blöcken eines Rahmens und führen somit zu einem Komprimierungsverhältnis, das nicht optimal ist.
  • Andere Codierungstypen, wie z. B. eine MPEG-Codierung, verwenden eine Zwischenrahmen- oder Zwischenfelddifferenzierung, um Rahmen oder Felder zu vergleichen und somit ein besseres Komprimierungsverhältnis zu erreichen. Um jedoch Rahmen zu vergleichen, muss zumindest ein voller Rahmen in einer temporären Speicherung gespeichert sein, um denselben entweder mit einem vorangehenden oder nachfolgenden Rahmen zu vergleichen. Somit, um die I-, B- und P-Rahmen zu erzeugen, die bei diesem Codierungstyp notwendig sind, wird ein Rahmen üblicherweise empfangen und gespeichert, bevor eine Verarbeitung beginnen kann. Die Menge der Bilddaten für einen Rahmen kann untragbar sein, um sie in einem RAM zu speichern, und macht eine solche Codec-Implementierung in Hardware aufgrund der Kosten und der Größe des zusätzlichen benötigten Speichers unpraktikabel. Insbesondere können diese Codec-Implementierungen auf einer integrierten Schal tung oder einer ähnlichen Vorrichtung einfach aufgrund der Menge des erforderlichen Speichers zu teuer sein.
  • Bisherige Bemühungen haben versucht, bessere Komprimierungsverhältnisse zu erreichen. Zum Beispiel wurde die Vorstellung des Durchführens von Operationen in dem DCT-Transformationsbereich auf einen gesamten Rahmen hin zuvor an der UC Berkeley und der University of Washington untersucht, für eine Vielzahl von Anwendungen, wie z. B. Bilddatenbanken (Herzoomen einer Luftoberflächenabbildung mit vielen Details).
  • Es wäre somit wünschenswert, eine Technik zum Erreichen eines verbesserten Komprimierungsverhältnisses für Videobilder zu erreichen, während gleichzeitig die Menge an Speicherung reduziert wird, die durch die Technik verwendet werden muss. Insbesondere wäre es wünschenswert, wenn eine solche Technik die Speichermenge reduziert, die für eine Implementierung auf einer integrierten Schaltung benötigt wird.
  • Grenzen zwischen Blöcken stellen ferner Schwierigkeiten bei der Komprimierung von Videobildern dar. Ein kurzer Hintergrund über Videobilder und eine Beschreibung von einigen dieser Schwierigkeiten wird nun erläutert. 1 stellt ein bekanntes Bilddarstellungsschema dar, das Pixel, Abtastlinien, Streifen und Blöcke verwendet. Rahmen 12 stellt ein Standbild dar, das aus einer einer Vielzahl von Quellen erzeugt wird, wie z. B. einer Videokamera, einem Fernseher, einem Computermonitor etc. Bei einem Bilderzeugungssystem, bei dem ein progressives Abtasten verwendet wird, ist jedes Bild 12 ein Rahmen. Bei Systemen, bei denen eine Zwischenzeilenabtastung verwendet wird, stellt jedes Bild 12 ein Feld aus Informationen dar. Das Bild 12 kann ferner andere Zerlegungen eines Standbildes darstellen, abhängig von dem Typ der Abtastung, die verwendet wird. Informationen in dem Rahmen 12 werden durch eine Anzahl von Pixeln 14 dargestellt. Jedes Pixel stellt wiederum digitalisierte Informa tionen dar und wird häufig durch 8 Bits dargestellt, obwohl jedes Pixel durch eine beliebige Anzahl von Bits dargestellt werden kann.
  • Jede Abtastzeile 16 umfasst eine Anzahl von Pixeln 14, wodurch eine horizontale Linie aus Informationen innerhalb des Rahmens 12 dargestellt wird. Üblicherweise sind Gruppen aus acht horizontalen Abtastlinien in einen Streifen 18 organisiert. Ein Block aus Informationen 20 ist einen Streifen hoch mal eine bestimmte Anzahl von Pixeln breit. Zum Beispiel, abhängig von dem verwendeten Standard, kann ein Block 8 × 8 Pixel, 8 × 32 Pixel oder eine beliebige andere Größe sein. Auf diese Weise wird ein Bild in Blöcke unterteilt, und diese Blöcke werden dann übertragen, komprimiert, verarbeitet oder anderweitig manipuliert, abhängig von der Anwendung. Bei einem NTSC-Video (einem Televisionsstandard unter Verwendung einer Zwischenzeilenabtastung) erscheint z. B. ein Feld aus Informationen bei jedem 60stel einer Sekunde, ein Rahmen (der zwei Felder umfasst) erscheint bei jedem 30stel einer Sekunde und die fortgesetzte Darstellung der Rahmen aus Informationen erzeugen ein Bild. Auf einem Computermonitor unter Verwendung einer progressiven Abtastung wird ein Rahmen aus Informationen auf dem Bildschirm jedes 30stel einer Sekunde aufgefrischt, um die Anzeige zu erzeugen, die ein Benutzer sieht.
  • 2 stellt ein Bild 50 dar, das Block für Block komprimiert und dann zum Betrachten dekomprimiert und präsentiert wurde. Das Bild 50 enthält Blöcke 5258 mit Grenzen oder Kanten zwischen denselben 6268. Das Bild 50 zeigt Blockgrenzen 6268 mit Geisterbildern oder Schatten (Blockbildungsartefakten). Für eine Vielzahl von bekannten Block-für-Block-Komprimierungstechniken werden die Blockgrenzen 6268 sichtbar, da die Korrelation zwischen Blöcken nicht erkannt wird. Obwohl die Blockgrenzen selbst vielleicht nicht sichtbar sind, manifestieren sich diese Blockbildungsartefakte an den Blockgrenzen, wodurch ein nicht akzeptables Bild präsentiert wird.
  • Eine Technik, die zum Komprimieren eines Bildes Block für Block nützlich ist, ist das Verwenden eines 2-6-Biorthogonalfilters zum Umwandeln von Abtastzeilen von Pixeln oder Zeilen von Blöcken. Ein 2-6-Biorthogonalfilter ist eine Abänderung an der Haar-Transformation. Bei dem 2-6-Biorthogonalfilter werden Summen und Differenzen von jedem Paar von Pixeln wie bei der Haar-Transformation erzeugt, aber die Differenzen werden modifiziert (oder „angehoben"), um angehobene Differenzwerte zusammen mit dem Strom von Summenwerten zu erzeugen. Bei dem traditionellen 2-6-Biorthogonalfilter wird der Strom aus Summenwerten dargestellt durch die Formel: si = x2i + x2i+i, wobei die x-Werte einen Strom aus eingehenden Pixeln aus einer Abtastzeile darstellen. Auf ähnliche Weise wird der Strom aus Differenzwerten dargestellt durch die Formel: di = x2i – x2i+1. Der tatsächliche gehobene Strom von Differenzwerten, der zusammen mit dem Strom aus Summenwerten ausgegeben wird, wird dargestellt durch die Formel wi = di – si-1/8 + Si+1/8. Das 2-6-Biorthogonalfilter ist nützlich, da, wie durch die Formel für die gehobenen Werte in „w" ersichtlich ist, jeder resultierende gehobene Wert „w" von einer vorangehenden und einer nachfolgenden Summe von Paaren von Pixeln abhängt (relativ zu der betreffenden Differenz). Leider macht diese Überlappung zwischen Blockgrenzen die Komprimierung von Blöcken abhängig von vorangehenden und nachfolgenden Blöcken und kann enorm komplex zu implementieren werden. Zum Beispiel, um die Kanten der Blöcke korrekt unter Verwendung der obigen Technik zu verarbeiten, kann ein Block nicht unabhängig behandelt werden. Wenn ein Block aus einer Speicherung für eine Komprimierung entfernt wird, muss ein Teil des nachfolgenden Blocks ebenfalls herangebracht werden, und ein Teil des aktuellen Blocks muss in der Speicherung für den nächsten Block zur Verwendung gelassen werden. Diese Komplexität erhöht nicht nur die Größe des Speichers, die erforderlich ist, um ein Bild zu komprimieren, sondern kompliziert ferner den Komprimierungsalgorithmus.
  • Bekannte Techniken haben versucht, Blöcke unabhängig zu behandeln, haben jedoch gemischte Ergebnisse erzielt. Zum Beispiel wird für ein 2-6-Biorthogonalfilter der Wert von w1 berechnet, unter Verwendung der ersten Summe (so) und der dritten berechneten Summe (s2). Die Berechnung des allerersten gehobenen Werts (w0) stellt sich als schwieriger heraus, da keine vorangehende Summe vorliegt, mit der der Wert berechnet werden kann, wenn die Blöcke unabhängig behandelt werden sollen. Dieselbe Schwierigkeit tritt am Ende eines Blocks auf, wenn der abschließende gehobene Wert (wn-1) berechnet werden soll, da wiederum keine spätere Pixelsumme vorliegt, die bei der Berechnung dieses abschließenden gehobenen Werts verwendet wird, wenn die Blöcke unabhängig behandelt werden sollen. (Das heißt, ein Block, der unabhängig behandelt werden soll, sollte nicht auf Informationen aus einem vorangehenden oder nachfolgenden Block basieren.)
  • Eine Lösung, die die bekannte Technik verwendet, ist einfach das Einsetzen von Nullen für die Koeffizienten (die Summenwerte) in diesen Situationen, wenn Datenwerte nicht bekannt sind. Leider bringt diese Praxis Diskontinuitäten in dem Bild zwischen Blöcken ein, und Blockierungsartefakte treten auf, wie in 2 gezeigt ist. Die Artefakte treten hauptsächlich aufgrund von Nullwerten auf, die für einige Werte bei der Berechnung der anfänglichen und der abschließenden gehobenen Werte in dem 2-6-Biorthogonalfilter eingefügt werden. Daher wäre es wünschenswert, wenn eine Technik und eine Vorrichtung, die nicht nur in der Lage wären, Blöcke unabhängig zu verarbeiten, Speicher und Komplexität reduzieren, aber auch Geisterbilder, Schatten und andere Blockbildungsartefakte an Blockgrenzen entfernen würden.
  • Es besteht eine dritte Schwierigkeit, die dem Verarbeiten eines Videosignals zugeordnet ist, das sich auf einen Farbträger bezieht. Eine Farbdrehung von Farbinformationen in einem Videosignal erfordert üblicherweise intensive Berechnungen. Eine Farbdrehung ist häufig erforderlich, um ein Farbsignal von einem Koordinatensystem (oder Farbraum) zu einem anderen zu transformieren. Übliche Koordinatensysteme sind RGB (für Fernsehmonitore), YIQ (für NTSC-Fernsehen) und YUV (für Komponentenvideo und S-Video). Zum Beispiel, für ein Bild, das in dem YUV-System vorliegt (wie bei vielen Zeichenprogrammen), muss eine komplexe Matrixmultiplikation durchgeführt werden, um das Bild in das RGB-System für eine Präsentation auf einem Fernsehmonitor zu setzen. Eine solche Matrixmultiplikation erfordert intensive Berechnungen und größere Vorrichtungen. Zum Beispiel erfordern einige Farbdrehungen mehr Berechnung als der gesamte Rest eines Komprimierungsalgorithmus, und häufig wird eine separate Halbleitervorrichtung verwendet, nur um die Farbdrehung auszuführen. Somit sind bekannte Farbdrehungstechniken relativ langsam und kostspielig.
  • 19 und 20 zeigen ein Beispiel einer bekannten Farbdrehungstechnik. 19 stellt Rahmenabschnitte 12a und 12b dar, die jeweils Y-Farbinformationen und U-Farbinformationen des Rahmens 12 darstellen. Bei diesem Beispiel wird der Rahmen 12 in YUV-Farbkoordinaten dargestellt, die bei Komponentenvideo üblich sind (Y oder Luminanzinformationen, nicht gezeigt). Pixelwerte a(U) 752 und a(V) 754 stellen Pixel in entsprechenden Positionen von Rahmen 12a bzw. 12b dar.
  • 20 stellt eine bekannte Technik 760 für eine Farbdrehung von Informationen in dem Rahmen 12 in ein unterschiedliches Farbkoordinatensystem dar. Jedes Paar aus entsprechenden Pixelwerten 764 (ein Zweieintragsvektor) aus den Rahmenabschnitten 12a und 12b wird multipliziert mit einer Drehmatrix R 762, um Werte 766 in dem neuen Koordinatensystem zu erzeugen. Neue Werte 766 stellen dieselben Farben dar wie die Werte 764, aber unter Verwendung des unterschiedlichen Koordinatensystems. Drehmatrizen R weisen bekannte Werte zum Umwandeln von einem Koordinatensystem in das andere auf und sind 2×2-Matrizen zum Umwandeln in YIQ oder YUV. Die Umwandlung in RGB erfordert eine 3×3-Drehmatrix (eine dreidimensionale Drehung). Somit erfordert eine Farbdrehung entweder zwei oder drei Multiplikationen pro Element (pro Pixel) eines Rahmens. Die bloße Anzahl dieser Multiplikationen macht die Farbdrehung langsam und teuer. Ferner können die Pixelkoeffizienten relativ groß sein, was die Berechnungen weiter intensiviert. Es wäre daher wünschenswert, in der Lage zu sein, eine Farbdrehung an einem Signal auszuführen, ohne die vorangehenden Mengen von Verarbeitungsleistung und die benötigten Vorrichtungsgrößen zu erfordern.
  • Eine vierte Schwierigkeit bei der bekannten Technik existiert im Hinblick auf das Komprimieren von zusammengesetzten Video- und S-Video-Signalen, d. h. Signalen, die Farben und/oder Intensität kombinieren. In den frühen Tagen des Fernsehens wurde entdeckt, dass das Frequenzspektrum eines Schwarz-und-Weiß-Videosignals eine große Anzahl von nicht besetzten Regionen oder „Löchern" aufwies. Basierend auf dieser Entdeckung wurde bestimmt, dass ein Farbträger von ungefähr 3,6 MHz zu dem Schwarz-und-Weiß- (Intensitäts-) Signal hinzugefügt werden könnte, der diese nicht besetzten Regionen in dem Frequenzspektrum des Schwarz-und-Weiß-Signals „ausfüllen" würde. Somit könnten Schwarz-und-Weiß-Signalinformationen zu einem Farbträger hinzugefügt werden, um ein zusammengesetztes Videosignal zu erzeugen, das hauptsächlich Farb- und Schwarz-und-Weiß-Informationen davon abhielte, sich gegenseitig zu stören. Ein solches zusammengesetztes Videosignal 82 und ein Schwarz-und-Weiß-Signal 88 ist in 3 gezeigt. Üblicherweise wird das Farbträgersignal moduliert durch Aufspalten desselben in zwei Phasen 84 und 86 (unter Verwendung einer Quadraturmodulation), die 90° phasenversetzt zueinander sind. Jede Phase trägt eine Farbe für das Farbsignal. Jede Phase wird dann amplitudenmoduliert, wobei die Amplitude jeder Phase die Amplitude ihrer bestimmten Farbe anzeigt. Das Kombinieren der Signale 84, 86 und 88 erzeugt das zusammengesetzte Signal 82. Unter Verwendung bekannter Techniken kann die Kombination der zwei Farbsignale aus jeder Phase des Farbträgers mit dem Schwarz-und-Weiß- (Intensitäts-) Signal kombiniert werden, um die dritte Farbe zu liefern. Zusätzlich dazu, da das menschliche Auge eine Hochfrequenzfarbe nicht erfassen kann, ist der Farbträger häufig bandbegrenzt, was bedeutet, dass sich seine Frequenz nicht bedeutend ändert.
  • Es ist ebenfalls üblich, ein zusammengesetztes Videosignal bei viermal der Farbträgerfrequenz abzutasten, häufig um eine 14,3-MHz-Abtastrate. Das Signal 82 zeigt Abtastpunkte 9096, die eine viermalige Abtastrate für das Farbträgersignal darstellen. Eine solche Abtastrate ermöglicht, dass sowohl der Träger als auch seine zwei Phasen erfasst und gemessen werden; somit können die zwei Phasen des Farbträgers herausgetrennt werden.
  • Bekannte Techniken haben es als schwierig befunden, ein solches zusammengesetztes Videosignal 82 direkt zu komprimieren. Die meisten bekannten Techniken trennen die Farbsignale aus dem Schwarz-und-Weiß-Signal vor der Komprimierung heraus. Somit müssen die Signale 84, 86 und 88 aus dem zusammengesetzten Signal 82 herausgetrennt werden, bevor eine Komprimierung des zusammengesetzten Signals beginnen kann. Diese Farbtrennung ist teuer und zeitaufwendig. Es werden nicht nur üblicherweise drei unterschiedliche Algorithmen benötigt, sondern eine zusätzliche Hardware kann erforderlich sein. Eine Komprimierung in Hardware wird häufig komplexer und kostspieliger gemacht, aufgrund des zusammengesetzten Signals. Eine bekannte Technik trennt das Farbsignal analog heraus, durch Verwenden von passiven Komponenten außerhalb des Chips, der die Komprimierung ausführt. Die drei unterschiedlichen Signale werden dann getrennt in den Komprimierungschip zugeführt, was die Komplexität erhöht. Alternativ kann eine Trennung des Farbsignals auf dem Chip durchgeführt werden, aber dies erfordert extrem große Multiplizierer, die die Größe des Chips bedeutend erhöhen.
  • Daher wäre es wünschenswert, wenn eine Technik eine Komprimierung eines zusammengesetzten Videosignals direkt handhaben könnte, ohne den Bedarf nach einer vorangehenden Trennung der Signale oder nach einer zusätzlichen Hardware. Es könnte besonders wünschenswert sein, dass eine solche Technik auf einer integrierten Schaltung implementiert ist, ohne den Bedarf nach einer chipinternen Trennung oder nach großen Multiplizierern auf dem Chip. Eine solche Technik wäre ebenfalls wünschenswert für S-Video und Komponenten-Video. Im allgemeinen könnte jedes kombinierte Videosignal, das Schwarz-und-Weiß- und Farb-Informationen umfasst, das während einer Komprimierung getrennt werden muss, von einer solchen Technik profitieren.
  • Die Handhabung der unterschiedlichen Typen von Video bei der Komprimierung ist ein fünfter Bereich in der bekannten Technik, der ebenfalls von verbesserten Techniken profitieren könnte. Es gibt drei Hauptvideotypen: zusammengesetztes Video; S-Video; und Komponentenvideo. Ein zusammengesetztes Video ist ein einzelnes Signal, das das Schwarz/Weiß-Signal mit einem Farbträger umfasst. Moduliert auf den Farbträger sind zwei Chrominanzsignale. S-Video ist ein Kompromiss zwischen zusammengesetztem Video und Komponentenvideo. S-Video hat zwei Signale, ein Y-Signal für Schwarz-und-Weiß-Informationen und ein einzelnes Chrominanzsignal. Das einzelne Chrominanzsignal besteht aus einem Farbträger mit U- und V-Farbsignalen, moduliert auf den Farbträger. Das Komponentenvideo enthält drei separate Signale. Ein Y-Signal für Schwarz-und-Weiß-Informationen, ein U-Signal für Chrominanz-1-Informationen und ein V-Signal für Chrominanz-2-Informationen. Wenn eine Komprimierung eines Videosignals an einer integrierten Schaltung in der bekannten Technik durchgeführt wird, wird die Identifikation von einem der drei Typen von Videosignalen und das Vorverarbeiten dieses Signals chipextern durchgeführt. Bekannte Techniken müssen jedoch noch einen effizienten Komprimierungsalgorithmus auf einem einzelnen Chip konstruieren, der in der Lage ist, jeden der drei Typen von Video auf dem Chip selbst zu identifizieren und zu handhaben.
  • Die EP 0 622 961 A2 beschreibt ein Verfahren und eine Vorrichtung zum Codieren/Decodieren von Bildsignalen. Die Komprimierbarkeit und die visuelle Bildqualität des Bildmusters, dessen Zwischenfeldkorrektion der Hochfrequenz abnimmt und Zwischenfeldkorrelation der Niederfrequenz bleibt, werden durch langsame Bewegungen verbessert. Die separate Codierung der Zwischenfeldkomponenten wird in jedem Feld an einem ersten und einem zweiten Feld des Bildsignals durchgeführt und durch ein Verhindern der Wirkung der Zwischenfeldbewegung im Vorhinein wird das Abfallen der Komprimierbarkeit durch die Bewegung vermieden und ferner werden neue Blöcke aufgebaut durch das Ergebnis und die Niederfrequenzkomponenten der zwei Felder. Da die separate Komponentencodierung in dem Rahmen durchgeführt wird, können die Niederfrequenzkomponenten, die nicht ohne weiteres durch die langsame Bewegung beeinträchtigt werden, effizient codiert werden, und als ein Ergebnis kann die Komprimierbarkeit für ein Bild, das langsame Bewegungen enthält, erhöht werden.
  • Es ist die Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren und eine verbesserte integrierte Schaltung zu liefern, die eine effiziente Komprimierung von Videosignalen liefern.
  • Diese Aufgabe wird erreicht durch ein Verfahren gemäß Anspruch 1 und durch eine integrierte Schaltung gemäß Anspruch 17.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren und eine integrierte Schaltung zum Dekomprimieren von Signalen geschaffen, die gemäß der vorliegenden Erfindung komprimiert wurden.
  • Ein erstes Ausführungsbeispiel der vorliegenden Erfindung verwendet eine temporäre Komprimierung von Abschnitten eines Bildes während der Gesamtkomprimierung der kompletten Sequenzen von Bildern, um die Menge der benötigten temporären Speicherung zu reduzieren. Insbesondere reduziert dieses Ausführungsbeispiel die temporäre Speicherung um einen Faktor von 10, die für eine Videokomprimierung benötigt wird, die auf einer Zwischenfeld- und Zwischenrahmen-Transformation basiert. Bei einer spezifischen Implementierung dieses Ausführungsbeispiels werden eingehende Bilddaten verarbeitet und Block für Block komprimiert und in eine temporäre Speicherung platziert und dann für einen Vergleich mit nachfolgenden Blöcken dekomprimiert, vor der schließlichen endgültigen Komprimierung der Informationen. Eine temporäre Block-für-Block-Komprimierung und die temporäre Komprimierung dieser Blöcke (zwischen Rahmen z. B.) ermöglicht nicht nur eine Reduzierung bei der benötigten temporären Speicherung, sondern zieht ferner einen Vorteil aus der Beziehung zwischen zugeordneten Blöcken eines Bildes, um ein besseres Bild zu erzeugen, wenn die Informationen schließlich dekomprimiert werden. Das Ziehen eines Vorteils aus einem temporären Vergleich mit nachfolgenden Blöcken vor der schließlichen abschließenden Komprimierung der Informationen. Eine temporäre Block-für-Block-Komprimierung und die temporäre Komprimierung dieser Blöcke (z. B. zwischen Rahmen) ermöglicht nicht nur eine Reduzierung der benötigten temporären Speicherung, sondern zieht ferner einen Vorteil aus der Beziehung zwischen zugeordneten Blöcken eines Bildes, um ein besseres Bild zu erzeugen, wenn die Informationen abschließend dekomprimiert werden. Das Ziehen eines Vorteils aus der temporären Komprimierung erzeugt ferner ein höheres Komprimierungsverhältnis. Insbesondere ist diese Technik besonders nützlich für einen Codec, der auf einer integrierten Schaltung implementiert ist, wie z. B. wo weniger temporäre Auf-dem-Chip-Speicherung benötigt wird, und der Chip kleiner und schneller gemacht werden kann. Eine Implementierung eines solchen leistungsstarken Codec auf einer relativ kleinen und kos tengünstigen integrierten Schaltung liefert eine effiziente und hochqualitative Videokomprimierung in einer kleinen Vorrichtung, wie z. B. einer Kamera oder einem anderen Verbraucherartikel.
  • Kurz gesagt komprimiert dieses erste Ausführungsbeispiel Daten Block für Block vor einem Vergleichen von einem Block eines ersten Bildes mit seinem entsprechenden Block in dem nächsten nachfolgenden Bild unter Verwendung einer Haar-Transformation. Der resultierende Block kann dann codiert und ausgegeben werden, in einer komprimierteren Form. Bekannte Techniken verwenden den Vorteil nicht, einen Block temporär zu komprimieren und ihn zu speichern, während darauf gewartet wird, dass sein entsprechender Block eingegeben wird. Zum Beispiel werden bei einer JPEG- und Bewegungs-JPEG-Komprimierung Videobilder allgemein Block für Block verarbeitet und Blöcke werden in komprimierter Form ausgegeben. Es besteht keine Absicht des temporären Speicherns von komprimierten Blöcken, um Blöcke eines vorangehenden Bildes mit entsprechenden Blöcken eines nachfolgenden Bildes zu vergleichen. Andere Komprimierungsalgorithmen, wie z. B. jene, die bei MPEG verwendet werden, speichern temporär Blöcke, um einen Block eines Rahmens mit seinem entsprechenden Block in einem späteren Rahmen zu vergleichen. Die Speicherung dieser Blöcke auf einer integrierten Schaltung (oder einer anderen Vorrichtung) erfordert jedoch eine extreme Speichermenge, die die Vorrichtung unnötig groß macht und eine Hemmung darstellt, einen Vergleich von entsprechenden Blöcken durchzuführen. Vorteilhafterweise speichert die vorliegende Erfindung Blöcke in einer komprimierten Form zum Vergleich mit entsprechenden Blöcken eines späteren Bildes. Weit weniger Speicher wird auf der Vorrichtung benötigt, um diese komprimierten Blöcke zu speichern. Ferner wird weniger Speicherbandbreite zum Übertragen dieser komprimierten Blöcke zwischen einem Speicher und einer Verarbeitungseinheit benötigt.
  • Bei einem spezifischen Ausführungsbeispiel wird ein Block übertragen, quantisiert und codiert, vor einer temporären Speicherung in einer äußerst komprimierten Form. Später, wenn ein entsprechender Block aus einem späteren Rahmen ankommt, wird der entsprechende Block auf ähnliche Weise komprimiert und gespeichert. Als nächstes werden beide Blöcke zurück in den Transformationsbereich decodiert. Vorteilhafterweise ist es nicht notwendig, die Rückwärtstransformation an den gespeicherten Blöcken nach dem Decodieren derselben auszuführen. Die zwei Blöcke können in dem Transformationsbereich verglichen werden. Sobald die zwei Blöcke verglichen wurden, wird das Ergebnis codiert und als ein serieller Bitstrom in einer wesentlich komprimierten Form ausgegeben.
  • Dieses Ausführungsbeispiel reduziert bedeutend die Ressourcen, die in Hardware oder Software für eine Zwischenrahmen- oder Zwischenfeld-Videokomprimierung erforderlich sind. Die Erfindung ermöglicht den vorteilhaften Vergleich von Rahmen oder Feldern, aber macht den Bedarf für eine temporäre Speicherung eines vollständigen Rahmens oder Feldes offensichtlich. Genauer gesagt umfassen die erreichten Vorteile: weniger erforderliche temporäre Speicherung (wie z. B. weniger RAM auf einer ASIC); geringere Speicherbandbreitenanforderungen zwischen temporärer Speicherung (weniger Stifte an einer Vorrichtung und/oder schnellerer Durchsatz); reduzierte Berechnungen, die für Zwischenrahmen- oder Zwischenfeld-Vergleiche benötigt werden; Nutzen mit vielen Komprimierungsschemata, wie z. B. JPEG, MPEG, H.263 und ähnlichem, Wavelet-Komprimierungsschemata etc.; können mit einer Transformation verwendet werden; und können mit einer Vielzahl von Standards verwendet werden, wie z. B. einer progressiven Abtastung und einer Zwischenzeilenabtastung. Ferner kann das Codieren von Blöcken unter Verwendung von einer aus einer breiten Vielzahl von Techniken durchgeführt werden.
  • Ein weiterer wichtiger Vorteil gegenüber bekannten Komprimierungsvorrichtungen ist, dass intensive Operationen, wie z. B. Bewegungskompensation bei MPEG, nicht durchgeführt werden. Im Gegensatz zu bekannten Vorrichtungen, wie z. B. dem ADV601, der von Analog Devices, Inc., verfügbar ist, die Multiplizierer erfordern, verwendet die vorliegende Erfindung Verschiebung und Addierung für Berechnungen. Das Ergebnis ist eine schnellere Technik und weniger erforderlicher Raum. Ferner sind bekannte MPEG-Komprimierungsvorrichtungen, die eine intensive Bewegungskompensation ausführen, viel komplexer und teurer (auf Geld bezogen) als ihre entsprechenden Dekomprimierungsvorrichtungen. Im Gegensatz dazu weisen Komprimierung und Dekomprimierung bei der vorliegenden Erfindung ähnliche Komplexitäten auf; eine Komprimierungsvorrichtung gemäß der vorliegenden Erfindung ist relativ gesehen weniger komplex und weniger teuer als eine MPEG-Komprimierungsvorrichtung.
  • Wie oben erwähnt wurde, ist ein wichtiger Vorteil, dass frühere Rahmen (oder Felder oder Blöcke), die als Prädiktoren verwendet wurden, fast vollständig in komprimierter Form während des gesamten Prozesses gehalten werden können, wodurch RAM-Anforderungen bedeutend reduziert werden. Dies ist besonders vorteilhaft für eine Implementierung auf einer integrierten Schaltung, wie z. B. einer ASIC, wo ein Speicherungsbereich von einer Hälfte bis zu zwei Drittel des Gesamtbereichs des Chips sein kann. Zum Beispiel, für Zwischenfeldvergleiche, wird nur ein komprimierter Feldpuffer von ungefähr 20 Kbyte pro Feld benötigt. Auf diese Weise können Rahmenpuffer bedeutend reduziert oder vollständig vermieden werden. Bilder können aus den komprimierten Daten und der Differenzierung rekonstruiert werden, die an diesen Daten ausgeführt wird. Da die Hardware zum Decodieren relativ kostengünstig ist, kann der Datenwert von vier oder fünf Rahmen gleichzeitig decodiert werden. Bei einem alternativen Ausführungsbeispiel ist eine Differenzierung nicht erforderlich. Eine XOR-Funktion funktioniert genauso gut ohne Überträge oder Borgen. Hauptsächlich sind die Zeichen aus dem Differenzierungs- (oder XOR-) Feld Null. Ein Nullbaum kann dann verwendet werden, um diese zusätzliche Möglichkeit zwischenzuspeichern. Da XORs umkehrbare Berechnungen sind, ist der einzige Grund, um zu einem vollständig unvorhergesagten Zwischenrahmen zurückzukehren, nur zum Editieren für eine Fehlerwiedergewinnung.
  • Normalerweise ist die Verzögerung während einer Komprimierung nur der Datenwert von einem Streifen, wenn genug Bandbreite vorliegt, um den Ratenstreifen aufgrund einer Zwischencodierung beizubehalten. Wenn niedrigere Raten erwünscht sind, kann die Information über mehrere Felder ausgebreitet werden, was zweimal (einschließlich Codieren und Decodieren) so viele Felder ergibt wie die Verzögerung. Es ist üblicherweise eine Ratenspitze an einem Zwischenrahmen. Bei relativ langen Vorhersagedurchläufen kann jedoch ein Bild ohne weiteres über einige Felder oder Rahmen aufgebaut werden. An dem vorhergesagten Feld werden die höheren Wavelets durch Null vorhergesagt, so dass die „Korrektur" das tatsächliche Wavelet ist. Dies erreicht eine sehr niedrige Rate mit wenigen Verzögerungsrahmen und einigen Rahmen einer Übergangszeit an einem Schnittpunkt.
  • Ein zusätzlicher Vorteil ist, dass Standbilder (wie z. B. während einer Pause), die komprimiert und dekomprimiert wurden, dieselbe Qualität aufweisen wie laufende Bilder. Bekannte Techniken, wie z. B. MPEG, die eine Bewegungskompensation durchführen, arbeiten über eine Anzahl von Rahmen, wodurch laufende Bilder eine gute Qualität aufweisen, aber ein Standbild viel Rauschen haben kann. Im Gegensatz dazu führt die vorliegende Erfindung eine Komprimierung unter Verwendung von zwei Rahmen oder mehr gleichzeitig durch (entweder mit Zwischenfeld- oder Zwischenrahmen-Vergleichen), und Standbilder, die komprimiert wurden, weisen eine viel höhere Qualität auf. Zusätzlich dazu bedeutet eine solche lokale Komprimierung, die nicht von einer Bewegungskompensation und einer Vorhersage zwischen zahlreichen Rahmen abhängt, dass weniger temporäre Speiche rung durch die Technik benötigt wird oder innerhalb einer integrierten Schaltung, die dieselbe implementiert.
  • Bei einem zweiten Ausführungsbeispiel der vorliegenden Erfindung wird ein Verfahren einer Farbdrehung mit einer Komprimierung integriert, die viel weniger Berechnung verwendet. Vorteilhafterweise wird eine Farbdrehung an den Chrominanztransformationspyramiden durchgeführt, nach einer Transformation des Videosignals und nicht dem Durchführen einer Drehung an dem rohen Signal selbst. Viel weniger Berechnungen werden benötigt, um die Farbdrehung auszuführen. Bei einem spezifischen Ausführungsbeispiel wird eine Farbdrehung nicht nur nach der Transformation des Signals, sondern auch nach einer Komprimierung durchgeführt. Eine Farbdrehung kann unter Verwendung einer seriellen Multiplikation (Verschieben und Addieren) durchgeführt werden, für eine effizientere Verarbeitung, und nicht an großen Koeffizienten unter Verwendung einer parallelen Multiplikation.
  • Eine Farbdrehung ist ebenfalls nützlich im Hinblick auf Farbträgerdrift. Üblicherweise driftet der Farbträger langsam im Hinblick auf die horizontalen Abtastlinien. Wenn er einen halben Zyklus (180°) außerhalb der Synchronisierung ist, kehrt er die zwei Farbquadraturen um, was dazu führt, dass ein Farbnegativbild erzeugt wird. Bekannte Techniken beheben dieses Driften ebenfalls durch Durchführen einer Farbdrehung. Eine Korrektur einer Trägerdrift durch Drehung profitiert ebenfalls von den wenigeren Berechnungen, die bei diesem Ausführungsbeispiel benötigt werden.
  • Bei einem dritten Ausführungsbeispiel der vorliegenden Erfindung kann ein zusammengesetztes Videosignal, das sowohl Farb- als auch Schwarz-und-Weiß-Informationen umfasst, direkt komprimiert werden, ohne ein Heraustrennen der Farbinformationen aus dem Schwarz und Weiß zu benötigen. Ein effizienter Komprimierungsalgorithmus wird direkt an dem zusammengesetzten Videosignal verwendet, ohne den Bedarf nach zusätzlichen analogen chipexternen Vorrichtungen zum Heraustrennen von Farbe oder den Bedarf nach großen Multiplizierern auf dem Chip, um Farbe herauszutrennen. Insbesondere wird eine Anzahl von Durchläufen verwendet, um zu ermöglichen, dass das zusammengesetzte Videosignal direkt komprimiert wird. Eine Demodulation des Farbträgers unter Verwendung einer Teilbandtrennung wird bei verschiedenen der Durchläufe durchgeführt, um die Farbträgerinformationen herauszutrennen. Die Teilbandtrennung isoliert ferner die Luminanz- und Chrominanz-Informationen aus dem zusammengesetzten Videosignal. Dieses Ausführungsbeispiel ist an ein kombiniertes Videosignal anwendbar (wie z. B. S-Video), das Farbinformationen und/oder Schwarz und Weiß kombiniert.
  • Bei einem vierten Ausführungsbeispiel ist die vorliegende Erfindung in der Lage, Informationsblöcke unabhängig zu behandeln, was die Komplexität der Komprimierung bedeutend reduziert und die Hardwaremenge reduziert, die benötigt wird. Blöcke können unabhängig aus einer Streifenspeicherung gelesen werden und dann transformiert, quantisiert und codiert werden, vor einem Vergleich mit entsprechenden Blöcken aus anderen Rahmen oder Feldern. Vorteilhafterweise beeinträchtigt diese unabhängige Behandlung von Blöcken nicht die Qualität eines dekomprimierten Bildes. Blockbildungsartefakte, wie z. B. Geisterbilder oder Schatten, werden bedeutend reduziert. Dieses Ausführungsbeispiel zieht einen Vorteil aus der Korrelation zwischen naheliegenden Blöcken eines Feldes und zwischen entsprechenden Blöcken aufeinander folgender Felder.
  • Bei einer spezifischen Implementierung dieses Ausführungsbeispiels wird eine quadratische Zwei-Grad-Näherung durch Kantenpunkte an einem Block gezogen und es wird angenommen, über Blockgrenzen fortzufahren. Wenn ein 2-6-Biorthogonalfilter verwendet wird, um Blockinformationen in aufeinander folgenden Durchläufen zu filtern, wird das 2-6-Filter modifiziert (ein „Grenz"-Filter), durch Liefern spezifi scher numerischer Werte für die anfänglichen und abschließenden gehobenen Differenzen (w0 und wn-1) anstelle des einfachen Zuordnens von Nullwerten für ihre Koeffizienten, wie es in der bekannten Technik gemacht wird. Das Zuweisen spezifischer numerischer Werte für die gehobenen Differenzwerte an den Blockgrenzen ermöglicht, dass jeder Block unabhängig behandelt wird, wobei trotzdem Blockbildungsartefakte reduziert werden, die normalerweise auftreten würden, wenn ein Bild dekomprimiert wird. Bei einer spezifischeren Implementierung eines modifizierten 2-6-Filters hat sich herausgestellt, dass Koeffizienten von -3/8, 1/2 und -1/8 gut für die anfänglich gehobene Differenz w0 funktionieren. Anders ausgedrückt, w0 = d0 – 3/8s0 + 1/2s1 – 1/8s2. Die Koeffizienten von 1/8, -1/2 und 3/8 funktionieren gut für den abschließenden gehobenen Differenzwert wn-1; d. h. wn-1 = dn-1 + 1/8sn-3 – 1/2sn-2 + 3/8sn-1. Es hat sich herausgestellt, dass andere spezifische Koeffizienten erwünschte Ergebnisse auch für unterschiedliche Typen von Wavelet-Filtern erzeugen.
  • Das Grenzfilter dieses vierten Ausführungsbeispiels kann bei einem dieser Durchläufe verwendet werden, die verwendet werden, um die Videodaten zu transformieren, und ist besonders nützlich bei früheren Durchläufen. Für ein Bild, das angemessen glatt in einem quadratischen Sinn ist, sind viele der gehobenen Differenzwerte (der „w"-Werte) Null, und die relevanten Daten liegen in den Summenwerten. Die Daten werden somit hoch in die Summenwerte „gequetscht" und weniger temporäre Speicherung wird benötigt und eine bessere Komprimierung erfolgt, da die vielen Nullwerte während der Codierung reduziert werden können.
  • Die vorliegende Erfindung ist in der Lage, jeden der drei Haupttypen von Video zu handhaben: zusammengesetztes Video; S-Video; und Komponentenvideo. Anfänglich wird der Typ des Videosignals durch einen Benutzer an der Vorrichtung identifiziert, die die Erfindung implementiert, und ein Modus wird eingestellt, um diesen Typ von Signal korrekt zu verarbeiten. Vorteilhafterweise ist die Ausgabe aus dem horizontalen Filter die gleiche, egal welcher Typ von Videosignal verwendet wird. Die gesamte Identifizierung und Verarbeitung des Videosignals kann an einer einzelnen integrierten Schaltung und einer zusätzlichen chipexternen Hardware für eine Identifikation durchgeführt werden, und eine Vorverarbeitung der unterschiedlichen Typen von Videosignalen ist nicht erforderlich.
  • Die vorliegende Erfindung ist nützlich mit einer Vielzahl von Typen von Bildern, wie z. B. jenen, die für Computermonitore, Fernseher, Kameras, handgehaltene Vorrichtungen etc. vorgesehen sind, und ist anwendbar an eine breite Vielzahl von Standards, wie z. B. NTSC-Video, PAL und SECAM-Fernsehen etc.
  • Ausführungsbeispiele der vorliegenden Erfindung sind insbesondere vorteilhaft bei Niedrigbitraten-Videoanwendungen (wie z. B. in der Verbrauchertechnik), wo die Bandbreite für eine Übertragung von komprimierten Bildern reduziert ist. Zum Beispiel werden Farbbilder üblicherweise durch 24 Bits/Pixel dargestellt, was einer Bitrate von ungefähr 264 Mbit/Sekunde entspricht. Die vorliegende Erfindung ist in der Lage, Farbbilder bis hinunter zu 1/4 Bit/Pixel und kleiner zu komprimieren, während trotzdem eine gute Qualität erreicht wird. 1/4-Bit/Pixel-Komprimierung entspricht einer Bitrate von ungefähr 3 Mbits/Sekunde. Somit ist die niedrigere Bitrate leichter kompatibel mit reduzierten Bandbreitenanwendungen, wo komprimierte Bilddaten möglicherweise eine Bandbreite mit anderen Daten gemeinschaftlich verwenden müssen, wie z. B. Audio und Text.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung zusammen mit weiteren Vorteilen derselben ist am besten verständlich durch Bezugnahme auf die nachfolgen de Beschreibung in Verbindung mit den beiliegenden Zeichnungen, in denen:
  • 1 ein bekanntes Bilddarstellungsschema darstellt, das Pixel, Abtastlinien, Streifen und Blöcke verwendet.
  • 2 ein bekanntes Bild darstellt, das Block für Block komprimiert wurde und dann dekomprimiert und für eine Betrachtung präsentiert wurde.
  • 3 bekannte Intensitäts- und Chrominanzsignale darstellt, die kombiniert werden, um ein zusammengesetztes Videosignal zu bilden.
  • 4 ein System darstellt zum Komprimieren eines Videobildes gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
  • 5A bis 5C ein Flussdiagramm sind, das ein Ausführungsbei spiel für eine Komprimierung von Bildern beschreibt.
  • 6 symbolisch eine Ansicht auf hoher Ebene von Durchlauf 1 des horizontalen Filters darstellt.
  • 7 Stufe 1 des horizontalen Filters darstellt, angewendet an eine Abtastlinie.
  • 8 ein Beispiel der Abtastlinie aus 7 nach Stufe 1 ist.
  • 9 Stufe 1 und 2 des horizontalen Filters darstellt, angewendet an eine Abtastlinie.
  • 10 ein Beispiel der Abtastlinie aus 9 ist nach den Stufen 1 und 2 des horizontalen Filters.
  • 11A ein spezifisches Ausführungsbeispiel der ersten Stufe des horizontalen Filters darstellt.
  • 11B Koeffizienten für die Kombinationseinheit aus 11A gemäß einem spezifischen Ausführungsbeispiel der Erfindung darstellt.
  • 12 einen Streifen in der Streifenspeicherung darstellt, nachdem das horizontale Filter eine Anzahl von Abtastlinien verarbeitet hat.
  • 13 einen Block darstellt nach Durchlauf 2 des vertikalen Filterns.
  • 14 einen Block darstellt nach Durchlauf 3 des vertikalen Filterns.
  • 15 einen Block darstellt nach Durchlauf 4 des vertikalen Filterns.
  • 16 einen Block darstellt nach Durchlauf 5 des vertikalen Filterns.
  • 17 das allgemeine Konzept hinter einer Haar-Transformation darstellt.
  • 18 eine Zwischenfeld-Haar-Einheit darstellt, zum Durchführen einer modifizierten Haar-Transformation, nachdem zwei entsprechende Blöcke von einer Feldblockspeicherung empfangen wurden.
  • 19 Rahmenabschnitte darstellt, die Y-Farbinformationen und U-Farbinformationen eines Rahmens darstellen.
  • 20 eine bekannte Technik darstellt für eine Farbdrehung von Rahmenfarbinformationen in ein unterschiedliches Farbkoordinatensystem.
  • 21 eine Farbdreheinheit darstellt zum Durchführen einer Farbdrehung in Verbindung mit einem spezifischen Ausführungsbeispiel der Erfindung.
  • 22 ein Flussdiagramm ist zum De komprimieren eines komprimierten Bitstroms, der dem spezifischen Komprimierungsausführungsbeispiel aus5A5C entspricht.
  • 23 ein Blockdiagramm eines typischen Computersystems ist, das zum Implementieren eines Ausführungsbeispiels der vorliegenden Erfindung geeignet ist.
  • Detaillierte Beschreibung der Erfindung
  • Die verschiedenen Ausführungsbeispiele der vorliegenden Erfindung sind geeignet für eine Implementierung unabhängig oder in Kombination in einer breiten Vielzahl von Formen. Beispielsweise ist die vorliegende Erfindung geeignet für eine Implementierung in Software, wie z. B. in C++ oder einer anderen geeigneten Computersprache. Die Beschreibung unten ist optimiert für eine eventuelle Hardwareimplementierung (z. B. werden Multiplizierer, wo möglich, vermieden), obwohl andere Softwareimplementierungen möglich sind.
  • Die vorliegende Erfindung kann ebenfalls in Hardware in standardmäßigen integrierten Schaltungen implementiert sein, in kundenspezifischen integrierten Schaltungen, wie z. B. ASICs, oder in einer programmierbaren Logikvorrichtung, wie z. B. einer FPGA, einer PAL oder einer PLA. Bei einer spezifischen Implementierung der vorliegenden Erfindung wird eine Implementierung an einer Xylinx-FPGA verwendet, um einen VHDL-Code zu entwickeln. Dieser VHDL-Code (oder genauer gesagt ein Makro) kann dann mit einem anderen VHDL-Code kombiniert werden, um eine kundenspezifische integrierte Schaltung zu erzeugen, die nützlich für eine Platzierung in ein Produkt ist, wie z. B. eine Videokamera. Eine solche Implementierung an einer kundenspezifischen integrierten Schaltung ermöglicht eine gute Komprimierung an einem relativ kleinen Siliziumbereich. Es sollte darauf hingewiesen werden, dass die vorliegende Erfindung ebenfalls in einer breiten Vielzahl von anderen Hardwarebeschreibungssprachen verkörpert sein kann.
  • Ferner werden die Ausführungsbeispiele, die nachfolgend beschrieben werden, im Hinblick auf ein zusammengesetztes Videosignal beschrieben, obwohl Aspekte der Erfindung ebenfalls an andere kombinierte Signale anwendbar sind, wie z. B. S-Video, und an separate Signale, wie z. B. Komponentenvideo. Ferner, obwohl der Ausdruck „Video" häufig verwendet wird, sollte darauf hingewiesen werden, dass die vorliegende Erfindung an Standbilder sowie Videobilder anwendbar ist, und ebenfalls an Informationsströme höherer Dimension anwendbar ist. Der Ausdruck „Video", wie er hierin verwendet wird, gilt nicht nur für traditionelle Videoinformationen, sondern ferner für diese anderen Typen von Bildern und Informationen.
  • BLOCKDIAGRAMM AUF HOHER EBENE
  • 4 stellt ein System 100 zum Komprimieren eines Videobildes gemäß einem Ausführungsbeispiel der vorliegenden Erfindung dar. Details darüber, wie jedes der Teile des Systems 100 arbeitet, werden nachfolgend in dem Flussdiagramm aus 5A5C geliefert. Die nachfolgende Erörterung verwendet die Komprimierung eines Videobildes zu darstellenden Zwecken; es sollte darauf hingewiesen werden, dass die vorliegende Erfindung geeignet für eine Komprimierung von einem aus einer Vielzahl von Bildern ist, die Informationen enthalten, und nicht auf Videobilder beschränkt ist. Ferner, für eine einfache Erklärung, erörtern 4 und die nachfolgenden Figuren die Komprimierung eines Bildes, das in einer Zwischenzeilenabtastung darge stellt ist, wo jedes Bild oder jeder Rahmen zwei Felder enthält. Fachleute auf dem Gebiet werden jedoch erkennen, dass die Erfindung gleichermaßen an eine progressive Abtastung anwendbar ist (ein Feld ist ein Rahmen), oder an andere Standards, wo viele Felder einen Rahmen darstellen können. Ferner erörtert die nachfolgende Beschreibung eine Manipulation von Pixeln, Abtastlinien, Streifen und Blöcken. Es sollte darauf hingewiesen werden, dass andere willkürliche Bezeichnungen zum Darstellen der Hierarchien von Informationen ebenfalls verwendet werden können, ohne von dem Schutzbereich der vorliegenden Erfindung abzuweichen.
  • Im allgemeinen wird ein eingehender Rahmen inkrementell Block für Block komprimiert, durch Durchführen einer Transformation an jedem Block und dann Codieren desselben. Der codierte Block (in einer weitgehend komprimierten Form) wird in eine temporäre Speicherung platziert. Wenn ein entsprechender Block eines späteren Rahmens zum Vergleich ankommt, werden Transformation und Codierung an dem späteren Block durchgeführt. Beide Blöcke werden zurück in den Transformationsbereich decodiert und die zwei Blöcke werden in dem Transformationsbereich verglichen, ohne den Bedarf zum Durchführen einer Rückwärtstransformation an den Blöcken, um dieselben miteinander zu vergleichen. Durch Durchführen eines Blockvergleichs in dem Transformationsbereich wird ein kostspieliger Rückwärtstransformationsprozess vermieden. Eine reduzierte Berechnung zum Vergleich der Blöcke resultiert ebenfalls, da ein Großteil der decodierten Blöcke Nullwerte aufweist. Dieser Prozess von Codieren/Speichern/Decodieren/Vergleichen weist viele Vorteile auf.
  • Ein System 100 zeigt ein Bild eines Mannes 102, das unter Verwendung der vorliegenden Erfindung komprimiert werden soll. Ein Bild 102 kann in Schwarz und Weiß oder in Farbe sein und kann durch das System 100 entweder als ein analoges oder ein digitales Signal empfangen werden. Vorzugswei se wird das Bild 102 als ein analoges Signal empfangen und wird digitalisiert und dann durch Informationspixel dargestellt. Digitalisierte Informationen, die das Bild 102 darstellen, werden durch ein horizontales Filter (Durchlauf 1) 106 eine Abtastlinie nach der anderen empfangen. Es wird ferner für andere Typen von Video davon ausgegangen, dass Informationen ein Block nach dem anderen oder in anderen Einheiten empfangen werden können. Ein horizontales Filter 106 wendet eine Filtersequenz an jede Abtastlinie an und leitet dann das Ergebnis zu der Streifenspeicherung 110 weiter. Abtastlinien werden kontinuierlich durch das Filter 106 empfangen, verarbeitet und zu der Streifenspeicherung 110 gesendet.
  • Die Streifenspeicherung 110 ist zwei Streifenpuffer, die ungefähr den Informationswert von zwei Streifen halten. Wenn Videoinformationen von dem System 100 empfangen werden, die komprimiert werden sollen, wird die Streifenspeicherung 110 kontinuierlich mit zuerst geradzahligen und dann ungeradzahligen Streifen von dem Bild 102 gefüllt. Abtastlinien werden kontinuierlich in einen geradzahligen Streifenpuffer gespeichert, bis der Puffer voll ist. Die nachfolgend empfangenen Abtastlinien werden dann kontinuierlich in einem ungeradzahligen Streifenpuffer gespeichert und während dieser ungeradzahlige Puffer gefüllt wird, wird der vorangehend gefüllte geradzahlige Streifenpuffer geleert. Somit, sobald der ungeradzahlige Streifenpuffer voll ist, wurde der vorangehend gefüllte geradzahlige Streifenpuffer geleert und zu dem Modul 114 geliefert. Somit, sobald der ungeradzahlige Puffer voll ist, ist der geradzahlige Puffer wieder bereit, um den nächsten Satz von Abtastlinien von dem Filter 106 zu empfangen. Die Streifenpuffer wechseln sich beim Empfangen und Übertragen von Informationen auf diese Weise ab, während das Bild eingegeben wird.
  • Für eine Implementierung an einer integrierten Schaltung ist es bevorzugt, dass die Speicherung 110, 118 und 126 in DRAMs implementiert sind. DRAMs sind viel kleiner als SRAMs, aber erfordern üblicherweise eine Auffrischschaltungsanordnung. Da jedoch Streifen und Blöcke so schnell in ihre und aus ihren jeweiligen Speicherungsbereichen geschoben werden, wird die Auffrischschaltungsanordnung nicht gebraucht. Somit können kleinere DRAMs ohne die zusätzliche Auffrischschaltungsanordnung verwendet werden.
  • Da die Streifenspeicherung 110 einen Streifenpuffer füllt, bevor Informationen freigegeben werden, können Informationen aus der Streifenspeicherung 110 Block für Block gelesen und zu dem Modul 114 geliefert werden. Anders ausgedrückt, sobald die Streifenspeicherung 110 mit den ersten zwei Informationsstreifen markiert wurde, werden Blöcke kontinuierlich aus der Speicherung 110 gelesen und zu dem Komprimierungsmodul 114 für eine Komprimierung geliefert. Vorzugsweise transformiert, quantifiziert und codiert das Modul 114 jeden Block und liefert den resultierenden komprimierten Block zu der Feldblockspeicherung 118. Somit wird ein Strom aus komprimierten Blöcken kontinuierlich von dem Modul 114 zu der Feldblockspeicherung 118 geliefert. Vorteilhafterweise werden diese Blöcke komprimiert und temporär gespeichert, bevor sie miteinander in der Haar-Transformation 122 verglichen werden. Obwohl die Komprimierung an den Blöcken an diesem Punkt nicht so groß ist wie die Komprimierung, die bei der abschließenden Ausgabe erzeugt wird, ermöglicht die temporäre Komprimierung dieser Blöcke bedeutend reduzierte Größen einer Feldblockspeicherung 118 und einer Rahmenblockspeicherung 126.
  • Die Komprimierung, die in dem Modul 114 durchgeführt wird, kann eine geeignete Standbildkomprimierungstechnik sein. Eine Komprimierung kann an dem gesamten Bild, an Blöcken, Streifen oder einem geeigneten Abschnitt des Bildes durchgeführt werden. Vorzugsweise transformiert, quantifiziert und codiert das Modul 114 jeden Block, wie hierin beschrieben ist. Eine Transformation, wenn sie verwendet wird, kann eine geeignete Transformation sein, die lineare Transforma tionen umfasst, wie z. B. eine Wavelet-Transformation oder eine DCT. Sogar nichtlineare Transformationen und andere Techniken, wie z. B. eine Vektorquantisierung, können verwendet werden. Bei einem bevorzugten Ausführungsbeispiel der Erfindung wird die Transformation jedes Blocks unter Verwendung einer Vielzahl von Durchläufen durchgeführt, etikettiert als Durchlauf 2, Durchlauf 3, Durchlauf 4 und Durchlauf 5; diese Durchläufe werden nachfolgend detaillierter in 5A5C erklärt.
  • Die Feldblockspeicherung 118 enthält eine Speicherung, die groß genug ist für etwas mehr als den Wert an komprimierten Blöcken eines Feldes. Vorteilhafterweise kann die Speicherung 118 ungefähr sechsmal kleiner gemacht werden als dies der Fall sein müsste, wenn der Wert an komprimierten Blöcken eines Feldes gespeichert werden müsste. Die Komprimierung ist derart, dass ungefähr eineinhalb Bits/Pixel gespeichert werden. Ein Strom aus komprimierten Blöcken, die Felder darstellen, kommt kontinuierlich von dem Modul 114 an. Sobald der Wert an Blöcken eines Feldes in der Speicherung 118 gespeichert wurde und das nächste Feld ankommt, werden Blöcke paarweise für eine Lieferung zu der Zwischenfeld-Haar-Einheit 122 entfernt. Anders ausgedrückt, sobald Blöcke aus dem nächsten Feld in der Speicherung 118 ankommen, werden Paare aus entsprechenden Blöcken aus den zwei Feldern entfernt und zu der Einheit 122 geliefert. Bei einem bestimmten Ausführungsbeispiel werden Blöcke paarweise in Abtastreihenfolge von links nach rechts und oben nach unten entfernt. Zum Beispiel, sobald der Wert an Blöcken eines Feldes gespeichert wurde und der erste obere linke Block des nächsten Feldes in der Speicherung 118 ankommt, werden sein entsprechender oberer linker Block aus dem vorangehend gespeicherten Feld beide als ein Paar entfernt, wodurch ein Raum für mehr eingehende Blöcke erzeugt wird. Auf diese Weise werden entsprechende Blöcke aus zwei Feldern eines Rahmens zu der Einheit 122 in bedeutend komprimierter Form für einen Vergleich geliefert.
  • Natürlich kann die Speicherung 118 für eine einfachere Speicherungszuordnung und Verarbeitung der eingehenden und ausgehenden Blöcke größer gemacht werden, aber mit entsprechendem Nachteil aufgrund der größeren Größe der erforderlichen Speicherung. Es sollte darauf hingewiesen werden, dass Blöcke in Paaren in einer beliebigen Reihenfolge und nicht notwendigerweise in Abtastreihenfolge entfernt werden können.
  • Die Zwischenfeld-Haar-Einheit 122 empfängt ein Paar von entsprechenden komprimierten Blöcken aus zwei Feldern eines Rahmens und führt einen Vergleich unter Verwendung einer leicht modifizierten Form der Haar-Transformation durch. Vorteilhafterweise müssen die zwei Blöcke nicht vollständig decodiert werden und es wird eine Rückwärtstransformation an denselben durchgeführt, um einen Vergleich in der Haar-Einheit 122 durchzuführen. Wie nachfolgend detaillierter in 18 beschrieben wird, wird jeder Block teilweise decodiert und diese Decodierung wird in die Zwischenfeld-Haar-Transformation integriert. Blöcke müssen nur zu dem Umfang decodiert werden, der notwendig ist, um einen Zwischenfeldvergleich auszuführen. Wenn eine transformationsbasierte Komprimierung durchgeführt wurde, ist es nicht notwendig, die Transformation an den Blöcken rückgängig zu machen, da die Haar-Transformation in dem Transformationsbereich durchgeführt werden kann. Im allgemeinen muss eine lineare Transformation nicht rückgängig gemacht werden, aber eine nichtlineare Transformation kann erfordern, dass die Transformation rückgängig gemacht wird. Sobald die integrierte Decodierung und die Haar-Transformation durchgeführt wurden, wird das Ergebnis wieder codiert und zu der Rahmenblockspeicherung 126 übertragen. An diesem Punkt ist das Ergebnis des Vergleichs der zwei komprimierten Blöcke aus aufeinander folgenden Feldern ein anderer, weiter komprimierter Block, der die zwei entsprechenden Blöcke aus ihren entsprechenden Feldern darstellt. Anders ausgedrückt stellt dieser komprimierte Block die Informationen aus einem Block des Originalrahmens dar, der in den zwei Feldern dieses Rahmens dargestellt wurde.
  • Die Rahmenblockspeicherung 126 enthält etwas mehr als den Wert an komprimierten Blöcken eines Rahmens. Sobald der Wert an komprimierten Blöcken eines Rahmens in der Speicherung 126 gespeichert wird und die komprimierten Blöcke aus dem nächsten nachfolgenden Rahmen beginnen, in der Speicherung 126 anzukommen, werden entsprechende Blöcke aus diesen zwei Rahmen aus der Speicherung 126 entfernt und zu der Zwischenrahmen-Haar-Einheit 130 geliefert. Komprimierte Blöcke, die aufeinander folgende Rahmen darstellen, kommen kontinuierlich in der Speicherung 126 an und werden in Paaren auf ungefähr die gleiche Weise verschoben und entfernt, wie es bei der Feldblockspeicherung 118 durchgeführt wird.
  • Die Zwischenrahmen-Haar-Einheit 130 empfängt entsprechende Paare von Blöcken für zwei aufeinander folgende Rahmen aus der Speicherung 126 und führt eine modifizierte Haar-Transformation an diesen zwei Blöcken durch. Auf eine ähnliche Weise wie bei der Einheit 122 decodiert die Haar-Einheit 130 teilweise jeden Block auf eine integrierte Weise mit der Haar-Transformation und codiert dann den resultierenden Block für eine Ausgabe. Vorteilhafterweise muss die Einheit 130 keine Rückwärtstransformation an den Blöcken durchführen, sondern ist in der Lage, die Blöcke in dem Transformationsbereich zu verarbeiten, nachdem sie teilweise oder vollständig decodiert wurden. Das Ergebnis aus der Einheit 130 ist ein serieller Bitstrom, der kontinuierliche Blöcke aus Informationen darstellt, die bedeutend komprimiert wurden. Jeder komprimierte Block stellt einen Block aus Informationen dar, die über vier Felder ausgebreitet sind, anders ausgedrückt stellt jeder komprimierte Block den Wert an Informationen von zwei Rahmen dar.
  • Nach der Haar-Einheit 130 ist die Farbdreheinheit 132, die eine Farbdrehung von einem Farbkoordinatensystem in ein anderes durchführt. Die Einheit 132 wird nachfolgend in 21 detaillierter erklärt. Die resultierende komprimierte Videoausgabe 134 ist in serieller Bitstromform kann dann über einen Draht übertragen, rundgesendet, auf eine Platte gespeichert werden, etc. Vorteilhafterweise erfordern diese bedeutend komprimierten Videoinformationen, die das Bild 102 darstellen, bedeutend weniger Bandbreite, Übertragungszeit und/oder Speicherungsraum.
  • In 4 sind Beispiele von möglichen schlimmsten Komprimierungen von Bitraten gezeigt. Zum Beispiel, eine Rate von 120 Mb/s wird in das Filter 106 eingegeben. Die Rate wird nach dem Filter 106 auf 240 Mb/s verdoppelt, aufgrund der erhöhten Präzision, die benötigt wird, wenn Zahlen miteinander addiert werden. Nach dem Modul 114 wird die Rate auf 15 Mb/s reduziert und erreicht schließlich einen niedrigen Wert von 10 Mb/s nach der Einheit 130. Natürlich sind andere niedrigere Raten möglich, abhängig von der Implementierung des Systems.
  • KOMPRIMIERUNGSFLUSSDIAGRAMM
  • 5A, 5B und 5C sind ein Flussdiagramm 200, das ein Ausführungsbeispiel für eine Komprimierung von Bildern beschreibt. Dieses Flussdiagramm wird Bezug nehmend auf 4 und 618 erklärt. Schritt 210 empfängt digitalisierte Daten aus einem Bild 102, wie in 4 erklärt ist. Vorzugsweise wird das analoge Signal, das das Bild 102 darstellt, bei ungefähr viermal der Frequenz des Farbträgers abgetastet (üblicherweise 14,3 MHz) und digitalisiert, um eine Sequenz von 8-Bit-Pixelwerten zu liefern. Natürlich können auch andere Abtastraten und Größen von Pixelwerten verwendet werden. Bei Schritt 212 wird jeweils eine Abtastlinie in das horizontale Filter 106 eingegeben. Bei Schritt 214 führt das Filter 106 eine horizontale Filterung an jeder Abtastlinie durch, wie nachfolgend in 612 beschrieben ist. Das Ergebnis dieser Filterung ist die Transformation der Daten in der Abtastlinie in die vier Teilbänder, die in 12 gezeigt sind. Sobald eine Abtastlinie gefiltert wurde, wird sie bei Schritt 216 in die Streifenspeicherung 110 ausgegeben, um beim Vervollständigen eines Streifens in einem der Streifenpuffer zu helfen.
  • Die Verarbeitung von Abtastlinien und das Auffüllen von Streifenpuffern ist ein kontinuierlicher Prozess. Geradzahlige und ungeradzahlige Streifen werden kontinuierlich aufgefüllt und aus der Streifenspeicherung 110 entfernt, wie in 4 beschrieben ist. Schritt 218 beschreibt einen Zeitpunkt, zu dem einer der geradzahligen Streifen in der Streifenspeicherung vervollständigt wird. Sobald dieser geradzahlige Streifen vervollständigt ist, wird bei Schritt 220 mit der Speicherung des nächsten ungeradzahligen Streifens begonnen und der vervollständigte geradzahlige Streifen wird Block für Block aus der Streifenspeicherung 110 entfernt.
  • Wenn Blöcke entfernt werden, werden sie bei Schritt 224 komprimiert. Eine einer breiten Vielzahl von linearen und/oder nichtlinearen Transformationen kann verwendet werden, sowie traditionelle Komprimierungstechnilcen. Vorzugsweise werden sie komprimiert durch Durchführen einer Sequenz von Durchläufen. Durchlauf 2 wird an einem Block durchgeführt, wie in 13 beschrieben ist. Durchlauf 3 wird an einem Block durchgeführt, wie in 14 beschrieben ist. Durchlauf 4 wird an einem Block durchgeführt, wie in 15 beschrieben ist, und abschließend wird Durchlauf 5 durchgeführt, wie in 16 beschrieben ist. Es sollte darauf hingewiesen werden, dass für Blöcke, die eine Größe von weniger als oder mehr als 8 × 32 Pixel aufweisen, weniger oder mehr Durchläufe verwendet werden können. Sobald diese fünf Durchläufe abgeschlossen wurden, wurde der Block erfolgreich komprimiert.
  • Schritt 226 quantisiert den Block. Die Quantisierung, die bei den Schritten 226, 239 und 248 auftritt, kann auf viele Weisen durchgeführt werden. Eine Quantisierung ist nützlich zum Reduzieren der Größe der Pixelwerte und führt zu einem vernachlässigbaren Verlust von Informationen. Obwohl eine Quantisierung nicht unbedingt notwendig ist, hilft sie beim Reduzieren der Größe der Daten. Bei einem bevorzugten Ausführungsbeispiel wird ein vereinfachter, praktizierbarer Quantisierungsschritt durchgeführt, der bei Schritten 226, 239 und 248 um eine Zweierpotenz quantisiert. Eine Quantisierung um eine Zweierpotenz reduziert den Speicher, der in der Feldblockspeicherung 118 und in der Rahmenblockspeicherung 126 erforderlich ist. Somit kann die vorliegende Erfindung auf einer kleineren Hardwarevorrichtung implementiert sein. Vorzugsweise hängt die Anzahl von Bits niedrigerer Ordnung, die für jeden Koeffizienten bei Schritt 226, 239 und 248 verworfen werden, von dem Teilband ab. Die Zweierpotenz, die für jedes Band verwendet wird, ist eine Implementierungsentscheidung, die von der Qualität des erwünschten Bildes abhängt.
  • Sobald der Block quantisiert wurde, wird der Block bei Schritt 232 codiert. Eine breite Vielzahl von Codierungstechniken kann verwendet werden. Beispielweise hat sich herausgestellt, dass eine Entropiecodierung gut funktioniert. Zum Beispiel kann eine Huffman-Codierung, eine arithmetische Codierung oder eine LZW-Codierung verwendet werden. Andere proprietäre Codierungstechniken können ebenfalls verwendet werden, wie z. B. jene, die in dem U.S.-Patent 6,144,773 und in dem U.S.-Patent 6,381,280 beschrieben sind. Im allgemeinen wird der Codierungsalgorithmus verwendet, um redundante Informationen zu entfernen, und insbesondere Gruppen von Nullen, die durch eine Quantisierung erzeugt werden. Bei einem bevorzugten Ausführungsbeispiel der Erfindung wird eine standardmäßige Nullbaumcodierung verwendet.
  • Bei Schritt 234 werden die komprimierten Blöcke in die Feldblockspeicherung 118 Block für Block eingegeben. Sobald der Blockwert eines Feldes gespeichert ist, werden bei Schritt 236 entsprechende Blöcke aus aufeinander folgenden Feldern für einen Rahmen zu der Zwischenfeld-Haar-Einheit 122 ausgegeben. Blöcke können in die Feldblockspeicherung 118 auf geeignete Weise eingegeben, in derselben verschoben und aus derselben ausgegeben werden. Vorzugsweise ist die Speicherung 118 etwas größer als der Blockwert eines Feldes und die Speicherung wird für die eingehenden Blöcke unter Verwendung von Pufferpools zugeordnet (ebenfalls genannt Speicherungspools). Zum Beispiel, sobald der Blockwert eines Feldes gespeichert ist und der erste Block des nächsten Feldes empfangen wird, können die ersten entsprechenden Blöcke aus diesen zwei Feldern entfernt werden. Wenn diese zwei Blöcke entfernt werden, werden die nächsten zwei Blöcke für das nächste Feld eingegeben.
  • Bei den Schritten 237239 wird eine modifizierte Zwischenfeld-Haar-Transformation an den zwei entsprechenden Blöcken durchgeführt, wie in 17 und 18 beschrieben ist. Die Haar-Transformation ist mit einer teilweisen Decodierung der Blöcke, einer Quantisierung und Codierung integriert. Bei Schritt 240 wird der resultierende Block in die Rahmenblockspeicherung 126 ausgegeben. Der resultierende Block aus der Zwischenfeld-Haar-Einheit 122 stellt Informationen aus den zwei Feldern dar, d. h. zweimal den Informationsinhalt eines einzelnen Blocks. Anders ausgedrückt stellt der resultierende Block zweimal den Zeitbetrag dar, wie einer der zwei eingegebenen Blöcke.
  • Bei Schritt 242 werden die Blöcke, die kürzlich in der Einheit 122 codiert wurden, in die Rahmenblockspeicherung 126 Block für Block eingegeben. Sobald der Blockwert eines Rahmens in der Speicherung 126 gespeichert ist, beginnt Schritt 244 mit dem Ausgeben von entsprechenden Blöcken aus aufeinander folgenden Rahmen in die Zwischenrahmen-Haar-Einheit 130. Eine Speicherungszuordnung innerhalb der Speicherung 126 kann auf eine breite Vielzahl von Weisen durchgeführt werden und wird vorzugsweise implementiert, wie im Hinblick auf die Speicherung 118 beschrieben ist.
  • Die Schritte 245248 führen eine modifizierte Zwischenrahmen-Haar-Transformation an den zwei entsprechenden Blöcken durch, um einen einzelnen resultierenden Block zu erzeugen. Diese Zwischenrahmen-Haar-Transformation wird auf eine Weise durchgeführt, analog zu der Zwischenfeld-Haar, die in 17 und 18 beschrieben wurde. Der resultierende Block aus Zwischenrahmen-Haar 130 stellt den Wert von Informationen von vier Feldern für diesen Block dar. Schritt 250 führt eine Farbdrehung an dem resultierenden Block unter Verwendung einer Farbdreheinheit 132 durch, wie in 21 beschrieben ist.
  • Bei Schritt 252 wird der resultierende Block als ein serieller Bitstrom ausgegeben. Dieser bedeutend komprimierte serielle Bitstrom, der das Originalbild 102 darstellt, kann dann übertragen oder effizienter gespeichert werden, aufgrund dieser bedeutend komprimierten Form.
  • DEKOMPRIMIERUNGSFLUSSDIAGRAMM
  • Die Dekomprimierung dieses ausgegebenen seriellen Bitstroms, um das Originalbild 102 zu erzeugen, kann durchgeführt werden, durch Umkehren der obigen Verfahren, wie Fachleuten auf dem Gebiet bekannt ist. Beispielsweise stellt 22 eine Technik zum Dekomprimieren des komprimierten Bitstroms dar, um das Originalbild zu erzeugen, das einer Umkehrung der Schritte in 5A5C entspricht. Im allgemeinen (außer bei einer Quantisierung) ist jeder der obigen Schritte in 5A5C umkehrbar. Modifikationen können ebenfalls in die Dekomprimierung eingebracht werden. Zum Beispiel können zusätzliche Nullen oder ein beliebiges Rauschen eingebracht werden, um eine Quantisierung zu kompensieren, und eine Farbdrehung muss nicht durchgeführt werden, wenn die Daten bereits in einem Farbkoordinatensystem sind, das für eine Ausgabe geeignet ist. Eine Farbdre hung könnte durchgeführt werden, falls erwünscht, um eine Farbträgerdrift zu korrigieren.
  • HORIZONTALES FILTER
  • 6 stellt symbolisch eine Ansicht auf hoher Ebene eines horizontalen Filters 106 gemäß einem Ausführungsbeispiel dar. Das horizontale Filter 106 liefert vorteilhaft ein Kantenfiltern, um Geisterbilder um Blöcke zu entfernen, und filtert das Videosignal in verschiedenen Teilbändern, die nützlich beim Trennen von Farb- und Schwarz-und-Weiß-Informationen sind. Digitalisierte Videobilddaten werden von dem Bild 102 empfangen. In dem Filter 106 ist ein Tiefpassfilter 302, ein Hochpassfilter 304 und Abwärtsabtaster 306 und 308 umfasst. Innerhalb einer zweiten Filterstufe 106 sind Tief- und Hochpassfilter 310, 312 und Tief- und Hochpassfilter 314, 316 umfasst. Jedes dieser Filter wird durch einen entsprechenden Abwärtsabtaster 318324 gefolgt. Die Ausgabe aus den Abwärtsabtastern 318324 wird zu der Streifenspeicherung 110 geliefert, um eine Abtastlinie innerhalb von einem der Streifenpuffer zu füllen.
  • Bei der ersten Stufe des Filters 106 werden Pixelwerte aus dem Bild 102 zu jedem des Tiefpassfilters 302 und des Hochpassfilters 304 geliefert. Im allgemeinen führt das Filter 302 eine Form einer Summierung von jedem Pixel mit seinem nachfolgenden Pixel durch und das Filter 304 führt eine Form einer Differenzierung von jedem Pixel mit seinem nachfolgenden Pixel durch. Die Abtasteinrichtungen 306 und 308 tasten die Ergebnisse aus den Filtern 302 und 304 um einen Faktor von zwei abwärts ab, was bedeutet, dass jeder zweite Abtastwert verworfen wird. Ergebnisse aus der ersten Stufe der Abtasteinrichtungen 306 und 308 werden dann jeweils wieder durch Tief- und Hochpassfilter und Abwärtsabtaster weitergeleitet, im wesentlichen auf dieselbe Weise, wie das Originalsignal bei der ersten Stufe verar beitet wurde. Zum Beispiel werden summierte Pixelwerte, die aus dem Abtaster 306 ausgegeben werden, jeweils zu dem Tiefpassfilter 310 und dem Hochpassfilter 312 weitergeleitet. Die Ergebnisse aus diesen Filtern werden dann abwärts abgetastet um einen Faktor von 2 in den Abtastern 318 und 320, und die resultierenden Werte werden zu der Streifenspeicherung 110 geliefert, wie nachfolgend erklärt wird. Die Ausgabe aus dem Abtaster 308 wird im Wesentlichen auf dieselbe Weise verarbeitet.
  • Obwohl die Abtaster 306 und 308 jeden zweiten Wert verwerfen und die Ausgabe von jedem die Hälfte der Originaldaten darstellt, ist der Datenbetrag, den sie in Kombination bis Stufe 2 darstellen, derselbe Betrag an Pixeln, der vom Bild 102 empfangen wird. Dasselbe gilt für Stufe 2. Somit ist bei diesem Ausführungsbeispiel die Gesamtanzahl von Pixeln, die von dem Bild 102 empfangen werden, dieselbe wie die Anzahl von Pixeln, die zu der Streifenspeicherung 110 ausgegeben werden.
  • 7 stellt den Prozess von Stufe 1 des Filters 106 aus 6 dar. Die Eingangsabtastlinie 352 umfasst eine Anzahl von Pixelwerten A, B, C und D. Die Pixel A, B und C, D werden durch ein Tiefpassfilter 302 summiert, wie gezeigt ist, um die Pixelwerte M und N zu ergeben. Auf ähnliche Weise werden die Pixel A, B und C, D durch das Hochpassfilter 304 differenziert, um Pixelwerte P und Q zu ergeben. Aufgrund des Abwärtsabtasters 306 wird die Summierung der Pixel B und C verworfen; auf ähnliche Weise verwirft der Abtaster 308 die Differenz der Pixel B und C.
  • 8 stellt ein Beispiel der Abtastlinie 352 nach Stufe 1 von 6 dar. Die Abtastlinie 354 umfasst Ergebnisse aus der Summierung und Differenzierung von eingehenden Pixelwerten. Von dem Tiefpassfilter resultierende Pixelwerte M und N werden auf der linken Seite (L) der Abtastlinie 354 gespeichert, und von dem Hochpassfilter resultierende Pixelwerte P und Q werden auf der rechten Seite (R) der Abtastlinie 354 gespeichert.
  • 9 stellt den Prozess von beiden Stufen eins und zwei aus 6 dar. Die eingehende Abtastlinie 362 umfasst Pixelwerte A, B, C und D. Nach Stufe eins werden die Pixelwerte M und N summiert und differenziert, um die Werte S bzw. T zu erzeugen. Auf ähnliche Weise werden die Pixelwerte P und Q summiert und differenziert, um die Werte V bzw. W zu erzeugen.
  • 10 stellt ein Beispiel der Abtastlinie 362 nach Stufe eins und zwei des horizontalen Filters 106 dar. Der Pixelwert S wird in der linken Hälfte der linken Seite der Abtastlinie 364 (LL) gespeichert, der Wert T wird in der rechten Hälfte der linken Seite der Abtastlinie 364 gespeichert (LR), der Wert V wird in der linken Hälfte der rechten Seite der Abtastlinie gespeichert (RL) und der Wert W wird in der rechten Hälfte der rechten Seite der Abtastlinie (RR) gespeichert. Somit umfasst die resultierende Abtastlinie nach dem Verarbeiten durch das horizontale Filter 106 vier Teilbänder (LL, LR, RL und RR), die nützlich beim Trennen des zusammengesetzten Videosignals sind, wie nachfolgend in 12 gezeigt ist.
  • Wie oben erklärt wurde, stellen 610 im allgemeinen die Funktion des horizontalen Filters 106 dar. Genauer gesagt verwendet das Filter 106 bei einem Ausführungsbeispiel eine Sequenz von modifizierten 2-6-Biorthogonalfiltern, die nützlich beim Beseitigen von Blockbildungsartefakten sind. Ein standardmäßiges 2-6-Biorthogonalfilter ist in der Technik bekannt; das verbesserte 2-6-Biorthogonalfilter, das eine modifizierte Summierung und Differenzierung ausführt, wird nun Bezug nehmend auf 11A und 11B erklärt.
  • Ein standardmäßiges 2-6-Biorthogonalfilter kann als eine Haar-Transformation betrachtet werden, bei der die Summie rung und Differenzierung von Pixelpaaren durchgeführt wird, gefolgt durch einen zusätzlichen Hebeschritt. Der Hebeschritt ändert die Differenzwerte durch Kombinieren jeder Differenz mit einer linearen Kombination von entsprechenden Summenwerten. Vorteilhafterweise verwendet die vorliegende Erfindung ein verbessertes 2-6-Biorthogonalfilter mit einer eindeutigen linearen Kombination für anfängliche und abschließende gehobene Differenzen von jedem Block, um zu ermöglichen, dass Blöcke unabhängig verarbeitet werden.
  • 11A stellt ein spezifisches Ausführungsbeispiel der ersten Stufe 106a des horizontalen Filters 106 dar. Die zweite Stufe wird vorzugsweise auf ähnliche Weise implementiert. Bei diesem spezifischen Ausführungsbeispiel ist das Filter 106a ein verbessertes 2-6-Biorthogonalfilter. Das Filter 106a empfängt einen Strom aus Pixelwerten xk von dem Bild 102, die in die Summeneinheit 402 und die Differenzeinheit 404 zugeführt werden. Eine Kombinationseinheit 406 kombiniert verschiedene Summen mit bestimmten Koeffizienten und addiert das Ergebnis zu jeder Differenz di in der Summierungseinheit 408. Die Ausgabe aus dem Filter 106a ist ein Strom aus Summen si und ein Strom aus gehobenen Differenzen wi.
  • Üblicherweise stellt ein standardmäßiges 2-6-Biorthogonalfilter jede Differenz ein, um eine gehobene Differenz zu erhalten, unter Verwendung der Formel: wi = di – si-1/8 + si+1/8. Somit wird von jeder Differenz 1/8 der vorangehenden Summe subtrahiert und 1/8 der nachfolgenden Summe wird zu derselben addiert. Bei einem standardmäßigen 2-6-Biorthogonalfilter wird die tatsächliche Summe, die der Differenz entspricht, die eingestellt wird, nicht verwendet, um die Differenz einzustellen. Vorteilhafterweise liefert dieses Ausführungsbeispiel der vorliegenden Erfindung eine eindeutige Kombination 406 aus Summenwerten, um jeden Differenzwert einzustellen, um Blockbildungsartefakte zu reduzieren.
  • 11B stellt Koeffizienten für die Kombinationseinheit 406 gemäß einem spezifischen Ausführungsbeispiel der Erfindung dar. Um zu ermöglichen, dass Blöcke unabhängig behandelt werden, und um Blockbildungsartefakte zu reduzieren, verwendet die vorliegende Erfindung eindeutige Koeffizienten für Summenwerte, die einen Koeffizienten ungleich Null für die Summe umfassen, die der Differenz entspricht, die eingestellt werden soll. Genauer gesagt werden diese eindeutigen Koeffizienten für den allerersten und den allerletzten gehobenen Differenzwert eines Blocks (w0 und wn-1) verwendet. 11B zeigt eine Tabelle aus Koeffizienten 409, die zum Implementieren der Kombinationseinheit 406 verwendet werden. Die Tabelle 409 umfasst Spalten aus Summen 410 und Zeilen aus gehobenen Differenzen 412. Jede Zelle der Tabelle 409 stellt den Koeffizienten dar, der für seine entsprechende Summe bei der Berechnung einer gehobenen Differenz verwendet wird. Die Zeilen 422 und 432 stellen traditionelle Koeffizienten bei einem standardmäßigen 2-6-Biorthogonalfilter dar. Zum Beispiel die gehobene Differenz w1 = d1 – s0/8 + s2/8, etc. Vorteilhafterweise liefert die Tabelle 409 eindeutige Koeffizientenwerte zur Berechnung des ersten und des letzten gehobenen Differenzwerts, wie in den Zeilen 420 und 434 gezeigt ist. Bei diesem spezifischen Ausführungsbeispiel sind anfängliche Koeffizienten -3/8, 1/2 und -1/8, und somit ist die anfängliche gehobene Differenz w0 = d0 – 3s0/8 + s1/2 – s2/8. Die abschließenden Koeffizienten sind 1/8, -1/2 und 3/8, und somit ist die abschließende gehobene Differenz wn-1 = dn-1 + sn-3/8 – sn-2/2 + 3sn-1/8. Diese eindeutigen Koeffizientenwerte für die anfängliche und letzte gehobene Differenz des Filters 106a reduzieren Blockbildungsartefakte bedeutend und ermöglichen, dass jeder Block unabhängig behandelt wird, durch Beseitigen des nullten, ersten und zweiten Moments.
  • 12 stellt einen Streifen 500 in der Streifenspeicherung 110 dar, nachdem das horizontale Filter 106 eine Anzahl von Abtastlinien verarbeitet hat, die ausreichend ist, um den Streifen 500 zu füllen. Zum Beispiel, für Blöcke, die acht Abtastlinien hoch sind, stellt der Streifen 500 Informationen aus acht horizontalen Abtastlinien dar. Der Streifen 500 umfasst vier Teilbänder, die aus den eingehenden Abtastlinien herausgearbeitet wurden, um das Videosignal in Farb- und Schwarz-und-Weiß-Informationen zu trennen. Das Luminanzband 502 stellt Intensitätsinformationen dar (d. h. Schwarz-und-Weiß-Pixelwerte); diese Informationen wurden gefiltert, um in der linken Hälfte der linken Seite (LL) des Streifens 500 zu erscheinen. Das Phase-l-Chrominanzband 504 stellt Farbinformationen aus der ersten Phase des Farbträgersignals dar; diese Farbinformationen wurden gefiltert, um in der rechten Hälfte der linken Seite (LR) des Streifens 500 zu erscheinen. Das Band 506 ist hauptsächlich Hochfrequenzdaten aufgrund von Filtern. Üblicherweise ist dieses Hochfrequenzrauschen hauptsächlich Nullen und kann in den meisten Situationen ignoriert werden. Das Phase-2-Chrominanzband 508 stellt Farbinformationen aus der zweiten Phase des Farbträgersignals dar; diese Farbinformationen wurden gefiltert, um in der rechten Hälfte der rechten Seite (RR) des Streifens 500 zu erscheinen. Eine Vielzahl von Farben kann geeignet dargestellt werden. Bei diesem Ausführungsbeispiel stellen die Bänder 504 und 508 U und V Farben gedreht um 45 Grad dar.
  • DURCHLÄUFE 2 – 5
  • 1316 stellen die Ergebnisse des Durchführens der Durchläufe 2 – 5 nach einem Block aus Informationen 520 dar. Der Block 520 ist nicht maßstabsgetreu im Hinblick auf den Streifen 500 aus 12. Block 520 kann auf geeignete Weise aus einem Streifen in der Streifenspeicherung 110 gebildet werden. Vorzugsweise wird Block 520 gebildet durch Nehmen einer Spalte aus Pixeln aus jedem der Bänder des Streifens 500. Zum Beispiel, um Blöcke der Größe 8 hoch mal 32 Pixel breit zu bilden, wird eine Spalte aus Pixeln 8 hoch mal 8 breit aus jedem der Bänder 502508 genommen (Spalten 512518) und verkettet, um einen 8×32-Block zu bilden. Bei diesem Beispiel umfasst Block 520 die Spalten 512518. Natürlich können Blöcke anderer Größen gebildet werden, unter Verwendung einer bevorzugten Kombination aus Spalten und/oder Zeilen aus Bändern 502508.
  • Die Durchläufe 2 – 5 führen ein abwechselndes vertikales und horizontales Filtern an den Abschnitten von Block 520 durch, um die Luminanz- und Chrominanzinformationen aus den jeweiligen Bändern herauszuarbeiten, und schließlich aus dem zusammengesetzten Originalsignal. Vorteilhafterweise liefert das Filtern der Teilbänder auf diese Weise die wichtigsten Luminanz- und Chrominanzinformationen und ermöglicht, dass Abschnitte des gefilterten Blocks, die wenig oder keine Informationen enthalten, verworfen werden. Das Filtern des Phase-1-Chrominanzbandes 504 und des Phase-2-Chrominanzbandes 508 demoduliert den Originalfarbträger aus dem zusammengesetzten Videosignal und liefert Chrominanzinformationen. Obwohl eine Vielzahl von Filtern verwendet werden kann, ist es bevorzugt, modifizierte Biorthogonal- und Haar-Filter zu verwenden, wie nachfolgend beschrieben ist, um benachbarte Pixel zu summieren und differenzieren, um Informationen herauszutrennen. Vorzugsweise wird das verbesserte 2-6-Biorthogonalfilter in den Durchläufen 3, 4 und 5 verwendet, obwohl es ebenfalls in den Durchläufen 1 und 2 nützlich sein kann.
  • Wie oben erwähnt wurde, demonstrieren 1316 eine weitere Demodulation des Farbträgers des Videosignals. Jede Phase des Farbträgers enthält DC-Informationen. Somit, wenn jede Summe und Differenz in den Durchläufen 2 – 5 durchgeführt wurde, werden Farbinformationen in das Summenteil bewegt. Wie in 1316 gezeigt ist, nimmt das aufeinander folgende Filtern der Teilbänder die Luminanz- und Farbinformationen und „quetscht" sie aufwärts in die obere linke Ecke der Abschnitte 521, 529 und 535. Das Quetschen bildet Transformationspyramiden in den Regionen 521, 529 und 535. Farbinformationen erscheinen in den unteren Ab schnitten 529 und 535 der Bänder 514 und 518, während Luminanzinformationen in dem oberen Abschnitt 521 des Bandes 512 erscheinen, aufgrund der Phasenumkehrung des Farbträgers von einer Abtastlinie zu der nächsten in dem zusammengesetzten Video.
  • 13 stellt Block 520 nach zweimaligem vertikalen Filtern in Durchlauf 2 dar. Das erste vertikale Filter kann das verbesserte Biorthogonalfilter derart verwenden, wie in 11A und 11B gezeigt ist. Das Luminanzband 512 ist in einen Niederfrequenzabschnitt 521 und einen Hochfrequenzabschnitt 526 (LLB) aufgespaltet. Das zweite vertikale Filter verwendet ein linear gehobenes 2-4-Haar-Filter (in der Technik bekannt), bei dem Abschnitt 521 weiter in einen niedrigeren Frequenzabschnitt 522 (LLTT) und einen höheren Frequenzabschnitt 524 (LLTB) aufgespaltet ist. Da Luminanzinformationen in den niedrigeren Frequenzen dieses Bandes vorhanden sind, arbeitet ein Filtern und Aufspalten auf diese Weise vorteilhaft die wichtigen Luminanzinformationen heraus.
  • Das Phase-1-Chrominanzband 514 wird in einen Niederfrequenzabschnitt 528 und einen Hochfrequenzabschnitt 529 unter Verwendung des ersten vertikalen Filters aufgespaltet. Bei dem zweiten vertikalen Filter wird Abschnitt 529 weiter in einen niedrigeren Frequenzabschnitt 530 (LRBT) und einen höheren Frequenzabschnitt 532 (LRBB) aufgespaltet. Da das Band 516 üblicherweise das Hochfrequenzrauschen darstellt und hauptsächlich Nullwerte aufweist, wird es nicht weiter aufgespaltet. Das Phase-2-Chrominanzband 518 wird unter Verwendung des ersten vertikalen Filters weiter in einen Niederfrequenzabschnitt 534 (RRT) und einen Hochfrequenzabschnitt 535 aufgespaltet. Bei dem zweiten vertikalen Filter wird Abschnitt 535 weiter in einen niedrigeren Frequenzabschnitt 536 (RRBT) und einen höheren Frequenzabschnitt 538 (RRBB) aufgespaltet. Das Aufspalten des niedrigeren Abschnitts von jedem der Chrominanzbänder 514 und 518 wird durchgeführt, um die wichtigen Chrominanzinformationen herauszuarbeiten. Die niedrigeren Abschnitte dieser Bänder stellen ein Differenzierungsfilter dar; da die Differenz von einer Abtastlinie zu der nächsten das Liefern von Chrominanzinformationen unterstützt, enthalten die niedrigeren Abschnitte dieser Bänder wertvolle Farbinformationen.
  • 14 stellt Block 520 nach zwei horizontalen Filtern in Durchlauf 3 dar. Ein horizontales Filtern wird an den ausgewählten Regionen von Block 520 durchgeführt, um weiter Intensitätsinformationen aus dem Band 512, Phase-1-Chrominanzinformationen aus Band 514 und Phase-2-Chrominanzinformationen aus Band 518 herauszuarbeiten. Das erste horizontale Filter verwendet vorzugsweise das verbesserte 2-6-Biorthogonalfilter und das zweite horizontale Filter verwendet das linear gehobene 2-4-Haar-Filter. Die Region 524 wird in zwei Hälften aufgespaltet. Die Region 522 wird ebenfalls in zwei Hälften gefiltert und ihre linke Hälfte wird weiter in Regionen 542 und 544 aufgespaltet. Die Region 532 wird in zwei Hälften aufgespaltet. Die Region 529 wird ebenfalls in zwei Hälften aufgespaltet und ihre linke Hälfte wird weiter in Regionen 546 und 548 aufgespaltet. Die Region 538 wird in zwei Hälften aufgespaltet. Die Region 536 wird ebenfalls in zwei Hälften aufgespaltet und ihre linke Seite wird weiter in Regionen 550 und 552 aufgespaltet. Mit dem Durchlauf 3 werden Luminanz- und Farbinformationen weiter in die Regionen 542, 546 und 550 „gequetscht".
  • Vorteilhafterweise, sobald Durchlauf 3 abgeschlossen war, wurden die Luminanz- und Chrominanzinformationen aus dem zusammengesetzten Originalsignal effektiv für eine weitere Komprimierung herausgetrennt. An diesem Punkt stellen die getrennten Luminanz- und Chrominanzinformationen ein Videosignal dar, als ob es als ein Komponentenvideo empfangen wurde (d. h. drei separate Signale), obwohl die Luminanz- und Chrominanzinformationen an diesem Punkt ebenfalls durch die vorliegende Erfindung transformiert und komprimiert wurden.
  • 15 stellt Block 520 nach einem vertikalen Filter in Durchlauf 4 dar. Bei Durchlauf 4 wird das verbesserte 2-6-Biorthogonalfilter an ausgewählte Regionen angewendet, um weiter Luminanz- und Chrominanzinformationen herauszuarbeiten (obwohl ein standardmäßiges Haar-Filter ebenfalls verwendet werden könnte). Die Region 542 des Luminanzbandes 512 wird weiter in Regionen 560 und 562 aufgespaltet. Die Region 544 wird in Regionen 564 und 566 aufgespaltet. Die Region 546 des Chrominanzbandes 514 wird in Regionen 570 und 572 aufgespaltet. Auf ähnliche Weise wird die Region 548 in Regionen 574 und 576 aufgespaltet. Die Region 550 des Chrominanzbandes 518 wird in Regionen 580 und 582 aufgespaltet. Auf ähnliche Weise wird die Region 552 in Regionen 584 und 586 aufgespaltet. Auf diese Weise werden Luminanz- und Farbinformationen weiter in Regionen 560, 570 und 580 isoliert.
  • 16 stellt Block 520 nach einem horizontalen Filter in Durchlauf 5 dar. Bei Durchlauf 5 wird das verbesserte 2-6-Biorthogonalfilter wiederum an ausgewählte Regionen angewendet, um weiter Luminanz- und Chrominanzinformationen herauszuarbeiten (obwohl ein standardmäßiges Haar-Filter ebenfalls verwendet werden könnte). Die Region 560 des Luminanzbandes 512 wird in Regionen 590 und 591 aufgespaltet. Die Region 570 des Chrominanzbandes 514 wird in Regionen 594 und 595 aufgespaltet. Die Region 580 des Chrominanzbandes 518 wird in Regionen 598 und 599 aufgespaltet. An diesem Punkt wurden fast alle Luminanz- und Farbinformationen aus dem Originalvideosignal in den Regionen 590, 594 und 598 isoliert. Da die Originalblockgröße 8 Abtastlinienzeilen mal 32 Pixel breit ist, stellen die Regionen 590, 594 und 598 einen Pixelwert dar und ein weiteres Filtern und Aufspalten ist nicht notwendig.
  • Der Pixelwert 590 enthält nun die wichtigen Luminanzinformationen für den Block, d. h. die durchschnittliche Luminanz für den Block. Auf ähnliche Weise enthalten die Pixel werte 594 und 598 der Bänder 514 und 518 jeweils die entsprechenden Durchschnittsfarben für das Chrominanzband für den Block. Somit wurden die Luminanz- oder Farbinformationen für jedes Band komprimiert; ein einzelner Koeffizient für jedes Band beschreibt in relativ wenig Bits die durchschnittliche Luminanz oder Farbe für den Block. (Das heißt, Werte 594 und 598 halten die DC-Koeffizienten für jedes Band.) Diese Koeffizienten sind relativ gesehen größer als ihre umliegenden Koeffizienten. Zum Beispiel können Koeffizienten 590, 594 und 598 9 Bits aufweisen, während ihre naheliegendsten Koeffizienten (nach rechts und unten) 7 Bits aufweisen, die nächsten 3 Bits aufweisen, etc. Koeffizienten um den Wert 590 liefern die Luminanzdifferenzen von einer Seite des Blocks zu der anderen, während jene Koeffizienten um die Werte 594 und 598 die Farbdifferenzen von einer Seite des Blocks zu der anderen liefern (d. h. Farbabweichungen innerhalb des Blocks). Nach diesen Durchläufen wurden sogenannte „Transformationspyramiden" in den Regionen 592 und 596 gebildet.
  • Es sollte darauf hingewiesen werden, dass für Blöcke mit größeren Größen das weitere vertikale und horizontale Filtern wünschenswert wäre, um die Farbträgerinformationen weiter zu isolieren. Natürlich kann für Blöcke mit geringeren Größen eine geringere Anzahl von Durchläufen ausreichend sein.
  • MODIFIZIERTE HAAR-TRANSFORMATION
  • 17 stellt das allgemeine Konzept hinter einer Haar-Transformation 650 dar, die nützlich ist bei Haar-Einheiten 122 und 130. Im allgemeinen berechnet eine Haar-Transformation Summen und Differenzen zwischen entsprechenden Blöcken aus Rahmen oder Feldern. 17 stellt eine kombinierte Zwischenfeld- und Zwischenrahmen-Haar-Transformation dar. Der Rahmen 652 umfasst Felder 654 und 656; der Rahmen 662 umfasst Felder 664 und 666. Der Rahmen 652 und der Rahmen 662 folgen einander zeitlich und sind anderweitig verwandt. Jedes der Felder enthält einen entsprechenden Block 670a, 670b, 670c oder 670d, die einander im Hinblick auf ihre Position innerhalb des Feldes entsprechen. Die Blöcke 670a670d können einander ebenfalls auf eine andere Weise entsprechen oder anderweitig verwandt sein. Die Haar-Transformation beginnt durch Berechnen 680 einer Summe und einer Differenz zwischen Blöcken 670a und 670b des Rahmens 650. Als nächstes liefert die Berechnung 682 die Summe und die Differenz zwischen den Blöcken 670c und 670d des Rahmens 662. Als nächstes berechnet der Prozess die Summe der zwei Summen aus den zwei Rahmen und die Differenz der Differenzen zwischen den Paaren der Felder. Somit wird eine Gesamtsumme und eine Differenz 684 zwischen zwei aufeinander folgenden Rahmen erzeugt. Obwohl jeder dieser Werte als ein Ergebnis der Haar-Transformation ausgegeben werden kann, werden üblicherweise vier Werte ausgegeben: die Differenz zwischen den Feldern 654 und 656; die Differenz zwischen den Feldern 664 und 666; die Differenz zwischen diesen vorangehenden Differenzen (die Differenz zwischen Rahmen 652 und 662); und die Summe der Rahmen 652 und 662. Ein solcher Vergleichsprozess, wie z. B. Haar, ist für eine progressive, Zwischenzeilen- oder eine andere Art von Abtastung anwendbar.
  • 18 stellt eine Zwischenfeld-Haar-Einheit 122 zum Durchführen einer modifizierten Haar-Transformation an zwei entsprechenden Blöcken dar, die von der Speicherung 118 empfangen werden. Die Einheit 122 empfängt entsprechende Blöcke von geraden und ungeraden Feldern aus der Speicherung 118 in Teildecodierern 702 bzw. 704. Die Ausrichtungseinheit 706 führt eine zusätzliche Decodierung nach Bedarf durch und richtet die Bitströme aus. Die Ausrichtungseinheit 706 ist nützlich, da die vorangehende Codierung mit variabler Länge die entsprechenden Koeffizienten aus den entsprechenden Blöcken außer Ausrichtung platziert hat. Koeffizienten ungleich Null laufen durch die Haar-Transformation 708 während Nulldurchläufen und werden direkt zu Quantisierer/Codierer 710 und 712 weitergeleitet. Diese Quantisierer/Codierer empfangen Ergebnisse von der Haar-Transformation 708 und Nullläufe von der Ausrichtungseinheit 706 und führen eine weitere Codierung nach Bedarf durch und geben die Summe 714 und die Differenz 716 der zwei entsprechenden Blöcke für eine Lieferung zu der Rahmenblockspeicherung 126 aus. Quantisierer/Codierer 710 und 712 führen eine Quantisierung und Codierung des Blocks auf eine ähnliche Weise zu Schritt 226 und 232 durch. Es sollte darauf hingewiesen werden, dass unterschiedliche Parameter für eine unterschiedliche Codierungstechnik bei diesem Schritt verwendet werden können, oder dass eine vollständig unterschiedliche Codierungstechnik verwendet werden kann.
  • Die Haar-Transformation 708 ist vorzugsweise ein Bit breit, wodurch äußerst schnelle Vergleiche geliefert werden. Eine weitere Trennung von Chrominanzinformationen kann hier ebenfalls durchgeführt werden. Eine Zwischenrahmen-Haar-Einheit 130 ist vorzugsweise im Wesentlichen auf die gleiche Weise aufgebaut wie die Einheit 122, außer dass Blöcke aus entsprechenden Rahmen verglichen werden und nicht Blöcke aus Feldern.
  • FARBDREHUNG
  • 21 stellt eine Farbdreheinheit 132 zur Verwendung beim Durchführen einer effizienten Farbdrehung in Verbindung mit dem Ausführungsbeispiel der beschriebenen Erfindung dar. Die Einheit 132 wandelt Farbinformationen von einem Koordinatensystem in ein anderes um. Vorteilhafterweise wird eine Umwandlung zwischen Systemen (wie z. B. YIQ, YUV, RGB oder Modifikationen dieser Art) mit einer Komprimierung integriert und erfordert keine teuren Matrixmultiplikationen. Im allgemeinen kann eine Farbdrehung eines Farbsignals vor einer Datentransformation in dem Modul 114 oder nach einer Transformation auftreten, da beide Operationen sich miteinander austauschen. Vorteilhafterweise werden Paare aus Pixeln aus Chrominanztransformationspyramiden 592 und 596 unter Verwendung einer Drehmatrix nach einer Transformation gedreht. Nach einer Transformation sind viele Paar Null oder sehr kleine Zahlen, was bedeutet, dass eine Berechnung weit einfacher ist.
  • Eine Farbdreheinheit 132 kann eine Drehung an einem geeigneten Punkt innerhalb des Systems 100 durchführen. Vorzugsweise wird eine Drehung nach einer Transformation in dem Modul 114 durchgeführt, um einen Vorteil aus der Konzentration der Farbinformationen in den Chrominanztransformationspyramiden 592 und 596 zu ziehen (und der entsprechenden Erhöhung bei Nullwerten). Wiederum vorzugsweise wird eine Drehung nach einer Quantisierung und Codierung in dem Modul 114 durchgeführt, um einen weiteren Vorteil aus der Beseitigung von Nullkoeffizienten und vorangehenden Nullen an kleinen Koeffizienten zu ziehen. Wiederum vorzugsweise tritt eine Drehung nach jeder Haar-Einheit 122 oder Haar-Einheit 130 auf, um einen weiteren Vorteil aus der Komprimierung zu ziehen, die in diesen Einheiten durchgeführt wird, wobei eine Farbdreheinheit 132, die nach der Haar-Einheit 130 platziert ist, am bevorzugtesten ist, da die Daten an diesem Punkt am weitesten komprimiert sind. Somit wird eine Drehung an einem komprimierten Block in dem Transformationsbereich durchgeführt, der viel weniger Bits aufweist als ein dekomprimierter Block.
  • Wie oben erklärt wurde, wandelt die Drehung von einem Koordinatensystem zu einem anderen um. Bei einem bestimmten Ausführungsbeispiel der vorliegenden Erfindung erzeugen die Durchläufe 2 – 5 Chrominanzsignale, die einem YUV-Signal entsprechen, das um 45 Grad gedreht ist. Die Farbdreheinheit 132 wird verwendet, um diese eingebrachte Drehung zu korrigieren, oder um das Signal in ein anderes Farbkoordinatensystem zu platzieren. Die Einheit 132 ist nicht unbedingt notwendig. Zum Beispiel, wenn die Videoinformationen, die unter Verwendung des Systems 100 komprimiert wurden, nicht in ein anderes Koordinatensystem zur Verwendung umgewandelt werden müssen, ist eine Farbdrehung vielleicht nicht notwendig.
  • Die Farbdreheinheit 132 empfängt einen komprimierten Bitstrom 770 von der Haar-Einheit 130. Der Bitstrom 770 präsentiert Paaren aus Pixelkoeffizienten 772 ein niederwertiges Bit (LSB) nach dem anderen zuerst in serieller Form. Vorzugsweise werden nur signifikante Bits präsentiert. Die Einheit 130 führt eine Seriell-Mal-Parallel-Multiplizierung durch. Die Koeffizienten 772 werden mit Drehmatrixelementen R(11), R(12), R(21) und R(22) multipliziert, wie gezeigt ist, und die Ergebnisse werden summiert, um das Pixelpaar b(U) und b(V) in einem neuen Koordinatensystem zu liefern. Das neue Paar wird dann aus der Einheit 130 in serieller Bitstromform ausgegeben. Werte für die Elemente der Drehmatrix werden ausgewählt, um in das gewünschte Farbkoordinatensystem umzuwandeln; solche Werte sind in der Technik bekannt. Pixelkoeffizienten 772 folgen einander in dem Bitstrom, da sie aus einem Direktzugriffsspeicher in der gewünschten Reihenfolge gelesen werden können.
  • Eine Seriell-Mal-Parallel-Multiplizierung ist eine bekannte Technik zum Multiplizieren eines seriellen Multiplizierers (eines Koeffizienten) mit einem parallelen Multiplikanden (einem Drehmatrixelement). Vorteilhafterweise ist die Datenrate in dem System 100 niedrig genug, dass ein solcher bitserieller Multiplizierer anstelle einer teuren parallelen Multiplikation verwendet werden kann. Zum Beispiel ist eine Datenrate im Bereich von 15 Mb/s niedrig genug, um zu ermöglichen, dass ein solcher bitserieller Multiplizierer verwendet wird.
  • Eine solche Seriell-Mal-Parallel-Multiplizierung auf binäre Weise verwendet Schiebe- und Addierungsoperationen und wird ebenfalls als ein paralleler Addierer bezeichnet. Eine solche Seriell-Mal-Parallel-Multiplizierung anstelle einer Parallelmultiplikation kann in einer viel kleineren integrierten Schaltung implementiert werden. Zum Beispiel, obwohl eine Farbdreheinheit, die eine Parallelmultiplikation von Koeffizienten und Matrixelementen verwendet, einen großen Raumbetrag in einer integrierten Schaltung einnehmen könnte, könnte eine solche Einheit, die unter Verwendung der Techniken implementiert wird, die hierin beschrieben sind, den Raum ebenfalls, der benötigt wird, um einen Faktor von 10 reduzieren. Somit kann eine integrierte Schaltung, die die vorliegende Erfindung verkörpert, viel kleiner gemacht werden und/oder Raum für eine andere Funktionalität aufweisen.
  • Ferner, da die Farbdrehung mit einem Komprimierungsalgorithmus integriert ist, der in der Lage ist, Blöcke unabhängig zu behandeln, kann die Drehung von Pixeln lokal auftreten, wenn der Bitstrom durch das System 100 fließt, ohne den Bedarf zum Speichern eines Feldes oder eines Rahmens aus Informationen, bevor eine Drehung auftreten kann. Wenn ein Block (oder ein anderer Abschnitt eines Bildes) in komprimierter Form, der zwei Chrominanzsignale darstellt, durch das System 100 läuft, können die zwei Signale durch direktes Arbeiten an dem komprimierten Block gedreht werden. Eine Farbdrehung ist mit einer Komprimierung integriert, ohne den Bedarf zum Durchführen einer Drehung an einer separaten Vorrichtung.
  • COMPUTERSYSTEMAUSFÜHRUNGSBEISPIEL
  • 23 stellt ein Computersystem 900 gemäß einem Ausführungsbeispiel der vorliegenden Erfindung dar. Das Computersystem 900 umfasst eine beliebige Anzahl von Prozessoren 902 (ebenfalls bezeichnet als zentrale Verarbeitungseinheiten oder CPUs), die mit Speicherungsvorrichtungen gekoppelt sind, die eine primäre Speicherung 906 (wie z. B. einen Direktzugriffsspeicher oder RAM) und eine primäre Speicherung 904 (wie z. B. einen Nur-Lese-Speicher oder ROM) umfassen. Wie in der Technik bekannt ist, handelt eine primäre Speicherung 904 zum Übertragen von Daten und Anwei sungen unidirektional zu der CPU, und die primäre Speicherung 906 wird üblicherweise verwendet, um Daten und Anweisungen auf eine bidirektionale Weise zu übertragen. Beide diese primären Speicherungsvorrichtungen können ein geeignetes der computerlesbaren Medien umfassen, die nachfolgend beschrieben sind. Eine Massenspeicherungsvorrichtung 908 ist ebenfalls bidirektional mit der CPU 902 gekoppelt und liefert eine zusätzliche Datenspeicherungskapazität und kann ferner eines der nachfolgend beschriebenen computerlesbaren Medien umfassen. Die Massenspeicherungsvorrichtung 908 kann verwendet werden, um Programme, Daten und ähnliches zu speichern, und ist üblicherweise ein sekundäres Speicherungsmedium (wie z. B. eine Festplatte), die langsamer ist als eine primäre Speicherung. Es wird darauf hingewiesen, dass die Informationen, die innerhalb der Massenspeicherungsvorrichtung 908 gehalten werden, in geeigneten Fällen auf standardmäßige Weise als Teil einer primären Speicherung 906 als virtueller Speicher eingelagert sein können. Eine spezifische Massenspeicherungsvorrichtung, wie z. B. eine CD-ROM 914, leitet Daten unidirektional zu der CPU.
  • Die CPU 902 ist ferner mit einer Schnittstelle 910 gekoppelt, die eine oder mehrere Eingabe-/Ausgabevorrichtungen umfasst, wie z. B. Videomonitore, Steuerungsbälle, Mäuse, Tastaturen, Mikrophone, berührungsempfindliche Anzeigen, Wandlerkartenleser, Magnet- oder Papierbandleser, Tabletts, Stifte, Stimm- oder Schreiberkenner, Biometrikleser oder andere Computer. Die CPU 902 kann optional mit einem anderen Computer- oder Telekommunikationsnetzwerk gekoppelt sein, unter Verwendung einer Netzwerkverbindung, die allgemein bei 912 gezeigt ist. Bei einer solchen Netzwerkverbindung wird davon ausgegangen, dass die CPU Informationen von dem Netzwerk empfangen könnte oder Informationen an das Netzwerk im Laufe der Durchführung der oben beschriebenen Verfahrensschritte ausgeben könnte. Ferner können die Verfahrensausführungsbeispiele der vorliegenden Erfindung nur auf der CPU 902 ausgeführt werden oder können über eine Netzwerkverbindung ausgeführt werden, wie z. B. das Internet, in Verbindung mit einer entfernten CPU, die einen Abschnitt der Verarbeitung gemeinschaftlich durchführt.
  • Zusätzlich dazu beziehen sich Ausführungsbeispiele der vorliegenden Erfindung ferner auf Computerspeicherungsprodukte mit einem computerlesbaren Medium, das einen Programmcode auf demselben aufweisen kann, zum Durchführen verschiedener computerimplementierter Operationen. Das Medium und der Programmcode können speziell entworfen und zu dem Zweck der vorliegenden Erfindung aufgebaut sein, oder sie können von der Art sein, die für Fachleute auf dem Gebiet von Computersoftware bekannt und verfügbar ist. Beispiele von computerlesbaren Medien umfassen, sind jedoch nicht beschränkt auf: magnetische Medien, wie z. B. Festplatten, Disketten und Magnetband; optische Medien, wie z. B. CD-ROM-Platten; magnetooptische Medien, wie z. B. floptische Platten; und Hardwarevorrichtungen, die speziell konfiguriert sind, um einen Programmcode zu speichern und auszuführen, wie z. B. anwendungsspezifische integrierte Schaltungen (ASICs), programmierbare Logikvorrichtungen (PDLs) und ROM- und RAM-Vorrichtungen. Beispiele eines Programmcodes umfassen Maschinencode, wie z. B. durch einen Kompilierer erzeugt wird, und Dateien, die einen Code höherer Ebene enthalten, die durch einen Computer unter Verwendung eines Interpretierers ausgeführt werden.
  • Obwohl die vorangehende Erfindung detailliert zu Zwecken der Klarheit des Verständnisses beschrieben wurde, ist es offensichtlich, dass bestimmte Änderungen und Modifikationen innerhalb des Schutzbereichs der beiliegenden Ansprüche praktiziert werden können. Zum Beispiel ist die vorliegende Erfindung an eine breite Vielzahl von Standbildern, Videobildern und Daten höherer Dimensionen anwendbar. Zum Beispiel trifft die vorliegende Erfindung auf zweidimensionale Standbilder, dreidimensionale Videobilder und vierdimensionale seismische Informationen zu. Im allgemeinen ist die vorliegenden Erfindung nützlich für die Komprimierung und Dekomprimierung von mehrdimensionalen Informationen. Die Erfindung ist an eine Vielzahl von Videostandards anwendbar, einschließlich zusammengesetztem Video, S-Video und anderen. Eine direkte Komprimierung eines kombinierten Videosignals (das Farbe und/oder Schwarz-und-Weiß kombiniert), ist an zusammengesetztes Video, S-Video und andere ähnliche Signale anwendbar. Eine temporäre Komprimierung von Blöcken ist an eine breite Vielzahl von Komprimierungstechniken anwendbar, zusätzlich zu den hierin beschriebenen. Ferner kann eine Farbdrehung zwischen einer breiten Vielzahl von Farbräumen durchgeführt werden. Die Grenzfilter, die hierin beschrieben sind, sind ferner an andere Abschnitte von Rahmen und Feldern zusätzlich zu Blöcken anwendbar. Daher sollten die beschriebenen Ausführungsbeispiele als darstellend und nicht einschränkend genommen werden, und die Erfindung sollte nicht auf die Details eingeschränkt sein, die hierin gegeben sind, sondern sollte durch die nachfolgenden Ansprüche definiert sein.

Claims (28)

  1. Verfahren zum Komprimieren von Videoinformationen, das folgende Schritte aufweist: Empfangen eines ersten Abschnitts von Videoinformationen; Komprimieren des ersten Abschnitts; temporäres Speichern des komprimierten ersten Abschnitts, bis ein entsprechender zweiter Abschnitt empfangen wird, wobei der entsprechende erste und zweite Abschnitt dieselbe Position in aufeinanderfolgenden Feldern oder Rahmen der Videoinformationen einnehmen; Dekomprimieren des komprimierten ersten Abschnitts; Kombinieren des ersten Abschnitts, der durch Dekomprimieren des ersten Abschnitts erhalten wird, und des zweiten Abschnitts, um einen resultierenden Abschnitt zu erzeugen, wobei der resultierende Abschnitt Informationen aus dem ersten und dem zweiten Abschnitt darstellt; und Komprimieren des resultierenden Abschnitts in einen Strom aus Bits, der die Videoinformationen in komprimierter Form darstellt.
  2. Ein Verfahren gemäß Anspruch 1, das ferner folgende Schritte aufweist: Komprimieren des zweiten Abschnitts; temporäres Speichern des komprimierten zweiten Abschnitts; und Dekomprimieren des zweiten komprimierten Abschnitts für eine Kombination mit dem dekomprimierten ersten Abschnitt.
  3. Ein Verfahren gemäß Anspruch 1 oder 2, bei dem der Schritt des Komprimierens das Transformieren und Codieren des ersten Abschnitts umfaßt, wobei der Schritt des Dekomprimierens das Decodieren des ersten Abschnitts durchführt, und wobei der Schritt des Kombinierens in dem Transformationsbereich durchgeführt wird, wodurch eine Umkehrtransformation auf den ersten und den zweiten Abschnitt hin nicht durchgeführt werden muß.
  4. Ein Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem der Schritt des Komprimierens folgende Teilschritte umfaßt: Transformieren des ersten Abschnitts unter Verwendung eines modifizierten 2-6-Biorthogonalfilters, wodurch die Informationen Block für Block komprimiert werden können, ohne wesentliche Blockbildungsartefakte zu erzeugen.
  5. Ein Verfahren gemäß einem der Ansprüche 1 bis 4, bei dem die Schritte des Dekomprimierens und Kombinierens integriert sind und folgende Teilschritte umfassen: Teildecodieren des ersten Abschnitts; Durchführen eines Haar-Vergleichs des ersten und des zweiten Abschnitts; und Codieren des Ergebnisses des Haar-Vergleichs, um den resultierenden Abschnitt zu erzeugen.
  6. Ein Verfahren gemäß Anspruch 1, bei dem der Schritt zum Empfangen das Empfangen eines ersten Abschnitts eines Videobildes aufweist; der Schritt des Komprimierens das Transformieren des ersten Abschnitts des Bildes und das Codieren des transformierten ersten Abschnitts aufweist; der Schritt des temporären Speicherns das temporäre Speichern des codierten ersten Abschnitts aufweist; der Schritt des Dekomprimierens das zumindest teilweise Decodieren des codierten ersten Abschnitts aufweist; der Schritt des Kombinierens das Vergleichen des decodierten ersten Abschnitts mit einem entsprechenden zweiten Abschnitt aus einem entsprechenden Videobild aufweist, um einen resultierenden Abschnitt zu erzeugen, wobei der resultierende Abschnitt Informationen aus dem ersten und dem zweiten Abschnitt darstellt; und nach dem Schritt des Kombinierens der resultierende Abschnitt codiert wird, um komprimierte Videoinformationen zu erzeugen.
  7. Ein Verfahren gemäß Anspruch 6, das ferner folgende Schritte aufweist: Transformieren des zweiten Abschnitts; Codieren des zweiten Abschnitts; temporäres Speichern des codierten zweiten Abschnitts; und zumindest teilweise Decodieren des zweiten codierten Abschnitts für einen Vergleich mit dem decodierten ersten Abschnitt.
  8. Ein Verfahren gemäß Anspruch 6 oder 7, bei dem der Schritt des Vergleichens in dem Transformationsbereich durchgeführt wird, wodurch eine Umkehrtransformation nicht auf den ersten und den zweiten decodierten Abschnitt hin durchgeführt werden muß.
  9. Ein Verfahren gemäß einem der Ansprüche 6 bis 8, bei dem der Schritt des Transformierens folgende Teilschritte umfaßt: Transformieren des ersten Abschnitts unter Verwendung eines modifizierten 2-6-Biorthogonalfilters, wodurch die Videoinformationen Block für Block komprimiert werden können, ohne wesentliche Blockbildungsartefakte zu erzeugen.
  10. Ein Verfahren gemäß einem der Ansprüche 6 bis 9, bei dem die Schritte des teilweisen Decodierens und Vergleichens integriert sind und folgende Teilschritte umfassen: Durchführen eines Haar-Vergleichs des ersten und des zweiten Abschnitts.
  11. Ein Verfahren gemäß Anspruch 1, bei dem der Schritt des Empfangens das Empfangen einer Mehrzahl von ersten Abschnitten aufweist, die ein erstes Videobild darstellen; der Schritt des Komprimierens das temporäre Komprimieren der ersten Abschnitte aufweist; der Schritt des temporären Speicherns das temporäre Speichern der ersten Abschnitte aufweist, bis eine zweite Mehrzahl von Abschnitten aus einem ersten entsprechenden Videobild beginnt, anzukommen; der Schritt des Dekomprimierens das Dekomprimieren der ersten Abschnitte aufweist; der Schritt des Kombinierens das Vergleichen der ersten Abschnitte mit den zweiten Abschnitten aufweist, um resultierende Abschnitte zu erzeugen, die das erste und das zweite Videobild darstellen; und nach dem Schritt des Kombinierens der resultierende Abschnitt komprimiert wird, um komprimierte Videoinformationen zu erzeugen.
  12. Ein Verfahren gemäß Anspruch 11, das ferner folgende Schritte aufweist: Komprimieren der zweiten Abschnitte; temporäres Speichern der komprimierten zweiten Abschnitte; und Dekomprimieren der zweiten komprimierten Abschnitte für eine Kombination mit den dekomprimierten ersten Abschnitten.
  13. Ein Verfahren gemäß Anspruch 11 oder 12, bei dem der Schritt des temporären Komprimierens das Transformieren und Codieren der ersten Abschnitte umfaßt, wobei der Schritt des Dekomprimierens das Decodieren der ersten Abschnitte durchführt und wobei der Schritt des Vergleichens in dem Transformationsbereich durchgeführt wird, wodurch eine Umkehrtransformation nicht auf den ersten und den zweiten Abschnitt hin durchgeführt werden muß.
  14. Ein Verfahren gemäß einem der Ansprüche 11 bis 13, bei dem der Schritt des temporären Komprimierens folgende Teilschritte umfaßt: Transformieren der ersten Abschnitte unter Verwendung eines modifizierten 2-6-Biorthogonalfilters, wodurch die Videoinformationen Block für Block komprimiert werden können, ohne wesentliche Blockbildungsartefakte zu erzeugen.
  15. Ein Verfahren gemäß einem der Ansprüche 11 bis 14, bei dem die Schritte des Dekomprimierens und Vergleichens integriert sind und folgende Teilschritte umfassen: teilweise Decodieren der ersten Abschnitte; Durchführen von Haar-Vergleichen des ersten und des zweiten Abschnitts; und Codieren der Ergebnisse der Haar-Vergleiche, um die resultierenden Abschnitte zu erzeugen.
  16. Ein Verfahren gemäß einem der Ansprüche 1 bis 15, bei dem der Schritt des Kombinierens den Teilschritt des Durchführens eines Vergleichs des ersten und des zweiten Abschnitts auf eine bit-serielle Weise umfaßt.
  17. Eine integrierte Schaltung für eine Komprimierung von Videoinformationen, die folgende Merkmale aufweist: eine Einrichtung zum Empfangen eines ersten Abschnitts von Videoinformationen; eine Einrichtung zum Komprimieren des ersten Abschnitts; eine Einrichtung zum temporären Speichern des komprimierten ersten Abschnitts, bis ein entsprechender zweiter Abschnitt empfangen wird, wobei der entsprechende erste und zweite Abschnitt dieselbe Position in aufeinanderfolgenden Feldern oder Rahmen der Videoinformationen einnehmen; eine Einrichtung zum Dekomprimieren des komprimierten ersten Abschnitts; eine Einrichtung zum Kombinieren des ersten und des zweiten Abschnitts, um einen resultierenden Abschnitt zu erzeugen, wobei der resultierende Abschnitt Informationen aus dem ersten und dem zweiten Abschnitt darstellt; und eine Einrichtung zum Komprimieren des resultierenden Abschnitts in einen Strom aus Bits, die die Videoinformationen in komprimierter Form darstellen.
  18. Eine integrierte Schaltung gemäß Anspruch 17, die ferner folgende Merkmale aufweist: eine Einrichtung zum Komprimieren des zweiten Abschnitts; eine Einrichtung zum temporären Speichern des komprimierten zweiten Abschnitts; eine Einrichtung zum Dekomprimieren des zweiten komprimierten Abschnitts für eine Kombination mit dem dekomprimierten ersten Abschnitt.
  19. Eine integrierte Schaltung gemäß Anspruch 17 oder 18, bei der die Einrichtung zum Komprimieren das Transformieren und Codieren des ersten Abschnitts umfaßt, wobei die Einrichtung zum Dekomprimieren das Decodieren des ersten Abschnitts durchführt und wobei die Ein richtung zum Kombinieren in dem Transformationsbereich betrieben wird, wodurch eine Rückwärtstransformation nicht auf den ersten und den zweiten Abschnitt hin durchgeführt werden muß.
  20. Eine integrierte Schaltung gemäß einem der Ansprüche 17 bis 19, die ferner folgende Merkmale aufweist: eine Einrichtung zum Transformieren des ersten Abschnitts unter Verwendung eines modifizierten 2-6-Biorthogonalfilters, wodurch die Videoinformationen Block für Block komprimiert werden können, ohne wesentliche Blockbildungsartefakte zu erzeugen.
  21. Eine integrierte Schaltung gemäß einem der Ansprüche 17 bis 20, die ferner folgende Merkmale aufweist: eine Einrichtung zum teilweisen Decodieren des ersten Abschnitts; eine Einrichtung zum Durchführen eines Haar-Vergleichs des ersten und des zweiten Abschnitts; und eine Einrichtung zum Codieren des Ergebnisses des Haar-Vergleichs, um den resultierenden Abschnitt zu erzeugen.
  22. Eine integrierte Schaltung gemäß Anspruch 17, bei der die Einrichtung zum Empfangen eine Eingangsblockspeicherungseinheit aufweist; die Einrichtung zum Komprimieren ein Komprimierungsmodul für eine temporäre Komprimierung von Blöcken von Videoinformationen aufweist; die Einrichtung zum temporären Speichern eine temporäre Blockspeicherung zum Speichern von komprimierten Blöcken aufweist; die Einrichtung zum Dekomprimieren eine Dekomprimierungseinheit zum teilweisen Dekomprimieren der komprimierten Blöcke aufweist; die Einrichtung zum Kombinieren eine Vergleichseinheit zum Vergleichen dekomprimierter Blöcke eines ersten Videobildes mit entsprechenden dekomprimierten Blöcken aus einem entsprechenden zweiten Videobild aufweist, wobei die Vergleichseinheit angeordnet ist, um Vergleichsinformationen zu erzeugen, die das erste und das zweite Videobild darstellen; und die integrierte Schaltung ferner eine Komprimierungseinheit zum Komprimieren der Vergleichsinformationen aus der Vergleichseinheit aufweist, um einen komprimierten Bitstrom zu erzeugen, der das erste und das zweite Videobild darstellt.
  23. Eine integrierte Schaltung gemäß Anspruch 22, bei der das Komprimierungsmodul die Blöcke transformiert und codiert, wobei die Dekomprimierungseinheit die komprimierten Blöcke teilweise decodiert und wobei die Vergleichseinheit die Blöcke in dem Transformationsbereich vergleicht, wodurch keine Umkehrtransformation an den Blöcke durchgeführt werden muß.
  24. Eine integrierte Schaltung gemäß Anspruch 22 oder 23, bei der das Komprimierungsmodul die Blöcke unter Verwendung eines modifizierten 2-6-Biorthogonalfilters transformiert, wodurch die Videoinformationen Block für Block komprimiert werden können, ohne wesentliche Blockbildungsartefakte zu erzeugen.
  25. Eine integrierte Schaltung gemäß einem der Ansprüche 22 bis 24, bei der die Dekomprimierungseinheit, die Vergleichseinheit und die Komprimierungseinheit in eine Haar-Einheit integriert sind, wobei die Haar-Einheit angeordnet ist, um die komprimierten Blöcke teilweise zu decodieren, um einen Haar-Vergleich der decodierten Blöcke des ersten und des zweiten Videobildes durchzuführen, und um das Ergebnis des Haar-Vergleichs zu codieren, um die Vergleichsinformationen zu erzeugen.
  26. Eine integrierte Schaltung gemäß einem der Ansprüche 17 bis 25, bei der die Einrichtung zum Kombinieren einen Vergleich der dekomprimierten Blöcke auf eine bit-serielle Weise durchführt.
  27. Ein Verfahren zum Dekomprimieren von Videoinformationen, die durch ein Verfahren gemäß einem der Ansprüche 2 bis 16 komprimiert wurden, wobei das Verfahren folgende Schritte aufweist: Empfangen eines komprimierten Bitstroms aus Videoinformationen, der den komprimierten resultierenden Abschnitt umfaßt; Trennen des komprimierten resultierenden Abschnitts in den ersten komprimierten Abschnitt und den zweiten komprimierten Abschnitt; temporäres Speichern der zwei Abschnitte, wenn das Trennen durchgeführt wird; Dekomprimieren des ersten Abschnitts aus Videoinformationen, um einen dekomprimierten ersten Abschnitt aus Videoinformationen zu erzeugen; und Ausgeben des dekomprimierten ersten Abschnitts aus Videoinformationen.
  28. Eine integrierte Schaltung zum Dekomprimieren von Videoinformationen, die durch eine integrierte Schaltung gemäß einem der Ansprüche 18 bis 26 komprimiert wurden, die folgende Merkmale aufweist: eine Einrichtung zum Empfangen eines komprimierten Bitstroms aus Videoinformationen, der den komprimierten resultierenden Abschnitt umfaßt; eine Einrichtung zum Trennen des komprimierten resultierenden Abschnitts in den ersten komprimierten Abschnitt und den zweiten komprimierten Abschnitt; eine Einrichtung zum temporären Speichern der zwei Abschnitte, wenn das Trennen durchgeführt wird; eine Einrichtung zum Dekomprimieren des ersten Abschnitts aus Videoinformationen, um einen dekomprimierten ersten Abschnitt aus Videoinformationen zu erzeugen; und eine Einrichtung zum Ausgeben des de komprimierten ersten Abschnitts aus Videoinformationen.
DE69918980T 1998-05-14 1999-05-14 Videokompression mit speicherreduktion, farbrotation und kombinierter signal- und blockrandfilterung Expired - Lifetime DE69918980T2 (de)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US79101 1998-05-14
US79049 1998-05-14
US79427 1998-05-14
US09/079,104 US6516030B1 (en) 1998-05-14 1998-05-14 Compression of combined black/white and color video signal
US79104 1998-05-14
US09/079,427 US6396948B1 (en) 1998-05-14 1998-05-14 Color rotation integrated with compression of video signal
US09/079,101 US7130351B1 (en) 1998-05-14 1998-05-14 Storage reduction during compression
US09/079,049 US6229929B1 (en) 1998-05-14 1998-05-14 Border filtering of video signal blocks
PCT/US1999/010688 WO1999059329A2 (en) 1998-05-14 1999-05-14 Video compression with storage reduction, color rotation, combined signal and border filtering

Publications (2)

Publication Number Publication Date
DE69918980D1 DE69918980D1 (de) 2004-09-02
DE69918980T2 true DE69918980T2 (de) 2005-08-11

Family

ID=27491445

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69918980T Expired - Lifetime DE69918980T2 (de) 1998-05-14 1999-05-14 Videokompression mit speicherreduktion, farbrotation und kombinierter signal- und blockrandfilterung

Country Status (7)

Country Link
EP (1) EP1078504B1 (de)
JP (2) JP4471495B2 (de)
AT (1) ATE272292T1 (de)
AU (1) AU768853B2 (de)
CA (1) CA2331852A1 (de)
DE (1) DE69918980T2 (de)
WO (1) WO1999059329A2 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7649539B2 (en) 2004-03-10 2010-01-19 Microsoft Corporation Image formats for video capture, processing and display
US8880571B2 (en) 2006-05-05 2014-11-04 Microsoft Corporation High dynamic range data format conversions for digital media
JP4182446B2 (ja) 2006-07-14 2008-11-19 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
US8054886B2 (en) 2007-02-21 2011-11-08 Microsoft Corporation Signaling and use of chroma sample positioning information
JP5603747B2 (ja) * 2010-11-16 2014-10-08 株式会社日立国際電気 映像符号化装置
CN102694962B (zh) * 2011-03-22 2016-01-20 深圳市中兴微电子技术有限公司 降噪方法及装置
CN103947206B (zh) * 2011-10-14 2018-01-23 超威半导体公司 基于区域的图像压缩的方法和装置
KR102572429B1 (ko) * 2021-04-02 2023-09-01 한국과학기술정보연구원 압축된 다차원 행렬 곱셈 방법, 연산 장치 및 프로그램을 저장하는 저장매체

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02230881A (ja) * 1989-03-03 1990-09-13 Hitachi Ltd テレビジヨン信号処理装置
EP0535272A1 (de) * 1991-10-02 1993-04-07 Alcatel N.V. Hybrid-Codierer für ein Bildverarbeitungssystem
JPH06311496A (ja) * 1993-04-26 1994-11-04 Sony Corp 画像信号伝送方法及び画像信号伝送装置
JPH0787496A (ja) * 1993-06-30 1995-03-31 Sony Corp 画像信号伝送方法及び画像信号伝送装置
DE59510756D1 (de) * 1994-06-06 2003-09-11 Sci Worx Gmbh Verfahren zur Codierung/Decodierung eines Datenstroms
GB9501736D0 (en) * 1995-01-30 1995-03-22 Snell & Wilcox Ltd Video signal processing
JP3523719B2 (ja) * 1995-04-04 2004-04-26 三菱電機株式会社 画像符号化装置及び画像復号化装置
JP3522395B2 (ja) * 1995-07-11 2004-04-26 株式会社メガチップス 監視装置
JP3435961B2 (ja) * 1996-02-16 2003-08-11 ヤマハ株式会社 画像データ変換装置および画像データ変換方法

Also Published As

Publication number Publication date
WO1999059329A3 (en) 2000-02-03
JP4471495B2 (ja) 2010-06-02
JP2010035189A (ja) 2010-02-12
AU4079099A (en) 1999-11-29
EP1078504A2 (de) 2001-02-28
DE69918980D1 (de) 2004-09-02
EP1078504B1 (de) 2004-07-28
CA2331852A1 (en) 1999-11-18
JP5133317B2 (ja) 2013-01-30
ATE272292T1 (de) 2004-08-15
JP2002515699A (ja) 2002-05-28
AU768853B2 (en) 2004-01-08
WO1999059329A2 (en) 1999-11-18

Similar Documents

Publication Publication Date Title
DE19919600B4 (de) Einrichtung und Verfahren zum Komprimieren von Bilddaten, die von einem Bildsensor empfangen werden, der ein Bayer-Muster aufweist
DE69723550T2 (de) Kodierung und dekodierung von grafischen symbolen
DE19983253B4 (de) Die Kompression von Farbbildern auf der Grundlage einer zweidimensionalen diskreten Wavelet-Transformation, die ein scheinbar verlustloses Bild hervorbringt
US6229929B1 (en) Border filtering of video signal blocks
DE69634962T2 (de) Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE69631792T2 (de) Apparat und verfahren für die zweidimensionale datenkompression
EP0309669B1 (de) Verfahren zur szenenmodellgestützten Bilddatenreduktion für digitale Fernsehsignale
DE69633129T2 (de) Waveletbaum-bildcoder mit überlappenden bildblöcken
DE69631108T2 (de) Nachfilterung zur Entfernung von Artefakten in DCT-codierten Bildern
DE60125301T2 (de) Videosignaltranskodierung
DE69836432T2 (de) Bildcoder und -decoder
DE69730713T2 (de) Bildkoder und -dekoder
EP0985193B1 (de) Verfahren und einrichtung zur auf wavelets basierten datenkompression
DE69636277T2 (de) Verfahren und Vorrichtung zur Erzeugung von Farbart-Forminformation einer Video-Objektebene in einem Videosignal
DE60203850T2 (de) System und Verfahren zum Verarbeiten von Bildern mit aufgelöster Mosaikstruk- tur, um durch Farb-Aliasing hervorgerufenen Artefakte zu verringern.
DE19739266B4 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen
EP1371229B1 (de) Verfahren zur komprimierung und dekomprimierung von videodaten
DE4242796A1 (en) High efficiency coding of two level mixed natural images for image transmission - identifying input signals and digitising before image synthesis and coding processing into final form
DE69915843T2 (de) Teilbandkodierung/-dekodierung
DE60038550T2 (de) Verfahren und Vorrichtung zur Farbbilddatenbearbeitung und Kompression
US6396948B1 (en) Color rotation integrated with compression of video signal
DE69918980T2 (de) Videokompression mit speicherreduktion, farbrotation und kombinierter signal- und blockrandfilterung
DE19819405B4 (de) Implementation eines reversiblen eingebetteten Wavelet-Systems
US6516030B1 (en) Compression of combined black/white and color video signal
EP0956703A1 (de) Verfahren und anordnung zur codierung und decodierung eines digitalisierten bildes

Legal Events

Date Code Title Description
8364 No opposition during term of opposition