DE10224996A1 - Verfahren zur Codierung und Decodierung von Videosignalen und Computerprogrammprodukt - Google Patents

Verfahren zur Codierung und Decodierung von Videosignalen und Computerprogrammprodukt

Info

Publication number
DE10224996A1
DE10224996A1 DE10224996A DE10224996A DE10224996A1 DE 10224996 A1 DE10224996 A1 DE 10224996A1 DE 10224996 A DE10224996 A DE 10224996A DE 10224996 A DE10224996 A DE 10224996A DE 10224996 A1 DE10224996 A1 DE 10224996A1
Authority
DE
Germany
Prior art keywords
coefficients
sorting
level
coding
sequence
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.)
Withdrawn
Application number
DE10224996A
Other languages
English (en)
Inventor
Gero Baese
Norbert Oertel
Juergen Pandel
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE10224996A priority Critical patent/DE10224996A1/de
Priority to EP02102308A priority patent/EP1304885A3/de
Priority to US10/243,953 priority patent/US20030138046A1/en
Publication of DE10224996A1 publication Critical patent/DE10224996A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • 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
    • 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic 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/93Run-length coding

Landscapes

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

Abstract

Es wird vorgeschlagen, die Spektralkoeffizienten einer transformierten Prädiktionsfehlermatrix (PFM) durch Abtasten (16) zu linearisieren und in einer Folge von Pegeln und Längen umzuwandeln. Die Pegelkoeffizienten werden durch Sortieren (17) der Größe ihres Betrages nach angeordnet. Die daraus entstehende Pegelfolge (18) sowie eine Sortierinformation (19) werden einer differentiellen Codierung (20) unterzogen.

Description

  • Die Erfindung betrifft Verfahren zur Codierung und Decodierung von Videosignalen. Ferner betrifft die Erfindung ein Computerprogrammprodukt.
  • Insbesondere zum Transport von Videodaten über paketorientierte Datennetze ist eine effektive Codierung der Videosignale nötig, da die Bandbreite von paketorientierten Datennetzen eng begrenzt ist. Es sind daher standardisierte Verfahren, wie beispielsweise MPEG-1, MPEG-2 und H.26L entwickelt worden, mit denen sich Videosignale effektiv codieren und komprimieren lassen. Die standardisierten Verfahren arbeiten mit der bewegungskompensierenden Hybrid-Codierung, einer Kombination aus verlustloser Redundanzreduktion und verlustbehafteter Irrelevanzreduktion.
  • Am meisten trägt zur Kompression die sogenannte bewegungskompensierende Prädiktion bei. Die bewegungskompensierende Vorhersage oder auch Prädiktion nutzt die Ähnlichkeit aufeinanderfolgender Bilder aus, indem sie das aktuell zu codierende Bild aus bereits übertragenen Bildern vorhersagt. Da sich meist nur bestimmte Teile aufeinanderfolgender Bilder bewegen, zerlegt ein Encoder das aktuell zu codierende Bild in rechteckige Makroblöcke. Für jeden dieser Makroblöcke sucht der Codierer aus den bereits übertragenen Bildern passende Makroblöcke heraus und berechnet deren Verschiebung zu den Makroblöcken des aktuell zu codierenden Bildes. Die Verschiebungen der Makroblöcke werden durch Bewegungsvektoren beschrieben, die vom Codierer anhand von Codetabellen codiert werden.
  • Da das aktuell zu codierende Bild nicht in jedem Fall durch die Verschiebung von Makroblöcken bereits übertragener Bilder konstruiert werden kann, beispielsweise bei neu ins Bild kommenden Objekten, muss auch der Vorhersagefehler oder Prädiktionsfehler vom Codierer an den Decodierer übertragen werden. Dieser Prädiktionsfehler ergibt sich aus der Differenz zwischen dem tatsächlich aktuell zu codierenden Bild und dem durch Verschieben der Makroblöcke aus vorhergehenden Bildern konstruierten Prädiktionsbild.
  • Da die Prädiktionsfehler benachbarter Bildpunkte mit nicht oder nur schlecht prädizierbaren Bereichen korrelieren, wird zur weiteren Redundanzreduktion eine Transformation der Prädiktionsfehler vom Orts- in den Frequenzbereich durchgeführt. Je nach Kompressionsverfahren kommen dabei verschiedene Transformationsverfahren zur Anwendung. Üblich sind beispielsweise die diskrete Wavelet-Transformation (DWT) oder die diskrete Cosinus-Transformation (DCT) sowie die Integer- Transformation. Durch die Transformation werden beispielsweise die einem Makroblock aus 8 × 8 Bildpunkten zugeordneten Prädiktionsfehlerdaten in eine transformierte Prädiktionsfehlermatrix von 8 × 8 Spektralkoeffizienten transformiert. Dabei stellt der erste Spektralkoeffizient die mittlere Helligkeit dar, weshalb dieser auch als "Gleichanteil" bezeichnet wird. Die restlichen Spektralkoeffizienten spiegeln mit steigender Indexzahl höherfrequente Anteile der Prädiktionsfehlerdaten wider und werden daher auch als "Wechselanteile" bezeichnet.
  • Um die erforderliche Datenrate weiter zu verringern, werden die Spektralkoeffizienten vor der weiteren Codierung quantisiert. Wenn sich die Prädiktionsfehlerdaten von Bildpunkt zu Bildpunkt nur langsam ändern, sind nach der Quantisierung die meisten hochfrequenten Spektralkoeffizienten gleich Null. Nach der Quantisierung liegt daher in der Regel eine dünn besetzte transformierte und quantisierte Prädiktionsfehlermatrix vor, bei der nur die Spektralkoeffizienten in der Nähe des Gleichanteils ungleich Null sind. Die transformierte und quantisierte Prädiktionsfehlermatrix wird nachfolgend durch einen Abtastvorgang der Spektralkoeffizienten linearisiert. Die sich durch das Abtasten ergebende Reihe von Spektralkoeffizienten wird als eine Folge von Tupeln dargestellt, die jeweils eine Länge und einen Pegel enthalten. Der Pegel gibt dabei den Wert eines Spektralkoeffizienten an, der ungleich Null ist, wohingegen die Länge die Anzahl der Nullen angibt, die zwischen dem Pegel und dem vorangegangenen Spektralkoeffizienten ungleich Null liegen. Die Folge von Pegeln und Längen wird schließlich einer Entropiecodierung zugeführt.
  • Ausgehend von diesem Stand der Technik liegt der Erfindung die Aufgabe zugrunde, die bekannten Verfahren zur Videocodierung und Videodecodierung weiter zu verbessern.
  • Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den folgenden Verfahrensschritten gelöst:
    • - Bereitstellen einer Prädiktionsfehlermatrix;
    • - Umwandeln der Prädiktionsfehlermatrix in eine Folge von Pegelkoeffizienten und Längenkoeffizienten von Nullfolgen;
    • - Sortieren der Pegelkoeffizienten nach ihrem Betrag und Bilden einer Folge von Sortierkoeffizienten; und
    • - Differentielles Codieren der Pegelkoeffizienten.
  • Diese Aufgabe wird ferner durch ein Verfahren zur Decodierung von Videosignalen mit den folgenden Verfahrensschritten gelöst:
    • - Differentielles Decodieren der Pegelkoeffizienten;
    • - Decodieren einer Sortierinformation und Umsortieren der Pegelkoeffizienten anhand der Sortierinformation; und
    • - Umwandeln der Folge von Pegelkoeffizienten und Längenkoeffizienten von Nullfolgen in eine Prädiktionsfehlermatrix.
  • Durch die Sortierung der Pegel nach der Größe ihres Betrags entsteht eine Pegelfolge, in der sich aufeinanderfolgende Pegel nur wenig unterscheiden. Die sortierte Pegelfolge kann daher besonders effektiv differentiell codiert werden, indem Differenzen zwischen Pegeln gebildet werden und anschließend die Differenzbeträge einer Entropiecodierung unterzogen werden.
  • Bei einer bevorzugten Ausführungsform werden die Differenzbeträge durch Tupeln beschrieben, bei denen eine erste Zahl die Differenz zu einem benachbarten Pegel und eine zweite Zahl angibt, wie oft der Pegel auftritt.
  • Da in der sortierten Pegelfolge häufig gleiche Pegel hintereinander auftreten, kann die in den Pegeln enthaltene Information auf effektive Weise durch die beschriebenen Tupel zusammengefasst werden. Ein weiterer Vorteil dieser Darstellung ist, dass kein separates Symbol benötigt wird, das das Ende der Pegelfolge anzeigt.
  • Bei einer weiteren bevorzugten Ausführungsform werden auch die Sortierinformationen differentiell codiert. Die Codierung der Sortierinformation erfolgt dabei vorzugsweise mit Hilfe eines Prädiktors, indem jeweils die Differenzen zu dem Prädiktor berechnet werden. Der Wert des Prädiktors ist in einer steigenden Folge von Sortierkoeffizienten jeweils gleich dem zuletzt codierten Sortierkoeffizienten. Falls ein Sortierkoeffizient codiert werden soll, der kleiner als der vorhergehende Sortierkoeffizient ist, wird der Prädiktor wieder auf Null zurückgesetzt.
  • Durch diese Vorgehensweise ist eine besondere effektive Codierung der Sortierinformation möglich, da die großen Werte der Sortierkoeffizienten in eine Folge von häufig gleichen, betragsmäßig kleinen Differenzwerten umgewandelt werden, die sich für eine effiziente Codierung besonders eignen.
  • Weitere Einzelheiten der Erfindung sind Gegenstand der abhängigen Ansprüche.
  • Nachfolgend werden Ausführungsbeispiele der Erfindung anhand der beigefügten Zeichnung im Einzelnen erläutert. Es zeigen:
  • Fig. 1 ein Blockdiagramm, das den Ablauf eines Codierverfahrens zeigt; und
  • Fig. 2 ein Blockdiagramm mit Teilschritten des Codierverfahrens aus Fig. 1.
  • Das in Fig. 1 dargestellte Blockdiagramm eines Codierverfahrens kann auch als das Blockdiagramm einer Vorrichtung, nämlich als das Blockdiagramm eines Encoders aufgefasst werden. Der Einfachheit halber wird im Folgenden das Codierverfahren anhand des in Fig. 1 dargestellten Encoders 1 näher erläutert. Dem Fachmann ist jedoch klar, dass damit im Grunde auch ein Codierverfahren beschrieben wird.
  • Fig. 1 zeigt einen Encoder oder Codierer 1, der nach dem Prinzip der bewegungskompensierenden Hybrid-Codierung arbeitet. Der Codierer 1 verfügt über einen Eingang 2, über den der Videodatenstrom dem Codierer 1 zugeführt wird. Insbesondere werden über den Eingang 2 dem Codierer Videodaten einer Bildfolge zugeführt. Eine Bewegungsschätzeinheit 3 segmentiert ein aktuell zu codierendes Bild des Videodatenstroms in rechteckige Makroblöcke, die meist 8 × 8 oder 16 × 16 Bildpunkte groß sind. Für jeden dieser Makroblöcke sucht die Bewegungsschätzeinheit 3 aus den bereits übertragenen Bildern passende Makroblöcke heraus und berechnet deren Bewegungsvektoren. Die Bewegungsvektoren können dann mit Hilfe von herkömmlichen Codetabellen oder aber auch mit Hilfe einer kontextsensitiven Codiereinheit 4 codiert und über einen Multiplexer 5 in einen an einem Ausgang 6 ausgegebenen Bitstrom eingebettet werden. Die von der Bewegungsschätzeinheit 3 berechneten Bewegungsvektoren der Makroblöcke werden auch einem Bewegungskompensator 7 mitgeteilt, der ausgehend von den in einem Bildspeicher 8 abgespeicherten, bereits übertragenen Bildern das sich durch die Verschiebung der Makroblöcke der bereits übertragenen Bildern ergebende Prädiktionsbild berechnet. Dieses Prädiktionsbild wird in einem Subtrahierer 9von dem ursprünglichen Bild subtrahiert, um einen Vorhersagefehler zu erzeugen, der einem diskreten Cosinus-Transformator 10 mit nachfolgendem Quantisierer 11 zugeführt wird. Der Vorhersagefehler wird auch als Prädiktionsfehler oder als Textur bezeichnet. Der transformierte und quantisierte Vorhersagefehler wird an eine weitere, kontextsensitive Codiereinheit 12 weitergeleitet, die die transformierten und quantisierten Vorhersagefehlerdaten in Bitstromsegmente wandelt, die von dem Multiplexer 5 ausgelesen und in den am Ausgang 6 ausgegebenen Bitstrom eingebettet werden.
  • Durch die Verarbeitung im diskreten Cosinus-Transformator 10 werden die Makroblöcke mit beispielsweise 8 × 8 Bildpunkten als Matrix von 64 Spektralkoeffizienten dargestellt. Dabei enthält der erste Koeffizient die mittlere Helligkeit und wird deshalb auch als Gleichanteil oder DC-Koeffizient bezeichnet. Die restlichen Spektralkoeffizienten geben mit steigender Indexzahl höherfrequente Anteile der Helligkeitsverteilung wieder, weshalb sie als Wechselanteile oder AC- Koeffizienten bezeichnet werden. Durch den nachfolgenden Quantisierer 11 wird die Datenrate weiter verringert. Denn bei flächigen Elementen ändert sich der Vorhersagefehler von Bildpunkt zu Bildpunkt nur langsam, so dass nach der Verarbeitung im Quantisierer 11 die hochfrequenten Spektralkoeffizienten gleich Null sind und daher gar nicht erst übertragen werden müssen.
  • Der Quantisierer 11 kann darüber hinaus auch psychovisuelle Effekte berücksichtigen. Denn das menschliche Gehirn nimmt niederfrequente Bildkomponenten, nämlich flächenmäßig ausgedehnte Bildkomponenten, wesentlich deutlicher wahr als hochfrequente Bildkomponenten, nämlich Details. Daher können die hochfrequenten Spektralkoeffizienten gröber quantisiert werden als die niederfrequenten Spektralkoeffizienten.
  • Um die im Bildspeicher 8 abgelegten bereits übertragenen Bilder nachzuführen, werden die Spektralkoeffizienten einem inversen Quantisierer 13 und einem inversen diskreten Cosinus- Transformator 14 zugeführt und die so rekonstruierten Daten des Vorhersagefehlers auf das von dem Bewegungskompensator 7 erzeugte Prädiktionsbild in einem Addierer 15 aufaddiert. Das so erzeugte Bild entspricht demjenigen Bild, das beim Decodieren entsteht. Dieses Bild wird im Bildspeicher 8 abgelegt und dient der Bewegungsschätzeinheit 3 als Basis für die Berechnung der Bewegungsvektoren des folgenden Bildes.
  • Die Funktion der Codiereinheit 12 wird nachfolgend anhand Fig. 2 näher beschrieben.
  • Die in Fig. 2 dargestellte Codiereinheit 12 umfasst eine Abtasteinheit 16, die die vom Quantisierer 11 gelieferten Prädiktionsfehlermatrizen PFM linearisiert und in einer Folge von Pegeln und Längen umwandelt. Ein der Abtasteinheit 16 nachgeschalteter Sortierer 17 sortiert die Pegel der Größe ihres Betrages nach. Dadurch entsteht eine sortierte Pegelfolge 18, die ebenso wie Sortierinformationen 19 einem Entropiecodierer 20 zugeführt wird.
  • Das Sortierverfahren selbst wird nachfolgend im Einzelnen beschrieben:
  • Die von der Abtasteinheit 16 gelieferten Pegel werden vorzugsweise zunächst der Größe ihres Betrages nach sortiert. Prinzipiell kommen für die Sortierung der Pegel nach ihrem Betrag alle gängigen Sortierverfahren in Frage. Ein Sortierverfahren, das sich jedoch besonders gut dafür eignet, ist "Insertionsort", da die Folge von Pegeln häufig, bis auf zwischengeschobenen Nullen, bereits sortiert ist. Elementare Sortierverfahren und auch das Verfahren "Insertionsort" sind zum Beispiel aus dem Buch von Robert Sedgewick, "Algorithmen", Addison-Wesley, 1991, Kap. 8, S. 121-136 als solche bekannt.
  • Mit der Sortierung der Pegel wird auch ein der Pegelfolge zugeordnetes Indexfeld umgestellt. Das aus der Sortierung der Pegel im Sortierer 17 resultierende Indexfeld wird bei einer vorteilhaften Ausgestaltung des Sortierverfahrens nicht direkt codiert und übertragen, sondern zuerst mit Hilfe eines Markerfeldes M, das die gleiche Dimension wie das Indexfeld hat und das initial an allen Positionen nicht markiert ist, in die Sortierinformation 19 umgewandelt.
  • Die Sortierinformation 19 wird dabei auf folgende Weise gebildet. Sind insgesamt k Pegel von Null verschieden, so wird für die ersten k Indizes des unsortierten Indexfeldes in ihrer gegebenen Reihenfolge im Markerfeld von Beginn an die Anzahl der nicht markierten Stellen gezählt, bis der Index erreicht ist, der im sortierten Indexfeld als nächstes zu codieren ist. Die Anzahl der nicht markierten Stellen wird gespeichert und später dem Entropiecodierer 20 zugeführt und an den Decoder gesendet. Anschließend wird die Position im Markerfeld als markiert gekennzeichnet und mit dem nächsten Index fortgefahren.
  • Im einfachsten Fall, wenn keine Umsortierung der Pegel stattfindet, besteht die Sortierinformation aus lauter Nullen.
  • Es sei darauf hingewiesen, dass dem Decoder nur die Positionen der Pegel bekannt sein müssen, die von Null verschieden sind. An allen anderen Positionen müssen sich zwangsläufig Nullen befinden. Es ist also völlig ausreichend, nur die ersten k Positionen des Indexfeldes zu betrachten, wenn k Pegel ungleich Null sind.
  • Im folgenden wird anhand eines konkreten Ausführungsbeispiels die Durchführung der Sortierung und die Bildung der Sortierinformation 19 gezeigt:
  • Zu codieren seien folgende Folge von Koeffizienten:


  • Das Sortierverfahren "Insertionsort" läuft dann wie in der nachfolgenden Tabelle wiedergegeben ab:


  • Die Pegel sind nun ihrem Betrag nach in absteigender Reihenfolge sortiert. Fünf Pegel sind von Null verschieden. Für diese fünf Pegel muss nun eine Sortierinformation gebildet werden. Dies geschieht in den folgenden fünf Schritten:


  • Die Sequenz aus den Resultaten ist die Sortierinformation 19, die dem Entropiecodierer zugeführt werden kann, und lautet dann wie folgt:


  • Die differentielle Codierung, die im Entropiecodierer 20 erfolgt, kann auf verschiedene Art und Weise ablaufen. Die verschiedenen Möglichkeiten seien nachfolgend anhand des bereits beschriebenen Ausführungsbeispiels des Sortierverfahrens näher erläutert. Nach der Durchführung des Sortierverfahrens im Sortierer 17 ergibt sich folgende Folge von Pegelkoeffizienten und Sortierkoeffizienten:


  • Diese Folgen von Pegelkoeffizienten und Sortierkoeffizienten können auf verschiedene Art und Weise differentiell codiert werden.
  • Ausführungsbeispiel 1
  • Eine erste Möglichkeit ist, Differenzen aus aufeinanderfolgenden Pegelkoeffizienten zu bilden. Bei der Codierung der Pegelkoeffizienten mit Hilfe von Differenzen ergeben sich folgende Zahlenfolgen:
    1.1 Start beim ersten Pegelkoeffizienten:
    2 0 1 0 0 EOB
    2.1 Start beim letzten Pegelkoeffizienten:
    1 0 0 1 0 EOB
  • Ausführungsbeispiel 2
  • Auch die Sortierinformationen können differentiell codiert werden.
    2.1. Direkte Codierung:
    1 4 0 0 2
    2.2. Differenzcodierung mit Start beim ersten Sortierkoeffizienten:
    1 3 -4 0 2
    2.3. Differenzcodierung mit Start beim letzten Sortierkoeffizienten:
    2 -2 0 4 -3
    2.4. Differenzcodierung mit Hilfe eines Prädiktors und Start beim ersten Koeffizienten:
    1 3 0 0 2
  • Es sei angemerkt, dass der Prädiktor jeweils gleich dem letzten Sortierkoeffizienten gesetzt wird und dass zur Codierung des aktuellen Sortierkoeffizienten jeweils der Prädiktor vom aktuell zu codierenden Sortierkoeffizienten abgezogen wird. Dieses Verfahren wird so lange fortgesetzt, wie die Beträge der zugeordneten Pegelkoeffizienten gleich bleiben. Wenn sich die Werte der Pegelkoeffizienten ändern, wird der Prädiktor erneut auf den Startwert Null gesetzt.
  • Eine programmtechnische Realisierung dieser Codierung mit Hilfe eines Prädiktors läuft in ihrem hierfür wesentlichen Teil wie folgt ab:


  • Es sei angemerkt, dass bei den Ausführungsbeispielen 1 und 2 das EOB-Symbol nur einmal, also entweder im Zusammenhang mit den Pegelkoeffizienten oder den Sortierkoeffizienten, codiert werden braucht.
  • Ausführungsbeispiel 3
  • Es besteht auch die Möglichkeit, mehrere Pegelwerte zusammenzufassen. Die Codierung erfolgt dann in Zahlenpaaren, wobei eine erste Zahl die Differenz zum vorhergehenden Pegelkoeffizienten angibt. Eine zweite Zahl dagegen gibt an, wie oft der Pegelkoeffizient auftritt. Bei der Codierung mit Hilfe von Zahlenpaaren ist ein EOB-Symbol nicht erforderlich:
    3.1. Start beim ersten Pegelkoeffizienten:
    (2, 2) (1, 3)

    3.2. Start beim letzten Pegelkoeffizienten:
    (1, 3) (1, 2)
  • Ausführungsbeispiel 4
  • Auch mehrere Sortierkoeffizienten können zusammengefasst werden, denn es kommt häufig vor, dass die Sortierkoeffizienten mehrfach hintereinander den Wert Null aufweisen. Diese Nullfolgen können mit Hilfe der Null-Lauflängencodierung effektiv komprimiert werden. Die Codierung erfolgt dann in Zahlenpaaren, wobei eine erste Zahl den von Null verschiedenen Sortierkoeffizienten selbst und eine zweite Zahl die Anzahl der vor dem von Null verschiedenen Sortierkoeffizienten liegenden Nullen angibt.
    4.1. Direkte Codierung der Sortierkoeffizienten ohne Differenzen:
    (1, 0) (4, 0) (2, 2)
    4.2 Zusammenfassen der gemäß 2.2. differentiell codierten Sortierkoeffizienten:
    (1, 0) (3, 0) (-4, 0) (2, 1)
    4.3 Zusammenfassen der gemäß 2.3. differentiell codierten Sortierkoeffizienten:
    (2, 0) (-2, 2) (4, 1) (-3, 0)
    4.4. Zusammenfassen der gemäß 2.4. differentiell codierten Sortierkoeffizienten:
    (1, 0) (3, 0) (2, 2)
  • Die Information, dass überhaupt keine Umsortierung erfolgen muss, kann mit einem separaten Symbol codiert werden, denn in diesem Fall sind alle Sortierkoeffizienten gleich Null.
  • Ausführungsbeispiel 5
  • Weiterhin besteht die Möglichkeit, die Pegelkoeffizienten und Sortierkoeffizienten jeweils paarweise zusammenzufassen. Die Codierung erfolgt dann in Zahlenpaaren, wobei eine erste Zahl die Differenz zum vorhergehenden Pegelkoeffizienten und die die zweite Zahl dem zugehörigen Sortierkoeffizienten angibt.
    5.1. Start beim ersten Koeffizienten:
    (2, 1) (0, 4) (1, 0) (0, 0) (0, 2) EOB
    5.2. Start beim letzten Koeffizienten:
    (1, 2) (0, 0) (0, 0) (1, 4) (0, 1) EOB
  • Ausführungsbeispiel 6
  • Wenn zur Trennung der übermittelten Zahl eine EOB-Information erforderlich ist, kann sie jeweils mit den übermittelten Zahlen verknüpft werden. Im Falle der Ausführungsbeispiele 1 und 2 ergeben sich dann Tupel, während sich im Fall der Ausführungsbeispiele 3 bis 5 Tripel ergeben.
  • Die gemäß den Ausführungsbeispielen 1 bis 5 generierten Zahlenfolgen können anschließend mit Hilfe einer VLC (Variable Length Code)-Codierung codiert werden. In Frage kommt insbesondere die bekannte VLC-Codierung mit Huffman-Codes. Die Huffman-Codes werden nach einem bekannten Verfahren anhand der Auftrittswahrscheinlichkeit der zu codierenden Symbole generiert. Die Huffman-Codes sind dem Fachmann bekannt und als solche nicht Gegenstand der Anmeldung.
  • Neben den Pegeln müssen noch die Vorzeichen codiert werden. Da keine Korrelation unter den Vorzeichen bestehen, kann die Codierung der Vorzeichen für jeden von Null verschiedenen Koeffizienten mit einem Bit erfolgen. Beispielsweise kann ein negatives Vorzeichen eines Pegelkoeffizienten mit einer logischen Eins, und ein positives Vorzeichen mit einer logischen Null codiert werden.
  • Anstelle des Huffman-Codes kann auch der bereits im H.26L- Testmodell verwendete UVLC (Universal Variable Length Code) verwendet werden. Die Zuordnung der Symbole zu den Codes erfolgt im Zusammenhang mit dem UVLC ebenfalls entsprechend einer vorher bestimmten Auftrittswahrscheinlichkeit oder nach einem sogenannten "Move-to-Front"-Algorithmus. Eine weitere Möglichkeit besteht in der Verwendung von analytisch generierbarem Code, zum Beispiel dem Golomb-Code.
  • Die Decodierung erfolgt im Prinzip invers zur Encodierung und ihre Beschreibung ergibt sich folglich indirekt aus der Beschreibung der Encodierung.
  • Zum besseren Verständnis wird jedoch im folgenden auch die erfindungsgemäße Decodierung anhand des obigen konkreten Ausführungsbeispiels gezeigt:
  • Zunächst ist eine eventuelle differentielle Codierung oder Deltacodierung rückgängig zu machen. Dies erfolgt durch Decodieren eines Symbols, Addition eines Delta-Wertes oder Addition des Prädiktors und Anpassen des Prädiktors, in Analogie zur Encodierung. Nach diesem Schritt sind auf Decoderseite folgende Daten verfügbar:
    Zum einen die decodierten, sortierten Levels:


    Zum anderen die decodierten Sortier- oder Positionsinformationen:


  • Zur Decodierung der Positionsinformation wird wieder das zur Encodierung verwendete Markerfeld benötigt. Zu Beginn der Decodierung eines Blockes wird dieses als unmarkiert vorbelegt. Wenn die Positionsinformation gleich k ist, so werden im Markerfeld, jeweils vom Beginn des Markerfeldes an, k unmarkierte Positionen übersprungen und die darauf folgende unmarkierte Position ist der gesuchte Index. Diese Stelle des Markerfeldes wird daraufhin markiert und der Index dieser Stelle ist der Index des dazugehörigen Pegels. Das heißt der Pegel muss im rekonstruierten Block an dieser Stelle stehen.
  • Die Verarbeitung der Positionsinformation sei anhand der Positionsinformation 1, 4, 0, 0, 2 gezeigt:


  • Die resultierenden Indizes der sortierten Levels


    sind also:


  • Daraus ergibt sich schließlich der decodierte Block wieder zu:


  • Die hier beschriebenen Verfahren zur differentiellen Codierung und Decodierung eignen sich für die Verwendung im Rahmen existierender Videostandards wie H.263 und MPEG-4. Die Verfahren können auch für in der Standardisierung begriffene Standards wie H.26L sowie für entsprechende zukünftige Standards verwendet werden.
  • Abschließend sei angemerkt, dass die hier beschriebenen Vorrichtungen und Verfahren sowohl in Hardware als auch in Software realisiert werden können.

