DE69921108T2 - Verfahren und vorrichtung zur adaptiven codierung eines videodatenstroms - Google Patents

Verfahren und vorrichtung zur adaptiven codierung eines videodatenstroms Download PDF

Info

Publication number
DE69921108T2
DE69921108T2 DE69921108T DE69921108T DE69921108T2 DE 69921108 T2 DE69921108 T2 DE 69921108T2 DE 69921108 T DE69921108 T DE 69921108T DE 69921108 T DE69921108 T DE 69921108T DE 69921108 T2 DE69921108 T2 DE 69921108T2
Authority
DE
Germany
Prior art keywords
frame
frames
information
anchor
gof
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
DE69921108T
Other languages
English (en)
Other versions
DE69921108D1 (de
Inventor
Sriram Sethuraman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MediaTek Inc
Original Assignee
Sarnoff 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 Sarnoff Corp filed Critical Sarnoff Corp
Application granted granted Critical
Publication of DE69921108D1 publication Critical patent/DE69921108D1/de
Publication of DE69921108T2 publication Critical patent/DE69921108T2/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/114Adapting the group of pictures [GOP] structure, e.g. number of B-frames between two anchor frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a picture, frame or field
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a group of pictures [GOP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/182Methods 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 pixel
    • 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/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Description

  • Die Erfindung betrifft ein Verfahren und eine Vorrichtung für das angepaßte Codieren eines Informationsstroms in Antwort auf eine Informationsstromdiskontinuität.
  • TECHNISCHER HINTERGRUND DER BESCHREIBUNG
  • In verschiedenen Kommunikationssystemen werden die zu übertragenden Daten komprimiert, so daß die verfügbare Bandbreite effizienter verwendet wird. Beispielsweise hat die Moving Pictures Experts Group (MPEG) verschiedene Normen betreffend digitale Datenliefersysteme vorgeschlagen. Die erste, bekannt als MPEG-1, bezieht sich auf die ISO/IEC-Normen 11172. Die zweite, bekannt als MPEG-2, bezieht sich auf die ISO/IEC-Normen 13818. Ein komprimiertes digitales Videosystem wird in dem Digitalfernsehnormdokument A/53 des Advanced Television Systems Committee (ATSC) beschrieben.
  • Die oben erwähnten Normen beschreiben Datenverarbeitungs- und -manipulationstechniken, die gut geeignet sind für die Komprimierung und die Lieferung von Video-, Audio- und anderer Information unter Verwendung von digitalen Kommunikationssystemen mit fester oder variabler Länge. Insbesondere komprimieren die oben erwähnten Normen und andere "MPEG-artige" Normen und Techniken anschaulich die Videoinformation unter Verwendung von Intraframe- bzw. Intraeinzelbildcodierungstechniken (wie z.B. die Lauflängencodierung, die Huffman-Codierung und dergleichen) und von Interframe- bzw. Intereinzelbildtechniken (wie z.B. die vorwärts- und rückwärtsprädiktive Codierung, die Bewegungskompensation und dergleichen).
  • Insbesondere im Fall von Videoverarbeitungssystemen werden MPEG- und MPEG-artige Videoverarbeitungssysteme charakterisiert durch die vorhersagebasierte Komprimierungscodierung von Videoeinzelbildern mit oder ohne Intra- und/oder Interframebewegungskompensationscodierung.
  • In einem typischen MPEG-Codierer wird ein empfangener Videostrom, der eine Mehrzahl von Videoeinzelbildern aufweist, codiert entsprechend einer vorbestimmten Bildgruppen- bzw. "group of pictures"- (GOP-) Struktur. Das heißt, der empfangene Videostrom wird codiert, um eine GOP zu erzeugen, die z.B. ein intracodiertes Frame (I-Frame), gefolgt von einem oder mehreren vorwärts vorhergesagten codierten Einzelbildern (P-Frames) und bidirektional (z.B. vorwärts und rückwärts) vorhergesagten codierten Einzelbildern (B-Frames), aufweist. Im Fall einer Szenenveränderung in dem empfangenen Videostrom kann das erste Einzelbild der neuen Szene sich signifikant von dem vorherigen Ankerframe unterscheiden. Somit kann es notwendig sein, daß der Codierer einen großen Prozentsatz der Makroblöcke in dem ersten Einzelbild intracodiert. In dieser Situation codieren Codierer typischerweise das Einzelbild als ein Ankerframe, von dem nachfolgende Frames innerhalb der vorbestimmten GOP-Struktur vorhergesagt werden.
  • Falls das neue Ankerframe als ein P-Frame codiert werden sollte, beeinträchtigt seine Intracodierung unglücklicherweise die Ratensteuerung- (RC-) Vorhersagen, die von dem Codierer ver wendet werden. Abhängig davon, wie die RC durchgeführt wird, kann dies die codierte Qualität des P-Frames selbst und die Qualität über die wenigen Einzelbilder bzw. Frames, die nach dem P-Frame codiert werden, negativ beeinflussen. Insbesondere wird der Effekt am größten sein, wenn das vorherige Ankerframe ein I-Frame war.
  • Zusätzlich, es sei denn, das erste Ankerframe nach einer Szenenveränderung wird als I-Frame bezeichnet statt als ein P-Frame mit den meisten oder allen seiner Makroblöcke intracodiert, wird wahlfreier Zugriff (d.h. unabhängige Decodierbarkeit) nahe des Beginns der Szenenveränderung nicht erreicht. Um somit wahlfreien Zugriff beizubehalten, codieren einige Codierer einfach das erste Einzelbild nach einer Szenenveränderung als ein I-Frame, unabhängig davon, ob es als P-Frame oder B-Frame terminiert wurde. Solch ein Codierverhalten beeinflußt ebenso das RC-Verhalten des Codierers.
  • Es wurde daher als wünschenswert erachtet, die oben beschriebenen Probleme anzusprechen durch Bereitstellen eines Verfahrens und einer entsprechenden Vorrichtung für das Anpassen des Verhaltens eines MPEG-artigen Codierers an Szenenveränderungen innerhalb eines empfangenen Videostroms, so daß die Codierqualität und der wahlfreie Zugriff auf den codierten Strom nahe der Szenenveränderungspunkte beibehalten wird. Allgemeiner gesagt wurde es als wünschenswert erachtet, ein Verfahren und eine entsprechende Vorrichtung für das Anpassen des Verhaltens eines MPEG-artigen Codierers an Informationsdiskontinuitäten innerhalb eines empfangenen Informationsstroms irgendeines Typs bereitzustellen, so daß die Codierqualität und der wahlfreie Zugriff auf den codierten Strom in der Nähe von Informationsdiskontinuitätspunkten beibehalten wird.
  • Die EP 0 825 782 beschreibt das Erfassen einer Diskontinuität innerhalb der Abfolge von nicht codierten Videoeinzelbildern und das Anpassen der Bildgruppenstruktur (GOP), so daß der erste Ankerframe, der der Diskontinuität folgt, ein I-Frame aufweist, und das erste Ankerframe, das der Diskontinuität vorausgeht, ein P-Frame aufweist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Ein Aspekt der vorliegenden Erfindung stellt ein Verfahren zur komprimierenden Codierung einer Sequenz von nicht codierten Informationseinzelbildern bereit, um eine Abfolge von codierten Informationseinzelbildern im wesentlichen in Übereinstimmung mit einer Bildgruppeninformationsstruktur zu erzeugen, wobei jede GOF zumindest eine Unter-GOF aufweist, wobei jede Unter-GOF zumindest ein Ankerframe aufweist, wobei jedes Ankerframe ein intracodiertes Frame (I-Frame-Typ) oder ein vorwärts vorhergesagtes Frame (P-Frame-Typ) aufweist, wobei das Verfahren die Schritte aufweist: Codieren dieser nicht codierten Informationsframes, die als Ankerframe des P-Frame-Typs oder des I-Frame-Typs vorgesehen sind, und ebenso derjenigen nicht codierten Informationsframes, die als Ankerframes des anderen Typs, I-Frame-Typ oder P-Frame-Typ, vorgesehen sind, als sowohl I-Frame als auch P-Frame; und in Antwort auf eine Informationsdiskontinuität zwischen Frames innerhalb der Abfolge von nicht codierten Informationsframes Anpassen der GOF-Informationsstruktur, so daß ein erstes Ankerframe, das der Informationsdiskontinuität folgt, ein I- Frame aufweist, und das erste Ankerframe, das der Informationsdiskontinuität vorausgeht, ein P-Frame aufweist.
  • Ein anderer Aspekt der vorliegenden Erfindung stellt eine Vorrichtung zur Verfügung, die aufweist: eine Codiereinrichtung für die komprimierende Codierung einer Sequenz von nicht codierten Informationsframes, um eine Sequenz bzw. Abfolge von codierten Informationsframes zu erzeugen im wesentlichen in Übereinstimmung mit einer Bildgruppeninformationsstruktur, wobei jede GOF zumindest eine Unter-GOF aufweist, wobei jede Unter-GOF zumindest ein Ankerframe aufweist, wobei jedes Ankerframe ein intracodiertes Frame (I-Frame-Typ) oder ein vorwärts vorhergesagtes Frame (P-Frame-Typ) aufweist, wobei die Codiereinrichtung betreibbar ist, um diese nicht codierten Informationsframes, die als Ankerframe vom P-Frame-Typ oder vom I-Frame-Typ vorgesehen sind, und optional ebenso diese nicht codierten Informationsframes, die als Ankerframes des anderen Typs, des P-Frame-Typs oder des I-Frame-Typs, vorgesehen sind, sowohl als I-Frame als auch als P-Frame zu codieren, und Steuer- und Anpaßeinrichtungen für das Steuern der Codiereinrichtung in Antwort auf Anzeichen einer Interframeinformationsdiskontinuität innerhalb der Sequenz von nicht codierten Informationseinzelbildern und für das Anpassen der GOF-Informationsstruktur, so daß ein erstes Ankerframe, das der Informationsdiskontinuität folgt, ein I-Frame aufweist, und ein erstes Ankerframe, das der Informationsdiskontinuität vorhergeht, ein P-Frame aufweist.
  • KURZE BESCHREIBUNG DER FIGUREN
  • Die Lehren der vorliegenden Erfindung können leicht verstanden werden durch Inbetrachtziehen der folgenden detaillierten Beschreibung in Verbindung mit den begleitenden Zeichnungen, in denen:
  • 1 ein MPEG-artiges Codiersystem 100 gemäß der Erfindung darstellt,
  • 2 ein Flußdiagramm einer adaptiven Frameschaltroutine 200 darstellt, die für die Verwendung in dem MPEG-artigen Codierer, der in 1 dargestellt ist, geeignet ist,
  • 3 ein anderes MPEG-artiges Codiersystem 100 darstellt,
  • 4 ein Flußdiagramm einer adaptiven Frameschaltroutine 400 darstellt, die für die Verwendung in dem MPEG-artigen Codierer, der in 3 dargestellt ist, geeignet ist,
  • 5 ein anderes MPEG-artiges Codiersystem 500 darstellt,
  • 6 einen Controller darstellt, der für die Verwendung in dem MPEG-artigen Codierer, der in 1, 3 oder 5 dargestellt ist, geeignet ist.
  • Um das Verständnis zu erleichtern, wurden identische Bezugszahlen verwendet, wo dies möglich war, um identische Elemente, die den Figuren gemein sind, zu bezeichnen.
  • DETAILLIERTE BESCHREIBUNG
  • Die Erfindung wird im Kontext eines MPEG-artigen Codiersystems beschrieben, das einen Eingangsinformationsstrom IN codiert, um einen codierten Ausgangsinformationsstrom OUT zu erzeugen, der nominell einer Einzelbildgruppen- (GOF-) oder Bildgruppen- (GOP-) Datenstruktur entspricht. Jede GOF/GOP-Datenstruktur weist N Frames auf, die als eine Mehrzahl von Unter-GOF- oder Unter-GOP-Datenstrukturen mit einer Maximalgröße von M Frames angeordnet sind. Jede Unter-GOF/GOP weist ein entsprechendes Ankerframe (z.B. ein I-Frame oder ein P-Frame) und optional ein oder mehrere Nicht-Ankerframes (z.B. B-Frames) auf. In Antwort auf eine Interframeninformationsdiskontinuität innerhalb des Eingangsinformationsstroms IN paßt die Erfindung den codierten Ausgangsinformationsstrom an, so daß das erste Ankerframe, der auf die Informationsdiskontinuität folgt, ein I-Frame aufweist, während das erste Ankerframe, das der Informationsdiskontinuität vorausgeht, ein P-Frame aufweist.
  • 1 stellt ein MPEG-artiges Codiersystem 100 gemäß der Erfindung dar. Genauer gesagt stellt 1 ein MPEG-artiges Codiersystem dar, das ein erstes Codiermodul 101, ein zweites Codiermodul 102, einen Controller 103, einen Selektor 104 und einen Ausgangspuffer 160 aufweist. Das MPEG-artige Codiersystem 100 empfängt und codiert einen Eingangsinformationsstrom IN, der eine Mehrzahl von nicht komprimierten Informationsframes aufweist, beispielsweise eine Abfolge von Bildern, die einen Videoinformationsstrom bilden, um einen codierten Ausgangsinformationsstrom OUT zu erzeugen.
  • Das erste Codiermodul 101 empfängt und codiert den Eingangsinformationsstrom IN, um einen ersten codierten Informationsstrom S101 zu erzeugen, der teilweise einer Framegruppen-(GOF-) oder Bildgruppen- (GOP-) Datenstruktur entspricht. Der erste codierte Informationsstrom S101 entspricht teilweise der GOF- oder GOP-Datenstruktur, da das erste Codiermodul 101 jedes Ankerframe als ein vorwärts prädiktiv codiertes Einzelbild (P-Frame) codiert, selbst wenn das Einzelbild gemäß der GOF/GOP-Datenstruktur als intracodiertes Frame (I-Frame) geplant war. Somit beinhaltet der erste codierte Informationsstrom S101 Unter-GOFs oder Unter-GOPs mit P-Frames als Ankerframes. Der erste codierte Informationsstrom S101 wird in einem Unter-GOF/GOP puffergespeichert und dann mit einem ersten Eingang des Selektors 104 verbunden.
  • Das zweite Codiermodul 102 empfängt und codiert den Eingangsinformationsstrom IN, um einen zweiten codierten Informationsstrom S102 zu erzeugen, der nur intracodierte Ankerframes aufweist. Genauer gesagt codiert das zweite Codiermodul 102 jedes Ankerframe als ein intracodiertes Frame (I-Frame), selbst wenn das Einzelbild entsprechend der GOF/GOP-Datenstruktur, die von dem ersten Codiermodul 101 verwendet wird, als P-Frame vorgesehen war. Solch ein Frame wird als dual codiertes Frame bezeichnet, da es als ein I-Frame durch das zweite Codiermodul 102 und als ein P-Frame durch das erste Codiermodul 101 codiert wird. Somit beinhaltet der zweite codierte Informationsstrom S102 nur intracodierte Ankerframes. Der zweite codierte Informationsstrom S102 wird in einem Unter-GOF/GOP-Pufferspeicher gespeichert und dann mit einem zweiten Eingang des Selektors 104 verbunden. Zusätzlich wird jedes Einzelbild, das von dem zweiten Cadierer 102 codiert wurde, rekonstruiert (d.h. decodiert), um ein Referenzankerframe bereitzustellen, das für die Verwendung in einem bewegungsvorhergesagten Abschnitt des ersten Cadiermoduls 101 geeignet ist, wie unten erörtert wird.
  • Der Ausgangspuffer 160 erzeugt ein Ratensteuersignal RC, das einen Pufferverwendungsgrad eines Ferndecoderpuffers anzeigt. Das Ratensteuersignal RC ist mit dem ersten Codiermodul 101 und dem zweiten Codiermodul 102 verbunden. Die Codiermodule verwenden das Ratensteuer signal, um die Quantisierungsparameter ihrer jeweiligen Codierprozesse anzupassen, so daß die Bitrate ihrer entsprechenden Ausgangssignale S101 und S102 gesteuert werden können, wodurch ein Pufferüberlauf oder -unterlauf in einem entfernten Decoderpuffer verhindert wird.
  • Der Controller 103 ist mit einem Steuereingang des Selektors 104 verbunden und erzeugt ebenso ein erstes Codiersteuersignal C1 und ein zweites Codiersteuersignal C2 für die Steuerung des ersten Codiermoduls 101 bzw. des zweiten Codiermoduls 102. Der Controller 103 arbeitet normalerweise in einem kontinuierlichen Betriebsmodus, wobei der Informationsstrom, der dem Ausgangspuffer bereitgestellt wird, einer festgelegten GOF/GOP-Datenstruktur entspricht. Um beispielsweise das Auftreten von aufeinanderfolgenden Ankerframes vom I-Frame-Typ in dem bereitgestellten Informationsstrom zu vermeiden, tritt der Controller 103 in einen diskontinuierlichen Betriebsmodus im Fall von z.B. einer Szeneveränderung oder einer anderen Informationsstromdiskontinuität. In dem diskontinuierlichen Betriebsmodus verändert der Controller 103 das erste (temporäre) Ankerframe von einem I-Frame in ein P-Frame. Dies ist möglich, da jedes Ankerframe als sowohl ein I-Frame als auch ein P-Frame dual codiert ist, wie vorher erwähnt wurde. Um solch eine Informationsdiskontinuität zu erfassen, empfängt der Controller 103 zumindest den Eingangsinformationsstrom IN oder ein modusentscheidungsanzeigendes Signal MD von dem zweiten Codiermodul 102. Die Erfassung einer Informationsdiskontinuität wird unten beschrieben. Kurz gesagt, wo mehr als eine Grenzzahl von Makroblöcken für die Intracodierung (statt der Intercodierung oder der prädiktiven Codierung) ausgewählt wird, ist das gegenwärtige Informationsframe, das codiert wird, inhärent ausreichend unterschiedlich von einem Ankerframe, auf dem die Vorhersagen basieren, um daraus zu schließen, daß eine Informationsdiskontinuität, wie z.B. eine Szeneveränderung, aufgetreten ist.
  • Das erste Codiermodul 101 weist einen Addierer 155, ein Modusentscheidungsmodul 105P, ein diskretes Kosinustransformationsmodul (DCT) 110P, ein Quantisiermodul (Q) 115P, ein variable-Längen-Codierungsmodul (VLC) 120P, einen inversen Quantisierer (Q–1) 125P, ein inverses diskretes Kosinustransformationsmodul (DCT–1) 130P, einen Subtrahierer 156, einen Pufferspeicher 135P, ein Ratensteuermodul 140P, ein Bewegungskompensationsmodul 145P, ein Bewegungsabschätzmodul 150P und ein Ankerframespeichermodul 170 auf. Obgleich das zweite Codiermodul 102 eine Mehrzahl von Modulen aufweist, wird der Fachmann erkennen, daß die Funktionen, die von den verschiedenen Modulen durchgeführt werden, nicht in getrennten Modulen isoliert sein müssen, wie dies in 1 gezeigt ist. Beispielsweise ist der Satz von Modulen, der das Bewegungskompensationsmodul 145P, das inverse Quantisierungsmodul 125P und das inverse DCT-Modul 130P aufweist, allgemein als ein "eingebetteter Decoder" bekannt.
  • In dem Fall, daß der Eingangsinformationsstrom IN einen Videoinformationsstrom aufweist, stellt der Videoinformationsstrom eine Abfolge von Bildern auf dem Eingangssignalpfad IN dar, der digitalisiert und dargestellt wird anschaulich als ein Helligkeitssignal und zwei Farbdifferenzsignale (Y, Cr, Cb) in Übereinstimmung mit den MPEG-Standards. Diese Signale werden weiterhin in eine Mehrzahl von Schichten (Abfolge, Bildgruppe, Bild, Schnitt, Makroblock und Block) unterteilt, so daß jedes Bild (Einzelbild) durch eine Mehrzahl von Makroblöcken dargestellt wird. Jeder Makroblock weist vier (4) Helligkeitsblöcke, einen Cr-Block und einen Cb-Block auf, wobei ein Block festgelegt ist als eine acht- (8) mal-acht- (8) Abfrageanordnung. Die Unterteilung eines Bildes in Blockeinheiten verbessert die Fähigkeit, Veränderungen zwischen zwei aufeinanderfolgenden Bildern zu erkennen, und verbessert die Bildkomprimierung durch die Eliminierung von transformierten Koeffizienten mit niedriger Amplitude (unten erörtert). Das digitalisierte Signal kann optional eine Vorverarbeitung erfahren, wie z.B. eine Formatumwandlung für das Auswählen eines geeigneten Fensters, einer geeigneten Auflösung und eines Eingangsformats.
  • Der Subtrahierer 155 erzeugt ein Restsignal (ebenso im Stand der Technik als der Rest oder Restmakroblock bezeichnet) durch Subtrahieren eines vorhergesagten Makroblockes auf dem Signalpfad PF von einem Eingangsmakroblock auf dem Signalpfad IN.
  • Das Modusentscheidungsmodul 150P empfängt den Restmakroblock (d.h. den vorhergesagten Makroblock) von dem Subtrahierer 155 und den Eingangsmakroblock von dem Signalpfad IN. Falls der vorhergesagte Makroblock im wesentlichen ähnlich dem Eingangsmakroblock ist (d.h. die Reste sind relativ klein und werden unter Verwendung von sehr wenigen Bits codiert), dann wählt das Modusentscheidungsmodul 105P das Restsignal von dem Subtrahierer 155 für die Intercodierung aus. Das heißt, der Makroblock wird als ein bewegungskompensierter Makroblock, d.h. Bewegungsvektor(en) und verknüpfter) Reste) codiert. Falls jedoch der Unterschied zwischen dem vorhergesagten Makroblock und dem Eingangsmakroblock wesentlich ist, sind die Reste schwierig zu codieren. Folglich arbeitet das System effizienter durch das direkte Codieren des Eingangsmakroblockes statt das Codieren des bewegungskompensierten Restmakroblocks.
  • Der obige Auswahlprozeß ist bekannt als eine Auswahl des Codiermodus. Das Codieren des Eingangsmakroblocks wird als Intracodieren bezeichnet, während das Codieren der Reste als Intercodierung bezeichnet wird. Die Auswahl zwischen diesen zwei Modi ist bekannt als die Intra-Inter-Entscheidung (IID). Die IID wird typischerweise berechnet durch als erstes Berechnen der Varianz des Restmakroblocks (Var R) und der Varianz des Eingangsmakroblocks (Var I). Die Codierentscheidung basiert auf diesen Werten. Es gibt verschiedene Funktionen, die verwendet werden können, um diese Entscheidung zu fällen. Beispielsweise unter Verwendung der einfachsten Funktion, falls Var R kleiner als Var I ist, wählt die IID den Intermodus. Umgekehrt, falls Var I geringer als Var R ist, wählt die IID den Intramodus.
  • Optional stellt das Modusentscheidungsmodul 105P ein Ausgangssignal MD bereit, das die Anwesenheit oder die Abwesenheit einer Informationsstromdiskontinuität anzeigt. Beispielsweise zeigt in einer Ausführungsform der Erfindung das Ausgangssignal MD die Anzahl von Makroblöcken innerhalb eines bestimmten Informationsframes an, das durch den IID-Prozeß als intracodierte Makroblöcke ausgewählt wurde. Eine große Anzahl von intracodierten Makroblöcken innerhalb eines bestimmten Informationsframes zeigt an, daß das Informationsframe sich im wesentlichen von einem vorhergehenden Informationsframe unterscheidet. Solch ein wesentlicher Unterschied kann aufgrund einer Informationsdiskontinuität vorliegen, wie z.B. ein Szenenschnitt oder eine Szenenveränderung in einem Eingangsvideoinformationsstrom. Der Controller kann konditioniert werden, um Exkursionen über eine vorbestimmte Anzahl von intracodierten Makroblöcken innerhalb eines Einzelbildes als Anzeige eines Szeneschnitts zu interpretieren. Der Betrieb des Controllers wird detaillierter unten unter Bezug auf die 2 und 3 beschrieben.
  • Der ausgewählte Block (d.h. der Eingangsmakroblock oder Restmakroblock) wird dann mit dem diskreten Kosinustransformationsmodul (DCT) 110P verbunden. Das DCT-Modul 110P legt einen diskreten Kosinustransformationsprozeß an jeden Block des empfangenen Makroblocks an, um einen Satz von anschaulich acht (8) mal acht (8) Blöcken von DCT-Koeffizienten zu erzeugen. Die DCT-Basisfunktion oder die Subbandzerlegung erlaubt die effektive Verwendung von psychovisuellen Kriterien, was für den nächsten Schritt der Quantisierung wichtig ist. Es sei bemerkt, daß, obwohl das DCT-Modul angepaßt werden kann, um jeden Größenblock oder Makroblock zu verarbeiten, obgleich die acht-mal-acht-Blockgröße gemeinhin in MPEG-artigen Komprimierungssystemen verwendet wird. Die DCT-Koeffizienten, die von dem DCT-Modul 110P erzeugt wurden, werden mit dem Quantisiermodul 115P verbunden.
  • Das Quantisierungsmodul 115P quantisiert die empfangenen DCT-Koeffizienten, um einen quantisierten Ausgangsblock zu erzeugen. Der Prozeß der Quantisierung reduziert die Genauigkeit, mit der die DCT-Koeffizienten durch Teilen der DCT-Koeffizienten durch einen Satz von Quantisierungswerten mit geeigneter Rundung, um ganze Zahlen zu bilden, dargestellt werden. Die Quantisierungswerte können einzeln für jeden DCT-Koeffizienten eingestellt werden unter Verwendung von Kriterien basierend auf der Sichtbarkeit der Basisfunktionen (bekannt als visuell gewichtete Quantisierung). Der Quantisierungswert korrespondiert nämlich zu dem Grenzwert für die Sichtbarkeit einer gegebenen Basisfunktion, d.h. die Koeffizientenamplitude, die gerade so vom menschlichen Auge erfaßbar ist. Durch Quantisieren der DCT-Koeffizienten mit diesem Wert werden viele der DCT-Koeffizienten in einen Wert "Null" umgewandelt, wodurch die Bildkomprimierungseffizienz verbessert wird. Der Prozeß der Quantisierung ist eine Schlüsseloperation und ist ein wichtiges Werkzeug, um visuelle Qualität zu erzielen und den Codierer zu steuern, um seinen Ausgang an eine gegebene Bitrate anzupassen (Ratensteuerung). Da ein anderer Quantisierungswert an jedem DCT-Koeffizienten angewendet werden kann, wird eine "Quantisierungsmatrix" allgemein als eine Referenztabelle errichtet, z.B. eine Helligkeitsquantisierungstabelle oder eine Farbquantisierungstabelle. Der Codierer wählt somit einen Quantisierungsmatrix aus, die bestimmt, wie jeder Frequenzkoeffizient in dem transformierten Block quantisiert wird.
  • Das Ratensteuermodul 140P steuert die Quantisierungsskala (Schrittgröße), die verwendet wird, um die DCT-Koeffizienten zu quantisieren, und/oder steuert die Anzahl von DCT-Koeffizienten, die von dem System in Antwort auf ein Ratensteuersignal RC, das von dem Ausgangspuffer 160 erzeugt wird, codiert werden. Das Ratensteuersignal RC, das von dem Ausgangspuffer 160 erzeugt wird, zeigt einen Verwendungsgrad des Ausgangspuffers 160 an. Die Hauptaufgabe des Ratensteuermoduls 140P ist es, den Füllgrad oder Verwendungsgrad des Ausgangspuffers 160 zu verwalten, von dem eine konstante Ausgangsbitrate einem Übertragungskanal bereitgestellt wird. Die konstante Bitrate muß beibehalten werden, obgleich die Codierrate signifikant variieren kann abhängig von dem Inhalt jedes Bildes und der Abfolge von Bildern.
  • Das Ratensteuermodul 140P stellt die Ausgangsbitrate des ersten Codiermoduls 101 ein durch Auswählen einer Quantisierungsskala für jedes Einzelbild in einer Art und Weise, die die Gesamtqualität des Videobildes beibehält, während die Codierungsrate gesteuert wird. Eine Quantisierungsskala wird nämlich für jedes Einzelbild ausgewählt, so daß die Zielbitrate für das Bild erreicht wird, während eine gleichförmige visuelle Qualität über die gesamte Sequenz von Bildern beibehalten wird. In dieser Art und Weise arbeitet das Ratensteuermodul 140P, um Pufferüberlauf- und -unterlaufbedingungen auf der Decoderseite (z.B. innerhalb eines Receivers oder einer Zielspeichereinrichtung, nicht gezeigt) nach der Übertragung des Ausgangsinformationsstroms zu verhindern.
  • Optional reagiert das Ratensteuermodul 140P auf ein Ratensteuersignal RC1, das einen Verwendungsgrad des Puffers 135P anzeigt. Wie vorher erwähnt, wird der Puffer 135P verwendet, um z.B. zumindest ein codiertes Unter-GOF/GOP zu halten, das ein Ankerframe (z.B. ein I-Frame oder ein P-Frame) und eine Mehrzahl von Nicht-Ankerframes (z.B. B-Frames) gemäß der GOF/GOP-Datenstruktur aufweist. Falls daher die Kapazität des Puffers 135P begrenzt ist, dann muß das Ratensteuermodul 140P sicherstellen, daß der Puffer 135P nicht überläuft.
  • Eine weitere wichtige Aufgabe des Ratensteuermoduls 140P ist es, sicherzustellen, daß der Bitstrom, der von dem Codierer erzeugt wird, einen Eingangspuffer des Decoders nicht überlaufen oder unterlaufen läßt. Die Überlauf- und Unterlaufsteuerung wird verwirklicht durch Beibehalten und Überwachen eines virtuellen Puffers innerhalb des Codierers. Dieser virtuelle Puffer ist als der Videopufferverifizierer (VBV) bekannt. Um die richtige Decodereingangspufferbitsteuerung sicherzustellen, errichtet der Ratensteuerprozeß des Codierers für jedes Bild und ebenso für jeden Makroblock von Pixeln, den das Bild aufweist, einen Bitanteil bzw. eine Bitquote (hier ebenso als Bitbudget bezeichnet). Durch Codieren der Blöcke und des Gesamtbildes unter Verwendung von jeweiligen Anzahlen von Bits, die innerhalb des jeweiligen Bitbudgets sind, zeigt der VBV keinen Überlauf oder Unterlauf. Da der VBV den Betrieb des Eingangspuffers des Decoders spiegelt, falls der VBV keinen Unterlauf oder Überlauf zeigt, wird dann der Eingangspuffer des Decoders keinen Unterlauf oder Überlauf zeigen.
  • Um solch eine Puffersteuerung zu verwirklichen, macht der Ratencontroller die Standardannahme in der Videocodierung, daß das gegenwärtige Bild dem vorherigen Bild ähnlich ist. Falls diese Annahme zutreffend ist, werden die Pixelblöcke in dem Bild bewegungskompensiert durch die Codiertechnik und sobald sie kompensiert sind, erfordern sie sehr wenig Bits, um codiert zu werden. Dieses Verfahren arbeitet sehr gut, solange die tatsächliche Anzahl von Bits, die notwendig ist, um das Bild zu codieren, nahe der Zielzahl von Bits ist, die dem Bild zugewiesen wurde, d.h. daß die Anzahl von Bits, die tatsächlich verwendet wird, innerhalb der Bitquote für dieses Bild liegt.
  • Die quantisierten DCT-Koeffizienten (z.B. ein 8×8-Block von quantisierten DCT-Koeffizienten), die von dem Quantisierungsmodul 115P erzeugt wurden, sind mit dem variablen Längencodierungsmodul (VLC) verbunden, wo der zweidimensionale Block von quantisierten Koeffizienten in einer "Zick-Zack"-Ordnung abgetastet wird, um ihn in einen eindimensionalen String von quantisierten DCT-Koeffizienten umzuwandeln. Diese Zick-Zack-Abtastordnung ist eine näherungs weise sequentielle Ordnung der DCT-Koeffizienten von der niedrigsten Raumfrequenz zu der höchsten. Das variable-Längen-Codierungs-Modul (VLC) 120 codiert dann den String von quantisierten DCT-Koeffizienten und jegliche Nebeninformation für den Makroblock unter Verwendung der variablen Längencodierung und der Lauflängencodierung.
  • Um die Bewegungsvorhersage und -kompensation durchzuführen, regeneriert das erste Codierungsmodul 101 die codierten Ankerframes für die Verwendung als Referenzframes. Genauer gesagt werden die quantisierten DCT-Koeffizienten (z.B. ein 8×8-Block von quantisierten DCT-Koeffizienten), die von dem Quantisierungsmodul 115P erzeugt wurden, mit dem inversen Quantisierungsmodul (Q–1) 125P verbunden, wo ein inverser Quantisierungsprozeß auf jedem Makroblock durchgeführt wird. Die resultierenden dequantisierten DCT-Koeffizienten (z.B. ein 8×8-Block von dequantisierten DCT-Koeffizienten) werden zu dem inversen DCT-Modul (DCT–1) 130P geleitet, wo ein inverser DCT-Prozeß auf jedem Makroblock durchgeführt wird, um ein decodiertes Fehlersignal zu erzeugen. Das Fehlersignal, das von dem DCT–1-Modul 130P erzeugt wurde, wird mit dem Eingang eines Addierers 156 verbunden.
  • Das Bewegungsschätzmodul 150P empfängt den Eingangsinformationsstrom IN und einen gespeicherten Ankerframeinformationsstrom AOUT. Der gespeicherte Ankerframeinformationsstrom AOUT wird durch das Ankerframespeichermodul 170 bereitgestellt, was einen Eingangsankerframeinformationsstrom AIN speichert, der von dem zweiten Codiermodul 101 bereitgestellt wird und der unten genauer erläutert wird. Kurz gesagt stellt der gespeicherte Ankerframeinformationsstrom AOUT eine decodierte Version des intracodierten ersten Ankerframes einer GOF oder GOP, die gegenwärtig von dem zweiten Codiermodul 102 (und dem ersten Codiermodul 101) codiert wird, zur Verfügung.
  • Das Bewegungsschätzmodul 150P schätzt die Bewegungsvektoren ab unter Verwendung des Eingangsinformationsstroms IN und des gespeicherten Ankerframeinformationsstroms AOUT. Ein Bewegungsvektor ist ein zweidimensionaler Vektor, der von der Bewegungskompensation verwendet wird, um einen Offset bzw. eine Verschiebung von der Koordinatenposition eines Blockes in dem gegenwärtigen Bild gegenüber den Koordinaten in einem Referenzframe bereitzustellen. Die Referenzframes können vorwärts-prädiktiv codierte Frames (P-Frames) oder bidirektional (d.h. vorwärts und rückwärts) prädiktive Frames (B-Frames) sein. Die Verwendung von Bewegungsvektoren verbessert die Bildkomprimierung stark durch Reduzieren der Informationsmenge, die auf einem Kanal übertragen wird, da nur die Veränderungen zwischen dem gegenwärtigen und den Referenzframes codiert und übertragen werden. Die Bewegungsvektoren sind mit dem Bewegungskompensationsmodul 145P und dem VLC-Modul 120P verbunden.
  • Das Bewegungskompensationsmodul 145P verwendet die empfangenen Bewegungsvektoren, um die Effizienz der Vorhersage der Abfragewerte zu verbessern. Die Bewegungskompensation schließt eine Vorhersage ein, die Bewegungsvektoren verwendet, um Offsetwerte gegenüber den vergangenen und/oder zukünftigen Referenzframes bereitzustellen, die vorher decodierte Abfragewerte enthalten, die verwendet werden, um den Vorhersagefehler zu bilden. Das Bewegungskompensationsmodul 150P verwendet nämlich das vorher decodierte Frame und die Bewegungsvekto ren, um eine Abschätzung des gegenwärtigen Frames zu konstruieren. Weiterhin wird der Fachmann erkennen, daß die Funktionen, die von dem Bewegungsschätzmodul und dem Bewegungskompensationsmodul durchgeführt werden, in einem kombinierten Modul, z.B. einen Einzelblockbewegungskompensator, implementiert werden können.
  • Vor dem Durchführen der Bewegungskompensationsvorhersage für einen gegebenen Makroblock muß ein Codiermodus ausgewählt werden. In dem Gebiet der Codiermodusentscheidung liefern MPEG- und MPEG-artige Normen eine Vielzahl von unterschiedlichen Makroblockcodiermodi. Genauer gesagt stellt MPEG-2 Makroblockcodiermodi zur Verfügung, die die Intramode, keine Bewegungskompensationsmode (no MC), die Frame/Feld/Dual-Primzahlbewegungskompensationsintermode, die vorwärts/rückwärts/mittlere Intermode und die Feld/Frame-DCT-Mode beinhalten.
  • Sobald ein Codiermodus ausgewählt ist, erzeugt das Bewegungskompensationsmodul 145P ein bewegungskompensiertes Prädiktionsframe (d.h. ein vorhergesagtes Bild) auf dem Pfad PF der Inhalte des Blockes basierend auf vergangenen und/oder zukünftigen Referenzbildern. Dieses bewegungskompensierte Prädiktionsframe auf dem Pfad PF wird über den Subtrahierer 155 von dem Eingangsinformationsframe IN (z.B. ein Videobild) in dem gegenwärtigen Makroblock abgezogen, um ein Fehlersignal oder prädiktives Restsignal zu bilden. Das Bilden des prädiktiven Restsignals entfernt effektiv redundante Information in dem Eingangsvideobild. Wie vorher erörtert, ist das prädiktive Restsignal mit dem Modusentscheidungsmodul 105P für die weitere Verarbeitung verbunden.
  • Der VLC-Datenstrom, der von dem VLC-Codierer 120P erzeugt wird, wird in dem Puffer 135P empfangen, anschaulich ein "First-In-First-Out"- (FIFO-) Puffer, der in der Lage ist, zumindest eine codierte Unter-GOF/GOP entsprechend der GOF/GOP-Datenstruktur zu halten. Der VLC-Datenstrom, der im Puffer 135P abgelegt ist, wird selektiv über den Selektor 104 mit dem Ausgangspuffer 160, anschaulich ein FIFO-Puffer, verbunden.
  • Eine Folge der Verwendung unterschiedlicher Bildtypen und der variablen Längencodierung ist die, daß die Gesamtbitrate zu dem Ausgangspuffer 160 variabel ist. Die Anzahl von Bits, die verwendet wird, um jedes Einzelbild zu codieren, kann nämlich unterschiedlich sein. In Anwendungen, die einen Kanal mit fester Rate einschließen für das Koppeln des Ausgangsinformationsstroms OUT zu beispielsweise einem Speichermedium oder einem Telekommunikationskanal, wird der Ausgangspuffer 160 verwendet, um den Codiererausgang zu dem Kanal anzupassen für das Angleichen der Bitrate. Das Ausgangssignal OUT des FIFO-Puffers 160 ist somit eine komprimierte Darstellung des Eingangsinformationsstroms IN.
  • Das zweite Codiermodul 120 weist ein diskretes Kosinustransformationsmodul (DCT) 110I, ein Quantisierermodul (Q) 115I, ein variable-Längen-Codierungsmodul (VLC) 120I, ein inverses Quantisierungsmodul (Q–1), ein inverses diskretes Kosinustransformationsmodul (DCT–1) 130I, einen Puffer 135I und ein Ratensteuermodul 140I auf. Die verschiedenen Module, die in dem zweiten Codiermodul 102 eingeschlossen sind, sind miteinander verbunden und arbeiten im wesentlichen in der gleichen Art und Weise wie vorher in Bezug auf das erste Codiermodul 101 beschrieben wurde. Da dies so ist, werden nur Unterschiede zwischen den beiden Codiermodulen im Detail erörtert. Der Hauptunterschied zwischen den beiden Codiermodulen ist der, daß das zweite Codiermodul 102 nur diejenigen Eingangsinformationsframes codiert, die gemäß der GOF/GOP-Datenstruktur als Ankerframes zu codieren sind. Im Gegensatz dazu codiert das erste Codiermodul 101 alle Eingangsinformationsframes gemäß der GOF/GOP-Datenstruktur.
  • Der Controller 103 veranlaßt, daß der MPEG-artige Codierer, der in 1 dargestellt ist, in einem von verschiedenen Betriebsmodi arbeitet, nämlich einem kontinuierlichen Betriebsmodus und einem diskontinuierlichen Betriebsmodus. Der Controller 103 arbeitet normalerweise in einem kontinuierlichen Betriebsmodus, wobei der Informationsstrom, der dem Ausgangspuffer zur Verfügung gestellt wird, einer festgelegten GOF/GOP-Datenstruktur entspricht. Um z.B. das Auftreten von aufeinanderfolgenden Ankerframes vom I-Frame-Typ in dem bereitgestellten Informationsstrom zu verhindern, tritt der Controller 103 in einen diskontinuierlichen Betriebsmodus ein für den Fall z.B. einer Szenenveränderung oder einer anderen Informationsstromdiskontinuität. In dem diskontinuierlichen Betriebsmodus verändert der Controller 103 das erste (temporäre) Ankerframe von einem I-Frame in ein P-Frame. Dies ist möglich, da jedes Ankerframe dual als sowohl I-Frame als auch P-Frame codiert ist, wie vorher erläutert. Der Betrieb des Controllers 103 wird unten detaillierter in Bezug auf Tabelle 1 und 2 beschrieben.
  • In den diskontinuierlichen Betriebsmodus wird eingetreten, wenn der Controller 103 bestimmt, daß eine Informationsdiskontinuität innerhalb des Informationsstroms IN aufgetreten ist, z.B.: eine Szenenveränderung oder ein "Szenenschnitt" innerhalb eines Eingangsvideostroms. In dem kontinuierlichen Betriebsmodus paßt der Controller 103 den Selektor 104 derart an, daß der Ausgangsstrom S101 des ersten Codierers und der Ausgangsstrom S102 des zweiten Codierers in einer Art und Weise ausgewählt werden, daß am Ausgang des Schalters 104 ein Informationsstrom erzeugt wird, der die GOF/GOP-Datenstruktur erfüllt. Genauer gesagt veranlaßt der Controller 103, daß der Schalter 104 als das erste Einzelbild in einer GOF oder GOP, die gebildet wird, das I-Frame innerhalb des Ausgangsstroms S102 des zweiten Codierers ausgewählt wird, das mit dem ersten Einzelbild der GOF oder GOP verknüpft ist. Das heißt, die I-Frame-Version des dual codierten Frames wird ausgewählt. Der Controller 103 veranlaßt dann, daß der Selektor 104 als verbleibende Frames in der GOF oder GOP, die gebildet wird, die Ankerframes und die Nicht-Ankerframes, die mit den verbleibenden Frames der GOF oder GOP verknüpft sind, auswählt. Dieser Prozeß wird für jede GOF oder GOP wiederholt, bis der Controller 103 in den diskontinuierlichen Betriebsmodus eintritt.
  • In dem diskontinuierlichen Betriebsmodus bestimmt der Controller 103, ob die Diskontinuität aufgetreten ist innerhalb einer Unter-GOF/GOP von dem Start einer neuen GOF- oder GOP-Informationsstruktur. Falls dies nicht der Fall ist (d.h. das vorherige Ankerframe war ein P-Frame und somit nicht das erste Frame einer neuen Unter-GOF/GOP), dann beginnt der Controller eine neue Unter-GOF/GOP durch Codieren des Ankerframes nach der Informationsdiskontinuität als ein I-Frame. Falls jedoch die Diskontinuität innerhalb einer Unter-GOF/GOP des vorgesehenen I-Frames auftritt, veranlaßt der Controller 103, daß der Selektor 104 die P-Frame-Version des dual codierten vorherigen Ankerframes zusammen mit den verknüpften Nicht-Ankerframes (z.B. den B-Frames der Unter-GOF/GOP) auswählt. Der Controller 103 veranlaßt dann, daß der Selektor 104 die I-Frame-Version des dual codierten Ankerframes unmittelbar nach der Informationsdiskontinuität auswählt. Im Ergebnis wird die vorgesehene erste Unter-GOF/GOP einer neuen GOF/GOP als letzte Unter-GOF/GOP der vorherigen GOF/GOP-Informationsstruktur gemacht und eine neue GOF/GOP-Informationsstruktur beginnt mit dem Ankerframe als erstes Frame nach der Diskontinuität.
    Figure 00120001
    Tabelle 1
  • Die Tabelle 1 stellt Informationen dar, die nützlich bei dem Verständnis der Erfindung sind. Die erste Reihe der Tabelle 1 identifiziert eine Framenummer (d.h. 1-18), die mit jedem der Mehrzahl von Eingangsinformationsframes, beispielsweise Videoframes, verknüpft ist, die der Erfindung bereitgestellt wird. Die zweite Reihe von Tabelle 1 stellt eine Szenennummer (d.h. 1-2) dar, die mit jedem der Eingangsvideoframes der ersten Reihe verknüpft ist. Es ist wichtig, zu sehen, daß die Szenennummer von dem elften Frame von Szene 1 zu der Szene 2 übergeht.
  • Die dritte Reihe von Tabelle 1 stellt eine gewünschte GOF/GOP-Datenstruktur dar, die verwendet wird, um die Videoeingangsbilder zu codieren (d.h. IBBPBBPBB...). Die gewünschte GOF/GOP-Datenstruktur ist die Struktur, die dafür vorgesehen ist, dem Ausgangsinformationsstrom OUT, der von dem Ausgangspuffer 160 zu beispielsweise einem Transmissionskanal geliefert wird, verliehen wird. Es muß erwähnt werden, daß die beispielhaft in Tabelle 1 dargestellte GOF/GOP-Datenstruktur nur illustrative Zwecke hat; die Erfindung kann unter Verwendung von irgendeiner GOF/GOP-Datenstruktur durchgeführt werden.
  • Die vierte Reihe stellt den Ausgangsinformationsstrom S101 des ersten Codiermoduls 101 des MPEG-artigen Codierers, der in 1 gezeigt ist, dar. Wie vorher erörtert, empfängt das erste Codiermodul 101 den Eingangsinformationsstrom IN und codiert ihn, um einen ersten codierten Informationsstrom S101, der teilweise mit einer Framegruppen- (GOF-) oder Bildgruppen- (GOP-) Datenstruktur übereinstimmt, beispielsweise die GOF/GOP-Datenstruktur, die in der dritten Reihe von Tabelle 1 gezeigt ist, zu erzeugen. Der erste codierte Informationsstrom S101 stimmt nur teilweise mit der GOF- oder GOP-Datenstruktur überein, da das erste Codiermodul 101 jedes Ankerframe als ein P-Frame codiert, selbst wenn das Frame gemäß der GOF/GOP-Datenstruktur als ein I- Frame vorgesehen ist. Somit beinhaltet der erste codierte Informationsstrom S101 Unter-GOFs oder Unter-GOPs mit P-Frames als Ankerframes.
  • Die fünfte Reihe stellt den Ausgangsinformationsstrom S102 des zweiten Codiermoduls 102 des MPEG-artigen Codierers, der in 1 dargestellt ist, dar. Wie vorher erörtert, empfängt das zweite Codiermodul 102 den Eingangsinformationsstrom IN und codiert ihn, um einen zweiten codierten Informationsstrom S102, der nur intracodierte Ankerframes aufweist, zu erzeugen. Genauer gesagt codiert das zweite Codiermodul 102 jedes Ankerframe als ein intracodiertes Frame (I-Frame), selbst wenn das Frame gemäß der GOF/GOP-Datenstruktur, die von dem ersten Codiermodul 101 verwendet wurde, als P-Frame vorgesehen war. Somit beinhaltet der zweite codierte Informationsstrom S102 nur intracodierte Ankerframes.
  • Die sechste Reihe stellt einen Ausgangsinformationsstrom OUT dar, der von dem Ausgangspuffer 160 des in 1 dargestellten MPEG-artigen Codierers bereitgestellt wird. Genauer gesagt stellt die sechste Reihe die Anpassung, die an die GOF/GOP-Datenstruktur in Antwort auf eine Veränderung von einer ersten Szene (Frame 11) und einer zweiten Szene (Frame 12) durchgeführt wurde, dar. Unter Bezug auf die GOF/GOP-Struktur, die in der dritten Reihe festgelegt ist, wird Frame 13 als als P-Frame zu codieren festgelegt. Da jedoch eine neue Szene in Frame 12 startete, wird das erste Ankerframe der ersten Unter-GOF/GOP, die einer Szenenveränderung folgt, als I-Frame codiert werden. Da Frame 10 (ein dual codiertes Ankerframe) bereits als ein I-Frame vorgesehen ist, veranlaßt der Controller, daß die P-Frame-Version des Frame 10 für die Ausgabe ausgewählt wird, während die I-Frame-Version des Frames 13 für die Ausgabe ausgewählt wird. In dieser Art und Weise wird die nicht gewünschte Situation der Ausgabe zweier eng benachbarter I-Frames (d.h. der Frames 10 und 13) verhindert.
  • Die siebte Reihe stellt einen alternativen Ausgangsinformationsstrom OUT dar, der von dem Ausgangspuffer 160 des in 1 dargestellten MPEG-artigen Codierers bereitgestellt wird. Genauer gesagt stellt die siebte Reihe die Adaption dar, die an die GOF/GOP-Datenstruktur in Antwort auf eine Veränderung von einer ersten Szene (Frame 11) zu einer zweiten Szene (Frame 12) durchgeführt wurde, wobei das erste Frame der neuen Szene (d.h. Frame 12) als ein I-Frame codiert wird anstelle des ersten Ankerframes (d.h. Frame 13) der neuen Szene, wie in Reihe 6 dargestellt ist.
  • 2 stellt ein Flußdiagramm einer adaptiven Frameschaltroutine 200 dar, die für die Verwendung in dem MPEG-artigen Codierer, der in 1 dargestellt ist, geeignet ist. Genauer gesagt kann die Routine 200 von 2 als eine Steuerroutine innerhalb des Controllers 103 oder als eine logische Funktion zwischen kooperierenden Modulen des MPEG-artigen Codierers 100 von 1 implementiert werden. Die Routine 200 stellt ein adaptives Frame-Switching bzw. adaptives Frameschalten innerhalb des Kontexts eines Codiersystems, das gleichzeitig Ankerframes sowohl als I-Frames als auch P-Frames (d.h. dual codierte Frame) codiert, zur Verfügung.
  • In die Routine 200 von 2 wird in Schritt 205 eingetreten, wo eine Variable LAST_INTRA gleich 0 gesetzt wird. Die Routine 200 setzt dann zu Schritt 210 fort, wo die Abfrage durchgeführt wird, ob ein empfangenes Eingangsinformationsframe, das codiert werden soll, für die Codierung als I-Frame (gemäß der GOF/GOP-Datenstruktur) vorgesehen ist. Falls die Abfrage in Schritt 210 bestätigend beantwortet wird, dann setzt die Routine 200 zu Schritt 215 fort.
  • In Schritt 215 wird das empfangene Einzelbild als ein I-Frame codiert und das codierte I-Frame wird in einem ersten Puffer (z.B. BUFFER_I) gespeichert. Die Routine setzt dann zu Schritt 220 fort, wo das empfangene Frame als ein P-Frame codiert wird, und das codierte P-Frame wird in einem zweiten Puffer (z.B. BUFFER_P) gespeichert. Die Routine 200 setzt dann zu Schritt 225 fort, wo die LAST_INTRA-Variable gleich 1 gesetzt wird. Die Routine 200 setzt dann mit Schritt 210 fort.
  • Wenn die Abfrage in Schritt 210 negativ beantwortet wird, dann setzt die Routine 200 mit Schritt 230 fort. In Schritt 230 wird eine Abfrage durchgeführt, ob das empfangene Frame dafür vorgesehen ist, als B-Frame codiert zu werden. Wenn die Abfrage in Schritt 230 bestätigend beantwortet wird, dann setzt die Routine 200 mit Schritt 235 fort, wo eine Abfrage gemacht wird, ob die LAST_INTRA-Variable gleich 1 ist. Falls die Abfrage in Schritt 235 bestätigend beantwortet wird, setzt dann die Routine 200 zu Schritt 240 fort, wo das empfangene Frame als ein B-Frame codiert wird, und das codierte B-Frame wird in einem dritten Puffer (d.h. BUFFER_B) gespeichert. Die Routine 200 setzt dann zu Schritt 210 fort. Falls die Abfrage in Schritt 235 negativ beantwortet wird, setzt dann die Routine 200 zu Schritt 245 fort, wo das empfangene Frame als ein B-Frame codiert wird, und das codierte B-Frame wird zu einem Ausgangspuffer gesendet. Die Routine 200 setzt dann zu Schritt 210 fort.
  • Es sollte bemerkt werden, daß der erste Puffer (d.h. BUFFER_I), der zweite Puffer (d.h. BUFFER_P) und der dritte Puffer (d.h. BUFFER_B) einzigartige Speichermodule, Abschnitte desselben Speichermoduls, inneren Speicher von z.B. dem Controller 103 oder irgendeinen anderen verfügbaren Speicher einschließlich eines Abschnitts eines Ausgangspuffers eines Codierers aufweisen kann. Der Ort der verschiedenen Speicherorte beeinflußt nicht die Ausführbarkeit der Erfindung, da der Fachmann, der von den Lehren dieser Erfindung geleitet wird, leicht Modifikationen aus der Erfindung ableiten wird, die für eine Vielfalt von Speicherkonfigurationen geeignet sind.
  • Wenn die Abfrage in Schritt 230 negativ beantwortet wird, dann setzt die Routine 200 mit Schritt 250 fort, wo eine Abfrage durchgeführt wird, ob eine Informationsdiskontinuität (z.B. eine Szenenveränderung in einem Videoeingangsstrom) erfaßt wurde. Falls die Abfrage in Schritt 250 bestätigend beantwortet wird, setzt die Routine 200 mit Schritt 272 fort, wo eine Abfrage gemacht wird, ob die LAST_INTRA-Variable gleich 1 gesetzt ist. Falls die Abfrage in Schritt 272 negativ beantwortet wird, setzt die Routine 200 mit Schritt 274 fort, wo das empfangene Frame als ein I-Frame codiert wird und das codierte I-Frame zu dem Ausgangspuffer gesendet wird. Die Routine 200 setzt dann zu Schritt 210 fort.
  • Falls die Abfrage in Schritt 272 bestätigend beantwortet wird, setzt die Routine 200 mit Schritt 276 fort, wo die Inhalte des zweiten Puffers (d.h. BUFFER_P) zu dem Ausgangspuffer übertragen werden. Die Routine 200 setzt dann mit Schritt 278 fort, wo die Inhalte des dritten Puffers (z.B. BUFFER_B) zu dem Ausgangspuffer übertragen werden, und setzt mit Schritt 280 fort, wo das empfangene Einzelbild als ein I-Frame codiert wird und das codierte I-Frame zu dem Ausgangspuf fer gesendet wird. Die Routine 200 setzt dann mit Schritt 282 fort, wo die LAST_INTRA-Variable gleich 0 gesetzt wird. Die Routine 200 setzt dann mit Schritt 210 fort.
  • Falls die Abfrage in Schritt 250 negativ beantwortet wird, setzt die Routine 200 mit Schritt 255 fort, wo eine Abfrage durchgeführt wird, ob die LAST_INTRA-Variable gleich 1 gesetzt wird. Falls die Abfrage in Schritt 255 negativ beantwortet wird, setzt die Routine 200 mit Schritt 260 fort, wo das empfangene Frame als ein P-Frame codiert wird, und das codierte P-Frame wird zu dem Ausgangspuffer gesendet. Die Routine 200 setzt dann mit Schritt 210 fort.
  • Falls die Abfrage in Schritt 255 bestätigend beantwortet wird, setzt die Routine 200 zu Schritt 262 fort, wo die LAST_INTRA-Variable gleich 1 gesetzt wird. Die Routine 200 setzt dann zu Schritt 264 fort, wo die Inhalte des ersten Puffers (d.h. BUFFER_I) zu dem Ausgangspuffer übertragen werden, und setzt mit Schritt 268 fort, wo die Inhalte des dritten Puffers (d.h. BUFFER_B) zu dem Ausgangspuffer übertragen werden. Die Routine 200 setzt dann mit Schritt 270 fort, wo das empfangene Frame als ein P-Frame codiert wird, und das codierte P-Frame wird zu dem Ausgangspuffer gesendet. Die Routine 200 setzt dann zu Schritt 210 fort.
  • Die oben beschriebene Flußroutine stellt eine beispielhafte Ausführungsform eines Verfahrens gemäß der Erfindung dar. Genauer gesagt stellt die oben beschriebene Routine die gleichzeitige Codierung eines empfangenen Ankerframes sowohl als I-Frame als auch als P-Frame dar. Es ist wichtig, zu erkennen, daß der erste, der zweite, der dritte und der Ausgangspuffer nur verwendet werden, um codierte (d.h. komprimierte) Informationsframes zu speichern. Die Speicheranforderungen des Systems sind somit auf Kosten erhöhter Verarbeitungsanforderungen reduziert. Der Erfinder hat festgestellt, daß die hinzugefügten Verarbeitungskosten solch eines Systems (z.B. die Hinzufügung eines zweiten Codiermoduls) mehr als ausgeglichen werden können durch einen verknüpften Rückgang bei den Speicherausgaben.
  • In der oben beschriebenen Ausführungsform der Erfindung codiert das zweite Codiermodul 102 jedes Ankerframe als ein I-Frame. Es muß bemerkt werden, daß das zweite Codiermodul 102 ebenso gesteuert werden kann, um nur diejenigen Frames, die gemäß GOF/GOP-Datenstruktur dafür vorgesehen sind, als P-Frames codiert zu werden, als I-Frames zu codieren. Das heißt, in einer anderen Ausführungsform der Erfindung codiert das erste Codiermodul 101 Eingabeframes als I-Frames, P-Frames und B-Frames in Übereinstimmung mit der GOF/GOP-Datenstruktur. Gleichzeitig codiert das zweite Codiermodul 102 nur diejenigen Frames, die gemäß GOF/GOP-Datenstruktur für die Codierung als P-Frames vorgesehen sind, als I-Frames.
  • In dieser alternativen Ausführungsform der Erfindung arbeitet der Controller 103 in im wesentlichen der gleichen Art und Weise wie vorher beschrieben, außer daß während des kontinuierlichen Betriebsmodus der Controller 103 nur veranlaßt, daß der Ausgangsstrom S101 des ersten Codiermoduls mit dem Ausgangspuffer 160 verbunden wird. Dies liegt daran, daß der Ausgangsstrom S101 des ersten Codiermoduls 101 richtig entsprechend der GOF/GOP-Datenstruktur codiert ist. Im diskontinuierlichen Betriebsmodus verbindet der Controller 103 den Ausgangsstrom S102 des zweiten Codiermoduls 102 mit dem Ausgangspuffer 160, wenn ein P-Frame innerhalb des ersten Codiermodulausgangsstroms S101 durch ein I-Frame ersetzt werden muß.
  • 3 stellt ein anderes MPEG-artiges Codiersystem 300 dar. Genauer gesagt stellt 3 ein MPEG-artiges Codiersystem 300 dar, das ein Codiermodul 101, einen Controller 103 und einen Ausgangspuffer 160 aufweist. Das MPEG-artige Codiersystem 300 empfängt einen Eingangsinformationsstrom IN, der eine Mehrzahl von nicht komprimierten Informationsframes aufweist, anschaulich eine Abfolge von Bildern, die einen Videoinformationsstrom bilden, und codiert ihn, um einen codierten Ausgangsinformationsstrom OUT zu erzeugen. Das Codiermodul 101 empfängt den Eingangsinformationsstrom IN und codiert ihn, um einen codierten Informationsstrom S101 zu erzeugen, der im wesentlichen mit der Einzelbildgruppen- (GOF-) oder der Bildgruppen- (GOP-) Datenstruktur übereinstimmt. Der erste codierte Informationsstrom S101 wird in einem Unter-GOF/GOP-Puffer 135P gespeichert und dann mit dem Ausgangspufferspeicher verbunden. Die codierten Frames, die in dem Unter-GOF/GOP-Pufferspeicher 135P abgelegt sind, können durch den Controller 103 modifiziert werden, wie unten erörtert wird. Das Codiermodul 101 beinhaltet verschiedene Elemente, die im wesentlichen in der gleichen Art und Weise arbeiten wie die entsprechenden Elemente des ersten Codiermoduls 101, das oben in Bezug auf 1 beschrieben wurde. Daher werden nur Unterschiede in der Funktion der verschiedenen Elemente im Detail unten beschrieben. Ausdrücklich gesagt weist das Codiermodul 101 einen Addierer 155, ein Modusentscheidungsmodul 105P, ein diskretes Kosinustransformationsmodul (DCT) 110P, ein Quantisierungsmodul (Q) 115P, ein variable-Längen-Codiermodul (VLC) 120P, einen inversen Quantisierer (Q–1) 125P, ein inverses diskretes Kosinustransformationsmodul (DCT–1) 130P, einen Subtrahierer 156, einen Pufferspeicher 135P, ein Ratensteuermodul 140P, ein Bewegungskompensationsmodul 145P, ein Bewegungsabschätzmodul 150P und ein Ankerframespeichermodul 170 auf.
  • Der Hauptunterschied zwischen dem Codiermodul 101 von 3 und dem ersten Codiermodul 101 von 1 ist der, daß der Ausgang des inversen DCT-Moduls 130P (d.h. das letzte Ankerframe) in dem Ankerframespeichermodul 170 abgelegt wird und mit dem Bewegungsschätzmodul 150P verbunden wird für das Abschätzen der Bewegungsvektoren (statt eines nicht codierten I-Frames von dem zweiten Codiermodul von 1). Zusätzlich wird die nicht codierte Version jedes Einzelbildes, das gemäß der GOF/GOP-Struktur als I-Frame vorgesehen ist, ebenso in dem Ankerframespeichermodul 170 abgelegt. Das Ankerframespeichermodul enthält somit das rekonstruierte Ankerframe, das dem letzten I-Frame vorhergeht, und die nicht codierte Version des letzten I-Frames. Auf diese Art und Weise wird in dem Fall, daß das I-Frame erneut als ein P-Frame codiert wird (d.h. ein vorgesehenes I-Frame wird als solches codiert) das rekonstruierte Ankerframe, das dem I-Frame vorhergeht (zusammen mit der nicht codierten Version des I-Frames), verwendet, um eine P-Frame-Ersetzung für das codierte I-Frame vorherzusagen.
  • Der Ausgangspufferspeicher 160 arbeitet im wesentlichen in der gleichen Art und Weise wie der Ausgangspufferspeicher 160 von 1. Der Ausgangspufferspeicher 160 erzeugt ein Ratensteuersignal RC, das einen Verwendungsgrad eines entfernten Decoderpuffers anzeigt. Das Ratensteuersignal RC ist mit dem Codiermodul 101 verbunden, das das Ratensteuersignal RC verwendet, um z.B. die Quantisierungsparameter anzupassen, so daß die Bitrate des Ausgangsinfor mationsstroms OUT gesteuert werden kann, wodurch ein Pufferüberlauf oder -unterlauf in einem entfernten Decoderpuffer verhindert wird.
  • Der Controller 103 erzeugt ein Codierersteuersignal C1 für das Steuern des Codierungsmoduls 101 und empfängt zumindest den Eingangsinformationsstrom IN oder einen Modusentscheidungsanzeigestrom MD von dem Codiermodul 101. Der Controller 103 von 3 erfaßt Informationsdiskontinuitäten in der vorher in Bezug auf 1 beschriebenen Art und Weise. Während der Controller 103 von 3 ebenso in einem kontinuierlichen Modus oder einem diskontinuierlichen Modus arbeitet und die Endergebnisse der beiden Betriebsmodi die gleichen sind (in Bezug auf die GOF/GOP-Datenstrukturanpassung), ist der Betrieb des Controllers 103 in diesen Modi leicht unterschiedlich gegenüber dem Betrieb des Controllers 103 von 1.
  • In dem kontinuierlichen Betriebsmodus codiert das Codiermodul 101 von 3 den Eingangsinformationsstrom IN in der oben beschriebenen Art und Weise, um einen codierten Informationsstrom S101 zu erzeugen. Der codierte Informationsstrom wird in einem temporären Puffer (Unter-GOF/GOP-Puffer 135P) vor der Verbindung zu dem Ausgangspuffer gespeichert.
  • Mit der Erfassung einer Informationsdiskontinuität tritt der Controller 103 in den diskontinuierlichen Betriebsmodus. Falls es als angebracht angesehen wird, das zuletzt codierte Ankerframe als ein P-Frame erneut zu codieren (d.h. das gegenwärtig vorgesehene P-Frame wird als ein I-Frame codiert), dann wird die nicht codierte Version des letzten codierten Ankerframes (voraussichtlich ein I-Frame) aus dem Ankerspeichermodul 170 abgerufen und als ein P-Frame codiert unter Verwendung des rekonstruierten Ankerframes, was zeitlich der nicht codierten Version des nicht codierten I-Frames vorhergeht (ebenso in dem Ankerspeichermodul abgelegt). Der MPEG-artige Codierer von 3 implementiert somit eine Recodierung "auf Abruf' eines vorher codierten I-Frames als ein P-Frame.
  • 4 stellt ein Flußdiagramm einer adaptiven Frameschaltroutine 400 dar, die für die Verwendung in dem MPEG-artigen Codierer, der in 3 dargestellt ist, geeignet ist. Genauer gesagt kann die Routine 400 von 4 als eine Steuerroutine innerhalb des Controllers 103 oder als eine logische Funktion zwischen den kooperierenden Modulen des MPEG-artigen Codierers 300 von 3 implementiert sein. Die Routine 400 stellt ein adaptives Frame-Switching bzw. Frameschalten innerhalb des Kontexts eines Codiersystems, das ein abrufbasiertes Codieren von Ankerframes als entweder I-Frames oder P-Frames, so wie es notwendig ist, bereitstellt.
  • In die Routine 400 wird in Schritt 402 eingetreten, wo eine Variable LAST_INTRA gleich 0 gesetzt wird. Die Routine 400 setzt dann mit Schritt 404 fort, wo eine Abfrage durchgeführt wird, ob ein empfangenes Informationsframe (gemäß der GOF/GOP-Datenstruktur) für die Codierung als ein I-Frame vorgesehen ist. Falls die Abfrage in Schritt 404 bestätigend beantwortet wird, setzt dann die Routine 400 zu Schritt 406 fort, wo das empfangene Frame als ein I-Frame codiert wird und das codierte I-Frame in einem ersten Pufferspeicher (d.h. BUFFER_I) abgelegt wird. Die Routine 400 setzt dann mit Schritt 408 fort, wo die Variable LAST_INTRA gleich 1 gesetzt wird. Die Routine 400 setzt dann mit Schritt 410 fort, wo das empfangene Frame und ein vorher rekonstruiertes Referenz frame (d.h. ein Ankerframe) in einem nicht codierten Pufferspeicher (z.B. dem Ankerspeichermodul 170) gespeichert werden. Die Routine 400 setzt dann mit Schritt 404 fort.
  • Falls die Abfrage in Schritt 404 negativ beantwortet wird, setzt die Routine 400 mit Schritt 412 fort, wo eine Abfrage durchgeführt wird, ob das empfangene Frame für die Codierung als B-Frame vorgesehen ist. Falls die Abfrage in Schritt 412 bestätigend beantwortet wird, setzt die Routine 400 mit Schritt 414 fort, wo eine Abfrage durchgeführt wird, ob die Variable LAST_INTRA gleich 1 ist. Falls die Abfrage in Schritt 414 bestätigend beantwortet wird, setzt die Routine 400 mit Schritt 416 fort, wo das empfangene Frame als ein B-Frame codiert wird und das codierte B-Frame in einem zweiten Pufferspeicher (d.h. BUFFER_B) abgelegt wird. Die Routine 400 setzt dann mit Schritt 404 fort. Falls die Abfrage in Schritt 414 negativ beantwortet wird, setzt die Routine 400 dann mit Schritt 418 fort, wo das empfangene Frame als ein B-Frame codiert wird und das codierte B-Frame zu dem Ausgangspuffer gesendet wird. Die Routine 400 setzt dann mit Schritt 404 fort.
  • Falls die Abfrage in Schritt 412 negativ beantwortet wird, setzt die Routine 400 dann mit Schritt 420 fort, wo eine Abfrage durchgeführt wird, ob eine Informationsdiskontinuität (z.B. eine Szenenveränderung) erfaßt wurde.
  • Falls die Abfrage in Schritt 420 bestätigend beantwortet wird, setzt die Routine 400 zu Schritt 422 fort, wo eine Abfrage durchgeführt wird, ob die Variable LAST_INTRA gleich 1 ist. Falls die Abfrage in Schritt 422 negativ beantwortet wird, setzt die Routine 400 mit Schritt 424 fort, wo das empfangene Einzelbild als ein I-Frame codiert wird und das codierte I-Frame mit dem Ausgangspuffer verbunden wird. Die Routine 400 setzt dann mit Schritt 404 fort.
  • Falls die Abfrage in Schritt 422 bestätigend beantwortet wird, setzt die Routine 400 mit Schritt 426 fort, wo das vorher gesicherte Referenzframe neu als P-Frame codiert wird und das codierte P-Frame mit dem Ausgangspuffer verbunden wird. Die Routine 400 setzt dann mit Schritt 428 fort, wo die Inhalte des zweiten Puffers (d.h. BUFFER_B) mit dem Ausgangspuffer verbunden werden. Die Routine 400 setzt dann mit Schritt 430 fort, wo das empfangene Frame als ein I-Frame codiert wird und das codierte I-Frame mit dem Ausgangspuffer verbunden wird. Die Routine 400 setzt dann mit Schritt 432 fort, wo die Variable LAST_INTRA gleich 0 eingestellt wird, und setzt mit Schritt 404 fort.
  • Falls die Abfrage in Schritt 420 negativ beantwortet wird, setzt die Routine mit Schritt 434 fort, wo eine Abfrage durchgeführt wird, ob die Variable LAST_INTRA gleich 1 ist. Falls die Abfrage in Schritt 434 negativ beantwortet wird, setzt die Routine 400 dann mit Schritt 436 fort, wo das empfangene Einzelbild als ein P-Frame codiert wird und das codierte P-Frame zu dem Ausgangspuffer gesendet wird. Die Routine 400 setzt dann mit Schritt 404 fort.
  • Falls die Abfrage in Schritt 434 bestätigend beantwortet wird, setzt die Routine 400 mit Schritt 438 fort, wo die Inhalte des ersten Puffers (BUFFER_I) mit dem Ausgangspuffer verbunden werden, und setzt mit Schritt 440 fort, wo die Inhalte des zweiten Puffers (BUFFER_B) mit dem Ausgangspuffer verbunden werden. Die Routine 400 verarbeitet in 444, wo das empfangene Frame als ein P-Frame codiert wird und das codierte P-Frame mit dem Ausgangspuffer verbunden wird. Die Routine 400 setzt dann mit Schritt 446 fort, wo die Variable LAST_INTRA gleich 0 gesetzt wird, und setzt mit Schritt 404 fort. Die adaptive Frameschaltroutine 400 von 4 verwirklicht im wesentlichen dieselbe Funktion wie die adaptive Frameschaltroutine 200 von 2, außer daß die Routine 400 von 4 dazu neigt, mehr Speicherressourcen und weniger Verarbeitungsressourcen als die Routine 200 von 2 zu erfordern. Dies liegt daran, daß die Routine 400 von 4 die Speicherung des nicht codierten (d.h. nicht komprimierten) Informationsframes, das das erste Frame einer GOF oder GOP sein soll, und des rekonstruierten Ankerframes vor diesem erfordert.
  • 5 stellt ein anderes MPEG-artiges Codiersystem 500 dar. Genauer gesagt stellt 5 ein MPEG-artiges Codiersystem 500 dar, das ein M-Frame-Verzögerungsmodul 510, ein Codiermodul 101, einen Controller 103 und einen Ausgangspuffer 160 aufweist. Das MPEG-artige Codiersystem 500 empfängt einen Eingangsinformationsstrom IN, der eine Mehrzahl von nicht komprimierten Informationsframes, anschaulich eine Abfolge von Bildern, die einen Videoinformationsstrom bilden, aufweisen, und codiert diesen, um einen codierten Ausgangsinformationsstrom OUT zu erzeugen. Da das MPEG-artige Codiersystem 500 von 5 im wesentlichen zu dem MPEG-artigen Codiersystem 300, das vorher in Bezug auf 3 erläutert wurde, ähnlich ist, werden nur die Unterschiede zwischen den beiden Systemen im Detail erläutert.
  • In dem MPEG-artigen Codiersystem 500 von 5 empfängt das M-Frame-Verzögerungsmodul 510, anschaulich ein "First-In-First-Out"- (FIFO-) Pufferspeicher, den Eingangsinformationsstrom IN und stellt einen verzögerten Eingangsinformationsstrom IN' dem Codierer 101 zur Verfügung. Wie vorher erörtert, weist eine GOF/GOP-Datenstruktur IN Frames bzw. Einzelbilder auf, die als eine Mehrzahl von Unter-GOF- oder Unter-GOP-Datenstrukturen mit einer Maximalgröße von M Frames angeordnet sind. Somit ist das M-Frame-Verzögerungsmodul 510 in der Lage, zumindest eine Unter-GOF/GOP entsprechend der GOF/GOP-Datenstruktur zu halten.
  • Das Codiermodul 101 empfängt den verzögerten Eingangsinformationsstrom IN' und codiert ihn, um einen codierten Informationsstrom S101 zu erzeugen, der im wesentlichen mit einer Framegruppen- (GOF-) oder Bildgruppen- (GOP-) Datenstruktur übereinstimmt. Der erste codierte Informationsstrom S101 ist mit dem Ausgangspuffer 160 verbunden. Das Codiermodul 101 beinhaltet verschiedene Elemente, die im wesentlichen in der gleichen Art und Weise arbeiten wie die entsprechenden Elemente des ersten Codiermoduls 101, das oben in Bezug auf die 1 und 3 beschrieben wurde. Im Grunde genommen werden nur Unterschiede im Betrieb der verschiedenen Elemente unten im Detail erläutert. Genauer gesagt weist das Codiermodul 101 einen Addierer 155, ein Modusentscheidungsmodul 105P, ein diskretes Kosinustransformationsmodul (DCT) 110P, ein Quantisierungsmodul (Q) 115P, ein variable-Längen-Codierungsmodul (VLC) 120P, einen inversen Quantisierer (Q–1) 125P, ein inverses diskretes Kosinustransformationsmodul (DCT–1) 130P, einen Subtrahierer 156, ein Ratensteuermodul 140P, ein Bewegungskompensationsmodul 145P, ein Bewegungsabschätzmodul 150P und ein Ankerframespeichermodul 170 auf.
  • Der Hauptunterschied zwischen dem Codiermodul 101 von 5 und dem Codiermodul 101 von 3 ist der, daß das Codiermodul 101 von 5 keinen Puffer 135 (das verknüpfte optionale Ratensteuersignal RC1) beinhaltet, wie vorher in dem Codiermodul 101 von 3 dargestellt. Zusätzlich speichert das Ankerframespeichermodul 170 des Codiermoduls 101 von 5 nicht das nicht codierte Informationsframe, das gemäß der GOF/GOP-Sruktur als das erste Frame einer GOF oder GOP (d.h. das I-Frame) vorgesehen ist, wie vorher in dem Codiermodul 101 von 3 beschrieben wurde. Schließlich stellt das Modusentscheidungsmodul 105P von dem Codiermodul 101 von 5 kein optionales Modusentscheidungssignal MD1 dem Controller zu Verfügung, wie vorher bei dem Codiermodul 101 von 3 beschrieben wurde.
  • Der Ausgangspufferspeicher 160 arbeitet im wesentlichen in der gleichen Art und Weise wie der Ausgangspufferspeicher 160 von 3. Der Ausgangspuffer 160 erzeugt ein Ratensteuersignal RC, das einen Pufferverwendungsgrad eines entfernten Decoderpuffers anzeigt. Das Ratensteuersignal RC ist mit dem Codiermodul 101 verbunden, das das Ratensteuersignal RC verwendet, um z.B. die Quantisierungsparameter derart anzupassen, daß die Bitrate des Ausgangsinformationsstroms OUT gesteuert werden kann, wodurch ein Pufferüberlauf oder -unterlauf in einem entfernten Decoderpufferspeicher vermieden wird.
  • Der Controller 103 erzeugt ein Codierersteuersignal C1 für das Steuern des Codiermoduls 101. Der Controller 103 empfängt an dem Eingangsinformationsstrom IN Informationsdiskontinuitäten innerhalb des Informationsstroms und erfaßt sie. In Antwort auf das Erfassen einer Informationsdiskontinuität innerhalb des (nicht verzögerten) Eingangsinformationsstroms IN paßt der Controller 103 dynamisch die GOF/GOP-Datenstruktur, die von dem Codierer verwendet wird, derart an, daß ein I-Frame nicht zwischen beiden der zwei aufeinanderfolgenden Unter-GOF/GOP-Gruppen von codierten Frames beinhaltet ist.
  • Um den Betrieb des Controllers 103 von 5 zu veranschaulichen, beachte man den Fall eines Eingangsinformationsstroms IN, der eine Unter-GOF/GOP einschließlich einer Informationsdiskontinuität dem M-Frame-Verzögerungsmodul 510 bereitstellt. Der Controller 103 überwacht den Eingangsstrom und erfaßt die Informationsdiskontinuität vor dem Codierer 101, der den verzögerten Eingangsinformationsstrom IN' empfängt. Der Controller 103 veranlaßt, daß der Codierer 101 das Ankerframe der Unter-GOF/GOP, die die Informationsdiskontinuität einschließt, als ein P-Frame codiert. Der Controller 103 veranlaßt ebenso, daß der Codierer 101 das erste Frame, das der Informationsdiskontinuität folgt (z.B. das erste Videoframe einer neuen Szene), oder das Ankerframe der nächsten Unter-GOF/GOP als ein I-Frame codiert.
  • Da der Controller 103 jede Unter-GOF/GOP, bevor die Unter-GOF/GOP mit dem Codierer 101 verbunden wird, untersucht, ist der Controller 103 in der Lage, die geeignetste Methode der Codierung der untersuchen Unter-GOF/GOP zu bestimmen. Das heißt, der Controller stellt über das Steuersignal C1 Information über eine nächste Unter-GOF/GOP, die zu codieren ist, dem Ratensteuermodul 140P zur Verfügung. Die Pufferverwendungsvorhersagen des Ratencontrollers 140P werden somit verbessert, wodurch eine verbesserte Codierfunktionalität dem Codierer 101 zur Verfügung gestellt wird (z.B. können die Bitbudgetsicherheitsspannen reduziert werden, wodurch eine Codierung höherer Qualität erlaubt wird durch Zuweisen von mehr Bits zu jedem Einzelbild).
  • Es soll erwähnt werden, daß der Effekt einer unerwarteten Szenenveränderung auf eine bestimmte Unter-GOF/GOP auf die gesamte GOF oder GOP ausgedehnt werden kann, um jegliche Qualitätsverschlechterung, die durch die bestimmte Unter-GOF/GOP erfahren wird, zu minimieren.
  • Darüber hinaus, da hinsichtlich des Beibehaltens visueller Wiedergabetreue die letzte Unter-GOF/GOP einer Szene wahrscheinlich weniger wichtig ist als die erste Unter-GOF/GOP einer Szene, können die Bits, die der letzten Unter-GOF/GOP einer gegenwärtigen Szene zugewiesen werden, reduziert sein, wodurch ein entsprechender Anstieg in der Bitzuweisung zu der nächsten Unter-GOF/GOP ermöglicht wird, um die Qualität des I-Frame in der neuen Szene zu verbessern.
  • Es ist wichtig, zu erwähnen, daß der Codierer 101 von 5 jedes Ankerframe nur einmal codiert statt immer zweimal (gemäß 1) oder manchmal zweimal (gemäß 3).
  • 6 stellt einen Controller 103 dar, der für die Verwendung in dem MPEG-artigen Codierer, der entweder in 1 oder 3 dargestellt ist, geeignet ist. Der Controller 103 weist einen Mikroprozessor 103-4 sowie einen Speicher 103-8 auf für das Speichern einer Simultancodierung, einer adaptiven Frameschaltroutine 200 und/oder einer Codierung "auf Abfrage", eine adaptive Frameschaltroutine 400. Der Mikroprozessor 103-4 arbeitet mit einem konventionellen Unterstützungsschaltkreis 103-6 zusammen, wie z.B. Energiezuführungen, Taktschaltkreisen, Cachespeichern und dergleichen sowie auch Schaltkreisen, die bei der Ausführung der Softwareroutinen unterstützen. Genau genommen wird in Betracht gezogen, daß einige der Prozeßschritte, die hier erörtert wurden, als Softwareprozesse in der Hardware implementiert sein können, z.B. als ein Schaltkreis, der mit dem Mikroprozessor 103-4 zusammenarbeitet, um verschiedene Schritte durchzuführen. Der Controller 103 enthält ebenso einen Eingabe-/Ausgabeschaltkreis 103-2, der eine Schnittstelle zwischen den verschiedenen Codiermodulen (101 und 102) und dem Selektor (104) bildet. Obgleich der Controller 103 als ein Allzweckcomputer dargestellt ist, der programmiert ist, um die adaptive Frameschalt- und die verknüpften Steuerfunktionen in Übereinstimmung mit der vorliegenden Erfindung durchzuführen, kann die Erfindung in der Hardware als anwendungsspezifischer integrierter Schaltkreis (ASIC) implementiert sein. Im Grunde genommen sind die Prozeßschritte, die hier beschrieben wurden (z.B. in Bezug auf die 2 und die 4), dafür vorgesehen, breit interpretiert zu werden, so daß sie äquivalent durch Software, Hardware oder eine Kombination hiervon durchgeführt werden können.
  • Der Controller 103 kann verwendet werden, um die Steuerroutinen, die in 2 und 4 beschrieben sind, auszuführen. Es muß jedoch bemerkt werden, daß der Controller 103 ebenso verwendet werden kann, um die MPEG-artigen Codierer von 1, 3 und 5 vollständig in Software zu implementieren. Im Grunde genommen ist der Controller 103 von 6 als den Eingangsinformationsstrom IN empfangend gezeigt und erzeugt den Ausgangsinformationsstrom OUT. In solch einer Softwareimplementierung führt der Controller 103 die Funktionen durch, die oben in Bezug auf die MPEG-artigen Codierer von 1, 3 und/oder 5 beschrieben wurden.
  • Es sollte erwähnt werden, daß der Pufferspeicher 135P des Codierers 101 von z.B. 3 codierte Frames in einer "verknüpften-Liste"-Art und Weise speichern kann. Das heißt, daß jedes der gespeicherten codierten Frames mit einer Zeigervariable verknüpft sein kann, die beispielsweise das nächste codierte Frame in einer Abfolge von codierten Frames identifiziert. In dieser Art und Weise weist das Auswählen eines I-Frames anstelle eines P-Frames für die Aufnahme in dem Co diererausgangsstrom S101 das "Entbinden" des abgewählten Frames und das "Verbinden" des ausgewählten Frames auf. Das heißt, der Zeiger des codierten Frames, das dem entbundenen Frame vorhergeht, wird auf das zu verbindende Frame gerichtet. In gleicher Weise wird der Zeiger, der mit dem verbundenen Frame verknüpft ist, auf den Frame, der dem entbundenen Frame folgt, gerichtet.
  • Die Erfindung verwendet mit Vorteil das Bitbudget einer GOF/GOP-Struktur, so daß das Bitbudget nicht "verschmutzt" wird durch Intracodierung einer letzten Unter-GOF/GOP in einem Informationsstrom. Darüber hinaus arbeitet die Erfindung, um im wesentlichen Decoderpufferüberlaufbedingungen zu verhindern, die durch eng beabstandete intracodierte Informationsframes (z.B. zwei aufeinanderfolgende I-Frames) verursacht werden. Darüber hinaus sei erwähnt, daß die Informationsqualitäten, wie z.B. die visuelle Informationsqualität der dual codierten Informationsframes, als nahezu identisch für das I-Frame und das P-Frame angesehen werden. Zusätzlich zu der GOF/GOP-Qualitätsverbesserung gibt es somit keine bemerkbare Informationsverschlechterung, die auf irgendein individuelles Einzelbild bzw. Frame innerhalb der GOF/GOPs durch die Ausführung der Erfindung ausgeübt wird.
  • Die vorliegende Erfindung kann in der Form von computerimplementierten Prozessen und Vorrichtungen für das Ausführen dieser Prozesse verkörpert sein. Die vorliegende Erfindung kann ebenso in der Form von Computerprogrammcode in greifbaren Medien, wie z.B. Disketten, CD-ROMs, Festplattenlaufwerken oder irgendeinem anderen computerlesbaren Speichermedium verkörpert sein, wobei, wenn der Computerprogrammcode in einen Computer geladen und ausgeführt wird, der Computer eine Vorrichtung für das Durchführen der Erfindung wird. Die vorliegende Erfindung kann ebenso in Form eines Computerprogrammcodes verkörpert werden, beispielsweise gespeichert in einem Speichermedium, in einem Computer geladen und/oder ausgeführt oder übertragen über irgendein Übertragungsmedium, wie z.B. elektrische Verdrahtung oder Verkabelung, über Faseroptiken oder über elektromagnetische Strahlung, wobei, wenn der Computerprogrammcode in einen Computer geladen und ausgeführt wird, der Computer eine Vorrichtung zur Durchführung der Erfindung wird. Wenn auf einem Allzweckmikroprozessor implementiert, konfigurieren die Computerprogrammcodesegmente den Mikroprozessor, um spezifische logische Kreise zu erzeugen.
  • Obgleich verschiedene Ausführungsformen, die die Lehren der vorliegenden Erfindung beinhalten, gezeigt und im Detail hier beschrieben wurden, können Fachleute leicht viele weitere variierte Ausführungsformen ableiten, die immer noch diese Lehren aufgreifen.

Claims (16)

  1. Verfahren der Komprimierungscodierung einer Sequenz von nicht codierten Informationseinzelbildern, um eine Abfolge von codierten Informationseinzelbildern im wesentlichen in Übereinstimmung einer Einzelbildergruppeninformationsstruktur (GOF) zu erzeugen, wobei jede Gruppe von Einzelbildern (GOF) zumindest eine Unter-GOF aufweist, wobei jede Unter-GOF zumindest ein Ankereinzelbild aufweist, wobei jedes Ankereinzelbild ein intracodiertes Einzelbild (I-Frame-Typ) oder ein vorwärts vorhergesagtes Einzelbild (P-Frame-Typ) aufweist, wobei das Verfahren die Schritte aufweist: Codieren dieser nicht codierten Informationseinzelbilder, die als Ankerframes vom P-Frame-Typ oder vom I-Frame-Typ vorgesehen sind und optional auch dieser nicht codierten Informationseinzelbilder, die als Ankerframes des anderen Typs, d.h. P-Frame-Typs oder I-Frame-Typs, vorgesehen sind, sowohl als I-Frame als auch als P-Frame, Anpassen der GOF-Informationsstruktur in Antwort auf eine Informationsdiskontinuität zwischen Einzelbildern innerhalb der Abfolge von nicht codierten Informationseinzelbildern, so daß ein erstes Ankereinzelbild, das auf die Informationsdiskontinuität folgt, ein I-Frame aufweist, und das erste Ankereinzelbild, das vor der Informationsdiskontinuität ist, ein P-Frame aufweist.
  2. Verfahren nach Anspruch 1, in dem der Codierungsschritt aufweist: Codieren jedes nicht codierten Informationseinzelbildes, das als Ankereinzelbild entsprechend der GOF-Informationsstruktur vorgesehen ist, als sowohl ein I-Frame als auch ein P-Frame, und wobei der Anpassungsschritt aufweist: Auswählen für jeden codierten Ankerframe, der in der erzeugten Abfolge von codierten Informationseinzelbildern eingefügt werden soll, eines entsprechenden codierten I-Frame oder eines codierten P-Frame, das mit einem anderen Ankerframe verknüpft ist, und in Anwesenheit der Informationsdiskontinuität Auswählen des I-Frames, das mit dem ersten Ankerframe verknüpft ist und der Informationsdiskontinuität folgt, und Auswählen des P-Frames, das mit dem ersten Ankerframe verknüpft ist und das der Informationsdiskontinuität vorhergeht.
  3. Verfahren nach Anspruch 1, in dem der Codierungsschritt aufweist: Codieren als sowohl ein I-Frame als auch ein P-Frame von jedem nicht codierten Informationsframe, das dafür vorgesehen ist, als ein P-Frame gemäß der GOF-Information codiert zu werden, und Codieren als ein I-Frame von jedem nicht codierten Informationsframe, das als ein I-Frame gemäß der GOF-Informationsstruktur vorgesehen ist, und wobei der Anpassungsschritt aufweist: Auswählen für jedes codierte Ankerframe, das dafür vorgesehen ist, in der erzeugten Sequenz von codierten Informationseinzelbildern als ein P-Frame aufgenommen zu werden, von einem der codierten P-Frames und verknüpften codierten I-Frames und in der Anwesenheit einer Informationsdiskontinuität Auswählen des I-Frames, das mit dem ersten Ankerframe, der der Informationsdiskontinuität folgt, verknüpft ist, und Auswählen des P-Frames, das mit dem ersten Ankerframe verknüpft ist, das der Informationsdiskontinuität vorausgeht.
  4. Verfahren nach Anspruch 1, in dem der Codierungsschritt aufweist: Verwenden eines ersten Codiermoduls (101), Codieren der Abfolge von Informationseinzelbildern entsprechend der GOF-Informationsstruktur, um eine Abfolge von codierten Informationseinzelbildern zu erzeugen mit I- und P-Frames als Ankerframes, Verwenden eines zweiten Codiermoduls (102), das ebenso zumindest diese Ankerframes, die P-Frames sind, als I-Frames codiert, und wobei der Anpassungsschritt aufweist: Bestimmen, ob eine Informationsdiskontinuität innerhalb des Unter-GOF-Abschnittes der Abfolge von Informationseinzelbildern existiert, und in dem Falle, daß eine Informationsdiskontinuität in dem Unter-GOF-Abschnitt der Abfolge von Informationseinzelbildern existiert, das Verbinden mit einem Ausgang der GOF-Informationsstruktur, die durch das erste Codierungsmodul erzeugt wurde, in der zumindest ein Ankerframe durch ein Ankerframe ersetzt ist, das durch das zweite Codierungsmodul codiert wurde, und in dem Fall, daß es in dem Unter-GOF-Abschnitt der Abfolge von Informationseinzelbildern keine Diskontinuität gibt, das Verbinden mit einem Ausgang der Sequenz von codierten Informationseinzelbildern, die von dem ersten Codierungsmodul erzeugt wurden.
  5. Verfahren nach Anspruch 4, in dem die GOF-Struktur Ankerframes aufweist, die I-Frames sind, Ankerframes aufweist, die P-Frames sind, und Nicht-Ankerframes aufweist, die B-Frames sind.
  6. Verfahren nach Anspruch 1, in dem der Codierungsschritt aufweist: das unter Verwendung eines ersten Codierungsmoduls (101) Codieren der Abfolge von Informationseinzelbildern, um eine Abfolge von codierten Informationseinzelbildern zu erzeugen, wobei jedes der Ankerframes ein Frame vom P-Typ oder vom I-Typ aufweist, Codieren unter Verwendung eines zweiten Codierungsmoduls der Ankerframes des anderen Typs vom P-Typ oder I-Typ und wobei der Anpassungsschritt aufweist Bestimmen, ob eine Informationsdiskontinuität in dem Unter-GOF-Abschnitt der Abfolge von Informationseinzelbildern existiert und in dem Fall, daß eine Informationsdiskontinuität in dem Unter-GOF-Abschnitt der Abfolge von Informationseinzelbildern existiert, das Verbinden der Abfolge von codierten Informationseinzelbildern, die von dem ersten Codierungsmodul erzeugt wurden, in dem zumindest einige Ankerframes durch Ankerframes ersetzt wurden, die durch das zweite Codierungsmodul erzeugt wurden, um die angepaßte GOF-Struktur zu erzeugen, mit einem Ausgang und in dem Falle, in dem keine Informationsdiskontinuität in dem Unter-GOF-Abschnitt der Abfolge von Informationseinzelbildern existiert, das Verbinden der Sequenz von codierten Informationseinzelbildern, die von dem ersten Codierungsmodul erzeugt wurden, in dem zumindest ein Ankerframe durch ein Ankerframe, das von dem zweiten Codierungsmodul erzeugt wurde, ersetzt ist, um die GOF-Informationsstruktur zu erzeugen, mit einem Ausgang.
  7. Verfahren nach Anspruch 6, in dem der andere Typ der Ankerframes I-Frames sind, wobei der eine Typ von Ankerframes P-Frames sind.
  8. Verfahren nach Anspruch 7, in dem die GOF-Struktur oder die angepaßte GOF-Struktur Nicht-Ankerframes aufweist, die B-Frames sind.
  9. Vorrichtung, die aufweist: eine Codierungseinrichtung (101, 102) für das Kompressionscodieren einer Abfolge von nicht codierten Informationseinzelbildern, um eine Abfolge von codierten Informationsframes im wesentlichen in Übereinstimmung mit einer Gruppe-von-Einzelbildern-(GOF)-Informationsstruktur zu erzeugen, wobei jede GOF zumindest eine Unter-GOF aufweist, wobei jede Unter-GOF zumindest ein Ankerframe aufweist, wobei jedes Ankerframe ein intracodiertes Frame (I-Frame-Typ) oder ein vorwärts vorhergesagtes Frame (P-Frame-Typ) aufweist, wobei die Codierungseinrichtung in der Lage ist, diejenigen nicht codierten Informationsframes, die dafür vorgesehen sind, Ankerframes von P-Frame-Typ oder vom I-Frame-Typ zu sein, und optional ebenso diejenigen nicht codierten Informationsframes, die dafür vorgesehen sind, Ankerframes des anderen Typs von P-Frame-Typ oder vom I-Frame-Typ zu sein, sowohl als I-Frame als auch als P-Frame zu codieren, und eine Steuer- und Anpaßeinrichtung (103, 104, 105, 160) für das Steuern der Codierungseinrichtung in Antwort auf Indizien einer Interframe-Informationsdiskontinuität innerhalb der Abfolge von nicht codierten Informationseinzelbildern, und für das Anpassen der GOF-Informationsstruktur, so daß ein erstes Ankerframe, das der Informationsdiskontinuität folgt, ein I-Frame aufweist, und ein erstes Ankerframe, das der Informationsdiskontinuität vorhergeht, ein P-Frame aufweist.
  10. Vorrichtung nach Anspruch 9, bei der die Codiereinrichtung weiterhin derart betreibbar ist, daß sie jeden nicht codierten Informationsframe, der als Ankerframe entsprechend der GOF-Informationsstruktur vorgesehen ist, sowohl als I-Frame als auch als P-Frame codiert, und wobei die Steuer- und Anpaßeinrichtung derart betreibbar ist, daß sie für jedes codierte Ankerframe, das in die erzeugte Sequenz von codierten Informationsframes aus dem codierten I-Frame und dem codierten P-Frame, die mit dem Ankerframe verknüpft sind, ein jeweiliges auswählt und in Anwesenheit einer Informationsdiskontinuität das I-Frame, das mit dem ersten Ankerframe verknüpft ist, das auf die Informationsdiskontinuität folgt, auswählt und das P-Frame, das mit dem ersten Ankerframe, das der Informationsdiskontinuität vorausgeht, auswählt.
  11. Vorrichtung nach Anspruch 9, in der die Codiereinrichtung derart betreibbar ist, um: jedes nicht codierte Informationsframe, das als ein P-Frame entsprechend der GOF-Information zu codieren ist, sowohl als I-Frame als auch als P-Frame codiert, und jedes nicht codierte Informationsframe, das entsprechend der GOF-Informationsstruktur ein I-Frame sein soll, als ein I-Frame codiert, und die Steuer- und Anpaßeinrichtung derart betreibbar ist, um für jedes codierte Ankerframe, das dafür vorgesehen ist, in der erzeugten Abfolge von codierten Informationsframes als ein P-Frame aufgenommen zu werden, eines der codierten P-Frames und das verknüpfte codierte I-Frame auszuwählen und in der Anwesenheit einer Informationsdiskontinuität das I-Frame, das mit dem ersten Ankerframe verknüpft ist, das der Informationsdiskontinuität folgt, auszuwählen und das P-Frame, das mit dem ersten Ankerframe, das der Informationsdiskontinuität vorausgeht, auszuwählen.
  12. Vorrichtung nach Anspruch 9, bei der die Codiereinrichtung aufweist: ein erstes Codierungsmodul (101) für das Codieren der Abfolge von Informationsframes entsprechend der GOF-Informationsstruktur, um eine Abfolge von codierten Informationsframes mit I- und P-Frames als Ankerframes zu erzeugen, ein zweites Codiermodul (102) für das ebenso Codieren von zumindest denjenigen Ankerframes, die P-Frames sind, als I-Frames und wobei die Steuer- und Anpaßeinrichtung aufweist: eine Einrichtung für die Bestimmung, ob eine Informationsdiskontinuität innerhalb des Unter-GOF-Abschnittes der Abfolge von Informationseinzelbildern existiert und eine Einrichtung, die derart betreibbar ist, daß sie im Falle, daß eine Informationsdiskontinuität in dem Unter-GOF-Abschnitt der Abfolge von Informationseinzelbildern existiert, die GOF-Informationsstruktur, die durch das erste Codierungsmodul erzeugt wurde, in dem zumindest ein Ankerframe durch ein Ankerframe, das durch das zweite Codierungsmodul codiert wurde, ersetzt wird, mit einem Ausgang verbindet und in dem Fall, daß keine Informationsdiskontinuität in dem Unter-GOF-Abschnitt der Abfolge von Informationseinzelbildern existiert, das Verbinden mit einem Ausgang der Abfolge von codierten Informationseinzelbildern, die von dem ersten Codiermodul erzeugt wurden.
  13. Vorrichtung nach Anspruch 12, in dem die GOF-Struktur Ankerframes aufweist, die I-Frames sind, Ankerframes aufweist, die P-Frames sind und Nicht-Ankerframes aufweist, die b-Frames sind.
  14. Vorrichtung nach Anspruch 9, in dem die Codierungseinrichtung aufweist: ein erstes Codierungsmodul (101), das für das Codieren der Abfolge von Informationseinzelbildern eine Abfolge von codierten Informationseinzelbildern erzeugt, wobei jedes der Ankerframes ein Frame des P-Typs oder des I-Typs aufweist, ein zweites Codierungsmodul für das Codieren der Ankerframes des anderen Typs, des P-Typs oder des I-Typs, und wobei die Steuer- und Anpaßeinrichtung aufweist eine Einrichtung für die Bestimmung, ob eine Informationsdiskontinuität in dem Unter-GOF-Abschnitt der Abfolge von Informationseinzelbildern existiert, und eine Einrichtung, die derart betreibbar ist, daß sie in dem Falle, daß eine Informationsdiskontinuität in dem Unter-GOF-Abschnitt der Abfolge von Einzelbildern existiert, die Abfolge von codierten Informationseinzelbildern, die von dem ersten Codierungsmodul erzeugt wurden, wobei zumindest ein Ankerframe durch ein Ankerframe, das von dem zweiten Codierungsmodul erzeugt wurde, ersetzt ist, um die angepaßte GOF-Struktur zu erzeugen, mit einem Ausgang verbindet und in dem Fall, daß keine Informationsdiskontinuität in dem Unter-GOF-Abschnitt der Abfolge von Informationseinzelbildern existiert, die Abfolge von codieren Informationseinzelbildern, die von dem ersten Codierungsmodul erzeugt wurden, in dem zumindest ein Ankerframe durch Ankerframes ersetzt werden, die von dem zweiten Codierungsmodul erzeugt wurden, um die GOF-Informationsstruktur zu erzeugen, mit einem Ausgang verbindet.
  15. Vorrichtung nach Anspruch 14, in dem der andere Typ von Ankerframes I-Frames sind, wobei der eine Typ von Ankerframes P-Frames sind.
  16. Vorrichtung nach Anspruch 15, in der die GOF-Struktur oder die angepaßte GOF-Struktur Nicht-Ankerframes aufweist, die B-Frames sind.
DE69921108T 1998-04-03 1999-04-02 Verfahren und vorrichtung zur adaptiven codierung eines videodatenstroms Expired - Lifetime DE69921108T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US8053698P 1998-04-03 1998-04-03
US80536P 1998-04-03
US09/105,730 US6563549B1 (en) 1998-04-03 1998-06-26 Method and apparatus for adaptively encoding an information stream
PCT/US1999/007408 WO1999052296A1 (en) 1998-04-03 1999-04-02 Method and apparatus for adaptively encoding a video data stream
US105730 2002-03-25

Publications (2)

Publication Number Publication Date
DE69921108D1 DE69921108D1 (de) 2004-11-18
DE69921108T2 true DE69921108T2 (de) 2005-11-17

Family

ID=26763639

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69921108T Expired - Lifetime DE69921108T2 (de) 1998-04-03 1999-04-02 Verfahren und vorrichtung zur adaptiven codierung eines videodatenstroms

Country Status (6)

Country Link
US (1) US6563549B1 (de)
EP (1) EP1068735B1 (de)
JP (1) JP4373609B2 (de)
DE (1) DE69921108T2 (de)
TW (1) TW404137B (de)
WO (1) WO1999052296A1 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904174B1 (en) * 1998-12-11 2005-06-07 Intel Corporation Simplified predictive video encoder
JP3840020B2 (ja) 1999-12-14 2006-11-01 株式会社東芝 動画像符号化装置
US6907073B2 (en) * 1999-12-20 2005-06-14 Sarnoff Corporation Tweening-based codec for scaleable encoders and decoders with varying motion computation capability
US6639878B1 (en) * 2000-03-21 2003-10-28 Microsoft Corporation Method and apparatus for characterizing and improving optical drive performance
JP3889552B2 (ja) * 2000-06-09 2007-03-07 パイオニア株式会社 符号量割り当て装置および方法
JP4573957B2 (ja) * 2000-07-04 2010-11-04 キヤノン株式会社 画像制御装置、画像制御方法及びテレビ受信機
US6914939B1 (en) * 2000-11-13 2005-07-05 International Business Machines Corporation Method and apparatus for producing pseudo-constant bits per picture video bit-streams for low-delay compression system
JP3788260B2 (ja) * 2001-04-09 2006-06-21 日本電気株式会社 配信システムとその配信方法、及び配信プログラム
US7197072B1 (en) * 2002-05-30 2007-03-27 Intervideo, Inc. Systems and methods for resetting rate control state variables upon the detection of a scene change within a group of pictures
US20050271286A1 (en) * 2002-07-24 2005-12-08 Koninklijke Philips Electronics N.V. Method and encoder for coding a digital video signal
US7856054B1 (en) * 2003-11-14 2010-12-21 Apple Inc. Scene change identification during encoding of compressed video
US7536487B1 (en) * 2005-03-11 2009-05-19 Ambarella, Inc. Low power memory hierarchy for high performance video processor
JP2006270435A (ja) * 2005-03-23 2006-10-05 Toshiba Corp 動画像符号化装置
US20070025441A1 (en) * 2005-07-28 2007-02-01 Nokia Corporation Method, module, device and system for rate control provision for video encoders capable of variable bit rate encoding
JP4501808B2 (ja) * 2005-08-02 2010-07-14 船井電機株式会社 再生装置
US20070116117A1 (en) * 2005-11-18 2007-05-24 Apple Computer, Inc. Controlling buffer states in video compression coding to enable editing and distributed encoding
US8295343B2 (en) 2005-11-18 2012-10-23 Apple Inc. Video bit rate control method
US8780997B2 (en) * 2005-11-18 2014-07-15 Apple Inc. Regulation of decode-side processing based on perceptual masking
US8031777B2 (en) * 2005-11-18 2011-10-04 Apple Inc. Multipass video encoding and rate control using subsampling of frames
US8233535B2 (en) 2005-11-18 2012-07-31 Apple Inc. Region-based processing of predicted pixels
JP4584871B2 (ja) * 2006-06-09 2010-11-24 パナソニック株式会社 画像符号化記録装置および画像符号化記録方法
US20080008190A1 (en) * 2006-07-07 2008-01-10 General Instrument Corporation Method and apparatus for distributing statistical multiplex signals to handheld devices
CN100499815C (zh) * 2007-01-12 2009-06-10 清华大学 一种支持视频帧随机读取的视频编解码方法
JP5481923B2 (ja) * 2009-04-28 2014-04-23 富士通株式会社 画像符号化装置、画像符号化方法および画像符号化プログラム
US20110109721A1 (en) * 2009-11-06 2011-05-12 Sony Corporation Dynamic reference frame reordering for frame sequential stereoscopic video encoding
WO2011138900A1 (ja) 2010-05-06 2011-11-10 日本電信電話株式会社 映像符号化制御方法および装置
RU2530313C2 (ru) 2010-05-07 2014-10-10 Ниппон Телеграф Энд Телефон Корпорейшн Способ управления кодированием видео, устройство кодирования видео и программа кодирования видео
US8405748B2 (en) * 2010-07-16 2013-03-26 Omnivision Technologies, Inc. CMOS image sensor with improved photodiode area allocation
US9906785B2 (en) * 2013-03-15 2018-02-27 Sonic Ip, Inc. Systems, methods, and media for transcoding video data according to encoding parameters indicated by received metadata
KR101811718B1 (ko) 2013-05-31 2018-01-25 삼성전자주식회사 영상 처리 방법 및 장치

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5212549A (en) * 1991-04-29 1993-05-18 Rca Thomson Licensing Corporation Error concealment apparatus for a compressed video signal processing system
US5247363A (en) * 1992-03-02 1993-09-21 Rca Thomson Licensing Corporation Error concealment apparatus for hdtv receivers
JP2611607B2 (ja) 1992-06-29 1997-05-21 日本ビクター株式会社 シーンチェンジ検出装置
US5592226A (en) 1994-01-26 1997-01-07 Btg Usa Inc. Method and apparatus for video data compression using temporally adaptive motion interpolation
JP2914170B2 (ja) * 1994-04-18 1999-06-28 松下電器産業株式会社 映像変化点検出方法
US5768539A (en) * 1994-05-27 1998-06-16 Bell Atlantic Network Services, Inc. Downloading applications software through a broadcast channel
JP3711571B2 (ja) 1994-09-29 2005-11-02 ソニー株式会社 画像符号化装置及び画像符号化方法
JPH08163554A (ja) 1994-12-02 1996-06-21 Electron & Telecommun Res Inst ビデオビット率制御方法
JPH0974566A (ja) 1995-09-04 1997-03-18 Sony Corp 圧縮符号化装置及び圧縮符号化データの記録装置
US5731835A (en) 1996-02-26 1998-03-24 David Sarnoff Research Center, Inc. Dynamic coding rate control in a block-based video coding system
JPH09261648A (ja) * 1996-03-21 1997-10-03 Fujitsu Ltd シーンチェンジ検出装置
US6337879B1 (en) * 1996-08-14 2002-01-08 Sony Corporation Video data compression apparatus and method of same
US5917830A (en) * 1996-10-18 1999-06-29 General Instrument Corporation Splicing compressed packetized digital video streams
US5978029A (en) * 1997-10-10 1999-11-02 International Business Machines Corporation Real-time encoding of video sequence employing two encoders and statistical analysis

Also Published As

Publication number Publication date
JP2002511669A (ja) 2002-04-16
WO1999052296A1 (en) 1999-10-14
TW404137B (en) 2000-09-01
DE69921108D1 (de) 2004-11-18
US6563549B1 (en) 2003-05-13
EP1068735B1 (de) 2004-10-13
JP4373609B2 (ja) 2009-11-25
EP1068735A1 (de) 2001-01-17

Similar Documents

Publication Publication Date Title
DE69921108T2 (de) Verfahren und vorrichtung zur adaptiven codierung eines videodatenstroms
DE60026241T2 (de) Umschalten zwischen bitratenreduzierten Signalen
DE69915277T2 (de) Verfahren und vorrichtung zur reduzierung von breathing-artefakten in komprimierten videodaten
DE69829345T2 (de) Verfahren zur Verminderung des Verarbeitungsleistungsbedarfs eines Videodekoders
DE69435000T2 (de) Bildkodierungsvorrichtung
DE69735756T2 (de) Dynamische steuerung der kodierrate in einem blockbasierten videokodierungssystem
DE69233411T2 (de) Verfahren und Einrichtung zur Kompression von sich bewegenden Videobildern mit adaptiver Bitzuordnung und Quantisierung
DE69837003T2 (de) Vorrichtung und verfahren zur optimierung der bitratensteurung in einem kodiersystem
DE60028942T2 (de) Videokodierung
DE69635369T2 (de) Videokodierungsvorrichtung
DE10300048B4 (de) Verfahren und Vorrichtung zur Bildcodierung und -decodierung
DE69736537T2 (de) Ratenregelung für stereoskopische digitale Videokodierung
DE60023576T2 (de) Verfahren und Vorrichtung zur Bewegtbilddatentranscodierung
DE69913990T2 (de) System zum editieren komprimierter bildsequenzen
DE69738264T2 (de) Videokodierungs- und Videodekodierungsvorrichtung
DE60032841T2 (de) Signalprozessor zum nahtlosen Zusammenfügen von MPEG-2 Bitströmen in einem Videokoder
DE69535228T2 (de) Bildumsetzungsvorrichtung
DE69815159T2 (de) Kodierung von bewegten bildern mit globaler konstanter bitrate
DE10190285B4 (de) Verfahren und System zur Verarbeitung von komprimierten Videosignalen
DE60123317T2 (de) Kodiersystem und Kodierverfahren
DE69626483T2 (de) Speicherverwaltung in einem Videodekodierer
DE69816875T2 (de) Sequenzadaptive bit-zuordnung zur codierung von bildern
DE69935564T2 (de) Kodiervorrichtung und -verfahren
DE69835211T2 (de) Umschaltung zwischen komprimierten videobitströmen
DE10048735A1 (de) Verfahren zur Codierung und Decodierung von Bildsequenzen sowie Einrichtungen hierzu

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: MEDIATEK INC., HSINCHU, TW