DE69735756T2 - Dynamische steuerung der kodierrate in einem blockbasierten videokodierungssystem - Google Patents

Dynamische steuerung der kodierrate in einem blockbasierten videokodierungssystem Download PDF

Info

Publication number
DE69735756T2
DE69735756T2 DE69735756T DE69735756T DE69735756T2 DE 69735756 T2 DE69735756 T2 DE 69735756T2 DE 69735756 T DE69735756 T DE 69735756T DE 69735756 T DE69735756 T DE 69735756T DE 69735756 T2 DE69735756 T2 DE 69735756T2
Authority
DE
Germany
Prior art keywords
bit allocation
image
macroblocks
picture
bit
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
DE69735756T
Other languages
English (en)
Other versions
DE69735756D1 (de
Inventor
Prashanth Yardley KUCHIBHOTLA
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.)
MediaTek Inc
Original Assignee
MediaTek Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MediaTek Inc filed Critical MediaTek Inc
Publication of DE69735756D1 publication Critical patent/DE69735756D1/de
Application granted granted Critical
Publication of DE69735756T2 publication Critical patent/DE69735756T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N7/00Television systems
    • H04N7/12Systems in which the television signal is transmitted via one channel or a plurality of parallel channels, the bandwidth of each channel being less than the bandwidth of the television signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/87Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving scene cut or scene change detection in combination with video compression
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/142Detection of scene cut or scene change
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/179Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a scene or a shot
    • 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
    • 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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer

Description

  • Die Erfindung betrifft eine blockbasierte Videocodiertechnik und insbesondere betrifft die Erfindung ein Verfahren und eine Vorrichtung für das dynamische Steuern der Codierrate eines blockbasierten Videocodiersystems.
  • TECHNISCHER HINTERGRUND DER BESCHREIBUNG
  • Blockbasierte Videocodiersysteme benutzen typischerweise eine Codiertechnik, die die Vorteile von sowohl der räumlichen als auch der zeitlichen Redundanz innerhalb eines Bildes (Intra-Bild) und zwischen Bildern (Inter-Bild) innerhalb einer Sequenz von Bildern ausnutzt. Solche blockbasierten Bildcodiersysteme beinhalten diejenigen, die den bekannten Moving Pictures Experts Group (MPEG) Standard der Videocodierung, nämlich die Internationale Normen ISO/EC 11172-2 (1994) (im allgemeinen als MPEG-1 bezeichnet) und 13818-2 (20. Januar 1995 Entwurf) (im allgemeinen als MPEG-2 bezeichnet) verwenden. Um die Redundanzen in einer Eingangssequenz auszunutzen und eine Videosequenz in einen übertragbaren Bitstrom effizient zu codieren, nehmen blockbasierte Codiertechniken an, daß die sequentiellen Bilder innerhalb einer Videoeingangssequenz im wesentlichen ähnliche Information enthalten, d.h. die abgebildete Szene verändert sich sehr wenig von Bild zu Bild. Ein Szeneschnitt, der in der Bildsequenz auftritt, verletzt die zugrundeliegende Annahme für die effiziente Codierung. Folglich muß eine blockcodierte Technik nach einer Szenenänderung (Szenenschnitt) eine wesentliche Anzahl von Bits verwenden, um das erste Bild zu codieren, das der Szenenveränderung folgt. Da die Anzahl von Bits, die verfügbar sind, um irgendein Bild zu codieren, typischerweise begrenzt ist, kann ein Szeneschnitt erhebliche Fehler in der Codierung verursachen und zu einer substantiellen Störung des decodierten Bildes führen.
  • In blockbasierten Videocodiersystemen gibt es im allgemeinen Geschwindigkeits- bzw. Ratensteueralgorithmus oder -prozeß, der verschiedene Aspekte des Codierprozesses steuert. Die Hauptaufgabe des Ratensteuerprozesses ist es, eine konstante Ausgangsbitrate in den Übertragungskanal beizubehalten. Die konstante Bitrate muß beibehalten werden, auch wenn die Codierrate signifikant variieren kann abhängig von dem Inhalt jedes Bildes und der Abfolge bzw. Sequenz von Bildern.
  • Ein anderer wichtiger Aspekt eines Ratensteuerprozesses ist es, sicherzustellen, daß der Bitstrom, der von dem Codierer erzeugt wurde, nicht einen Überlauf oder Unterlauf des Eingangspuffers des Decoders verursacht. Die Überlauf- und Unterlaufsteuerung wird verwirklicht durch Beibehalten und Überwachen eines virtuellen Puffers innerhalb des Codierers. Dieser virtuelle Puffer ist als der Videopufferverifizierer (VBV) bekannt. Um die korrekte Decodereingangspufferbitsteuerung sicherzustellen, errichtet der Ratensteuerprozeß des Codierers für jedes Bild und ebenso für jeden Makroblock aus Pixeln, den jedes Bild aufweist, ein Bitkontingent (ebenso hier als Bitbudget bezeichnet). Durch Codieren der Blöcke und des Gesamtbildes unter Verwendung der jeweiligen Anzahl von Bits, die innerhalb der entsprechenden Bitbudgets sind, kommt es zu keinem Überlauf oder Unterlauf des VBV. Da der VBV die Funktion des Eingangspuffers des Decoders spiegelt, wird, wenn der VBV keinen Überlauf oder Unterlauf zeigt, der Eingangspuffer des Decoders dies ebenfalls nicht tun.
  • Um solche eine Puffersteuerung zu verwirklichen, macht der Ratencontroller die Standardannahme in der Videocodierung, daß das gegenwärtige Bild eine gewisse Ähnlichkeit zu dem vorherigen Bild aufweist. Wenn diese Annahme zutrifft, werden die Pixelblöcke in dem Bild bewegungskompensiert durch die Codiertechnik, und erfordern, sobald sie kompensiert sind, sehr wenige Bits, um codiert zu werden. Dieses Verfahren arbeitet gut solange die tatsächliche Anzahl von Bits, die benötigt wird, um das Bild zu codieren, nahe der Zielanzahl von Bits ist, die dem Bild zugewiesen sind, d.h., daß die Anzahl von tatsächlich verwendeten Bits in dem Bitkontingent für dieses Bild liegt.
  • Diese Annahme ist jedoch falsch, wenn ein Szenenschnitt auftritt oder es einen wesentlichen Unterschied zwischen dem vorherigen Bild und dem gegenwärtigen Bild gibt. Da die Bewegungskompensation wenig Nutzen bringt, wenn zwei aufeinanderfolgende Bilder sich wesentlich unterscheiden, werden die Blöcke codiert unter Verwendung eines Codiertechnikzwischenmodus, der eine viel größere Anzahl von Bits erfordert, um irgendein Bild oder einen Block von Pixeln zu codieren. In solchen Situationen wird das Bitbudget für das Bild im allgemeinen überschritten. Folglich ist die Bildqualität für die nächsten paar Bilder wesentlich beeinträchtigt und es gibt eine hohe Wahrscheinlichkeit, daß der VBV nahe an einen Unterlaufzustand kommen kann. Wenn der VBV dabei ist, einen Unterlauf zu zeigen, und es keine weiteren zugewiesenen Bits gibt, um dem Ratencontroller zu erlauben, die letzten paar Blöcke, die in dem zu codierenden Bild verbleiben, zu codieren, wird folglich gesagt, daß das blockbasierte Videocodiersystem einen „Panik"-Zustand erreicht hat. Um einen Panik-Zustand zu vermeiden, verwendet der Stand der Technik im allgemeinen ein sehr großes Puffersystem. Solch ein Puffer ist teuer und verkompliziert das gesamte blockbasierte Videocodiersystem.
  • Es besteht daher im Stand der Technik die Notwendigkeit nach einem Verfahren und einer Vorrichtung, die dynamisch den Codierprozeß steuert, so daß das Auftreten von Szeneschnitten oder anderen wesentlichen Szenenveränderungen zwischen zwei aufeinanderfolgenden Bildern keinen Panikzustand oder auf andere Art einen Unterlauf oder Überlauf des VBV erzeugt.
  • Nam J. Y. et al. "An adaptive rate control scheme with scene changed detection", Signal Processing of HDTV, VI, Proceedings of the International Workshop on HDTV, 1994, Proceedings of the International Workshop on Signal Processing of HDTV, VI, Turin, 26. bis 28. Oktober 1994, Seiten 99 bis 107 beschreiben ein blockbasiertes Codiersystem für das Erfassen einer Szenenveränderung, d.h. einem großen Unterschied zwischen aufeinanderfolgenden Bildern in einer Reihe von Bildern und das Erhöhen der Anzahl von verfügbaren Bits für das Codieren des Bildes nach der Szenenveränderung. Das System verwendet das Konzept einer „Unter-GOP", die zwei bis drei Einzelbilder einer GOP ist. Das System schaut auf die gegenwärtige, die vorherige und die nächste Unter-GOP und abhängig davon, welche der Unter-GOPs die Szenenveränderung enthält und auf den Positionen der P-Bilder in den verschiedenen Unter-GOPs werden die Bitzuweisungen für die gegenwärtige und die nächste Unter-GOP berechnet.
  • Wenn das letzte Einzelbild der gegenwärtigen Unter-GOP ein P-Einzelbild ist, dann wird die Bitzuweisung für das P-Einzelbild des gegenwärtigen Sub-GOP erhöht, jedoch wird die Bitzuweisung für ein B-Einzelbild der gegenwärtigen Unter- bzw. Sub-GOP nicht verändert.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß eines Aspektes der vorliegenden Erfindung wird in einem blockbasierten Videocodiersystem ein Verfahren bereitgestellt für das Durchführen der dynamischen Ratensteuerung in Antwort auf eine Szenenveränderung zwischen einem ersten Bild und einem zweiten Bild, wobei das erste Bild und das zweite Bild zwei aufeinanderfolgende Bilder in einer Abfolge von Bildern sind, wobei das Verfahren die Schritte aufweist:
    Erfassen einer substantiellen Differenz zwischen dem ersten Bild und dem zweiten Bild, die eine Szenenveränderung anzeigt,
    Berechnen eines Bitzuweisungserhöhungs- bzw. -vergrößerungswertes,
    Vergrößern der nominellen Bitzuweisung, die mit dem ersten Referenzbild verknüpft ist, das auf das Auftreten der Szenenveränderung folgt, um den Bitzuweisungserhöhungswert, um eine erhöhte Bitzuweisung zu erzeugen,
    Bestimmen einer Quantisierungsskala für das Codieren des ersten Referenzbildes innerhalb der erhöhten Bitzuweisung.
  • Gemäß eines anderen Aspektes der Erfindung wird in einem blockbasierten Videocodiersystem eine Vorrichtung für das Durchführen der dynamischen Ratensteuerung in Antwort auf einen deutlichen Unterschied zwischen einem ersten Bild und einem zweiten Bild bereitgestellt, wobei das erste Bild und das zweite Bild zwei aufeinanderfolgende Bilder in einer Sequenz von Bildern sind, wobei die Vorrichtung aufweist:
    eine Einrichtung, die einen wesentlichen Unterschied zwischen dem ersten Bild und dem zweiten Bild als Anzeige einer Szenenveränderung erfaßt,
    eine Einrichtung für das Berechnen eines Bitzuweisungserhöhungswertes,
    eine Einrichtung, die mit der Berechnungseinrichtung verbunden ist, für das Vergrößern der nominellen Bitzuweisung, die mit dem ersten Referenzbild verknüpft ist, das dem Auftreten der Szenenveränderung folgt, und zwar um den Bitzuweisungserhöhungswert, um eine vergrößerte Bitzuweisung zu erzeugen,
    eine Einrichtung, die mit der Erhöhungseinrichtung verbunden ist, für das Bestimmen einer Quantisierungsskala für das Codieren des ersten Referenzbildes innerhalb der erhöhten Bitzuweisung,
    eine Einrichtung für das Anwenden einer Ratensteuerung und das Zuweisen von Bits zu dem ersten Referenzbild in Übereinstimmung mit der erhöhten Bitzuweisung, während eine entsprechende Reduktion zu B-Bildern zugewiesen wird, die mit dem ersten Referenzbild verknüpft sind, wobei jedoch die Zuweisung von Bits zu irgendeinem Referenzbild, das der Szenenveränderung vorhergeht, nicht verändert wird.
  • Vorzugsweise ist das erste Referenzbild, das der Szenenänderung folgt, ein P-Bild.
  • Eine Ausführungsform der vorliegenden Erfindung stellt einen dynamischen Ratencontroller für ein blockbasiertes Videocodiersystem zur Verfügung. Der Ratencontroller reagiert auf einen Szeneschnittanzeiger, der von einem Szeneschnitterfasser erzeugt wurde. Sobald eine Szeneschnittanzeige erfaßt wird, stellt der Ratencontroller das Bitbudget für das Referenzeinzelbild, das dem Szeneschnitt folgt, ein, bevor die Codierung auf diesem Einzelbild beginnt. Zusätzlich errichtet der Ratencontroller ein optimales Bitverwendungsprofil, das mit der tatsächlichen Bitverwendung verglichen wird, so daß die Bitzuweisung optimiert werden kann, während die Codierung fortschreitet.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die Lehren der vorliegenden Erfindung können leicht verstanden werden durch Betrachten der folgenden detaillierten Beschreibung in Verbindung mit den begleitenden Zeichnungen, in denen:
  • 1 ein Blockdiagramm eines blockbasierten Codiersystems darstellt, das den dynamischen Ratencontroller der vorliegenden Ausführungsform der Erfindung verwendet, und
  • 2 stellt den Effekt von Szeneschnitten auf einer MPEG-Gruppe von Bildern (GOP) dar,
  • 3 stellt die korrekte Ausrichtung der 3A und 3B dar, und
  • 3A und 3B stellen zusammen ein detailliertes Flußdiagramm dar, das den Betrieb des dynamischen Ratencontrollers der vorliegenden Ausführungsform der Erfindung darstellt.
  • Um das Verständnis zu erleichtern, wurden identische Bezugszahlen verwendet, wo dies möglich war, um identische Elemente, die in den Figuren gleich sind, zu bezeichnen.
  • DETAILLIERTE BESCHREIBUNG
  • 1 stellt ein Blockdiagramm eines blockbasierten Codiersystems 100 (genauer gesagt ein MPEG-Codierer) dar, das die vorliegende Ausführungsform der Erfindung beinhaltet. Das Eingangssignal für das System an Anschluß 102 soll ein vorverarbeitetes Bild sein, daß in eine Mehrzahl von Blöcken aufgeteilt wurde, wobei die Blöcke sequentiell als eine Eingabe in das System bereitgestellt werden. Nach der MPEG-Norm sind diese Pixelblöcke allgemein bekannt als Makroblöcke, z. B. ein 16 × 16 Pixelblock. Die folgende Beschreibung verwendet die MPEG-Normterminologie. Es versteht sich jedoch, daß der Begriff Makroblock dafür vorgesehen ist, einen Block aus Pixeln irgendeiner Größe zu beschreiben, der als Basis für die Bewegungskompensation verwendet wird.
  • Das System berechnet aus dem Systemausgangssignal eine Reihe von vorhergesagten Markroblöcken (P). Jeder vorhergesagte Makroblock wird anschaulich erzeugt durch Decodieren des Ausgabesignals am Anschluß 104, genau wie der Empfänger des übertragenen Ausgangssignals das empfangene Signal decodieren würde. Der Subtrahierer 106 erzeugt auf dem Pfad 107 ein Restsignal (ebenso im Stand der Technik einfach als Rest oder Restmakroblock bezeichnet) durch Subtrahieren des vorhergesagten Makroblockes von dem Eingangsmakroblock. Falls der vorhergesagte Makroblock im wesentlichen gleich dem Eingabemakroblock ist, sind die Reste relativ klein und werden unter Verwendung von sehr wenigen Bits leicht codiert. In solch einem Szenario wird gesagt, daß der Eingangsmakroblock bewegungskompensiert ist. Falls jedoch die Differenz zwischen dem vorhergesagten Makroblock und dem Eingabemakroblock erheblich ist, sind die Reste schwierig zu codieren. Folglich ist das System besser dran, wenn es den Eingangsmakroblock direkt codiert anstatt den bewegungskompensierten Restmakroblock zu codieren. Diese Auswahl ist bekannt als eine Auswahl des Codiermodus. Das Codieren des Eingangsmakroblockes (I) wird als Intracodierung bezeichnet, während das Codieren der Reste als Intercodierung bezeichnet wird. Die Auswahl zwischen diesen beiden Modi ist als die Intra-Inter-Entscheidung (IID) bekannt.
  • Die IID wird von dem IID-Schaltkreis 110 durchgeführt, der den Codiermodusschalter 108 einstellt. Die IID wird berechnet durch zunächst berechnen der Varianz des Restmakroblockes (Var R) und der Varianz des Eingangsmakroblockes (Var I). Die Codierentscheidung wird auf diesen Werten begründet. Es gibt verschiedene Funktionen, die verwendet werden können, um diese Entscheidung zu treffen. Beispielsweise wählt, unter Verwendung der einfachsten Funktion, falls Var R kleiner als Var I ist, die IID den Inter-Modus. Umgekehrt, falls Var I geringer als Var R ist, wählt die IID den Intramodus.
  • Der ausgewählte Block wird in einem diskreten Cosinustransformations-(DCT-)Block 112 verarbeitet. Die DCT erzeugt Koeffizienten, die das Eingangssignal an dem DCT repräsentieren. Der Quantisierer 114 quantisiert die Koeffizienten, um den Ausgangsblock am Anschluß 104 zu erzeugen. Der dynamische Ratencontroller 116 der vorliegenden Ausführungsform der Erfindung steuert die Quantisierungsskala (Schrittgröße), die verwendet wird, um die Koeffizienten zu quantisieren. Optional steuert der Ratencontroller ebenso die Anzahl von DCT-Koeffizienten, die von dem System codiert werden. Die Details des Ratensteuerblocks werden in Bezug auf 3 unten erörtert.
  • Um korrekt vorhergesagte Blöcke zu erzeugen und die effiziente Halb-pel-Bewegungsvektorerzeugung zu verwirklichen, benötigt der Codierer Zugriff auf die decodierten Bilder. Um solch einen Zugriff zu verwirklichen, wird der Ausgang des Quantisierers 114 über sowohl den inversen Quantisierer 118 als auch die inverse DCT 120 geleitet. Der Ausgang der inversen DCT ist idealerweise identisch zu dem Eingang des DCT 112. In dem Intermodus wird der decodierte Makroblock produziert durch Summieren des Ausgangs des inversen DCT und des vorhergesagten Markoblocks. Während des Intramodus ist der decodierte Makroblock einfach der Ausgang des inversen DCT. Die decodierten Makroblöcke werden dann in dem Einzelbildspeicher 124 gespeichert. Der Einzelbildspeicher sammelt eine Mehrzahl dieser „rekonstruierten" Makroblöcke, die ein gesamtes rekonstruiertes Einzelbild der Bildinformation bilden. Der Bewegungsvektonrorhersager 126 verwendet das rekonstruierte Einzelbild, um Bewegungsvektoren zu erzeugen, die verwendet werden bei der Erzeugung von vorhergesagten Makroblöcken für bevorstehende Eingangsbilder.
  • Um Bewegungsvektoren zu erzeugen, weist der Bewegungsvektorvorhersager 126 drei Komponenten auf: ein Voll-pel-Bewegungsschätzer 128, ein Halb-pel-Bewegungsschätzer 130 und ein Bewegungsmodusblock 132. Der Voll-pel-Bewegungsschätzer 128 ist ein „grober" Bewegungsvektorerzeuger, der eine grobe Übereinstimmung zwischen einem Makroblock in einem vorherigen Bild und dem gegenwärtigen Eingangsmakroblock sucht. Das vorherige Bild wird als ein Ankerbild bezeichnet. Nach den MPEG-Normen ist das Ankerbild als ein I- oder P-Einzelbild innerhalb einer Bildsequenz bekannt, die als eine Gruppe von Bildern (GOP) bezeichnet wird. Der Bewegungsvektor ist ein Vektor, der die relative Position bezeichnet, wo die grobe Übereinstimmung zwischen den beiden Makroblöcken aufgefunden wurde. Der grobe Bewegungsvektorgenerator erzeugt einen Bewegungsvektor, der für ein Bildelement (pel) genau ist.
  • Die Genauigkeit des Voll-pel-Bewegungsschätzers wird in dem Halb-pel-Bewegungsschätzer verbessert. Der Halb-pel-Bewegungsschätzer verwendet die Voll-pel-Bewegungsvektoren und die rekonstruierten Makroblöcke von dem Einzelbildspeicher 124, um Bewegungsvektoren zu berechnen mit einer Halb-pel-Genauigkeit. Die Halb-pel-Bewegungsvektoren werden dann zu dem Bewegungsmodiblock 132 gesendet. Typischerweise gibt es mehrere Bewegungsvektoren, die mit jedem Markoblock verbunden sind. Der Modiblock 132 wählt den besten Bewegungsvektor für das Darstellen der Bewegung für jeden Eingangsmakroblock aus.
  • Der Voll-pel-Schätzer ist eine rechenintensive Aufgabe verglichen mit dem Halb-pel-Schätzer. Aus diesem Grund wird in verschiedenen Implementierungen dieser getrennt auf speziell angefertigter Hardware berechnet. Häufig werden alle Voll-pel-Bewegungsvektoren berechnet bevor die Halb-pel-Verarbeitung beginnt.
  • Das MPEG-Codiersystem, das oben erörtert wurde, ist ein konventionelles System, das verfügbar ist als Satz von integrierten Schaltkreisen, wie z. B. das Modell L64120 von LSI Logic, Inc. aus Milpitas, Kalifornien. Es ist wesentlich, daß diese MPEG-Codierer ein gesamtes Einzelbild aus Voll-pel-Bewegungsvektoren speichert, bevor der Halb-pel-Schätzer mit seiner Operation beginnt.
  • Die Konzepte der Bewegungsschätzung und der Bewegungskompensation basieren auf der zugrundeliegenden Annahme, daß sich das gegenwärtige Bild nicht sehr stark von einem vorher aufgetretenen Bild (dem Ankerbild) unterscheidet. Wenn jedoch eine wesentliche Szenenveränderung (ebenso als Szenenschnitt bezeichnet) auftritt, sind die Ankerbilder deutlich anders als das gegenwärtige Bild. Somit sind die vorhergesagten Makroblöcke sehr ungenau und die Reste sehr groß. Im Grunde genommen wählt für die meisten Eingangsmakroblöcke eines Bildes die IID den Eingangsmakroblock (Intra-Modus) für das Codieren aus anstelle des Codierens der Reste (Inter-Modus). Es soll erwähnt werden, daß diese Codierentscheidung selbst in dem Fall aufritt, wo es keine Szenenveränderung gibt, und daß ein normal codiertes Bild eine Mischung aus intra- und inter-codierten Makroblöcken aufweisen kann. Der Prozentsatz der intra-codierten Makroblöcke innerhalb eines gegebenen Bildes erhöht sich jedoch signifikant nachdem ein Szenenschnitt aufgetreten ist. Der Szenenschnittdetektor der vorliegenden Ausführungsform der Erfindung analysiert alle Makroblöcke in einem Bild und bestimmt dann, ob ein Szenenschnitt aufgetreten ist. Dies wird verwirklicht durch Zählen der Anzahl von intra-codierten Makroblöcken und Vergleichen der Zahl mit einem Grenzwert. Genauer gesagt, falls der prozentuale Anteil der intra-codierten Makroblöcke in irgendeinem gegebenen Einzelbild den Grenzwert überschreitet, wird dieses Einzelbild als folgend auf einen Szenenschnitt angesehen.
  • In einem typischen MPEG-Codierer wird die tatsächliche IID-Entscheidung getroffen, nachdem die Halb-pel-Bewegungsvektoren erzeugt wurden und der beste Bewegungsvektor ausgewählt wurde. Da der Voll-pel-Schätzer 128 Bewegungsvektoren für das gesamte Einzelbild erzeugt, bevor der erste Makroblock von dem Codierer codiert wird, ist die erfindungsgemäße Szeneschnittdetektorvorrichtung 134, die diese Voll-pel-Ergebnisse überwacht, in der Lage, eine IID-Abschätzung für alle Makroblöcke zu erzeugen, d.h. zu schätzen, wie die IID ausfallen würde, wenn sie die Reste analysiert. Der Szeneschnittdetektor weist einen IID-Schätzer 136 auf, der in Reihe mit einem Intracode-Makroblockzähler 138 angeschlossen ist. Der Zähler 138 erzeugt eine Szeneschnittentscheidung (einen Anzeiger), der anzeigt, daß der Szeneschnittdetektor bestimmt hat, daß ein Szeneschnitt aufgetreten ist.
  • Diese anschauliche Form des Szeneschnittdetektors ist im Detail beschrieben. Im US-Patent mit der Anmeldungsnummer 08/606,613, eingereichet in den Vereinigten Staaten am 26. Februar 1996, US-A-5,724,100. In Antwort auf diesen Szeneschnittindikatoranzeiger stellt der erfindungsgemäße dynamische Ratencontroller die Quantisierungsskala der Quantisierung ein, so daß jede Möglichkeit einer Paniksituation vermieden wird. Im Grunde genommen hat der dynamische Ratencontroller einen Codieranzeiger bereitgestellt, der vor bevorstehenden Szeneschnitten warnt und zwar bevor das Einzelbild, das dem Szeneschnitt folgt, codiert wird. Im Grunde genommen kann der dynamische Ratencontroller die Bitzuweisungen neu einstellen und die Bitverwendung überwachen, um die Möglichkeit einer sehr großen Bitverwendung und einer Paniksituation zu verhindern.
  • Im Betrieb erhöht der dynamische Datencontroller 116 die Bitzuweisung zu dem P-Bild, was sicherstellt, daß die neue Zuweisung den Puffer nicht in einen Unterlauf bringt, und somit die Bildqualität beibehält. Entsprechend der MPEG-Norm ist es wünschenswert, genau codierte P-Bilder zu haben, da Fehler in den P-Bildern dazu neigen, in andere P- und B-Bilder, die danach codiert werden, überzugehen. 2 stellt die P-Bilder (P1 und P3) dar, die am meisten durch Szeneschnitte 202 und 204 innerhalb der MPEG-Gruppe von Bildern (GOP) 200 betroffen sind. Eine vergrößerte P-Bildbitzuweisung, die einen VBV-Unterlauf vermeidet, erfordert die Reduktion der Bits, die den benachbarten B-Bildern zugewiesen sind. Diese Bitreduktion kann sicher über mehrere B-Bilder ausgebreitet werden. Es sei bemerkt, daß B-Bildfehler sich nicht auf andere Bilder innerhalb der Gruppe von Bildern übertragen.
  • 3 stellt ein detailliertes Flußdiagramm dar, daß den Betrieb des dynamischen Ratencontrollers 116 der vorliegenden Ausführungsform der Erfindung darstellt. Der Prozeß 300 beginnt am Startblock 302 und setzt mit Schritt 304 fort, wo der Prozeß eine nominale Anzahl von Bits (T) berechnet, die verwendet wird, um das gegenwärtige Bild zu codieren. Ebenso initialisiert Schritt 304 die vergrößerte Bitzuweisung (ΔT) auf null. In Schritt 306 fragt der Prozeß ab, ob ein Szeneschnittanzeiger ausgegeben wurde durch den Szeneschnittdetektor. Falls die Abfrage negativ beantwortet wird, setzt der Prozeß mit Schritt 308 fort, wo das gegenwärtige Bild mit T-Bits (d.h. der Nominalzahl von Bits) codiert wird. Wenn statt dessen der Szeneschnittanzeiger erfaßt wird, setzt der Prozeß von Schritt 306 zu Schritt 310 fort. In Schritt 310 berechnet der Prozeß eine Vergrößerung (ΔT) für die Bitzuweisung (T). Die Bitzuweisungsvergrößerung hängt von verschiedenen Faktoren ab, einschließlich: 1) dem Abstand des P-Bildes, das zu codieren ist, von dem Ende der Gruppe von Bildern, 2) der Anzahl von 1-Mode-Makroblöcken in dem P-Bild, 3) der Einfachheit der Codierung der I-Mode-Makroblöcke und 4) der Anzahl von Bits, die gegenwärtig in der VBV sind. Diese Information Mode-Makroblöcke und 4) der Anzahl von Bits, die gegenwärtig in der VBV sind. Diese Information wird in verschiedenen Registern innerhalb des Ratencontrollers gespeichert und sie werden als Blöcke 312, 314, 316 bzw. 318 in 3 gezeigt. Jeder der Faktoren, die verwendet werden, um ΔT zu berechnen, werden unten im Detail erläutert.
  • Genauer gesagt, falls das erste P-Bild in der neuen Szene nahe dem Ende der Gruppe von Bildern ist, wird der Ratencontroller keine Vergrößerung in der Bitzuweisung für das P-Bild erfordern. Im Grunde genommen wird die Bitzuweisung zu den P-Bildern proportional zu deren Abstand von dem I-Bild der nächsten Gruppe von Bildern durchgeführt, d.h. der Wert von ΔT kann kleiner sein, wenn das P-Bild näher an dem Ende der Gruppe von Bildern ist.
  • Man betrachte beispielsweise das P3 in 2, welches das letzte P-Bild in der GOP ist. Dieses P-Bild wird nicht verwendet, um irgendwelche P-Bilder vorherzusagen und wird verwendet, um nur zwei B-Bilder vorherzusagen, die direkt nach dem Szeneschnitt auftreten. Dies führt zu Bildern schlechter Qualität für nur die ersten zwei oder drei Bilder in der neuen Szene. Psychovisuelle Experimente haben gezeigt, daß das menschliche Auge Schwierigkeiten hat, sich schnell auf eine neue Szene einzustellen und daß, selbst wenn die ersten zwei oder drei Bilder der neuen Szene schlechte Qualität haben, die Abweichung für das menschliche Auge nicht bemerkbar ist. Es sei bemerkt, daß die B-Bilder, die P3 folgen, aus dem I-Bild (I2) vorhergesagt werden und daher nicht an einer signifikanten Verschlechterung aufgrund des Szeneschnittes leiden. Im Grunde genommen kann das P3-Bild schlecht codiert sein, ohne andere Bilder signifikant zu verschlechtern. Somit wird ΔT auf einen relativ kleinen Wert für die P-Bilder, die am Ende einer GOP auftreten, eingestellt.
  • Da die Anzahl von Intra-Mode-(I-Mode-)Makroblöcken in dem P-Bild bekannt ist oder abgeschätzt wird, bevor das Bild codiert wird, kann ΔT proportional zu dem Prozentsatz der intra-codierten Makroblöcke in dem Bild eingestellt werden. In manchen Szeneschnitten ist die neue Szene leicht zu codieren, d.h. es benötigt wenige Bits für die Codierung, so daß die tatsächliche Anzahl von Bits, die verwendet werden, sogar geringer als die Zielbitzuweisung sein kann. Falls im Vorhinein bestimmt wird, daß die neue Szene so einfach wie Intra-Mode-Makroblöcke codiert werden kann, kann die Vergrößerung (ΔT) klein sein. Beispielsweise kann dies verwirklicht werden durch Analysieren der Varianzen der Makroblöcke innerhalb des Bildes, das zu codieren ist, und durch Bestimmen, wie leicht das Bild zu codieren ist.
  • Eine andere Beschränkung der Größe von ΔT ist die Anzahl von Bits in dem VBV. Der Puffer wird einen Unterlauf erfahren, falls T + ΔT die Anzahl von Bits in dem VBV überschreitet. Somit wird ΔT festgelegt abhängig von dem Potential eines Unterlaufs. Dieses Potential für einen Pufferunterlauf wird leicht berechnet durch Bilden der Differenz zwischen der Anzahl von Bits in dem VBV und dem Wert von (T + ΔT). Dann wir der Wert von ΔT eingestellt, um eine negative (–) Differenz zu vermeiden.
  • In Schritt 308 wird die nominelle Bitzuweisung T um die Bitzuweisungsvergrößerung ΔT erhöht, z. B. T = T + ΔT. In Schritt 320 berechnet der Prozeß das Potential für einen Unterlauf unter Verwendung des gegenwärtigen Wertes von ΔT. Dieser Schritt vergleicht die VBV-Größe mit dem gegenwärtigen Füllgrad des Puffers für diesen Wert von T erhöht um den Wert von ΔT. Falls die erwartete Pufferfüllung nahe des Überschreitens der VBV-Größe wird, dann wird die Abfrage in Schritt 322 bestätigend beantwortet und der Prozeß stellt in Schritt 324 einen möglichen Unterlaufanzeiger (ebenso bezeichnet als ein möglicher Panikanzeiger) ein. Ein möglicher Unterlaufanzeiger zeigt an, daß es eine Möglichkeit gibt, daß während des Codierens des gegenwärtigen Bildes eine Paniksituation auftreten kann. Wenn eine Paniksituation nicht als drohend angesehen wird, wird die Abrage in Schritt 322 negativ beantwortet und der Prozeß setzt entlang des Nein-Pfades mit Schritt 326 fort.
  • In Schritt 326 bestimmt der Prozeß basierend auf dem Wert von ΔT eine ursprüngliche Quantisierungsskala, die dafür vorgesehen ist, einen Unterlauf des VBV zu vermeiden. In Schritt 328 errichtet der Prozeß eine Anzahl von DCT-Koeffizienten, die mit der ursprünglichen Quantisierungsskala codiert werden. Wie unten erörtert, sind sowohl die Quantisierungsskala als auch die Anzahl von DCT-Koeffizienten, die codiert werden, einstellbar, so daß ein VBV-Unterlauf vermieden werden kann.
  • In Schritt 330 erzeugt der Prozeß ein Zielbitnutzprofil. Im allgemeinen wird dieses Nutzprofil festgelegt abhängig von dem Bildtyp, der codiert wird, d.h. ob es ein P-Bild, ein B-Bild oder ein I-Bild ist. Typischerweise ist das Nutzprofil linear über die gesamte Bildcodierung. Alternativ kann das Profil nicht linear sein, das mehr oder weniger zu verwendende Bits bei einigen Punkten in dem Bild als an anderen Punkten erlaubt. Im Grunde genommen kann dem Zentrum irgendeines gegebenen Bildes mehr Bits oder eine feinere Quantisierungsskala zugewiesen werden als außenliegenden Bereichen des Bildes. Eine Alternative ist es, das Zielbitnutzprofil dynamisch zu erzeugen durch Verwenden von Information, die aus dem Codieren von vorherigen Bildern desselben Typs gewonnen wurde. Beispielsweise kann das tatsächliche Zielbitprofil, das verwendet wird, um das vorherige P-Bild zu codieren, verwendet werden als das Zielbitnutzprofil für das gegenwärtige P-Bild. Sobald das Zielbitnutzprofil erzeugt ist, beginnt der Prozeß in Schritt 332 mit dem Codieren des Bildes. Wenn das Bild in Schritt 334 codiert ist, wird die tatsächliche Bitverwendung mit dem Zielbitnutzprofil verglichen, nachdem jeder Makroblock codiert wird. In Schritt 336 stellt der Prozeß die Quantisierungsskala ein, wie dies notwendig ist, um sicherzustellen, daß die tatsächliche Bitverwendung zu dem Zielbitnutzprofil paßt. Die Geschwindigkeit, mit der die Einstellung der Quantisierungsskala verwirklicht wird, kann variiert werden abhängig von der Differenz zwischen dem tatsächlichen Bitnutzprofil und dem Zielbitnutzprofil. In anderen Worten könnte die Antwort schnell sein für große Unterschiede zwischen den beiden Profilen oder langsam für kleinere Differenzen zwischen den beiden Profilen. Die Antwortgeschwindigkeit kann ebenso davon abhängen, ob der mögliche Panikanzeiger gesetzt ist. Falls beispielsweise sowohl der mögliche Panikanzeiger und der Szeneschnittanzeiger gesetzt sind, muß die Anzahl von Bits, die verwendet werden, um das nächste Bild zu codieren, genau gesteuert werden oder eine Unterlaufsituation ist möglich. Wenn somit diese Anzeiger gesetzt sind, steuert die Ausführungsform der Erfindung die Bitverwendung und die Antwortgeschwindigkeit der Quantisierungsskalaveränderungen genau. Zusätzlich zu dem Einstellen der Quantisierungsskala können die DCT-Koeffizienten, die codiert werden, ebenso verändert werden. Beispielsweise wenn das tatsächliche Bitverwendungsprofil beginnt, deutlich von dem Zielbitverwendungsprofil abzuweichen, und es erwartet wird, daß die gegenwärtige Bitverwendung den VBV überschreiten wird (d.h. der mögliche Panikanzeiger ist gesetzt). Die DCT-Koeffizienten höherer Ordnung können weggelassen werden und nicht codiert werden. Die Anzahl von DCT-Koeffizienten, die codiert werden, wird von dem Grad abhängen, um den das Zielbitnutzprofil überschritten wird. Typischerweise wird die Anzahl von DCT-Koeffizienten nur eingestellt, wenn sowohl der mögliche Panikanzeiger in Schritt 324 gesetzt ist und ein Szeneschnittanzeiger in Schritt 306 identifiziert wird.
  • In Schritt 338 fragt der Prozeß ab, ob alle Makroblöcke für das gegenwärtige Bild codiert wurden. Falls die Abfrage negativ beantwortet wird, setzt der Prozeß entlang des Nein-Pfades zu Schritt 332 fort, wo der nächste Makroblock codiert wird. Falls die Abfrage in Schritt 338 betätigend beantwortet wird, setzt der Prozeß mit Schritt 340 fort, wo der Codierprozeß gestoppt wird.
  • Es ist wichtig, daß der vorhergehende Ratensteuerprozeß versucht, die Gesamtqualität aller Bilder in einer Sequenz auszugleichen. Im Grunde genommen versucht der Ratensteuerprozeß, die Fehler über eine Anzahl von Bildern zu verteilen, anstatt eine wesentlichen Anzahl von Fehlern in einem Bild zu haben. Darüber hinaus versucht der erfindungsgemäße Ratencontroller die Qualität von unterschiedlichen Bereichen innerhalb eines Bildes konstant zu halten, so daß innerhalb eines gegebenen Bildes, wenn es codiert ist, Codierfehler und Anomalien nicht in einem Bereich des Bildes erscheinen.
  • Obgleich eine einzelne Ausführungsform die Lehren der vorliegenden Ausführungsform der Erfindung beinhaltet, gezeigt und im Detail beschrieben wurde, können Fachleute leicht viele andere variierte Ausführungsformen ableiten, die immer noch diese Lehren enthalten.

Claims (16)

  1. Verfahren für das Durchführen einer dynamischen Geschwindigkeitssteuerung in einem blockbasierten Videokodiersystem in Antwort auf eine Szenenveränderung zwischen einem ersten Bild und einem zweiten Bild, wobei das erste Bild und das zweite Bild zwei aufeinanderfolgende Bilder in einer Abfolge von Bildern sind, wobei das Verfahren die Schritte aufweist: Erfassen (306) eines erheblichen Unterschiedes zwischen dem ersten Bild und dem zweiten Bild als Anzeige einer besagten Szenenveränderung, Berechnen (310) eines Bitzuweisungsvergrößerungswertes (ΔT), Erhöhen (308) der nominellen Bitzuweisung, die mit dem ersten Referenzbild verknüpft ist, das auf das Auftreten der Szenenveränderung folgt, um den Bitzuweisungsvergrößerungswert (ΔT), um eine vergrößerte Bitzuweisung zu erzeugen, und Bestimmen (326) einer Quantisierungsskala für das Kodieren des ersten Referenzbildes innerhalb der vergrößerten Bitzuweisung, und Anwenden einer Geschwindigkeitsregelung und Bitzuweisung zu dem vorgenannten ersten Referenzbild in Übereinstimmung mit der vergrößerten Bitzuweisung während dem Zuweisen einer entsprechenden Reduktion auf B-Bilder, die mit dem vorgenannten ersten Referenzbild verknüpft sind, wobei die Bitzuweisung zu irgendeinem Referenzbild, das dem vorgenannten Szenenwechsel vorausgeht, jedoch nicht verändert wird.
  2. Verfahren nach Anspruch 1, wobei das erste Referenzbild ein P-Bild ist.
  3. Verfahren nach Anspruch 1 oder 2, das weiterhin die Schritte aufweist: Erzeugen (330) eines Zielbitverwendungsprofils für das erste Referenzbild, Kodieren (332) einer Mehrzahl von Makroblöcken des besagten ersten Referenzbildes, Vergleichen (334) des Zielbitverwendungsprofils mit einer tatsächlichen Anzahl von Bits, die verwendet werden, um jeden der Makroblöcke zu kodieren, und Einstellen (336) der Quantisierungsskala, um zu veranlassen, daß die tatsächliche Anzahl von Bits, die verwendet werden, um die Makroblöcke zu kodieren, näherungsweise dem Zielbitverwendungsprofil entsprechen.
  4. Verfahren nach Anspruch 1, 2 oder 3, das weiterhin aufweist den Schritt (328) des Errichtens einer Anzahl von diskreten Kosinustransformationskoeffizienten für das Kodieren des ersten Referenzbildes innerhalb der vergrößerten Bitzuweisung.
  5. Verfahren nach Anspruch 1, 2, 3 oder 4, wobei der Schritt (310) des Berechnens des Bitzuweisungsvergrößerungswertes weiterhin aufweist den Schritt des Einstellens der Bitzuweisungsvergrößerung abhängig (312) von dem Ort des ersten Referenzbildes innerhalb einer Gruppe aus Bildern.
  6. Verfahren nach Anspruch 1, 2, 3, 4 oder 5, wobei der Schritt (310) des Berechnens des Bitzuweisungsvergrößerungswertes (ΔT) weiterhin aufweist den Schritt (314) des Einstellens der Bitzuweisungsvergrößerung abhängig von einer geschätzten Zahl (314) von intramoduskodierten Makroblöcken, die in dem ersten Referenzbild enthalten sind.
  7. Verfahren nach Anspruch 1, 2, 3, 4, 5 oder 6, wobei der Schritt (310) des Berechnens des Bitzuweisungsvergrößerungswertes weiterhin aufweist den Schritte (316) des Einstellens der Bitzuweisungsvergrößerung abhängig von der geschätzten Einfachheit der Kodierung Intramodusmakroblöcken innerhalb des ersten Referenzbildes.
  8. Verfahren nach Anspruch 1, wobei der Schritt (310) des Berechnens des Bitzuweisungsvergrößerungswertes weiterhin aufweist den Schritt (318) des Einstellens der Bitzuweisungsvergrößerung abhängig von der Anzahl von Bits in einem virtuellen Pufferverifizierer.
  9. Vorrichtung für das Durchführen einer dynamischen Geschwindigkeitssteuerung in einem blockbasierten Videokodiersystem in Antwort auf eine Szenenveränderung zwischen einem ersten Bild und einem zweiten Bild, wobei das erste Bild und das zweite Bild zwei aufeinanderfolgende Bilder in einer Abfolge von Bildern sind, wobei die Vorrichtung aufweist: eine Einrichtung (306), die einen erheblichen Unterschied zwischen dem ersten Bild und dem zweiten Bild als Anzeige einer Szenenveränderung erfaßt, eine Einrichtung (310) für das Berechnen eines Bitzuweisungsvergrößerungswerts (ΔT), eine Einrichtung (308), die mit der Berechnungseinrichtung verbunden ist für das Vergrößern der nominalen Bitzuweisung, die mit dem ersten Referenzbild verknüpft ist, das auf das Auftreten der Szenenveränderung folgt, und zwar um den Bitzuweisungsvergrößerungswert (ΔT), um eine vergrößerte Bitzuweisung zu erzeugen, und eine Einrichtung (326), die mit der Vergrößerungseinrichtung verbunden ist, für das Bestimmen einer Quantisierungsskala für das Kodieren des ersten Referenzbildes innerhalb der vergrößerten Bitzuweisung, und eine Einrichtung (116) für das Anwenden einer Geschwindigkeitskontrolle und einer Bitzuweisung zu dem ersten Referenzbild in Übereinstimmung mit der vergrößerten Bitzuweisung während dem Zuweisen einer entsprechenden Reduktion auf B-Bilder, die mit dem vorgenannten ersten Referenzbild verknüpft sind, wobei die Bitzuweisung zu irgendeinem Referenzbild, das dem vorgenannten Szenenwechsel vorausgeht, jedoch nicht verändert wird.
  10. Vorrichtung nach Anspruch 9, wobei das erste Referenzbild ein P-Bild ist.
  11. Vorrichtung nach Anspruch 9 oder 10, die weiterhin aufweist: eine Einrichtung (330) für das Erzeugen eines Zielbitverwendungsprofils für das erste Referenzbild, eine Einrichtung (332) für das Kodieren einer Mehrzahl von Makroblöcken des ersten Referenzbildes, eine Einrichtung (334) für das Vergleichen des Zielbitverwendungsprofils mit einer tatsächlichen Anzahl von Bits, die verwendet werden, um jeden der Makroblöcke zu kodieren, und eine Einrichtung (336) für das Einstellen der Quantisierungsskala um zu veranlassen, daß die tatsächliche Anzahl von verwendeten Bits die Makroblöcke kodieren, annähernd mit dem Zielbitverwendungsprofil übereinstimmt.
  12. Vorrichtung nach Anspruch 9, 10 oder 11, die weiterhin aufweist eine Einrichtung für das Aufstellen (328) einer Anzahl von diskreten Kosinustransformationskoeffizienten für das Kodieren des ersten Referenzbildes innerhalb der vergrößerten Bitzuweisung.
  13. Vorrichtung nach Anspruch 9, 10, 11 oder 12, wobei die Berechnungseinrichtung weiterhin eine Einrichtung für das Einstellen (312) des Bitzuweisungsvergrößerungswertes aufweist und zwar abhängig von dem Ort des ersten Referenzbildes innerhalb einer Gruppe von Bildern.
  14. Vorrichtung nach Anspruch 9, 10, 11, 12 oder 13, bei der die Berechnungseinrichtung weiterhin eine Einrichtung für das Einstellen (314) des Bitzuweisungsvergrößerungswertes abhängig von einer geschätzten Anzahl von intramodkodierten Makroblöcken, die in dem ersten Referenzbild enthalten sind, aufweist.
  15. Vorrichtung nach Anspruch 9, 10, 11, 12, 13 oder 14, wobei die Berechnungseinrichtung weiterhin eine Einrichtung aufweist für das Einstellen (316) des Bitzuweisungsvergrößerungswertes abhängig von der geschätzten Einfachheit der Kodierung von Intramodmakroblöcken innerhalb des ersten Referenzbildes.
  16. Vorrichtung nach Anspruch 9, wobei die Berechnungseinrichtung weiterhin eine Einrichtung aufweist für das Einstellen (318) des Bitzuweisungswertes abhängig von der Anzahl von Bits in einem virtuellen Pufferverifizierer.
DE69735756T 1996-02-26 1997-02-26 Dynamische steuerung der kodierrate in einem blockbasierten videokodierungssystem Expired - Lifetime DE69735756T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/606,622 US5731835A (en) 1996-02-26 1996-02-26 Dynamic coding rate control in a block-based video coding system
US606622 1996-02-26
PCT/US1997/002564 WO1997031481A1 (en) 1996-02-26 1997-02-26 Dynamic coding rate control in a block-based video coding system

Publications (2)

Publication Number Publication Date
DE69735756D1 DE69735756D1 (de) 2006-06-01
DE69735756T2 true DE69735756T2 (de) 2007-01-04

Family

ID=24428738

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69735756T Expired - Lifetime DE69735756T2 (de) 1996-02-26 1997-02-26 Dynamische steuerung der kodierrate in einem blockbasierten videokodierungssystem

Country Status (6)

Country Link
US (1) US5731835A (de)
EP (1) EP0883963B1 (de)
JP (1) JP2000505615A (de)
KR (1) KR100366426B1 (de)
DE (1) DE69735756T2 (de)
WO (1) WO1997031481A1 (de)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1079948A (ja) * 1996-09-03 1998-03-24 Mitsubishi Electric Corp 画像符号化装置
EP0960532B1 (de) * 1997-02-12 2007-01-31 MediaTek Inc. Vorrichtung und verfahren zur optimierung der bitratensteurung in einem kodiersystem
US6023296A (en) 1997-07-10 2000-02-08 Sarnoff Corporation Apparatus and method for object based rate control in a coding system
US6185253B1 (en) * 1997-10-31 2001-02-06 Lucent Technology, Inc. Perceptual compression and robust bit-rate control system
US6332002B1 (en) * 1997-11-01 2001-12-18 Lg Electronics Inc. Motion prediction apparatus and method
US6563549B1 (en) 1998-04-03 2003-05-13 Sarnoff Corporation Method and apparatus for adaptively encoding an information stream
EP1005233A1 (de) * 1998-10-12 2000-05-31 STMicroelectronics S.r.l. Steuerung zur konstanten Bitratencodierung in einem Videocodierer durch Preanalyse der Bilder in Sliceeinheiten
KR100602149B1 (ko) * 1999-07-07 2006-07-19 엘지전자 주식회사 움직임 보상기반 영상 복호화를 위한 영상 압축방법
US6556624B1 (en) * 1999-07-27 2003-04-29 At&T Corp. Method and apparatus for accomplishing multiple description coding for video
US6766098B1 (en) * 1999-12-30 2004-07-20 Koninklijke Philip Electronics N.V. Method and apparatus for detecting fast motion scenes
KR100341063B1 (ko) 2000-06-28 2002-06-20 송문섭 실시간 영상 통신을 위한 율제어 장치 및 그 방법
WO2002030126A1 (en) * 2000-10-06 2002-04-11 St Microelectronics Asia Pacific (Pte) Ltd System and method of bit allocation in scene change situations
WO2002080567A1 (en) * 2001-03-30 2002-10-10 Sony Corporation Image signal quantizing device and its method
US9894379B2 (en) * 2001-07-10 2018-02-13 The Directv Group, Inc. System and methodology for video compression
US6996183B2 (en) * 2001-09-26 2006-02-07 Thomson Licensing Scene cut detection in a video bitstream
US9351013B2 (en) * 2003-11-13 2016-05-24 Qualcomm Incorporated Selective and/or scalable complexity control for video codecs
US7856054B1 (en) * 2003-11-14 2010-12-21 Apple Inc. Scene change identification during encoding of compressed video
KR100627500B1 (ko) * 2004-03-10 2006-09-21 엘지전자 주식회사 모바일폰의 단문 메시지 제공시스템 및 그 제공방법
US7881386B2 (en) * 2004-03-11 2011-02-01 Qualcomm Incorporated Methods and apparatus for performing fast mode decisions in video codecs
JP2005311559A (ja) * 2004-04-20 2005-11-04 Sony Corp データ処理装置およびその方法と符号化装置
US9667999B2 (en) * 2005-04-25 2017-05-30 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for encoding video data
JP4784650B2 (ja) * 2009-01-07 2011-10-05 ソニー株式会社 符号化装置、目標符号量調整方法及び記録媒体
CA2751803A1 (en) * 2009-02-13 2010-08-19 Research In Motion Limited Modified entropy encoding for images and videos
KR101394536B1 (ko) * 2009-02-13 2014-05-15 블랙베리 리미티드 이미지 처리에서 픽셀-도메인 왜곡 분포의 균형이 맞춰진 적응적 양자화
US8345750B2 (en) * 2009-09-02 2013-01-01 Sony Computer Entertainment Inc. Scene change detection
WO2012047194A1 (en) * 2010-10-04 2012-04-12 Vidyo, Inc. Automatic temporal layer bit allocation
US8537900B2 (en) 2010-10-04 2013-09-17 Vidyo, Inc. Automatic temporal layer bit allocation
CN109218724B (zh) 2017-07-06 2020-08-04 腾讯科技(深圳)有限公司 一种数据编码方法、装置及存储设备和终端设备
CN108200431B (zh) * 2017-12-08 2021-11-16 重庆邮电大学 一种视频编码码率控制帧层比特分配方法
US10880354B2 (en) * 2018-11-28 2020-12-29 Netflix, Inc. Techniques for encoding a media title while constraining quality variations
CN113377045A (zh) * 2021-06-08 2021-09-10 广东三姆森科技股份有限公司 一种基于fpga的多路位置比较输出装置
CN116248895B (zh) * 2023-05-06 2023-07-21 上海扬谷网络科技有限公司 虚拟现实全景漫游的视频云转码方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5134476A (en) * 1990-03-30 1992-07-28 At&T Bell Laboratories Video signal encoding with bit rate control
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
US5253059A (en) * 1992-05-15 1993-10-12 Bell Communications Research, Inc. Method and circuit for adjusting the size of a video frame
KR0134871B1 (ko) * 1992-07-17 1998-04-22 사또오 후미오 고능률 부호화 복호화 시스템
AU6099594A (en) * 1993-02-03 1994-08-29 Qualcomm Incorporated Interframe video encoding and decoding system
US5440346A (en) * 1993-06-16 1995-08-08 Intel Corporation Mode selection for method and system for encoding images
US5594504A (en) * 1994-07-06 1997-01-14 Lucent Technologies Inc. Predictive video coding using a motion vector updating routine

Also Published As

Publication number Publication date
EP0883963A4 (de) 2001-01-17
KR100366426B1 (ko) 2003-04-21
KR19990087265A (ko) 1999-12-15
WO1997031481A1 (en) 1997-08-28
DE69735756D1 (de) 2006-06-01
US5731835A (en) 1998-03-24
EP0883963B1 (de) 2006-04-26
EP0883963A1 (de) 1998-12-16
JP2000505615A (ja) 2000-05-09

Similar Documents

Publication Publication Date Title
DE69735756T2 (de) Dynamische steuerung der kodierrate in einem blockbasierten videokodierungssystem
DE69826823T2 (de) Verfahren zur videocodierung mit variabler bitrate und entsprechender videocodierer
DE69915277T2 (de) Verfahren und vorrichtung zur reduzierung von breathing-artefakten in komprimierten videodaten
DE60026241T2 (de) Umschalten zwischen bitratenreduzierten Signalen
DE69921108T2 (de) Verfahren und vorrichtung zur adaptiven codierung eines videodatenstroms
DE60023576T2 (de) Verfahren und Vorrichtung zur Bewegtbilddatentranscodierung
DE69827548T2 (de) Anordnung zur Vorverarbeitung für MPEG-2-Kodierung
DE69816875T2 (de) Sequenzadaptive bit-zuordnung zur codierung von bildern
DE69815159T2 (de) Kodierung von bewegten bildern mit globaler konstanter bitrate
DE60027495T2 (de) Video-codierverfahren und video-codiervorrichtung
DE69233411T2 (de) Verfahren und Einrichtung zur Kompression von sich bewegenden Videobildern mit adaptiver Bitzuordnung und Quantisierung
DE60215241T2 (de) Verfahren und Vorrichtung zur Reduzierung von Störungen in dekodierten Bildern mit Nachfilterung
DE69736537T2 (de) Ratenregelung für stereoskopische digitale Videokodierung
EP1087625B1 (de) Digitales Transcodiersystem
DE69837003T2 (de) Vorrichtung und verfahren zur optimierung der bitratensteurung in einem kodiersystem
DE69830979T2 (de) Verfahren und vorrichtung zur videocodierung mit variabler bitrate
DE60032841T2 (de) Signalprozessor zum nahtlosen Zusammenfügen von MPEG-2 Bitströmen in einem Videokoder
DE69435000T2 (de) Bildkodierungsvorrichtung
DE69834902T2 (de) Bewegungskompensierte prädiktive bildkodierung und -dekodierung
DE69635369T2 (de) Videokodierungsvorrichtung
DE69817460T2 (de) Bildsequenzdekodierungsverfahren
DE69333298T2 (de) Codierung und Codierung von digitalen Videosignalen
DE69433272T2 (de) Vorrichtung zum Vermeiden von Rundungsfehlern bei der inversen Transformation von Transformationskoeffizienten eines Bewegtbildsignales
DE69813911T2 (de) VERFAHREN ZUR BESTIMMUNG VON BEWEGUNGSVEKTORFELDERN MIT LOKALER BEWEGUNGSSCHäTZUNG
DE69633815T2 (de) Vorrichtung zur Codierung und Decodierung eines digitalen Bildsignales

Legal Events

Date Code Title Description
8364 No opposition during term of opposition