Claims (14)

1. Verfahren zur Codierung von Videosignalen mit den Verfahrensschritten:
- Bereitstellen einer Prädiktionsfehlermatrix;
- Umwandeln der Prädiktionsfehlermatrix in eine Folge von Pegelkoeffizienten und Längenkoeffizienten von Nullfolgen;
- Sortieren der Pegelkoeffizienten nach ihrem Betrag und Bilden einer Folge von Sortierkoeffizienten; und
- Differentielles Codieren der Pegelkoeffizienten.
2. Verfahren nach Anspruch 1, bei dem die aus aufeinanderfolgenden Pegelkoeffizienten gebildeten Differenzen codiert werden.
3. Verfahren nach Anspruch 2, bei dem die Pegelkoeffizienten in Zahlenpaare zusammengefasst werden, wobei eine erste Zahl jeweils den Differenzwert einer Pegeländerung und eine zweite Zahl die Anzahl der Wiederholungen des geänderten Pegelkoeffizienten angibt.
4. Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Sortierkoeffizienten differentiell codiert werden.
5. Verfahren nach Anspruch 4, bei dem Differenzen von aufeinanderfolgenden Sortierkoeffizienten codiert werden.
6. Verfahren nach Anspruch 4, bei dem die Sortierkoeffizienten jeweils als Differenzen zu einem Prädiktor codiert werden.
7. Verfahren nach einem der Ansprüche 1 bis 3, bei dem die Sortierkoeffizienten in Zahlenpaaren codiert werden, wobei eine erste Zahl den Wert eines von Null verschiedenen Sortierkoeffizienten angibt und eine zweite Zahl die Länge einer benachbarten Nullfolge angibt.
8. Verfahren nach Anspruch 1 oder 2, bei dem die Differenzen von Pegelkoeffizienten mit Sortierkoeffizienten paarweise zusammengefasst werden.
9. Verfahren nach Anspruch 5 oder 6, bei dem die Differenzen der Pegelkoeffizienten mit den Differenzen der Sortierinformation paarweise zusammengefasst werden.
10. Verfahren nach einem der Ansprüche 1 bis 9, bei dem die Bildung der Differenzen mit einem ersten Koeffizienten beginnt.
11. Verfahren nach einem der Ansprüche 1 bis 9, bei dem Bildung der Differenzen mit einem letzten Koeffizienten beginnt.
12. Verfahren nach einem der Ansprüche 1 bis 11, bei dem die Folge von Koeffizienten oder die Folge von Differenzen von Koeffizienten mit einem das Ende der Folge abschließenden Symbol gekennzeichnet wird.
13. Verfahren zur Decodierung von Videosignalen mit den Verfahrensschritten:
- Differentielles Decodieren der Pegelkoeffizienten;
- Decodieren einer Sortierinformation und Umsortieren der Pegelkoeffizienten anhand der Sortierinformation; und
- Umwandeln der Folge von Pegelkoeffizienten und Längenkoeffizienten von Nullfolgen in eine Prädiktionsfehlermatrix.
14. Computerprogrammprodukt, das Programmcodes zur Ausführung eines Verfahrens nach einem der Ansprüche 1 bis 13 enthält.
DE10224996A 2001-09-14 2002-06-05 Verfahren zur Codierung und Decodierung von Videosignalen und Computerprogrammprodukt Withdrawn DE10224996A1 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
DE10224996A DE10224996A1 (de) 2001-09-14 2002-06-05 Verfahren zur Codierung und Decodierung von Videosignalen und Computerprogrammprodukt
EP02102308A EP1304885A3 (de) 2001-09-14 2002-09-05 Verfahren und Computerprogrammprodukt zur Codierung und Decodierung von Videosignalen
US10/243,953 US20030138046A1 (en) 2001-09-14 2002-09-16 Method for coding and decoding video signals

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE10145372 2001-09-14
DE10145375 2001-09-14
DE10224996A DE10224996A1 (de) 2001-09-14 2002-06-05 Verfahren zur Codierung und Decodierung von Videosignalen und Computerprogrammprodukt

Publications (1)

Publication Number Publication Date
DE10224996A1 true DE10224996A1 (de) 2003-04-24

Family

ID=26010135

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10224996A Withdrawn DE10224996A1 (de) 2001-09-14 2002-06-05 Verfahren zur Codierung und Decodierung von Videosignalen und Computerprogrammprodukt

Country Status (1)

Country Link
DE (1) DE10224996A1 (de)

Similar Documents

Publication Publication Date Title
DE69735680T2 (de) Verfahren zur Bilddecodierung
DE69731517T2 (de) Übertragung und empfang codierter videobilder
DE10120644B4 (de) Bilddatenverdichtungsverfahren und -vorrichtung, welche Bilddaten separat durch Modifizieren der Farbe verdichten
DE69813349T2 (de) Vorrichtung zur Kontrolle der Datenmenge und Kodierer dieselbige anwendend
DE60309375T2 (de) Parametrisierung für verlauf-kompensation
DE69837497T2 (de) Verfahren und vorrichtung zum kodieren eines videosignals
DE602004001993T2 (de) Transformations basiertes restbewegungsrahmen kodierungsverfahren mit übervollständiger basis und zugehörige vorrichtung zur videokompression
DE60211171T2 (de) Verarbeitung von einem komprimierten mediensignal
DE19541457C1 (de) Verfahren zur Codierung eines Videodatenstroms einer aus Bildblöcken bestehenden Videosequenz
DE19919600A1 (de) Einrichtung und Verfahren zum Komprimieren von Bilddaten, die von einem Bildsensor empfangen werden, der ein Bayer-Muster aufweist
EP1472888B1 (de) Kontextsensitive kodierung und dekodierung eines videodatenstroms
EP1665805B1 (de) Verfahren zur transcodierung eines datenstroms, der ein oder mehrere codierte digitalisierte bilder umfasst mit intra-prädiktionsmodi
DE69816971T2 (de) Videokodierer mit skalierungsabhängiger vlc (variable length code) kodierung
DE69928616T2 (de) System zur extrahierung von codierungsparametern aus videodaten
EP1425920B1 (de) Verfahren zur videocodierung und computerprogrammprodukt
EP1323313B1 (de) Verfahren und anordnung zum übertragen eines vektors
EP1304885A2 (de) Verfahren und Computerprogrammprodukt zur Codierung und Decodierung von Videosignalen
EP0752788A2 (de) Videocoder und -decoder
EP1285537B1 (de) Verfahren und eine anordnung zur codierung bzw. decodierung einer folge von bildern
EP0981910B1 (de) Verfahren und vorrichtung zur codierung eines digitalisierten bildes
DE19944213C1 (de) Verfahren zum Komprimieren eines digitalen Bildes mit mehreren Bit-Ebenen
DE10224996A1 (de) Verfahren zur Codierung und Decodierung von Videosignalen und Computerprogrammprodukt
DE10219640B4 (de) Verfahren zum Codieren und Decodieren von Videosequenzen und Computerprogrammprodukt
EP1121809B1 (de) Verfahren und anordnung zur codierung eines digitalisierten bildes, verfahren und anordnung zur decodierung eines digitalisierten bildes
DE69814396T2 (de) Kompressionskodierungsverfahren

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee