DE69734831T2 - Adaptive steuerung der datenrate für digitale videokompression - Google Patents

Adaptive steuerung der datenrate für digitale videokompression Download PDF

Info

Publication number
DE69734831T2
DE69734831T2 DE69734831T DE69734831T DE69734831T2 DE 69734831 T2 DE69734831 T2 DE 69734831T2 DE 69734831 T DE69734831 T DE 69734831T DE 69734831 T DE69734831 T DE 69734831T DE 69734831 T2 DE69734831 T2 DE 69734831T2
Authority
DE
Germany
Prior art keywords
rate
quantization
bit rate
model
coded
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
DE69734831T
Other languages
English (en)
Other versions
DE69734831D1 (de
Inventor
T. Donald PIAN
U. Chong LEE
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Application granted granted Critical
Publication of DE69734831D1 publication Critical patent/DE69734831D1/de
Publication of DE69734831T2 publication Critical patent/DE69734831T2/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/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
    • 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
    • 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
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • 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/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/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/186Methods 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 colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Description

  • Hintergrund der Erfindung
  • I. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft eine Bildverarbeitung. Insbesondere betrifft die vorliegende Erfindung ein neues und verbessertes System und ein Verfahren zum adaptiven Steuern der digitalen Bitrate einer Kompression bzw. Kompremierung in einer Video-Codiereinrichtung.
  • II. Beschreibung der verwandten Technik
  • In dem Gebiet einer Übertragung und eines Empfangs von Fernsehsignalen werden verschiedene Verbesserungen an dem NTSC-System (National Television Systems Committee) gemacht. Entwicklungen in dem Gebiet des Fernsehens sind im Allgemeinen auf die SDTV(standard definition television)-Systeme und HDTV(high definition television)-Systeme gerichtet.
  • Viele der vorgeschlagenen SDTV- und HDTV-Systeme verwenden digitale Codiertechniken. Digital codiertes Video bietet viele Vorteile gegenüber einer analogen Modulation. Eine digitale Codierung liefert eine Robustheit der Kommunikationsverbindung gegenüber Beeinträchtigungen wie Mehrwege und Störung. Ferner erleichtern digitale Techniken eine Signalverschlüsselung, die für das Militär und viele Broadcast-Anwendungen erforderlich ist.
  • Als es anfangs vorgeschlagen wurde, erschien HDTV aufgrund von übermäßigen Bandbreiteanforderungen unpraktisch. Jedoch wurde realisiert, dass eine Kompression von digitalen HDTV-Signalen bis zu einem Grad erreicht werden kann, der eine Übertragung bei Bandbreiten ermöglicht, die vergleichbar sind mit den von analogen NTSC-Formaten. Ein derartiger Grad einer Signalkompression verbunden mit einer digitalen Übertragung des Sig nals ermöglicht einem HDTV-System, mit weniger Leistung und größerer Immunität gegenüber Kanalbeeinträchtigungen zu übertragen.
  • Eine Kompressionstechnik, die eine signifikante Kompression bieten kann unter Beibehaltung der Qualität von SDTV- und HDTV-Signalen verwendet adaptiv große Blöcke und Teilblöcke von codierten diskrete Kosinus-Transformations(DCT – discrete cosine transform)-Koeffizientendaten. Die Technik wird offenbart in dem U.S.-Patent Nr. 5,021,891 mit dem Titel „A-DAPTIVE BLOCK SIZE IMAGE COMPRESSION METHOD AND SYSTEM", das der Anmelderin der vorliegenden Erfindung erteilt wurde. DCT-Techniken werden auch offenbart in dem U.S.-Patent Nr. 5,107,345 mit dem Titel „ADAPTIVE BLOCK SIZE IMAGE COMPRESSION METHOD AND SYSTEM", das der Anmelderin der vorliegenden Erfindung erteilt wurde und durch Bezugnahme aufgenommen ist. Ferner ist das U.S.-Patent Nr. 5,452,104 mit dem Titel „ADAPTIVE BLOCK SIZE IMAGE COMPRESSION METHOD AND SYSTEM" ebenfalls der Anmelderin der vorliegenden Erfindung erteilt worden.
  • Techniken, die einen wesentlichen Grad an Kompression bieten, verwenden oft Codierschemata mit variabler Länge. Bei einer Codierung mit variabler Länge werden verschiedene Abtastwerte (samples) eines Signals unter Verwendung unterschiedlicher Längen von Codewörtern quantisiert. Der Codierer ist im Allgemeinen basierend auf den theoretischen oder gemessenen Statistiken eines Bildes ausgebildet, um den Gesamtrekonstruktionsfehler zu minimieren. Durch Ausnutzen der Wahrscheinlichkeitsverteilung der Charakteristiken in einem Bild sind hohe Kompressionsverhältnisse möglich.
  • Obwohl eine Codierung mit variabler Länge hohe Kompressionsverhältnisse liefern kann, verursacht es auch eine Komplikation aufgrund einer nicht- konstant codierten Datenrate. Eine Codierung mit variabler Länge erzeugt im Allgemeinen lange Codewörter für Bildbereiche mit vielen Details und kurze Codewörter für Bildbereiche mit wenig Details. Wenn eine Codierung mit variabler Länge zur Codierung von Video verwendet wird, können unterschied liche Rahmen des Videos mit unterschiedlichen Längen von Codewörtern codiert werden. Diese Codewörter müssen über einen Kommunikationskanal mit einer vorgegebenen Bitrate übertragen werden. Ferner müssen die Codewörter in Anwendungen wie SDTV- und HDTV-Systemen an den Decoder mit einer Rate übertragen werden, die eine Rekonstruktion der Rahmen des Videos ohne Fluktuationen in der Rahmenrate ermöglicht.
  • Ein Ratenpuffer wurde verwendet, um die Übertragungsrate der codierten Datenbits beizubehalten. Jedoch löst die Verwendung eines Puffers nicht an sich das Problem von Fluktuationen in der decodierten Rahmenrate. Ferner kann ein Pufferüberlauf entstehen, wenn ein Videorahmen mit langen Codewörtern codiert wurde, welche die Kapazität des Puffers übersteigen, was zu dem Verlust von Information führt. Folglich ist eine Ratensteuerung für die Videokompression erforderlich. Diese Probleme und Unzulänglichkeiten sind in der Technik bekannt und werden durch die vorliegende Erfindung auf die im Folgenden beschriebene Weise gelöst.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung ist ein neues und verbessertes System und ein Verfahren zum Steuern der codierten Datenrate in einem Videokompressionsverfahren. Wenn Video komprimiert wird, können unterschiedliche Segmente des Videos mit unterschiedlichen Längen von Codewörtern codiert werden. Um die Codewörter über einen Kommunikationskanal mit einer konstanten Rate zu übertragen, unter Beibehaltung der Zuverlässigkeit des Codierers, ist eine Steuerung der codierten Bitrate erforderlich. Das vorliegende System und das Verfahren erreicht eine Ratensteuerung durch Aufbau alternativer codierter Bitströme für jedes Segment des Videos und Auswahl der Alternative, die eine Bitrate am nächsten zu einer vorgegebenen Zielbitrate erzeugen würde. Die Zielbitrate wird basierend auf dem Ratenpufferstatus gewählt.
  • Gemäß der vorliegenden Erfindung ist eine adaptive Datenrate-Steuereinrichtung offenbart, die eine Vielzahl von Quantisierern aufweist. Die Raten-Steuereinrichtung empfängt als Eingang einen Block von Videodaten und derselbe Block von Videodaten wird an jeden der Quantisierer geliefert. Jeder Quantisierer quantisiert die Abtastwerte der Eingabe gemäß einer anderen Gewichtungsmaskenfunktion, um einen Block von quantisierten Koeffizienten zu erzeugen. Jede Gewichtungsmaskenfunktion wird von einem Quantisierungsindex identifiziert. Eine Gewichtungsmaskenfunktion ist ausgebildet, bestimmte Abtastwerte (samples) der Eingabe zu betonen (emphasize) und andere Abtastwerte abzuschwächen bzw. zu deakzentuieren (deemphasize) durch unterschiedliches Gewichten der Abtastwerte. Somit können die entsprechenden quantisierten Abtastwerte der verschiedenen Blöcke von quantisierten Koeffizienten als Ergebnis einer unterschiedlichen Gewichtung unterschiedliche Werte aufweisen.
  • Die adaptive Ratensteuereinrichtung weist auch eine Vielzahl von Codierern auf. Jeder Codierer empfängt einen der Blöcke von quantisierten Koeffizienten und erzeugt einen Strom von mit variabler Länge codierten Koeffizienten. Da jeder Block der quantisierten Koeffizienten von einer anderen Gewichtungsfunktion verarbeitet wurde, können die Abtastwerte jedes Blocks mit unterschiedlichen Längen von Codewörtern codiert werden. Als ein Ergebnis kann jeder Strom von mit variabler Länge codierten Koeffizienten eine Codelänge aufweisen, die von den anderen verschieden ist.
  • Die mit variabler Länge codierten Ströme werden an eine Auswahlvorrichtung bzw. an einen Selektor geliefert, während die Gesamtbitraten, die zur Übertragung jedes der mit variabler Länge codierten Ströme erforderlich sind, bestimmt werden und an einen Vergleicher bzw. Komparator geliefert werden. Die Gesamtbitraten sind proportional zu der Summe der Codelängen der codierten Ströme. Der Komparator vergleicht jede der Gesamtbitraten mit einer vorgegebenen Zielbitrate, um die Rate zu bestimmen, die dem Ziel am nächsten ist. Der Selektor wählt dann den mit variabler Länge codierten Strom, der eine Bitrate am nächsten zu dem vorgegebenen Ziel lie fert, und liefert diesen Strom an einen Ratenpuffer zur Vorbereitung einer Übertragung.
  • Nachdem der aktuelle Block des Videosignals verarbeitet wurde, bereitet sich die Ratensteuereinrichtung vor, den nächsten Block des Videosignals zu verarbeiten durch Aktualisieren der Gewichtungsmaskenfunktionen. Ein Quantisierungsindex-Aktualisierungselement wählt einen neuen Satz von Quantisierungsindizes, aus denen die Gewichtungsmaskenfunktionen abgeleitet werden. Die neuen Quantisierungsindizes werden basierend auf einem Modell der Rate im Verhältnis zu dem Quantisierungsindex und einer aktualisierten Zielbitrate gewählt.
  • Ein Modellelement leitet das Modell der Rate im Verhältnis zu dem Quantisierungsindex ab. Das Modell wird abgeleitet aus den Raten- und Quantisierungsindexdaten aus dem aktuellen Block des Videosignals. Somit werden die Quantisierungsindizes, die für den aktuellen Block des Videos verwendet werden, und die entsprechenden Bitraten verwendet, um das Modell abzuleiten. Die aktualisierte Zielbitrate wird von einem Zielbitrate-Aktualisierungselement basierend auf dem Ratenpufferfüllpegel nach Verarbeitung des aktuellen Blocks der Videoeingabe abgeleitet. Die aktualisierte Zielbitrate wird so gewählt, um einen konstanten Strom von Daten durch den Ratenpuffer beizubehalten sowie einen Ratenpufferüberlauf zu verhindern. Basierend auf dem Modell und der aktualisierten Zielbitrate ist ein neuer Quantisierungsindex der Index, der die aktualisierte Zielbitrate wie von dem Modell angezeigt liefern würde. Andere neue Quantisierungsindizes sind im Allgemeinen Funktionen des bereits bestimmten neuen Quantisierungsindexes.
  • Nachdem die Gewichtungsmaskenfunktionen aktualisiert sind, beginnt die adaptive Ratensteuereinrichtung der vorliegenden Erfindung die Verarbeitung des nächsten Blocks der Videoeingabe.
  • Kurze Beschreibung der Zeichnungen
  • Die Merkmale, Aufgaben und Vorteile der vorliegenden Erfindung werden offensichtlicher aus der im Folgenden dargelegten detaillierten Beschreibung in Verbindung mit den Zeichnungen, in denen gleiche Bezugszeichen Entsprechendes identifizieren und wobei:
  • 1 eine Blockdarstellung ist, die ein beispielhaftes Codierungssystem darstellt, in dem eine Ratensteuereinrichtung verwendet wird;
  • 2 eine Blockdarstellung ist, die einen beispielhaften Pre-Prozessor darstellt, der Koeffizienten für den Codierer erzeugt;
  • 3 eine Blockdarstellung ist, welche die Verarbeitungselemente des Codierers und die Ratensteuereinrichtung darstellt;
  • 4 ein Graph ist, der ein exponentielles Modell eines Quantisierungsindexes im Verhältnis zu der Bitrate darstellt;
  • 5a5c Blockdarstellungen sind, welche die Verarbeitungselemente darstellen, welche die Raten-gesteuerten Datenkomponenten eines Farbsignals zur Übertragung wählen;
  • 6 eine Blockdarstellung ist, welche die Verarbeitungselemente darstellt, welche die Quantisierungsindizes ableiten, die zur Quantisierung eines empfangenen Farbvideosignals verwendet werden; und
  • 7a7c Serien von Graphen sind, die Modelle eines Quantisierungsindexes im Verhältnis zur Bitrate für jede der Farbkomponenten eines Farbsignals darstellen; und
  • 7d ein Graph ist, der ein Verbundmodell eines Quantisierungsindexes im Verhältnis zur Bitrate für alle Komponenten eines Farbsignals darstellt.
  • Detaillierte Beschreibung der bevorzugten Ausführungsbeispiele
  • Ein beispielhaftes Datenkompressionssystem, das die Ratensteuereinrichtung der vorliegenden Erfindung enthält, wird in 1 dargestellt. Das in 1 gezeigte System kann verwendet werden, um ein Videosignal zur Übertragung zu komprimieren. Zum Beispiel kann das in 1 gezeigte System verwendet werden, um ein HDTV- oder SDTV-Signal zu komprimieren, obwohl es offensichtlich ist, dass jeder andere Typ von Videosignal oder sogar Audio von diesem Kompressionssystem einen Vorteil haben kann.
  • Wie in 1 gezeigt, wird ein Videosignal zuerst einem Pre-Prozessor bzw. Vorprozessor 10als Vorbereitung für eine Kompression präsentiert. Der Pre-Prozessor 10 kann einer Vielzahl von Zwecken dienen oder kann ganz aus dem System ausgeschlossen sein. Der Pre-Prozessor 10 kann zum Beispiel das Videosignal in Komponenten formatieren, die von dem Kompressionssystem einfacher verarbeitet werden können. Die Ausgabe des Pre-Prozessors 10 wird einem Codierer 12 präsentiert. Der Codierer 12 quantisiert die Daten, die er empfangen hat, und komprimiert dann die quantisierten Koeffizienten. Das durchgeführte Quantisierungsschema ist abhängig von den Rückkopplungsquantisierungsparametern von einer Ratensteuereinrichtung 14. Die Ratensteuereinrichtung 14 verwendet Statistiken, die das aktuell codierte Videosegment charakterisieren, um die Quantisierungsparameter zur Codierung des nächsten Videosegments adaptiv zu setzen. Die Ratensteuereinrichtung 14 präsentiert die Raten-gesteuerten codierten Daten auch einem Formatierer 16. Der Formatierer 16 nimmt die Ratengesteuerten Daten und assembliert die Daten in einen formatierten Bitstrom zur Übertragung auf einem Kommunikationskanal.
  • Eine mögliche Implementierung des Pre-Prozessors 10 wird in 2 dargestellt. Wie in 2 gezeigt wird, weist der Pre-Prozessor 10 einen zweidimensionalen diskreten Kosinus-Transformations(DCT – discrete cosine transform)-Operator 18 auf. Ein Segment eines Videosignals, im Allgemeinen ein NxN-Block von Zeit-abgetasteten Pixels, wird einem DCT-Operator 18 als Eingabe präsentiert. Aus dem Block der Zeit-abgetasteten Pixels erzeugt der DCT-Operator 18 einen Block von DCT-Koeffizienten.
  • Der DCT-Operator 18 ist ein Verfahren zum Konvertieren eines Zeitabgetasteten Signals in eine Frequenzdarstellung desselben Signals. Durch Konvertieren in eine Frequenzdarstellung zeigten die DCT-Techniken, dass sie einen sehr hohen Grad an Kompression ermöglichen, da Quantisierer gestaltet werden können, einen Vorteil aus den Frequenzverteilungscharakteristiken eines Bildes zu ziehen. Ein Kompressionssystem, das DCT-Transformationen verwendet, wird in den oben erwähnten U.S.-Patenten Nr. 5,021,891; 5,107,345 und 5,452,104 beschrieben.
  • Der Block von DCT-Koeffizienten wird dem Codierer 12 präsentiert, wobei die codierte Bitrate von der Ratensteuereinrichtung 14 gesteuert wird. In einem beispielhaften Ausführungsbeispiel werden der Codierer 12 und die Ratensteuereinrichtung 14 in einem Mikroprozessor oder digitalen Signalprozessor implementiert, die programmiert sind, die Funktionen wie beschrieben vorzusehen.
  • Unter Bezugnahme nun auf 3 werden die Details des Codierers 12 und der Ratensteuereinrichtung 14 gezeigt. Zum Zweck der Darstellung wird 3 hinsichtlich einer Verarbeitung eines Luminanzvideosignals beschrieben. Eine Verarbeitung eines Farbvideosignals wird später beschrieben. Der Codierer 12 weist eine Vielzahl von Quantisierern 20a20c und eine entsprechende Vielzahl von Codierern 22a22c mit variabler Länge auf. Drei Sätze von Quantisierern 20a20c und Codierern 22a22c mit variabler Länge werden gezeigt, obwohl anzumerken ist, dass stattdessen eine andere Anzahl von Elementen verwendet werden kann.
  • Jeder der drei Quantisierer 20a20c empfängt denselben Block von DCT-Koeffizienten, als F bezeichnet, als Eingabe. Jeder Quantisierer 20a20c empfängt von der Ratensteuereinrichtung 14 auch ein Signal eines Rückkopplungsquantisierungsindexes, mit q1–q3 bezeichnet. In 3 stellen die drei Quantisierer 20a20c drei Quantisierungseinstellungen oder drei Arten zum Quantisieren desselben Eingangssignals dar. Die Ausgaben der Quantisierer 20a20c sind Blöcke von quantisierten DCT-Koeffizienten, in 3 als QC1–QC3 bezeichnet.
  • In einem bevorzugten Ausführungsbeispiel ist die Quantisierungseinstellung, die von jedem Quantisierer 20a20c zur Quantisierung des Eingangssignals verwendet wird, eine Gewichtungsmaskenfunktion, die in der Technik auch als Quantisierungsmatrix bekannt ist. Jede Gewichtungsmaskenfunktion wird abgeleitet durch Multiplizieren einer ausgewählten Quantisierungsschrittgröße (qssi) mit den Koeffizienten einer Tabelle von Frequenzgewichtungen. Die qssi ist eine Funktion des Quantisierungsindexes qi derart, dass qssi = f(qi). (1)In einem bevorzugten Ausführungsbeispiel ist qssi = 2(qi). (2)
  • Eine Tabelle von Frequenzgewichtungen mit denselben Dimensionen wie der Block von eingegebenen DCT-Koeffizienten wird verwendet, um unterschiedliche Gewichtungen auf die verschiedenen DCT-Koeffizienten anzuwenden. Die Gewichtungen sind derart gestaltet, die eingegebenen Abtastwerte mit einem Frequenzinhalt, auf den das menschliche visuelle System empfindlicher ist, zu betonen und die Abtastwerte mit einem Frequenzinhalt, auf den das visuelle System weniger empfindlich ist, abzuschwächen. Die Gewichtungen werden basierend auf empirischen Daten gewählt. Ein Verfahren zur Gestaltung der Gewichtungsmasken für 8 × 8 DCT-Koeffizienten wird offenbart in ISO/IEC JTC1 CD 10918 „Digital compression and encoding of continuous-tone still images – part 1: Requirements and guidelines", International Standards Organization, 1994.
  • Somit wird der Quantisierungsindex q1 multipliziert mit der Tabelle von Frequenzgewichtungsmasken, um eine erste Gewichtungsmaskenfunktion zu erzeugen. Die DCT-Koeffizienten werden mit entsprechenden Koeffizienten der ersten Gewichtungsmaskenfunktion multipliziert, um einen ersten Block von quantisierten Koeffizienten, als QC1 bezeichnet, zu erzeugen. Ähnlich werden die Quantisierungsindizes q2 und q3 jeweils mit derselben Tabelle von Frequenzgewichtungsmasken multipliziert, um zweite und dritte Gewichtungsmaskenfunktionen jeweils in den Quantisierern 20b und 20c zu erzeugen. Dann werden die DCT-Koeffizienten mit den entsprechenden Koeffizienten der zweiten Gewichtungsmaskenfunktion multipliziert, um einen zweiten Block von quantisierten Koeffizienten zu erzeugen, als QC2 bezeichnet. Die DCT-Koeffizienten werden auch mit den entsprechenden Koeffizienten der dritten Gewichtungsmaskenfunktion multipliziert, um einen dritten Block von quantisierten Koeffizienten zu erzeugen, als QC3 bezeichnet. Die Beschriftung (k, l) betrifft die Position eines Koeffizienten in einem Block und FWM (frequency weighting mask) betrifft die Tabelle von Frequenzgewichtungsmasken, wobei die Operationen der Quantisierer 20a20c von den folgenden Gleichungen beschrieben werden können: QC1(k,l) = F(k,l) × FWM(k,l) × qss1; (3) QC2(k,l) = F(k,l) × FWM(k,l) × qss2; (4) QC3(k,l) = F(k,l) × FWM(k,l) × qss3; (5)
  • Die Signale QC1–QC3 werden jeweils in die Codierer 22a22c mit variabler Länge eingegeben. Die quantisierten DCT-Koeffizientenwerte werden jeweils codiert unter Verwendung von Codierern mit variabler Länge, um die Datenrate zu minimieren. Die drei in 3 gezeigten Codierer 22a22c mit variabler Länge können alle dasselbe Codierschema mit variabler Länge implementieren oder unterschiedliche Codieralgorithmen mit variabler Länge implementieren. Die Ausgaben der Codierer 22a22c mit variabler Länge sind Signale von serialisierten Strömen mit variabler Länge codierter Koeffizienten und werden als VC1–VC3 bezeichnet.
  • Eine Technik zur Implementierung von Codierern 22a22c mit variabler Länge verwendet eine Lauflängen(run length)-Codierung mit Nullen nach einer Zickzack-Bildabtastung (scanning) gefolgt von einer Huffman-Codierung. Diese Technik wird in den oben erwähnten U.S.-Patenten Nr. 5,021,831; 5,107,345 und 5,452,104 detailliert diskutiert und hier zusammengefasst. Ein Lauflängen-Codierer nimmt die quantisierten Signale, in diesem Fall QC1–QC3, und trennt die Null-Koeffizienten von den von Null verschiedenen Koeffizienten. Die Null-Werte werden als Lauflängen-Werte bezeichnet und werden Huffman-codiert. Die von Null verschiedenen Werte werden getrennt Huffman-codiert.
  • Huffman-Codes werden entweder aufgrund von den gemessenen oder den theoretischen Statistiken eine Bildes gestaltet. Es wurde beobachtet, dass die meisten natürlichen Bilder aus leeren oder relativ langsam variierenden Bereichen und aus lebhaften Bereichen bestehen, wie Objektgrenzen und kontrastreiche Textur. Huffman-Codierer mit Frequenzbereichs-Transformationen, wie der DCT, nutzen diese Merkmale aus durch Zuweisen von mehr Bits an die lebhaften Bereiche und weniger Bits an die leeren Bereiche.
  • Unter Bezugnahme weiterhin auf 3 ist zu sehen, dass die Signale VC1–VC3 in entsprechende Ratenmessvorrichtungen 24a24c eingegeben werden. Jede der Ratenmessvorrichtungen 24a24c bestimmt die Bitrate, die erforderlich ist zur Übertragung der jeweiligen mit variabler Länge codierten Koeffizienten der Signale VC1–VC3. Die Ausgabe aus jeder Ratenmessvorrichtung 24a24c ist ein Signal mit einem einzelnen Wert, der die Bitrate des Blocks von DCT-Koeffizienten anzeigt. Die Bitrate ist proportional zu der Anzahl von erforderlichen Bits, um den Block von DCT-Koeffizienten mit variabler Länge zu codieren. Die Signale, die den Ausgaben von den Ratenmessvorrichtungen 24a24c entsprechen, werden jeweils als r1–r3 bezeichnet.
  • Zwei Sätze von Signalen werden von dem Codierer 12 an die Ratensteuervorrichtung 14 ausgegeben. Die Ratensteuervorrichtung 14 empfängt die Signale der mit variabler Länge codierten Koeffizienten, VC1–VC3. Einer der VC1–VC3 wird von der Ratensteuervorrichtung 14 zur Übertragung ausgewählt. Die Ratensteuervorrichtung 14 empfängt auch die Signale r1–r3, welche die Bitraten der mit variabler Länge codierten Koeffizienten VC1–VC3 darstellen. Die Rateninformation hilft bei der Auswahl der mit variabler Länge codierten Koeffizienten. Die Ratensteuervorrichtung 14 erzeugt auch unter Verwendung der Rateninformation aktualisierte Quantisierungsindizes, die von den Quantisierern 20a20c bei der Quantisierung des nächsten Segments der Videoeingabe verwendet werden. Die aktualisierten Indizes werden gebildet, um die Bitrate des nächsten Segments der Videoeingabe zu steuern.
  • Wie in 3 gezeigt, werden Signale, welche die mit variabler Länge codierten Koeffizienten VC1–VC3 anzeigen, in einen Selektor 28 der Ratensteuervorrichtung 14 eingegeben, während Signale, welche die Raten r1–r3 anzeigen, in einen Komparator 30 und ein Modellelement 32 der Ratensteuervorrichtung 14 eingegeben werden. Der Komparator 30 vergleicht die drei Raten r1–r3 mit einer gewünschten Bitrate, um die am nächsten zu der gewünschten Rate liegende Rate auszuwählen. Basierend auf der gewählten Rate liefert der Komparator 30 ein Signal an den Selektor 28, das anzeigt, welcher der Ströme der mit variabler Länge codierten Koeffizienten VC1, VC2 oder VC3 zur Übertragung gewählt wurde. Die Funktion des Modellelements 32 wird später beschrieben.
  • Mehrere Auswahlalgorithmen können verwendet werden, um den Strom von mit variabler Länge codierten Koeffizienten zur Übertragung zu wählen. Ein bevorzugtes Ausführungsbeispiel wählt den Strom, der den absoluten codierten Ratenfehler minimiert. Dieses Verfahren vergleicht eine vorgegebene Zielbitrate mit jeder Raten r1, r2 und r3 gemäß der Gleichung: min |T – ri| (6) wobei T die Zielbitrate ist und ri für i = 1, 2, 3 sich jeweils auf die Raten r1–r3 bezieht. In einem alternativen Ausführungsbeispiel wählt der Selektor 28 den mit variabler Länge codierten Strom, der den Ratenfehler minimiert und der eine Rate hat, die geringer als die Zielrate ist. In einem zweiten alternativen Ausführungsbeispiel wählt der Selektor 28 den Strom, der die Minimumrate erzeugt.
  • Der Selektor 28 liefert das Signal des Stroms der mit variabler Länge codierten Koeffizienten, das zur Übertragung gewählt wurde, an eine Ratenpuffer 34, um auf die Übertragung durch den Kommunikationskanal zu warten. Das gewählte Signal stellt ein Raten-gesteuertes Videosignal dar. Dann wird, unter Bezugnahme zurück zu 1, das Raten-gesteuerte Datensignal an den Formatierer 16 geliefert, der das Datensignal mit Steuerungs- und Identifizierungssignalen zur Vorbereitung auf die Übertragung formatiert. Signale, die den Beginn eines Blocks, den Beginn eines Rahmens, die Blocknummer, die Rahmennummer und eine Quantisierungsinformation anzeigen, sind einige der Signale, die von dem Formatierer 16 an das Datensignal angehängt werden.
  • An diesem Punkt ist das aktuelle Segment der Videoeingabe verarbeitet zur Übertragung. Es ist nun erforderlich, das System zu aktualisieren, um das nächste Segment von Video Raten-gesteuert zu codieren und das nächste Segment zur Übertragung vorzubereiten. Wenn die Ratensteuereinrichtung 14 die codierte Bitrate anpasst durch Auswahl zwischen drei Strömen von codierten Koeffizienten für jedes Segment von Video, muss ein neuer Satz von drei Quantisierungsindizes abgeleitet werden.
  • Die neuen Quantisierungsindizes werden abgeleitet durch ein in 3 gezeigtes Quantisierungsindex-Aktualisierungselement 36. Das Quantisierungsindex-Aktualisierungselement 36 leitet die Indizes basierend auf Eingangssignalen von dem Modellelement 32 und einem Zielbitrate-Aktualisierungselement 38 ab. Das Modellelement 32 leitet ein Modell einer codierten Bitra te im Verhältnis zu einem Quantisierungsindex ab. Das Zielbitrate-Aktualisierungselement 38 leitet eine aktualisierte Zielbitrate für das nächste Segment einer Videoeingabe ab. Basierend auf der aktualisierten Zielbitrate und dem Modell der codierten Bitrate im Verhältnis zu dem Quantisierungsindex werden drei aktualisierte Quantisierungsindizes zur Quantisierung des nächsten Segments von Video gewählt.
  • Das Modellelement 32 leitet ein Modell des Quantisierungsindexes im Verhältnis zu der Bitrate für das nächste Videosegment basierend auf den Daten der Quantisierungsindizes und Raten von dem aktuellen Videosegment ab. Noch immer unter Bezugnahme auf 3 ist zu sehen, dass das Modellelement 32 als Eingabe Signale empfängt, welche die drei Quantisierungsindizes q1–q3 anzeigen, die zur Verarbeitung des aktuellen Videosegments verwendet werden. Das Modellelement 32 empfängt als Eingabe auch Signale der drei Raten r1–r3, die den Raten der aktuellen drei Ströme der mit variabler Länge codierten Koeffizienten VC1–VC3 entsprechen. Aus den drei Sätzen von Datenpunkten (q1, r1), (q2, r2) und (q3, r3) wird ein Modell abgeleitet durch Anpassen (fitting) einer Kurve durch die drei Datenpunkte. In dem bevorzugten Ausführungsbeispiel wird ein exponentielles Modell für die Kurvenanpassung verwendet.
  • Das exponentielle Modell wird gemäß der Gleichung definiert:
    Figure 00140001
    wobei xi den Quantisierungsindex bezeichnet, der einen Bereich von 0 bis 31 in einem bevorzugten Ausführungsbeispiel hat, obwohl anzumerken ist, dass stattdessen ein anderer Bereich von Quantisierungsindizes verwendet werden kann. Die entsprechende codierte Rate wird mit ratei(yi) bezeichnet. Die Parameter b, m des exponentiellen Modells können bestimmt werden, indem erkannt wird, dass: ln ratei = ln yi = ln b + xi ln m (8)
  • Wenn A den Satz von n (n = 3) Quantisierungsindizes bezeichnet, die verwendet werden, um den aktuellen Datenrahmen zu codieren, kann die Lösung der kleinsten Fehlerquadrate für das Modell definiert werden als:
    Figure 00150001
  • Eine Darstellung eines beispielhaften exponentiellen Modells wird in 4 gezeigt. Das in 4 gezeigte exponentielle Modell wird von den drei Paaren von Datenpunkten (q1, r1), (q2, r2) und (q3, r3) abgeleitet bzw. aus diesen gewonnen. Signale der Parameter b und m werden in das Quantisierungsindex-Aktualisierungselement 36 eingegeben.
  • Wie oben erwähnt, empfängt das Quantisierungsindex-Aktualisierungselement 36 als Eingabe auch Signale einer aktualisierten Zielbitrate von dem Zielbitrate-Aktualisierungselement 38. Unter Bezugnahme zurück zu 3 wird die aktualisierte Zielbitrate von dem Zielbitrate-Aktualisierungselement 38 bestimmt basierend auf dem Ratepufferstatus oder dem Ratepufferfüllpegel nach der Verarbeitung des aktuellen Segments der Videoeingabe. Eine Ratepufferstatus-Anzeigevorrichtung 40, die mit dem Ratepuffer 34 verbunden ist, bestimmt den Ratepufferstatus oder Füllpegel und sendet ein den Status anzeigendes Signal an das Zielbitrate-Aktualisierungselement 38.
  • BF soll den Ratepufferstatus bezeichnen. Die Ratepufferstatus-Anzeigevorrichtung 40 bestimmt den Ratepufferstatus nach der Verarbeitung des aktuellen Segments der Videoeingabe (BFk) wie folgt: BFk = BFk-1 + Rk – M (11)wobei BFk-1 der Ratepufferstatus vor der Verarbeitung des aktuellen Segments ist, Rk die Datenbitrate für das aktuelle Segment ist und M die feste Übertragungsbitrate ist.
  • Das Zielbitrate-Aktualisierungselement 38 bestimmt dann die aktualisierte Zielrate NTk gemäß folgender Gleichung: NTk = M – α(BFk – yBFmax). (12)wobei M wiederum die fese Übertragungsrate ist, BFmax die Größe des Ratenpuffers ist, α eine Konstante ist, die bestimmt, wie schnell sich der Ratenpuffer dem gewünschten Ratepuffertüllpegel nähert, und y (0.0 ≤ y ≤ 1.0) der gewünschte Ratepufferfüllpegel ist.
  • In einem bevorzugten Ausführungsbeispiel kann, um die Antwort des Ratensteuerungssystems zu verlangsamen, um Fluktuationen in der Bitrate zu verhindern, eine „geglättete" (smoothed) aktualisierte Zielrate, SNTk, wie folgt abgeleitet werden: SNTk = βNTk + (1 – β)SNTk-1 (13)SNTk kann statt NTk in dem Auswahlvorgang verwendet werden. In einem bevorzugten Ausführungsbeispiel ist α auf 0.2 gesetzt und β auf 0.4 gesetzt.
  • Ein Signal, das die aktualisierte Zielbitrate NTk anzeigt, wird dem Komparator 30 präsentiert zur Verwendung bei der Verarbeitung des nächsten Segments der Videoeingabe. Ein Signal, das die aktualisierte Zielbitrate NTk anzeigt, wird auch dem Quantisierungsindex-Aktualisierungselement 38 präsentiert zur Verwendung bei der Auswahl eines Satzes von drei aktualisierten Quantisierungsindizes (q1'–q3'), der von den Quantisierern 20a20c zur Verarbeitung des nächsten Segments der Videoeingabe verwendet wird.
  • Sobald das Quantisierungsindex-Aktualisierungselement 36 die Signale empfangen hat, welche die aktualisierte Zielbitrate NTk und die Parameter b und m des „Rate im Verhältnis zu Quantisierungsindex"-Modells anzeigen, kann ein aktualisierter Satz von Quantisierungsindizes (q1'–q3') zur Quantisierung des nächsten Segments der Videoeingabe gewählt werden.
  • Das Quantisierungsindex-Aktualisierungselement 36 kann eine Anzahl von Verfahren verwenden, um den aktualisierten Satz von Quantisierungsindizes q1'–q3' auszuwählen. Ein bevorzugtes Ausführungsbeispiel wählt zuerst den Quantisierungsindex q2'. Er wird gemäß der Gleichung bestimmt:
    Figure 00170001
    wobei der Wert NTk die aktualisierte Zielbitrate ist und die Werte b und m die Parameter des oben beschriebenen exponentiellen Modells sind.
  • Die beiden anderen Quantisierungsindizes q1' und q3' können entweder gemäß dem Ein-Anker(one anchor)- oder dem Zwei-Anker(two anchor)-Aktualisierungsverfahren aktualisiert werden. Diese Verfahren definieren, dass eine Spreizung (spread) der minimale Unterschied der Quantisierungsindizes zwischen jedem der drei Quantisierungsindizes q1', q2' und q3' ist. Die Spreizung ist im Allgemeinen für eine Luminanz-HDTV-Signaleingabe auf 5 eingestellt. Die Spreizung ist abhängig von dem Abstand zwischen den Indizes.
  • Das Ein-Anker-Verfahren definiert einen Ankerindex als A1. Ebenso definiert es qmax als den maximalen Quantisierungsindex, der gleich 31 ist. Ange nommen, 0 ≤ Spreizung ≤ A1 und 0 ≤ Spreizung ≤ |qmax – A1|, dann setzt das Ein-Anker-Verfahren q3' gleich zu A1, außer A1 ist innerhalb der Spreizung von q2'. In diesem Fall wird q3' auf einen Index gesetzt, der von q2' weggespreizt ist. Der Ein-Anker-Aktualisierungsalgorithmus wird wie folgt definiert:
    Wenn |q2' – A1| < Spreizung, dann q1' = q2'– Spreizung und q3' = q1'+ Spreizung.
    Wenn q2' ≥ A1 + Spreizung und q2' ≤ qmax –Spreizung, dann q1' = q2' + Spreizung und q3' = A1.
    Wenn q2' ≤ A1 – Spreizung und q2' ≥ Spreizung, dann q1' = q2' – Spreizung und q3' = A1.
    Wenn q2' ≥ A1 + Spreizung und q2' > qmax – Spreizung, dann q1' = q2' – Spreizung und q3' = A1.
    Wenn q2' ≤ A1 – Spreizung und q2' < Spreizung, dann q1' = q2' + Spreizung und q3' = A1.
    Wenn q2' = A1 und qmax – A1 < Spreizung, dann q1' = q2' – 2· Spreizung und q3' = q2' – Spreizung.
    Wenn q2' ≤ qmax – Spreizung und qmax – A1 < Spreizung, dann q1' = q2' – Spreizung und q3' = q2' + Spreizung.
    Wenn q2' = A1 und A1 < Spreizung, dann q1' = q3' + Spreizung und q3' = q2' + 2· Spreizung.
  • Das Zwei-Anker-Verfahren definiert zwei feste Anker A1 und A2, wobei A1 < A2. Das Zwei-Anker-Verfahren stellt sicher, dass Überschwingungen (overshoots) und Unterschreitungen (undershoots) der Bitraten auf akzeptable Pegel reduziert werden. Es ist zu beachten, dass die Spreizung der Minimumunterschied der Quantisierungsindizes zwischen jedem der drei Quantisierungsindizes q1', q2' und q3' ist. Es sei angenommen, dass 2 · Spreizung ≤ A2 – A1, Spreizung ≤ A1 und Spreizung ≤ |qmax – A2|. Das Zwei-Anker-Verfahren setzt q1' auf A1 und setzt q3' auf A2, außer A1 oder A2 befinden sich in der Spreizung von q2'. In diesen Fällen wird entweder q1' oder q3' auf einen von q2' weggespreizten Index gesetzt. Der Zwei-Anker-Aktualisierungsalgorithmus wird wie folgt definiert:
    Wenn |q2' – A1| < Spreizung und q2' ≥ Spreizung, dann q1' = q2'– Spreizung und q3' = A2.
    Wenn |q2' – A1| < Spreizung und q2' < Spreizung, dann q1' = q2' + Spreizung und q3' = A2.
    Wenn |q2' – A2| < Spreizung und q2' ≤ qmax – Spreizung, dann q1' = A1 und q3' = q2' + Spreizung.
    Wenn |q2' – A2| < Spreizung und q2' > qmax – Spreizung, dann q1' = A1 und q3' = q2' – Spreizung.
    Wenn |q2' – A1| ≥ Spreizung und |q2' – A2| ≥ Spreizung, dann q1' = A1 und q3' = A2.
  • In einem bevorzugten Ausführungsbeispiel werden, wenn der mittlere Quantisierungsindex q2' zu viele Bits erzeugt, alle Quantisierungsindizes für den nächsten Rahmen erhöht, wodurch die Bitrate für den nächsten Datenblock verringert wird. Wenn der mittlere Quantisierungsindex q2' zu wenig Bits erzeugt, werden alle Quantisierungsindizes für den nächsten Rahmen verringert, wodurch die Bitrate für den nächsten Datenblock erhöht wird.
  • Es sollte angemerkt werden, dass statt der Wahl von drei Quantisierungsindizes zur Verarbeitung jedes Blocks der Dateneingabe eine andere Anzahl von Indizes stattdessen verwendet werden kann. Wie oben erwähnt, kann die Anzahl von Quantisierern eine von drei verschiedene Anzahl sein. In diesem Fall ist eine entsprechende Anzahl von Codierern mit variabler Länge erforderlich, um die quantisierten Koeffizienten zu codieren, die an den Selektor geliefert werden, der dann das Raten-gesteuerte Signal aus allen codierten Koeffizienten wählt. Ebenso bestimmt eine entsprechende Anzahl von Ratenmessvorrichtungen die Datenbitraten der codierten Koeffizienten. Die Raten werden an den Komparator geliefert, der alle Raten mit der vorgegebenen Zielrate vergleicht, um dem Vorgang der Auswahl des Ratengesteuerten Signals zu unterstützen. Die Raten werden auch an das Modellelement geliefert, das den Quantisierungsindex im Verhältnis zu dem Bitratenmodell ableitet. Die erforderliche Anzahl von Quantisierungsindizes wer den aus dem Modell gewählt. Somit kann der gewünschte codierte Bitstrom aus einer vorgegebenen beliebigen Vielzahl von codierten Bitströmen gewählt werden.
  • Obwohl die vorliegende Erfindung bisher in erster Linie in Bezug auf Luminanz-Videosignale beschrieben wurde, ist anzumerken, dass die vorliegende Erfindung genauso auf Farbsignale anwendbar ist. Eine Technik zur Verarbeitung von Farbsignalen ist, zuerst das Signal von dem RGB-Raum in einen YC1C2-Raum zu konvertieren, wobei Y die Luminanz- oder Helligkeitskomponente ist und C1 und C2 die Chrominanz- oder Farbkomponenten sind. Aufgrund der geringen räumlichen Empfindlichkeit des Auges auf Farbe, tasten (sub-sample) die meisten Forscher die C1- und C2-Komponenten um einen Faktor vier in den horizontalen und vertikalen Richtungen ab. Zwei mögliche YC1C2-Darstellungen sind die YIQ-Darstellung und die YUV-Darstellung, die beide in der Technik weithin bekannt sind. Unter Bezugnahme auf 1 können sowohl die RGB- zu YC1C2-Umwandlung (nicht gezeigt) als auch das Unter-Abtasten (nicht gezeigt) von dem Pre-Prozessor 10 durchgeführt werden.
  • In einem bevorzugten Ausführungsbeispiel zur Verarbeitung von Farbvideo werden vier Luminanzkomponenten (im Folgenden als Y1–Y4 bezeichnet) und zwei Chrominanzkomponenten (im Folgenden als C1 und C2 bezeichnet) verwendet werden, um jedes Segment einer Videoeingabe darzustellen. Es gibt vier Luminanzkomponenten für jede Chrominanzkomponente, da jede Chrominanzkomponente mit vier unter-abgetastet wird. Für jede der sechs Komponenten werden drei Quantisierungsindizes gewählt, um drei Blöcke von quantisierten Koeffizienten für jede Komponente zu erzeugen. Ferner werden drei Ströme von mit variabler Länge codierter Koeffizienten aus jedem Satz von drei Blöcken von quantisierten Koeffizienten erzeugt. Die Ratensteuervorrichtung 14 muss einen aus jedem Satz von drei Strömen zur Übertragung auswählen.
  • Die 5a5c stellen die Elemente der Ratensteuervorrichtung 14 dar, welche die Auswahl der Ströme von mit variabler Länge codierter Koeffizienten für die Eingaben Y1–Y4, C1 und C2 durchführen. Wie in der obigen Beschreibung zur Verarbeitung eines nur-Luminanzsignals zeigen die 5a5c, dass drei alternative codierte Signale verwendet werden, um jedes Ratengesteuerte Signal zu wählen. Es sollte jedoch angemerkt werden, dass die vorliegende Erfindung gleichermaßen in Systemen anwendbar ist, die eine andere Anzahl von alternativen codierten Signalen erzeugen, woraus das Raten-gesteuerte Signal gewählt wird.
  • In dem dargestellten Ausführungsbeispiel von 5a5c wurde jede der vier Luminanzeingaben Y1–Y4 basierend auf denselben Quantisierungsindizes (q1–q3) quantisiert, um q1(Y1)–q1(Y4), q2(Y1)–q2(Y4) und q3(Y1)–q3(Y4) zu erzeugen. Es sollte jedoch angemerkt werden, dass die verschiedenen Luminanzkomponenten Y1–Y4 basierend auf unterschiedlichen Quantisierungsindizes quantisiert werden können. Die Quantisierung wird von Quantisierern durchgeführt, wie den in 3 gezeigten Quantisierern 20a20c. Ferner wird jede quantisierte Komponente codiert unter Verwendung einer Codierung mit variabler Länge, wodurch Signale erzeugt werden, die in 5a als VC[q1(Y1)]–VC[q1(Y4)], VC[q2(Y1)]–VC[q2(Y4)] und VC[q3(Y1)]–VC[q3(Y4)] bezeichnet werden. Die Codierung mit variabler Länge wird von Codierern mit variabler Länge durchgeführt, wie den Codierern 22a22c mit variabler Länge in 3.
  • Die Chrominanzeingaben C1 und C2 werden ebenfalls quantisiert und mit variabler Länge codiert. Die Quantisierungsindizes für die C1- und C2-Komponenten sind nicht unbedingt dieselben, aber können dieselben sein wie die für Y1 – Y4 verwendeten. In den 5b und 5c werden die codierten C1- und C2-Komponenten als VC[q1(C1)], VC[q2(C1)] und VC[q3(C1)] und VC[q1(C2)], VC[q2(C2)] und VC[q3(C2)] bezeichnet. Die Codierung mit variabler Länge wird von Codierern mit variabler Länge durchgeführt, wie den Codierern 22a22c mit variabler Länge in 3. Genauso wie für die Luminanzkomponenten wird die Quantisierung der Chrominanzkomponeten von Quantisierern durchgeführt, wie den Quantisierern 20a20c von 3, und die Codierung mit variabler Länge wird von Elementen durchgeführt, wie den Codierern 22a22c mit variabler Länge in 3.
  • Bei der Verarbeitung der Luminanzkomponenten werden die mit variabler Länge codierten Komponenten, die basierend auf demselben Quantisierungsindex quantisiert wurden, in dieselbe Ratenmessvorrichtung eingegeben. Wie in 5a gezeigt, werden die Signale VC[q1(Y1)]–VC[q1(Y4)] in die Ratenmessvorrichtung 42a eingegeben, die Signale VC[q2(Y1)]–VC[q2(Y4)] werden in die Ratenmessvorrichtung 42b eingegeben und die Signale VC[q3(Y1)]–VC[q3(Y4)] werden in die Ratenmessvorrichtung 42c eingegeben. Demgemäß wird eine Gesamtrate für alle Luminanzkomponenten entsprechend einem bestimmten Quantisierungsindex bestimmt. Signale von Raten, die von den Ratenmessvorrichtungen 42a, 42b und 42c bestimmt werden, werden jeweils als r1(Y), r2(Y) und r3(Y) bezeichnet und r1(Y)–r3(Y) werden in den Komparator 44 eingegeben. Der Komparator 44 empfängt als Eingabe auch ein Signal mit einer vorgegebenen Zielbitrate. In einem bevorzugten Ausführungsbeispiel verwendet der Komparator 44 dann das Auswahlkriterium des minimalen absoluten Ratenfehlers, wie in der Gleichung (6) oben beschrieben, um die Raten r1(Y), r2(Y) und r3(Y) mit der Zielbitrate zu vergleichen, um die die am nächsten zur Zielbitrate liegende Rate zu wählen, und ein Signal des Quantisierungsindexes entsprechend der gewählten Rate wird an den Selektor 46 geliefert. Der Selektor 46 empfängt als Eingabe auch die mit variabler Länge codierten Koeffizienten VC[q1(Y1–Y4)], VC[q2(Y1–Y4)] und VC[q3(Y1–Y4)]. Der Selektor 46 wählt dann die vier Komponenten der Luminanzeingabe, die von dem ausgewählten Quantisierungsindex quantisiert wurden, und präsentiert diese vier Komponenten dem Ratenpuffer 48 zur Übertragung.
  • Unter Bezugnahme auf 5b ist zu sehen, dass die C1-Chrominanzkomponente auf eine ähnliche Weise verarbeitet wird wie die Luminanzkomponenten, außer dass jede der Ratenmessvorrichtungen 50a – 50c nur die Datenrate einer einzelnen C1-Komponente bestimmen muss, nicht vier Luminanz komponenten. Die Ratenmessvorrichtung 50a empfängt als Eingabe die mit variabler Länge codierten Koeffizienten VC[q1(C1)], die dem Quantisierungsindex q1 entsprechen, und erzeugt die Datenrate r1(C1) als Ausgabe. Ähnlich empfangen die Ratenmessvorrichtungen 50b und 50c als Eingaben die variable-Längen-Koeffizienten VC[q2(C1)] und VC[q3(C1)], die jeweils den Quantisierungsindizes q2 und q3 entsprechen, und erzeugen die Datenraten r2(C1) und r3(C1) als Ausgabe. Die Raten r1(C1)–r3(C1) anzeigenden Signale werden an einen Komparator 52 eingegeben. Der Komparator 52 kann wiederum das Auswahlkriterium des minimalen absoluten Ratenfehlers der obigen Gleichung (6) verwenden, um die die am nächsten zur Zielbitrate liegende Rate zu wählen, und dem Selektor 54 ein Signal des Quantisierungsindexes entsprechend der gewählten Rate zu präsentieren. Der Selektor 54 wählt dann aus den drei C1-Komponenten VC[q1(C1)]–VC[q3(C1)] die eine C1-Komponente, die von dem gewählten Quantisierungsindex quantisiert wurde, um sie dem Ratenpuffer 56 zur Übertragung zu präsentieren.
  • Unter Bezugnahme nun auf 5c ist zu sehen, dass die C2-Komponente ebenfalls auf eine zu der C1-Komponente ähnlichen Weise verarbeitet wird. Wiederum bestimmt jede Ratenmessvorrichtung 58a58c die Datenrate, die zu jedem der drei mit variabler Länge codierten Ströme VC[q1(C2)], VC[q2(C2)] und VC[q3(C2)] gehört. Die Raten, als r1(C2)–r3(C2) bezeichnet, werden in einen Komparator 60 eingegeben. In einem bevorzugten Ausführungsbeispiel wählt der Komparator 60 aus den Raten r1(C2) – r3(C2) die am nächsten zur Zielbitrate liegende Rate basierend auf dem Auswahlkriterium des absoluten Ratenfehlers der obigen Gleichung (6) und präsentiert einem Selektor 62 ein Signal des Quantisierungsindexes entsprechend der gewählten Rate. Der Selektor 62 wählt die mit variabler Länge codierten Koeffizienten, die gemäß des gewählten Quantisierungsindexes erzeugt wurden, und präsentiert das Signal der gewählten Koeffizienten dem Ratenpuffer 64 zur Übertragung.
  • Es sollte angemerkt werden, dass, obwohl die 5a5c die Komparatoren 44, 52 und 60 als drei getrennte Blöcke zeigen, die drei Blöcke kombiniert werden können, so dass ein einziger Komparator als Eingabe alle Signale r1(Y)–r3(Y), r1(C1)–r3(C1) und r1(C2)–r3(C2) empfängt. Der einzelne Komparator empfängt als Eingabe auch eine Gesamtzielbitrate. Ähnlich können die Selektoren 46, 54 und 62 als ein einziger Selektor kombiniert werden, der als Eingabe alle Koeffizienten mit variabler Länge VC[q1(Y1)]–VC[q1(Y4)], VC[q1(C1)]–VC[q3(C1)] und VC[q1(C2)]–VC[q3(C2)] empfängt. Zusätzlich kann der einzelne Selektor alle ausgewählten Komponenten an einen kombinierten Ratenpuffer statt die drei Ratenpuffer 48, 56 und 64 senden.
  • Der einzelne Komparator und der einzelne Selektor können eine Anzahl von Entscheidungsregeln verwenden, um die Ströme von Koeffizienten mit variabler Länge zur Übertragung zu wählen. In einem bevorzugten Ausführungsbeispiel werden die 27 möglichen Kombinationen der Summe ri(Y) + rj(C1) + rk(C2), (1 ≤ i ≤ 3, 1 ≤ j ≤ 3, 1 ≤ k ≤ 3) jeweils verglichen mit der Gesamtzielbitrate. Die Summe, die der Gesamtzielbitrate am nächsten ist oder den absoluten codierten Ratenfehler minimiert, wird bestimmt. Dann wird ein Signal, das entsprechend der Summe die drei Quantisierungsindizes anzeigt, an den einzelnen Selektor geliefert, der die Komponenten auswählt, die von den drei Quantisierungsindizes quantisiert wurden, und präsentiert diese Komponenten dem Ratenpuffer in Vorbereitung einer Übertragung. Als ein Beispiel können sich die Raten r2(Y), r1(C1) und r1(C2) zu einem Wert summieren, der am nächsten zu der Gesamtzielbitrate liegt. Der einzelne Komparator präsentiert somit die Quantisierungsindizes q2 für die Y-Komponenten, q1 für die C1-Komponente und q1 für die C2-Komponente dem einzelnen Selektor. Der einzelne Selektor wählt dann die Signale VC[q2(Y1-Y4)], VC[q1(C1)] und VC[q1(C2)] und präsentiert diese Signale dem Ratenpuffer zur Übertragung.
  • Genauso wie für das Luminanzvideo muss eine Ratensteuereinrichtung zur Verarbeitung eines Farbvideos die Quantisierungsindizes zur Verarbeitung des nächsten Videosegments aktualisieren. Wiederum basieren die aktualisierten Indizes auf einem Modell eines Quantisierungsindexes im Verhältnis zur Rate, abgeleitet aus dem Quantisierungsindex und Ratendaten des ak tuellen Videosegments. Unter Bezugnahme nun auf 6 erzeugt ein Quantisierungsindex-Aktualisierungselement 66 Quantisierungsindizes q1'–q3' für das nächste Videosegment basierend auf zwei Eingaben. Eine Eingabe ist ein Signal der aktualisierten Zielbitrate. In einem bevorzugten Ausführungsbeispiel ist die Zielbitrate eine Gesamtzielbitrate für alle Luminanz- und Chrominanz-Komponenten, die von einem Gesamtzielbitrate-Aktualisierungselement 68 erzeugt wird. Eine weitere Eingabe ist ein Signal der Parameter (b und m) des Modells der Rate im Verhältnis zu dem Quantisierungsindex, abgeleitet von einem Modellelement 70. In dem bevorzugten Ausführungsbeispiel leitet das Modellelement 70 ein zusammengesetztes Modell für alle Luminanz- und Chrominanz-Komponenten ab.
  • Die Operation des bevorzugten Ausführungsbeispiels des Modellelements 70 kann unter Bezugnahme auf die 7a7d in Verbindung mit 6 besser verstanden werden. Wie in 6 gezeigt, weist das Modellelement 70 drei Komponentenmodellelemente auf, die bezeichnet werden als Y-Modellelement 72, C1-Modellelement 74 und C2-Modellelement 76. Die drei Komponentenelemente leiten Komponentenmodelle ab, von denen ein zusammengesetztes Modell von einem zusammengesetzten Modellelement 78 abgeleitet wird.
  • Jedes Komponentenmodellelement leitet ein exponentielles Modell des Quantisierungsindexes im Verhältnis zu der Rate für die Komponente, basierend auf den verwendeten Quantisierungsindizes und ihrer entsprechenden Raten, von dem aktuellen Segment der Eingabe ab. Das Y-Modellelement 72 empfängt als Eingabe drei Sätze von Datenpunkten (q1(Y), r1(Y)), (q2(Y), r2(Y)) und (q3(Y), r3(Y)), die durch (qi(Y), ri(Y)) in 6 dargestellt werden. Die Datenraten ri(Y) beziehen sich auf die Gesamtraten vom Codieren aller vier Luminanzkomponenten eines Segments einer Videoeingabe für die drei Quantisierungsindizes. Die drei Sätze von Datenpunkten werden verwendet, um das in 7a gezeigte exponentielle Y-Komponentenmodell gemäß den obigen Gleichungen (7)–(10) abzuleiten.
  • Das C1-Modellelement 74 empfängt als Eingabe drei Sätze von Datenpunkten (q1(C1), r1(C1)), (q2(C1), r2(C1)) und (q3(C1), r3(C1)), die durch (qi(C1), ri(C1)) in 6 dargestellt werden. Die Datenpunkte sind die für die C1-Komponente verwendeten Quantisierungsindizes und die Datenraten, die aus der Verwendung der Quantisierungsindizes resultieren. Die drei Sätze von Datenpunkten werden verwendet, um das in 7b gezeigte exponentielle C1-Komponentenmodell wiederum gemäß den obigen Gleichungen (7)–(10) abzuleiten. Dann werden basierend auf dem Modell die Raten an den aktuellen Quantisierungsindizes für die Y-Komponente geschätzt. In 7b wurde q2(C1) gleich q2(Y) gesetzt, so dass r2(C1) basierend auf q2(Y) gleich r2(C1) bleibt. Jedoch werden Schätzungen für r1(C1) basierend auf q1(Y) und r3(C1) basierend auf q3(Y) abgeleitet.
  • Ähnlich empfängt das C2-Modellelement 76 als Eingabe drei Sätze von Datenpunkten (q1(C2), r1(C2)), (q2(C2), r2(C2)) und (q3(C2), r3(C2)), die durch (qi(C2), ri(C2)) in 6 dargestellt werden. Die Datenpunkte sind die für die C2-Komponente verwendeten Quantisierungsindizes und die Datenraten, die aus der Verwendung der Quantisierungsindizes resultieren. Diese drei Sätze von Datenpunkten werden verwendet, um das in 7c gezeigte exponentielle C2-Komponentenmodell gemäß den obigen Gleichungen (7)–(10) abzuleiten. Ebenso werden basierend auf dem C2-Komponentenmodell die Raten an den aktuellen Quantisierungsindizes für die Y-Komponente geschätzt. Somit werden r1(C2) basierend auf q1(Y), r2(C2) basierend auf q2(Y) und r3(C2) basierend auf q3(Y) geschätzt. In 7b ist q2(C2) = q2(Y), somit bleibt r2(C2) basierend auf q2(Y) r2(C2).
  • Aus den drei Komponentenmodellen wird ein zusammengesetztes Modell abgeleitet. Das zusammengesetzte Modell basiert auf drei Sätzen von Datenpunkten: (q1(Y), r1(total)), (q2(Y), r2(total)) und (q3(Y), r3(total)). Die Gesamtraten werden gemäß den folgenden Gleichungen bestimmt: r1(total) = r1(Y) + r1(C1) basierend auf q1(Y) + r1(C2) basierend auf q1(Y); (15) r2(total) = r2(Y) + r2(C1) basierend auf q2(Y) + r2(C2) basierend auf q2(Y); (16) r3(total) = r3(Y) + r3(C1) basierend auf q3(Y) + r3(C2) basierend auf q3(Y). (17)
  • Das zusammengesetzte Modell wird in 7d dargestellt. Wiederum wird ein exponentielles Modell gemäß der Gleichung (7) verwendet, um das Modell abzuleiten. Ferner wird die Lösung der kleinsten Fehlerquadrate für das Modell, wie in den Gleichungen (9)–(10) definiert, verwendet, um die Modellparameter b(total) und m(total) abzuleiten. Wie oben erwähnt, werden Signale von b(total) und m(total) in das Quantisierungsindex-Aktualisierungselement 66 eingegeben.
  • Die andere Eingabe in das Quantisierungsindex-Aktualisierungselement 66, die aktualisierte Gesamtzielbitrate, wird von dem Gesamtzielbitrate-Aktualisierungselement 68 basierend auf dem Ratenpufferstatus nach Verarbeitung des aktuellen Segments des Eingabesignals abgeleitet.
  • Unter Bezugnahme zurück auf die 5a5c ist zu sehen, dass die gewählten Y-, C1- und C2-Komponenten den Ratenpuffern 48, 56 und 64 vor der Übertragung durch den Kommunikationskanal präsentiert werden. Wie oben beschrieben sollte angemerkt werden, dass, obwohl die Ratenpuffer 48, 56 und 64 als drei getrennte Ratenpuffer gezeigt werden, es nur einen Ratenpuffer gemeinsam für alle Komponenten geben kann. In dem in 6 dargestellten Ausführungsbeispiel empfängt ein einziger Ratenpuffer 80 alle ausgewählten Y-, C1- und C2-Komponenten. Eine Ratenpufferstatus-Anzeigevorrichtung 82 bestimmt dann den Ratenpufferstatus (BFk) nach der Verarbeitung des aktuellen Segments einer Videoeingabe basierend auf der obigen Gleichung (11). Der Ratenpufferstatus BFk wird an das Gesamtzielbitrate-Aktualisierungselement 68 geliefert, das die aktualisierte Zielbitrate NTk basierend auf der obigen Gleichung (12) ableitet. Das Gesamtzielbitrate-Aktualisierungselement 68 liefert dann die aktualisierte Zielbitrate NTk an das Quantisierungsindex-Aktualisierungselement 66.
  • Nachdem es Eingaben von b(total), m(total) und der aktualisierten Gesamtzielbitrate erlangt hat, ist das Quantisierungsindex-Aktualisierungselement 66 nun bereit, aktualisierte Quantisierungsindizes zur Verarbeitung des nächsten Segments der Videoeingabe zu wählen. Es werden drei Quantisierungsindizes für jede Y-, C1- und C2-Komponente gewählt. Für die Y-Komponente werden die Quantisierungsindizes als q1'(Y)–q3'(Y) bezeichnet, für die C1-Komponente werden die Quantisierungsindizes als q1'(C1)–q3'(C1) bezeichnet und für die C2-Komponente werden die Quantisierungsindizes als q1'(C2)–q3'(C2) bezeichnet.
  • In einem bevorzugten Ausführungsbeispiel wählt der Aktualisierungsalgorithmus denselben mittleren Quantisierungsindex für alle Y-, C1- und C2-Komponenten. Der Quantisierungsindex q2'(Y) wird gemäß der obigen Gleichung (3) gewählt. Die mittleren Quantisierungsindizes für die C1- und C2-Komponenten, q2'(C1) und q2'(C2), werden gleich q2'(Y) gesetzt. Dann wird das oben beschriebene Zwei-Anker-Verfahren verwendet, um q1'(Y) und q3'(Y) für alle Luminanzkomponenten zu setzen. Die anderen C1- und C2-Quantisierungsindizes werden so gewählt, dass sie unterschiedlich sind und einen absoluten Spreizungsunterschied jeweils von den q2'(C1)- und q2'(C2)-Quantisierungsindizes haben. Diese aktualisierten Quantisierungsindizes werden dann an einen Codieren 12 (1) präsentiert zur Verwendung bei einer Quantisierung des nächsten Segments eines Eingabesignals.
  • Die vorangegangene Beschreibung der bevorzugten Ausführungsbeispiele ist vorgesehen, um Fachleuten zu ermöglichen, die vorliegende Erfindung herzustellen oder zu verwenden. Die verschiedenen Modifizierungen dieser Ausführungsbeispiele sind für Fachleute offensichtlich und die hier definierten generischen Prinzipien können auf andere Ausführungsbeispiele ohne die Verwendung der Erfindungsgabe angewendet werden. Folglich soll die vorliegende Erfindung nicht auf die hier gezeigten Ausführungsbeispiele beschränkt sein, sondern soll dem weitesten Umfang entsprechen, wie von den angehängten Ansprüchen definiert.

Claims (37)

  1. Ein Unter- bzw. Teilsystem zum adaptiven Steuern der Kodierungsbitrate eines Videosignals in einem Bildkompremierungssystem, wobei das Teilsystem Folgendes aufweist: Kodiermittel (12) zum Empfangen eines Segments eines Videosignals und zum Generieren einer Vielzahl von kodierten Strömen (VC1, VC2, VC3) von Datenbits gemäß einem vorbestimmten Satz von Quantisierungseinstellungen; und Ratensteuerungsmittel (14) zum Empfangen der Vielzahl von kodierten Strömen und Auswählen eines kodierten Stromes aus der Vielzahl von kodierten Strömen gemäß einem vorbestimmten Auswahlalgorithmus basierend auf einer Zielbitrate; wobei die Ratensteuerungsmittel (14) weiterhin Folgendes aufweisen: einen Puffer (34) zum Empfangen des ausgewählten kodierten Stroms in Vorbereitung auf die Übertragung, wobei der Puffer (34) einen Pufferstatus als Ergebnis des Empfangens des ausgewählten kodierten Stromes besitzt; und Aktualisierungsmittel (36, 38) zum Generieren eines aktualisierten Satzes der Quantisierungseinstellungen und einer aktualisierten Zielbitrate gemäß dem Pufferstatus für das nächste Segment des Videosignals.
  2. Teilsystem nach Anspruch 1, wobei die Kodiermittel (12) Folgendes aufweisen: eine Vielzahl von Quantisierern (20), wobei jeder der Quantisierer zum Empfangen des Segments der Dateneingabe und zum Quantisieren des Segments der Dateneingabe gemäß einer der Quantisierungseinstellungen zum Generieren eines quantisierten Datenstromes dient; eine Vielzahl von Kodierern mit variabler Länge (22), wobei jeder zum Empfangen eines der quantisierten Ströme und zum Kodieren des empfangenen quantisierten Stromes gemäß eines Kodieralgorithmus mit variabler Länge zum Generieren eines der kodierten Ströme von Datenbits dient.
  3. Teilsystem nach Anspruch 1, wobei die Kodiermittel (12) weiterhin Ratenmessungsmittel (24) aufweisen zum Empfangen der Vielzahl von kodierten Strömen und zum Bestimmen einer Bitrate entsprechend einer jeden der Vielzahl von kodierten Ströme und wobei die Bitraten abhängig sind von den Quantisierungseinstellungen.
  4. Teilsystem nach Anspruch 1, wobei die Ratensteuerungsmittel (14) Aktualisierungsmittel zum Generieren eines aktualisierten Satzes der Quantisierungseinstellungen gemäß dem Status der Ratensteuerungsmittel (14) nach dem Generieren des ausgewählten kodierten Stromes aufweisen.
  5. Teilsystem nach Anspruch 3, wobei die Ratensteuerungsmittel (14) Auswahlmittel (28, 30) aufweisen, und zwar zum Empfangen der Vielzahl von kodierten Strömen (VC1, VC2, VC3) und der entsprechenden Bitraten (r1, r2, r3) und zum Auswählen des kodierten Stromes gemäß dem vorbestimmten Auswahlkriterium, wobei das vorbestimmte Auswahlkriterium auf den Bitraten basiert.
  6. Teilsystem nach Anspruch 2, wobei der Kodieralgorithmus mit variabler Länge eine Huffman-Kodierung aufweist.
  7. Teilsystem nach Anspruch 1, wobei der Kodierungsalgorithmus mit variabler Länge eine Run-Length- bzw. Lauflängen-Kodierung von Nullen gefolgt durch Huffman-Kodierung aufweist.
  8. Teilsystem nach Anspruch 1, wobei jede der Quantisierungseinstellungen eine Gewichtungsmaskenfunktion generiert gemäß einem Quantisierungsindex aufweist.
  9. Teilsystem nach Anspruch 8, das weiterhin ein Modellelement (32) aufweist, zum Empfangen der Quantisierungsindizes und der Bitraten (r1, r2, r3) und zum Herleiten eines Modells des Quantisierungsindex bezüglich der Rate gemäß der Quantisierungsindizes und der Bitraten (r1, r2, r3); wobei die Aktualisierungsmittel weiterhin die Parameter des Modells empfangen und den aktualisierten Satz der Quantisierungseinstellungen gemäß der Modellparameter generieren.
  10. Teilsystem nach Anspruch 10, wobei das Modell ein exponentielles Modell ist.
  11. Teilsystem nach Anspruch 5, wobei das vorbestimmte Auswahlkriterium, das durch die Auswahlmittel (30, 28) verwendet wird, einen absoluten, kodierten Ratenfehler basierend auf der vorbestimmten Zielbitrate minimiert.
  12. Teilsystem nach Anspruch 1, das weiterhin einen Vorprozessor (10) aufweist, zum Empfangen eines Blocks von Pixeldaten und zum Ausführen einer diskreten Cosinus-Transformations- bzw. DCT-Operation (DCT = discrete cosine transform) hinsichtlich des Blocks von Pixeldaten, um einen Block von DCT-Koeffizientwerten zu generieren, der den Kodiermitteln (12) als das Segment des Videosignals präsentiert wird.
  13. Teilsystem nach Anspruch 9, wobei das vorbestimmte Auswahlkriterium, das von den Auswahlmitteln (28, 30) verwendet wird, einen absoluten bzw. Betragskodierratenfehler basierend auf der vorbestimmten Zielbitrate minimiert; und wobei die Aktualisierungsmittel (36, 38) weiterhin eine aktualisierte Zielbitrate gemäß dem Pufferstatus generieren.
  14. Teilsystem nach Anspruch 13, wobei die aktualisierte Zielbitrate weiterhin gemäß einem Zielpufferfüllpegel generiert wird.
  15. Teilsystem nach Anspruch 14, wobei die Aktualisierungsmittel (36, 38) einen aktualisierten Satz der Quantisierungsindizes gemäß dem Modell generieren.
  16. Teilsystem nach Anspruch 15, wobei ein Index des aktualisierten Satzes von Quantisierungsindizes generiert wird durch Auflösen bezüglich des Quantisierungsindex entsprechend der aktualisierten Zielbitrate, und die anderen des aktualisierten Satzes von Quantisierungsindizes generiert werden, basierend auf einem "One-Anchor-" bzw. Ein-Anker-Verfahren.
  17. Teilsystem nach Anspruch 15, wobei ein Index der aktualisierten Sätze von Quantisierungsindizes generiert wird durch Auflösen hinsichtlich des Quantisierungsindex entsprechend der aktualisierten Zielbitrate, und die anderen des aktualisierten Satzes von Quantisierungsindizes generiert werden basierend auf einem "Two-Anchor-" bzw. Zwei-Anker-Verfahren.
  18. Teilsystem nach Anspruch 1, wobei das Videosignal ein Farbvideosignal ist.
  19. Teilsystem nach Anspruch 9, wobei das Segment des Videosignals ein Farbvideosignal mit Luminanz- und Chrominanz-Komponenten ist; wobei jede der Luminanz- und Chrominanz-Komponenten separat durch die Vielzahl von Quantisierern (20) entsprechend der Quantisierungsindizes quantisiert wird, um die quantisierten Ströme von Daten zu generieren; wobei die Kodieren mit variabler Länge (22) die Vielzahl von kodierten Strömen von Datenbits für jede der Luminanz- und Chrominanz-Komponenten generieren; wobei das Ratenmesselement (24) die Bitraten für jeden der kodierten Ströme für jede der Luminanz- und Chrominanz-Komponenten bestimmt; wobei das Modellelement weiterhin ein Komponentenmodell für jede der Luminanz- und Chrominanz-Komponenten basierend auf den Quantisierungsindizes und den Bitraten für jede der Komponenten generiert; und wobei das Modell des Quantisierungsindex bezüglich der Rate eine Zusammensetzung der Komponentenmodelle ist.
  20. Teilsystem nach Anspruch 19, wobei die Auswahlmittel (28, 30) die kodierten Ströme und die Bitraten für die Luminanz- und Chrominanz- Komponenten empfangen und ausgewählte kodierte Ströme für die Luminanz- und Chrominanz-Komponenten basierend auf der Kombination von Luminanz- und Chrominanz-Komponenten generieren, und zwar für solche, deren Raten einen absoluten Kodierratenfehler basierend auf einer vorbestimmten Zielbitrate minimieren.
  21. Teilsystem nach Anspruch 20, wobei die Aktualisierungsmittel (36, 38) die aktualisierten Quantisierungseinstellungen für jede der Luminanz- und Chrominanz-Komponenten generieren.
  22. Ein Verfahren zum adaptiven Steuern der kodierten Bitrate bzw. Kodierungsbitrate einer Videoeingabe für die Bildkomprimierung, wobei das Verfahren die folgenden Schritte aufweist: Kodieren eines Videosegments gemäß einem vorbestimmten Satz von Quantisierungseinstellungen, um eine Vielzahl von kodierten Strömen von Datenbits zu generieren; Auswählen eines kodierten Stromes aus einem der Vielzahl von kodierten Strömen gemäß einem vorbestimmten Auswahlalgorithmus, basierend auf einer Zielbitrate; Empfangen des ausgewählten kodierten Stroms in einem Puffer (34) für die Übertragung, wobei der Puffer einen Pufferstatus hat, als Ergebnis des Empfangs des ausgewählten kodierten Stroms; Generieren eines Steuersignals, das eine aktualisierte Zielbitrate enthält, und zwar basierend auf dem Pufferstatus; und Aktualisieren der Quantisierungseinstellungen gemäß dem Steuersignal für das nächste Segment des Videosignals.
  23. Verfahren nach Anspruch 22, wobei der Schritt des Kodierens die folgenden Schritte aufweist: Quantisieren des Segments des Videosignals um eine Vielzahl von quantisierten Strömen zu generieren, wobei jeder der Vielzahl von quantisierten Strömen gemäß einer der Quantisierungseinstellungen quantisiert ist; und Kodieren mit variabler Länge eines jeden der Vielzahl von quantisierten Strömen und Verwendung eines Kodieralgorithmus mit variabler Länge, um eine entsprechende Vielzahl der kodierten Ströme zu generieren.
  24. Verfahren nach Anspruch 23, das weiterhin folgende Schritte aufweist: Bestimmen einer kodierten Bitrate für einen jeden der Vielzahl von kodierten Strömen, Speichern des ausgewählten kodierten Stromes in dem Puffer (34) in Vorbereitung für die Übertragung; und wobei das vorbestimmte Auswahlkriterium auf den kodierten Bitraten basiert.
  25. Verfahren nach Anspruch 23, wobei der Kodieralgorithmus mit variabler Länge Huffman-Kodierung aufweist.
  26. Verfahren nach Anspruch 23, wobei der Kodieralgorithmus mit variabler Länge eine Lauflängenkodierung von Nullen gefolgt durch Huffman-Kodierung aufweist.
  27. Verfahren nach Anspruch 24, wobei jede der Quantisierungseinstellungen eine Gewichtungsmaskenfunktion ist, die gemäß einem Quantisierungsindex generiert wird.
  28. Verfahren nach Anspruch 26, das weiterhin folgende Schritte aufweist: Herleiten eines Modells eines Quantisierungsindex bezüglich der Rate gemäß den Quantisierungsindizes und den kodierten Bitraten; und Aktualisieren der Quantisierungseinstellungen gemäß der Parameter des Modells.
  29. Verfahren nach Anspruch 28, wobei das Modell ein exponentielles Modell ist.
  30. Verfahren nach Anspruch 23, das weiterhin folgende Schritte aufweist: Empfangen eines Blocks von Pixeldaten und Ausführen einer diskreten Cosinus-Transformationsoperation- bzw. DCT-Operation auf das Segment von Pixeldaten, um einen Block von DCT-Koeffizienten zu generieren, der das Segment des Videosignals ist.
  31. Verfahren nach Anspruch 28, wobei das vorbestimmte Auswahlkriterium zum Auswählen des kodierten Stromes mit variabler Länge einen absoluten Kodierratenfehler basierend auf einer vorbestimmten Zielbitrate minimiert; und weiterhin den Schritt des Aktualisierens der Zielbitrate gemäß dem Pufferstatus aufweist.
  32. Verfahren nach Anspruch 31, das weiterhin den Schritt des Generierens eines aktualisierten Satzes der Quantisierungsindizes aufweist, und zwar durch Auflösen nach dem Quantisierungsindex entsprechend der aktualisierten Zielbitrate gemäß dem Modell.
  33. Verfahren nach Anspruch 32, wobei ein Index aus dem aktualisierten Satz von Quantisierungsindizes generiert wird durch Auflösen nach dem Quantisierungsindex entsprechend der aktualisierten Zielbitrate und die anderen Indizes des aktualisierten Satzes von Quantisierungsindizes generiert werden, basierend auf einem "Ein-Anker"-Verfahren.
  34. Verfahren nach Anspruch 32, wobei ein Index des aktualisierten Satzes von Quantisierungindizes generiert wird durch Auflösen nach dem Quantisierungsindex entsprechend der aktualisierten Zielbitrate, und die anderen Indizes des aktualisierten Satzes von Quantisierungsindizes generiert werden, basierend auf einem "Zwei-Anker"-Verfahren.
  35. Verfahren nach Anspruch 28, wobei die Videoeingabe ein Farbsignal ist mit Luminanz- und Chrominanz-Komponenten; wobei der Schritt des Quantisierens separat die Luminanz- und Chrominanz-Komponenten quantisiert; wobei der Schritt des Kodierens mit variabler Länge die Vielzahl von kodierten Strömen für jede der Luminanz- und Chrominanz-Komponenten generiert; wobei der Schritt des Bestimmens von kodierten Bitraten für jede der Luminanz- und Chrominanz-Komponenten ausgeführt wird; und wobei der Schritt des Herleitens eines Modells ein Komponenten-Modell für jede der Luminanz- und Chrominanz-Komponenten herleitet, wobei das Modell eine Zusammensetzung des Komponentenmodells ist.
  36. Verfahren nach Anspruch 35, wobei der Schritt des Auswählens einen kodierten Strom für eine ausgewählte Komponente für jede der Luminanz- und Chrominanz-Komponenten basierend auf der Kombination von Luminanz- und Chrominanz-Komponenten auswählt, und zwar diejenigen Komponenten, deren Raten einen absoluten Kodierratenfehler basierend auf einer vorbestimmten Zielbitrate minimieren.
  37. Verfahren nach Anspruch 36, wobei der Schritt des Aktualisierens der Quantisierungseinstellungen die aktualisierten Quantisierungseinstellungen für jede der Luminanz- und Chrominanz-Komponenten generiert.
DE69734831T 1996-10-11 1997-10-09 Adaptive steuerung der datenrate für digitale videokompression Expired - Lifetime DE69734831T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/731,229 US6366614B1 (en) 1996-10-11 1996-10-11 Adaptive rate control for digital video compression
US731229 1996-10-11
PCT/US1997/018624 WO1998017065A1 (en) 1996-10-11 1997-10-09 Adaptive rate control for digital video compression

Publications (2)

Publication Number Publication Date
DE69734831D1 DE69734831D1 (de) 2006-01-12
DE69734831T2 true DE69734831T2 (de) 2006-08-31

Family

ID=24938644

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69734831T Expired - Lifetime DE69734831T2 (de) 1996-10-11 1997-10-09 Adaptive steuerung der datenrate für digitale videokompression

Country Status (13)

Country Link
US (3) US6366614B1 (de)
EP (1) EP0931417B1 (de)
JP (2) JP4698772B2 (de)
KR (1) KR100555601B1 (de)
CN (1) CN1190083C (de)
AT (1) ATE312477T1 (de)
AU (1) AU735938B2 (de)
BR (1) BR9714301A (de)
CA (1) CA2268408C (de)
DE (1) DE69734831T2 (de)
ID (1) ID28372A (de)
RU (1) RU2217880C2 (de)
WO (1) WO1998017065A1 (de)

Families Citing this family (134)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7321783B2 (en) * 1997-04-25 2008-01-22 Minerva Industries, Inc. Mobile entertainment and communication device
DE69830979T2 (de) * 1997-07-29 2006-05-24 Koninklijke Philips Electronics N.V. Verfahren und vorrichtung zur videocodierung mit variabler bitrate
CN1138354C (zh) * 1999-11-11 2004-02-11 华为技术有限公司 码分多址技术和变速率图像压缩编码技术相结合的传输方法
US6738423B1 (en) * 2000-01-21 2004-05-18 Nokia Mobile Phones Ltd. Method for encoding and decoding video information, a motion compensated video encoder and a corresponding decoder
CN1322759C (zh) * 2000-04-27 2007-06-20 三菱电机株式会社 编码装置和编码方法
US7630721B2 (en) 2000-06-27 2009-12-08 Ortiz & Associates Consulting, Llc Systems, methods and apparatuses for brokering data between wireless devices and data rendering devices
US6741648B2 (en) * 2000-11-10 2004-05-25 Nokia Corporation Apparatus, and associated method, for selecting an encoding rate by which to encode video frames of a video sequence
US7000026B2 (en) * 2000-12-22 2006-02-14 Nortel Networks Limited Multi-channel sharing in a high-capacity network
US6728931B2 (en) * 2001-03-22 2004-04-27 Promos Technologies, Inc. Time data compression technique for high speed integrated circuit memory devices
US7602847B1 (en) 2001-03-27 2009-10-13 Vixs Systems, Inc. Device and method for compression of a video stream
US8107524B2 (en) * 2001-03-30 2012-01-31 Vixs Systems, Inc. Adaptive bandwidth footprint matching for multiple compressed video streams in a fixed bandwidth network
US20070053428A1 (en) * 2001-03-30 2007-03-08 Vixs Systems, Inc. Managed degradation of a video stream
US7103047B1 (en) * 2001-06-26 2006-09-05 Juniper Networks, Inc. Method and apparatus for modifying the rate of MPEG transport streams
US6959348B1 (en) * 2001-07-30 2005-10-25 Vixs Systems, Inc. Method and system for accessing data
US7675972B1 (en) * 2001-07-30 2010-03-09 Vixs Systems, Inc. System and method for multiple channel video transcoding
US20030039226A1 (en) * 2001-08-24 2003-02-27 Kwak Joseph A. Physical layer automatic repeat request (ARQ)
US7596127B1 (en) 2001-10-31 2009-09-29 Vixs Systems, Inc. System for allocating data in a communications system and method thereof
US7139330B1 (en) 2001-10-31 2006-11-21 Vixs Systems, Inc. System for signal mixing and method thereof
US7106715B1 (en) 2001-11-16 2006-09-12 Vixs Systems, Inc. System for providing data to multiple devices and method thereof
US7403564B2 (en) * 2001-11-21 2008-07-22 Vixs Systems, Inc. System and method for multiple channel video transcoding
US7356079B2 (en) * 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US7165180B1 (en) 2001-11-27 2007-01-16 Vixs Systems, Inc. Monolithic semiconductor device for preventing external access to an encryption key
JP4320390B2 (ja) * 2002-04-19 2009-08-26 アイピージー・エレクトロニクス・503・リミテッド 出力レートを変更する方法及び装置
US7310679B1 (en) 2002-04-29 2007-12-18 Vixs Systems Inc. Method and system for transmitting video content while preventing other transmissions in a contention-based network
US7120253B2 (en) * 2002-05-02 2006-10-10 Vixs Systems, Inc. Method and system for protecting video data
CN100504915C (zh) * 2002-07-29 2009-06-24 高通股份有限公司 数字图像编码
EP1547393A4 (de) * 2002-09-05 2010-10-13 Agency Science Tech & Res Verfahren und vorrichtung zur steuerung der rate einer videosequenz und videocodierungseinrichtung
US8204079B2 (en) * 2002-10-28 2012-06-19 Qualcomm Incorporated Joint transmission of multiple multimedia streams
US6968387B2 (en) * 2003-01-10 2005-11-22 Realnetworks, Inc. Stochastic adaptive streaming of content
US7212681B1 (en) * 2003-01-15 2007-05-01 Cisco Technology, Inc. Extension of two-dimensional variable length coding for image compression
US20040141555A1 (en) * 2003-01-16 2004-07-22 Rault Patrick M. Method of motion vector prediction and system thereof
US7408989B2 (en) * 2003-01-16 2008-08-05 Vix5 Systems Inc Method of video encoding using windows and system thereof
US7606305B1 (en) 2003-02-24 2009-10-20 Vixs Systems, Inc. Method and system for transcoding video data
US7133452B1 (en) 2003-02-24 2006-11-07 Vixs Systems, Inc. Method and system for transcoding video data
US7327784B2 (en) * 2003-02-24 2008-02-05 Vixs Systems, Inc. Method and system for transcoding video data
US7130350B1 (en) 2003-02-28 2006-10-31 Vixs Systems, Inc. Method and system for encoding and decoding data in a video stream
GB0306973D0 (en) * 2003-03-26 2003-04-30 British Telecomm Transmitting video
CN100405350C (zh) * 2003-04-24 2008-07-23 诺基亚有限公司 预设速率匹配信号通知的方法和装置
US7739105B2 (en) * 2003-06-13 2010-06-15 Vixs Systems, Inc. System and method for processing audio frames
US7668396B2 (en) * 2003-09-29 2010-02-23 Vixs Systems, Inc. Method and system for noise reduction in an image
US7277101B2 (en) 2003-09-29 2007-10-02 Vixs Systems Inc Method and system for scaling images
EP1553779A1 (de) * 2004-01-12 2005-07-13 Deutsche Thomson-Brandt GmbH Datenreduktion von Videoströmen durch Frameselektion und partielle Entfernung von Transformationskoeffizienten
WO2005076632A2 (en) * 2004-01-30 2005-08-18 Thomson Licensing Encoder with adaptive rate control for h.264
US7869503B2 (en) * 2004-02-06 2011-01-11 Apple Inc. Rate and quality controller for H.264/AVC video coder and scene analyzer therefor
US7986731B2 (en) * 2004-02-06 2011-07-26 Apple Inc. H.264/AVC coder incorporating rate and quality controller
US7492820B2 (en) 2004-02-06 2009-02-17 Apple Inc. Rate control for video coder employing adaptive linear regression bits modeling
US7406598B2 (en) * 2004-02-17 2008-07-29 Vixs Systems Inc. Method and system for secure content distribution
GB0406901D0 (en) * 2004-03-26 2004-04-28 British Telecomm Transmitting recorded material
JP4406640B2 (ja) * 2004-04-09 2010-02-03 ノキア コーポレイション 圧縮画像データファイルの作成方法、画像データ圧縮装置及び撮影装置
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US8355434B2 (en) * 2005-01-10 2013-01-15 Qualcomm Incorporated Digital video line-by-line dynamic rate adaptation
US7421048B2 (en) * 2005-01-20 2008-09-02 Vixs Systems, Inc. System and method for multimedia delivery in a wireless environment
KR100668324B1 (ko) * 2005-01-21 2007-01-12 삼성전자주식회사 화상 데이터 부호화시의 비트율 제어방법 및 장치
US7609766B2 (en) * 2005-02-08 2009-10-27 Vixs Systems, Inc. System of intra-picture complexity preprocessing
US8949920B2 (en) * 2005-03-17 2015-02-03 Vixs Systems Inc. System and method for storage device emulation in a multimedia processing system
US7400869B2 (en) * 2005-03-22 2008-07-15 Vixs Systems Inc. System and method for adaptive DC offset compensation in wireless transmissions
US7477598B2 (en) * 2005-03-25 2009-01-13 International Business Machines Corporation Adaptive stream switching with minimized switching delay
US7102549B1 (en) * 2005-03-31 2006-09-05 Agere Systems Inc. Method and apparatus for programmable codeword encoding and decoding using truncated codewords
US7974193B2 (en) 2005-04-08 2011-07-05 Qualcomm Incorporated Methods and systems for resizing multimedia content based on quality and rate information
US20080263180A1 (en) * 2007-04-19 2008-10-23 Hurst Mark B Apparatus, system, and method for resilient content acquisition
US8370514B2 (en) 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US20070036227A1 (en) * 2005-08-15 2007-02-15 Faisal Ishtiaq Video encoding system and method for providing content adaptive rate control
US7707485B2 (en) 2005-09-28 2010-04-27 Vixs Systems, Inc. System and method for dynamic transrating based on content
US8102878B2 (en) * 2005-09-29 2012-01-24 Qualcomm Incorporated Video packet shaping for video telephony
US8406309B2 (en) * 2005-10-21 2013-03-26 Qualcomm Incorporated Video rate adaptation to reverse link conditions
US8514711B2 (en) * 2005-10-21 2013-08-20 Qualcomm Incorporated Reverse link lower layer assisted video error control
US8842555B2 (en) * 2005-10-21 2014-09-23 Qualcomm Incorporated Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems
US8548048B2 (en) * 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
US9479794B2 (en) 2005-11-10 2016-10-25 Freescale Semiconductor, Inc. Resource efficient video processing via prediction error computational adjustments
US20070112826A1 (en) * 2005-11-10 2007-05-17 Vixs Systems, Inc. Multimedia transcoding based on remaining storage capacity
US20070110151A1 (en) * 2005-11-14 2007-05-17 Ess Technology, Inc. System and method for video frame buffer compression
US8131995B2 (en) * 2006-01-24 2012-03-06 Vixs Systems, Inc. Processing feature revocation and reinvocation
US8792555B2 (en) 2006-01-31 2014-07-29 Qualcomm Incorporated Methods and systems for resizing multimedia content
US20070201388A1 (en) * 2006-01-31 2007-08-30 Qualcomm Incorporated Methods and systems for resizing multimedia content based on quality and rate information
US8077775B2 (en) * 2006-05-12 2011-12-13 Freescale Semiconductor, Inc. System and method of adaptive rate control for a video encoder
US7773672B2 (en) * 2006-05-30 2010-08-10 Freescale Semiconductor, Inc. Scalable rate control system for a video encoder
US9883202B2 (en) * 2006-10-06 2018-01-30 Nxp Usa, Inc. Scaling video processing complexity based on power savings factor
US7756350B2 (en) * 2006-11-13 2010-07-13 Global Ip Solutions, Inc. Lossless encoding and decoding of digital data
US8208554B2 (en) 2006-12-07 2012-06-26 Qualcomm Incorporated Line-based video compression
US8357099B2 (en) 2006-12-21 2013-01-22 Ric Investments, Llc Signal quality determination and signal correction system and methods
WO2008086509A2 (en) * 2007-01-10 2008-07-17 Qualcomm Incorporated Content- and link-dependent coding adaptation for multimedia telephony
CA2678574C (en) * 2007-03-14 2015-06-16 Nippon Telegraph And Telephone Corporation Motion vector search method and apparatus, program therefor, and storage medium which stores the program
CN101632308B (zh) * 2007-03-14 2011-08-03 日本电信电话株式会社 编码比特率控制方法和装置
ES2369214T3 (es) * 2007-03-14 2011-11-28 Nippon Telegraph And Telephone Corporation Método y dispositivo de estimación de la cantidad de código, su programa y medio de almacenamiento.
JP5197574B2 (ja) * 2007-03-14 2013-05-15 日本電信電話株式会社 量子化制御方法及び装置、そのプログラム並びにプログラムを記録した記録媒体
US8019804B2 (en) * 2007-03-26 2011-09-13 City University Of Hong Kong Method and apparatus for calculating an SSD and encoding a video signal
WO2009018681A1 (en) * 2007-08-07 2009-02-12 Thomson Licensing Apparatus and method for shaping data streaming in an xdsl network
US8797850B2 (en) * 2008-01-10 2014-08-05 Qualcomm Incorporated System and method to adapt to network congestion
US8190760B2 (en) 2008-01-15 2012-05-29 Echostar Advanced Technologies L.L.C. System and method of managing multiple video players
US9832442B2 (en) 2008-01-15 2017-11-28 Echostar Technologies Llc System and method of managing multiple video players executing on multiple devices
US8024121B2 (en) * 2008-01-25 2011-09-20 Smith International, Inc. Data compression method for use in downhole applications
US8788206B2 (en) * 2008-01-25 2014-07-22 Schlumberger Technology Corporation Data compression transforms for use in downhole applications
EP2101503A1 (de) * 2008-03-11 2009-09-16 British Telecommunications Public Limited Company Videokodierung
US20090238259A1 (en) * 2008-03-19 2009-09-24 Sung-Hung Yeh Method of rate control for video frame compression and encoder thereof
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
CN102027745A (zh) * 2008-05-16 2011-04-20 夏普株式会社 视频记录装置
US7925774B2 (en) * 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US20090304071A1 (en) * 2008-06-06 2009-12-10 Apple Inc. Adaptive application of entropy coding methods
EP2192785B1 (de) * 2008-06-27 2014-12-31 Sony Corporation Bildverarbeitungsvorrichtung und verfahren zur rechnung eines quantisierungsfaktors
GB2463329B (en) 2008-09-10 2013-02-20 Echostar Advanced Technologies L L C Set-top box emulation system
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
US8650301B2 (en) 2008-10-02 2014-02-11 Ray-V Technologies, Ltd. Adaptive data rate streaming in a peer-to-peer network delivering video content
US8321401B2 (en) 2008-10-17 2012-11-27 Echostar Advanced Technologies L.L.C. User interface with available multimedia content from multiple multimedia websites
EP2200319A1 (de) 2008-12-10 2010-06-23 BRITISH TELECOMMUNICATIONS public limited company Multiplex-Videostreaming
US9009066B2 (en) * 2009-02-12 2015-04-14 Echostar Technologies L.L.C. Advertisement management for live internet multimedia content
EP2219342A1 (de) 2009-02-12 2010-08-18 BRITISH TELECOMMUNICATIONS public limited company Video-Streaming
JP5481923B2 (ja) * 2009-04-28 2014-04-23 富士通株式会社 画像符号化装置、画像符号化方法および画像符号化プログラム
US10410222B2 (en) * 2009-07-23 2019-09-10 DISH Technologies L.L.C. Messaging service for providing updates for multimedia content of a live event delivered over the internet
US9203816B2 (en) * 2009-09-04 2015-12-01 Echostar Technologies L.L.C. Controlling access to copies of media content by a client device
US9338523B2 (en) * 2009-12-21 2016-05-10 Echostar Technologies L.L.C. Audio splitting with codec-enforced frame sizes
US9510029B2 (en) 2010-02-11 2016-11-29 Echostar Advanced Technologies L.L.C. Systems and methods to provide trick play during streaming playback
EP2664147B1 (de) * 2011-01-13 2020-03-11 Canon Kabushiki Kaisha Bildkodierungsvorrichtung, bildkodierungsverfahren und zugehöriges programm sowie bilddekodierungsvorrichtung, bilddekodierungsverfahren und zugehöriges programm
US9578354B2 (en) 2011-04-18 2017-02-21 Verizon Patent And Licensing Inc. Decoupled slicing and encoding of media content
KR101995694B1 (ko) 2011-04-20 2019-07-02 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 허프만 부호화를 실행하기 위한 장치 및 방법
US9609340B2 (en) 2011-12-28 2017-03-28 Verizon Patent And Licensing Inc. Just-in-time (JIT) encoding for streaming media content
EP2789165A4 (de) * 2012-01-20 2015-08-05 Sony Corp Erweiterung von chromquantisierungsparametern
US8990849B2 (en) 2012-02-14 2015-03-24 Verizon Patent And Licensing Inc. Advertisement insertion into media content for streaming
EP2904796B1 (de) * 2012-10-03 2020-09-02 Avago Technologies International Sales Pte. Limited Begrenzte ratenkompression mit ratensteuerung für scheiben
US20140297869A1 (en) 2012-10-11 2014-10-02 Uplynk, LLC Adaptive streaming cost management
WO2014186886A1 (en) * 2013-05-24 2014-11-27 En-Hui Yang System and method having transparent composite model for transform coefficients
GB2519391B (en) * 2014-04-02 2015-10-21 Imagination Tech Ltd Enhanced media quality management
US9807336B2 (en) * 2014-11-12 2017-10-31 Mediatek Inc. Dynamic adjustment of video frame sampling rate
GB2575198B (en) * 2015-07-03 2020-03-25 Sisp Tech Ltd Data processing method and apparatus
GB2542707B (en) 2015-07-03 2020-02-12 Sisp Tech Ltd Data processing method and apparatus
CN105007094B (zh) * 2015-07-16 2017-05-31 北京中宸泓昌科技有限公司 一种指数对扩频编码解码方法
WO2017117264A1 (en) 2015-12-29 2017-07-06 Echostar Technologies L.L.C Remote storage digital video recorder streaming and related methods
FR3046711B1 (fr) * 2016-01-08 2018-02-16 Stmicroelectronics (Grenoble 2) Sas Compression et decompression de donnees video
EP3479485B1 (de) 2016-07-04 2022-03-16 SISP Technologies Ltd Datenverarbeitungsverfahren und -vorrichtung
US20180027244A1 (en) * 2016-07-21 2018-01-25 Mediatek Inc. Video encoding apparatus with video encoder adaptively controlled according to at least transmission status of communication link and associated video encoding method
WO2018132964A1 (zh) * 2017-01-18 2018-07-26 深圳市大疆创新科技有限公司 传输编码数据的方法、装置、计算机系统和移动设备
US20220051101A1 (en) * 2020-08-14 2022-02-17 Tencent America LLC Method and apparatus for compressing and accelerating multi-rate neural image compression model by micro-structured nested masks and weight unification

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107345A (en) 1990-02-27 1992-04-21 Qualcomm Incorporated Adaptive block size image compression method and system
US5021891A (en) 1990-02-27 1991-06-04 Qualcomm, Inc. Adaptive block size image compression method and system
DE69130275T2 (de) 1990-07-31 1999-04-08 Canon Kk Verfahren und Gerät zur Bildverarbeitung
JPH04255190A (ja) 1991-02-07 1992-09-10 Hitachi Ltd 画像データ圧縮装置
DE69222332T2 (de) 1991-02-21 1998-01-29 Nec Corp Kodierungsgerät zur Kompression von bewegten Bilddaten
JPH04323960A (ja) 1991-04-23 1992-11-13 Canon Inc 画像符号化装置
JP3145403B2 (ja) * 1991-06-04 2001-03-12 クァルコム・インコーポレーテッド アダプティブ・ブロックサイズイメージ圧縮方法およびシステム
JPH0529248A (ja) 1991-07-25 1993-02-05 Canon Inc 半導体装置およびその製造方法
JP2856974B2 (ja) * 1992-04-15 1999-02-10 株式会社東芝 画像符号化装置
US5530478A (en) 1991-08-21 1996-06-25 Kabushiki Kaisha Toshiba Image data compressing apparatus
JPH05236427A (ja) * 1992-02-25 1993-09-10 Sony Corp 画像信号の符号化装置及び符号化方法
JP2797159B2 (ja) 1992-03-02 1998-09-17 カシオ計算機株式会社 画像データ圧縮装置及び画像データ圧縮方法
US5440344A (en) * 1992-04-28 1995-08-08 Mitsubishi Denki Kabushiki Kaisha Video encoder using adjacent pixel difference for quantizer control
JPH05344490A (ja) 1992-06-10 1993-12-24 Canon Inc 符号化方法および符号化装置
US5543844A (en) * 1992-11-25 1996-08-06 Matsushita Electric Industrial Co., Ltd. Method and apparatus for coding image data
US5376968A (en) * 1993-03-11 1994-12-27 General Instrument Corporation Adaptive compression of digital video data using different modes such as PCM and DPCM
JP2581421B2 (ja) * 1993-11-25 1997-02-12 日本電気株式会社 動画像圧縮符号化方法
JP2735001B2 (ja) 1994-09-21 1998-04-02 日本電気株式会社 画像符号化装置
JP3235761B2 (ja) 1994-10-31 2001-12-04 日本ビクター株式会社 高能率符号化装置
US5646687A (en) * 1994-12-29 1997-07-08 Lucent Technologies Inc. Temporally-pipelined predictive encoder/decoder circuit and method
JP3013876B2 (ja) * 1995-01-31 2000-02-28 日本ビクター株式会社 変換符号化装置
US5969764A (en) * 1997-02-14 1999-10-19 Mitsubishi Electric Information Technology Center America, Inc. Adaptive video coding method
US6192075B1 (en) * 1997-08-21 2001-02-20 Stream Machine Company Single-pass variable bit-rate control for digital video coding
US6167088A (en) * 1998-04-03 2000-12-26 Sarnoff Corporation Method and apparatus for performing adaptive encoding rate control of a video information stream including 3:2 pull-down video information

Also Published As

Publication number Publication date
BR9714301A (pt) 2000-04-25
EP0931417B1 (de) 2005-12-07
JP4698772B2 (ja) 2011-06-08
ATE312477T1 (de) 2005-12-15
US20060126732A1 (en) 2006-06-15
CN1190083C (zh) 2005-02-16
WO1998017065A1 (en) 1998-04-23
CA2268408C (en) 2006-12-19
US6366614B1 (en) 2002-04-02
JP2009005365A (ja) 2009-01-08
US20020021754A1 (en) 2002-02-21
EP0931417A1 (de) 1999-07-28
US7023915B2 (en) 2006-04-04
US7675969B2 (en) 2010-03-09
JP4824726B2 (ja) 2011-11-30
CN1251725A (zh) 2000-04-26
ID28372A (id) 2001-05-17
CA2268408A1 (en) 1998-04-23
JP2001524270A (ja) 2001-11-27
AU735938B2 (en) 2001-07-19
AU4821997A (en) 1998-05-11
KR100555601B1 (ko) 2006-03-03
KR20000049059A (ko) 2000-07-25
RU2217880C2 (ru) 2003-11-27
DE69734831D1 (de) 2006-01-12

Similar Documents

Publication Publication Date Title
DE69734831T2 (de) Adaptive steuerung der datenrate für digitale videokompression
DE69935478T2 (de) Bewegtbildkodiergerät
EP0201679B1 (de) Verfahren zur Bilddatenreduktion für digitale Fernsehsignale
DE69333288T2 (de) Verbesserte vektorquantisierung
DE69435000T2 (de) Bildkodierungsvorrichtung
DE69535228T2 (de) Bildumsetzungsvorrichtung
DE69434018T2 (de) Bildkodierungsverfahren und -vorrichtung
DE10300048B4 (de) Verfahren und Vorrichtung zur Bildcodierung und -decodierung
DE69434271T4 (de) Adaptives variables Längenkodierungsverfahren für Videodaten
DE4034535C2 (de) Vorrichtung und Verfahren zur Codierung von Bilddaten, sowie hiermit ausgestattete elektronische Stehbildkamera
DE69635369T2 (de) Videokodierungsvorrichtung
EP1635578B1 (de) Verfahren und Anordnung zur Videocodierung, wobei die Videocodierung Texturanalyse und Textursynthese sowie Texturverzerrung umfasst, sowie ein entsprechendes Computerprogramm und ein entsprechendes computerlesbares Speichermedium
DE60027495T2 (de) Video-codierverfahren und video-codiervorrichtung
DE60001896T2 (de) Quantisierer für videokompression
DE69837361T2 (de) Verfahren und Vorrichtung zur Bildkodierung
DE69921108T2 (de) Verfahren und vorrichtung zur adaptiven codierung eines videodatenstroms
DE69813349T2 (de) Vorrichtung zur Kontrolle der Datenmenge und Kodierer dieselbige anwendend
DE69837497T2 (de) Verfahren und vorrichtung zum kodieren eines videosignals
EP1025708B1 (de) Verfahren und vorrichtung zur verarbeitung eines digitalisierten bildes
DE19739266B4 (de) Verfahren und Vorrichtung zum Kodieren binärer Formen
DE60211171T2 (de) Verarbeitung von einem komprimierten mediensignal
DE60309039T2 (de) Verfahren und vorrichtung zur optimierung der bildschärfe während der kodierung
DE69233318T2 (de) Codierungs-/Decodierungsvorrichtung
EP1472888B1 (de) Kontextsensitive kodierung und dekodierung eines videodatenstroms
DE60006152T2 (de) Videoübertragung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition