DE69814396T2 - Kompressionskodierungsverfahren - Google Patents

Kompressionskodierungsverfahren Download PDF

Info

Publication number
DE69814396T2
DE69814396T2 DE69814396T DE69814396T DE69814396T2 DE 69814396 T2 DE69814396 T2 DE 69814396T2 DE 69814396 T DE69814396 T DE 69814396T DE 69814396 T DE69814396 T DE 69814396T DE 69814396 T2 DE69814396 T2 DE 69814396T2
Authority
DE
Germany
Prior art keywords
vector
enumeration
hierarchical
coding
parameters
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
DE69814396T
Other languages
English (en)
Other versions
DE69814396D1 (de
Inventor
Arild Fuldseth
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.)
Microsoft International Holdings BV
Original Assignee
Fast Search and Transfer AS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fast Search and Transfer AS filed Critical Fast Search and Transfer AS
Application granted granted Critical
Publication of DE69814396D1 publication Critical patent/DE69814396D1/de
Publication of DE69814396T2 publication Critical patent/DE69814396T2/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • 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/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/94Vector quantisation

Landscapes

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

Description

  • Die vorliegende Erfindung betrifft ein Kompressionsverfahren für Digitalbildinformation zum Komprimieren von Bilddarstellungen von Parametern für Seiteninformationen in Form einer Klassifikationstabelle oder in Form von Bewegungsvektoren, wobei der zu kodierende Parameter durch einen Vektor dargestellt wird, der ganzzahlige Komponenten aufweist. Insbesondere betrifft die Erfindung ein Verfahren, das auf einer hierarchischen Aufzählung beruht zur Darstellung von Parametern in Kompressionsalgorithmen zum Kodieren von Bild- und Videoinformationen.
  • Ein System oder Algorithmus zur Videodatenkomprimierung ist schematisch in 1 gezeigt. Ein System dieser Art, das auf Computern oder einem dafür vorgesehenen Verarbeitungsgerät implementiert sein kann, weist vier Abschnitte auf.
  • Die Videosignale oder allgemein Bildsignale werden an einem ersten Abschnitt 1 eingegeben, der Transformer genannt wird und der die Videosignale (oder eine Videosequenz) in eine Menge von Parametern transformiert, die zur Komprimierung geeignet sind. Die Ausgabe des Abschnitt 1 wird an den Abschnitt 2, genannt Parameterwahl, weitergeleitet, der die Gesamtzahl von Parametern vermindert. Nur die allerwichtigsten Parameter werden in Abschnitt 2 zur Weiterverarbeitung und Ausgabe an Abschnitt 3 ausgewählt, der Quantisierung genannt wird und der die eingegebenen Parameter von reellen Zahlen mit unendlich vielen Werten in ganze Zahlen mit endlich vielen Werten wandelt. In Abschnitt 4, der effektive Bitdarstellung genannt wird, werden die eingegebenen Parameter mit einer geringstmöglichen Anzahl von Bits dargestellt. Dazu sind zwei Methoden bekannt, nämlich variable Längenkodierung (VLC) und feste Längenkodierung (FLC). Ein Hauptproblem beim variablen Längenkodieren ist die Synchronisation, was an Übertragungsfehlern in mobilen Übertragungskanälen liegt. Fest Längenkodierung vermeidet dieses Problem, aber sie ist allgemeinen wesentlich weniger effektiv als variable Längenkodierung.
  • Die vorliegende Erfindung offenbart ein neues Verfahren für Abschnitt 4 der Komprimierungskodierung, d. h. die effektive Bitdarstellung von einigen der ganzzahligen Parameter in einem Algorithmus zur Bild- oder Videokomprimierung. Bei diesen Parametern handelt es sich um die sogenannte Seiteninformationsparameter, von denen die wichtigsten die folgenden sind:
  • 1. Bewegungsvektoren
  • Diese Parameter befinden sich in den meisten Algorithmen zur Videodatenkomprimierung, so auch im MPEG-1 Standard und im MPEG-2 Standard.
  • 2. Klassifikationstabellen (Bitanordnungstabellen)
  • Die Verwendung dieser Parameter ist bei der Videodatenkomprimierung unüblich, aber sie ist im Stand der Technik bekannt.
  • Allgemein kann als bekannt erachtet werden, zur Darstellung der Seiteninformationsparameter Huffman-Kodierung, arithmetische Kodierung oder Differentialkodierung zu verwenden.
  • Als Beispiele aus dem Stand der Technik, die eine Bitdarstellung unter Verwendung variabler Längenkodierung angeben, kann auf US-Patent Nummer 5,428,386 (Yagasaki et al.) sowie US-Patent Nummer 5,487,119 (Kimura et al.) verwiesen werden.
  • Yagasaki et al. offenbart ein Verfahren, um variable Längenkodierungswerte einem Bewegungsvektor zuzuordnen, das darauf beruht, eine Referenztabelle zur Zuordnung jedes möglichen Wertes des Bewegungsvektors zu einem entsprechenden variablen Längenkodewert vorzusehen, und dabei einen Ausgabebitstrom zu bilden, der variable Längenkodierungswerte aufweist. Kimura et al. offenbart ein Bildkodierungsverfahren, das eine genaue Kodierungsmengenkontrolle durchzuführen erlaubt, ohne dass ein rekursives Verarbeiten erforderlich ist. Das Verfahren wird bei einem Bildkodierungsgerät angewandt, das unter anderem einen Kodezuordnungsabschnitt aufweist, der ein Zuordnen des Quantisierungsindexes eines Quantisierungsabschnittes als ein Kodewort erlaubt, das mittels variabler Längenkodierung erzeugt wird.
  • Alle Verfahren aus dem Stand der Technik leiden an einer Anzahl von Mängeln und Problemen. Traditionelle feste Längenkodierung ist, sofern sie verwendet wird, ineffektiv, während Verfahren, die auf variabler Längenkodierung beruhen, wie die vorgenannten, gegenüber Übertragungsfehlern in Kanälen mit Rauschen anfällig sind. Wie schon gesagt liegt dies daran, dass die Parameter mittels binärer Kodewörter variabler Länge dargestellt werden. Ferner sind die Verfahren aus dem Stand der Technik gegenüber Variationen der Bild- und Videoquellen empfindlich. Die Verfahren nach dem Stand der Technik beruhen üblicherweise auf statistischen Parametern, die das Bild- oder Videoquellenmaterial betreffen, und diese Parameter können variieren.
  • Daher besteht eine Hauptaufgabe der vorliegenden Erfindung darin, die vorgenannten Mängel und Nachteile des Stands der Technik zu vermeiden. Genauer gesagt besteht die Aufgabe der vorliegenden Erfindung darin, die Synchronisationsprobleme in einem Empfänger, die aufgrund von Übertragungsfehlern auftreten, zu vermeiden und außerdem ein effizientes Verfahren zum Kodieren von Seiteninformation unabhängig von besonderen Eigenschaften der Seiteninformation wie etwa statistischen Fluktuationen zu schaffen.
  • Eine besondere Aufgabe der vorliegenden Erfindung besteht darin, eine Darstellung der Seiteninformationsparameter anzugeben, die wirksamer ist, als die Verfahren gemäß dem Stand der Technik.
  • Die vorliegenden Aufgaben und Vorteile werden gemäß der Erfindung erreicht, die am weitestgehenden in Anspruch 1 definiert ist und die ein Verfahren aufweist, das gekennzeichnet ist durch die folgenden Schritte: hierarchisches Aufzählen des Vektors in zwei oder mehr Stufen durch Aufteilen des Vektors in Untervektoren und/oder Vektorelemente auf jeder Stufe, Erzeugen von binären Kodewörtern für jeden Untervektor und/oder jedes Vektorelement auf einer gegebenen Stufe, wobei das binäre Kodewort für einen Untervektor und/oder ein Vektorelement auf einer Stufe mittels der binären Kodewörter für die Untervektoren und/oder die Vektorelemente auf einer niedrigeren Stufe gebildet ist, und Erzeugen eines binären Kodeworts einer festen Länge für den Vektor aus den binären Kodewörtern für die Untervektoren oder die Vektorelemente der unmittelbar niedrigeren Stufe der Hierarchie.
  • Handelt es sich bei dem Parameter um eine Klassifikationstabelle, wird erfindungsgemäß die Verwendung einer vorzeichenfreien hierarchischen Aufzählung vorgezogen.
  • Handelt es sich bei den Parametern um Bewegungsvektoren, wird erfindungsgemäß eine Kombination von vorzeichenbehafteter und vorzeichenfreier hierarchischer Aufzählung vorgezogen.
  • Falls der Parameter eine Klassifikationstabelle ist, wird erfindungsgemäß vorgezogen, drei Stufen für die hierarchische Aufzählung zu verwenden und, falls die Parameter Bewegungsvektoren sind, wird erfindungsgemäß vorgezogen, zwei Stufen für die hierarchische Aufzählung zu verwenden.
  • Die Erfindung wird nun genauer anhand von Ausführungsbeispielen und unter Bezugnahme auf die anliegenden Zeichnungen ausführlicher erläutert, wobei
  • 1 ein Diagramm eines Systems zur Videokomprimierung zeigt, wie es aus dem Stand der Technik bekannt ist und in der Einleitung der Anmeldung besprochen wurde,
  • 2 schematisch eine hierarchische Aufteilung zum Kodieren einer Klassifikationstabelle zeigt und
  • 3 schematisch eine hierarchische Aufteilung zum Kodieren von Bewegungsvektoren zeigt.
  • Das Verfahren gemäß der vorliegenden Erfindung basiert auf dem Umstand, dass die Parameter für die Seiteninformation, die darzustellen ist, nur in einer endlichen Zahl von Kombinationen vorhanden sein können. Jede separate Kombination kann mittels eines eindeutigen binären Kodeworts dargestellt werden. Da die Anzahl von Kombinationen sehr groß ist, muss das binäre Kodewort mittels eines mathematischen Algorithmus, einem sogenannten Aufzählungsalgorithmus, berechnet werden. Um die mathematische Berechnung zu vereinfachen, wird die Aufzählung in mehreren Stufen vorgenommen – eine sogenannte hierarchische Aufzählung, wobei eine begrenzten Anzahl von Parametern als Einheit verarbeitet werden.
  • Zunächst wird die Kodierung der Seiteninformation kurz besprochen. Diesbezüglich ist eine allgemeine Bezugnahme auf die Doktorarbeit des Erfinders angemessen, siehe "Robust Subband Video Compression for Noisy Channels with Multilevel Signaling" von Arield Fuldseth, Dissertation 1997: 87, Department of Telecommunications, Norwegian University of Science and Technology, Trondheim, Norwegen (Report 429708, ISBN 82-471-0123-8). Insbesondere wird auf Abschnitt 5.4, Seiten 120 bis 123, daraus Bezug genommen, der sich auf eine blockweise Klassifizierung von Unterband-Abtastwerten bezieht, wobei jedes Unterband in Blöcke von B × B benachbarten Abtastwerten aufgeteilt wird, die Blöcke in J-Klassen klassifiziert werden, und auf Abschnitt 6, Seiten 126 bis 130, daraus, der eine Vorhersage mit Bewegungskompensation betrifft, die zwei Grundvideokodierstrukturen (a.a.O., Seiten 115 bis 118) betrifft. Beide Strukturen verwenden eine blockbasierte Bewegungskompensation, um die Effizienz eines Zwischenbild-Differentialbildkodiermodulationsschemas (DPCM-Schemas) zu verbessern.
  • Die Seiteninformation besteht aus den folgenden Parametern:
    • – Klassifikationstabelle
    • – Bewegungsvektoren
    • – Klassifizierungsstandardabweichungen.
  • Von diesen Standardparametern tragen nur die Klassifikationstabelle und die Bewegungsvektoren signifikant zu der gesamten Bitrate bei. Man gelangt geradewegs zu der Kodeklassifikationstabelle mittels Verwendung einer festen Längenkodierung mit [log2(J)] Bits pro Block. Mit B = 4 und J = 8 entspricht dies 0,1875 Bits pro Pixel. Alternativ kann eine variable Längenkodierung (z. B. Huffman-Kodierung oder arithmetische Kodierung), die für die Entropie 0-ter Ordnung der Klassifizierungstabelle optimiert ist, verwendet werden, um jede ganzzahlige Zahl individuell zu kodieren. Dies würde die Leistung im Vergleich mit der Festlängenkodierung verbessern, aber es wäre immer noch ziemlich ineffizient für die höherfrequenten Unterbänder, bei denen die Klassifizierungstabelle voraussichtlich eine große Anzahl von Nullen enthält. Dieser Ansatz kann weiter verbessert werden, indem eine variable Längenkodierung entwickelt wird, die auf der bedingten Entropie zwischen benachbarten Einträgen in der Klassifikationstabelle beruht. Alternativ könnte man eine Lauflängenkodierung ähnlich dem Verfahren, das zum Kodieren der diskreten Kosinustransformation (DCT) Koeffizienten (s. ITU-T (CCITT)-Draft Recommendation H 263, "Video Coding for Low Bitrate Communication", Mai 1996) verwendet wird. Die Bewegungsvektoren können unter Verwendung einer variablen Längenkodierung für jede Komponente des Bewegungsvektors individuell kodiert werden oder indem für die Differenzen zwischen Bewegungsvektorkomponenten benachbarter Bewegungsblocks (a.a.O.) kodiert wird.
  • Die vorliegende Erfindung trägt eine neue Strategie zur verlustlosen festen Längenkodierung der Klassifikationstabelle und der Bewegungsvektoren vor. Das Verfahren ist von Aufzählungstechniken abgeleitet, die zur pyramidischen Vektorquantisierung (PVQ gebraucht werden, um Gitterpunkte auf einer Pyramidenfläche aufzuzählen (s. T. R. Fischer, "A pyramide vector quantizer", IEEE Trans. Inform. Theory, IT-32: 568–583, Juli 1986) und kann zum Kodieren jeglicher Vektoren mit Ganzzahlen verwendet werden. Somit ist es möglich, die Klassifikationstabelle und die Bewegungsvektoren zu kodieren. Man beachte, dass obwohl Bewegungsvektoren mit Brüchen verwendet werden können, diese in Vektoren mit ganzen Zahlen mittels geeigneterer Skalierung gewandelt werden können. Das vorgeschlagene Verfahren wird hierarchische Aufzählung genannt werden. Zusätzlich zu ihrer Effizienz in Bezug auf die erforderliche Zahl von Bits, ist die hierarchische Aufzählung geeignet für Kanäle mit Rauschen, weil Festlängenkodewörter verwendet werden. Eine allgemeine Beschreibung der hierarchischen Aufzählung wird untern vorgenommen, gefolgt von einer Diskussion der Kodierung der Klassifikationstabelle und der Bewegungsvektoren gemäß der vorliegenden Erfindung unter Verwendung des Verfahrens der hierarchischen Aufzählung.
  • Nachfolgend wird die Grundtechnik der hierarchischen Aufzählung zum Kodieren von Vektoren mit ganzzahligen Komponentenwerten beschrieben. Es wird zwischen vorzeichenfreier Aufzählung, bei der alle Vektorelemente nicht-negativ sind, und vorzeichenbehafteter Aufzählung, bei der die Vektorelemente sowohl positiv als auch negativ sein können, unterschieden. Zum Kodieren der Klassifikationstabelle wird nur vorzeichenfreie Aufzählung verwendet. Zum Kodieren der Bewegungsvektoren wird jedoch eine Kombination vorzeichenbehafteter und vorzeichenfreier Aufzählung verwendet.
  • Der für eine Übertragung zu kodierende ganzzahlige Vektor sei als n = [n0, n1, ..., nLp–l], ni ∊ Z (1) gegeben.
  • Man nehme an, dass die Summe
    Figure 00080001
    auf der Dekodierseite bekannt ist. In einigen Fällen ist KP eine Konstante, die permanent auf der Dekodierseite gespeichert sein kann. In anderen Fällen kann KP an den Dekodierer unter Verwendung von [log2 (Kmax)] Bits übertragen werden, wobei der maximale Wert von KP, Kmax auf der Dekoderseite bekannt ist. Zum Kodieren der Klassifikationstabelle kann Kmax von der Gesamtbitrate abgeleitet werden, weil eine Eins-zu-eins-Beziehung zwischen einem Eintrag in der Tabelle und der Anzahl der Bits, die zur Quantisierung der Unterband-Abtastwerte in dem entsprechenden Block verwendet werden, besteht.
  • Sei NS(LP, KP) die Anzahl von Vektoren n mit LP Dimensionen und ganzzahligen Komponenten, die Gleichung (2) für die vorzeichenbehaftete Aufzählung genügen, und sei NU(LP, KP) die entsprechende Anzahl von Vektoren für die vorzeichenfreie Aufzählung. Somit ist die Anzahl von Bits, die zur Spezifizierung eines gegebenen Vektors 6 benötigt werden gegeben durch bs = |log2(NS(LP, KP))| (3) und bu = |log2(NU(LP, KP))| (4) für eine vorzeichenbehaftete beziehungsweise für eine vorzeichenfreie Aufzählung.
  • Für die vorzeichenbehaftete Aufzählung ist gezeigt (P. F. Swaszek, "A vector quantizer for the Laplace source", IEEE Trans. Inform. Theory IT 37 (5) 1353– 1365, September 1991), dass die Anzahl der Vektoren, die der Gleichung (2) genügen, gegeben ist durch
    Figure 00090001
    wobei m = min[LP, KP]. Für vorzeichenfreie Aufzählung ist die Anzahl von Vektoren, die die Gleichung (2) erfüllen gegeben als (R. P. Grimaldi, "Discrete and Combinational Mathematics", Addison-Wesley Publ. Co., New York, N.Y., USA, 1989)
    Figure 00090002
    Ferner kann NS(LP, KP) rekursiv berechnet werden (T. R. Fischer, a.a.O.) als
    Figure 00090003
    mit den Anfangsbedingungen NS(LP, 0) = 1, LP >= 0, und NS(0, KP) = 0, KP >= 1.
  • Ähnlich kann für vorzeichenfreie ganze Zahlen geradewegs gezeigt werden, dass die folgende rekursive Beziehung NU(LP, KP) = NU(LP – 1, KP) + NU(LP, KP – 1), KP, LP >= 1 (8) für die selben Anfangsbedingungen besteht.
  • Ferner wird ein Kodierungsalgorithmus benötigt, der jedem möglichen Vektor n eine ganze Zahl eindeutig zuordnet. Zur Übertragung auf einem binären Kanal wird die resultierende ganze Zahl in ein binäres Kodewort gewandelt, das bs oder bu Bits für die vorzeichenbehaftete bzw. die vorzeichenfreie Aufzählung aufweist. Weil NS(LP, KP) zu der Anzahl N(LP, KP), d. h. der Anzahl der Gitterpunkte auf der Oberfläche einer Pyramide mit LP Dimensionen und mit Radius r, identisch ist (Fuldseth, a.a.O., Abschnitt 5, Seite 124), vorzeichenbehaftete Aufzählung kann unter Verwendung des PVQ Aufzählungsalgorithmus (T. R. Fischer, a.a.O.) durchgeführt werden. Für eine vorzeichenfreie Aufzählung wird ein Algorithmus im Anhang am Ende der vorliegenden Anmeldung gegeben, der von dem vorzeichenbehafteten Algorithmus abgeleitet ist.
  • Dieses Verfahren zum Kodieren der Klassifikationstabelle ist sehr wirksam zum Kodieren von Vektoren, die viele Nullen enthalten, wie es für Klassifikationstabellen beim Video-Kodieren bei niedrigen Bitraten charakteristisch ist. Um sich darüber klar zu werden, nehme man als einfaches Beispiel den Fall, bei dem LP = 20 und KP = 5. Durch Substitution in die Gleichung 4 und die Gleichung 6 erhält man NU(20, 5) = 42504 und bu = 16, was 0,8 Bit pro Vektorelement entspricht. Unter der Annahme, dass jedes Vektorelement einem Block von 4 × 4 Pixeln entspricht, wird der Vektor mit nur 0,8/16 = 0,05 Bit pro Pixel kodiert.
  • Leider wächst die Komplexität des Aufzählungsalgorithmus schnell mit wachsenden Werten für LP und Kp. Bei praktischen Anwendungen sind übliche Werte auf 10–100 und 100–1000 für LP beziehungsweise KP begrenzt. Wenn man eine Einzelbildgröße von 352 × 288 (Common Interchange Format (CIF)) und B = 4 annimmt, erhält man LP = 6336 während KP je nach Bitrate eine Größenordnung von 10000–100000 erreichen könnte. Somit verbietet sich die Kodierung einer ganzen Klassifizierungstabelle als ein einziger Vektor aus Gründen der Komplexität, und Vereinfachungen müssen verwendet werden. Dies wird durch eine hierarchische Aufzählung erreicht, die durchgeführt wird, indem der Vektor n in p Untervektoren ni der Länge l = LP/p gemäß der Beziehung ni = [nil, nil+l, ..., nil+l–l]T, i ∊ {0, ..., p – 1}, (9) unterteilt wird, wobei die Summe jedes Untervektoren gegeben ist als
    Figure 00110001
  • Bei der ersten Stufe des hierarchischen Verfahrens wird der Vektor [k0, k1, ..., kp–1] unter Verwendung von [log2(NU(p,KP))] Bits kodiert. Bei der zweiten Stufe wird jeder der Vektoren ni, i ∊ {0, ..., p–1} unter Verwendung von [log2(NS(l,ki)] Bits für eine vorzeichenbehaftete Aufzählung und unter Verwendung von log2(NU(l,ki)] Bits für eine vorzeichenfreie Aufzählung kodiert. Die hierarchische Aufzählungstechnik kann auf so viele Stufen wie gewünscht erweitert werden, um eine gegebene Komplexität zu erreichen. Man beachte jedoch, dass die Kodierungseffizienz mit zunehmender Zahl der Stufen abnimmt.
  • Die Klassifizierungstabelle besteht aus einer ganzzahligen Anzahl n ∊ {0, ..., J – 1} für jeden Block der Größe B × B in einem Unterband-Einzelbild. Die Zahl n, die einem gegebenen Block zugeordnet ist, gibt an, zu welcher Klasse dieser bestimmte Block gehört.
  • Die Klassifizierungstabelle wird unter Verwendung einer hierarchischen Aufzählung in drei Stufen kodiert wie in 2 dargestellt. Bei der ersten Stufe entspricht jedes Unterband einem Vektorelement, während bei der zweiten Stufe jede Zeile von Blöcken in einem Unterband einem Vektorelement entspricht. Bei der dritten Stufe wird eine Zeile von Blöcken schließlich als ein Vektor kodiert. Die hierarchische Aufzählung für die Klassifikationstabelle kann mathematisch wie folgt beschrieben werden.
  • Man nehme ein Video-Einzelbild an, das Nr Zeilen und Nc Spalten, Kƒ × Kƒ Unterbänder, und eine Klassifizierungsblockgröße von B × B aufweise. Sei nij,k die Klasse des k-ten Blockes der j-ten Zeile von Blöcken in dem Unterband Nummer i. Seien ferner definiert:
    Figure 00120001
  • Nun kann die Klassifizierungstabelle wie folgt hierarchisch kodiert werden:
  • Anfangskodierung: Kodiere Ki mit b0 = [log2(Kl,max)] Bits. Kl,max kann anhand der Gesamtbitrate bestimmt werden. Der natürliche Binärkode (NBC) wird verwendet, um das entsprechende Kodewort zu erzeugen.
  • Erste Stufe: Kodiere den Vektor
    [K2,0, K2,l, ..., K2,NBl–1] mit bl = [log2(NU(NBl, Kl))] Bits.
  • Zweite Stufe: Für jeden Wert i ∊ {0, ..., NBl – 1}, kodiere den Vektor
    [K3,i,0, K3,i,l, ..., K3,i,NBl–1] mit b2,i = [log2(NU(NBJ, K2,i))] Bits.
  • Dritte Stufe: Für jeden Wert i {0, ..., NBl – 1} und j ∊ {0, 1, ..., NBJ – 1}, kodiere den Vektor
    [nij,0, nij,1, ..., nij,NBl–1] mit b3,ij = [log2(NU(NBK, K3,ij))] Bits.
  • Für die Stufen 1–3 bildet eine vorzeichenfreie Aufzählung wie oben beschrieben das voreingestellte Kodierungsverfahren. Um jedoch die Anforderungen hinsichtlich der Berechnung und des Speicherplatzes zu verringern, wird NBC für jedes Vektorelement verwendet, falls die Länge LP und die Summe KP des zu kodierenden Vektors die folgenden Beziehungen erfüllen:
    • – KP > 1000 oder
    • – LP > 16 und KP > 500 oder
    • – LP > 32 und KP > 250 oder
    • – LP >64.
  • Die Werte von LP bei jeder gegebenen Stufe hängen von der Einzelbildgröße, der Anzahl der Unterbänder sowie der Größe der Klassifizierungsblöcke ab. Die Werte für KP hängen von der Statistik des Eingangssignals und der vorgegebenen Bitrate ab.
  • Die Bewegungsvektoren werden unter unabhängiger Berücksichtigung der vertikalen und der horizontalen Vektorkomponenten kodiert. Somit besteht die zu kodierende Information aus zwei ganzzahligen Vektoren, einem der alle Komponenten des vertikalen Bewegungsvektors enthält und einem der alle Komponenten des horizontalen Bewegungsvektors enthält.
  • Die Bewegungsvektoren werden unter Verwendung der hierarchischen Aufzählung in zwei Stufen kodiert wie in 3 dargestellt. Bei der ersten Stufe entspricht jede Zeile von Bewegungsblöcken einem Vektorelement, während bei der zweiten Stufe jede Zeile von Bewegungsblöcken als ein Vektor kodiert wird. Man beachte, dass bei der zweiten Stufe der hierarchischen Aufzählung die vorzeichenbehaftete Aufzählung verwendet werden muss, weil die Bewegungsvektorkomponenten negativ sein können.
  • Die hierarchische Aufzählung für Bewegungsvektoren kann mathematisch wie folgt beschrieben werden.
  • Ein Video-Einzelbild habe Nr Zeilen und Nc Spalten, eine Bewegungsblockgröße von M × M und einen Bewegungsvektor-Suchbereich <–W, W> . Sei mij = rνij, (14) wobei νij die vertikale oder die horizontale Bewegungsvektorkomponente des j-ten Bewegungsblocks in der i-ten Zeile des Bewegungsblocks ist und r die räumliche Bewegungsabschätzungsauflösung (d. h. r = 1 für ganzzahlige Pixelauflösung, r = 2 für Halbpixelauflösung etc.). Somit sind die mij ganze Zahlen im Interval <–Wr, Wr>. Als nächstes seien
    Figure 00140001
    und
    Figure 00150001
    wobei NMJ = Nc/M und NMI = Nr/M. Nun lassen sich die Bewegungsvektoren wie folgt hierarchisch kodieren:
  • Anfangskodierung: Kodiere Kl mit bl = [log2(2(rW – 1)NRNC/M2)] Bits. Die NBC wird zum Erzeugen des entsprechenden binären Kodeworts verwendet.
  • Erste Stufe: Kodiere den Vektor
    [K2,0, K2,l, ..., K2,Nl–1] mit b2 = [log2(NU(NMl, Kl))] Bits.
  • Zweite Stufe: Für jeden Wert i {0, ..., NMl – 1}, kodiere den Vektor
    [mi,0, mi,l, ..., mi,NMJ–1] mit b2,i = [log2(NS(NMJ, K2,i))] Bits.
  • Gemäß dem voreingestellten Kodierungsverfahren wird vorzeichenfreie Aufzählung für die erste Stufe und vorzeichenbehaftete Aufzählung für die zweite Stufe verwendet wie oben beschrieben. Um jedoch die Anforderungen hinsichtlich der Berechnung und des Speicherplatzes zu verringern, wird NBC für jedes Vektorelement verwendet, falls die Länge LP und die Summe Kp des zu kodierenden Vektors die folgenden Beziehungen erfüllen:
    • – KP > 1000 oder
    • – LP > 16 und KP > 500 oder
    • – LP > 32 und KP > 250 oder
    • – LP>64.
  • Die Werte von LP bei einer gegebenen Stufe hängen von der Einzelbildgröße ab, während die Werte für KP von der Statistik des Eingangssignals abhängen.
  • Fachleute verstehen ohne weiteres, dass das erfindungsgemäße Verfahren in etwas abgewandelten Varianten anwendbar ist, ohne den Bereich der Erfindung gemäß der anliegenden Ansprüche zu verlassen. Falls beispielsweise die Parameterwerte beschränkt sind, kann dieser Umstand dazu verwendet werden, die hierarchische Aufzählung zu vereinfachen. Anstelle jeden Parameterwert direkt zu kodieren, kann eine differentielle Kodierung verwendet werden, z. B. indem Nachbarwerte in der Klassifizierungstabelle, Nachbarvektoren etc. mit berücksichtigt werden. Eine differentielle Kodierung kann selbstverständlich mit einer direkten Kodierung kombiniert werden. Schließlich beachte man, dass die hier offenbarte hierarchische Aufzählung auch in einem Videokomprimierungssystem oder einem Algorithmus verwendet werden kann, die sich von dem in 1 gezeigten unterscheiden, oder mit anderen Parametern, die beispielsweise fraktal sind.
  • Anhang: Vorzeichenfreie Aufzählung
  • In diesem Anhang wird ein Algorithmus für eine vorzeichenfreie Aufzählung zur Verwendung bei der hierarchischen Aufzählung im einzelnen beschrieben. Der vorzeichenfreie Algorithmus ist direkt von dem vorzeichenbehafteten Algorithmus abgeleitet, der in T. R. Fischer, "A Pyramid Vector Quantizer", IEEE Trans. Inform. Theory, IT-32: 568–583, Juli 1986, gegeben ist.
  • Der LP-dimensionale vorzeichenfreie zu kodierende Vektor mit ganzen Zahlen sei gegeben als y = [y0, 1, ..., yLp–1]T, yi ∊ {0, 1, ...}, (A.1) und sei
    Figure 00170001
  • Der Kodierungsalgorithmus und der Dekodierungsalgorithmus sind unten aufgeführt.
  • Kodierung
  • Der Kodierungsalgorithmus bezweckt die Feststellung einer eindeutigen ganzen Zahl b ∊ {0, 1, ..., NU(LP, KP) – 1}, die dem Vektor y zugeordnet ist, wobei Nu(LP, KP) die Anzahl von LP-dimensionalen vorzeichenfreien Vektoren ist, die die Gleichung A.2 erfüllen. Der Wert von N(LP, KP) ist durch die Gleichung 6 der Beschreibung gegeben.
  • Setze b = 0, i = 0, k = KP, l = LP.
    • 1. Falls yi > 0, dann
      Figure 00170002
    • 2. k = k – yi,l = l – 1, i = i + 1.
    • 3. Falls (k = 0), dann halte an, andernfalls gehe zu 1.
  • Dekodierung
  • Der Dekodierungsalgorithmus bezweckt die Feststellung eines eindeutigen Vektors y, der der Zahl b ∊ {0, 1, ..., Nu(LP, KP) – 1} zugeordnet ist.
  • Setze y = 0, i = 0, yb = 0, KP, l = LP.
    • 1. Falls (b = yb), dann yi = 0; gehe zu 5.
    • 2. Falls (b < yb + Nu(l – 1, k)), dann yi = 0; gehe zu 4; andernfalls yb = yb + Nu(l – 1, k); setze j = 1.
    • 3. Falls (b < yb + Nu(l – 1, k – j)), dann yi = j; andernfalls yb = yb + Nu(l – 1, k – j); setze j = j + 1, gehe zu 3.
    • 4. k = k – yi, l = l – 1, i = i + 1. Falls (k > 0), gehe zu 1.
    • 5. Falls (k > 0), dann yLp–l, = k – yi.

Claims (5)

  1. Kompressionsverfahren für Digitalbildinformationen zum Komprimieren von Bitdarstellungen von Parametern für Seiteninformationen in Form von Klassifikationstabellen oder Bewegungsvektoren, gekennzeichnet durch die Schritte: – Darstellen des zu kodierenden Parameters durch einen Vektor mit ganzzahligen Komponenten; – hierarchisches Aufzählen des Vektors in zwei oder mehr Stufen durch Aufteilen des Vektors in Untervektoren und/oder Vektorelementen auf jeder Stufe; – Erzeugen von binären Kodewörtern für jeden Untervektor und/oder jedes Vektorelement auf einer gegebenen Stufe; – wobei das binäre Kodewort für den Untervektor auf einer Stufe mittels der binären Kodewörter für die Untervektoren und/oder Vektorelemente auf einer niedrigeren Stufe gebildet ist, – wobei das binäre Kodewort für ein Vektorelement auf einer Stufe mittels des binären Kodeworts für die Vektorelemente auf einer niedrigeren Stufe gebildet ist; und – Erzeugen eines binären Kodeworts einer festen Länge für den Vektor aus den binären Kodewörtern für die Untervektoren oder die Vektorelemente der unmittelbar niedrigeren Stufe der Hierarchie.
  2. Verfahren nach Anspruch 1, bei dem einer der Parameter als eine Klassifikationstabelle ausgebildet ist, dadurch gekennzeichnet, dass eine vorzeichenfreie hierarchische Aufzählung verwendet wird.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass drei Stufen für die hierarchische Aufzählung verwendet werden.
  4. Verfahren nach Anspruch 1, bei dem mehrere der Parameter als Bewegungsvektoren ausgebildet sind, dadurch gekennzeichnet, dass eine Kombination von vorzeichenfreier und vorzeichenbehafteter hierarchischer Aufzählung verwendet wird.
  5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass zwei Stufen für die hierarchische Aufzählung verwendet werden.
DE69814396T 1997-07-28 1998-07-09 Kompressionskodierungsverfahren Expired - Lifetime DE69814396T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
NO19973462A NO307240B1 (no) 1997-07-28 1997-07-28 Fremgangsmate ved kompresjonskoding
NO973462 1997-07-28
PCT/NO1998/000208 WO1999005862A2 (en) 1997-07-28 1998-07-09 A method in compression coding

Publications (2)

Publication Number Publication Date
DE69814396D1 DE69814396D1 (de) 2003-06-12
DE69814396T2 true DE69814396T2 (de) 2004-04-01

Family

ID=19900968

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69814396T Expired - Lifetime DE69814396T2 (de) 1997-07-28 1998-07-09 Kompressionskodierungsverfahren

Country Status (6)

Country Link
EP (1) EP0998818B1 (de)
JP (1) JP2000512474A (de)
AU (1) AU8359898A (de)
DE (1) DE69814396T2 (de)
NO (1) NO307240B1 (de)
WO (1) WO1999005862A2 (de)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102202260B1 (ko) * 2014-02-27 2021-01-12 텔레폰악티에볼라겟엘엠에릭슨(펍) 오디오/비디오 샘플 벡터의 피라미드 벡터 양자화 인덱싱 및 디인덱싱을 위한 방법 및 장치
CN108012151B (zh) * 2017-12-26 2019-06-25 中南大学 一种基于贝叶斯分类的自适应运动矢量精度快速选择方法与装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5150209A (en) * 1990-05-11 1992-09-22 Picturetel Corporation Hierarchical entropy coded lattice threshold quantization encoding method and apparatus for image and video compression
JPH06125543A (ja) * 1992-10-12 1994-05-06 Toshiba Corp 符号化装置
US5495292A (en) * 1993-09-03 1996-02-27 Gte Laboratories Incorporated Inter-frame wavelet transform coder for color video compression

Also Published As

Publication number Publication date
EP0998818B1 (de) 2003-05-07
DE69814396D1 (de) 2003-06-12
EP0998818A2 (de) 2000-05-10
WO1999005862A2 (en) 1999-02-04
AU8359898A (en) 1999-02-16
JP2000512474A (ja) 2000-09-19
NO973462D0 (no) 1997-07-28
NO307240B1 (no) 2000-02-28
NO973462L (no) 1999-01-29
WO1999005862A3 (en) 1999-04-15

Similar Documents

Publication Publication Date Title
DE69722601T2 (de) Datenkompression mit hybrider verlustloser entropiekodierung von run-length codes
DE69933483T2 (de) Vorrichtung und Verfahren zum Codieren mit bewegungskompensierter Vorhersage
DE69633129T2 (de) Waveletbaum-bildcoder mit überlappenden bildblöcken
DE69222766T2 (de) System zur adaptiven kompression der blockgrössen eines bildes
DE69835528T2 (de) Eingebetteter dct-basierte standbildkodierungsalgorithmus
DE69130214T2 (de) Bilddatenkompression mit adaptiver Blockgrössenauswahl
DE69226749T2 (de) System zur Kompression von sich bewegenden Videobildern mit mehrfachen Auflösungsmerkmalen
DE69015695T2 (de) Einrichtung zur Transformationskodierung.
DE69220541T2 (de) Adaptive Quantisierung innerhalb des Sequentiellmodus der JPEG
DE69320719T2 (de) Effiziente, frequenzskalierbare Videokodierung mit Koeffizientenwahl
DE602004002525T2 (de) Verfahren zum Umcodieren eines nach JPEG2000 komprimierten Bildes
DE69421690T2 (de) Geraet und verfahren zur datenkompression
DE69321781T2 (de) Kodierung und Dekodierung von digitalen Daten
DE69221191T2 (de) Verfahren und Vorrichtung zur Prädiktiven Kodierung eines Bildsignals mit Bewegungskompensation
DE69628935T2 (de) Vorrichtung und verfahren zur optimierung der bitratensteuerung in einem codierungssystem
DE69811394T2 (de) Adaptive entropie-kodierung im rahmen adaptiver quantisierung für videosignalkodiersysteme und -verfahren
DE19758761B4 (de) Verfahren zum Intrakodieren eines von einer Pixelmatrix gebildeten Bildes
DE112010004109B4 (de) Verfahren zum Dekodieren eines Bitstroms
DE69805228T2 (de) Videosignalkodierung mit adaptiver Quantisierung
DE69523439T2 (de) Verfahren und Vorrichtung zur Bildsignalkodierung mit einer Klassifizieranlage
DE69813349T2 (de) Vorrichtung zur Kontrolle der Datenmenge und Kodierer dieselbige anwendend
DE19534943A1 (de) Vorrichtung zur Komprimierung unter Verwendung von eingebetteten Kleinwellen
DE602004001993T2 (de) Transformations basiertes restbewegungsrahmen kodierungsverfahren mit übervollständiger basis und zugehörige vorrichtung zur videokompression
DE602004006716T2 (de) Verarbeitung von bildern unter verwendung einer begrenzten anzahl von bits
DE69624399T2 (de) Einrichtung zur Kompression von bewegten Videobildern mit adaptiver Quantisierung

Legal Events

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

Owner name: MICROSOFT INTERNATIONAL HOLDINGS B.V., AMSTERD, NL

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

Representative=s name: GRUENECKER, KINKELDEY, STOCKMAIR & SCHWANHAEUSSER,