DE69815159T2 - Kodierung von bewegten bildern mit globaler konstanter bitrate - Google Patents

Kodierung von bewegten bildern mit globaler konstanter bitrate Download PDF

Info

Publication number
DE69815159T2
DE69815159T2 DE69815159T DE69815159T DE69815159T2 DE 69815159 T2 DE69815159 T2 DE 69815159T2 DE 69815159 T DE69815159 T DE 69815159T DE 69815159 T DE69815159 T DE 69815159T DE 69815159 T2 DE69815159 T2 DE 69815159T2
Authority
DE
Germany
Prior art keywords
segment
target
bit
bit rate
coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE69815159T
Other languages
English (en)
Other versions
DE69815159D1 (de
Inventor
Wai Yau HUI
Lye Hong OH
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.)
STMicroelectronics Asia Pacific Pte Ltd
Original Assignee
STMicroelectronics Asia Pacific Pte 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
Application filed by STMicroelectronics Asia Pacific Pte Ltd filed Critical STMicroelectronics Asia Pacific Pte Ltd
Application granted granted Critical
Publication of DE69815159D1 publication Critical patent/DE69815159D1/de
Publication of DE69815159T2 publication Critical patent/DE69815159T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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/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/124Quantisation
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/177Methods 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 group of pictures [GOP]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Description

  • Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich auf ein Verfahren und eine Vorrichtung zum Kodieren von Bewegtbildern. Insbesondere bezieht sich die vorliegende Erfindung auf ein Verfahren und eine Vorrichtung zur Durchführung einer variablen Bitratenkontrolle in einem digitalen Videokodierers, während eine bestimmte Gesamtbitrate beibehalten wird.
  • Ausgangspunkt
  • Eines der Hauptprobleme in der Industrie, welche sich mit digitaler Videoverarbeitung, -speicherung und -übertragung befasst, sind die großen Mengen an Daten die notwendig sind, um analoges Video in der digitalen Domäne darzustellen. Demgemäß wird häufig eine digitale Kompression an Bewegtbilder angelegt, um eine Reduktion der benötigten Übertragungsbandbreite oder Speichergröße zu erreichen. Unterschiedliche solche Kompressionstechniken können aus den ISO/IEC MPEG Standards, dem ISO/IEC 11172-3 (MPEG-1), dem ISO/IEC 13818-2 (MPEG-2) und dem MPEG-2 TM5 (Test Model 5) abgeleitet werden, welche durch die Moving Picture Experts Group der International Organization for Standardization entwickelt wurden. Die Offenbarungen dieser Standarddokumente werden hier ausdrücklich durch Bezugnahme in diese Beschreibung aufgenommen. MPEG-1 ist der Kompressionsstandard, der bei der VideoCD verwendet wird, während MPEG-2 der Videokompressionsstandard ist, der bei DVD und vielen digitalen Übertragungssystemen verwendet wird.
  • Die MPEG Standards spezifizieren nur die Syntax der komprimierten Bitströme und Verfahren zur Dekodierung. Das Verfahren der Implementierung in dem Kodierer wird dem Entwickler überlassen, und jegliche Form von Kodierer kann verwendet werden, solange der sich ergebende Bitstrom mit der spezifizierten Syntax übereinstimmt.
  • In bestimmten Anwendungen, wie z. B. einer Videospeichereinheit (Recorder), ist es möglich eine variable Bitraten (VBR) Kodierung zu verwenden. Ein VBR- Kodierer ist in der Lage seiner Ausgangsbitrate über einen breiteren Bereich zu variieren als ein CBR-Kodierer und dies würde einen Ausgang bzw. ein Ausgangssignal erzeugen, das eine konstantere visuelle Qualität erzeugt. Ein Beispiel eines VBR-Kodierers ist in dem U.S. Patent Nr. 5,650,860 mit dem Titel „Adaptive Quantization" beschrieben. Um eine maximal erlaubte Bitrate durch die Zielspeichereinrichtung beizubehalten, sowie eine Gesamtbitrate, welche ermöglicht, dass eine Eingangsbildsequenz in einem definierten Speicherraum gespeichert wird, verwenden solche VBR-Kodierer mehrere Kodierdurchläufe.
  • Beim ersten Kodierdurchlauf wird die Bitverwendungsinformation für jede Szene oder jedes Bild in der Eingangssequenz bestimmt. Dies wird durchgeführt durch Fixieren der Referenzquantisierungsschrittgröße und Sperren der VBV-Steuerung. Die bestimmte Bitverwendungsinformation wird dann verwendet zum Erzeugen eines Bitbudgets für jede Szene oder jedes Bild, so dass eine gesamte Zielanzahl von Bits zum Kodieren der Sequenz festgelegt ist und die maximale Bitrate nicht überstiegen bzw. verletzt wird. In den Fällen, in denen die erhaltene Bitverwendungsinformation nicht nahe an der liegt, die notwendig ist zum Erzeugen des Bitbudgets müssen Schritte von dem ersten Kodierdurchlauf wiederholt werden und zwar mit einer eingestellten bzw. angepassten Referenzquantisierungsschrittgröße. Die Eingangssequenz wird in einem finalen Durchlauf kodiert unter Verwendung der erzeugten Bitbudgetinformation, um die Zielbits oder die Gesamtbitrate zu erreichen.
  • Mehrfachdurchlauf-VBR-Kodierer erfordern einen großen Speicher für die Zwischen-Bitverwendungsinformation und große Berechnungsanforderungen für die zusätzlichen Durchläufe und die Bitbudgeterzeugung. Ferner kann ein solcher VBR-Kodierer Eingangssequenzen nicht in Echtzeit verarbeiten, wie es in bestimmten Anwendungen notwendig wäre.
  • Die EP-A-0 804 035 zeigt ein Verfahren und eine Vorrichtung zur digitalen Kompressionskodierung eines Bildes, wie beispielsweise eines Videosignals und zum Steuern der Quantisierungsbreite beim Kodieren und/oder Steuern der Anzahl der erzeugten Bits. Das Verfahren zum Komprimieren und Kodieren eines Bildes wird implementiert in einer Bewegtbildkodiervorrichtung, die eine Steuereinheit aufweist zum Einstellen der Zielanzahl von Bits abhängig von dem Ergebnis der Teilung des Fehlers zwischen der Zielanzahl von Bits entsprechend der Zielbitrate und der Anzahl von erzeugten Bits, die notwendig sind zum Kodieren von vorhergehenden Bildsegmentgruppen durch eine Zahl zwei oder größer, und Steuern des Quantisierungsparameters (Q-Skala) zum Kodieren der Bildsegmentgruppen in Abhängigkeit von eingestellter Zielanzahl von Bits.
  • Die Erfindung
  • Gemäß der vorliegenden Erfindung ist ein Verfahren zum Steuern der Bitzuordnung in einem Bewegtbildkodierer sowie ein Bewegtbildkodierer gemäß den Ansprüchen 1 bzw. 9 vorgesehen.
  • Die vorteilhaften Effekte der vorliegenden Erfindung ermöglichen das Vorsehen von z. B. einer Einzeldurchlauf-Echtzeit Kodierung für Bewegtbilder mit variabler Bitrate; eine variable Bitratekodierung von Bewegtbildern, so dass die Änderung der kodierten Bildqualität von einer Szene zu einer anderen minimiert wird; und einen Echtzeit variablen Bitratenkodieralgorithmus, der eine konstante Gesamtbitrate erzeugt.
  • Insbesondere kodieren Ausführungsbeispiele der vorliegenden Erfindung eine Eingangsbewegtbildsequenz, und zwar ein Segment zu einem Zeitpunkt gemäß einer Zielkodierqualität, die durch eine Zielsegmentbitrate bestimmt wird. Die Zielsegmentbitrate eines derzeitigen bzw. aktuellen Segments wird vorzugsweise abgeleitet aus den Differenzen zwischen den Zielsegmentbitraten und den tatsächlichen Kodierbitraten von dem vorhergehenden oder einigen vorhergehenden kodierten Segmenten.
  • Um eine gleichmäßige Kodierqualität für alle Bilder innerhalb eines Segments sicherzustellen, wird die tatsächliche Zielbitrate zum Kodieren der Bilder variabel gemacht und zwar gemäß der Komplexität der Szene sowie der Zielkodierqualität des Segments.
  • Wenn die Zielkodierqualität jedes Segments modifiziert wird basierend auf den Differenzen zwischen den Ziel- und Ist-Bitraten der vorhergehenden oder einiger vorhergehender kodierter Segmente, dann wird die Veränderung der Zielkodierqualität von Segment zu Segment relativ glatt bzw. gleichmäßig gemacht im Vergleich zu einem Kodierer mit konstanter Bitrate und ferner wird die Gesamtbitrate der Kodierung konstant gehalten.
  • Gemäß der vorliegenden Erfindung wird eine Bewegtbildsequenz in Segmente unterteilt. Die Größe jedes Segments kann in geeigneter Weise bestimmt werden. Jedes Segment wird kodiert mit einer Zielkodierqualität, die aus ihrer Zielsegmentbitrate abgeleitet wird. Ein variabler Bitraten (VBR) Kodierer wird verwendet zum Kodieren des Segments gemäß seiner Zielkodierqualität.
  • Die Zielsegmentbitrate eines anfänglichen Segments wird bestimmt aus einer bedienerdefinierten Zielgesamtbitrate. Nach dem Kodieren des Segments wird die Differenz zwischen der verwendeten tatsächlichen bzw. Ist-Bitrate und der Ziel- bzw. Soll-Segmentbitrate erhalten. Diese Differenz wird an die nächste oder die nächsten paar zu kodierenden Segmente weitergeleitet. Dieser Prozess wird für jedes Segment wiederholt, und daher wird für jedes nachfolgende Segment eine neue Zielsegmentbitrate bestimmt aus der bedienerdefinierten Ziel-Gesamtbitrate und den Differenzen zwischen den Zielsegmentbitraten und den tatsächlichen bzw. Ist-Bitraten der vorhergehenden oder einiger vorhergehender Segmente.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird nachfolgend in größerer Einzelheit anhand eines Beispiels beschrieben, wobei auf die Zeichnungen Bezug genommen wird; in den Zeichnungen zeigt:
  • 1 ein Blockdiagramm eines konstanten Bitratenkontrollers basierend auf TM5;
  • 2 eine Darstellung der Differenz zwischen einer Ziel-Bitzuordnung und einem tatsächlichen Bitverbrauch auf einem Makroblockniveau für einen Frame bzw. ein Einzelbild (ein P-Bild wird für diesen Fall ausgewählt), wobei dj die virtuelle Pufferfüllung bzw. der Pufferfüllgrad zu einem bestimmten Zeitpunkt ist;
  • 3 ein Blockdiagramm eines variablen Bitratenkodierers mit konstanter Gesamtbitratensteuerung;
  • 4 ein Blockdiagramm der konstanten Gesamtbitratensteuerung;
  • 5 eine Darstellung davon, wie die Differenz in der Bitzählung bzw. Zahl für das letzte Segment über die nächsten vier Segmente neu verteilt wird (z. B. f(m) = 1/4); und
  • 6 ein Flussdiagramm eines VBR-Algorithmus mit konstanter Gesamtbitratensteuerung.
  • Detaillierte Beschreibung der bevorzugten Ausführungsbeispiele
  • In einem Standard MPEG kompatiblen Videokodierer wird eine Sequenz von Bewegtbildern (z. B. Video) in den Kodierer eingegeben, in dem sie mit einer Benutzer definierten Zielbitrate komprimiert wird. Die Zielbitrate wird eingestellt gemäß der Bandbreite des Kommunikationskanals, in dem das komprimierte Video übertragen werden soll, oder der Kapazität des Speichermediums, auf dem die komprimierte Videosequenz gespeichert werden soll. Ein typischer MPEG-Kodierer beinhaltet eine Bewegungsschätzung/-vorhersage, eine Inter/Intraklassifizierung, eine diskrete Kosinustransformations-(DCT)Berechnung, eine Quantisierung, ein Zickzackscannen, eine Kodierung mit variabler Länge und einer Ratensteuerung.
  • Mehrere unterschiedliche Formen von Kodierung können verwendet werden in Abhängigkeit von dem Charakter der Eingangsbilder, die als I-Bilder, P-Bilder, oder B-Bilder bezeichnet werden. Die I-Bilder sind intrakodierte Bilder, welche hauptsächlich für einen freien bzw. Zufallszugriff oder einen Szenenupdate bzw. eine Szenenaktualisierung verwendet werden. Die P-Bilder verwenden eine vorwärtsbewegungsvorhersagende Kodierung mit Bezugnahme auf zuvor kodierte I- oder P-Bilder (Ankerbilder), und die B-Bilder verwenden sowohl eine vorwärts- als auch rückwärtsbewegungsvorhersagende/interpolative Kodierung mit Bezug auf zuvor kodierte I- oder P-Bilder. Ferner wird eine Gruppe von Bildern (GOP = Group of Pictures) in kodierter Reihenfolge gebildet, beginnend mit einem I-Bild und endend mit dem Bild vor dem nächsten I-Bild in der Sequenz.
  • Die Bilder werden in kleinere und nicht-überlappende Blöcke von Pixeldaten partitioniert, die Makroblöcke (MBs) genannt werden und zwar vor dem Kodieren. Jeder MB von einem P- oder B-Bild wird einem Bewegungsschätzungsvorgang ausgesetzt, bei dem Vorwärtsbewegungsvektoren und Rückwärtsbewegungsvektoren in dem Fall eines B-Bild MBs, bestimmt werden unter Verwendung von Referenzbildern aus einem Frame bzw. Einzelbildspeicher bzw. Zwischenspeicher. Der Zielmakroblock in dem derzeitigen Bild wird mit einem Satz von versetzten Makroblöcken in dem Referenzbild verglichen, und der Makroblock, der am Besten mit dem Zielmakroblock übereinstimmt, wird als der vorhergesagte Makroblock verwendet. Die Position dieses vorhergesagten Makroblocks wird spezifiziert durch einen Satz von Vektoren, die als Bewegungsvektoren bekannt sind, welche die vertikale und horizontale Versetzung zwischen dem Ziel und vorhergesagten Makroblock beschreiben. Für ein B-Bild ist der Prozess ähnlich mit der Ausnahme, dass es zwei Referenzbilder: Ankerbilder gibt, und zwar das dem B-Bild direkt vorhergehende und das nachfolgende.
  • Mit den bestimmten Bewegungsvektoren wird eine Bewegungskompensation durchgeführt, bei der der Intra- oder Interbild Vorhersagemodus des MB zunächst bestimmt wird gemäß der Genauigkeit der aufgefundenen Bewegungsvektoren gefolgt durch eine Erzeugung des notwendig vorhergesagten MBs. I-Bilder sind immer intrakodiert während für P- und B-Bilder eine Entscheidung getrofffen wird, ob eine Intra- oder Interkodierung verwendet wird (und zwar auf Makroblockniveau), wobei die Entscheidung in Abhängigkeit davon getroffen wird, welches Verfahren zu einer effizienteren Kodierung führt.
  • Eine Transformation des Makroblocks unter Verwendung einer DCT wird dann an den 8x8 Pixelblöcken innerhalb des Makroblocks durchgeführt. Für eine Intrakodierung werden die tatsächlichen Bilddaten kodiert, während für die Interkodierung der Vorhersagefehler kodiert wird. Dem folgt ein Quantisierungsprozess der DCT-Koeffizienten, der eine Quantisierungsmatritze bzw. -matrix und eine Quantisie rungsschrittgröße beinhaltet. Die quantisierten Koeffizienten werden dann Lauflängen kodiert mit Kodes mit variabler Länge.
  • Die resultierende Bitverwendung und statistische Daten werden dann an ein Ratensteuermodul weitergeleitet, das verwendet wird zum Zuordnen einer Zielanzahl von Bits, die verwendet werden zum Kodieren jedes Bildes und jedes Makroblocks innerhalb des Bildes. Dies ist ein wichtiges Modul in dem Kodierer, da es eine Hauptrolle beim Beibehalten der Qualität der kodierten Bilder spielt.
  • Die Ratenkontrolle in dem MPEG-2 Test Model 5 (TM5) weist die Schritte der Zuordnung der Zielmenge an Bits zum Kodieren jedes Bildes, das Ableiten der Referenzquantisierungsparameter (Qj), die an jedem Makroblock in einem Bild verwendet werden und das Modulieren des Qj basierend auf dem Aktivitätsmaskierungsniveau der umgebenden Blöcke des entsprechenden Makroblocks auf, um die modulierte Quantisierungsschrittgröße (Mquant) zu erhalten, die verwendet wird zum Quantisieren des Makroblocks.
  • Ein Ziel dieser Ratensteuerung ist das Sicherstellen, dass alle Bilder ein ähnliches oder gleiches Qualitätsniveau beibehalten. Es wird angenommen, dass die subjektive Qualität eines einzelnen kodierten Bildes mit einer einzelnen Zahl V qualifiziert werden kann, die beschrieben wird durch den Faktor K/Q wobei K eine Konstante ist, die einem Bildtyp eigen ist und Q die Quantisierungsschrittgröße für das zu kodierende Bild ist. D. h. die Ratensteuerung wird versuchen, die folgende Gleichung zu erfüllen:
    Figure 00070001
    Die Zusätze i, p, b beziehen sich auf I-, P- und B-Bildtypen. Die Parameter Ki, Kp und Kb sind experimentell bestimmte Konstanten für alle I-, P- bzw. B-Bilder und Ki ist üblicherweise auf den Wert von 1 normalisiert.
  • 1 illustriert ein Blockdiagramm eines bekannten Ausführungsbeispiels des TM5 Ratenkontrollers bzw. der Steuerung. Eine Gruppe von Bildern (GOP) ist eine Sammlung von einem I-Bild, einigen P-Bildern und B-Bildern und dient als eine Grund-Zugriffseinheit mit dem I-Bild als Eintrittspunkt, um einen zufälligen Zugriff zu ermöglichen. Der Kontroller bzw. die Steuerung weist drei Niveaus der Verarbeitung auf: ein GOP-Niveau 111, ein Bildniveau 110, und ein Makroblock (MB) Niveau 109. Zu Beginn jeder neuen GOP wird auf dem GOP-Niveau 111 durch einen GOP-Bitzuordnungsprozess 100 die Gesamtzahl von Bits (Rgop) berechnet, die der GOP zugeordnet wird. Der Wert Rgop ist vorgegeben durch:
    Figure 00080001
    wobei die bit_rate, die Zielbitrate zum Kodieren der Bildsequenz ist,
    die bild_rate, die Anzahl von Bildern, die pro Sekunde kodiert wird ist, und
    N die Gesamtanzahl von kodierten Bildern in der GOP ist.
  • Die verbleibenden Bits (R) für die GOP werden auf dem Bildniveau 110 bestimmt durch einen Bestimmungsprozess 106 für die verbleibenden bzw. Restbits. Der Wert von R wird auf den neuesten Stand gebracht gemäß:
    R = R – S wobei S die Anzahl von verwendeten Bits durch zuvor kodierte Bilder in der GOP ist, und
    R = R + Rgop für eine neue GOP ist.
  • Mit dem berechneten Wert von R berechnet dann ein Bildbitzuordnungsprozess 101 auf dem Bildniveau 110 einen Zielbitwert (T), der dem derzeitigen Bild zugeordnet ist, und zwar gemäß den nachfolgenden Gleichungen für entsprechende I-, P- oder B-Bildarten:
    Figure 00090001
    wobei
    Tj, Tp, Tb die Zielbits für das nächste Bild (I, P, B) darstellen,
    Nb, Np die verbleibende Anzahl von Bildern (P, B) in der GOP darstellen,
    Xj, Xp, Xb globale Komplexitätsmaße darstellen und ein Maß der tatsächlichen Anzahl von erforderlichen Bits zum Darstellen des Bildes (ohne Kompression) angeben, und Xi = Qi × Si Xp = Op × Sp Xb = Qb × Sb wobei Si, Sp, Sb die tatsächliche Anzahl von verwendeten Bits zum Kodieren der vorhergenden I/P/B Frames bzw. Einzelbilder ist.
    K ist eine Konstante (z. B. 8).
  • Nach dem Berechnen der Zielbits für das Bild wird eine Referenzquantisierungsschrittgröße (Qj) Berechnung 102 auf dem MB-Niveau 109 durchgeführt für jeden Makroblock innerhalb des Bildes. Der Wert von Qj wird berechnet basierend auf der bestimmten Zielbitzuordnung (Ti, Tp, oder Tb) und einem Puffer bzw. Zwischenspeichervollheitswert (dj). Jeder der drei Bildtypen besitzt einen virtuellen Puffer bzw. Zwischenspeicher der damit assoziiert ist und diese Zwischenspeicher werden nach dem Kodieren jedes Makroblocks des Bildtyps auf den neuesten Stand gebracht und zwar gemäß der folgenden Gleichungen:
    Figure 00100001
    wobei do die anfängliche virtuelle Zwischenspeicherfüllung bzw. Vollheit ist,
    dj die virtuelle Zwischenspeicherfüllung beim Kodieren des jten MB ist,
    Bj-1 die Anzahl der tatsächlich verbrauchten Bits bis und einschließlich des
    (j-1)ten MB ist und zwar vorgesehen durch einen Updatevorgang 105 eines virtuellen Zwischenspeichers, und
    MB_Cnt die Anzahl von MBs in dem Bild ist.
  • Die Gleichungen (5) bis (7) verfolgen effektiv die Differenzen zwischen der tatsächlichen Anzahl von verwendeten Bits und den zugeordneten Zielbits, und diese Differenzen werden dann addiert zu den jeweiligen virtuellen Zwischenspeichern, die verwendet werden zum Berechnen Qj. Dies erlaubt der Ratensteuerung die Bitzuordnung zu steuern basierend auf dem Verbrauchsmuster des Bildes. Qj wird berechnet aus der Zwischenspeicherfüllung über die Gleichung: Qj = (dj × 31)/r = dj × Konstante (8) wobei r ein Reaktionsparameter = 2 × bit_rate/bild_rate ist.
  • Der Reaktionsparameter ist, wie der Name impliziert, ein Faktor, der die Empfindlichkeit des Algorithmus aus einer Veränderung in dj heraus steuert. Ein großes r wird bewirken, dass die Reaktion langsamer ist, was bewirkt, dass die Zielbits und die tatsächlichen Bits stark voneinander abweichen, aber es bringt eine allmählichere Änderung der Veränderungsrate beim Bitverbrauch mit sich, was für Szenenwechsel vorteilhaft ist. Andererseits bewirkt ein kleines r, dass die Steuerung stärker auf Änderungen anspricht, was dazu führt, dass die Zielbitwerte und die tatsächlichen Bitwerte näher aneinander liegen, aber ein schnelleres Ansprechverhalten bedeutet auch eine weniger graduelle Änderung während eines Szenenwechsels, was nicht wünschenswert ist. Eine graphische Darstellung, welche die Differenz zwischen der Zielbitzuordnung und der tatsächlichen Bitzuordnung innerhalb eines Rahmens bzw. Einzelbildes zeigt, ist in 2 dargestellt.
  • Der Wert von Qj wird ferner modifiziert durch einen Aktivitätsmaskierungsprozess 103, um die modulierte Quantisierungsschrittgröße Mquant zu ergeben. Üblicherweise wird die räumliche Maskierungsfähigkeit des Makroblocks verwendet zum Platzieren eines Korrekturfaktors auf den berechneten Qj Wert. Die räumliche Maskierungsfähigkeit ist die Fähigkeit, Rauschen bzw. Störungen gegenüber visuellen Systemen für den Menschen zu maskieren. Typischerweise wird ein Bereich mit einer komplexen Textur einen größeren Korrekturfaktor besitzen als ein Bereich mit einer einfachen Textur, somit gilt: Mquant = N_actj × Qj (9) wobei N_actj der normalisierte Wert des Makroblocksaktivitätsniveaus ist und einen Wert zwischen 0,5 und 2 besitzen kann.
  • Mit dem berechneten Mquant wird der Makroblockkodiervorgang 104 durchgeführt, indem der Makroblock gemäß den MPEG Standards komprimiert wird.
  • Am Ende der Kodierung eines Bildes wird die Bitzählung bzw. die Bitanzahl S, die verwendet wurde zum Kodieren des Bildes, zur Bildung verwendet zur Durchführung eines VBV-Checks 107 und zum Berechnen der verbleibenden Bits R für die derzeitige GOP und zwar während des Bestimmungsprozesses 106 für verbleibende Bits. Der VBV (Videozwischenspeicherverifizierer (video buffer verifier)) ist ein virtueller Zwischenspeicher, der den Status des Dekodierzwischenspeichers emuliert. Der VBV-Check (107) wird durchgeführt zum Detektieren jedes Überschießens oder Unterschießens des Dekodierzwischenspeichers bezüglich der Zielbitrate.
  • Beim Kodieren einer Bildsequenz mit variierender Szenenkomplexität ist ein Kodierer mit konstanter Bitrate (CBR) nicht in der Lage, die Bitrate gemäß der Szenenkomplexität zu variieren. Dies hat zur Folge, dass simplen Szenen mehr Bits als notwendig zugewiesen werden, während komplexen Szenen nicht ausreichend Bits zugewiesen werden, und dies hat daher eine Veränderung der visuellen Ausgabequalität zwischen Szenen mit unterschiedlichen Komplexitäten zur Folge.
  • Ein Ausführungsbeispiel einer Bewegtbildkodiervorrichtung gemäß der vorliegenden Erfindung ist in Blockdiagrammform in 3 dargestellt. Die Kodiervorrichtung ist, wie dargestellt, auf vier Niveaus dargestellt, und zwar entsprechend den Verarbeitungsstufen in dem Bitratensteuerprozess, nämlich einem Segmentniveau 313, einem GOP-Niveau 312, einem Bildniveau 311 und einem Makroblock (MB) Niveau 310. Eine Eingangsbewegtbildsequenz wird in einer solchen Art und Weise kodiert, dass im Mittel oder am Ende einer Kodierung die Ausgangsbitrate in der Nähe einer Bediener definierbaren Zielgesamtbitrate (gesamt_BR) 320 liegt. Die Eingangssequenz wird in Segmente und Gruppen von Bildern (GOP) aufgeteilt. Der Zweck eines Segments ist die Überwachung der Ausgangsbitrate bezüglich der gesamt_BR, und der Zweck der GOP liegt hauptsächlich im Ermöglichen eines zufälligen Zugriffs. Ein Segment kann definiert werden, dass es eine Anzahl von GOPs enthält und zwar in Abhängigkeit von den Anforderungen hinsichtlich der Häufigkeit der Überwachung der Ausgangsbitrate. Jede GOP weist wenigstens ein I-Bild und optional ein oder mehrere P-Bilder und/oder B-Bilder auf. Jedes Bild ist in Makroblöcke aus Pixeln für die Kodierung aufgeteilt. Somit kann ein Ver fahren der Ratensteuerung gemäß der vorliegenden Erfindung Prozesse auf dem Segmentniveau 313, dem GOP-Niveau 312, dem Bildniveau 311 und dem schlußendlich Makroblockniveau 310 enthalten.
  • Mit einer neuen Gruppe von Bildern berechnet ein GOP-Bitzuordnungsprozessor 300 die Anzahl von Bits, die der derzeitigen GOP zugeordnet sind (R'gop) und zwar wie folgt:
    Figure 00130001
    wobei
    Ngop die Anzahl von Bildern in der GOP ist,
    bild_rate die Anzahl von kodierten Bildern pro Sekunde ist und
    BR eine Zielbitrate ist.
  • Die Zielbitrate BR wird bestimmt für jedes Bild oder eine Vielzahl von Bildern durch einen Bildrateneinstellprozessor 306, der nachfolgend beschrieben wird. Eine verbleibende Anzahl von Bits (R') für die GOP wird bestimmt auf dem Bildniveau 311 durch einen Restbitbestimmungsprozessor 308, der die folgenden Schritte ausführt:
    • (a) vor dem Kodieren des ersten Bildes in einer GOP, Einstellen von R' mit einem neuen Rgop: R' + = R'gop und dann Einstellen von BRalt = BR;
    • (b) wenn das zu kodierende Bild nicht das erste Bild einer GOP ist und eine neue Zielbitrate BR bestimmt wurde, dann Einstellen von R' mit der neuen BR gemäß:
      Figure 00130002
      wobei N die verbleibende Anzahl von Bildern in der derzeitigen GOP ist;
    • (c) und Entfernen der Anzahl von verwendeten Bits durch das zuletzt kodierte Bild S aus dem Restbitwert R', und somit gilt: R' = R' – S
  • Das berechnete R' wird dann an einen Bildbitzuordnungsprozessor 301 weitergeleitet zum Berechnen der Zielbits (T), die einem derzeitigen zu kodierenden Bild zugewiesen sind. Z. B. können hierzu die oben genannten Gleichungen (2), (3) und (4) für diesen Zweck verwendet werden, wobei die Parameter Kp, Kb, Np, Nb und bild_typ geliefert werden. Es sei bemerkt, dass das untere Limit von bit_rate/(8*bild_rate) nur optional ist und eingestellt werden kann, wenn es notwendig ist.
  • Auf dem Makroblock (MB) Niveau 310 berechnet ein Referenzquantisierungsschrittgrößenberechnungsprozessor 302 eine Referenzquantisierungsschrittgröße Qj für jeden MB unter Verwendung einer berechneten Zielbitzuordnung T und eines Bitverwendungsparameters B bestimmt durch einen virtuellen Zwischenspeicher-Updateprozessor 305. Ein Beispiel eines Verfahrens zum Berechnen von Qj für den jten MB des derzeitigen Bildes wird repräsentiert durch:
    Figure 00140001
    wobei K1 und K2 Konstanten sind (z. B. 31 bzw. 2),
    BR die bestimmte Zielbitrate ist,
    bild_rate die Anzahl von kodierten Bildern pro Sekunde ist, und
    Dj eine virtuelle Zwischenspeicherfüllung bzw. Füllgrad ist.
  • Die virtuelle Zwischenspeicherfüllung des jten MB wird bestimmt durch:
    Figure 00150001
    wobei D0 eine anfängliche Zwischenspeicherfüllung ist, vor dem Kodieren des derzeitigen Bildes, d. h. Dj zum Ende des vorhergehenden Bildes,
    B die Bitverwendungsinformation ist, die durch den virtuellen Zwischenspeicher-Updateprozessor 305 geliefert wird, d. h. die Bits, die verwendet werden zum Kodieren des ersten MB bis zum (j-k3)ten MB,
    MB_Cnt die Gesamtanzahl von MBs in dem derzeitigen Bild ist, und
    K3 eine Konstante ist (z. B. 1).
  • Drei unabhängige derzeitige bzw. aktuelle und anfängliche virtuelle Zwischenspeicherfüllungswerte (D i / j, D p / j, D b / j, D i / 0, D p / 0, D b / 0) können für die drei Bildtypen (I-Bilder, P-Bilder und B-Bilder) beibehalten werden. Das berechnete Qj kann auch ferner skaliert werden durch einen Aktivitätsmaskierungsprozessor 303 gemäß einem Maskierungsfaktor, der bestimmt wird durch die Umgebungsaktivitätsniveaus des MB, um eine schlußendliche bzw. finale Quantisierungsschrittgröße, Mquant, zu bilden, für die Kodierung des derzeitigen MB. Ein Verfahren zur Maskierungsfaktorbestimmung kann in dem zuvor genannten MPEG-2 TM5 gefunden werden.
  • Eine Makroblockkodierung (304) wird dann durchgeführt zum Kodieren des aktuellen MB. Ein Makroblockkodierprozessor 304 kann z. B. Verfahren gemäß dem MPEG-1 oder MPEG-2 Videokodierstandard verwenden. Solche Kodierverfahren umfassen eine notwendige Bewegungskompensation, eine diskrete Kosinustransformation, eine Quantisierung mit der bestimmten Quantisierungsschrittgröße und eine Lauflängenkodierung mit Kodes mit variabler Länge. Die Verfahren umfassen auch notwendige Kodierungsprozesse, so dass die Bewegungskompensation durchgeführt werden kann. Die Anzahl von verwendeten Bits durch den Makroblockkodierprozessor 304 zum Kodieren jedes MB wird an den virtuellen Zwischenspeicher-Updateprozessor 305 weitergeleitet.
  • In Anwendungen, in denen eine maximale und/oder minimale Bitrate für die Kodierung beibehalten werden muss, wird ein VBV Überprüfungsprozessor 307 verwendet. Durch den Bediener definierbare maximale und/oder minimale Bitraten (max/min BR) werden bei 321 in den VBV Überprüfer 307 eingegeben, und es wird ein Verfahren für die VBV Überprüfung gemäß den MPEG Standards verwendet, um die Bitverwendungsinformation von dem virtuellen Zwischenspeicher 305 zu untersuchen, und notwendige Korrekturen werden durchgeführt, um eine Kompatibilität sicherzustellen, und dass die Ausgangsbitrate innerhalb der definierten max/min BR liegt.
  • Am Ende der Kodierung eines Bildes oder einer Vielzahl von Bildern wird eine Bitrateneinstellung durch den Bitrateneinstellprozessor 306 durchgeführt zum Vorsehen jeglicher notwendiger Korrektur der aktuellen Zielbitrate BR. Die Korrektur basiert auf einer Zielkodierqualität, die durch einen Zielsegmentqualitätseinstellprozessor 309 vorgegeben wird, und eine sich ergebende Kodierqualität eines bzw. mehrerer zuvor kodierter Bilder, so dass die Gesamtkodierqualitäten von Bildern innerhalb eines Segments relativ nahe an einer Zielkonstante liegen. Die sich ergebende Kodierqualität kann bestimmt werden durch den Mittelwert der Referenzquantisierungsschrittgröße (d. h. durchschnitt_Qj) von zuvor kodierten Bildern bzw. eines Bildes. Ein Verfahren der Zielbitraten (BR) Bestimmung kann aus einem Ratenquantisierungsmodell abgeleitet werden, das gegeben ist durch:
    Figure 00160001
    wobei aktuell_BR eine aktuell geschätzte Bitrate ist, oder aktuell_BR = Si + Np × Sp + Nb × Sb, wobei Si, Sp, Sb verwendete Bits durch zuvor kodierte I-, P- bzw. B-Bilder sind,
    Np, Nb die Gesamtanzahl von P- und B-Bildern in der aktuellen GOP ist,
    durchschnitt_Qj der Durchschnittswert von Qj von zuvor kodierten Bildern bzw. einem zuvor kodierten Bild ist,
    ziel_Qj die Zielkodierqualität oder der Zielwert von Qj ist,
    K4 kann eine Konstante oder ein Faktor von vorhergehenden BR, max_BR, oder aktuell_BR sein, und K4 kann auch separat bestimmt werden für I-, Pund B-Bildtypen.
  • Maximale und/oder minimale Bitraten können angelegt werden zum Bestimmen von BR gemäß den Anwendungsanforderungen. Die max/min BR Eingabe bei 322 wird verwendet wie folgt:
    wenn (BR > max_BR), dann BR = max_BR
    wenn (BR < min_BR), dann BR = min_BR.
  • Es ist auch möglich, das ziel_Qj auf dem Makroblockniveau zu verwenden, um die Effizienz der Kodierung zu erhöhen. Grundsätzlich wird das ziel_Qj durch den Referenzquantisierungsschrittgrößenberechnungsprozessor 302 als eine untere Grenze der Ausgangsreferenzquantisierungsschrittgröße Qj verwendet, so dass dann, wenn dieses Ziel (Qualität) auf dem MB-Niveau erreicht ist, Bits sofort für zukünftige Kodierung gespart werden. In diesem Fall kann die Ausgangsreferenzquantisierungsschrittgröße eingestellt werden gemäß:
    Wenn (Qj < ziel_Qj), dann Qj = ziel_Qj.
  • Die Zielbitrate BR wird kontinuierlich eingestellt unter Bezugnahme auf eine festgelegte Zielkodierqualität innerhalb jedes Segments. In umgekehrter Weise wird zu Beginn jedes Segments die Zielkodierqualität eingestellt, so dass eine Zielgesamtbitrate erreicht wird. Ein Segment kann ein Paar Gruppen von Bildern enthalten und zwar in Abhängigkeit von einer Notwendigkeit hinsichtlich der Überwachungshäufigkeit der Ausgangsbitrate. Ein neues Segment kann auch definiert werden durch einen Szenenwechsel, der detektierbar ist durch jeden herkömmlichen Szenenwechseldetektor innerhalb eines vorgegebenen Zeitraums.
  • Zu Beginn eines neuen Segments führt der Zielsegmentqualitätseinstellungsprozessor 309 eine Prüfung hinsichtlich der Gesamtbitrate durch, und zwar basierend auf der Bitverwendung, und führt alle notwendigen Einstellungen hinsichtlich der Zielkodierqualität für den Bitrateneinstellprozessor 306 durch, so dass die Gesamtbitrate mit einer durch den Benutzer definierbaren Zielgesamtbitrate 320 (gesamt_BR) konvergiert.
  • Ein beispielhaftes Ausführungsbeispiel einer Konstant-Gesamtbitratensteuerung, welche den Zielsegmentqualitätseinstellprozess gemäß der vorliegenden Erfindung implementiert, ist in Blockdiagrammform in 4 dargestellt. Die Bitanzahldifferenz zwischen der tatsächlichen und der Zielbitzählung (bits_diff) zum Kodieren eines vorhergehenden Segments wird berechnet durch einen Bitdifferenzberechnungsprozessor 401 unter Verwendung der folgenden Schritte:
    • a) Erhalten der tatsächlichen Bits (bits_segment), die verwendet wurden zum Kodieren des vorhergehenden Segments, und zwar gemäß der Eingangsbitverwendung von Bildern (S) 400 in dem vorhergehenden Segment, und
    • b) Berechnen des Wertes von bits_diff basierend auf einer entsprechenden Zielsegmentbitrate 406 (segment_BR) für das vorhergehende Segment und zwar gemäß:
      Figure 00180001
      wobei Nsegment die Anzahl von kodierten Bildern in dem vorhergehenden Segment ist.
  • Die Bitzahldifferenz (bits_diff) wird dann neu verteilt durch einen Bitdifferenzverteilungsprozessor 402 und zwar über die nächste k-Anzahl von Segmenten unter Verwendung einer Bitverteilungsfunktion, f(m), die wie folgt ausgedrückt wird: delta_bitsm = f(m) × bits_diff (15) wobei m = 1, ..., k,
    Σk f(m) = 1,
    delta_bitsm ist die Bitdifferenz, die auf die nächsten mten Segmente verteilt wird.
  • Für einen Beispielfall von k = 4 und f(m) = 1/k illustriert 5 wie die Bitzahldifferenz (bits_diff) eines kodierten Segments über die nächsten 4 Segmente verteilt wird. Die Periode von k Segmenten, die für eine Bitkompensation verwendet werden, wird als ein Einstellintervall bezeichnet.
  • Ein Deltabitratenberechnungsprozessor 403 (4) akkumuliert alle Bitunterschiede (delta_bits), die aus zuvor kodierten Bitsegmenten zu den aktuell zu kodierenden Segmenten verteilt wurden, und berechnet eine Deltasegmentbitrate (Δsegment_BR) basierend auf den akkumulierten delta_bits und der Anzahl von Bildern in dem aktuell zu kodierenden Segment. Die Deltasegmentbitrate und eine Bediener definierbare Zielgesamtbitrate (gesamt_BR) Eingabe bei 408 werden durch den Zielsegment BR Einstellprozessor 405 verwendet, um die Zielsegmentbitrate (segment_BR) 406 für das aktuelle Segment abzuleiten. Der Wert von segment_BR kann wie folgt ausgedrückt werden: segment_BR = gesamt_BR + Δsegment_BR (16)
  • Eine neue Zielkodierqualität (ziel_Qj) 407 zum Kodieren des aktuellen Segments wird dann bestimmt aus der Zielsegmentbitrate unter Verwendung eines BR-Qj Modellierprozessors 404. Der BR-Qj Modellierprozessor kann z. B. gemäß der folgenden Gleichung arbeiten:
    Figure 00190001
    wobei ziel_Q'j das Ziel Qj des vorhergehenden Segments ist,
    segment_BR' die Zielsegmentbitrate des vorhergehenden Segments ist, und
    K5 einen Konstante ist, die experimentell bestimmt werden kann.
  • Ein maximales Limit kann auf das bestimmte ΔQj platziert werden, so dass es keine drastische Veränderung in der Ausgangsqualität von einem Segment zum anderen gibt.
  • Ein Flussdiagramm für einen Prozess mit variabler Bitratenkodierung (VBR) Kodierung mit konstanter Gesamtbitratensteuerung gemäß einem Ausführungsbeispiel der Erfindung ist in 6 dargestellt. Eine Initialisierung von vorbestimmten Parametern wird zunächst im Schritt 600 durchgeführt. Dann, im Schritt 601, bestimmt der Prozess, ob die Prozessierung zu Beginn einer neuen Gruppe von Bildern (GOP) ist oder nicht. Wenn eine neue GOP bestimmt wurde, wird der Schritt 602 ausgeführt durch auf den neuesten Stand bringen der Bitzuordnung für die neue GOP. Dies kann z. B. eine Berechnung der GOP-Bitzuordnung R'gop gemäß Gleichung (10), die oben beschrieben wurde, beinhalten und das Akkumulieren zu dem verbleibenden bzw. Restbitwert R', um das R' für die neue GOP vorzugeben.
  • Für jedes Bild in der aktuellen GOP wird ein Bitzuordnungswert T bestimmt im Schritt 603, und dies kann z. B. gemäß den Gleichungen (2), (3) und (4) berechnet werden. Dann wird für jeden Makroblock in dem Bild eine Referenzquantisierungsschrittgröße Q bestimmt unter Verwendung der berechneten Zielbitzuordnung T, wie z. B. durch den Prozess, der durch die Gleichungen (11) und (12) repräsentiert wird. Eine Aktivitätsmaskierung kann auch in diesem Schritt beinhaltet sein. Der Makroblock des Bildes wird dann im Schritt 605 kodiert unter Verwendung der berechneten Quantisierungsschrittgröße, und die Schritte 604 und 605 werden für alle Makroblöcke in dem Bild wiederholt, bis das Ende des Bildes im Schirtt 606 bestimmt wurde.
  • Wenn das Ende der Sequenz von Bewegtbildern, die kodiert wird, erreicht ist, wird dies im Schritt 607 bestimmt, was wiederum den Prozess im Schritt 611 in diesem Fall beendet. Ansonsten kehrt der Prozess zum Schritt 608 zurück, wo bestimmt wird, ob das Ende des aktuellen Segments von Bildern erreicht wurde.
  • Wenn das Ende eines Segments von Bildern erreicht wurde und die Verarbeitung eines neuen Segments beginnen soll, wird die Zielkodierqualität im Schritt 609 eingestellt. Dies wird durchgeführt, indem zuerst die Differenz zwischen der Anzahl von zugeordneten Bits zum Kodieren des vorhergehenden Segments und die tatsächliche Anzahl von verwendeten Bits beim Kodieren dieses Segments berechnet wird, wie z. B. durch den Vorgang, der durch die Gleichung (14) repräsentiert wird. Diese Größe, bits_diff, repräsentiert extra Bits, welche von dem vorherigen Segment von Bildern übergeblieben ist und kann verteilt werden zur Verwendung beim Kodieren der verbleibenden Bildsegmente. Die übrig gebliebenen Bits, bits_diff, werden zur Verwendung über eines oder mehrere Segmente verteilt, und zwar gemäß einer Bitverteilungsfunktion, von der ein Beispiel in Verbindung mit Gleichung (15) beschrieben wurde. Im Wesentlichen werden die übrig gebliebenen Bits von dem vorherigen Segment in eine Vielzahl von k, vorzugsweise gleichen, Größen aufgeteilt und den folgenden k-Segmenten für die Kodierung zugeordnet. Die zugeordneten Anteile von allen der k zuvor verarbeiteten Segmente werden akkumuliert und verwendet, um eine Veränderung in der Segmentbitrate, Δsegment_BR, zu bestimmen, und zwar gemäß der akkumulierten Bitdifferenz und der Anzahl von Bildern in dem zu kodierenden Segment. Dies kann dann verwendet werden zum Berechnen einer zugeordneten Bitrate für das zu kodierende Segment und zwar gemäß der Gleichung (16). Schlußendlich kann eine Zielkodierqualität, ziel_Qj berechnet werden, und zwar z. B. gemäß den Gleichungen (17) und (18).
  • Wenn das Ende eines Segments im Schritt 608 oder nach der Zielqualitätseinstellung im Schritt 609 noch nicht erreicht wurde, wird die Zielqualität und die tatsächliche bzw. Ist-Qualität von kodierten Bildern verglichen, und es wird eine neue Bitrate zur Kodierung des nächsten Bildes berechnet basierend auf der Differenz. Dieser Schritt kann z. B. wie unter Bezugnahme auf Gleichung (13) beschrieben wurde durchgeführt werden. Der Vorgang kehrt dann zum Schritt 601, der oben beschrieben wurde, zurück.
  • Zusammenfassend sehen Ausführungsbeispiele der vorliegenden Erfindung ein Verfahren und eine Vorrichtung für das Kodieren von Bewegtbildern mit variabler Bitrate vor, während eine gleichmäßige Ausgangskodierqualität gemäß einer vorbestimmten Zielqualität beibehalten wird. Die Zielqualität wird zu Beginn jedes Bewegtbildsegments eingestellt und zwar gemäß einer Bitverteilungsfunktion um eine Gesamtbitrate sicherzustellen, welche ein definiertes Ziel erfüllt. Ferner sieht die segmentbasierte Bitverteilungsfunktion eine glatte und flexible Modulation der Kodierqualiät vor. Dieses Verfahren kann mit geringen Kosten implementiert werden und mit der Fähigkeit, eine Eingangsbewegtbildsequenz mit einem einzelnen Durchlauf in Echtzeit zu kodieren.
  • Es wird sich dem Fachmann ergeben, dass die detaillierte Beschreibung der vorliegenden Erfindung nur anhand eines Beispiels präsentiert wurde und es nicht gewollt ist, dass diese die Erfindung, die in den nachfolgenden Ansprüchen definiert wird, eingeschränkt wird. Insbesondere wird in Betracht gezogen, dass zahlreiche Variationen der beschriebenen Ausführungsbeispiele ausgeführt werden können, ohne vom Umfang der Erfindung abzuweichen.
  • Über die Beschreibung und die folgenden Ansprüche hinweg soll, es sei denn, dass der Kontext etwas anderes erfordert, das Wort „aufweisen" und Variationen hiervon, wie beispielsweise „aufweist" und „aufweisend" so verstanden werden, dass es den Einschluss einer genannten ganzen Zahl oder eines Schritts oder einer Gruppe von ganzen Zahlen oder Schritten impliziert, aber nicht den Ausschluss irgendeiner anderen ganzen Zahl oder eines Schrittes (20548) oder einer Gruppe von ganzen Zahlen oder Schritten. Glossar:
    VBV Videozwischenspeicherverifizierer (video buffer verifier)
    VBR variable Bitrate
    CBR konstante Bitrate
    MPEG Moving Picture Experts Group
    DCT diskrete Kosinustransformation
    GOP Gruppe von Bildern
    MB Makroblock
    Q Quantisierungsparameter (Bildqualität)
    Qj Quantisierungsparameter für Makroblock j
    Qi, Qb, Qp Quantisierungsparameter für Bilder des I-, B- und P-Typs
    Rgop Anzahl von Bits, die einer Gruppe von Bildern zum Kodieren zugeordnet sind
    bit_rate Zielbitrate für eine Bildsequenz
    bild_rate Anzahl von Bildern, die pro Sekunde kodiert werden
    N Gesamtanzahl von Bildern in der Gruppe von Bildern
    Nb, Np verbleibende Anzahl von P-, B-Bildern in der Gruppe von Bildern
    R, R' verbleibende Anzahl von Bits zum Kodieren einer Gruppe von Bildern
    S Anzahl von schon verwendeten Bits beim Kodieren einer Gruppe von Bildern
    Ti, Tp, Tb Zielanzahl von Bits zum Kodieren von nächsten Bildern des I-, P-, B-Typs
    Xi, Xp, Xb globale Komplexitätsmaße für Bilder des I-, P-, B-Typs
    dj, Dj virtuelle Zwischenspeicherfüllung beim Kodieren des jten Makroblocks
    d0, D0 anfängliche virtuelle Zwischenspeicherfüllung
    Bj-1 tatsächlich verwendete Bits bis zum und einschließlich des (j-1)ten Makroblocks
    MB_Cnt Anzahl von Makroblocks in dem Bild
    r Reaktionsparameter (= 2 × bit_rate/bild_rate)
    N_actj normalisiertes Makroblockaktivitätsniveau
    Mquant modulierte Quantisierungsschrittgröße (= N_actj × Qj)
    gesamt_BR definierbare Zielgesamtbitrate
    BR Zielbittrate
    B Bitverwendungsinformation (z. B. Bits, die verwendet wurden zum Kodieren vorhergehender MBs in dem Bild)
    aktuell_BR aktuell geschätzte Bitrate
    durchschnitt_Qj Mittelwert des Quantisierungsparameters für zuvor kodierte Bilder
    ziel_Qj Quantisierungsparameterwert für die Zielkodierqualität
    max_BR maximal erlaubte Bitrate
    min_BR minimal erlaubte Bitrate
    bits_diff Differenz zwischen Ist- und Zielbits die beim Kodieren des vorhergehenden Segments verwendet wurden
    segment_BR Zielsegmentbitrate
    bits_segment tatsächliche Anzahl von Bits, die beim Kodieren des vorhergehenden Segments verwendet wurden
    Nsegment Anzahl von kodierten Bildern im vorhergehenden Segment
    delta bitsm Anzahl von Differenzbits die für die nächsten mten Segmente zur Verfügung stehen
    f(m) Bitverteilungsfunktion
    Δsegment_BR verfügbare Differenz in der Segmentbitrate

Claims (10)

  1. Verfahren zur Steuerung der Bitzuordnung in einen Bewegtbildkodierer zum Kodieren einer Sequenz von Bildern mit einer Gesamtzielbitrate (320; 408), das in Kombination die folgenden Schritte aufweist: – Unterteilen der Sequenz an Bildern in Segmente, von denen ein jedes eine Anzahl von Bildern enthält, wobei jedes Bild in den Segmenten eine Anzahl von Makroblöcken enthält; – Bestimmen (609) einer erwünschten Zielsegmentkodierqualität (ziel_Qj; 407) für jedes Segment basierend auf der gesamten Zielbitrate (320; 408) und der Anzahl der Bilder im Segment; – Berechnen (603) einer Bild-Bitzuordnung für jedes Bild im Segment basierend auf seiner Zielsegmentkodierqualität (407); – Bestimmen (302; 604) eines Quantisierungsschritts (Qj; Mquant) für jeden Makroblock in einem Bild basierend auf seiner Bild-Bitzuordnung (T) und der Anzahl von Makroblöcken im Bild; – Kodieren (304; 605) jedes Makroblocks, und zwar sequentiell basierend auf seinem bestimmten Quantisierungsschritt (Qj; Mquant); – Einstellen (302; 604) des Quantisierungsschritts eines jeden Makroblocks, der zu kodieren ist, und zwar basierend auf der Bitnutzung bzw. -verwendung (S) von zuvor kodierten Makroblöcken im Bild und seiner Bild-Bitzuordnung (T); – Einstellen (300, 301, 308; 603) der Bild-Bitzuordnung (T) eines jeden zu kodierenden Bilds basierend auf einer Bitnutzung (S) des zuvor kodierten Bildes innerhalb des Segments und seiner Zielsegmentkodierqualität (407); und – Einstellen (309; 609) der Zielsegmentkodierqualität (407) eines jeden zu kodierenden Segments basierend auf einer Bitnutzung (S) von zuvor kodierten Segmenten innerhalb der Sequenz von Bildern und auf seiner gesamten Zielbitrate (320; 408).
  2. Verfahren nach Anspruch 1, wobei der Schritt des Berechnens (603) einer Bild-Bitzuordnung auch basiert auf einer zuvor bestimmten maximalen und/oder minimalen Bitrate für das Kodieren der Sequenz.
  3. Verfahren nach Anspruch 1 oder 2, das ferner die folgenden Schritte aufweist: – Bestimmen der gesamten Zielbitrate (320; 408) für das Kodieren der Sequenz von Bildern, und für jedes Segment in der Sequenz von Bildern das Durchführen der folgenden Schritte: – Bestimmen (401) einer Differenz von Bits zwischen einer Anzahl von Bits, die für das Kodieren von zumindest einem vorangegangenen Segment genutzt wurden, und einer Anzahl von Bits, die für das Kodieren des zumindest einen vorangegangenen Segments zugeordnet wurde, und zwar auf der Basis eines Segmentkodierbitnutzungswertes (400; S) und einer Zielsegmentbitrate (406; segment-BR); – Berechnen (402) einer Bitverteilung aus der bestimmten Bitdifferenz und einer vorbestimmten Verteilungsfunktion für das Neuverteilen der Bitdifferenz über die nächsten k Segmente, wobei k eine positive ganze Zahl ist; – Berechnen (403) einer Bitratenänderung aus der Bitverteilung und der Anzahl von Bildern im aktuellen Segment; – Berechnen (405) der Zielsegmentbitrate (406) aus der Bitratenänderung und der gesamten Zielbitrate (408) für die Sequenz von Bildern; und – Bestimmen der Zielsegmentkodierqualität (407) aus der Zielsegmentbitrate (406).
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei jedes Segment zumindest eine Gruppe an Bildern mit einem I-Bild aufweist und optional zumindest ein P- und/oder B-Bild.
  5. Verfahren nach Anspruch 3 oder 4, sofern dieser von Anspruch 3 abhängt, wobei die Differenz zwischen der Anzahl von Bits, die für das Kodieren des zumindest einen vorangegangenen Segments genutzt wird, und der Anzahl von Bits, die für das Kodieren des zumindest einen vorangegangenen Segments zugeordnet wurden, bestimmt wird gemäß:
    Figure 00270001
    wobei: bits_diff die Differenz ist, segment_BR die Zielbitrate des vorangegangenen Segments (Segmente) ist, Nsegment die Anzahl von kodierten Bildern im vorangegangenen Segmente) ist, bits segment die tatsächliche Anzahl von Bits ist, die für das Kodieren des vorangegangenen Segments (Segmente) genutzt wurde.
  6. Ein Verfahren nach Anspruch 5, wobei die Bitverteilung berechnet wird gemäß: delta_bitsm = f(m) × bits_diff wobei: delta_bits die Anzahl der Bitdifferenz ist, die den nächsten m-ten Segment in der Sequenz zugeordnet ist, m = 1, ..., k, und f(m) eine Bit-Verteilungsfunktion ist, wobei Σkf(m) = 1.
  7. Verfahren nach Anspruch 6, wobei f(m)=1/k.
  8. Verfahren nach einem der Ansprüche 3 bis 7, wobei die Zielsegmentkodierqualität berechnet wird gemäß:
    Figure 00280001
    wobei: ziel_Q die Zielsegmentkodierqualität ist, segment_BR die Zielsegmentbitrate ist, ziel_Q' die Zielsegmentkodierqualität des vorangegangenen Segments ist, segment_BR' die Zielsegmentbitrate des vorangegangenen Segments ist, und K eine Konstante ist.
  9. Ein Bewegtbildkodierer, der in Kombination Folgendes aufweist: – einen Makroblockkodierprozessor (304) zum Kodieren von Bilddaten basierend auf Makroblöcken gemäß einer Quantisierungsschrittgröße (Qj; Mquant); – einen virtuellen Pufferaktualisierungsprozessor (305) gekoppelt mit dem Makroblockkodierprozessor (304) zum Nachverfolgen bzw. Erfassen einer Anzahl von Bits (Bj), die für das Kodieren aufeinanderfolgender Makroblöcke in einem Bild genutzt wurden, und einer Anzahl (400; S) von Bits, die für das Kodieren aufeinanderfolgender Bilder in einer Gruppe von Bildern genutzt wurden; – einen Quantisierungsschrittgrößenprozessor (302) gekoppelt mit dem Makroblockkodierprozessor (304) für das Bestimmen der Quantisierungsschrittgröße aus einer Zielanzahl von Bits (T), die einem Bild zugeordnet sind, und einer Anzahl (S) von Bits, die bereits für das Kodieren von Makroblöcken in diesem Bild genutzt wurden; – einen Bild-Bitzuordnungsprozessor (300, 301, 308) gekoppelt mit dem Quantisierungsschrittgrößenprozessor (302) zum Bestimmen der Zielanzahl an Bits (T), die einem Bild zugeordnet sind, aus einer Zielbitrate (BR) für eine aktuelle Gruppe an Bildern, und der Zahl (400; S) von Bits, die bereits für das Kodieren von Bildern in der aktuellen Gruppe von Bildern genutzt wurden; – einen Bitrateneinstellprozessor (306) gekoppelt mit dem Bild-Bitzuordnungsprozessor, dem virtuellen Pufferaktualisierungsprozessor und dem Quantisierungsschrittgrößenprozessor zum Bestimmen der Zielbitrate (BR) aus der Anzahl (400; S) von Bits, die bereits zum Kodieren von aufeinanderfolgenden Bildern in der aktuellen Gruppe von Bildern genutzt wurden, einer Zielkodierquantisierungsschrittgröße (407; ziel_Qj) und einer durchschnittlichen Quantisierungsschrittgröße (Qj) von zuvor kodierten Bildern in einer aktuellen Gruppe von Bildern; und – einen Zielsegmentqualitätseinstellprozessor (309) gekoppelt mit dem Bitrateneinstellprozessor (306) und dem virtuellen Pufferaktualisierungsprozessor (305) zum Bestimmen der Zielkodierquantisierungsschrittgröße (407) aus einer bestimmten gesamten Zielbitrate (320; 408) und der Anzahl von Bits (400; S), die für das Kodieren einer vorangegangenen Gruppe von Bildern genutzt wurden.
  10. Ein Bewegtbildkodierer nach Anspruch 9, wobei: – der Zielsegmentqualitätseinstellprozessor (309) angepasst ist für das Erzeugen eines Zielsegmentkodierqualitätswerts (407) zum Kodieren einer Serie von Segmenten, von denen ein jedes eine Anzahl von Bildern enthält, und zwar unter Nutzung eines variablen Bitratenkodierschemas, während eine im Wesentlichen konstante Gesamtbitrate beibehalten wird; wobei der Zielsegmentqualitätseinstellprozessor Folgendes aufweist: – Bitdifferenzberechnungsmittel (401) gekoppelt für den Empfang eines Segmentkodierbitnutzungswerts (400; S) und einer Zielsegmentbitrate (406) und zum Erzeugen eines Bitdifferenzwerts daraus, der eine Differenz hinsichtlich der zugeordneten Bits und der für das Kodieren eines Segments genutzten Bits repräsentiert; – Bitdifferenzverteilungsmittel (402) gekoppelt mit dem Bitdifferenzberechnungsmittel (401) zum Berechnen von zumindest einem Bitverteilungswert aus dem Bitdifferenzwert und einer vorbestimmten Verteilungsfunktion zum Neuverteilen der Differenz hinsichtlich der zugeord neten Bits und der für das Kodieren eines Segments genutzten Bits über nächste k Segmente, wobei k eine positive ganze Zahl ist; – Bitratendifferenzberechnungsmittel (403) gekoppelt mit den Bitdifferenzverteilungsmitteln (402) zum Berechnen einer Segmentbitratendifferenz aus dem zumindest einen Bitverteilungswert und der Anzahl von Bildern in einem Segment; – Zielsegmentbitrateneinstellmittel (405) gekoppelt mit dem Bitratendifferenzberechnungsmittel (403) und dem Bitdifferenzberechnungsmittel (401) zum Berechnen der Zielsegmentbitrate (406) aus der Segmentbitratendifferenz und der vorbestimmten Zielgesamtbitrate (320; 408) für die Sequenz von Segmenten; und – Kodierqualitätsberechnungsmittel (404) gekoppelt mit dem Zielsegmentbitrateneinstellmittel (405) zum Berechnen des Zielsegmentkodierqualitätswerts (407) aus der Zielsegmentbitrate (406).
DE69815159T 1998-03-20 1998-03-20 Kodierung von bewegten bildern mit globaler konstanter bitrate Expired - Fee Related DE69815159T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/SG1998/000022 WO1999049664A1 (en) 1998-03-20 1998-03-20 Moving pictures encoding with constant overall bit rate

Publications (2)

Publication Number Publication Date
DE69815159D1 DE69815159D1 (de) 2003-07-03
DE69815159T2 true DE69815159T2 (de) 2004-04-08

Family

ID=20429844

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69815159T Expired - Fee Related DE69815159T2 (de) 1998-03-20 1998-03-20 Kodierung von bewegten bildern mit globaler konstanter bitrate

Country Status (4)

Country Link
US (2) US7092441B1 (de)
EP (1) EP1074148B1 (de)
DE (1) DE69815159T2 (de)
WO (1) WO1999049664A1 (de)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1223197C (zh) 2000-10-10 2005-10-12 皇家菲利浦电子有限公司 用于数字视频记录的视频比特率控制方法和设备
CN1682311A (zh) * 2002-09-17 2005-10-12 皇家飞利浦电子股份有限公司 视频编码方法
TWI220636B (en) * 2002-11-13 2004-08-21 Mediatek Inc System and method for video encoding according to degree of macroblock distortion
FI116016B (fi) * 2002-12-20 2005-08-31 Oplayo Oy Puskurointijärjestely
EP1639801B1 (de) * 2003-06-26 2018-05-09 Thomson Licensing DTV Videoratensteuerung mit mehreren durchgängen zur anpassung an sliding-window-kanalnebenbedingungen
US8982945B2 (en) 2003-11-04 2015-03-17 Stmicroelectronics Asia Pacific Pte. Ltd. Apparatus, method, and computer program for encoding video information using a variable bit-rate
EP1551185A1 (de) 2004-01-05 2005-07-06 Thomson Licensing S.A. Codierungsverfahren, Decodierungsverfahren und Codierungsvorrichtung für eine digitale Bildsequenz
US7664175B1 (en) * 2004-06-16 2010-02-16 Koplar Interactive Systems International, L.L.C. Mark-based content modulation and detection
US20060062481A1 (en) * 2004-09-21 2006-03-23 Markus Suvanto Apparatuses, computer program product and method for bit rate control of digital image encoder
US7474701B2 (en) * 2004-09-23 2009-01-06 International Business Machines Corporation Single pass variable bit rate control strategy and encoder for processing a video frame of a sequence of video frames
GB0428155D0 (en) 2004-12-22 2005-01-26 British Telecomm Buffer underflow prevention
US8135062B1 (en) * 2006-01-16 2012-03-13 Maxim Integrated Products, Inc. Method and apparatus for QP modulation based on perceptual models for picture encoding
US8861585B2 (en) * 2006-01-20 2014-10-14 Qualcomm Incorporated Method and apparatus for error resilience algorithms in wireless video communication
US8165202B1 (en) * 2006-03-31 2012-04-24 Texas Instruments Incorporated Video compression rate
EP2345258A4 (de) * 2008-11-12 2012-04-25 Thomson Licensing I-frame-entflimmerung für parallele bildgruppen-multithread-videokodierung
WO2010056315A1 (en) * 2008-11-13 2010-05-20 Thomson Licensing Multiple thread video encoding using gop merging and bit allocation
US8396114B2 (en) * 2009-01-29 2013-03-12 Microsoft Corporation Multiple bit rate video encoding using variable bit rate and dynamic resolution for adaptive video streaming
US8311115B2 (en) * 2009-01-29 2012-11-13 Microsoft Corporation Video encoding using previously calculated motion information
JP5481923B2 (ja) * 2009-04-28 2014-04-23 富士通株式会社 画像符号化装置、画像符号化方法および画像符号化プログラム
US8270473B2 (en) * 2009-06-12 2012-09-18 Microsoft Corporation Motion based dynamic resolution multiple bit rate video encoding
EP2302845B1 (de) 2009-09-23 2012-06-20 Google, Inc. Verfahren und Vorrichtung zur Bestimmung eines Jitterpuffer-Niveaus
US9019997B1 (en) 2009-11-30 2015-04-28 Pmc-Sierra Us, Inc. Method and system for transporting constant bit rate clients across a packet interface
US8542708B1 (en) * 2009-11-30 2013-09-24 Pmc-Sierra Us, Inc. Method and system for transporting constant bit rate clients across a packet interface
US8705616B2 (en) 2010-06-11 2014-04-22 Microsoft Corporation Parallel multiple bitrate video encoding to reduce latency and dependences between groups of pictures
US8630412B2 (en) 2010-08-25 2014-01-14 Motorola Mobility Llc Transport of partially encrypted media
US8477050B1 (en) 2010-09-16 2013-07-02 Google Inc. Apparatus and method for encoding using signal fragments for redundant transmission of data
WO2012042884A1 (ja) 2010-09-29 2012-04-05 パナソニック株式会社 画像復号方法、画像符号化方法、画像復号装置、画像符号化装置、プログラムおよび集積回路
EP3125562B1 (de) 2010-09-30 2022-04-06 Sun Patent Trust Bilddecodierungsverfahren, bildcodierungsverfahren, bilddecodierungsvorrichtung, bildcodierungsvorrichtung, programm und integrierter schaltkreis
US20120102184A1 (en) * 2010-10-20 2012-04-26 Sony Corporation Apparatus and method for adaptive streaming of content with user-initiated quality adjustments
US8751565B1 (en) 2011-02-08 2014-06-10 Google Inc. Components for web-based configurable pipeline media processing
US9344721B2 (en) 2011-06-23 2016-05-17 Saab Ab Best quality given a maximum bit rate
US9591318B2 (en) 2011-09-16 2017-03-07 Microsoft Technology Licensing, Llc Multi-layer encoding and decoding
US11089343B2 (en) 2012-01-11 2021-08-10 Microsoft Technology Licensing, Llc Capability advertisement, configuration and control for video coding and decoding
JP5847199B2 (ja) * 2012-01-11 2016-01-20 日立マクセル株式会社 符号化動画像の生成方法、画像符号化方法および画像符号化装置
US9197888B2 (en) 2012-03-13 2015-11-24 Dolby Laboratories Licensing Corporation Overlapped rate control for video splicing applications
US20130282868A1 (en) * 2012-04-23 2013-10-24 Jae Chung Integral Controller Based Pacing for HTTP Pseudo-streaming
US20140029664A1 (en) * 2012-07-27 2014-01-30 The Hong Kong University Of Science And Technology Frame-level dependent bit allocation in hybrid video encoding
US9438652B2 (en) * 2013-04-15 2016-09-06 Opentv, Inc. Tiered content streaming
US10165272B2 (en) * 2015-01-29 2018-12-25 Arris Enterprises Llc Picture-level QP rate control performance improvements for HEVC encoding
CN106331704B (zh) * 2015-07-07 2019-10-22 杭州海康威视数字技术股份有限公司 一种视频码率控制方法及视频编码装置
US10341561B2 (en) * 2015-09-11 2019-07-02 Facebook, Inc. Distributed image stabilization
EP3396954A1 (de) 2017-04-24 2018-10-31 Axis AB Videokamera und verfahren zur steuerung der ausgangsbitrate eines videocodierers
EP3396961A1 (de) 2017-04-24 2018-10-31 Axis AB Verfahren und ratensteuergerät zur steuerung der ausgangsbitrate eines videocodierers
US10979747B2 (en) 2017-12-21 2021-04-13 Arris Enterprises Llc Statistical multiplexing system for variable bit rate encoding with constant bit rate encoder
CN110572661B (zh) * 2019-09-29 2021-10-26 杭州当虹科技股份有限公司 一种面向4k/8k超高清视频编码的低延时码率控制方法
CN113676730B (zh) * 2021-08-12 2022-12-02 北京百度网讯科技有限公司 视频编码方法、装置、电子设备和存储介质
CN113810685A (zh) * 2021-09-13 2021-12-17 杭州海康威视数字技术股份有限公司 视频数据的编码方法、装置、设备、存储介质及程序产品

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05167998A (ja) * 1991-12-16 1993-07-02 Nippon Telegr & Teleph Corp <Ntt> 画像の符号化制御処理方法
BE1007807A3 (nl) 1993-11-30 1995-10-24 Philips Electronics Nv Inrichting voor het coderen van een videosignaal.
JPH07202820A (ja) 1993-12-28 1995-08-04 Matsushita Electric Ind Co Ltd ビットレート制御システム
KR100213014B1 (ko) * 1994-03-15 1999-08-02 윤종용 동화상신호의 고능률 부호화를 위한 레이트 콘트롤 장치
US5623424A (en) 1995-05-08 1997-04-22 Kabushiki Kaisha Toshiba Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels
US5650860A (en) 1995-12-26 1997-07-22 C-Cube Microsystems, Inc. Adaptive quantization
EP1182888A3 (de) * 1996-04-25 2004-11-03 Matsushita Electric Industrial Co., Ltd. Videokodierung mit bitratenabhängiger Quantisierung
KR100203710B1 (ko) * 1996-04-30 1999-06-15 전주범 비트 발생량 조절기능을 갖는 영상 부호화 시스템

Also Published As

Publication number Publication date
WO1999049664A1 (en) 1999-09-30
EP1074148B1 (de) 2003-05-28
US20060159169A1 (en) 2006-07-20
US7496142B2 (en) 2009-02-24
DE69815159D1 (de) 2003-07-03
EP1074148A1 (de) 2001-02-07
US7092441B1 (en) 2006-08-15

Similar Documents

Publication Publication Date Title
DE69815159T2 (de) Kodierung von bewegten bildern mit globaler konstanter bitrate
DE69233411T2 (de) Verfahren und Einrichtung zur Kompression von sich bewegenden Videobildern mit adaptiver Bitzuordnung und Quantisierung
DE69435000T2 (de) Bildkodierungsvorrichtung
DE69815720T2 (de) Kodierung von bewegten bildern mit variabler bitrate in einem durchgang
DE69827548T2 (de) Anordnung zur Vorverarbeitung für MPEG-2-Kodierung
DE60026241T2 (de) Umschalten zwischen bitratenreduzierten Signalen
DE69831894T2 (de) Signalkodierung, -aufnahme und -übertragung
DE69816875T2 (de) Sequenzadaptive bit-zuordnung zur codierung von bildern
DE69637343T2 (de) Videokodierungs- und -dekodierungsvorrichtung
DE69735756T2 (de) Dynamische steuerung der kodierrate in einem blockbasierten videokodierungssystem
DE69116869T2 (de) Digitale bildkodierung mit einer zufallsabtastung der bilder
DE69124760T2 (de) Adaptive Quantisierung eines Pufferspeichers/Quantisierers für Transformationscodierer für Video
DE69935478T2 (de) Bewegtbildkodiergerät
DE69938093T2 (de) Steuerung der Datenrate für einen MPEG-Transcoder ohne a-priori Kenntnis des Bildtyps
DE69434018T2 (de) Bildkodierungsverfahren und -vorrichtung
DE4228220B4 (de) Vorrichtung zur hierarchischen Unterteilung von Videosignalen
DE69829345T2 (de) Verfahren zur Verminderung des Verarbeitungsleistungsbedarfs eines Videodekoders
EP1087625B1 (de) Digitales Transcodiersystem
DE69826823T2 (de) Verfahren zur videocodierung mit variabler bitrate und entsprechender videocodierer
DE69837003T2 (de) Vorrichtung und verfahren zur optimierung der bitratensteurung in einem kodiersystem
DE10300048B4 (de) Verfahren und Vorrichtung zur Bildcodierung und -decodierung
DE60023576T2 (de) Verfahren und Vorrichtung zur Bewegtbilddatentranscodierung
DE69628935T2 (de) Vorrichtung und verfahren zur optimierung der bitratensteuerung in einem codierungssystem
DE69915277T2 (de) Verfahren und vorrichtung zur reduzierung von breathing-artefakten in komprimierten videodaten
DE10253380B4 (de) Verfahren und Einrichtung zum Kodieren sich bewegender Bilder mit fester Rechenkomplexität

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee