DE112005003628T5 - Verfahren und Vorrichtung zur Ratensteuerung - Google Patents

Verfahren und Vorrichtung zur Ratensteuerung Download PDF

Info

Publication number
DE112005003628T5
DE112005003628T5 DE112005003628T DE112005003628T DE112005003628T5 DE 112005003628 T5 DE112005003628 T5 DE 112005003628T5 DE 112005003628 T DE112005003628 T DE 112005003628T DE 112005003628 T DE112005003628 T DE 112005003628T DE 112005003628 T5 DE112005003628 T5 DE 112005003628T5
Authority
DE
Germany
Prior art keywords
buffer
frame
target
frames
filling
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.)
Withdrawn
Application number
DE112005003628T
Other languages
English (en)
Inventor
Halhua Wu
Zhenghua Zhou
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of DE112005003628T5 publication Critical patent/DE112005003628T5/de
Withdrawn 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
    • 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/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Verfahren, das aufweist:
Bestimmen eines Musters für die Zielbefüllung eines Puffers für jeden Frame aus einer Vielzahl von Frames und
Durchführen einer Ratensteuerung basierend auf der Zielbefüllung eines Puffers für jeden der Frames aus der Vielzahl von Frames,
wobei wenigstens zwei Frames aus der Vielzahl der Frames unterschiedliche Zielbefüllungen der Puffer haben.

Description

  • HINTERGRUND
  • Im allgemeinen kann in dem Fall des Codierendes eines Quellenvideostroms in Gruppen aus Bildern (GOPs – Groups of Pictures) mit einem vorbestimmten Format und des Sendens der GOPs über einen Kommunikationskanal mit einer Zielrate ein Videoprozessor einen Codierer, um den Quellenvideostrom zu codieren, einen Controller, um eine Ausgaberate des Codierers zu steuern, und einen Puffer, um zeitweilig die GOPs zu speichern, bevor sie über den Kanal gesendet werden, aufweisen. Der Controller kann eine Zielzuweisung (z.B. Zielbitzahl) für den Codierer steuern, um einen gegenwärtigen Frame basierend auf einer vorbestimmten Zielbefüllung für einen Puffer zu codieren.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die hierin beschriebene Erfindung wird beispielhaft und nicht beschränkend in den beigefügten Figuren veranschaulicht. Aus Gründen der Einfachheit und Deutlichkeit der Veranschaulichung sind die Elemente, die in den Figuren veranschaulicht sind, nicht notwendigerweise maßstabsgetreu gezeichnet. Zum Beispiel können die Abmessungen mancher Elemente relativ zu anderen Elementen aus Gründen der Klarheit vergrößert sein. Weiter, wo es als zweckmäßig angesehen wird, sind Bezugszeichen in den Figuren wiederholt worden, um entsprechende oder analoge Elemente anzuzeigen.
  • 1 ist eine Ausführungsform eines Videoverarbeitungssystems;
  • 2 ist eine Ausführungsform eines Controllers in dem Videoverarbeitungssystem der 1;
  • 3 ist eine Ausführungsform eines Ratensteuerverfahrens;
  • 4 ist eine Ausführungsform eines Verfahrens zum adaptiven Bestimmen einer Zielbefüllung eines Puffers, die bei dem Ratensteuerverfahren der 3 verwendet wird;
  • 5 ist ein Beispiel für ein Muster einer Zielbefüllung eines Puffers;
  • 6 ist ein weiteres Beispiel eines Musters einer Zielbefüllung für einen Puffer; und
  • 7 ist ein Beispiel eines Musters einer Zielbefüllung für einen Puffer, das adaptiv gemäß einem Verfahren der 4 bestimmt worden ist.
  • GENAUE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die folgende Beschreibung beschreibt Techniken für ein Verfahren und ein System zum Schreiben in Speicher. In der folgenden Beschreibung sind zahlreiche bestimmte Einzelheiten, so wie Implementierungen der Logik, Pseudocode, Mittel zum Spezifizieren von Operanden, Aufteilen/gemeinsamen Nutzen/Duplizieren von Quellen, Typen und Wechselbeziehungen von Systemkomponenten und Auswahlen für die Logikaufteilung/Integration aufgeführt, um für ein gründlicheres Verständnis der vorliegenden Erfindung zu sorgen. Jedoch kann diese Erfindung ohne solche bestimmten Einzelheiten in die Praxis umgesetzt werden. In anderen Fällen sind Steuerstrukturen, Schaltungen auf Gate-Ebene und volle Softwarebefehlssequenzen nicht in Einzelheiten gezeigt worden, um die Erfindung nicht zu verdunkeln. Die Durchschnittsfachleute werden mit den enthaltenen Beschreibungen in der Lage sein, die geeignete Funktionalität ohne übermäßiges Experimentieren zu implementieren.
  • Bezüge in der Beschreibung auf „eine Ausführungsform", „eine beispielhafte Ausführungsform" usw. geben an, daß die beschriebene Ausführungsform ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft umfassen kann, jedoch braucht nicht jede Ausführungsform notwendigerweise das bestimmte Merkmal, die Struktur oder die Eigenschaft zu enthalten. Darüberhinaus beziehen sich derartige Ausdrücke nicht notwendigerweise auf dieselbe Ausführungsform. Weiter, wenn ein bestimmtes Merkmal, eine Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben ist, wird darauf verwiesen, daß es innerhalb der Fähigkeiten eines Fachmanns liegt, ein solches Merkmal, eine Struktur oder Eigenschaft in Verbindung mit anderen Ausführungsformen zu bewirken, ob es ausdrücklich beschrieben ist oder nicht.
  • Ausführungsformen der Erfindung können in Hardware, Firmware, Software oder irgendeiner Kombination aus diesen implementiert werden. Ausführungsformen der Erfindung können auch als Befehle implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, das von einem oder mehreren Prozessoren gelesen und ausgeführt werden kann. Ein maschinenlesbares Medium kann irgendeinen Mechanismus zum Speichern oder Senden von Information in einer Form, die von einer Maschine (z.B. einer Rechenvorrichtung) lesbar ist, umfassen. Zum Beispiel kann ein maschinenlesbares Medium einen Nur-Lese-Speicher (ROM – Read Only Memory); einen Speicher mit wahlfreiem Zugriff (RAM – Random Access Memory); Magnetplattenspeichermedien; optische Speichermedien; Flash-Speichervorrichtungen; elektrische, optische, akustische oder andere Formen sich fortpflanzender Signale (z.B. Trägerwellen, Infrarotsignale, digitale Signale usw.) und andere umfassen.
  • 1 zeigte eine Ausführungsform eines Videoverarbeitungssystems. Eine nicht erschöpfende Liste von Beispiele für das Videoverarbeitungssystem kann verteilte Rechensysteme, Supercomputer, Rechencluster, Mainframe-Computer, Mini-Computer, Client-Server-Systeme, Personalcomputer, Arbeitsstationen, tragbare Computer, Laptop-Computer, Mobiltelefone oder persönliche Datenassistenten (PDA – Personal Data Assistant) oder andere Vorrichtungen umfassen, die zur Videoverarbeitung und -sendung in der Lage sind.
  • Bei einer Ausführungsform kann das Videoverarbeitungssystem eine Videoeingabekomponente 11, einen oder mehrere Prozessoren 12, einen Speicher 13, eine Videoausgabekomponente 14 und einen Chipsatz 15 aufweisen. Die Videoeingabekomponente 11 kann einen Quellenvideostrom eingeben. Bei einer Ausführungsform kann die Videoeingabekomponente eine Quellenbildeingabekomponente, um Quellenbilder einzugeben, und eine Vorverarbei tungskomponente, um das Quellenbild vorab zu verarbeiten, bevor es codiert wird, aufweisen. Beispiele für die Quellenbildeingabekomponente können einen Kamera-Header zum Einfangen eines Quellenbildes, einen Quellenbildleser, um ein Quellenbild von einem Bildaufzeichnungsmedium, so wie einem Film und dergleichen, zu lesen. Beispiele für die Vorverarbeitungskomponente können einen Analog-Digital-Wandler aufweisen, um die analogen Quellenbilder in einen digitalen Quellenvideostrom umzuwandeln.
  • Der eine oder die mehreren Prozessoren 12 sind in Kommunikation mit verschiedenen Komponenten (z.B. dem Speicher 13) über einen oder mehrere Busse, so wie einen Prozessorbus, gekoppelt. Die Prozessoren 12 können als eine integrierte Schaltung (IC – Integrated Circuit) mit einem oder mehreren Prozessorkernen implementiert werden. Der Prozessor 12 kann einen Mikroprozessor aufweisen, so wie einen Intel® Pentium® 4-Prozessor oder einen Intel® XScale®-Prozessor, um Befehle zum Durchführen verschiedener Aufgaben auszuführen. Insbesondere kann der Prozessor 12 Befehle ausführen, um das Codieren und Decodieren von Videoströmen zu steuern.
  • Der Speicher 13 kann Codes speichern, die von dem Prozessor 12 ausgeführt werden sollen. Bei einer Ausführungsform kann der Speicher 13 den Quellenvideostrom 121 speichern, der von der Videoeingabekomponente 11 eingegeben worden ist, ein Codierer 122 codiert den Quellenvideostrom in Gruppen aus Bildern (GOPs) mit einer Vielzahl von Frames unter verschiedenen Videocodierstandards, so wie MPEG-1, MPEG-2, MPEG-4, H.261, H.263, H.264, AVS (Video); ein Puffer 123 speichert die Frames zeitweilig; ein Ratencontroller 124 steuert eine Ausgaberate für den Codierer 122, um die Frames an den Puffer 123 auszugeben.
  • Der Ratencontroller 124 kann eine Zielzuweisung (z.B. eine Zielbitzahl) für einen gegenwärtigen Frame, der codiert werden soll (z.B. den n-ten Frame einer GOP), steuern, und der Codierer 122 kann den gegenwärtigen Frame mit einer tatsächlichen Zuweisung (z.B. einer tatsächlichen Bitzahl) codieren, die basierend auf der Zielzuweisungsausgabe von dem Raten controller 124 bestimmt wird. Bei einer Ausführungsform kann der Ratencontroller die Zielzuweisung für den gegenwärtigen Frame gemäß einer tatsächlichen Befüllung eines Puffers zu dem Zeitpunkt, nachdem ein vorangegangener Frame (z.B. der (n – 1)-te Frame der GOP) in den Puffer 123 eintritt, und einer Zielbefüllung des Puffers für den vorangegangenen Frame steuern. Bei einer weiteren Ausführungsform, falls der gegenwärtige Frame ein Anfangsframe der GOPs ist, können die tatsächliche Befüllung der Puffers für den 'vorangegangenen Frame' und seine Zielbefüllung des Puffers vorab bestimmt werden.
  • Die Videoausgabekomponente 14 kann die Frames in dem Puffer 123 ausgeben. Bei einer Ausführungsform kann die Videoausgabekomponente 14 die Frames durch einen Kommunikationskanal mit einer Zielrate ausgeben. Beispiele für die Videoausgabekomponente 14 können eine Netzwerkkarte, Bluetooth oder dergleichen aufweisen. Der Chipsatz 15 kann für einen oder mehrere Kommunikationswege zwischen der Videoeingabekomponente 11, dem Prozessor 12, dem Speicher 13 und der Videoausgabekomponente 14 sorgen.
  • Weitere Ausführungsformen können andere Modifikationen und Variationen der Struktur des zuvor angesprochenen Videoverarbeitungssystems 10 implementieren. Zum Beispiel kann das Videoverarbeitungssystem 10 weiter andere I/O-Komponenten als die Videoeingabe/Ausgabekomponenten, wie sie in 1 gezeigt sind, aufweisen. Bei einem weiteren Beispiel kann das Videoverarbeitungssystem 10 weiter eine RIOS-Firmware aufweisen, die Routinen speichern kann, welche das Videoverarbeitungssystem 10 während des Systemanlaufs ausführt, um die Prozessoren 12, den Chipsatz 15 und andere Komponenten des Videoverarbeitungssystems 10 zu initialisieren.
  • 2 zeigt eine Ausführungsform des Ratencontrollers 124 in 1. Der Ratencontroller 124 kann eine Logik 210 für die Zielbefüllung eines Puffers und eine Logik 211 für die Zielzuweisung aufweisen. Die Logik 210 für die Zielbefüllung eines Puffers kann eine Zielbefüllung eines Puffers für jeden Frame einer GOP bestimmen, um so ein Muster für die Zielbefül lung des Puffers für die GOP zu bilden, wobei wenigstens zwei Frames der GOP unterschiedliche Zielbefüllungen der Puffer haben.
  • Die 5 und 6 veranschaulichen zwei Beispiele für die Muster der Zielbefüllung eines Puffers. Wie in 5 veranschaulicht, kann das Muster der Zielbefüllung der Puffer eine abfallende Linie sein, wobei die Zielbefüllung des Puffers für den ersten Frame einer GOP höher ist als für ihren letzten Frame. Das Muster der Zielbefüllung eines Puffers nach 5 kann für den Fall zweckmäßig sein, daß eine GOP mit einem oder mehreren intracodierten Bildframes (d.h. einem I-Frame) beginnen kann, dem eine Vielzahl intercodierter Bildframes (d.h. einem P-Frame) und/oder bidirektional vorhergesagten Frames (d.h. B-Frames) folgt. Im allgemeinen kann der I-Frame mehr Bitzuweisung verbrauchen als der P-Frame oder der B-Frame.
  • Wie in 6 veranschaulicht, kann das Muster für die Zielbefüllung eines Puffers ein zickzackartiges Muster sein, wobei die Zielbefüllung des Puffers für den ersten Frame einer GOP höher ist als für ihren letzten Frame. Das Muster der Zielbefüllung für einen Puffer gemäß 6 kann nicht nur für den Fall geeignet sein, der mit Bezug auf die 5 beschrieben worden ist, sondern auch für den Fall, daß die Komplexität einer GOP innerhalb der GOP nicht konsistent ist, zum Beispiel ist die Komplexität für den ersten bis fünften Frame höher als die für den sechsten bis zehnten Frame, jedoch niedriger als für den elften bis fünfzehnten Frame usw. Bei anderen Ausführungsformen kann das Muster der Zielbefüllung eines Puffers andere Formen haben als die, die in den 5 und 6 dargestellt sind.
  • Die Zielbefüllung eines Puffers für jeden Frame kann auf verschiedene Weise bestimmt werden. Bei einer Ausführungsform kann die Zielbefüllung eines Puffers bestimmt werden, bevor der Anfangsframe einer GOP codiert wird, entsprechend bestimmten Faktor(en), so wie einer tatsächlichen Befüllung eines Puffers zu dem Zeitpunkt, bevor der Anfangsframe codiert wird, und/oder einer Abschätzung der Bildkomplexität usw. Bei einer weiteren Ausführungs form kann die Zielbefüllung eines Puffers für jeden Frame einer GOP adaptiv vor oder während des Prozesses des Codierens der GOP bestimmt werden. Zum Beispiel kann die Zielbefüllung eines Puffers für jeden Frame einer GOP (z.B. der GOP 2 in 5) bestimmt werden, bevor die GOP codiert wird, entsprechend einer tatsächlichen Befüllung eines Puffers und einer Zielbefüllung eines Puffers für einen Frame einer anderen GOP (z.B. dem letzten Frame der GOP 1 in 5), oder die Zielbefüllung eines Puffers kann während des Prozesses des Codierens der GOP entsprechend einer tatsächlichen Befüllung des Puffers und einer Zielbefüllung des Puffers für einen Frame der GOP (z.B. einem ersten Frame der GOP 2 in 5) bestimmt werden.
  • Die Logik 211 für die Zielzuweisung kann eine Zielzuweisung für einen gegenwärtigen Frame einer GOP (z.B. dem vierten Frame der GOP 2 in 5) gemäß der tatsächlichen Befüllung des Puffers für einen vorangegangenen Frame (z.B. dem dritten Frame der GOP 2 in 5), die aus dem Puffer 123 ausgegeben wird, und der Zielbefüllung des Puffers für den vorangegangenen Frame, der von der Logik 210 für die Zielbefüllung eines Puffers ausgegeben wird, festlegen. Bei einer Ausführungsform kann die Logik 211 für die Zielbefüllung Zielbefüllung für den gegenwärtigen Frame größer als eine mittlere Zielbefüllung festlegen, wenn die tatsächliche Befüllung des Puffers für den vorangegangenen Frame geringer ist als seine Zielbefüllung des Puffers und umgekehrt. Die mittlere Zielzuweisung kann entsprechend einer vorbestimmten Zielrate für die Videoausgabekomponente 14, um die codierten Frames von dem Puffer 123 auszugeben, und einer vorbestimmten Framerate bestimmt werden. Bei einer weiteren Ausführungsform, wenn die tatsächliche Befüllung des Puffers für den vorangegangenen Frame größer ist als ein vorbestimmter Schwellenwert, zum Beispiel ein Warnpegel für das Überlaufen eines Puffers, kann die Logik 211 für die Zielzuweisung die Zielzuweisung für den gegenwärtigen Frame als Null festlegen, es kann nämlich der Codierer 122 das Codieren des gegenwärtigen Frames überspringen.
  • Bei einer Ausführungsform kann der Ratencontroller 124 weiter eine Logik 212 für die tatsächliche Befüllung eines Puffers aufweisen, um eine tatsächliche Befüllung des Puffers für einen Frame zu berechnen, anstatt die tatsächliche Befüllung des Puffers von dem Puffer 123 zu erhalten. Zum Beispiel kann die Logik 212 für die tatsächliche Befüllung eines Puffers eine tatsächliche Befüllung des Puffers für einen Frame (d.h. die tatsächliche Befüllung des Puffers, nachdem der Frame in den Puffer 123 eintritt) entsprechend einer tatsächlichen Befüllung des Puffers für einen weiteren Frame, der dem Frame vorangehend codiert wird, einer tatsächlichen Zuweisung für den anderen Frame, die von dem Codierer 122 bestimmt wird, und der mittleren Zielzuweisung berechnen.
  • Der Codierer 122 kann weiter eine Logik 213 für Quantisierungsparameter aufweisen, um einen Quantisierungsparameter für einen Frame und/oder einer Vielzahl von Blöcken aus Frames entsprechend der Zielzuweisung für den Frame und der Abschätzung der Bildkomplexität zu berechnen, so daß der Codierer 122 den Frame basierend auf dem Quantisierungsparameter codieren kann. Als Alternative kann sich die Logik 213 für Quantisierungsparameter innerhalb des Ratencontrollers 124 befinden.
  • Mit Bezug auf die 3 und 4 wird eine Ausführungsform eines Ratensteuerverfahrens in Einzelheiten beschrieben werden. 3 zeigt eine Ausführungsform eines Ratensteuerverfahrens. Das Ratensteuerverfahren kann durch den Ratencontroller 124 der 1 implementiert werden. Im Block 301 kann die Logik 210 für die Zielbefüllung eines Puffers des Controllers 124 eine Zielbefüllung eines Puffers für jeden Frame einer GOP bestimmen. Die GOP kann einen vorangegangenen Frame (z.B. den (n – 1)-ten Frame) aufweisen, der vor einem gegenwärtigen Frame (z.B. dem n-ten Frame) codiert wird. Wie oben mit Bezug auf die 2 angesprochen worden ist, kann die Zielbefüllung eines Puffers für jeden Frame der GOP vorab festgelegt werden, bevor ein Anfangsframe der GOPs codiert wird, oder kann adaptiv vor oder während des Prozesses des Codierens der GOP bestimmt werden. Ausführungsformen des adaptiven Bestimmens einer Zielbefüllung eines Puffers für jeden Frame einer GOP wird später mit Bezug auf die 4 beschrieben.
  • Im Block 302 kann die Logik 211 für die Zielzuweisung eine tatsächliche Befüllung des Puffers für den vorangegangenen Frame erhalten. Die tatsächliche Befüllung des Puffers für den vorangegangenen Frame kann von dem Puffer 123 erhalten werden oder kann erhalten werden, indem eine tatsächliche Befüllung des Puffers für einen anderen Frame (z.B. den (n – 2)-ten Frame), der vor dem vorangegangenen Frame codiert wird, gemäß der folgenden Formel berechnet werden: BFn-1 = BFn-2 + ALn-1 – R/F1 wobei BFn-1 die tatsächliche Befüllung des Puffers für den (n – 1)-ten Frame darstellt; BFn-2 die tatsächliche Befüllung des Puffers für den (n – 2)-ten Frame darstellt; ALn-1 die tatsächliche Zuweisung des (n – 1)-ten Frames darstellt; R eine Zielrate für die Videoausgabekomponente 14 darstellt, um die Frames von dem Puffer 123 auszugeben; F bedeutet eine Zielframerate.
  • Im Block 303 kann die Logik 211 für die Zielzuweisung des Ratencontrollers 124 festlegen, ob die tatsächliche Befüllung des Puffers für den vorangegangenen Frame oberhalb eines Warnpegels für den Überlauf eines Puffers liegt. Falls dies der Fall ist, kann die Logik 211 für die Zielzuweisung festlegen, daß die Zielzuweisung für den gegenwärtigen Frame Null ist (Block 304).
  • Wenn die Logik 211 für die Zielzuweisung feststellt, daß die tatsächliche Befüllung des Puffers für den vorangegangenen Frame unterhalb des Warnpegels für den Überlauf eines Puffers in 303 ist, dann kann die Logik 211 für die Zielzuweisung fortfahren, um im Block 305 festzustellen, ob die tatsächliche Befüllung des Puffers oberhalb der Zielbefüllung des Puffers liegt. Die Logik 211 für die Zielbefüllung kann den Block 305 auf verschiedenen Wegen im plementieren. Bei einer Ausführungsform kann die Zielbefüllung des Puffers für jeden Frame der GOP, die im Block 301 bestimmt wird, in einer Tabelle gespeichert werden. Dann kann die Logik 211 für die Zielbefüllung die Zielbefüllung für den vorangegangenen Frame erhalten, indem nach einem Eintrag, der dem vorangegangenen Frame entspricht, in der Tabelle gesucht wird und dann festgestellt wird, ob die tatsächliche Befüllung des Puffers oberhalb der Zielbefüllung des Puffers liegt oder nicht. Bei einer weiteren Ausführungsform, wenn das Muster für die Zielbefüllung des Puffers für die GOP eine abfallende Linie ist, wie in 5 veranschaulicht, kann der Ratencontroller 124 bestimmen, ob die tatsächliche Befüllung des Puffers für den vorangegangenen Frame größer ist als A + C2 C·((i – 1)modN)N , wobei A ein Mittelpunktwert des Musters der Zielbefüllung für den Puffer für die GOP ist, C eine Peak-Peak-Differenz zwischen dem höchsten und dem niedrigsten Punkt in der Neigung ist, i der Frame-Index des vorangegangenen Frame ist und N die Framenummer der GOP ist, wobei 1 ≤ i ≥ N.
  • Wenn die Logik 211 für die Zielzuweisung in Block 305 feststellt, daß die tatsächliche Befüllung des Puffers für den vorangegangenen Frame nicht oberhalb seiner Zielbefüllung des Puffers liegt, kann die Logik 211 für die Zielzuweisung die Zielweisung für den gegenwärtigen Frame so bestimmen, daß sie größer ist als eine mittlere Zielzuweisung (Block 306). Bei einer Ausführungsform kann die Logik 211 für die Zielzuweisung die Zielzuweisung für den gegenwärtigen Frame mit der folgenden Formel berechnen: TLn = R/F + Δ1 wobei TLn die Zielzuweisung für den n-ten Frame (d.h. den gegenwärtigen Frame) ist, R/F die mittlere Zielbitzahl bedeutet, die basierend auf der Zielrate R und der Zielframerate F berechnet wird; Δ1 ein Inkrement ist. Bei einer Ausführungsform kann das Inkrement Δ1 die Differenz zwischen der tatsächlichen Befüllung des Puffers und der Zielbefüllung des Puffers für den vorangegangenen Frame sein. Jedoch kann das Inkrement Δ1 irgendeinen Wert aufweisen, der in Übereinstimmung mit der Kapazität des Puffers und/oder Eigenschaften der GOP bestimmt worden ist, sowie die Länge und die Komplexität der GOP.
  • Wenn jedoch die Logik 211 für die Zielzuweisung im Block 305 bestimmt, daß die tatsächliche Befüllung des Puffers für den vorangegangenen Frame oberhalb seiner Zielbefüllung des Puffers liegt, dann kann die Logik 211 für die Zielzuweisung die Zieltbitzahl für den gegenwärtigen Frame so bestimmen, daß sie kleiner ist als die mittlere Zielbitzahl (Block 507). Zum Beispiel kann der Controller die Zielbitzahl für den gegenwärtigen Frame mit der folgenden Formel berechnen: TLn = R/F – Δ2 wobei Δ2 ein Dekrement bedeutet. Bei einer Ausführungsform kann das Dekrement Δ2 basierend auf der tatsächlichen Befüllung des Puffers für den vorangegangenen Frame und der Zielframerate, so wie BFn-1/F, bestimmt werden. Jedoch kann das Dekrement Δ2 irgendeinen Wert aufweisen, der in Übereinstimmung mit der Kapazität des Puffers und/oder Eigenschaften der GOP bestimmt wird, so wie die Länge und die Komplexität der GOP.
  • Das oben beschriebene Verfahren kann angewendet werden, um die Zielbitzahl des Startframes der GOPs zu bestimmen, mit der Ausnahme, daß die tatsächliche Befüllung des Puffers für den 'vorangegangenen Frame' vorbestimmt ist, dann ist es auch seine entsprechende Zielbefüllung des Puffers.
  • 4 zeigt eine Ausführungsform des adaptiven Bestimmens einer Zielbefüllung eines Puffers für jeden Frame einer GOP (z. B. einer gegenwärtigen GOP), die beim Verfahren der 3 verwendet wird. Im Block 401 kann die Logik 211 für die Zielbefüllung eines Puffers des Ratencontrollers 124 die Zielbefüllung eines Puffers für jeden Frame der gegenwärtigen GOP auf einen bestimmten Wert initialisieren. Bei einer Ausführungsform kann die Zielbefüllung eines Puffers auf Werte initialisiert werden, die für jeden Frame einer weiteren GOP verwendet wurden, zum Beispiel der GOP, die vor der gegenwärtigen GOP codiert werden kann (z. B. einer vorangegangenen GOP). Jedoch können weitere Ausführungsformen andere Modifikationen und Variationen beim Block 401 implementieren.
  • Im Block 402 kann die Logik 210 für die Zielbefüllung eines Puffers eine tatsächliche Befüllung eines Puffers für einen Frame der vorangegangenen GOP erhalten, z. B. ihren letzten Frame. Die Logik 210 für die Zielbefüllung eines Puffers kann den Block 402 auf verschiedene Weise implementieren. Bei einer Ausführungsform kann die Logik 210 für die Zielbefüllung eines Puffers die tatsächliche Befüllung des Puffers für den letzten Frame aus dem Puffer 123 erhalten. Bei einer weiteren Ausführungsform kann die Logik 210 für die Zielbefüllung eines Puffers die tatsächliche Befüllung eines Puffers von der Logik 212 für die tatsächliche Befüllung eines Puffers erhalten, die die tatsächliche Befüllung eines Puffers mit der Formel BFn-1 = BFn-2 + ALn-1 – R/F berechnen kann.
  • Im Block 403 kann die Logik 210 für die Zielbefüllung eines Puffers bestimmen, ob die tatsächliche Befüllung des Puffers für den letzten Frame der vorangegangenen GOP über einem vorbestimmten Schwellenwert liegt. Bei einer Ausführungsform wird der Schwellenwert als die Hälfte der Pufferkapazität festgelegt. Bei weiteren Ausführungsformen kann der Schwellenwert andere Werte annehmen, solange sie in Übereinstimmung mit der Kapazität des Puffers und/oder den Eigenschaften der gegenwärtigen GOP sind, so wie der Länge und der Komplexität der gegenwärtigen GOP.
  • Wenn im Block 403 die Logik 210 für die Zielbefüllung eines Puffers feststellt, daß die tatsächliche Befüllung des Puffers für den letzten Frame oberhalb des vorbestimmten Schwellenwertes liegt, dann kann die Logik 210 für die Zielbefüllung eines Puffers die Zielbefüllung eines Puffers für jeden Frame der gegenwärtigen GOP im Block 405 anpassen. Bei einer Aus führungsform, wenn das Muster der Zielbefüllung eines Puffers eine abfallende Linie oder eine Zickzacklinie ist, wie in den 5 und 6 veranschaulicht, kann die Logik 210 für die Zielbefüllung eines Puffers die Anpassung so implementieren, daß der Gradient der abfallenden Linie oder Zickzacklinie vergrößert wird, zum Beispiel kann der Gradient um eine oder mehrere Stufen erhöht werden (z. B. eine Stufe = 5°). Jedoch können weitere Ausführungsformen andere Modifikationen und Variationen beim Block 405 implementieren.
  • Wenn im Block 403 die Logik 210 für die Zielbefüllung eines Puffers feststellt, daß die tatsächliche Befüllung des Puffers für den letzten Frame der vorangegangenen GOP geringer als der vorbestimmte Schwellenwert ist, dann kann die Logik 210 für die Zielbefüllung eines Puffers weiter feststellen, ob die tatsächliche Befüllung des Puffers für den letzten Frame im Block 404 geringer ist als seine Zielbefüllung des Puffers. Wie oben beschrieben, kann die Logik 210 für die Zielbefüllung eines Puffers die Zielbefüllung des Puffers für den letzten Frame in verschiedener Weise erhalten. Bei einer Ausführungsform kann die Zielbefüllung eines Puffers erhalten werden, indem in einer Tabelle nach einem Eintrag gesucht wird, welcher die Zielbefüllung eines Puffers, entsprechend dem letzten Frame, speichert. Bei einer weiteren Ausführungsform, wenn das Muster der Zielbefüllung eines Puffers für die vorangegangene GOP eine abfallende Linie ist, wie in 5 veranschaulicht, kann die Zielbefüllung eines Puffers mit der folgenden Formel erhalten werden: TBFN = A + C2 C·((i – 1)modN)N wobei TBFN die Zielbefüllung des Puffers für den n-ten Frame (d. h. den letzten Frame) ist.
  • Wenn die Logik 210 für die Zielbefüllung eines Puffers feststellt, daß die tatsächliche Befüllung des Puffers für den letzten Frame im Block 404 nicht geringer ist als seine Zielbefüllung des Puffers, dann kann das Verfahren der 4 zu seinem Abschluß kommen, es kann näm lich die Logik 210 für die Zielbefüllung eines Puffers die initialisierte Zielbefüllung eines Puffers für jeden Frame der gegenwärtigen GOP ungeändert halten. Wenn jedoch nicht, dann kann die Logik 210 für die Zielbefüllung eines Puffers die Zielbefüllung eines Puffers für jeden Frame der gegenwärtigen GOP im Block 405 einstellen. Bei einer Ausführungsform, wenn das Muster der Zielbefüllung eines Puffers eine abfallende Linie oder eine Zickzacklinie ist, wie in den 5 und 6 veranschaulicht, kann die Logik 210 für die Zielbefüllung eines Puffers die Anpassung so implementieren, daß der Gradient der abfallenden Linie oder der Zickzacklinie abnimmt, zum Beispiel kann der Gradient um eine oder mehrere Stufen gesenkt werden (z. B. eine Stufe = 5°). Jedoch können weitere Ausführungsformen andere Modifikationen und Variationen beim Block 405 implementieren.
  • 7 zeigt ein Beispiel zum Anpassen des Gradienten des Musters für die Zielbefüllung eines Puffers für die gegenwärtige GOP. Wie gezeigt wird der Gradient mit Bezug auf einen Gleichgewichtswert (z. B. der halben Kapazität des Puffers) angepaßt. Weitere Ausführungsformen können den Gradienten mit anderen Bezügen als zum Gleichgewichtswert anpassen.
  • Mit Bezug zurück auf die 4 kann im Block 406 die Logik 210 für die Zielbefüllung eines Puffers weiter bestimmen, ob die Zielbefüllung eines Puffers für wenigstens einen Frame der gegenwärtigen GOP außerhalb eines Bereichs liegt, der durch eine vorbestimmte obere und untere Grenze definiert ist. Wenn dies der Fall ist, kann die Logik 210 für die Zielbefüllung eines Puffers weiter im Block 407 die Zielbefüllung eines Puffers für wenigstens einen Frame der gegenwärtigen GOP basierend auf der oberen und der unteren Grenze anpassen. Wenn nicht, kann das Verfahren der 4 beendet werden, das bedeutet, daß die Zielbefüllung eines Puffers für jeden Frame der gegenwärtigen GOP als diejenige bestimmt wird, die im Block 405 eingestellt worden ist.
  • Wie oben angesprochen kann die Zielbefüllung eines Puffers für jeden Frame einer beginnenden GOP der GOPs entsprechend bestimmten Faktor(en) vorbestimmt werden. Eine Ausfüh rungsform eines Verfahrens, um die Zielbefüllung eines Puffers für jeden Frame einer GOP zu bestimmen, ist mit Bezug auf die 4 beschrieben worden. Weitere Ausführungsformen jedoch können andere Modifikationen oder Variationen für das Verfahren der 4 implementieren. Zum Beispiel zeigt die 4, daß die Zielbefüllung eines Puffers für jeden Frame der GOP vor dem Codieren der GOP bestimmt wird. Jedoch können weitere Ausführungsformen die Zielbefüllung eines Puffers für die GOP zu anderen Zeitpunkten bestimmen, zum Beispiel nach dem Codieren des ersten Frame der GOP.
  • In dem Fall kann die Logik 210 für die Zielbefüllung eines Puffers zunächst die Zielbefüllung eines Puffers für jeden Frame der GOP auf dieselben Werte wie die einer weiteren GOP initialisieren. Nachdem der Codierer 122 den ersten Frame der GOP codiert hat und den codierten an den Puffer 123 ausgegeben hat, kann die Logik 210 für die Zielbefüllung eines Puffers eine tatsächliche Befüllung des Puffers für den ersten Frame erhalten. Dann kann die tatsächliche Befüllung des Puffers mit einem vorbestimmten Warnpegel für den Überlauf eines Puffers und seiner Zielbefüllung des Puffers verglichen werden. Wenn die tatsächliche Befüllung des Puffers oberhalb des Warnpegels liegt oder kleiner ist als die Zielbefüllung des Puffers, kann die Zielbefüllung des Puffers für jeden Frame der GOP angepaßt werden. Bei einer Ausführungsform, wenn das Muster der Zielbefüllung eines Puffers der GOP eine abfallende Linie oder eine Zickzacklinie ist, kann die Logik 210 für die Zielbefüllung eines Puffers die Anpassung so implementieren, daß der Gradient der abfallenden Linie oder der Zickzacklinie zunimmt (in dem Fall, daß die tatsächliche Befüllung eines Puffer über dem Warnpegel liegt) oder abnimmt (in dem Fall, daß die tatsächliche Befüllung des Puffers geringer ist als die Zielbefüllung des Puffers). Dann kann die Logik 210 für die Zielbefüllung eines Puffers weiter die sich ergebende Zielbefüllung eines Puffers für wenigstens einen Frame der GOP modifizieren, wenn die tatsächliche Befüllung eines Puffers außerhalb eines Bereiches liegt, der durch eine obere und eine untere Grenze definiert ist.
  • Obwohl die vorliegende Erfindung im Zusammenhang mit bestimmten Ausführungsformen beschrieben worden ist, soll verstanden werden, daß auf Modifikationen und Variationen zurückgegriffen werden kann, ohne daß man sich vom Gedanken und Umfang der Erfindung entfernt, wie Fachleute leicht verstehen. Solche Modifikationen und Variationen werden als innerhalb des Umfangs der Erfindung und der angefügten Ansprüche liegend betrachtet.
  • Zusammenfassung
  • Ein Ratensteuerverfahren weist das Bestimmen der Zielbefüllung eines Puffers für jeden Frame einer Vielzahl von Frames, das Erhalten einer tatsächlichen Befüllung des Puffers für einen vorangegangenen Frame aus der Vielzahl der Frames; das Bestimmen einer Zielzuweisung für einen gegenwärtigen Frame basierend auf der tatsächlichen Befüllung des Puffers und der Zielbefüllung des Puffers für den vorangegangenen Frame auf, wobei wenigstens zwei Frames aus der Vielzahl der Frames unterschiedliche Zielbefüllungen haben.

Claims (30)

  1. Verfahren, das aufweist: Bestimmen eines Musters für die Zielbefüllung eines Puffers für jeden Frame aus einer Vielzahl von Frames und Durchführen einer Ratensteuerung basierend auf der Zielbefüllung eines Puffers für jeden der Frames aus der Vielzahl von Frames, wobei wenigstens zwei Frames aus der Vielzahl der Frames unterschiedliche Zielbefüllungen der Puffer haben.
  2. Verfahren nach Anspruch 1, bei dem das Durchführen der Ratensteuerung weiter aufweist Erhalten einer tatsächlichen Befüllung des Puffers für einen vorangegangenen Frame aus der Vielzahl der Frames und Bestimmen einer Zielzuweisung für einen gegenwärtigen Frame, basierend auf der tatsächlichen Befüllung des Puffers und der Zielbefüllung des Puffers für den vorangegangenen Frame.
  3. Verfahren nach Anspruch 1, das weiter das Bestimmen eines Muster für die Zielbefüllung eines Puffers für die Vielzahl der Frames basierend auf der Zielbefüllung der Puffer für jeden Frame aus der Vielzahl der Frames aufweist, wobei das Muster der Zielbefüllung eines Puffers entweder eine abfallende Linie oder eine Zickzacklinie ist.
  4. Verfahren nach Anspruch 1, bei dem das Bestimmen der Zielzuweisung weiter das Bestimmen der Zielzuweisung für den gegenwärtigen Frame als Null aufweist, wenn die tatsächliche Befüllung des Puffers für den vorangegangenen Frame oberhalb eines Warnpegels für den Oberlauf eines Puffers liegt.
  5. Verfahren nach Anspruch 1, bei dem das Bestimmen der Zielzuweisung weiter aufweist Bestimmen der Zielzuweisung für den vorliegenden Frame als größer als eine mittlere Zielzuweisung, wenn die tatsächliche Befüllung des Puffers für den vorangegangenen Frame geringer ist als die Zielbefüllung eines Puffers für den vorangegangenen Frame, wobei die mittlere Zielzuweisung entsprechend einer vorbestimmten Zielrate und einer vorbestimmten Zielframerate bestimmt wird, und Bestimmen der Zielzuweisung für den gegenwärtigen Frame als kleiner als die mittlere Zielzuweisung, wenn die tatsächliche Befüllung des Puffers für den vorangegangenen Frame größer ist als die Zielbefüllung des Puffers für den vorangegangenen Frame.
  6. Verfahren nach Anspruch 1, bei dem das Bestimmen der Zielbefüllung eines Puffers weiter das adaptive Bestimmen der Zielbefüllung eines Puffers für wenigstens einen Frame aus der Vielzahl der Frames aufweist.
  7. Verfahren nach Anspruch 6, bei dem das adaptive Bestimmen der Zielbefüllung eines Puffers weiter aufweist Initialisieren der Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames auf die Zielbefüllung eines Puffers für jeden Frame aus einer weiteren Vielzahl von Frames, die der Vielzahl der Frames vorangeht, und Anpassen der Zielbefüllung eines Puffers für wenigstens einen Frame aus der Vielzahl der Frames basierend auf der tatsächlichen Befüllung eines Puffers und der Zielbefüllung eines Puffers für wenigstens einen letzten Frame aus der weiteren Vielzahl der Frames.
  8. Verfahren nach Anspruch 6, bei dem das adaptive Bestimmen der Zielbefüllung eines Puffers weiter aufweist Initialisieren der Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames auf die Zielbefüllung eines Puffers für jeden Frame einer weiteren Vielzahl der Frames, die der Vielzahl der Frames vorangeht, und Anpassen der Zielbefüllung eines Puffers für wenigstens einen Frame aus der Vielzahl der Frames basierend auf der tatsächlichen Befüllung des Puffers und der Zielbefüllung des Puffers für einen ersten Frame aus der Vielzahl der Frames.
  9. Vorrichtung, die aufweist eine Logik für die Zielbefüllung eines Puffers, um eine Zielbefüllung eines Puffers für jeden Frame aus einer Vielzahl der Frames zu bestimmen, wobei die Vielzahl der Frames einen vorangegangenen Frame aufweist, und eine Logik für die Zielzuweisung, um eine Zielzuweisung für einen gegenwärtigen Frame basierend auf einer tatsächlichen Befüllung des Puffers für den vorangegangenen Frame und der Zielbefüllung des Puffers für den vorangegangenen Frame zu bestimmen, wobei wenigstens zwei Frames aus der Vielzahl der Frames eine unterschiedliche Zielbefüllung eines Puffers haben.
  10. Vorrichtung nach Anspruch 9, die weiter eine Logik für die tatsächliche Befüllung eines Puffers aufweist, um die tatsächliche Befüllung eines Puffers für den vorangegangenen Frame basierend auf einer tatsächlichen Zuweisung für den vorangegangenen Frame und einer mittleren Zielzuweisung, die basierend auf einer vorbestimmten Zielrate und einer vorbestimmten Framerate bestimmt wird, zu berechnen.
  11. Vorrichtung nach Anspruch 9, bei der die Logik für die Zielbefüllung eines Puffers weiter ein Muster für die Zielbefüllung eines Puffers für die Vielzahl der Frames basierend auf der Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames bestimmt, wobei das Muster der Zielbefüllung eines Puffers eine abfallende Linie aufweist.
  12. Vorrichtung nach Anspruch 9, bei der die Logik für die Zielzuweisung weiter die Zielzuweisung für den gegenwärtigen Frame als Null bestimmt, wenn die tatsächliche Befüllung des Puffers für den vorangegangenen Frame oberhalb eines Warnpegels für den Überlauf eines Puffers liegt.
  13. Vorrichtung nach Anspruch 9, bei der die Logik für die Zielzuweisung weiter die Zielzuweisung für den gegenwärtigen Frame als größer als eine mittlere Zielzuweisung bestimmt, wenn die tatsächliche Befüllung des Puffers für den vorangegangenen Frame geringer ist als die Zielbefüllung des Puffers für den vorangegangenen Frame, und die Zielzuweisung für den gegenwärtigen Frame als geringer als die mittlere Zielzuweisung bestimmt, wenn die tatsächliche Befüllung des Puffers für den vorangegangenen Frame größer ist als die Zielbefüllung des Puffers für den vorangegangenen Frame, und die mittlere Zielzuweisung entsprechend einer vorbestimmten Zielrate und einer vorbestimmten Zielframerate bestimmt wird.
  14. Vorrichtung nach Anspruch 9, bei der die Logik für die Zielbefüllung eines Puffers die Zielbefüllung eines Puffers für wenigstens einen Frame aus der Vielzahl der Frames adaptiv bestimmt.
  15. Vorrichtung nach Anspruch 14, bei der die Logik für die Zielbefüllung eines Puffers die Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames auf die Zielbefüllung eines Puffers für jeden Frame aus einer weiteren Vielzahl von Frames, die der Vielzahl der Frames vorangeht, initialisiert und die Zielbefüllung eines Puffers für wenigstens einen Frame aus der Vielzahl der Frames basierend auf der tatsächlichen Befüllung eines Puffers und der Zielbefüllung eines Puffers für wenigstens einen letzten Frame aus der weiteren Vielzahl der Frames anpaßt.
  16. Vorrichtung nach Anspruch 14, bei der die Logik für die Zielbefüllung eines Puffers die Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames auf die Zielbefüllung eines Puffers für jeden Frame aus einer weiteren Vielzahl von Frames, die der Vielzahl der Frames vorangeht, initialisiert und die Zielbefüllung eines Puffers für wenigstens einen Frame aus der Vielzahl der Frames basierend auf der tatsächlichen Befüllung eines Puffers und der Zielbefüllung eines Puffers für wenigstens einen ersten Frame aus der Vielzahl der Frames anpaßt.
  17. System, das aufweist eine Eingabekomponente, um einen Videostrom einzugeben, einen Codierer, um den Videostrom in eine Vielzahl von Frames mit einem vorbestimmten Format zu codieren, und einen Controller, um eine Ausgaberate der Vielzahl der Frames aus dem Codierer zu steuern, indem eine Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames verwendet wird, wobei wenigstens zwei Frames aus der Vielzahl der Frames eine unterschiedliche Zielbefüllung eines Puffers haben.
  18. System nach Anspruch 17, das weiter einen Puffer zum Speicher der Vielzahl der Frames, die aus dem Codierer ausgegeben werden, aufweist, um die Vielzahl der Frames mit einer vorbestimmten Zielrate zu senden.
  19. System nach Anspruch 17, bei dem der Controller eine Zielbefülllung eines Puffers für jeden Frame aus der Vielzahl der Frames bestimmt, wobei die Vielzahl der Frames einen vorangegangenen Frame aufweist, eine tatsächliche Befüllung des Puffers für den vorangegangenen Frame bestimmt und eine Zielzuweisung für einen vorliegenden Frame basierend auf der tatsächlichen Befülllung eines Puffers und der Zielbefüllung des Puffers für den vorangegangenen Frame bestimmt.
  20. System nach Anspruch 17, bei dem der Controller eine Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames bestimmt, um so ein Muster der Zielbefüllung eines Puffers für die Vielzahl der Frames zu bilden, wobei das Muster für die Zielbefüllung eines Puffers entweder eine abfallende Linie oder eine Zickzacklinie aufweist.
  21. System nach Anspruch 17, bei dem der Controller adaptiv die Zielbefüllung eines Puffers für wenigstens einen Frame aus der Vielzahl der Frames bestimmt.
  22. System nach Anspruch 17, bei dem der Controller die Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames auf die Zielbefüllung eines Puffers für jeden Frame aus einer weiteren Vielzahl von Frames, die der Vielzahl der Frames vorangeht, initialisiert und die Zielbefüllüng eines Puffers für wenigstens einen Frame aus der Vielzahl der Frames basierend auf der tatsächlichen Befüllung des Puffers und der Zielbefüllung des Puffers für einen letzten Frame aus der weiteren Vielzahl der Frames anpaßt.
  23. System nach Anspruch 17, bei dem der Controller die Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames auf die Zielbefüllung eines Puffers für jeden Frame aus einer weiteren Vielzahl von Frames, die der Vielzahl der Frames vorangeht, initialisiert und die Zielbefüllung eines Puffers für wenigstens einen Frame aus der Vielzahl der Frames basierend auf der tatsächlichen Befüllung des Puffers und der Zielbefüllung des Puffers für einen ersten Frame aus der Vielzahl der Frames anpaßt.
  24. Maschinenlesbares Medium, das eine Vielzahl von Befehlen aufweist, welche, als Antwort darauf, daß sie ausgeführt werden, dazu führen, daß in einer Rechenvorrichtung ein Muster einer Zielbefüllung eines Puffers für jeden Frame aus einer Vielzahl von Frames bestimmt wird und eine Ratensteuerung basierend auf der Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames durchgeführt wird, wobei wenigstens zwei Frames aus der Vielzahl der Frames unterschiedliche Zielbefüllungen eines Puffers haben.
  25. Maschinenlesbares Medium nach Anspruch 24, bei dem die Vielzahl der Befehle weiter dazu führt, daß in der Rechenvorrichtung eine tatsächliche Befüllung des Puffers für einen vorangegangenen Frame aus der Vielzahl der Frames erhalten wird und eine Zielzuweisung für einen gegenwärtigen Frame basierend auf der tatsächlichen Befüllung des Puffers und der Zielbefüllung des Puffers für den vorangegangenen Frame bestimmt wird.
  26. Maschinenlesbares Medium nach Anspruch 25, bei dem die Vielzahl der Befehle weiter dazu führt, daß in der Rechenvorrichtung ein Muster der Zielbefüllung eines Puffers für die Vielzahl der Frames basierend auf der Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames bestimmt wird, wobei das Muster für die Zielbefüllung eines Puffers eine abfallende Linie ist.
  27. Maschinenlesbares Medium nach Anspruch 24, bei dem die Vielzahl der Befehle weiter dazu führt, daß in der Rechenvorrichtung die Zielzuweisung für den gegenwärtigen Frame als Null bestimmt wird, wenn die tatsächliche Befüllung des Puffers für den vorangegangenen Frame oberhalb eines Warnpegels für den Überlauf eines Puffers liegt.
  28. Maschinenlesbares Medium nach Anspruch 24, bei dem die Vielzahl der Befehle weiter dazu führt, daß in der Rechenvorrichtung die Zielzuweisung für den gegenwärtigen Frame als größer als eine mittlere Zielzuweisung bestimmt wird, wenn die tatsächliche Befüllung des Puffers für den vorangegangenen Frame geringer ist als die Zielbefüllung des Puffers für den vorangegangenen Frame, wobei die mittlere Zielzuweisung entsprechend einer vorbestimmten Zielrate und einer vorbestimmten Zielframerate bestimmt wird, und die Zielzuweisung für den gegenwärtigen Frame als kleiner als die mittlere Zielzuweisung bestimmt wird, wenn die tatsächliche Befüllung des Puffers für den vorangegangenen Frame größer ist als die Zielbefüllung des Puffers für den vorangegangenen Frame.
  29. Maschinenlesbares Medium nach Anspruch 24, bei dem die Vielzahl der Befehle weiter dazu führt, daß in der Rechenvorrichtung die Zielbefüllung eines Puffers für wenigstens einen Frame aus der Vielzahl der Frames adaptiv bestimmt wird.
  30. Maschinenlesbares Medium nach Anspruch 29, bei dem die Vielzahl der Befehle weiter dazu führt, daß in der Rechenvorrichtung die Zielbefüllung eines Puffers für jeden Frame aus der Vielzahl der Frames auf die Zielbefüllung eines Puffers für jeden Frame aus einer weiteren Vielzahl von Frames, die der Vielzahl der Frames vorangeht, initialisiert wird, und die Zielbefüllung für jeden Frame aus der Vielzahl der Frames basierend auf der tatsächlichen Befüllung des Puffers und der Zielbefüllung des Puffers für einen letzten Frame aus der weiteren Vielzahl der Frames aktualisiert wird.
DE112005003628T 2005-07-14 2005-07-14 Verfahren und Vorrichtung zur Ratensteuerung Withdrawn DE112005003628T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2005/001047 WO2007006181A1 (en) 2005-07-14 2005-07-14 A rate control method and apparatus

Publications (1)

Publication Number Publication Date
DE112005003628T5 true DE112005003628T5 (de) 2008-05-21

Family

ID=37636731

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112005003628T Withdrawn DE112005003628T5 (de) 2005-07-14 2005-07-14 Verfahren und Vorrichtung zur Ratensteuerung

Country Status (5)

Country Link
US (1) US8594179B2 (de)
KR (1) KR100952239B1 (de)
CN (1) CN101223790B (de)
DE (1) DE112005003628T5 (de)
WO (1) WO2007006181A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100952239B1 (ko) 2005-07-14 2010-04-09 인텔 코오퍼레이션 레이트 제어 방법 및 장치
US7792036B2 (en) * 2007-01-23 2010-09-07 Cisco Technology, Inc. Event processing in rate limited network devices
CN101552917B (zh) * 2008-03-31 2011-01-05 深圳市融创天下科技发展有限公司 一种视频压缩码率控制方法
CN102647586B (zh) * 2011-02-16 2015-07-08 富士通株式会社 用在视频编码系统中的码率控制方法和装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5949490A (en) * 1997-07-08 1999-09-07 Tektronix, Inc. Distributing video buffer rate control over a parallel compression architecture
US6690833B1 (en) * 1997-07-14 2004-02-10 Sarnoff Corporation Apparatus and method for macroblock based rate control in a coding system
US6366704B1 (en) * 1997-12-01 2002-04-02 Sharp Laboratories Of America, Inc. Method and apparatus for a delay-adaptive rate control scheme for the frame layer
GB2337392B (en) * 1997-12-08 2002-04-17 Sony Corp Coding device and method
US6859496B1 (en) * 1998-05-29 2005-02-22 International Business Machines Corporation Adaptively encoding multiple streams of video data in parallel for multiplexing onto a constant bit rate channel
US6141380A (en) 1998-09-18 2000-10-31 Sarnoff Corporation Frame-level rate control for video compression
KR100528791B1 (ko) * 1999-12-30 2005-11-15 주식회사 케이티 동영상 비디오 인코더의 버퍼 제어 방법
US6493388B1 (en) 2000-04-19 2002-12-10 General Instrument Corporation Rate control and buffer protection for variable bit rate video programs over a constant rate channel
US6937770B1 (en) * 2000-12-28 2005-08-30 Emc Corporation Adaptive bit rate control for rate reduction of MPEG coded video
WO2002096120A1 (en) * 2001-05-25 2002-11-28 Centre For Signal Processing, Nanyang Technological University Bit rate control for video compression
US7356079B2 (en) * 2001-11-21 2008-04-08 Vixs Systems Inc. Method and system for rate control during video transcoding
US20030123540A1 (en) * 2001-12-27 2003-07-03 Koninklijke Philips Electronics N.V. Dynamic control in complexity-constrained data compression
US7453938B2 (en) * 2004-02-06 2008-11-18 Apple Inc. Target bitrate estimator, picture activity and buffer management in rate control for video coder
KR100952239B1 (ko) 2005-07-14 2010-04-09 인텔 코오퍼레이션 레이트 제어 방법 및 장치

Also Published As

Publication number Publication date
KR100952239B1 (ko) 2010-04-09
US8594179B2 (en) 2013-11-26
US20070014352A1 (en) 2007-01-18
CN101223790A (zh) 2008-07-16
WO2007006181A1 (en) 2007-01-18
CN101223790B (zh) 2013-03-27
KR20080028428A (ko) 2008-03-31

Similar Documents

Publication Publication Date Title
DE69826155T2 (de) Verfahren und Vorrichtung zur digitalen Videosignalfilterung und -kodierung
DE69930216T2 (de) Regelung des Rechen- und Speicheraufwands zur Datenfolgekompression in einem Videodekoder
DE69815159T2 (de) Kodierung von bewegten bildern mit globaler konstanter bitrate
DE60220106T2 (de) Verfahren und Vorrichtung zur Reduzierung von Störungen in dekodierten Bildern mit Nachfilterung
DE69836696T2 (de) Verfahren und vorrichtung zur durchführung einer hierarchischen bewegungsschätzung unter verwendung einer nicht-linearen pyramide
EP1995971B1 (de) Verfahren und vorrichtung zur realisierung von quantisierung beim codieren/decodieren
DE69535164T2 (de) Signalverarbeiter
DE60033485T2 (de) Formatierung und Speicherung von Videodaten
DE10300048A1 (de) Verfahren und Vorrichtung zur Bildcodierung und -decodierung
DE69813349T2 (de) Vorrichtung zur Kontrolle der Datenmenge und Kodierer dieselbige anwendend
DE69816875T2 (de) Sequenzadaptive bit-zuordnung zur codierung von bildern
DE112006000270T5 (de) Arbeitspuffer zum Speichern von Schleifenfilterzwischendaten
US7302000B2 (en) Method and system for two-pass video encoding using sliding windows
DE10248019A1 (de) Verfahren der adaptiven Codierung und Decodierung von bewegten Bildern und Apparat dafür
DE102013221798A1 (de) Parallele Transcodierung
DE102005040026A1 (de) Vorrichtung und Verfahren zur Verarbeitung von Video-/Bilddaten
JPH07322252A (ja) 画像符号化装置
DE102020133238A1 (de) An das menschliche sehsystem angepasste videocodierung
DE4135181A1 (de) Bildsignal-kodiergeraet
DE102016200001B4 (de) Verfahren, Systeme und Einrichtungen mit einem Kodierer für Bildverarbeitung
DE69535392T2 (de) Vorrichtung zur Dekodierung von Codes mit variablen Lauflängen unter Verwendung einer relativen Adressierung
DE112005003628T5 (de) Verfahren und Vorrichtung zur Ratensteuerung
DE102020128902A1 (de) Bewegungsadaptive video-codierung
DE4408522C2 (de) Vorrichtung zur Bilddatenverarbeitung und Verfahren zur Verarbeitung von Bilddaten
DE102016015996B3 (de) Anpassungsfähige Kachel-Daten-Grössenkodierung für Video- und Bildkompression

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04N0007500000

Ipc: H04N0019610000

Effective date: 20131205

R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee