DE69930216T2 - Regelung des Rechen- und Speicheraufwands zur Datenfolgekompression in einem Videodekoder - Google Patents

Regelung des Rechen- und Speicheraufwands zur Datenfolgekompression in einem Videodekoder Download PDF

Info

Publication number
DE69930216T2
DE69930216T2 DE69930216T DE69930216T DE69930216T2 DE 69930216 T2 DE69930216 T2 DE 69930216T2 DE 69930216 T DE69930216 T DE 69930216T DE 69930216 T DE69930216 T DE 69930216T DE 69930216 T2 DE69930216 T2 DE 69930216T2
Authority
DE
Germany
Prior art keywords
decoding
complexity
memory
time stamp
video object
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
DE69930216T
Other languages
English (en)
Other versions
DE69930216D1 (de
Inventor
Thiow Keng Tan
Guo Rong Mountain View Hu
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP32876798A external-priority patent/JP2000125292A/ja
Priority claimed from JP4140699A external-priority patent/JP2000244909A/ja
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE69930216D1 publication Critical patent/DE69930216D1/de
Publication of DE69930216T2 publication Critical patent/DE69930216T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object 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/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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und ein Modell für die Regulierung der Rechen- und Speicheranforderungen eines komprimierten Bitstroms in einem Videodekodierer. Diese Erfindung ist auf dem Gebiet der audiovisuellen Multimedia-Kodierungs- und Kompressionstechniken nützlich, wo der Kodierer die Komplexitätsanforderungen der Bitströme, die er erzeugt, regulieren muss. Dies stellt sicher, dass Dekodierer, die der Komplexitätsspezifikation der Norm entsprechen, diese Bitströme ohne Verknappung der Betriebsmittel erfolgreich dekodieren können.
  • 2. Beschreibung des Standes der Technik
  • In der Vergangenheit mussten die Entwickler von Videodekodierern, die einer bestimmten Leistungsfähigkeit einer Norm entsprechen, sicherstellen, dass die Dekodierer ausreichend Betriebsmittel aufweisen, um das ungünstigste Szenario zu unterstützen, das gemäß der Spezifikation möglich ist. Dies ist keine gute technische Praxis, da gewöhnlich das ungünstigste Szenario einen Fall repräsentiert, der unter normalen Betriebsbedingungen nahezu unmöglich ist. Dies führt zu einer überzogenen Konstruktion und zu einer Verschwendung von Betriebsmitteln.
  • Innerhalb der MPEG-4-Normierung gibt es derzeit die Bemühung, Komplexitätsgrenzen für den Dekodierer auf der Grundlage der Komplexität des Bitstroms statt auf der Grundlage des ungünstigsten Szenarios zu spezifizieren. Dies ist ein statistisches Verfahren auf der Grundlage einer allgemeinen Einheit des Komplexitätsmaßes. Die Norm wird einen festen Wert für die in einem konformen Bitstrom zulässige maximale Komplexität spezifizieren. Der Dekodierer muss ausreichend Betriebsmittel bereitstellen, um alle konformen Bitströme zu dekodieren. Der Kodierer muss sicherstellen, dass alle Bitströme, die erzeugt werden, die maximalen Komplexitätsgrenzen nicht überschreiten und somit konform sind.
  • 1 zeigt graphisch das obige Konzept. Wie in 1 gezeigt ist, sind gültige Bitströme links vom festen Wert der Norm verteilt, und alle konformen Kodierer sind rechts des festen Wertes der Norm verteilt. Die Komplexitätsgrenze wird durch die gerade Linie im Graphen gezeigt. Die Abszisse ist in Komplexitätseinheiten angegeben. Links von der Linie befinden sich alle konformen Bitströme. Die typische Verteilung des Bitstroms ist hier dargestellt. Die Mehrheit der Bitströme würde eine Komplexität aufweisen, die sehr viel niedriger ist als die Komplexitätsgrenze. Einige wenige Bitströme werden sich dieser Grenze nähern. Wenn ein Bitstrom diese Grenze überschreitet, ist er kein konformer Bitstrom mehr und ist daher nicht gezeigt. Auf der rechten Seite der Komplexitätsgrenze befindet sich die Verteilung der Dekodierer. Die meisten Dekodierer würden möglichst nahe an der Komplexitätsgrenze ausgelegt, um Kosten zu sparen. Einige wenige Dekodierer können mehr Betriebsmittel aufweisen, als erforderlich ist, und liegen weiter rechts vom Graphen. Ein Dekodierer, der nicht genug Betriebsmittel aufweist, um die Komplexitätsanforderungen eines konformen Bitstroms zu erfüllen, wird links von der Komplexitätsgrenze liegen und wird als nicht konform betrachtet.
  • 2 zeigt ein einfaches Komplexitätsmessverfahren, bei dem der Kodierer die Anzahl der jeweils ausgewählten Makroblocktypen zählt und die Komplexität des Bitstroms auf der Grundlage einer bestimmten vordefinierten Kostenfunktion bewertet, die jedem Makroblocktyp zugeordnet ist. 2 zeigt ein einfaches Verfahren des Zählens der Kostenfunktion des Bitstroms, der erzeugt wird, durch Berechnen der äquivalenten I-MB-Einheiten. Dieses weist jedoch das Problem auf, dass es nicht fähig ist, das unmittelbare Komplexitätsmaß zu liefern, und dass es keine anderen Betriebsmittel, wie z. B. Speicher, berücksichtigt. Informationen über den aktuellen Makroblock werden an das Makroblocktyp-Entscheidungsmodul 201 weitergeleitet, wo die Entscheidung zum Dekodieren des Makroblocks in einem bestimmten Verfahren getroffen wird. Diese Entscheidung wird anschließend vom Kostenfunktionsgeneratormodul 202 gezählt, das diese Informationen in eine Komplexitätskostenfunktion umsetzt. Die Komplexitätskostenfunktion wird anschließend für die weitere Entscheidung an das Makroblocktyp-Entscheidungsmodul zurückgegeben.
  • Die Module 203 bis 210 sind typische Module, die für einen Hybrid-Transformationskodierer erforderlich sind. Das Eingangsbild wird in Blöcke unterteilt, die von den Bewegungsschätz- und Kompensationsmodulen 210 bzw. 209 verarbeitet werden. Es ist zu beachten, dass dieser Schritt ausgelassen wird, wenn keine Bewegungsvorhersage vorhanden ist. Das bewegungskompensierte Differenzsignal wird anschließend mittels des DCT-Transformationsmoduls 203 verarbeitet. Die Transformationskoeffizienten werden anschließend im Quantisierungsmodul 204 quantisiert. Die quantisierten Koeffizienten werden anschließend zusammen mit den Kopfinformationen des Makroblocktyps und den Bewegungsvektoren im Variable-Länge-Kodierungsmodul 205 entropie-kodiert. Der lokale Dekodierer, der die Module 206 bis 209 umfasst, rekonstruiert das kodierte Bild für die Verwendung bei der Vorhersage zukünftiger Bilder. Das Invers-Quantisierungsmodul 206 invers-quantisiert die Koeffizienten, bevor diese in das Invers-DCT-Modul 207 eingegeben werden, wo das Differenzsignal wiederhergestellt wird. Das Differenzsignal wird anschließend mit der Bewegungsvorhersage addiert, um den rekonstruierten Block zu bilden. Diese Blöcke werden anschließend für die zukünftige Verwendung im Vollbildspeichermodul 208 gespeichert.
  • Ferner ist in der Videokodierung inhärent, dass der Kompressionsprozess zu einem Bitstrom mit variabler Bitrate führt. Dieser Bitstrom wird gewöhnlich über einen Kanal mit konstanter Bitrate gesendet. Um die unmittelbare Schwankung der Bitrate auszugleichen, werden gewöhnlich Puffer am Ausgang des Kodierers und am Eingang des Dekodierers eingerichtet. Diese Puffer dienen als Sammelbecken für Bits und erlauben, einen Kanal mit konstanter Bitrate an einen Kodierer anzuschließen, der Bitströme mit variabler Bitrate erzeugt, sowie an Dekodierer, die Bitströme mit einer variablen Bitrate aufnehmen.
  • Die Pufferbelegung ändert sich im Zeitverlauf, da die Rate, mit der der Puffer gefüllt wird, und die Rate, mit der er geleert wird, verschieden sind. Über eine lange Zeitperiode können jedoch die mittlere Rate für das Füllen des Puffers und die mittlere Rate für das Leeren des Puffers gleich definiert sein. Wenn daher ein ausreichend großer Puffer zugelassen wird, kann ein stabiler Betrieb erreicht werden. Um korrekt zu arbeiten, darf der Puffer nicht leer werden (unterlaufen) oder vollständig gefüllt werden (überlaufen). Um diese Einschränkung sicherzustellen, wurden in der Literatur, wie z. B. MPEG-1 und MPEG-2, Modelle für den Puffer vorgeschlagen, bei denen das Videopuffermodell das Verhalten des mit einem Kanal mit konstanter Bitrate verbundenen Dekodierers mit variabler Bitrate erlaubt. Der Rest des Dekodierers muss nicht dem Modell entsprechen, da das Videodekodierungsverfahren mit einer konstanten Vollbildrate definiert wurde und jedes Vollbild eine konstante Größe aufweist. Die konstante Rate der Deko dierung und die Pufferbeanspruchung waren daher zeitlich wohldefiniert, wobei eine Videopufferprüfeinrichtung (VBV) verwendet wird, um zu prüfen, ob der in einem Dekodierer benötigte Pufferspeicher kleiner ist als die definierte Puffergröße, indem der Bitstrom mit seiner Lieferratenfunktion R(t) geprüft wurde.
  • Das Definieren des Komplexitätsmaßes reicht nicht aus, um sicherzustellen, dass der Dekodierer in einer unmissverständlichen Weise ausgelegt werden kann. Hierfür gibt es zwei Gründe.
  • Der erste Grund ist, dass die Komplexität zeitlich gemessen wird. Da die Zeit ausreichend groß ist, kann sie mehrere Vollbilder an Bildern aufnehmen. Die Komplexitätsverteilung kann so beschaffen sein, dass die Betriebsmittel des Dekodierers im Augenblick erschöpft sein können, während die durchschnittliche Komplexität unterhalb der gesetzten Grenze liegt. Die Beschränkung des Fensters auf eine kürzere Zeit würde die Variabilität der Komplexität der Bilder beschränken. Dies bedeutet, dass alle Bilder die konstante Komplexität aufweisen müssen. Dies ist ungünstig, da durch die Eigenart der Kodierungsmodi verschiedene Bildtypen verschiedene Komplexitäten aufweisen sollten.
  • Der zweite Grund ist, dass die Komplexität sich nicht unmittelbar auf die Berechnungszeit bezieht. Ein zweites Element, das im Komplexitätsmaß nicht enthalten ist, ist die Speicheranforderung.
  • Das zu lösende Problem ist daher, ein Verfahren für die Regulierung der Komplexitätsanforderungen des Bitstroms hinsichtlich der Rechen- und Speicheranforderungen zu erfinden.
  • Ferner wurde von MPEG in den neueren Entwicklungen im Videokompressionsprozess ein flexibleres Kodierungsverfahren definiert, das objektorientiert ist. Das flexible Kodierungsschema unterstützt eine variable Anzahl von Makroblöcken innerhalb eines Videobildes und eine verschiedene Bildrate, so dass die Dekodierungsrate und die Annahmerate des Speichers nicht mehr konstant sind. Es wird notwendig, diese Raten über die Zeit zu messen, um sicherzustellen, dass diese nicht die maximale Leistungsfähigkeit des Dekodierers missachten. Beispiele von Systemen des Standes der Technik umfassen US-A-5677969, WO-A-9617492, US-A-5719632, US-A-5038209 und WO-A-9747139.
  • Ferner besteht das zu lösende Problem darin, wie neue Prüfeinrichtungen und Algorithmen zu definieren sind, um die Parameter eines komprimierten Videobitstroms zu messen, um sicherzustellen, dass der erzeugte Bitstrom mit definierter Leistungsfähigkeit und definierten Betriebsmitteln dekodiert werden kann.
  • Um das oben erwähnte Problem zu lösen, wird ein verbundenes Rechen- und Speicheranforderungsmodell entwickelt. Durch Berücksichtigen der Rechenanforderungen sowie der Speicheranforderungen der Bitströme können die Betriebsmittelanforderungen im Dekodierer genau eingegrenzt werden.
  • Die Speicheranforderungen sind durch die Menge an verfügbarem Speicher wohldefiniert. Die Nutzung und Freigabe von Speicher ist ebenfalls durch die Dekodierungs- und Präsentationszeitstempel der Videosequenz wohldefiniert. Diese Zeitstempel sind in den Bitströmen eingebettet.
  • Durch Verknüpfen der Berechnungskomplexitätseinheiten mit der Speichernutzung ist es daher möglich, das erste Problem zu lösen, wobei das Fenster zum Definieren der Komplexitätsgrenze unklar ist. Durch Verknüpfen dieser Anforderungen können die Rechen- und Speicheranforderungen auf der Grundlage der Dekodierungs- und Präsentationszeitstempel begrenzt werden. Es ist nicht mehr erforderlich, ein gleitendes Fenster für die Messung der Komplexität zu definieren. Gleichzeitig sind die Bilder nicht darauf beschränkt, dass sie eine konstante Komplexität aufweisen.
  • Ferner bietet das VCV-Modell 130 die Rechenanforderungen, um die Start- und Endzeit der Dekodierung der Makroblöcke zu bestimmen. Das VMV-Modell 140 beschreibt das Verhalten des Referenzspeichers und die Belegung des Referenzspeichers. Die VPV 105 definiert einen Algorithmus zum Prüfen des Bitstroms und zum Überprüfen der Größe des Präsentationspuffers.
  • Diese Erfindung verknüpft die Modelle in Bezug auf den Speicherverbrauch, was erlaubt, die Bitströme anhand einer physikalischen Begrenzung des Dekodierers einzuschränken. Die Vorrichtung zum Implementierung der Überprüfung wird in dieser Erfindung ebenfalls zur Verfügung gestellt.
  • Ferner wird ein vollständig neuer Satz von Prüfeinrichtungsmodellen entwickelt: Videokomplexitätsprüfeinrichtung (VCV), Videospeicherprüfeinrichtung (VMV) und Videopräsentationsprüfeinrichtung (VPV). Die Modelle spezifizieren das Verhalten eines Dekodierers für eine variable VOP-Größe und -Rate und definieren neue Parameter und Grenzen zum Messen und Prüfen der Rechen- und Speicherbetriebsmittel, die der Bitstrom fordert.
  • Im Folgenden wird die Funktion der Erfindung beschrieben. Der Kodierer überwacht die Komplexität des erzeugten Bitstroms durch Zählen des Makroblocktyps. Jedem Makroblocktyp sind vordefinierte Kosten in bestimmten Komplexitätseinheiten zugewiesen. Jeder dekodierte Makroblock verbraucht ferner eine vordefinierte Menge an Speicherraum. In Abhängigkeit vom Typ der VOP wird der Speicher für eine verschiedene Zeitdauer belegt. Der Speicher wird freigegeben, wenn der Makroblock in der VOP für die Anzeige oder Vorhersage nicht mehr benötigt wird.
  • Dem virtuellen Dekodierer wird die maximale Grenze der Komplexitätseinheiten und des Speichers zugewiesen. Der virtuelle Dekodierer kann den Bitstrom schnellstmöglich dekodieren, entsprechend der Beschränkung der Komplexitätsgrenze. Hierzu müsste jedoch der Dekodierer zusätzlichen Speicher aufweisen, um die dekodierten VOPs zu halten, bis es Zeit ist, diese anzuzeigen, oder bis diese für die Vorhersage nicht mehr benötigt werden. Somit ist klar, dass der virtuelle Dekodierer sowohl durch das Maß der Verarbeitungsleistungsfähigkeit als auch durch den verfügbaren Speicher begrenzt ist.
  • Durch Überwachen der Komplexitätseinheitenanforderungen des Bitstroms und Anpassen des Dekodierungszeitstempels der VOP ist daher der virtuelle Dekodierer fähig, zu verhindern, dass die Speichernutzung die Grenze überschreitet. Somit kann der virtuelle Dekodierer weniger Zeit für eine einfache VOP aufwenden, und mehr Zeit für eine komplexe VOP.
  • Der virtuelle Dekodierer ist durch die folgenden Regeln definiert:
    • a) Die zum Dekodieren der aktuellen VOP benötigte Speichermenge ist definiert durch die Anzahl der Makroblöcke in der VOP und wird mit einer konstanten Rate zwischen dem Dekodierungszeitstempel der aktuellen VOP und der nächsten VOP verbraucht.
    • b) Zur Präsentationszeit einer I- oder P-VOP wird der gesamte Speicher, der der in Dekodierungsreihenfolge vorangehenden I- oder P-VOP zugewiesen ist, sofort freigegeben.
    • c) Zur Präsentationszeit einer B-VOP wird der dieser B-VOP zugewiesene Gesamtspeicher sofort freigegeben.
    • d) Zu einem beliebigen Zeitpunkt muss der Dekodierungszeitstempel der (n + 1)-ten VOP in Dekodierungsreihenfolge DTSn+1 kleiner oder gleich dem Präsentationszeitstempel der n-ten VOP in Dekodierungsreihenfolge PTSn sein. DTSn+1 ≤ PTSn (1)wobei n die Dekodierungsreihenfolge darstellt.
    • e) Zu einem beliebigen Zeitpunkt darf die Summe des beanspruchten Speichers nicht die verfügbaren maximalen Speicherbetriebsmittel MMax überschreiten. Ansonsten weist der virtuelle Dekodierer einen Speicherüberlauf auf.
    • f) Zu einem beliebigen Zeitpunkt muss das Verhältnis der Dekodierungskomplexität der aktuellen VOP Cn zur verfügbaren Dekodierungszeit DTSn+1 – DTSn kleiner sein als die pro Sekunde verfügbaren maximalen Komplexitätsbetriebsmittel C'Max. Ansonsten weist der virtuelle Dekodierer einen Komplexitätsüberlauf auf. Cn/(DTSn+1 – DTSn) < C'Max (2)wobei n die Dekodierungsreihenfolge darstellt.
  • Ein gültiger Bitstrom ist daher ein Bitstrom, bei dem die Werte im Bitstrom die Bedingungen in d), e) und f) erfüllen und keinen Überlauf der Speicher- oder Komplexitätsbetriebsmittel des virtuellen Dekodierers hervorrufen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine Verteilung der Bitstromkomplexität und der Dekodiererbetriebsmittel in Komplexitätseinheiten gemäß dem Stand der Technik.
  • 2 ist ein Komplexitätsmaß und eine Steuerung im Videokodierer des Standes der Technik.
  • 3 ist ein Komplexitätsmaß und eine Steuerung mit einem virtuellen Dekodierer im Videokodierer gemäß der ersten Ausführungsform.
  • 4 ist ein Blockdiagramm für den virtuellen Dekodierer der ersten Ausführungsform.
  • 5 ist ein Graph, der die Funktion des virtuellen Dekodierers mit den Dekodierungs- und Präsentationszeitstempeln ohne Vollbildumordnung zeigt.
  • 6 ist ein Graph, der die Funktion des virtuellen Dekodierers mit den Dekodierungs- und Präsentationszeitstempeln zeigt, und zeigt insbesondere ein Beispiel der Ausführungsform des virtuellen Dekodierers.
  • 7 ist ein Blockdiagramm, das ein Komplexitätsmaß und eine Überprüfung mit einer hypothetischen virtuellen Komplexitätsprüfeinrichtung im Videokodierer gemäß der vorliegenden Erfindung zeigt.
  • 8 ist ein Blockdiagramm, das ein Komplexitätsmaß und eine Überprüfung unter Verwendung der hypothetischen virtuellen Komplexitätsprüfeinrichtung zeigt.
  • 9 ist ein Blockdiagramm eines Videoprüfeinrichtungsprüfmodells, das insbesondere die Beziehung zwischen VBV, VCV, VMV und VPV zeigt.
  • 10 ist ein Blockdiagramm einer Videopufferprüfeinrichtung, die insbesondere die Auslegung der mit dem Ausgang des Kodierers verbundenen Videopufferprüfeinrichtung zeigt.
  • 11 ist ein Graph, der eine Operation einer Videopufferprüfeinrichtung-Belegungszeit zeigt.
  • 12 ist ein Blockdiagramm einer Videokomplexitätsprüfeinrichtung, die insbesondere die Auslegung der mit dem Ausgang des Kodierers verbundenen Videokamplexitätsprüfeinrichtung zeigt.
  • 13 ist ein Graph, der eine Operation der Videokomplexitätsprüfeinrichtung-Belegungszeit zeigt.
  • 14 ist ein Blockdiagramm einer Videospeicherprüfeinrichtung, die insbesondere die Auslegung der mit dem Ausgang des Kodierers verbundenen Videospeicherprüfeinrichtung zeigt.
  • 15 ist ein Graph, der eine Operation der Videospeicherprüfeinrichtung-Belegungszeit zeigt.
  • 16 ist ein Blockdiagramm einer Videopräsentationsprüfeinrichtung, die insbesondere die Auslegung der mit dem Ausgang des Kodierers verbundenen Videopräsentationsprüfeinrichtung zeigt.
  • 17 ist ein Graph, der eine Operation der Videopräsentationsprüfeinrichtung-Belegungszeit zeigt.
  • 18 ist ein Blockdiagramm eines im Videokodierer verwendeten Videoprüfeinrichtungsmodells.
  • 19 ist ein Flussdiagramm der Videobitstromüberprüfung, die die Operation einer eigenständigen Videobitstromprüfeinrichtung zeigt.
  • 20 ist ein Graph, der eine VBV-Pufferbelegung zeigt.
  • 21 ist ein Graph, der die VCV-, VMV- und VPV-Pufferbelegungen zeigt.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • 1. Ausführungsform
  • Die erste Ausführungsform ist in den 3, 4, 5 und 6 gezeigt. 3 zeigt das gleiche Diagramm wie beim Stand der Technik der 2, jedoch mit neuen Abschnitten, die gemäß der vorliegenden Erfindung hinzugefügt sind. Die erste Ausführungsform verwendet einen virtuellen Dekodierer 303. Der Ausgang des Kostenfunktionsgenerators 302 ist nicht direkt zum Makroblocktyp-Entscheidungsmodul 301 zurückgeführt, sondern über den virtuellen Dekodierer 303. Der virtuelle Dekodierer 303 empfängt ferner die Präsentationszeitstempel der zu dekodierenden Bilder. Der virtuelle Dekodierer 303 führt die Funktion wie oben beschrieben aus. Er ist ein hypothetisches Modell, das einen Dekodierer simuliert, der begrenzte Rechen- und Speicherbetriebsmittel aufweist. Diese Betriebsmittel werden entsprechend den Kodierungsinformationen beansprucht, die im Kostenfunktionsgenerator und in den Präsentationszeitstempeln zu finden sind.
  • 4 zeigt die Funktionen des virtuellen Dekodierers 303. Die Komplexitätskostenfunktion vom Kostenfunktionsgenerator 302 wird an den virtuellen VOP-Speicherpuffer 401 und den Dekodierungszeitstempel-(DTS)-Generator 402 weitergeleitet. Der virtuelle VOP-Speicherpuffer 401 empfängt ferner die Signale des Präsentationszeitstempels (PTS) und des Dekodierungszeitstempels (DTS). Anschließend simuliert er die Speicherpuffernutzung. Die Ausgabe des virtuellen VOP-Speicherpuffers 401 ist die Speicherpufferbelegung. Diese Information wird an den DTS-Generator 402 weitergeleitet, um diesem zu ermöglichen, den nächsten DTS zu erzeugen.
  • Die Erzeugung des DTS ist abhängig von der Speicherpufferbelegung und der Komplexitätskostenfunktion. Wenn der Speicher aufgefüllt wird, kann der nächste DTS verzögert werden, um mehr Zeit zum Dekodieren des aktuellen Bildes zu erlauben und somit den Speicherpuffer später zu füllen. In ähnlicher Weise kann der DTS des nächsten Bildes ebenfalls verzögert werden, wenn die Komplexitätskostenfunktion des aktuellen Bildes steigt, um dem Dekodierer mehr Zeit zum Dekodieren des aktuellen Bildes zu erlauben. Eine mögliche Funktion ist im Folgenden angegeben: DTSn+1 = DTSn + c1 × puffer_füllung + c2 × komplexität_kosten (3)wobei c1 und c2 konstante Faktoren sind, die durch die Vollbildrate der Sequenz bestimmt sind.
  • Der DTS kann nicht zu schnell sein, wobei dann, wenn zwei aufeinander folgende DTS zu dicht liegen, der Nenner in Gleichung (2) klein wird und die linke Seite der Gleichung die Grenzen der rechten Seite übersteigen würde. Wenn dies eintritt, tritt eine Verknappung der Rechenbetriebsmittel des Dekodierers auf. Siehe oben erläuterte Regel f).
  • In ähnlicher Weise kann der DTS nicht unbegrenzt verzögert werden, da das Bild zu einem bestimmten Zeitpunkt, der durch den PTS gegeben ist, angezeigt werden muss. Siehe obige Regel d). Diese Überprüfung wird im PTS/DTS-Komparator 403 bewerkstelligt, wo die Differenz zwischen dem DTS und dem PTS geprüft wird. Das Ergebnis wird an den Makroblocktyp-Gewichtungsfaktorgenerator 404 weitergeleitet, wo der Gewichtungsfaktor für jeden Makroblocktyp erzeugt wird. Diese Gewichtungen werden verwendet, um die Entscheidung zu regulieren, die im Makroblocktyp-Entscheidungsmodul 301 getroffen wird.
  • Der virtuelle VOP-Speicherpuffer implementiert die Regeln a) bis c) und stellt sicher, dass Regel e) nicht verletzt wird. Es gibt zwei Beispiele dieser Ausführungsform, die in den 5 und 6 gezeigt sind. 5 zeigt den Fall, bei dem der VOP-Kodierungstyp nur aus I- und P-VOPs besteht. Daher werden die VOPs in der gleichen Reihenfolge dekodiert und angezeigt. 6 zeigt den Fall, bei dem die VOP-Kodierungstypen I-, P- und B-VOPs umfassen. Aufgrund der bidirektionalen Vorhersage der B-VOPs besteht die Notwendigkeit, die VOPs für die Kodierung aufzuzeichnen, so dass die Kodierungsreihenfolge und die Anzeigereihenfolge der VOPs verschieden sind. Daher werden im Modell die VOPs in unterschiedlicher Reihenfolge dekodiert und angezeigt.
  • Fall 1: nur I- und P-VOPs
  • Im Folgenden wird die Operation des virtuellen VOP-Speicherpuffers beschrieben, wenn nur I- und P-VOPs vorhanden sind. Die horizontale Achse zeigt die Zeit und die entsprechenden Zeitstempel, wenn ein Ereignis startet. Die vertikale Achse zeigt die Speichernutzung. Die Grenze der Speicherbetriebsmittel ist durch die verfügbaren maximalen Speicherbetriebsmittel markiert.
  • Gemäß Regel a) beginnt der virtuelle Dekodierer zum Zeitpunkt DTS0 mit dem Dekodieren der ersten VOP, nämlich der I-VOP 0. Er schließt die Dekodierung zum DTS1 ab. Der virtuelle Dekodierer, oder das Modell, nimmt an, dass der durch VOP 0 verwendete Speicher zeitlich linear ist, so dass sich die zwischen DTS0 und DTS1 gezeigte Gerade ergibt. Zwischen DTS1 und DTS2 dekodiert der Dekodierer die P-VOP 1 und beansprucht den Wert VOP 1 an Speicher. Dieser Prozess wird für alle Intervalle von DTSi bis DTSi+1 wiederholt und ist in 5 in Form linear ansteigender Linien dargestellt.
  • Regel b) ist bei jedem PTS mit Ausnahme von PTS0 gezeigt, wo es keine vorausgehende VOP gibt. Bei PTS1 wird der Speicher, der durch VOP 0 beansprucht wird, sofort freigegeben. Dies ist als vertikale Linie im Graphen gezeigt. Ähnlich ist der vertikale Abfall des beanspruchten Speichers zum Zeitpunkt PTSi im gesamten Graphen dargestellt.
  • Solange der Graph zwischen den Grenzen der verfügbaren maximalen Speicherbetriebsmittel bleibt und DTS und PTS die Bedingungen der Regel e) erfüllen, arbeitet das Modell innerhalb seiner Grenzen. Das Modell weist einen Überlauf auf, wenn eine oder mehrere der Regeln d), e) oder f) verletzt werden.
  • Fall 2: I-, P- und B-VOPs
  • 6 zeigt den Fall, bei dem I-, P- und B-VOPs vorhanden sind. Wenn in der Sequenz B-VOPs vorhanden sind, besteht die Notwendigkeit zum Umordnen der Dekodierungsreihenfolge. In diesem Beispiel enthält die kodierte Sequenz die VOPs 0, 1, 2, 3, 4, .... Die VOP 0 ist eine I-VOP, während die VOPs 1 und 3 P-VOPs sind und die VOPs 2 und 4 B-VOPs sind. Die aktuelle Anzeigereihenfolge dieser VOPs ist 0, 2, 1, 4, 3, .... Es ist die Umordnung der VOPs 1 und 2 sowie 3 und 4 zu beachten. Dies liegt daran, dass die B-VOP 2 die P-VOP 1 für die Vorhersage benötigt, weshalb die P-VOP zuerst dekodiert wird, obwohl sie in der Anzeigereihenfolge nach der B-VOP 2 kommt.
  • Gemäß der Regel a) beginnt zum Zeitpunkt DTS0 der virtuelle Dekodierer mit dem Dekodieren der ersten VOP, nämlich der I-VOP 0. Er schließt die Dekodierung bei DTS1 ab. Das Modell nimmt an, dass der durch VOP 0 verwendete Speicher zeitlich linear ist, so dass sich die zwischen DTS0 und DTS1 gezeigte Gerade ergibt. Zwischen DTS1 und DTS2 dekodiert der Dekodierer die P-VOP 1 und beansprucht den Wert VOP 1 an Speicher. Zwischen DTS2 und DTS3 dekodiert der Dekodierer die B-VOP 2 und beansprucht den Wert VOP 2 an Speicher.
  • Die Regeln b) und c) werden bei jedem PTS angewendet, mit Ausnahme des PTS0, wo keine vorangehende VOP vorliegt. Bei PTS2 wird der Speicher, der von VOP 2 beansprucht wird, sofort freigegeben. Dies ist im Graphen als vertikale Linie gezeigt. Ein ähnlicher vertikaler Abfall des beanspruchten Speichers ist im gesamten Graphen jeweils zum Zeitpunkt PTSi gezeigt.
  • Solange der Graph zwischen den Grenzen der verfügbaren maximalen Speicherbetriebsmittel bleibt und DTS und PTS die Bedingungen der Regel e) erfüllen, arbeitet das Modell innerhalb seiner Grenzen. Das Modell erfährt einen Überlauf, wenn eine oder mehrere der Regeln d), e) oder f) verletzt werden.
  • Virtuelle Komplexitätsüberprüfung
  • In einer separaten Ausführungsform wird der virtuelle Dekodierer 303 nicht zum Kontrollieren der Komplexität des kodierten Bitstroms verwendet, sondern zum Überprüfen, dass der Bitstrom der Komplexitätsspezifikation entspricht. Es gibt zwei Methoden der Überprüfung. Eine wird intern im Kodierer bewerkstelligt, während der Bitstrom erzeugt wird, und die andere außerhalb des Kodierers, nachdem der Bitstrom erzeugt worden ist. Diese sind jeweils in den 7 und 8 gezeigt.
  • In 7 berechnet die hypothetische virtuelle Komplexitätsprüfeinrichtung die Kostenfunktion über den Kostenfunktionsgenerator 702, und empfängt den PTS und den DTS vom PTS-DTS-Generator 701. Diese Informationen werden anschließend über den virtuellen Dekodierer 703 angewendet, wie oben beschrie ben worden ist. Die Prüfeinrichtung stellt sicher, dass die Regeln a) bis f) für den Bitstrom erfüllt werden, so dass dieser gültig ist.
  • 8 zeigt den Fall, bei dem die hypothetische virtuelle Komplexitätsprüfeinrichtung am Ausgang des Kodierers 801 angebracht ist. Der Parser 802 prüft den Bitstrom vom Ausgang des Kodierers, um den PTS, den DTS und den Makroblockkodierungstyp zu erhalten. Der Makroblockkodierungstyp wird anschließend an den Kostenfunktionsgenerator 803 weitergeleitet, wo die Kostenfunktion bewertet wird. Die Kostenfunktion wird zusammen mit dem PTS und dem DTS über den virtuellen Dekodierer 804 angewendet, wie im vorangehenden Abschnitt beschrieben worden ist. Die Prüfeinrichtung stellt sicher, dass die Regeln a) bis f) für den Bitstrom erfüllt werden, so dass dieser gültig ist.
  • Bei der ersten Ausführungsform ist der Kodierer fähig, die Komplexität des kodierten Bitstroms, den er erzeugt, zu kontrollieren und zu regulieren. Gleichzeitig stellt der Dekodierer sicher, dass Ströme, die zu komplex sind, nicht erzeugt werden. Die Wirkung dieser Erfindung ist, dass die Auslegung der Dekodierer nicht mehr auf dem ungünstigsten Szenario beruhen muss, sondern auf dem allgemeinen Komplexitätsmaß beruht, das durch die Norm spezifiziert ist. Die Kosten dieser Produkte können daher reduziert werden, da keine Notwendigkeit zu einer überzogenen Konstruktion besteht.
  • 2. Ausführungsform
  • Die zweite Ausführungsform beschreibt die allgemeine Operation der vorliegenden Ausführungsform.
  • Ein Modell ist ein Simulation der Aktionen eines Zieldekodierers und seiner Module, wie z. B. des Bitstrompuffers, der Zentraleinheit (CPU) oder der Speichervorrichtung. Ein Modell kann als eine eingebettete Videoprüfeinrichtung im Kodierer während der Erzeugung des kodierten Bitstroms verwendet werden, um sicherzustellen, dass ein typischer Dekodierer den Bitstrom, den der Kodierer erzeugt, dekodieren kann. Ein Modell kann ferner als eigenständige Videoprüfeinrichtung verwendet werden. Eine eigenständige Videoprüfeinrichtung wird auch verwendet, um einen Bitstrom, der bereits durch bestimmte Mittel kodiert worden ist, zu überprüfen, um sicherzustellen, dass ein typischer Dekodierer fähig ist, diesen zu dekodieren.
  • Diese Ausführungsform präsentiert eine in 9 gezeigte Videoprüfeinrichtung, die die folgenden Modelle umfasst:
    • 1) ein Videopuffermodell 120,
    • 2) ein Videokomplexitätsmodell 130,
    • 3) ein Videoreferenzspeichermodell 140, und
    • 4) ein Videopräsentationsmodell 150.
  • Jedes dieser Modelle ist individuell in den 10, 12, 14 bzw. 16 gezeigt.
  • 10 zeigt ein Videopuffermodell 120, das eine Videopufferprüfeinrichtung 202 aufweist. Die Videopufferprüfeinrichtung 202 wird benötigt, um die Speicheranforderungen für den von einem Videokodierer benötigten Bitstrompuffer zu begrenzen, womit der Videokodierer darauf beschränkt werden kann, Bitströme zu erzeugen, die mit einer vorgegebenen Pufferspeichergröße dekodierbar sind. Die Videopufferprüfeinrichtung 202, die am Ausgang des Kodierers 201 angebracht ist, wird verwendet, um den in einem wirklichen Dekodierer 203 vorhandenen Bitstrompuffer 204 zu simulieren.
  • Die Videopufferprüfeinrichtung 202 arbeitet auf folgende Weise, wie durch den Graphen in 11 dargestellt ist. Sie simuliert den Bitstrompuffer des Dekodierers, indem sie folgende Annahmen macht. Zuerst nimmt sie eine bestimmte maximale Puffergröße 251 und eine anfängliche Belegung 252 der virtuellen Pufferprüfeinrichtung an. Als nächstes nimmt sie an, dass die virtuelle Pufferprüfeinrichtung mit Bits aus dem Bitstrom, der vom Kodierer erzeugt wird, gefüllt wird 253. Sie nimmt an, dass die virtuelle Pufferprüfeinrichtung mit einer spezifischen Rate gefüllt wird, die durch den Kanal bestimmt wird, der zum Transport des Bitstroms verwendet wird. Anschließend erarbeitet die Videopufferprüfeinrichtung durch Interpretieren der im Bitstrom eingebetteten Zeitablaufinformationen den Zeitpunkt, zu dem der Dekodierer erwartungsgemäß mit der Dekodierung der individuellen Bilder der im Bitstrom 254 kodierten Eingangsdaten beginnt. Zu dem Zeitpunkt, zu dem der Dekodierer mutmaßlich die Dekodierung der individuellen Bilder der Eingangsdaten abschließt, wird die Anzahl der Bits, die das aktuelle Bild repräsentieren, auf der virtuellen Pufferprüfeinrichtung 255 entfernt. Es wird angenommen, dass die Bits sofort aus dem Puffer entfernt werden.
  • Der Inhalt der virtuellen Pufferprüfeinrichtung 202 wird zu dem Zeitpunkt vor und nach dem Entfernen der Bits aus dieser überprüft. Wenn die Belegung der virtuellen Pufferprüfeinrichtung die maximale Puffergröße übersteigt, erfährt die virtuelle Pufferprüfeinrichtung einen Überlauf. Wenn die zu entfernenden Bits das übersteigen, was in der virtuellen Pufferprüfeinrichtung verfügbar ist, erfährt die virtuelle Pufferprüfeinrichtung einen Unterlauf. Für den normalen Betrieb darf der Puffer nicht überlaufen. Im Fall eines Unterlaufs wird angenommen, dass der Dekodierer wartet, bis die benötigten Bits an der virtuellen Pufferprüfeinrichtung ankommen.
  • Durch Implementieren dieses Modells und Verwenden desselben, um die Bitströme, die vom Kodierer erzeugt werden, zu regulieren und zu prüfen, kann sichergestellt werden, dass ein beliebiger Dekodierer, der mit den Spezifikationen der Norm konform ist, die so erzeugten Bitströme dekodieren kann. Der Bitstrom führt weder zu einem Überlauf noch zu einem Unterlauf des Bitstrompuffers des Dekodierers.
  • 12 zeigt ein Videokomplexitätsmodell 130, das eine Videokomplexitätsprüfeinrichtung 302 aufweist. Die Videokomplexitätsprüfeinrichtung 302 wird benötigt, um die Verarbeitungsgeschwindigkeitsanforderungen, die von einem Videodekodierer benötigt werden, zu begrenzen, womit der Videokodierer darauf beschränkt werden kann, Bitströme zu erzeugen, die mit der Leistungsfähigkeit des vorgegebenen Dekodiererprozessors dekodierbar sind. Die Videokomplexitätsprüfeinrichtung 302, die am Ausgang des Kodierers 301 angebracht ist, wird verwendet, um den in einem wirklichen Dekodierer 303 vorhandenen Prozessor 305 zu simulieren.
  • Die Videokomplexitätsprüfeinrichtung 302 arbeitet auf folgende Weise, wie mit dem Graphen in 13 dargestellt ist. Sie simuliert den Prozessor des Dekodierers, indem sie folgende Annahmen macht. Das Bild ist in kleinere Verarbeitungseinheiten segmentiert, die als Makroblöcke bezeichnet werden. Zuerst nimmt sie an, dass eine bestimmte maximale Anzahl von Makroblöcken 351 vorhanden ist, die der Prozessor in seinem Puffer für die Verarbeitung akkumulieren kann. Dies setzt eine Grenze für das Verzögerungsmaß des Prozessors, das zulässig ist, bevor das Bild dekodiert werden muss. Als nächstes bestimmt die Videokomplexitätsprüfeinrichtung den Beginn der Dekodierungszeit durch Unter suchen der im Bitstrom kodierten Informationen. Zu dem Zeitpunkt, zu dem der Dekodierer erwartungsgemäß mit dem Dekodieren der individuellen Bilder der im Bitstrom 352 kodierten Eingangsdaten beginnt, bestimmt die virtuelle Komplexitätsprüfeinrichtung die Komplexität des zu dekodierenden Bildes in Bezug auf die Anzahl der Makroblöcke 353. Diese Anzahl der Makroblöcke wird anschließend zur Verarbeitung in der Videokomplexitätsprüfeinrichtung-Warteschlange platziert. Die Videoprüfeinrichtung verarbeitet anschließend die Makroblöcke mit einer gegebenen maximalen Rate von Makroblöcken pro Einheitszeit 354. Diese maximale Rate beruht auf der Spezifikation der Norm. Unter Verwendung dieser Annahmen wird der Zeitverbrauch der Dekodierung der Bilder berechnet 535. Eine einfache Formel des Dividierens der Größe der Warteschlange durch die Verarbeitungsrate ergibt die Zeit, die erforderlich ist, um die Dekodierung des Bildes, das eben in die Warteschlange gestellt worden ist, abzuschließen.
  • Die Videokomplexitätsprüfeinrichtung-Warteschlange wird zum Startzeitpunkt der Dekodierung überprüft, um sicherzustellen, dass die Warteschlange nicht die Grenze der maximalen Anzahl von Makroblöcken überschreitet. Dies dient dazu, sicherzustellen, dass alle Bilder innerhalb einer gewissen Dekodiererlatenzzeit dekodiert werden können.
  • In einer anderen Variation der Videokomplexitätsprüfeinrichtung wird die Komplexität des Bitstroms weiter in Bezug auf unterschiedliche Typen von Makroblöcken gemessen. Die Kodierungstypen der Makroblöcke werden verwendet, um die Makroblöcke in verschiedene Komplexitätskategorien zu klassifizieren. Die Komplexität wird anschließend bezüglich des einfachsten Typs von Makroblock normalisiert, welchem eine Einheit einer Makroblockkomplexität zugewiesen wird. Den übrigen Kategorien wird eine Gewichtung des w-fachen einer Makroblockkomplexität zugewiesen, wobei w für jede der Kategorien in Abhängigkeit von der Komplexität variiert und immer ein Wert größer als 1 ist. Die gewichtete Summe der Makroblockkomplexität wird anschließend in der Videokomplexitätsprüfeinrichtung verwendet.
  • Durch Implementieren dieses Modells und Verwenden desselben, um die Bitströme, die vom Dekodierer erzeugt werden, zu regulieren und zu prüfen, kann sichergestellt werden, dass ein beliebiger Dekodierer, der mit den Spezifikationen der Norm konform ist, die so erzeugten Bitströme dekodieren kann. Der Bit strom wird nicht zu komplex für den Prozessor im Dekodierer.
  • 14 zeigt ein Videospeichermodell 140, das eine Videospeicherprüfeinrichtung 402 aufweist. Die Videospeicherprüfeinrichtung 402 wird benötigt, um die Referenzspeicheranforderungen, die von einem Videodekodierer benötigt werden, zu begrenzen, so dass ein Videokodierer darauf beschränkt werden kann, Bitströme zu erzeugen, die mit einer vorgegebenen Referenzspeichergröße dekodierbar sind. Die Videospeicherprüfeinrichtung 402, die am Ausgang des Kodierers 401 angebracht ist, wird verwendet, um den einen wirklich im Dekodierer 403 vorhandenen Referenzspeicher 406 zu simulieren.
  • Die Videospeicherprüfeinrichtung 402 arbeitet in der folgenden Weise, wie mit dem Graphen in 15 dargestellt ist. Sie simuliert die Speicherbeanspruchung des Dekodierers, indem sie folgende Annahmen macht. Zuerst nimmt sie an, dass ein gewisser maximaler Referenzspeicher in Bezug auf Makroblöcke verfügbar ist 451. Während der Dekodierungszeit 452 wird der Referenzspeicher mit einer konstanten Rate beansprucht, die durch die Dekodierungsrate des Bildes 453 gegeben ist. Die Rate kann in Makroblöcken pro Einheitszeit ausgedrückt sein. Zum Präsentationszeitpunkt des aktuellen Bildes 454 wird der vom vorangehenden Bild belegte Speicher sofort freigegeben 455.
  • Der Grund dafür, dass der vom vorhergehenden Bild belegte Speicher und nicht das aktuelle Bild freigegeben wird, besteht darin, dass der Referenzspeicher des vorangehenden Bildes für die Dekodierung des aktuellen Bildes verwendet wird. Er kann nur dann freigegeben werden, wenn er nicht mehr benötigt wird. Der Anzeigezeitpunkt des aktuellen Bildes wird verwendet, um zu bestimmen, dass das aktuelle Bild dekodiert worden ist und daher das vorangehende Bild nicht mehr benötigt wird und freigegeben werden kann. Im Fall einer bidirektionalen Vorhersage ist die Freigabe des Speichers komplizierter. Da die bidirektional vorhergesagten Bilder nicht für die Vorhersage zukünftiger Bilder verwendet werden, können diese zu ihrem Präsentationszeitpunkt ohne irgendeine Verzögerung aus dem Speicher freigegeben werden.
  • Die Videospeicherprüfeinrichtung wird zum Präsentationszeitpunkt eines jeden Bildes geprüft, um zu erkennen, ob sie den maximalen Referenzspeicher überschritten hat. Dies dient dazu, sicherzustellen, dass immer genügend Referenz speicher zum Speichern des dekodierten Bildes verfügbar ist.
  • Durch Implementieren des Modells und Verwenden desselben zum Regulieren und Prüfen der Bitströme, die vom Kodierer erzeugt werden, kann sichergestellt werden, dass ein beliebiger Dekodierer, der konform mit den Spezifikationen der Norm ist, die so erzeugten Bitströme dekodieren kann. Der Bitstrom wird nicht mehr Referenzspeicher belegen, als im Dekodierer verfügbar ist.
  • Videopräsentationsmodell
  • 16 zeigt ein Videopräsentationsmodell 150, das eine Videopräsentationsprüfeinrichtung 502 aufweist. Die Videopräsentationsprüfeinrichtung 502 wird benötigt, um die Präsentationsspeicheranforderungen, die von einer Videoanzeige benötigt werden, zu begrenzen, womit ein Videokodierer darauf beschränkt werden kann, Bitströme zu erzeugen, die mit einer vorgegebenen Anzeigespeichergröße anzeigbar sind. Die Videopräsentationsprüfeinrichtung 502, die am Ausgang des Kodierers 501 angebracht ist, wird verwendet, um den am Ausgang des wirklichen Dekodierers 503 angebrachten Präsentationsspeicher 507 zu simulieren.
  • Die Videopräsentationsprüfeinrichtung 502 arbeitet auf folgende Weise, wie mittels des Graphen in 17 dargestellt ist. Sie simuliert den Präsentationsspeicherpuffer der Anzeige, indem sie folgende Annahmen macht. Zuerst nimmt sie an, dass ein bestimmter maximaler Präsentationsspeicher bezüglich der Makroblöcke verfügbar ist 551. Während der Präsentationszeit 552 wird der Präsentationsspeicher mit dem vollständig dekodierten Bild gefüllt. Dieser Speicher wird anschließend mit einer konstanten Rate freigegeben, wenn das Bild angezeigt wird 553. Die Präsentationsprüfeinrichtung wird geprüft, um sicherzustellen, dass die akkumulierten Makroblöcke im Puffer nicht den maximal verfügbaren Speicher überschreiten.
  • Das Videoprüfeinrichtungsmodell, das oben individuell präsentiert worden ist, kann kombiniert werden, um eine vollständige Videoprüfeinrichtung zu bilden. 18 zeigt eine komplette Lösung, die alle Module im Kodierer enthält. Sie zeigt die Videoprüfeinrichtungsmodelle und die verschiedenen Kodierermodule, die durch die Rückkopplungseinrichtung der Prüfeinrichtung kontrolliert werden. Die vorliegende Erfindung der Videoprüfeinrichtungsmodelle kann im Videokodie rer und bei der Überprüfung eines vorkodierten Videobitstroms verwendet werden.
  • Wenn sie in einem Videokodierer verwendet wird, wird das VBV-Modell 613 verwendet, um die Bitstromrate zu prüfen. Wenn die Rate größer als die definierte Grenze ist, wird ein Rückmeldesignal an die Ratensteuervorrichtung 610 gesendet, um die Quantisierung 604 und die VLC 605 zu steuern. Das VCV-Modell 612 wird verwendet, um die Komplexität oder die Dekodierungskosten des erzeugten Bitstroms zu prüfen. Wenn die Komplexität über der definierten Grenze liegt, wird ein Rückmeldesignal an die Makroblocktyp-Steuervorrichtung 611 gesendet, um die Makroblocktyp-Entscheidung 601 zu steuern. Die VMV 614 und VPV 615 werden verwendet, um den Referenzspeicherbedarf 608 zu prüfen. Wenn dieser überläuft, wird ein Rückmeldesignal ebenfalls zur Makroblocktyp-Steuervorrichtung 611 gesendet, um die Makroblocktyp-Entscheidung 601 zu ändern.
  • Wie in 19 gezeigt ist, können die Prüfeinrichtungsmodelle ferner verwendet werden, um die Konformität der Videobitströme zu prüfen. Mit dem Flussdiagramm wird der Videobitstrom mittels VBV, VCV, VMV und VPV einzeln geprüft. Wenn irgendeine der Grenzen nicht eingehalten werden kann, ist der Bitstrom nicht konform und muss zurückgewiesen werden.
  • 3. Ausführungsform
  • Die dritte Ausführungsform ist ein verallgemeinerter Fall der vorliegenden Erfindung. Sie beschreibt ein Beispiel einer vollständigen Spezifikation des Videoprüfeinrichtungsmodells. Sie ist in die folgenden Definitionen unterteilt:
  • Videopuffermodell-Definition
  • Die Videopufferungsprüfeinrichtung (VBV) ist ein Algorithmus zum Überprüfen eines Bitstroms mit seiner Lieferratenfunktion R(t), um zu prüfen, dass die Größe der Pufferspeicherrate, die in einem Dekodierer benötigt wird, kleiner ist als die genannte Puffergröße. Ursprünglich von MPEG-2 herausgegeben, ist die neue VBV mit neuen Merkmalen der objektorientierten Videokodierung definiert. Wenn ein visueller Bitstrom aus mehreren Videoobjekten (VOs) besteht, die jeweils mit einer oder mehreren Objektschichten (VOLs) versehen sind, wird das Ratenpuffermodell unabhängig von jeder VOL angewendet (unter Verwendung der Puffer größe und der Ratenfunktionen, die für diese VOL spezifisch sind).
  • Die VBV wird auf natürliches Video angewendet, das als Kombination von Intra-, Vorhersage- und Bidirektional-Videoobjektebenen (I-P- und B-VOPs) kodiert worden ist. Der folgende Abschnitt bezieht sich auf 20. Der kodierte Videobitstrom soll beschränkt werden, so dass er den Anforderungen der VBV entspricht, die wie folgt definiert sind:
    • 1. Wenn die Parameter vbv_puffer_größe und vbv_belegung durch Systemebene-Konfigurationsinformationen spezifiziert sind, sollte der Bitstrom entsprechend den spezifizierten Werten beschränkt werden. Wenn die Parameter vbv_puffer_größe und vbv_belegung nicht spezifiziert sind (mit Ausnahme im Fall des kurzen Videokopfes, wie im Folgenden beschrieben wird), zeigt dies an, dass der Bitstrom gemäß den Vorgabewerten von vbv_puffer_größe und vbv_belegung beschränkt werden sollte. Der Vorgabewert von vbv_puffer_größe ist der maximale Wert von vbv_puffer_größe, der innerhalb des Profils und der Ebene zulässig ist. Der Vorgabewert vbv_belegung ist 170 × vbv_puffer_größe, wobei vbv_belegung in Einheiten von 64 Bit vorliegt und vbv_puffer_größe in Einheiten von 16.384 Bits vorliegt. Dies entspricht einer anfänglichen Belegung von etwa zwei Dritteln der vollen Puffergröße.
    • 2. Die VBV-Puffergröße ist durch das Feld vbv_puffer_größe im VOL-Kopf in Einheiten von 16.384 Bits spezifiziert. Eine vbv_puffer_größe von 0 ist verboten. V = 16384 × vbv_puffer_größe ist definiert als die VBV-Puffergröße in Bits.
    • 3. Die unmittelbare Videoobjektschicht-Kanalbitrate, die vom Kodierer gesehen wird, ist bezeichnet durch Rvol(t) in Bits pro Sekunde. Wenn das Feld bit_rate im VOL-Kopf vorhanden ist, definiert es eine Spitzenrate (in Einheiten von 400 Bits pro Sekunde; einen Wert von 0 ist verboten), so dass Rvol(t) <= 400 × bit_rate ist. Es ist zu beachten, dass Rvol(t) nur die visuelle Syntax für die aktuelle VOL zählt (siehe folgende Definition von di). Wenn der Kanal eine serielle Zeitverschachtelung ist, die andere VOLs enthält, oder, wie durch ISO/IEC14496-1 definiert ist, mit einer gesamten unmittelbaren Kanalrate R(t) versehen ist, die vom Kodierer gesehen wird, dann gilt
      Figure 00200001
    • 4. Der VBV-Puffer ist anfangs leer. Das Feld vbv_belegung spezifiziert die anfängliche Belegung des VBV-Puffers in Einheiten von 64 Bits vor der Dekodierung der anfänglichen VOP. Das erste Bit im VBV-Puffer ist das erste Bit des elementaren Stroms.
    • 5. di ist als Größe im Bits der i-ten VOP plus irgendeines vorangehenden GOV-Kopfes definiert, wobei i der VOP-Index ist, der in Dekodierungsreihenfolge um Eins inkrementiert wird. Eine VOP enthält irgendwelche nachfolgende Füllkodewörter vor dem nächsten Startkode, wobei die Größe einer kodierten VOP (di) aufgrund der Startkodeausrichtung immer ein vielfaches von 8 Bits ist.
    • 6. Es sei ti die Dekodierungszeit, die der VOP i in Dekodierungsreihenfolge zugeordnet ist. Alle Bits (di) der VOP i werden unmittelbar bei ti aus dem VBV-Puffer entfernt. Diese Eigenschaft der sofortigen Entfernung unterscheidet das VBV-Puffermodell von einem Realratenpuffer. Das Verfahren der Bestimmung des Wertes von ti ist im Folgenden Punkt 7 definiert.
    • 7. τi ist die Setzungszeit (oder Präsentationszeit in einem Nicht-Setzer-Dekodierer) der VOP i. Für eine Videoobjektebene ist τi definiert durch vop_zeit_inkrement (in Einheiten von 1/vop_zeit_inkrement_auflösung sekunden) plus der kumulativen Anzahl gesamter Sekunden, spezifiziert durch modul_zeit_basis. Im Fall eines verschachtelten Videos besteht eine VOP aus Zeilen von zwei Halbbildern, wobei τi die Setzungszeit des ersten Halbbildes ist. Die Beziehung zwischen der Setzungszeit und der Dekodierungszeit für ein VOP ist gegeben durch: ti = τi, wenn ((vop-kodierungs_typ der VOP i == B_VOP)|| geringe_verzögerung|| skalierbarkeit) ti = τi – mi sonst, wobei geringe_verzögerung wahr ("1") ist, wenn der elementare Bitstrom keine B-VOPs enthält. Wenn geringe_verzögerung gleich "0" ist und skalierbarkeit ebenfalls "0" ist, dann ist die Setzungszeit von I- und P-VOPs verzögert, bis alle zeitlich unmittelbar vorangehenden B-VOPs gesetzt worden sind. Diese Verzögerungsperiode ist gleich mi = τf – τp wobei f für I- oder P-VOP der Index des VOP selbst ist, und für eine B-VOP der Index der zeitlich nächstliegenden zukünftigen Nicht-B-VOP bezüglich VOP i ist, und p der Index der zeitlich nächstliegenden vorangehenden Nicht-B-VOP bezüglich VOP i ist. Um den Modelldekodierer zu initialisieren, wenn mi für die erste VOP benötigt wird, ist es notwendig, eine anfängliche Dekodierungszeit t0 für die erste VOP zu definieren (da die Zeitablaufstruktur mit den B-VOP-Zeiten verkettet ist und die erste dekodierte VOP keine B-VOP wäre). Dieser definierte Dekodierungszeitablauf sollte t0 = 2t1 – t2 sein (d. h. es wird angenommen, dass t1 – t0 = t2 – t1 gilt). Das folgende Beispiel demonstriert, wie mi für eine Sequenz mit variablen Anzahlen aufeinanderfolgender B-VOPs bestimmt wird: Dekodierungsreihenfolge: I0 P1 P2 P3 B4 P5 B6 P7 B8 B9 P10 B11 B12 Präsentationsreihenfolge: I0 P1 P2 B4 P3 B6 P5 B8 B9 P7 B11 B12 P10 Es sei angenommen, dass in diesem Beispiel vop_zeit_inkrement = 1 und modulo_zeit_basis = 0 gilt. Der Subindex i gibt die Dekodierungsreihenfolge an. Tabelle 1: ein Beispiel, das demonstriert, wie mi bestimmt wird
      Figure 00220001
    • 8. bi ist als Pufferbelegung in Bits unmittelbar nach der Entfernung von VOP i aus dem Ratenpuffer definiert. Unter Verwendung der obigen Definitionen kann bi iterativ definiert werden: b0 = 64 × vbv_belegung – d0
      Figure 00230001
    • 9. Das Ratenpuffermodell erfordert, dass der VBV-Puffer niemals überläuft oder unterläuft, d. h. 0 < bi und bi + di < B für alle iEs wird eine real bewertete Arithmetik verwendet, um bi zu berechnen, so dass keine Fehler akkumuliert werden. Eine kodierte VOP-Größe muss immer kleiner sein als die VBV-Puffergröße, d. h. di < B für alle i.
    • 10. Wenn der kurze Videokopf verwendet wird (d. h. wenn kurz_video_kopf = 1), dann ist der Parameter vbv_puffer_größe nicht vorhanden und die folgenden Bedingungen werden für die VBV-Operation benötigt. Der Puffer ist anfangs zu Beginn der Kodiereroperation leer, (d. h. t = 0 zum Zeitpunkt der Erzeugung der ersten Videoebene mit kurzem Kopf), wobei dessen Füllung anschließend nach jedem Zeitintervall von 1001/30000 Sekunden (d. h. bei t = 1001/30000, 2002/30000 usw.) geprüft wird. Wenn sich eine vollständige Videoebene mit kurzem Kopf zum Prüfzeitpunkt im Puffer befindet, wird sie entfernt. Die Pufferfüllung nach der Entfernung einer VOP bi sollte größer sein als 0 und kleiner als (4·Rmax·1001)/30000 Bits, wobei Rmax die maximale Bitrate in Bits pro Sekunde ist, die innerhalb des Profils und der Ebene zulässig ist. Die Anzahl der Bits, die für die Kodierung irgendeines einzelnen VOP verwendet wird, di, sollte k·16.384 Bits nicht überschreiten, wobei k = 4 für Qcif und Sub-Qcif gilt, k = 16 für CIF gilt, k = 32 für 4 CIF gilt, und k = 64 für 16 CIF gilt, sofern nicht ein größerer Wert von k im Profil und in der Ebenendefinition spezifiziert ist. Ferner sollte die Gesamtpufferfüllung zu keinem Zeitpunkt einen Wert von B = k·16384 + (4·Rmax·1001)/30000 überschreiten.
  • Es ist eine Anforderung an den Kodierer, einen Bitstrom zu erzeugen, der den VBV-Puffer nicht überlaufen oder unterlaufen lässt. Dies bedeutet, dass der Kodierer so ausgelegt sein muss, dass er eine korrekte VBV-Operation für den Wertebereich von Rvol,Dekodierer(t) bereitstellt, über den das System für die Lieferung des Bitstroms arbeitet. Der Kanal weist eine konstante Verzögerung auf, wenn die Kodiererbitrate zum Zeitpunkt t wenn ein bestimmte Bit in den Kanal eintritt, Rvol,Kodierer(t) gleich Rvol,Dekodierer(t + L) ist, wobei das Bit bei (t + L) empfangen wird und L konstant ist. Im Fall von Kanälen mit konstanter Verzögerung kann der Kodierer dieses Lokal geschätzte Rvol,Kodierer(t) verwenden, um die VBV-Belegung zu simulieren und die Anzahl der Bits der VOP, di, zu steuern, um ein Überlauf oder Unterlauf zu verhindern.
  • Das VBV-Modell nimmt einen Kanal mit konstanter Verzögerung an. Dies erlaubt dem Kodierer, einen elementaren Bitstrom zu erzeugen, der den Puffer unter Verwendung von Rvol,Kodierer(t) nicht überlaufen oder unterlaufen lässt – es ist zu beachten, dass Rvol(t) im obigen Punkt 2 definiert ist als Rvol,Kodierer(t).
  • Videokomplexitätsmodell-Definition
  • Die Videokomplexitätsprüfeinrichtung (VCV) ist ein Algorithmus zum Prüfen eines Bitstroms, um zu Überprüfen, dass das Maß an Verarbeitungsleistungsfähigkeit, das in einem Dekodierer benötigt wird, kleiner ist als das genannte Komplexitätsmaß im Kostenfunktionsäquivalent von I-MB/s. Wenn ein visueller Bitstrom aus mehreren VOs mit jeweils einer oder mehreren VOLs besteht, wird das Videokomplexitätsmodell gemeinsam auf alle VOLs angewendet (unter Verwendung einer kumulativen vcv_puffer_größe für alle VOLs).
  • Die VCV wird auf natürliches Video angewendet, das als Kombination von I-, P- und B-VOPs kodiert ist. Der kodierte Bitstrom soll beschränkt werden, so dass er den Anforderungen der VCV entspricht, wie im Folgenden definiert ist:
    • 1. Eine vcv_puffer_größe ist definiert als die Anzahl äquivalenter I-MBs, die im VCV-Puffer enthalten sein können. Diese äquivalenten I-MBs werden vom Dekodierer mit der zur Kostenfunktion äquivalenten I-MB-Dekodierungsrate vcv_dekodierer_rate beansprucht. Eine vcv_dekodierer_latenzzeit ist definiert als die Bearbeitungszeit, die der Dekodierer benötigt, um einen vollen VCV-Puffer (vcv_puffer_größe MBs) mit der MB-Dekodierungsrate (äquivalente I-MBs) zu dekodieren. Somit gilt die Beziehung vcv_puffer_größe = vcv_dekodierer_latenzzeit·vcv_dekodierer_rate. Der VCV-Puffer ist zu Beginn der Dekodierung anfangs leer.
    • 2. Wenn der Parameter vcv_dekodierer_latenzzeit durch vol_steuerung_parameter spezifiziert ist, sollte der Bitstrom gemäß den spezifizierten Werten beschränkt werden. Wenn der Parameter vcv_dekodierer_latenzzeit nicht spezifiziert ist, sollte der Bitstrom gemäß den Vorgabewerten von vcv_dekodierer_latenzzeit beschränkt werden.
    • 3. Die Komplexitätskosten einer VOP Mi in Einheiten von äquivalenten I-MB wird auf der Grundlage der folgenden Formel berechnet: Mi ist die neue Menge an Makroblöcken zum Zeitstempel ti. Mi kann I-, P- und B-Makroblöcke enthalten. Die "Dekodierungskosten" für diese Makroblöcke beruhen auf dem Makroblocktyp und sind durch die Gewichtungen wI, wP, wB, wSI und wSP gegeben. Mi = wIMIi + wPMPi + wBMBi + wSIMSIi + wSPMSPi wobei I, P und B sich jeweils auf I-, P- und B-Makroblöcke beziehen, während SI und SP sich jeweils auf I- und P-Makroblöcke beziehen, die eine Objektgrenze (Form) enthalten.
    • 4. Zum Zeitpunkt ti – vcv_dekodierer_latenzzeit werden die Komplexitätskosten der VOP zum VCV-Puffer addiert, wobei ti die im Abschnitt 0 berechnete Dekodierungszeit ist.
    • 5. Das Komplexitätsmodell erfordert, dass der VCV-Puffer niemals überläuft, d. h. der Dekodierungsprozess muss innerhalb der Dekodiererlatenzzeit abgeschlossen sein. In diesem Fall wird die einzige bindende Anforderung des Modells erfüllt: die Dekodierungsendzeit muss vor der im Abschnitt 0 berechneten Dekodierungszeit liegen. Diese Einschränkung ist immer erfüllt, wenn kein VCV-Pufferüberlauf auftritt.
    • 6. Das Komplexitätsmodell erlaubt dem VCV-Puffer, einen Unterlauf aufzuweisen, wobei in diesem Fall der Dekodierer einfach im Leerlauf verharrt, während der VCV-Puffer leer ist.
  • Videoreferenzspeichermodell-Definition
  • Die Videospeicherprüfeinrichtung (VMV) ist ein Algorithmus zum Überprüfen eines Bitstroms, um zu prüfen, dass die in einem Dekodierer benötigte Menge an Referenzspeicher kleiner ist als der genannte maximale gesamte Referenzspeicher in Einheiten von MB. Wenn ein visueller Bitstrom aus mehreren VOs besteht, jeweils mit einer oder mehreren VOLs, wird das Videoreferenzspeichermodell gemeinsam für alle VOL angewendet (da dieses Modell einen gemeinsam genutzten Speicherraum annimmt).
  • Die VMV wird auf ein natürliches Video angewendet, das als Kombination von I-, P- und B-VOPs kodiert ist. Der kodierte Videobitstrom sollte so beschränkt sein, dass er den Anforderungen der VMV entspricht, die wie folgt definiert sind:
    • 1. Der Referenzspeicher ist anfangs leer. Er wird mit dekodierten Daten gefüllt, wenn der jeweilige Makroblock dekodiert wird.
    • 2. Die Menge an Referenzspeicher, die für die Dekodierung der i-ten VOP erforderlich ist, ist definiert als die Anzahl von Makroblöcken in VOP ni, und wird mit einer konstanten Rate während der Dekodierungsdauer der VOP Ti beansprucht. Die Dekodierungsdauer der i-ten VOP Ti liegt zwischen si und ei, wobei si und ei der Dekodierungsstartzeitpunkt und der Dekodierungsendzeitpunkt der i-ten VOP sind und erhalten werden aus dem Schnittpunkt der Dekodiererverarbeitungssteigung und der Dekodierungszeitachse des VCV-Modells in 21.
    • 3. Zum Setzungszeitpunkt (oder Präsentationszeitpunkt in einem Nicht-Setzer-Dekodierer) τi einer I- oder P-VOP wird der gesamte Speicher, der der in Dekodierungsreihenfolge vorangehenden I- oder P-VOP zugewiesen wurde, sofort freigegeben.
    • 4. Zum Setzungszeitpunkt (oder Präsentationszeitpunkt in einem Nicht-Setzer-Dekodierer) τi einer B-VOP wird der gesamte Speicher, der dieser B-VOP zugewiesen ist, sofort freigegeben.
    • 5. Das Referenzspeichermodell erfordert, dass der VMV-Puffer niemals überläuft.
  • Die Pufferbelegung der Videospeicherprüfeinrichtung ist in 21 gezeigt. In 21 zeigt ein Pfeil A1 eine Stelle, an der der Referenzspeicher während der Dekodierungsperiode beansprucht wird, während der Pfeil A2 eine Stelle zeigt, an der der Referenzspeicher zum Setzungszeitpunkt oder Präsentationszeitpunkt in einem Nicht-Setzer-Dekodierer freigegeben wird.
  • Wechselwirkung zwischen VBV, VCV und VMV
  • Das Ratenpuffermodell definiert, wann der Bitstrom für die Dekodierung verfügbar ist und aus dem Puffer entfernt wird. Das Komplexitätsmodell definiert die Geschwindigkeit, mit der die Makroblöcke dekodiert werden. Das Referenzspeichermodell definiert die Menge an Referenzspeicher, die beansprucht und freigegeben wird. Offensichtlich ist es für den Videodekodierer vorteilhaft, möglichst weit im Voraus zu dekodieren. Dies wird jedoch durch die VBV und die VMV eingeschränkt. Der Dekodierer kann nur mit der Dekodierung beginnen, wenn die Bits für die Dekodierung verfügbar sind. Zur gleichen Zeit, zu der der Dekodierer den Bitstrom dekodiert, erzeugt er Makroblöcke, die den Referenzspeicher beanspruchen. Wenn er somit zu schnell dekodiert, wird der Referenzspeicher überlaufen.
  • Wenn andererseits der Dekodierer mit der Dekodierung zu spät beginnt, ist er nicht fähig, die Dekodierung rechtzeitig abzuschließen und der Bitstrom wird aus der VBV entfernt, bevor er verarbeitet werden kann. In ähnlicher Weise kann auch der für die Vorhersage des aktuellen VOP erforderliche Referenzspeicher aus der VMV entfernt werden.
  • Daher muss der Kodierer die Parameter vbv_puffer_größe, vbv_belegung und vcv_dekodierer_latenzzeit so einstellen, dass der resultierende Bitstrom keines der Modelle VBV, VCV und VMV verletzt. Neben der Einstellung dieser Parameter kann der KodiereR auch seine Kodierungsparameter adaptiv anpassen, so dass der resultierende BiTstrom die Modelle nicht verletzt.
  • Videopräsentationsmodell-Definition
  • Die Videopräsentationsprüfeinrichtung (VPV) ist ein Algorithmus zum Überprüfen eines Bitstroms, um zu prüfen, dass die Menge an Präsentationspuffer, die in einem Dekodierer benötigt wird, kleiner ist als eine gegebene Menge an Speicher in Einheiten von MB. Sie wird ferner verwendet, um die Geschwindigkeit des Setzers in Bezug auf die maximale Anzahl von MB/s zu beschränken.
  • Die VPV arbeitet in der gleichen Weise wie die VCV:
    • 1. Zum Setzungszeitpunkt der i-ten VOP τi wird die VOP im Präsentationspuffer platziert.
    • 2. Die Daten im Präsentationspuffer werden vom Setzer mit einer Rate äquivalent zur maximalen Anzahl von MB/s verbraucht.
    • 3. Bei τi + setzer_latenzzeit sollte die VOP gesetzt sein.
    • 4. Das Präsentationsspeichermodell fordert, dass der VPV-Puffer niemals überläuft.
  • Mit der dritten Ausführungsform der vorliegenden Erfindung ist der Kodierer fähig, die Komplexität der kodierten Bitströme, die er erzeugt, zu kontrollieren und zu regulieren. Gleichzeitig wird sichergestellt, dass keine Ströme erzeugt werden, die für den Dekodierer zu komplex sind. Die Wirkung dieser Erfindung besteht darin, dass die Auslegung der Dekodierer nicht mehr auf den ungünstigsten Szenario beruht, sondern auf dem allgemeinen Komplexitätsmaß beruht, das durch die Norm spezifiziert ist. Die Kosten dieser Produkte können daher reduziert werden, da keine Notwendigkeit für eine überzogene Konstruktion besteht.

Claims (10)

  1. Verfahren für die Regulierung der Rechen- und Speicheranforderungen eines komprimierten Video-Bitstroms, umfassend: Partitionieren eines Bildes in mehrere Makroblöcke; Kodieren der Makroblöcke mit verschiedenen Kodierungstypen in einen Bitstrom; Überwachen der Komplexität des Bitstroms; Berechnen einer Komplexitätskostenfunktion des Bitstroms auf der Grundlage des Kodierungstyps der Makroblöcke; Anwenden der Komplexitätskostenfunktion auf einen virtuellen Dekodierer; Anpassen eines Dekodierungszeitstempels des Bildes in Abhängigkeit von der Belegung des Speichers, der während der Dekodierung der Makroblöcke verbraucht wird, und der Komplexitätskostenfunktion; Herleiten eines Satzes von Gewichtungsfaktoren; und Anwenden der Gewichtungsfaktoren, um eine zukünftige Entscheidung über den Kodierungstyp zu regulieren.
  2. Verfahren nach Anspruch 1, wobei der virtuelle Dekodierer, um einen Überlauf entweder der Komplexität oder der Speicherbetriebsmittel zu verhindern, gemäß den folgenden Regeln arbeitet: a) eine Speichermenge für die Dekodierung, die eine aktuelle Videoobjektebene speichert, wird durch eine Anzahl von Makroblöcken in einer Videoobjektebene definiert und wird mit einer konstanten Rate zwischen den Dekodierungszeitstempelzeitpunkten der aktuellen Videoobjektebene und einer nächsten Videoobjektebene verbraucht; b) zu einem Präsentationszeitpunkt einer Intra-Videoobjektebene oder einer vorhergesagten Videoobjektebene wird ein Gesamtspeicher, der einer vorangehenden Intra-Videoobjektebene oder vorhergesagten Videoobjektebene in Dekodierungsreihenfolge zugewiesen worden ist, sofort freigegeben; c) zu einem Präsentationszeitpunkt einer bidirektionalen Videoobjektebene wird der Gesamtspeicher, der der bidirektionalen Videoobjektebene zugewiesen worden ist, sofort freigegeben; d) der Dekodierungszeitstempel der (n + I)-ten Videoobjektebene in Dekodierungsreihenfolge, der Dekodierungszeitstempeln+1, muss jederzeit kleiner oder gleich dem Präsentationszeitstempel der n-ten Videoobjektebene in Dekodierungsreihenfolge, dem Präsentationszeitstempeln sein; e) die Summe des verbrauchten Speichers darf zu keiner Zeit die maximal verfügbaren Speicherbetriebsmittel übersteigen; und f) ein Verhältnis einer Dekodierungskomplexität der aktuellen Videoobjektebene zu einer verfügbaren Dekodierungszeit, Dekodierungszeitstempeln+1 – Dekodierungszeitstempeln muss jederzeit kleiner sein als die pro Sekunde verfügbaren maximalen Komplexitätsbetriebsmittel.
  3. Verfahren nach Anspruch 1, wobei der Kodierungstyp des Makroblocks Intrakodierung, Vorhersagekodierung, bidirektionale Kodierung, Vorhersagekodierung mit Überlappungs-Blockbewegungs-Kompensation, Intrakodierung mit Grenzformdekodierung und Vorhersagekodierung mit Grenzformdekodierung umfasst, und wobei die Kostenfunktion eine normalisierte gewichtete Summe der Kosten der Dekodierung jedes im Bitstrom vorhandenen Kodierungstyps ist.
  4. Verfahren nach Anspruch 1, wobei der Dekodierungszeitstempel mehrerer Bilder gemäß den folgenden Regeln optimiert wird: a) der Dekodierungszeitstempel des (n + I)-ten Bildes in Dekodierungsreihenfolge, der Dekodierungszeitstempeln+1 muss jederzeit kleiner oder gleich dem Präsentationszeitstempel des n-ten Bildes in Dekodierungsreihenfolge, dem Präsentationszeitstempeln, sein; b) die Summe des verbrauchten Speichers darf zu keiner Zeit die verfügbaren maximalen Speicherbetriebsmittel übersteigen; und c) ein Verhältnis einer Dekodierungskomplexität des aktuellen Bildes zu einer verfügbaren Dekodierungszeit, Dekodierungszeitstempeln+1 – Dekodierungszeitstempeln muss jederzeit kleiner sein als die pro Sekunde verfügbaren maximalen Komplexitätsbetriebsmittel, so dass die Bilder in der kürzesten Zeit gemäß einer Verfügbarkeit von Rechen- und Speicherbetriebsmitteln im virtuellen Dekodierer dekodiert werden.
  5. Verfahren nach Anspruch 1, wobei der Bitstrom wenigstens Videobits und/oder andere Datenbits umfasst.
  6. Vorrichtung für die Regulierung der Rechen- und Speicheranforderungen eines komprimierten Video-Bitstroms, umfassend: Mittel zum Partitionieren eines Bildes in mehrere Makroblöcke, Mittel (301) zum Kodieren der Makroblöcke mit verschiedenen Kodierungstypen in einen Bitstrom; Mittel zum Überwachen der Komplexität des Bitstroms; Mittel (302) zum Berechnen einer Komplexitätskostenfunktion des Bitstroms auf der Grundlage des Kodierungstyps der Makroblöcke; Mittel zum Anwenden der Komplexitätskostenfunktion auf einen virtuellen Dekodierer (303); ein Mittel (402) zum Anpassen eines Dekodierungszeitstempels des Bildes in Abhängigkeit von der Belegung des Speichers, der während der Dekodierung der Makroblöcke verbraucht wird, und der Komplexitätskostenfunktion; Mittel (404) zum Herleiten eines Satzes von Gewichtungsfaktoren; und Mittel zum Anwenden der Gewichtungsfaktoren regelmäßig bei der zukünftigen Entscheidung über die Kodierungszeit.
  7. Vorrichtung nach Anspruch 6, wobei der virtuelle Dekodierer, um einen Überlauf entweder der Komplexität oder der Speicherbetriebsmittel zu verhindern, gemäß den folgenden Regeln arbeitet: a) eine Speichermenge für die Dekodierung, die eine aktuelle Videoobjektebene speichert, wird durch eine Anzahl von Makroblöcken in einer Videoobjektebene definiert und wird mit einer konstanten Rate zwischen den Dekodierungszeitstempelzeitpunkten der aktuellen Videoobjektebene und einer nächsten Videoobjektebene verbraucht; b) zu einem Präsentationszeitpunkt einer Intra-Videoobjektebene der einer vorhergesagten Videoobjektebene wird ein Gesamtspeicher, der einer vorangehenden Intra-Videoobjektebene oder vorhergesagten Videoobjektebene in Dekodierungsreihenfolge zugewiesen worden ist, sofort freigegeben; c) zu einem Präsentationszeitpunkt einer bidirektionalen Videoobjektebene wird der Gesamtspeicher, der der bidirektionalen Videoobjektebene zugewiesen worden ist, sofort freigegeben; d) Dekodierungszeitstempel der (n + I)-ten Videoobjektebene in Dekodierungsreihenfolge, der Dekodierungszeitstempeln+1, muss jederzeit kleiner oder gleich dem Präsentationszeitstempel der n-ten Videoobjektebene in Dekodierungsreihenfolge, dem Präsentationszeitstempeln, sein; e) Summe des verbrauchten Speichers darf zu keiner Zeit die maximal verfügbaren Speicherbetriebsmittel übersteigen; und f) Verhältnis einer Dekodierungskomplexität der aktuellen Videoobjektebene zu einer verfügbaren Dekodierungszeit, Dekodierungszeitstempeln+1 – Dekodierungszeitstempeln, muss jederzeit kleiner sein als die pro Sekunde verfügbaren maximalen Komplexitätsbetriebsmittel.
  8. Vorrichtung nach Anspruch 6, wobei der Kodierungstyp des Makroblocks Intrakodierung, Vorhersagekodierung, bidirektionale Kodierung, Vorhersagekodierung mit Überlappungs-Blockbewegungs-Kompensation, Intrakodierung mit Grenzformdekodierung und Vorhersagekodierung mit Grenzformdekodierung umfasst, und wobei die Kostenfunktion eine normalisierte gewichtete Summe der Kosten der Dekodierung jedes im Bitstrom vorhandenen Kodierungstyps ist.
  9. Vorrichtung nach Anspruch 6, wobei, um den Dekodierungszeitstempel mehrerer Bilder zu optimieren, die Vorrichtung gemäß den folgenden Regeln arbeitet: a) der Dekodierungszeitstempel des (n + I)-ten Bildes in Dekodierungsreihenfolge, der Dekodierungszeitstempeln+1 muss jederzeit kleiner oder gleich dem Präsentationszeitstempel des n-ten Bildes in Dekodierungsreihenfolge, dem Präsentationszeitstempeln, sein; b) die Summe des verbrauchten Speichers darf zu keiner Zeit die verfügbaren maximalen Speicherbetriebsmittel übersteigen; und c) ein Verhältnis einer Dekodierungskomplexität des aktuellen Bildes zu einer verfügbaren Dekodierungszeit, Dekodierungszeitstempeln+1 – Dekodierungszeitstempeln, muss jederzeit kleiner sein als die pro Sekunde verfügbaren maximalen Komplexitätsbetriebsmittel, so dass die Bilder in der kür zesten Zeit gemäß einer Verfügbarkeit von Rechen- und Speicherbetriebsmitteln im virtuellen Dekodierer dekodiert werden. d) Vorrichtung nach Anspruch 6, wobei der Bitstrom wenigstens Videobits und/oder andere Datenbits umfasst.
  10. Vorrichtung nach Anspruch 6, wobei der Bitstrom wenigstens Videobits und/oder andere Datenbits umfasst.
DE69930216T 1998-10-13 1999-10-12 Regelung des Rechen- und Speicheraufwands zur Datenfolgekompression in einem Videodekoder Expired - Lifetime DE69930216T2 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP32876798A JP2000125292A (ja) 1998-10-13 1998-10-13 ビデオデコーダの圧縮されたビットストリームの計算及び記録に必要な条件を制御する方法及び装置
JP32876798 1998-10-13
JP4140699 1999-02-19
JP4140699A JP2000244909A (ja) 1999-02-19 1999-02-19 圧縮ビデオのビットストリームの検定方法および装置

Publications (2)

Publication Number Publication Date
DE69930216D1 DE69930216D1 (de) 2006-05-04
DE69930216T2 true DE69930216T2 (de) 2006-12-07

Family

ID=26381014

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69930216T Expired - Lifetime DE69930216T2 (de) 1998-10-13 1999-10-12 Regelung des Rechen- und Speicheraufwands zur Datenfolgekompression in einem Videodekoder

Country Status (6)

Country Link
US (1) US6542549B1 (de)
EP (1) EP0994627B1 (de)
KR (1) KR100357233B1 (de)
CN (1) CN1198464C (de)
DE (1) DE69930216T2 (de)
ES (1) ES2259827T3 (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002016917A (ja) * 2000-06-30 2002-01-18 Toshiba Corp 動画像の時間情報復号方法
US7133449B2 (en) * 2000-09-18 2006-11-07 Broadcom Corporation Apparatus and method for conserving memory in a fine granularity scalability coding system
KR100394014B1 (ko) * 2001-06-23 2003-08-09 엘지전자 주식회사 영상 변환 부호화 장치
EP1262866A1 (de) * 2001-06-01 2002-12-04 STMicroelectronics Limited Verfahren und Schaltung zur Bestimmung der Gültigkeit von Informationen
US7116712B2 (en) * 2001-11-02 2006-10-03 Koninklijke Philips Electronics, N.V. Apparatus and method for parallel multimedia processing
AU2002353301A1 (en) 2001-11-21 2003-06-10 Canon Kabushiki Kaisha Method and device for determining at least one multimedia data encoding parameter
US9497452B2 (en) * 2002-01-22 2016-11-15 Broadcom Corporation System and method of transmission and reception of video using compressed differential time stamps
US7180943B1 (en) * 2002-03-26 2007-02-20 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Compression of a data stream by selection among a set of compression tools
KR20040007818A (ko) * 2002-07-11 2004-01-28 삼성전자주식회사 동영상 부호화를 위한 dct연산량 조절 방법 및 그 장치
US9948977B2 (en) * 2003-01-09 2018-04-17 Avago Technologies General Ip (Singapore) Pte. Ltd. System, method, and apparatus for determining presentation time for picture without presentation time stamp
AU2003280205A1 (en) * 2002-12-20 2004-07-14 Koninklijke Philips Electronics N.V. Method of recording a stream of audio-visual data
EP1582063B1 (de) * 2003-01-07 2018-03-07 Thomson Licensing DTV Gemischte inter-/intra-videokodierung von makroblock-partitionen
US7266147B2 (en) * 2003-03-31 2007-09-04 Sharp Laboratories Of America, Inc. Hypothetical reference decoder
JP3787633B2 (ja) * 2003-04-21 2006-06-21 独立行政法人情報通信研究機構 実時間コンテンツ編集システム
US7373004B2 (en) * 2003-05-23 2008-05-13 Silicon Integrated Systems Corp. Apparatus for constant quality rate control in video compression and target bit allocator thereof
US7535959B2 (en) * 2003-10-16 2009-05-19 Nvidia Corporation Apparatus, system, and method for video encoder rate control
JPWO2005076629A1 (ja) * 2004-02-09 2007-10-18 三洋電機株式会社 画像符号化装置及び撮像装置
WO2006004605A2 (en) * 2004-06-27 2006-01-12 Apple Computer, Inc. Multi-pass video encoding
JP4438059B2 (ja) * 2004-08-24 2010-03-24 キヤノン株式会社 画像再生装置及びその制御方法
US7447978B2 (en) * 2004-11-16 2008-11-04 Nokia Corporation Buffering packets of a media stream
WO2006059796A1 (ja) * 2004-12-02 2006-06-08 Sony Corporation 符号化装置および方法、並びにプログラム
KR100610900B1 (ko) * 2004-12-09 2006-08-09 엘지전자 주식회사 비디오 인코더의 동적인 제어 방법
US8358693B2 (en) 2006-07-14 2013-01-22 Microsoft Corporation Encoding visual data with computation scheduling and allocation
US8311102B2 (en) * 2006-07-26 2012-11-13 Microsoft Corporation Bitstream switching in multiple bit-rate video streaming environments
US20080025408A1 (en) * 2006-07-31 2008-01-31 Sam Liu Video encoding
US8340193B2 (en) * 2006-08-04 2012-12-25 Microsoft Corporation Wyner-Ziv and wavelet video coding
US8238442B2 (en) 2006-08-25 2012-08-07 Sony Computer Entertainment Inc. Methods and apparatus for concealing corrupted blocks of video data
US8699561B2 (en) * 2006-08-25 2014-04-15 Sony Computer Entertainment Inc. System and methods for detecting and handling errors in a multi-threaded video data decoder
US7456760B2 (en) * 2006-09-11 2008-11-25 Apple Inc. Complexity-aware encoding
US7388521B2 (en) * 2006-10-02 2008-06-17 Microsoft Corporation Request bits estimation for a Wyner-Ziv codec
US9325682B2 (en) * 2007-04-16 2016-04-26 Tailstream Technologies, Llc System for interactive matrix manipulation control of streamed data and media
US8340192B2 (en) * 2007-05-25 2012-12-25 Microsoft Corporation Wyner-Ziv coding with multiple side information
US8432970B1 (en) * 2007-12-14 2013-04-30 Marvell International Ltd. Block type selection
CN101500160B (zh) * 2008-01-28 2015-04-29 华为技术有限公司 一种码流标识方法、装置及编解码系统
US20090304086A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Method and system for video coder and decoder joint optimization
WO2010104432A1 (en) * 2009-03-13 2010-09-16 Telefonaktiebolaget Lm Ericsson (Publ) Methods of and arrangements for processing an encoded bit stream
US8897370B1 (en) * 2009-11-30 2014-11-25 Google Inc. Bitrate video transcoding based on video coding complexity estimation
US8976856B2 (en) 2010-09-30 2015-03-10 Apple Inc. Optimized deblocking filters
US8793393B2 (en) * 2011-11-23 2014-07-29 Bluespace Corporation Video processing device, video server, client device, and video client-server system with low latency thereof
KR20130058584A (ko) 2011-11-25 2013-06-04 삼성전자주식회사 복호화기의 버퍼 관리를 위한 영상 부호화 방법 및 장치, 그 영상 복호화 방법 및 장치
WO2013095627A1 (en) * 2011-12-23 2013-06-27 Intel Corporation Content adaptive high precision macroblock rate control
GB2501145A (en) * 2012-04-12 2013-10-16 Supercell Oy Rendering and modifying objects on a graphical user interface
GB2518909B (en) * 2013-12-16 2015-10-28 Imagination Tech Ltd Encoder adaptation
KR101732995B1 (ko) * 2015-02-10 2017-05-25 엔에이치엔엔터테인먼트 주식회사 스트리밍 레이턴시 최소화 시스템 및 이를 사용하는 방법
US10819951B2 (en) 2016-11-30 2020-10-27 Microsoft Technology Licensing, Llc Recording video from a bitstream
WO2020156175A1 (zh) * 2019-02-01 2020-08-06 浙江大学 位流检验方法、解码方法及其装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5038209A (en) 1990-09-27 1991-08-06 At&T Bell Laboratories Adaptive buffer/quantizer control for transform video coders
JPH04185172A (ja) * 1990-11-20 1992-07-02 Matsushita Electric Ind Co Ltd ディジタル画像信号の高能率符号化装置
EP0524317A4 (en) * 1991-02-08 1995-02-15 Tokyo Shibaura Electric Co Model forecasting controller
GB9424437D0 (en) * 1994-12-02 1995-01-18 Philips Electronics Uk Ltd Encoder system level buffer management
US5677969A (en) * 1995-02-23 1997-10-14 Motorola, Inc. Method, rate controller, and system for preventing overflow and underflow of a decoder buffer in a video compression system
US5742623A (en) * 1995-08-04 1998-04-21 General Instrument Corporation Of Delaware Error detection and recovery for high rate isochronous data in MPEG-2 data streams
GB9519923D0 (en) * 1995-09-29 1995-11-29 Philips Electronics Nv Motion estimation for predictive image coding
AU7560996A (en) 1995-11-08 1997-05-29 Novo Nordisk A/S Process for preparing a lignocellulose-based product, and product obtainable by the process
US5686963A (en) * 1995-12-26 1997-11-11 C-Cube Microsystems Method for performing rate control in a video encoder which provides a bit budget for each frame while employing virtual buffers and virtual buffer verifiers
US5719632A (en) * 1996-01-25 1998-02-17 Ibm Corporation Motion video compression system with buffer empty/fill look-ahead bit allocation
US6125146A (en) * 1996-06-05 2000-09-26 U.S. Philips Corporation Method and device for decoding coded digital video signals
FR2753330B1 (fr) * 1996-09-06 1998-11-27 Thomson Multimedia Sa Procede de quantification pour codage video

Also Published As

Publication number Publication date
CN1251004A (zh) 2000-04-19
EP0994627B1 (de) 2006-03-08
EP0994627A2 (de) 2000-04-19
DE69930216D1 (de) 2006-05-04
KR100357233B1 (ko) 2002-10-18
CN1198464C (zh) 2005-04-20
ES2259827T3 (es) 2006-10-16
KR20000034997A (ko) 2000-06-26
EP0994627A3 (de) 2000-07-26
US6542549B1 (en) 2003-04-01

Similar Documents

Publication Publication Date Title
DE69930216T2 (de) Regelung des Rechen- und Speicheraufwands zur Datenfolgekompression in einem Videodekoder
DE69815720T2 (de) Kodierung von bewegten bildern mit variabler bitrate in einem durchgang
DE69938093T2 (de) Steuerung der Datenrate für einen MPEG-Transcoder ohne a-priori Kenntnis des Bildtyps
DE69815159T2 (de) Kodierung von bewegten bildern mit globaler konstanter bitrate
EP1087625B1 (de) Digitales Transcodiersystem
DE69827548T2 (de) Anordnung zur Vorverarbeitung für MPEG-2-Kodierung
DE69837003T2 (de) Vorrichtung und verfahren zur optimierung der bitratensteurung in einem kodiersystem
US5949490A (en) Distributing video buffer rate control over a parallel compression architecture
CN100512432C (zh) 视频数据传输系统
US6522693B1 (en) System and method for reencoding segments of buffer constrained video streams
DE69831894T2 (de) Signalkodierung, -aufnahme und -übertragung
CN101325698B (zh) 仅帧内视频序列编码的比特率控制方法与装置
CN101461248B (zh) 自适应地确定用于视频图像编码的比特预算的方法和设备
DE4134999C2 (de) Kodiergerät für Bewegungsbilder
DE4228220A1 (de) Vorrichtung zur hierarchischen unterteilung von videosignalen
DE60211790T2 (de) Videokodierung mit konstanter Qualität
JP3872849B2 (ja) 動画像符号化装置
US20100104010A1 (en) Real-time rate-control method for video encoder chip
DE19882097B3 (de) Codiereinrichtung und Codierverfahren
US6654416B1 (en) Device and process for regulating bit rate in system for the statistical multiplexing of image streams coded according to MPEG2 coding
DE69933848T2 (de) Veränderung der bitrate
DE19935604A1 (de) Verfahren und Vorrichtung zum decodieren eines Bewegungsbildes
DE112005003628T5 (de) Verfahren und Vorrichtung zur Ratensteuerung
DE69433630T2 (de) Vorrichtung zur erzeugung eines asynchronen kontrollsignals
US7050497B2 (en) Process and device for the video coding of high definition images

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: PANASONIC CORP., KADOMA, OSAKA, JP