[go: up one dir, main page]

DE69920503T2 - Verfahren zur kompression von bildern und bildsequenzen im digitalen format - Google Patents

Verfahren zur kompression von bildern und bildsequenzen im digitalen format Download PDF

Info

Publication number
DE69920503T2
DE69920503T2 DE69920503T DE69920503T DE69920503T2 DE 69920503 T2 DE69920503 T2 DE 69920503T2 DE 69920503 T DE69920503 T DE 69920503T DE 69920503 T DE69920503 T DE 69920503T DE 69920503 T2 DE69920503 T2 DE 69920503T2
Authority
DE
Germany
Prior art keywords
parameter
vlc
values
parameters
image
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 - Fee Related
Application number
DE69920503T
Other languages
English (en)
Other versions
DE69920503T8 (de
DE69920503D1 (de
Inventor
Gisle Bjontegaard
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.)
Telenor ASA
Original Assignee
Telenor ASA
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 Telenor ASA filed Critical Telenor ASA
Application granted granted Critical
Publication of DE69920503D1 publication Critical patent/DE69920503D1/de
Publication of DE69920503T2 publication Critical patent/DE69920503T2/de
Publication of DE69920503T8 publication Critical patent/DE69920503T8/de
Expired - Fee Related 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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Color Television Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Apparatus For Radiation Diagnosis (AREA)
  • Image Processing (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Verfahren zum Komprimieren von Bildern und Videosequenzen in digitale Form, wobei das Verfahren von dem Typ ist, der sich aus dem Oberbegriff des beigefügten unabhängigen Anspruchs 1 ergibt.
  • Die meisten uns umgebenden Informationstypen sind in zunehmendem Maß in einem digitalen Format beschrieben. Ein wichtiger Grund dafür ist die schnelle Entwicklung auf dem Gebiet der Computertechnologie. Bilder, insbesondere Live-Bilder und Videos, sind mit unter den letzten Informationstypen, auf welche Digitaltechnologie angewendet wurde. Hinsichtlich der Digitalisierung von Videos erfolgte dieser späte Beginn teilweise aufgrund der großen Datenmenge, die sich aus der Digitalisierung ergibt. Beispielsweise führt das Digitalisieren von Standard-TV-Signalen zu Datenraten von mehr als 200 Mbit pro Sekunde (200 Mbps). Dies bedeutet beispielsweise, daß eine Datendisc mit einer Kapazität von 4 GigaByte ungefähr 2 Minuten Digital-TV speichern kann. Dies zeigt, daß die aus einem direkten und unveränderten Digitalisieren von TV Signalen resultierende Datenmenge für praktische Zwecke zu groß ist, selbst für heutige Speichermedien.
  • Um eine Verbesserung dieser Situation herbeizuführen, wurden digitale Kompressionsverfahren für Video eingeführt. Auf diese Weise ist es möglich, unter Verwendung einer Bitmenge, die erheblich geringer ist als die zuvor erwähnte, digitale Videos wiederzugeben. Es hat sich gezeigt, daß die Kompressionstechnologie in zunehmendem Maß allgemeine Verwendung für Standard-TV und Videokonferenzen sowie Bildtelefonie und in letzter Zeit auch bei der Verwendung von Videos in einem Multimedia-Kontext findet.
  • Allmählich existieren zahlreiche Verfahren zum Komprimieren von digitalen Videos. Einige dieser Verfahren wurden als Normen in ISO/ISC (11172 und 13818) und ITU (H.261, H.262, H.263) veröffentlicht. Viele dieser Verfahren sind nach einem Schema aufgebaut, das wie in der zugehörigen 1 dargestellt charakterisiert werden kann. 1 zeigt ein Bild 10 und das vorherige Bild 1 an der selben Stelle. Derartige Bilder werden üblicherweise in Blöcke 2, 20 von 8×8 oder 16×16 Pixel unterteilt. Um einen Block 20 in einem gegenwärtigen Bild 10 zu beschreiben, werden teilweise Informationen von früheren Bildern (beispielsweise von vorhergehenden Bild 1) und teilweise Informationen verwendet, die für den vorliegenden Block 20 spezifisch sind.
  • Bei der Verwendung von Informationen von früheren Bildern, beispielsweise dem Bild 1, wird oft ein Vektor V verwendet, der angibt, wie viele Pixel – horizontal und vertikal – des Inhalts aus dem vorhergehenden Bild 1 stammen. Auf diese Weise ergibt sich im allgemeinen eine Vorhersage für den vorliegenden Block 20 aus dem Inhalt früherer Bilder, wobei die Vorhersage manchmal sehr einfach ist, beispielsweise einfach ein Block 2 im vorhergehenden Bild 1.
  • Da die Vorhersage 2 selten ausreichend gut ist, um allein den Block 20 wiederzugeben, wird die Abweichung von der Vorhersage 2 als Zusatzinformation mitgesendet.
  • Um das auf diesen Hauptelementen basierende Codierverfahren zu vervollständigen, wird schließlich der Videoinhalt mittels ungefähr zehn verschiedener Parameter beschrieben. Jeder dieser Parameter kann eine Gruppe von Werten annehmen. Beispielsweise kann die Bewegung von Pixeln in einem Block von einem Bild zum nächsten untersucht werden, und der diese Bewegung beschreibende Parameter kann als "V" bezeichnet werden. Mögliche Werte können beispielsweise zwischen 30 Pixel nach links und 30 Pixel nach rechts, oder als numerische Werte: –30 bis +30, betragen. Es existieren somit 61 mögliche Werte für V. Dieser Parameter kann sodann beispielsweise durch 6 Bits codiert werden, die 26 = 64 mögliche Werte umfassen.
  • Die Werte, die V annehmen kann, d.h. von –30 bis +30, können ungleichmäßig verteilt sein. Angenommen, der Wert β ist wesentlich wahrscheinlicher als jeder andere Wert (Wert "0" kann angeben, daß keine Bewegung aus dem vorhergehenden Bild erfolgte). Gleichermaßen können die größten numerischen Werte eine sehr geringe Wahrscheinlichkeit haben. Wird als Hauptpunkt angesehen, daß es wichtig ist, den Bitverbrauch bei der Parameterwertangabe zu verringern, wird ein bekanntes Signalverarbeitungsverfahren verwendet, bei dem, anstatt stets 6 Bits zum Angeben von V Werten zu verwenden, zur Verwendung von kurzen Codewörtern zum Angeben der wahrscheinlichsten Werte von V und längeren Codewörtern für weniger wahrscheinliche Werte übergegangen wird. Es wird hierbei von der Verwendung eines Variable Length Codes (VLC), anstelle eines durch das 6-Bit-Beispiel beschriebenen Fixed Length Codes (FLC), gesprochen.
  • Es ist angebracht, etwas auf die Bedeutung der Begriffe "Parameter", "Wert" und "Ereignis" einzugehen. Ein Parameter kann eine Definition für eine Menge sein, die bestimmte Werte annehmen kann. Der Bewegungsvektor V, der durch die Bewegungsstrecke (gemessen in Pixeln) bestimmt ist, über welche sich Informationen in der Bildebene von einem Bild zum nächsten bewegt haben, ist ein Beispiel für eine Parameterdefinition. Die Werte dieses Parameters sind Zahlen, welche die Strecke der Bewegung angeben. In einem Bild erscheinen zahlreiche Meßwerte Für diesen Vektorparameter – für eine Anzahl von Blöcken und für horizontale und vertikale Bewegung. Dennoch wird als Ausgangspunkt ein einzelner Parameter genannt, jedoch mit zahlreichen Meßpunkten oder Werten. Es ist vorstellbar, daß die Bewegungen von Bildinhalten von einem Bild zum nächsten über große Teile des Bildes eher ähnlich sind. Somit sind die Bewegungswerte für einen Block möglicherweise ähnlich den Bewegungswerten für benachbarte Blöcke. Es ist vorstellbar, daß fü einen gegenwärtigen Block ein Raten oder eine Vorhersage der Bewegung erfolgt, basierend auf der Bewegung benachbarter Blöcke. In einem solchen Fall kann der Vektorparameter als die Abweichung von dieser Vorhersage und nicht die Bewegung selbst definiert werden. Darüber hinaus kann es von Interesse sein, mehr als einen Vektorparameter zu verwenden, wobei beispielsweise der vertikalen und der horizontalen Bewegung jeweilige Vektorparameter zugewiesen werden können.
  • In anderen Fällen kann ein Parameter als Gruppe von Mengen definiert sein. Ein Beispiel hierfür ist die Sammlung von Mengen (LEVEL, RUN, LAST) (siehe die Erörterung in der nachfolgenden Beschreibung), welche die Basis für eine Parameterdefinition bildet. Ein Wert für diesen Parameter wird oft auch als Ereignis bezeichnet, was bedeutet, daß es sich um eine Gruppe von Werten für die Mengen (LEVEL, RUN, LAST) handelt. In der nachfolgenden Beschreibung können die Ausdrücke "Werte" und "Ereignisse" möglicherweise in einem Zusammenhang nicht durchgehend auseinandergehalten sein. Ereignisse/Werte werden durch ein VLC codiert. Daher sollte die Statistik bezüglich Ereignissen/Werten an das tatsächlich verwendete VLC angepaßt sein.
  • Bei den bekanntesten Kompressionsverfahren wird oft ein spezielles VLC für jeden einzelnen Parameter verwendet, d.h. ein an die betreffende Statistik für jeden einzelnen Parameter angepaßter VLC. Somit enthält der Gesamtbitstrom (oder die Sammlung von Bits) für eine Videosequenz eine komplexe Mischung aus Bits, die in Zusammenhang mit einer Anzahl von VLC, üblicherweise mehr als zehn derartiger VLC, stehen.
  • Es kann gelegentlich zum Auftreten von Fehlern in einem übertragenen Bitstrom kommen. Dies bedeutet, daß auf der Empfangsseite falsche Codewörter decodiert werden. Bei Verwendung bestehender Verfahren, wie zuvor genannt, bei denen mehrere VLC für die verschiedenen übertragenen Parameter verwendet werden, müssen beim Auftreten eines Fehlers zuerst bestimmte Synchronisierwörter in dem Bitstrom lokalisiert werden, bevor es möglich ist, den Rest des Bitstroms wieder zu verwenden.
  • Des weiteren ist die Interpretation der Informationen zu einem Bild unter Verwendung existierender Verfahren relativ kompliziert, da mehrere VLC verwendet werden und nur die Interpretation früherer Codewörter in dem Bitstrom bestimmen kann, welcher VLC das nächste Mal verwendet werden soll.
  • Das Verfahren zur Feststellung, ob ein Codewort in einem Bitstrom gefunden wurde, ist bei den bekannten Verfahren ebenfalls kompliziert, da bis zu mehrere Operationen hierzu ausgeführt werden müssen.
  • Es besteht daher der Bedarf an einer Vereinfachung der Codierung eines Bitstroms, derart daß es möglich ist, die korrekten Codewörter in einem Bitstrom nach dem Auftreten eines Fehlers in dem Strom schneller wiederzufinden. Es ist ebenfalls erwünscht, weitere Vereinfachungen in den zuvor erwähnten Punkten zu erreichen. Die vorliegende Erfindung zielt auf eine Erfüllung dieses Bedarfs ab.
  • Die Erfindung schafft daher ein Verfahren zum Komprimieren von Bildern und Videosequenzen im digitalen Format, wobei
    • – jedes zu codierende Bild in eine Anzahl von Blöcken von vorgegebener Größe geteilt wird,
    • – für jeden Block eine Voraussage getroffen wird, wobei Blöcke in einem oder mehreren, vorher Codierten Bildern und Werte für mindestens einen Vektorparameter unter Angabe einer Stelle in vorherigen Bildern zum Abrufen von Daten für die Voraussage verwendet werden,
    • – für jeden Block eine Abweichung von der Voraussage festgestellt wird, wobei die Abweichung einer geeigneten mathematischen Transformierung unterworfen wird, was dazu führt, daß Transformierungskoeffizienten in eine Definition eines Parameters für eine vollständige Beschreibung der Abweichung aufgenommen werden,
    • – weitere Parameter zur Beschreibung von ergänzenden Informationen für das Bild aufgestellt werden, auch dazu, welche Blöcke in dem Bild sich von einem entsprechenden Block in dem vorherigen Bild unterscheiden, und welche Blöcke Informationen zusätzlich zu der Voraussage aufweisen, und
    • – unter den Parametern Werte des Vektorparameters, des Abweichungsparameters und gegebenenfalls mindestens einer von den weiteren Parametern dann mit Hilfe der Codierung variabler Längen (VLC-Codierung) verschlüsselt werden, wobei der Vektorparameter, der Abweichungsparameter und der mögliche mindestens eine Parameter eine Gruppe mit einer Anzahl N an Parametern bilden.
  • Das erfindungsgemäße Verfahren ist dadurch gekennzeichnet, daß
    • – jeder einzelne von den N Parametern bei Bedarf zuerst für ein Codierungsregime mit nur einem einzigen Code variabler Länge (VLC) angepaßt wird, und
    • – die Werte, jeder dieser N Parameter annehmen kann, mit Hilfe dieses einzigen VLC codiert werden.
  • Die vorgenannte Erfindung ist ebenfalls im beigefügten unabhängigen Anspruch 1 angegeben. Bevorzugte Ausführungsbeispiele der Erfindung ergeben sich aus den beigefügten abhängigen Ansprüchen.
  • Die Erfindung wird im folgenden unter Erörterung von Ausführungsbeispielen und unter Bezugnahme auf die zugehörigen Zeichnungen näher beschrieben, welche zeigen:
  • 1 eine vereinfachte und verallgemeinerte Darstellung der Verwendung eines Voraussageblocks und eines Bewegungsvektors von einem vorhergehenden zu einem gegenwärtigen Bild in einer Videosequenz, wie bereits in der Einleitung erwähnt,
  • 2 einfache Beispiele der Codierung von Ereignissen oder Parameterwerten unter Verwendung von Codewörtern,
  • 3 ein Beispiel eines relevanten Codes mit variabler Länge (VLC), und
  • 4 ein alternatives Beispiel für einen relevanten VLC.
  • Das erfindungsgemäße Verfahren ist in vielerlei Hinsicht ähnlich der zuvor beschriebenen Gruppe von Kompressionsverfahren. Er Hauptunterschied ist, daß die Parameterbeschreibung modifiziert oder angepaßt ist, so daß sämtliche relevanten Parameter den selben VLC verwenden können. Dies bedeutet, daß die Parameter derart beschrieben sind, daß die Statistiken für zugehörige Werte für sämtliche relevanten Parameter ungefähr die selben sind. Bei den meisten der definierten Standardverfahren muß die Größe der quantisierten transformierten Koeffizienten codiert werden. Viele dieser Koeffizienten sind gleich null. Es wurde eine feste Laufordnung durch diese Koeffizienten festgelegt, so daß statistisch die größten Koeffizienten als erste durchlaufen werden, während viele der letzten Koeffizienten gleich null sind. Eine Aufgabe ist die Angabe der Größe der Koeffizienten, die ungleich null sind. Dies kann erfolgen, indem für jeden von null verschiedenen Koeffizienten ein "Ereignis" codiert wird, das sowohl die Größe des Koeffizienten (LEVEL), als auch die Zahl der Null-Koeffizienten, die seit dem Auftreten des letzten von null verschiedenen Koeffizienten aufgetreten sind (RUN), angibt. Darüber hinaus muß angegeben werden, welcher der letzte von Null verschiedene Koeffizient in dem Lauf ist, um das Codieren einer Vielzahl von Nullen am Ende des Blocks zu vermeiden. Zu diesem Zweck wird eine Parameterdefinition mit einer dritten Variablen (LAST) im Standard H.263 verwendet, welche angibt, ob der letzte Koeffizient im Lauf ein von Null verschiedener Koeffizient ist oder nicht. Diese letzte Variable kann daher nur zwei Werte annehmen (letzter oder nicht letzter). Ein Ereignis wird daher in diesem Fall eine Sammlung von Werten: (LEVEL, RUN, LAST). Es zeigt sich, daß selbst das wahrscheinlichste dieser Ereignisse nur mit einer Wahrscheinlichkeit von ungefähr 10–20% auftritt. Andere Parameter unter den zu codierenden haben ein höchstwahrscheinliches Ereignis mit einer Wahrscheinlichkeit von 50%. Daher ist das die Codierung der Parameter (LEVEL, RUN, LAST) verwendende Modell für den Fall schlecht geeignet, in dem der Wunsch besteht, nur einen einzigen VLC zu verwenden.
  • Bei dem durch die Erfindung vorgeschlagenen Verfahren ist ein Parameter durch (LEVEL, RUN) definiert. Darüber hinaus existiert ein separates Ereignis, das das "Ende des Blocks" (EOB) anzeigt. Dies ist aus den Standards H.61, H.262 und MPEG2 bekannt. Bei diesen Standards tritt EOB als das höchstwahrscheinliche Ereignis mit einer Wahrscheinlichkeit von üblicherweise 15–30% auf. Bei der Verwendung des vorgeschlagenen Verfahrens werden üblicherweise kleinere Blockgrößen – beispielsweise 4×4 Pixel – verwendet oder gar die Blöcke zu Codierzwecken geteilt. Es existieren dann weniger zu codierende Koeffizienten in jedem Block und das Ereignis EOB tritt daher häufiger auf – üblicherweise mit einer Wahrscheinlichkeit von 50% und manchmal sogar mehr. Es zeigt sich, daß ein derartiges Modell zu einer Ereignisstatistik führt, die der entsprechenden Statistik für Bewegungsvektordaten (V, zuvor beschrieben) sehr ähnlich ist. Diese beiden Parameter sind daher zum Codieren mit dem selben VLC gut geeignet.
  • Zur beispielhaften Einleitung wurde in 2 eine Tabelle erstellt, die verschiedene Arten der Erstellung von Codeworttabellen zeigt. Ein Parameter E kann verschiedene Werte E0, E1, E2, E3 aufweisen, denen verschiedene Wahrscheinlichkeiten zugewiesen sind. Das Ereignis mit der höchsten Wahrscheinlichkeit ist in diesem Fall E0 und E1, E2, E3 haben nacheinander geringere Wahrscheinlichkeiten des Auftretens. Eine einfache Codewarttabelle, nämlich die Tabelle 2, gibt jedes einzelne der möglichen Ereignisse in zwei Bits an. Diese Codeworttabelle 2 ist besonders an die Tatsache angepaßt, daß vier mögliche Ereignisse existieren. Wenn weitere mögliche Ereignisse existieren, wären mehr Bits erforderlich, und die Codeworttabelle 3 verwendet acht Bits, weshalb diese Codeworttabelle geeignet ist viel mehr Werte von E zu beschreiben.
  • Die Tabelle 1 wurde jedoch erstellt, um die Wahrscheinlichkeit der verschiedenen Werte mit einzubeziehen. Dies ist ein Code mit variabler Länge (VLC), der als erstes die Eigenschaft hat, daß insgesamt "Platz gespart" wird, da das Ereignis mit der höchsten Wahrscheinlichkeit und daher dem häufigsten Auftreten nur ein einziges Bit braucht. Dieser besondere VLC ist an eine Gruppe von Ereignissen angepaßt, die mit der Wahrscheinlichkeit von 20%, 25%, 12,5 % etc. auftreten. Darüber hinaus hat ein derartiger Code die Eigenschaft, daß er einfach zu herauszufinden ist, wenn ein Codewort vollständig gelesen wurde, da es einfach ist, eine "1" in dem Bitstrom zu suchen, und wenn eine "1" gefunden wird, wurde ein Codewort vollständig gelesen.
  • Die Codeworttabelle 1 in 2 wurde daher speziell an eine Wahrscheinlichkeitsverteilung oder -statistik für den Parameter E angepaßt. Anderen Parametern kann ein anderer Typ von Statistik zugeordnet sein, und diesen wird vorteilhafterweise eine Codeworttabelle mit einem anderen Aussehen als die Tabelle 1 in 2 zugeordnet sein, die jedoch noch immer vom VCL-Typ ist. (Beispiele für andere VLC Codes ergeben sich aus 3 und 4). Wie zuvor erwähnt, besteht ein Bitstrom dann aus Abschnitten, in denen ein Wechsel von einer Art der Codierung zu einer anderen entlang des Stroms erfolgt. Es ist die Interpretation früherer Codewörter in dem Bitstrom erforderlich, um zu wissen, welcher VLC beim nächsten Mal verwendet werden soll. Beispielsweise kann ein MODE Parameter (der mit einem separaten VLC Code zu codieren ist) vorgesehen sein, wobei der Wert von MODE angibt, daß in dem Bitstrom vier Vektoren (V) zu erwarten sind, gefolgt von Koeffizientendaten, während ein anderer Wert von MODE angibt, daß Koeffizientendaten direkt zu erwarten sind. Wenn ferner ein Koeffizient-Ereignis angibt, daß mehr Koeffizientendaten vorhanden sind, wird dem Rechnung getragen, während bei Empfang der Anzeige, daß die der letzte von Null verschiedene Koeffizient ist (beispielsweise mittels LAST angezeigt), möglicherweise nach MODE Informationen im nächsten Code gesucht werden sollte.
  • Die Idee hinter der vorliegenden Erfindung ist daher die Vereinfachung eines VLC-Schemas derart, daß nur ein Codetyp für sämtliche Parameter einer Anzahl relevanter Parameter existiert. Dies bedeutet, daß eine bestimmte Umdefinierung von Parametern erfolgen muß, d.h. die Vereinfachung der Kanalcodierung kann Folgen (beispielsweise eine Veränderung) für die Quellcodierung haben.
  • Ein Beispiel für das Aussehen eines geeigneten VLC findet sich in der 3. Die Codetabelle ist in der Zeichnung links in allgemeiner Form wiedergegeben und in einer direkter geschriebenen Form weiter rechts ausgeführt. Jedes Xn kann den Wert 0 oder 1 annehmen. Das heißt, daß bei dem vorliegenden Code ein Codewort mit 1 Bit, zwei Codewörter mit 3 Bits, vier Codewörter mit 5 Bits etc. existieren, wie aus der geschriebenen Tabelle ersichtlich. (Üblicherweise wird dann ein Parameterwert mit einer hohen Wahrscheinlichkeit dem kürzesten Codewort zugewiesen). Ein Bitstrom ist eine Ansammlung von Codewörtern aus dieser Tabelle. Beispielsweise kann (1 1 001 01001 011 1 00001) Teil eines derartigen Bitstroms sein. Für jedes Codewort existiert eine Übersetzung in einen Parameterwert En (in einem vorhergehenden Beispiel wurde der Vektorparameter V als Beispiel verwendet. Das Codewort 1 entspricht dann V=0, das Codewort 001 entspricht V=+1, das Codewort 011 entspricht V=–1, etc.).
  • Es ist ferner wichtig, daß die vorbereitete Codetabelle eine einfache Regel zum Auffinden eines Codeworts im Bitstrom liefert. Bei dem hier angegebenen Beispiel existiert eine derartige einfache Regel. Es sei angenommen, daß das Codewort Nr. n in dem Bitstrom gefunden wurde und das Codewort Nr. (n+1) gefunden werden soll:
    • – wenn das erste Bit 1 ist, ist dies einfach das nächste Codewort, nämlich einfach 1.
    • – wenn das nächste gelesene Bit 0 ist, werden Paare aus zwei Bits gelesen, bis das letzte gelesene Bit 1 ist. Dann ist das vollständige Codewort (n+1) gefunden.
  • Dies schafft einen sogenannten "selbstsynchronisierenden" Code, da der Code nunmehr die Eigenschaft hat, daß das Lesen des Bitstroms schnell wieder den richtigen "Rhythmus" einnimmt, nachdem ein Fehler in den Bitstrom gelangt ist. Wenn der genannte Bitstrom als Beispiel verwendet wird, kann ein Fehler durch das Verändern des Bits 3 von 0 zu 1 eingebracht werden. Der Bitstrom mit dem Fehler lautet dann (1 1 101 01001 011 1 00001). Unter Verwendung der genannten Decodierregel in diesem Bitstrom werden die folgenden Codewörter gefunden: (1 1 1 0101001 011 1 00001). Es ist ersichtlich, daß die Codewörter 3 und 4 aufgrund des Übertragungsfehlers falsch sind (d.h. (1 und 0101001 anstatt 001 und 01001). Danach sind die Codewörter jedoch wieder korrekt. Eine derartige schnelle Reparatur rechtfertigt den Begriff "selbstsynchronisierend".
  • 4 zeigt eine alternative Codetabelle mit einer ähnlichen Struktur wie die Codetabelle in 3, jedoch etwas "durcheinander" hinsichtlich des Auftretens von Nullen und Einsen. Diese Tabelle hat zahlreiche günstige Eigenschaften, ähnlich der Tabelle in 3, unter anderem, weist sie eine gewisse Symmetrie auf, die in bestimmten Fällen verwendet werden kann. Jedoch ist der VLC in 4 ein Beispiel für einen nicht selbstsynchronisierenden VLC.
  • Die Verwendung nur eines einzigen VLC führt zu den folgenden klaren Vorteilen:
    • – das Codieren und Decodieren von Bitströmen ist einfacher als bei der Verwendung mehrerer VLC, da nur eine einzige Regel bezüglich der Erstellung und der Decodierung von Bitströmen erforderlich ist (im Gegensatz zu zahlreichen Regelgruppen, je nachdem, welcher Parameter codiert/decodiert werden soll),
    • – wenn der verwendete einzige VLC wie in dem vorhergehenden Beispiel gut strukturiert ist, ist die Codier-/Decodierregel besonders einfach. (wie bereits erwähnt müssen bei bekannten Verfahren mehrere Operationen ausgeführt werden, um festzustellen, ob ein Codewort gefunden wurde.)
    • – da nur ein VLC vorhanden ist, kann der Decodierer zuerst eine Anzahl von Codewörtern aus dem Bitstrom decodieren (b.w. für ein vollständiges Bild), um anschließend die Interpretation sämtlicher Codewörter für das gesamte Bild zu durchlaufen. Dies ist bei den bisher bekannten Verfahren nicht möglich, da zahlreiche VLC vorhanden sind und nur eine Interpretation früherer Code wörter gegeben ist, welche entscheiden kann, welcher VLC das nächste Mal zu verwenden ist,
    • – wenn Fehler im Bitstrom auftreten sollten, ermöglicht die Verwendung eines selbstsynchronisierenden VLC das Wiederfinden des korrekten Codeworts unmittelbar nach der Stelle des Auftretens des Fehlers. Wenn der Rest des Codierverfahrens auf besondere Weise aufgebaut ist, bedeutet dies, daß die Möglichkeit bestehet, gültige Informationen unmittelbar nach der Fehlerstelle zu "retten". Wie zuvor erwähnt, ist dies bei den bekannten Verfahren nicht ganz so einfach, bei denen zuerst bestimmte Synchronisierungswärter im Bitstrom aufgefunden werden müssen, bevor ein Neubeginn unter Verwendung des restlichen Bitstroms möglich ist.
  • Die zuvor beschriebene Klasse von Codierern wird oft als Hybridcodierer bezeichnet, da sie teilweise einen Prädiktor bilden und teilweise die Abweichung von der Voraussage codieren. Bei dieser Bildcodierung wird jedes zu codierende Bild in eine Anzahl von Blöcken einer bestimmten Größe unterteilt, wie zuvor erwähnt. Für jeden Block wird unter Verwendung von Blöcken in einem oder mehreren zuvor codierten Bildern und Vektorwerten, die angeben, an welcher Stelle in vorherigen Bildern Daten für die Voraussage gefunden werden, eine Voraussage getroffen. Im einfachsten Fall wird ein einzelner Block eines vorhergehenden Bildes als Voraussageblock für den gegenwärtigen Block verwendet. Der Vektorwert ist dann einfach eine Zahl, welche die Bewegung im Bild vom Voraussageblock im vorhergehenden Bild zum gegenwärtigen Block im gegenwärtigen Bild angibt. (Darüber hinaus ist es möglich, mehr als einen Vektorparameter zu verwenden, beispielsweise kann die horizontale und die vertikale Bewegung unter Verwendung jeweiliger Vektorparameter beschrieben werden.)
  • Da der gegenwärtige Block nicht notwendigerweise der getroffenen Voraussage (Voraussageblock) sehr ähnlich ist, wird sodann die Differenz oder die Abweichung zwischen der Voraussage und dem gegenwärtigen Block berechnet. Diese Abweichung wird sodann einer geeigneten mathematischen Transforma tion unterzogen und Transformierungskoeffizienten werden erhalten, die eine Basis für die Definition eines günstigen Parameters zum Beschreiben der betreffenden Abweichung bilden.
  • Anschließend werden die Informationen durch Erstellen weiterer Parameter vervollständigt, welche verschiedene zusätzliche Informationen für das gegenwärtige Bild beschreiben, beispielsweise welche Blöcke überhaupt vom entsprechenden Block im vorhergehenden Bild verschieden sind, und welche Blöcke Informationen zusätzlich zur Voraussage enthalten.
  • Infolgedessen wird das digitale Bild oder die Videosequenz mittels einer Anzahl verschiedener Parameter beschrieben.
  • Die Werte, die jeder der Parameter annehmen kann, werden sodann unter Verwendung ein und desselben VLC codiert. Anders ausgedrückt, existiert nur eine Gruppe von Codewörtern bei dem erfindungsgemäßen Verfahren. Damit jedoch nur ein VLC verwendet wird, muß die Beschreibung jedes einzelnen Parameters notwendigerweise angepaßt/modifiziert werden, insbesondere in bezug auf die Wahrscheinlichkeit des Auftretens der Werte, so daß die Werte oder Ereignisse des Parameters für das Codieren durch den einzelnen VLC geeignet sind. Im Zusammenhang mit einer "Anpassung/Modifizierung" muß selbstverständlich der Fall einbezogen werden, daß eine Anpassung nicht erforderlich ist, da es wichtig ist, daß zumindest eine der relevanten Parameterbeschreibungen die Basis für das Bilden des betreffenden VLC bildet und daher in Wirklichkeit keine "Anpassung" benötigt.
  • Ferner bedeutet "Anpassung" beispielsweise, daß ein Parameterwert mit einer Wahrscheinlichkeit von ungefähr 50% und andere Werte mit einer abnehmenden Wahrscheinlichkeit von üblicherweise 10–20% oder weniger auftreten, ein Modell gilt auch als ausreichend gut angepaßt, wenn die Parameter, welche dir größte Kapazität im Bitstrom erfordern, wie beispielsweise Vektorparameter und Koeffizientenparameter, an den selben VLC angepaßt sind. Es ist von geringer Bedeutung, wenn ein Parameter, dem nur ein Wert und eine geringe Häufigkeit in einem Bild zugewiesen ist, eine Statistik aufweist, die nicht glei chermaßen gut an den VLC angepaßt ist. Ein Beispiel für einen Parameter, dem ein Wert nur einmal in einem Bild zugewiesen wird, ist das Bildformat, das einmal in den Bild-Kopfinformationen auftritt.
  • Es muß eine unzweideutige Übersetzung eines Codeworts in einen Parameterwert oder ein Ereignis für jeden zu beschreibenden Parameter.
  • Im übrigen ist eine Modifizierung oder Generalisierung der Erfordernis bezüglich "ein und des selben VLC" dahingehend vorstellbar, daß beispielsweise ein aus einer vorbestimmten Gruppe von Codes gewählter bestimmter Code verwendet wird.
  • An bestimmten Stellen in einer Bildfolge wird ein unverkennbares Codewort eingefügt. Dies kann am Start einer Bildfolge oder am Beginn eines Bildes sein oder die Bilder können sogar derart geteilt werden, daß mehrere derartige unverkennbare Codewörter pro Bild vorhanden sind. Der Zweck ist, daß diese unverkennbaren Codewörter "Eingangspunkte" sind, so daß es möglich ist, ein Decodieren neu zu beginnen, selbst wenn die vorhergehenden Bits verpaßt wurden – beispielsweise weil Bitfehler auftraten und es angebracht war, zu einem neuen "Eingangspunkt" vorwärts zu springen. Dieses unverkennbare Codewort wird als Synchronisationswort bezeichnet und bildet den Start einer "Kopfinformation", die beim weiteren Decodieren zu verwendende übergeordnete enthält – beispielsweise, aus wie vielen Pixeln ein Bild in der Horizontalen und der Vertikalen besteht, und wie dieses Bild zeitlich zum vorherigen Bild steht.
  • Die "Kopfinformation" kann üblicherweise unter Verwendung des selben einzelnen VLC codiert werden, wie der Rest der Bildparameter. Andererseits befinden sich der Codierer und der Decodierer in einem besonderen Zustand, wenn sie ein Synchronisationswort Verarbeiten. Möglicherweise können dann die zuvor erwähnten Vorteile in der Praxis bewahrt werden, wie
    • – das einfachere Decodieren unter Verwendung eines VLC,
    • – ein gut strukturierter VLC,
    • – Decodieren des gesamten Bildes vor dem Interpretieren der Codes und
    • – schneller Eintritt in den korrekten Rhythmus nach einem Fehlerbit,
    selbst wenn einige Parameter in Verbindung mit Synchronisationswörtern unter Verwendung anderer VLC oder FLC als dem vorerwähnten einzelnen VLC codiert sind. Es kann beispielsweise interessant sein, einen Parameter zu codieren, der eine Zeitreferenz für das Bild enthält und der beispielsweise Werte von 0 bis 255 annehmen kann, wobei sämtliche Werte die selbe Wahrscheinlichkeit haben. Dieser Parameter kann unter Verwendung eines 8 Bit FLC in der Bild-Kopfinformation codiert sein. Der Decodierer würde sodann sämtliche Informationen in den Kopfinformationen vor dem Fortsetzen des Decodierens des Hauptteils der Bildinformationen empfangen und interpretieren.

Claims (4)

  1. Verfahren zum Komprimieren von Bildern und Videosequenzen im digitalen Format, wobei – jedes zu codierende Bild (10) in eine Anzahl von Blöcken (20) von vorgegebener Größe geteilt wird, – für jeden Block (20) eine Voraussage getroffen wird, wobei Blöcke (2) in einem oder mehreren, vorher codierten Bildern (1) und Werte für mindestens einen Vektorparameter (V) unter Angabe einer Stelle in vorherigen Bildern (1) zum Abrufen von Daten für die Voraussage verwendet werden, – für jeden Block (20) eine Abweichung von der Voraussage (2) festgestellt wird, wobei die Abweichung einer geeigneten mathematischen Transformierung unterworfen wird, was dazu führt, daßTransformierungskoeffizienten in eine Definition eines Parameters für eine vollständige Beschreibung der Abweichung aufgenommen werden, – weitere Parameter zur Beschreibung von ergänzenden Informationen für das Bild aufgestellt werden, auch dazu, welche Blöcke (20) in dem Bild sich von einem entsprechenden Block in dem vorherigen Bild (1) unterscheiden, und welche Blöcke Informationen zusätzlich zu der Voraussage aufweisen, und – unter den Parametern Werte des Vektorparameters, des Abweichungsparameters und gegebenenfalls mindestens einer von den weiteren Parametern dann mit Hilfe der Codierung variabler Längen (VLC-Codierung) verschlüsselt werden, wobei der Vektorparameter, der Ab weichungsparameter und der mögliche mindestens eine Parameter eine Gruppe mit einer Anzahl N an Parametern bilden, dadurch gekennzeichnet, daß – jeder einzelne von den N Parametern bei Bedarf zuerst für ein Codierungsregime mit nur einem einzigen Code variabler Länge (VLC) angepaßt wird, und die Werte, jeder dieser N Parameter annehmen kann, mit Hilfe dieses einzigen VLC codiert werden.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß eine Codetabelle
    Figure 00170001
    usw. als VLC verwendet wird, wobei Parameterwerte für alle betreffenden Parameter mit Hilfe einer horizontalen Kette aus der Tabelle gemäß einer vorgegebenen Zuordnungsliste dargestellt werden können, und wobei xn(n = 0,1,2,.....) die Werte 0 und 1 annehmen kann.
  3. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß eine Codetabelle
    Figure 00180001
    usw. als VLC verwendet wird, wobei Parameterwerte für alle betreffenden Parameter mit Hilfe einer horizontalen Kette aus der Tabelle gemäß einer vorgegebenen Zuordnungsliste dargestellt werden können, und wobei xn(n = 0,1,2,.....) die Werte 0 und 1 annehmen kann.
  4. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß zusätzlich zu den Codewörtern aus dem einzelnen VLC eine relativ niedrige Anzahl von Codewörtern eingeführt werden, die Parameterwerte in Verbindung mit Synchronisierungsinformationen darstellen, wobei die Codewörter Synchronisierungsparameterwertse darstellen, die auf einer anderen Codierungsart basieren.
DE69920503T 1998-10-23 1999-10-20 Verfahren zur kompression von bildern und bildsequenzen im digitalen format Expired - Fee Related DE69920503T8 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
NO984942A NO309299B1 (no) 1998-10-23 1998-10-23 Fremgangsmåte for komprimering av bilder og videosekvenser på digital form
NO984942 1998-10-23
PCT/NO1999/000316 WO2000025521A1 (en) 1998-10-23 1999-10-20 A method for compressing pictures and video sequences in a digital format

Publications (3)

Publication Number Publication Date
DE69920503D1 DE69920503D1 (de) 2004-10-28
DE69920503T2 true DE69920503T2 (de) 2006-02-16
DE69920503T8 DE69920503T8 (de) 2006-04-27

Family

ID=19902541

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69920503T Expired - Fee Related DE69920503T8 (de) 1998-10-23 1999-10-20 Verfahren zur kompression von bildern und bildsequenzen im digitalen format

Country Status (6)

Country Link
EP (1) EP1131956B1 (de)
AT (1) ATE277477T1 (de)
DE (1) DE69920503T8 (de)
DK (1) DK1131956T3 (de)
NO (1) NO309299B1 (de)
WO (1) WO2000025521A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1321533C (zh) * 2003-12-31 2007-06-13 中国科学院计算技术研究所 最大宏块类型与编码块模式联合编/解码的方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0129558B1 (ko) * 1992-10-26 1998-04-10 배순훈 적응적 가변길이 부호화 방법 및 장치
US5400075A (en) * 1993-01-13 1995-03-21 Thomson Consumer Electronics, Inc. Adaptive variable length encoder/decoder

Also Published As

Publication number Publication date
EP1131956A1 (de) 2001-09-12
DK1131956T3 (da) 2005-01-10
EP1131956B1 (de) 2004-09-22
NO984942L (no) 2000-04-25
DE69920503T8 (de) 2006-04-27
NO984942D0 (no) 1998-10-23
ATE277477T1 (de) 2004-10-15
NO309299B1 (no) 2001-01-08
WO2000025521A1 (en) 2000-05-04
DE69920503D1 (de) 2004-10-28

Similar Documents

Publication Publication Date Title
DE69624276T2 (de) System und Verfahren zur variablen Längenkodierung von sich bewegenden Bildern
DE69318629T2 (de) Übertragungsfehlerkorrektur in einem digitalen Kommunikationssystem
DE69917971T2 (de) Verfahren und Vorrichtung zur Verarbeitung von komprimierten Videodatenströmen
DE69535569T2 (de) Verfahren zur Synchronisationsrückgewinnung und Vorrichtung zur variablen Längendekodierung
DE69331606T2 (de) Datenwortindikator in einem system zur zusammenstellung von transportdatenpaketen.
DE69524269T2 (de) Vorrichtung und Verfahren zur Dekodierung von Kodes variabler Länge
DE69608781T2 (de) Hybride wellenform- und modellbasierte kodierung und dekodierung von bildsignalen
DE69515386T2 (de) Verfahren zur Verbindung von MPEG-Videosequenzen
DE69129653T2 (de) Informationsaufzeichnungsgerät
DE69231880T2 (de) Verfahren zur Bildübertragung
DE19952683A1 (de) Vorrichtung und Verfahren zum Senden und Empfangen von Video-Daten
DE69630297T2 (de) Weiterentwickeltes fernsehsystem
EP0698316B1 (de) Verfahren zum Übertragen von Bildern mit ungleichem Fehlerschutz
DE69517852T2 (de) Datenkompressionsverfahren und System
DE69319157T2 (de) Verfahren und Vorrichtung zur Übertragung von komprimierten digitalen Bildsignalen
DE69319931T2 (de) Realzeitkodierer für digitaltonpakete
DE69620932T2 (de) Verfahren zum Kodieren und Dekodieren von Bewegtbildsignalen
DE69325969T2 (de) Doppelpufferschema für Dekodierer variabler Länge
DE69126525T2 (de) Digitale bildverarbeitung mit filterung der blockkanten
DE19744859B4 (de) Verfahren zum Codieren eines binären Formsignals
DE19643376A1 (de) Verfahren zum Speichern von Videorahmendaten in einem Speicher
EP0821531B1 (de) Codierung und Decodierung von Trickfilmen
DE69920503T2 (de) Verfahren zur kompression von bildern und bildsequenzen im digitalen format
DE69228913T2 (de) Verfahren und Vorrichtung zur Kodierung eines digitalen Videosignals
EP0836785B1 (de) Verfahren zur dekodierung und kodierung eines komprimierten videodatenstroms mit reduziertem speicherbedarf

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: TELENOR ASA, FORNEBU, NO

8339 Ceased/non-payment of the annual fee