DE60123317T2 - Kodiersystem und Kodierverfahren - Google Patents

Kodiersystem und Kodierverfahren Download PDF

Info

Publication number
DE60123317T2
DE60123317T2 DE60123317T DE60123317T DE60123317T2 DE 60123317 T2 DE60123317 T2 DE 60123317T2 DE 60123317 T DE60123317 T DE 60123317T DE 60123317 T DE60123317 T DE 60123317T DE 60123317 T2 DE60123317 T2 DE 60123317T2
Authority
DE
Germany
Prior art keywords
bits
image
output
codes
unit
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
DE60123317T
Other languages
English (en)
Other versions
DE60123317D1 (de
Inventor
Mitsubishi Denki Kabushiki Kaisha Yoshiko Chiyoda-ku Hatano
Mitsubishi Denki Kabushiki Kaisha Takashi Chiyoda-ku Nakao
Mitsubishi Denki Kabushiki Kaisha Junko Chiyoda-ku Kijima
Mitsubishi Denki Kabushiki Kaisha Mamoru Chiyoda-ku Inamura
Mitsubishi Denki Kabushiki K. Kazuhiro Chiyoda-ku Sugiyama
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of DE60123317D1 publication Critical patent/DE60123317D1/de
Publication of DE60123317T2 publication Critical patent/DE60123317T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/198Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including smoothing of a sequence of encoding parameters, e.g. by averaging, by choice of the maximum, minimum or median value
    • 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/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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/18Methods 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 set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Landscapes

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

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Diese Erfindung betrifft ein Codiersystem und ein Codierverfahren für ein Mobiltelefon oder ein TV-Telefonsystem, zum Beispiel zum Codieren von Videosignalen in Echtzeit.
  • 2. Beschreibung verwandter Technik
  • 1 ist ein Blockschaltbild eines Codiersystems des früheren Stands der Technik, wie es auf den Seiten 39 bis 40 von „All of MPEG-4" (Association of Industrial Search), zum Beispiel offenbart ist, 2 ist eine erklärende Ansicht, die ein Eingangssignal dieses Codiersystems des früheren Stands der Technik zeigt, 3a bis 3d sind erklärende Diagramme, die Konstruktionen von Bitströmen zeigen, und 4 ist ein erklärendes Diagramm, das Positionen (Anordnungen) auf einem Bildschirm (in einem angezeigten Zustand) eines Videopakets zeigt.
  • In 1 bezeichnet das Bezugszeichen 1 ein Subtrahierglied zum Empfangen eines externen Eingangssignals (zum Beispiel eines Leuchtdichtensignals und zweier Farbtonsignale in dem gezeigten Beispiel) als seinen ersten Eingang. Der Ausgang des Subtrahierglieds wird durch einen DCT (Discrete Cosine Transformer, = diskreter Kosinusübertrager) 2 und einen Quantisierer 3 zu einem DC/AC-Prädiktor 4 zum Vorhersagen der quantisierten Werte einer DC-Komponente und einer AC-Komponente und zum Dequantisierer 6 eingegeben. Der Ausgang des DC/AC-Prädiktors 4 wird in den ersten Eingang des Codierers für variable Länge 5 eingegeben, der einen Bitstrom ausgibt.
  • Andererseits wird der Ausgang des Dequantisierers 6, in den der Ausgang des Quantisierers 3 eingegeben wird, durch IDCT 7 (IDCT: Inverse DCT) zu dem ersten Eingang einer Addierschaltung eingespeist. Der Ausgang dieser Addierschaltung 8 wird in einen Speicher 9 eingespeist, dessen Ausgang in den ersten Eingang eines Bildformers für vorhergesagtes Bild 10 und den ersten Ausgang eines Bewegungsdetektors 11 eingespeist wird.
  • Ein externes Eingangssignal wird in den zweiten Eingang des Bewegungsdetektors 11 eingespeist, dessen Ausgang in den zweiten Eingang des Bildformers für vorhergesagtes Bild 10 und einen Bewegungsvektorprädiktor 12 eingespeist wird.
  • Der Ausgang des Bewegungsvektorprädiktors 12 wird in den zweiten Eingang des Codierers für variable Länge 5 eingespeist. Andererseits wird der Ausgang des Bildformers für vorhergesagtes Bild 10 in den zweiten Eingang des Subtrahierglieds 1 und den zweiten Eingang der Addierschaltung 8 eingegeben.
  • Unten werden die Operationen beschrieben. Zuerst werden die Videosignale in Makroblöcke oder Basisverarbeitungseinheiten wie in 2 gezeigt aufgeteilt und dann als externe Eingangssignale eingegeben (wobei die externen Eingangssignale grundlegend als die Makroblöcke eingegeben werden, die direkt eingegeben oder durch eine Vorverarbeitungseinheit zum Erzeugen von Makroblöcken umgewandelt werden können).
  • Wenn die eingegebenen Videosignale 4:2:0 sind, sind 16 Bildpunkte × 16 Zeilen eines Leuchtdichtesignals (Y) in dem Bildschirm so breit wie 8 Bildpunkte × 8 Zeilen von zwei Farbtonsignalen (Cb, Cr). Daher bilden sechs Blöcke (das heißt vier Blöcke für das Leuchtdichtensignal und zwei Blöcke für die Farbtonsignale) zu 8 Bildpunkten × 8 Zeilen einen Makroblock.
  • Hier wird vorausgesetzt, dass die Videoobjektebene (VOP: eine Bildeinheit), die als externe Eingabe einzugeben ist, eine gleiche rechteckige Form wie der Rahmen hat.
  • Jeder Block wird in dem Quantisierer 3 quantisiert, danach der diskreten Kosinustransformierten (DCT) unterzogen. Die DCT-Koeffizienten, die so quantisiert werden, werden gemeinsam mit zusätzlichen Informationen, wie zum Beispiel Quantisierungsparameter in Codes mit variabler Länge umgewandelt, nachdem die Koeffizienten der einzelnen DC- und AC-Komponenten in dem DC/AC-Prädiktor 4 vorhergesagt wurden.
  • Dies ist das Intra-Codieren (auch „In-Rahmen-Codieren" genannt). Die VOP zum Codieren aller Makroblöcke als Intra-Codieren wird „I-VOP (Intra-VOP)" genannt.
  • Andererseits werden die quantisierten DCT-Koeffizienten in dem Dequantisierer 6 dequantisiert und von dem IDCT 7 decodiert, so dass das decodierte Bild in dem Speicher 9 gespeichert wird. Das decodierte Signal, das in diesem Speicher 9 gespeichert ist, wird bei einem Inter-Codieren verwendet (das „Zwischenrahmencodieren" genannt werden kann).
  • In dem Inter-Codierfall erfasst der Bewegungsdetektor 11 die Bewegungsvektoren, die die Bewegungen der Makroblöcke anzeigen, die als externe Eingangssignale eingegeben werden. Dieser Bewegungsvektor zeigt eine solche Position in dem decodierten Bild, das in dem Speicher 9 gespeichert ist, an, die den Mindestunterschied gegenüber dem eingegebenen Makroblock ausmacht.
  • Der Bildformer für vorhergesagtes Bild 10 bildet ein vorhergesagtes Bild auf der Grundlage des Bewegungsvektors, der in dem Bewegungsdetektor 11 erfasst wird.
  • Danach wird ein Differenzsignal zwischen dem eingegebenen Makroblock und dem vorhergesagten Bild, das in dem Bildfor mer für vorhergesagtes Bild 10 gebildet wird, bestimmt und dem DCT in dem DCT 2 unterworfen, so dass es in dem Quantisierer 3 quantisiert wird.
  • Die quantisierten DCT-Koeffizienten werden gemeinsam mit der zusätzlichen Information, wie zum Beispiel dem vorhergesagten Bildvektor und dem quantisierten Parameter in Codes mit variabler Länge umgewandelt. Andererseits werden die quantisierten DCT-Koeffizienten in dem Dequantisierer 6 dequantisiert und dem IDCT in dem IDCT 7 unterworfen. Der Ausgang des IDCT 7 wird zu dem vorhergesagten Bild von der Addierschaltung 8 hinzugefügt, so dass die Summe in dem Speicher 9 gespeichert wird.
  • Für das Inter-Codieren gibt es zwei Vorhersagetypen. Ein Typ ist eine Vorwärtsvorhersage, die in der Anzeigereihenfolge der Bilder nur von der zeitlich vorhergehenden VOP gemacht wird, und der andere Typ ist eine Zweirichtungsvorhersage, die sowohl von der vorhergehenden VOP als auch von der darauf folgenden VOP gemacht wird. Die von der Vorwärtsvorhersage zu codierende VOP wird die „P-VOP (vorhersagende VOP)" genannt, und die durch die Zweirichtungsvorhersage zu codierende VOP wird die „B-VOP (Zweirichtungsvorhersage-VOP)" genannt.
  • Unter Bezugnahme auf 3 wird unten der Aufbau des Bitstroms beschrieben, der von dem Codierer für variable Länge 5 auszugeben ist. Der Bitstrom des von 1 VOP besteht aus einem oder mehreren Videopaketen wie in 3a gezeigt.
  • Hier besteht ein Videopaket aus Codierdaten eines oder mehrerer Makroblöcke, und das erste Videopaket der VOP wird dem VOP-Kopfteil zu seinem Kopf zugewiesen, und Stopfbits zum Byteausrichten an seinem Ende (wie in 3b gezeigt).
  • Dem zweiten und den darauf folgenden Videopaketen wird ein Resync Marker zum Erfassen des führenden Videopakets zugewiesen und der Videopaketkopfteil zu seinem Kopf und die Stopfbits zu seinem Ende (wie in 3c gezeigt).
  • Hier werden die Stopfbits an der Einheit von 1 bis 8 Bits an dem Abschlussende (Schnitt) des Videopakets zum Justieren des Byteausrichtens hinzugefügt und in der Bedeutung von den Stopfbits wie unten beschrieben unterschieden.
  • Andererseits können Stopfdaten in einer willkürlichen Anzahl in das Videopaket wie in 3d gezeigt eingefügt werden. In dem Fall zum Beispiel von MPEG4-Video werden die Stopfdaten der „Stopfmakroblock" genannt, der in den Makroblock in einem beliebigen Videopaket eingeführt werden kann. Diese Stopfdaten werden auf der Seite des Decodiersystems aufgegeben (im Wesentlichen nicht benutzt).
  • Wie hier definiert, werden die Stopfdaten als Wörter zu 9 Bits oder 10 Bits zum Steigern der Anzahl der Bits verwendet, jedoch unabhängig von dem Byteausrichten (zum Beispiel zum Justieren des Abschlussendes des Videopakets), und werden zwischen den Makroblöcken verwendet, so dass ihre Bedeutung von den oben erwähnten Stopfbits unterschieden wird.
  • Die Anzahl von Makroblöcken, die in ein Videopaket einzufügen ist, ist willkürlich, kann jedoch generell so konstruiert werden, dass, wenn eine Fehlerausbreitung betrachtet wird, jedes Videopaket eine im Wesentlichen konstante Anzahl von Bits haben kann. Wenn die Anzahl von Bits in dem Videopaket daher im Wesentlichen konstant ist, ist die Zone, die von jedem Videopaket in einer VOP zu belegen ist, wie in 4 gezeigt nicht konstant.
  • Unter Bezugnahme auf 5 werden unten die Operationen des DC/AC-Prädiktors 4 ausführlich beschrieben (das heißt an der Leuchtdichtensignal-Y-Komponente des Makroblocks).
  • Wie oben beschrieben, sagt der DC/AC-Prädiktor 4 die Koeffizienten der DC-Komponente und der AC-Komponente der quantisierten DCT-Koeffizienten voraus, die von dem Quantisierer 3 in dem Intra-Codierfall ausgegeben werden. Bei dem Inter-Codierfall werden die DC-Komponente und die AC-Komponente nicht vorhergesagt, sondern die quantisierten DCT-Koeffizienten, wie sie von dem Quantisierer 3 ausgegeben werden, werden so wie sie sind zu dem Codierer für variable Länge 5 ausgegeben. In diesem Fall werden das Leuchtdichtensignal Y und die Farbtonsignale Cb, Cr getrennt der DC/AC-Prädiktion unterzogen.
  • Unten werden die Vorhersagen der DC-Komponente und AC-Komponente des Intra-Codierfalls beschrieben.
  • Wenn die quantisierten DCT-Koeffizienten des Blocks, der codiert wird, bezeichnet werden durch Fx(i, j) (0 ≤ i ≤ 7 und 0 ≤ j ≤ 7), wenn die quantisierten DCT-Koeffizienten des links benachbarten Blocks bezeichnet sind mit Fa(i, j) (0 ≤ i ≤ 7 und 0 ≤ j ≤ 7), wenn die quantisierten DCT-Koeffizienten des oberen benachbarten Blocks bezeichnet sind mit Fc (i, j) (0 ≤ i ≤ 7 und 0 ≤ j ≤ 7), und wenn die quantisierten DCT-Koeffizienten des linken oberen Blocks bezeichnet sind mit Fb (i, j) (0 ≤ i ≤ 7 und 0 ≤ j ≤ 7), wird die Vorhersagerichtung zuerst aus der quantisierten DC-Komponente Fb (0, 0) des linken oberen Blocks, der quantisierten DC-Komponente Fa(0, 0) des linken benachbarten Blocks und der DC-Komponente Fc (0, 0) des oberen benachbarten Blocks bestimmt.
  • Wenn die Quantisierungsschrittgröße der DC-Komponente des linken benachbarten Blocks durch Qda bezeichnet wird, wenn die Quantisierungsschrittgröße der DC-Komponente des linken oberen Blocks durch Qdb bezeichnet wird, und wenn die Quantisierungsschrittgröße der DC-Komponente des oberen benachbarten Blocks durch Qdc bezeichnet wird, zum Bei spiel, werden die dequantisierten DC-Komponenten fa(0, 0), fb (0, 0) und fc (0, 0) durch die folgende Beziehung bestimmt: fa(0, 0) = Fa(0, 0) × Qda; fb (0, 0) = Fb (0, 0) × Qdb; und fc (0, 0) = Fc (0, 0) × Qdc.
  • Wenn die folgende Beziehung wahr ist, versteht man, dass die Korrelationen in die senkrechte Richtung intensiv sind, so dass die Vorhersagen ausgehend von den dequantisierten DC-Komponenten fc (0, 0) des oberen benachbarten Blocks gemacht werden: |fa(0, 0) – fb (0, 0)| ≤ |fb (0, 0) – fc (0, 0)|.
  • Ist die oben genannte Beziehung nicht wahr, versteht man, dass die Korrelationen in die horizontale Richtung intensiv sind, so dass die Vorhersagen von den dequantisierten DC-Komponenten fa (0, 0) des linken benachbarten Blocks ausgehend gemacht werden.
  • Bei dem Fall des Vorhersagens von DC-Komponenten von dem oberen benachbarten Block ausgehend wird die vorhergesagte DC-Komponente Px (0, 0) durch Setzen der folgenden Beziehung bestimmt: Px(0, 0) = Fx(0, 0) – fc (0, 0)/Qdx.
  • In dem Fall des Vorhersagens der DC-Komponenten von dem linken benachbarten Block ausgehend, wird die vorhergesagte DC-Komponente Px (0, 0) durch Setzen der folgenden Beziehung bestimmt: Px(0, 0) = Fx(0, 0) – fa(0, 0)/Qdx.
  • Hier ist Qdx die Quantisierungsschrittgröße der DC-Komponente des laufenden Blocks, und die oben genannten Aufteilungen werden zum Beispiel durch das Rundungsverfahren berechnet.
  • Danach werden die AC-Komponenten durch Gebrauch der Vorhersagerichtung der DC-Komponenten vorhergesagt. Unten bezeichnet Qpa den Quantisierungsparameter des linken benachbarten Blocks, Qpc den Quantisierungsparameter des oberen benachbarten Blocks, und Qpx den Quantisierungsparameter des aktuellen Blocks. Wenn die DC-Komponente ausgehend von dem oberen benachbarten Block vorhergesagt wird, wird die erste Reihe der quantisierten AC-Komponenten wie folgt vorhergesagt: Px(i, 0) = Fx(i, 0) – (Fc (i, 0) × Qpc)/Qpx (i = 1 bis 7).
  • Andererseits, wenn die DC-Komponente ausgehend von dem linken benachbarten Block vorhergesagt wird, wird die erste Spalte der quantisierten AC-Komponenten wie folgt vorhergesagt: Px(0, j) = Fx(0, j) – (Fa(0, j) × Qpa)/Qpx (j = 1 bis 7).
  • Daher werden die vorhergesagten AC-Komponenten Px(i, 0) oder Px(0, j) bestimmt. Die oben erwähnten Aufteilungen werden zum Beispiel durch das Rundungsverfahren berechnet.
  • Nach dem unabhängig Ausführen der oben genannten Vorhersagen der AC-Komponenten für die sechs Blöcke, die einen Makroblock bilden, wird auf einer Makroblockbasis wie folgt bestimmt, ob die AC-Komponenten vorherzusagen sind oder nicht.
  • Hier wird ein AC-Vorhersagebeschlussindex SB des Blocks wie folgt als der Index zum Entscheiden bestimmt, ob die Originalvideosignale so gelassen werden wie sie sind (ohne Vorhersage der AC-Komponente), oder ob sie vorhergesagt werden. Wenn die Vorhersage ausgehend von dem oberen benachbarten Block erfolgt, wird der Wechselstrom-Vorhersagebeschlussindex SB ausgehend von der folgenden Formel bestimmt:
  • [Formel 1]
    • SB = Σ|Fx(i, 0) – Σ |Px(i, 0)| (i = 1 bis 7).
  • Wenn die Vorhersage ausgehend von dem linken benachbarten Block erfolgt, wird der Wechselstrom-Vorhersagebeschlussindex SB ausgehend von der folgenden Formel bestimmt:
  • [Formel 2]
    • SB = Σ|Fx(0, j)| – Σ|Px(0, j)| (j = 1 bis 7).
  • Nach dem Berechnen der Wechselstrom-Vorhersagebeschlussindizes für alle Blöcke in dem laufenden Makroblock, wird die Summe dieser Indizes berechnet, nämlich SB = ΣSB. Wenn die Summe SBS die folgende Beziehung hat, werden die AC-Komponenten vorhergesagt, anderenfalls jedoch nicht vorhergesagt: SBS ≥ 0.
  • Hier ist in dem Fall des Vorhersagens der AC-Komponenten ac_preg_flag = 1, aber anderenfalls ist ac_preg_flag = 0. Mit dieser zusätzlichen Information ac_pred_flag wird jeder Makroblock durch den Codierer für variable Länge 5 codiert.
  • In dem Fall, in dem der Makroblock ac_preg_flag = 1, wird der Wert Ox(i, j) für jeden aus dem oberen benachbarten Block vorhergesagten Block ausgehend von den folgenden Beziehungen bestimmt:
  • [Formel 3]
    Figure 00100001
  • Für jeden ausgehend von dem linken benachbarten Block vorhergesagten Block wird der Wert Ox(i, j) ausgehend von den folgenden Beziehungen bestimmt:
  • [Formel 4]
    Figure 00100002
  • Für den Block, der zu dem Makroblock von ac_preg_flag = 0 gehört, wird der Wert Ox(i, j) ausgehend von den folgenden Beziehungen bestimmt:
  • [Formel 5]
    Figure 00100003
  • Dieser Wert Ox(i, j) wird als der Ausgang des DC/AC-Prädiktors 4 zu dem Codierer für variable Länge 5 ausgegeben.
  • In den bisher beschriebenen Vorhersagen, in welchen der laufende Block an dem linken Ende der VOP ist, gibt es für den laufenden Block weder den linken benachbarten Block noch den linken oberen Block. Eine vorausbestimmte Konstante β wird daher als die Werte der dequantisierten DC-Komponenten fa(0, 0) und fb (0, 0) verwendet, um in den oben genannten Vorhersagen verwendet zu werden. In diesem Fall werden die in den oben genannten Vorhersagen zu verwendenden AC-Komponenten Fa(i, j) und Fb (i, j) ((i, j) ≠ 0, 0)) auf Null gesetzt.
  • Die Konstante β ist ein Zwischenwert des Bereichs des Werts der DC-Komponente der DCT-Koeffizienten, die von dem DCT 2 auszugeben sind. Spezifisch β = 1,024, wenn die DC-Komponente, die von dem DCT 2 auszugeben ist, 11 Bits ist und einen Wert von 0 bis 2,047 annimmt.
  • Wenn der laufende Block in ähnlicher Weise an dem oberen Ende der VOP ist, gibt es für den laufenden Block weder den oberen benachbarten Block noch den linken oberen Block. Die oben genannte Konstante β wird daher als die Werte der dequantisierten AC-Komponenten fc (0, 0) und fb (0, 0) verwendet, die in den oben genannten Vorhersagen zu verwenden sind, und die AC-Komponenten Fc (i, j) und Fb (i, j) ((i, j) ≠ 0, 0)) werden auf 0 gesetzt.
  • Wenn in den oben genannten Vorhersagen ferner der Block links benachbart zu dem laufenden Block zu einem anderen Videopaket als das des laufenden Blocks gehört, wird die dequantisierte DC-Komponente fa(0, 0), die in den oben genannten Vorhersagen zu verwenden ist, als einen Wert der vorhergehenden Konstante β annehmend angenommen, und die AC-Komponenten Fa(i, j) ((i, j) ≠ (0, 0)) sind 0.
  • Wenn in den oben genannten Vorhersagen ebenso der Block oberhalb benachbart zu dem laufenden Block zu einem anderen Videopaket gehört als das des laufenden Blocks, wird die dequantisierte DC-Komponente fc (0, 0), die in den oben genannten Vorhersagen zu verwenden ist, als einen Wert der vorhergehenden Konstante β annehmend angenommen, und die AC-Komponenten fc (i, j) ((i, j) ≠ (0, 0)) sind 0.
  • Wenn in den oben genannten Vorhersagen anderseits der Block links oben vom laufenden Block zu einem anderen Videopaket gehört als das des laufenden Blocks, wird die dequantisierte DC-Komponente fb (0, 0), die in den oben genannten Vorhersagen zu verwenden ist, als einen Wert der oben genannten Konstante β annehmend angenommen, und die AC-Komponenten Fb (i, j) ((i, j) ≠ (0, 0)) sind 0.
  • Der DC/AC-Prädiktor 4 wird daher so durch Nichtbezugnehmen der DC-Komponente und der AC-Komponenten zwischen den Blöcken, die zu verschiedenen Videopaketen gehören, konstruiert, dass das Ausbreiten eines Übertragungsfehlers in den DC/AC Vorhersagen in dem Videopaket begrenzt ist.
  • Das Codiersystem des früheren Stands der Technik, das bisher beschrieben wurde, hat das Verarbeiten zum Vermeiden des Überlaufs des Übertragungspufferspeichers oder des Unterlaufs des VBV-Pufferspeichers oder eines virtuellen Pufferspeichers auf der Empfängerseite nicht ausreichend berücksichtigt.
  • Ferner wird die Anzahl von Bits für einen Makroblock gewöhnlich durch Anpassen der Quantisierungsparameter, die von dem Quantisierer 3 zu verwenden sind, gesteigert/verringert, es gibt jedoch keine explizite Art zum Verarbeiten des Falls, in dem der Überlauf des Übertragungspufferspeichers auftritt, auch mit dem maximalen Quantisierungsparameter (unter Unterdrücken der Anzahl von Bits mit der gröbsten Quantisierung).
  • Die Verarbeitungszeit zum Codieren einer VOP ist ebenfalls ein Problem. Wenn die Rate der einzugebenden VOP F(1/s) ist, wird gefordert, dass alle Makroblöcke, die eine VOP bilden, über eine Zeitspanne von 1/F (s) oder kürzer co diert werden.
  • Wenn der Bewegungsdetektor 11 so gebaut ist, dass er den Suchbereich des Bewegungsvektors anpassend als Reaktion auf die Bewegung des Objekts in der VOP wechselt, ändert sich jedoch die Zeitspanne, die erforderlich ist, damit der Bewegungsdetektor 11 den Bewegungsvektor jedes Makroblocks erfasst für die einzelnen Makroblöcke, so dass die Zeitspanne für das Verarbeiten einer VOP nicht konstant ist. Es ist daher eine neue Steuerung zum Codieren aller Makroblöcke in einer VOP innerhalb einer vorbestimmten Zeitspanne erforderlich.
  • EP-A-0 836 329 (Sony Corp.), 15. April 1998, betrifft ein Verfahren und ein Gerät zum Codieren von Bildern, bei dem Makroblöcke übersprungen werden, wenn die Datenmenge in einem VBV (Video Buffering Verifier = Videopufferprüfer)-Pufferspeicher kleiner ist als einer von drei Schwellenwerten, wobei der relevante Schwellenwert von dem Codiertyp abhängt.
  • „ITU-T RECOMMENDATION H.262, INTERNATIONAL STANDARD ISO/IEC 13818-2, MPEG-2 VIDEO. TRANSMISSION OF NON-TELEPHONE SIGNALS. INFORMATION TECHNOLOGY – GENERIC CODING OF MOVING PICTURES AND ASSOCIATED AUDIO INFORMATION: VIDEO" Juli 1995 (1995-07), Genf (CH), betrifft Videobitstromsyntax und -semantik und umfasst Codes mit unterschiedlicher variabler Länge für einen Makroblocktyp.
  • KURZDARSTELLUNG DER ERFINDUNG
  • Eine Aufgabe dieser Erfindung besteht darin, ein Codierverfahren bereitzustellen, um den Überlauf eines Übertragungspufferspeichers und den Unterlauf eines VBV-Pufferspeichers effektiv zu vermeiden.
  • Die Aspekte der Erfindung sind in den begleitenden Ansprü chen dargelegt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm, das ein Codiersystem des Stands der Technik zeigt,
  • 2 ist ein erklärendes Diagramm, das ein Eingangssignal in das Codiersystem des Stands der Technik zeigt,
  • 3a bis 3d sind erklärende Diagramme, die die Struktur von Bitströmen in dem Codiersystem des Stands der Technik zeigen,
  • 4 ist ein erklärendes Diagramm, das die Position von Videopaketen auf dem Bildschirm in dem Codiersystem des Stands der Technik zeigt,
  • 5 ist ein erklärendes Diagramm, das eine DC/AC- Vorhersage in dem Codiersystem des Stands der Technik zeigt,
  • 6 ist ein Blockschaltbild, das die Ausführungsform 1 der Erfindung zeigt,
  • 7a und 7b sind erklärende Diagramme, die Zustände (für den Fall einer I-VOP) eines zeitweiligen Pufferspeichers und eines Übertragungspufferspeichers bei der Ausführungsform 1 der Erfindung zeigen,
  • 8a und 8b sind erklärende Diagramme, die die Zustände (für den Fall einer P-VOP) des zeitweiligen Pufferspeichers und des Übertragungspufferspeichers in der Ausführungsform 1 der Erfindung zeigen,
  • 9 ist ein Flussdiagramm (für den Fall der P-VOP), das die Ausführungsform 1 der Erfindung zeigt,
  • 10 ist ein Flussdiagramm (für den Fall der I-VOP), das die Ausführungsform 1 der Erfindung zeigt,
  • 11 ist ein Flussdiagramm (für den Fall der P-VOP), das die Ausführungsform 2 der Erfindung zeigt,
  • 12 ist ein Flussdiagramm (für den Fall der I-VOP), das die Ausführungsform 2 der Erfindung zeigt,
  • 13 ist ein Flussdiagramm, das die Ausführungsform 3 der Erfindung zeigt,
  • 14 ist ein Flussdiagramm, das die Ausführungsform 4 der Erfindung zeigt,
  • 15 ist ein Blockschaltbild, das die Ausführungsform 5 der Erfindung zeigt,
  • 16a und 16b sind erklärende Diagramme, die die Zustände eines zeitweiligen Pufferspeichers in der Ausführungsform 5 der Erfindung zeigen,
  • 17 ist ein Blockschaltbild, das die Ausführungsform 6 der Erfindung zeigt,
  • 18 ist ein erklärendes Diagramm, das den Zustand eines Übertragungspufferspeichers bei der Ausführungsform 7 der Erfindung zeigt, und
  • 19 ist ein Blockschaltbild, das die Ausführungsform 7 der Erfindung zeigt.
  • DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • Die Erfindung wird nun spezifisch in ihren Ausführungsformen unter Bezugnahme auf die begleitenden Zeichnungen beschrieben.
  • Ausführungsform 1
  • 6 zeigt ein Codiersystem gemäß der Ausführungsform 1 der Erfindung. In 6 bezeichnet das Bezugszeichen 1 ein Subtrahierglied zum Empfangen eines externen Eingangssignals als seinen ersten Eingang. Der Ausgang des Subtrahierglieds wird durch DCT 2 und den Quantisierer 3 in einen DC/AC-Prädiktor 4 und Dequantisierer 6 eingegeben. Der Ausgang des DC/AC-Prädiktors 4 wird in den ersten Eingang eines Codierers für variable Länge 5a eingespeist.
  • Andererseits wird der Ausgang des Dequantisierers 6 durch den IDCT 7 in den ersten Eingang einer Addierschaltung eingespeist. Der Ausgang dieser Addierschaltung 8 wird in einen ersten Eingang eines Speichers 9 eingespeist, dessen Ausgang in den ersten Eingang eines Bildformers für vorhergesagtes Bild 10 und in den ersten Eingang eines Bewegungsdetektors 11 eingespeist wird.
  • Ein externes Eingangssignal wird in den zweiten Eingang des Bewegungsdetektor 11 eingespeist, dessen Ausgang in den zweiten Eingang des Bildformers für vorhergesagtes Bild 10 und in einen Bewegungsvektorprädiktor 12 eingespeist wird. Der Ausgang des Bildformers für vorhergesagtes Bild 10 wird in den zweiten Eingang des Subtrahierglieds 1 und den zweiten Eingang der Addierschaltung 8 eingespeist.
  • Der Ausgang des Bewegungsvektorprädiktors 12 wird in den zweiten Eingang des Codierers für variable Länge 5a eingespeist. Hier besteht die Codiereinheit aus den oben genannten Bestandteilen, aus dem Subtrahierglied 1 zum Empfangen des externen Eingangssignals zu dem Codierer für variable Länge 5a zum Ausgeben des Codes mit variabler Länge, der dem externen Eingangssignal entspricht. (Natürlich ist der hier offenbarte Aufbau nur beispielhaft und könnte durch den bekannten veranschaulicht werden, der das externe Eingangssignal in entsprechender Art codieren kann.) Der erste Ausgang des Codierers für variable Länge 5a wird in den ersten Eingang eines zeitweiligen Pufferspeichers 101 eingespeist, und der zweite Ausgang des Codierers für variable Länge 5a wird in die Ratensteuereinheit 102 eingespeist.
  • Der zeitweilige Pufferspeicher 101 wird an seinem zweiten Eingang mit dem Ausgang der Fixcode-Ausgabeeinheit 104 gespeist und an seinem dritten Eingang mit dem ersten Ausgang der Ratensteuereinheit 102. Der Ausgang des zeitweiligen Pufferspeichers 101 wird in den ersten Eingang eines Übertragungspufferspeichers 103 eingespeist (hier entspricht der zeitweilige Pufferspeicher 101 oder der Übertragungspufferspeicher 103 der Speichereinheit).
  • Der zweite Ausgang der Ratensteuereinheit 102 wird in den zweiten Eingang des Speichers 9 eingespeist, und der dritte Ausgang der Ratensteuereinheit 102 wird in den zweiten Eingang des Übertragungspufferspeichers 103 eingespeist. Der Ausgang des Übertragungspufferspeichers 103 wird als Bitstrom ausgegeben (übertragen).
  • Der ausgegebene (übertragene) Bitstrom wird auf der Seite des Decodiersystems empfangen und decodiert.
  • Unten werden die Operationen beschrieben.
  • Zuerst werden die Videosignale in Makroblöcke oder Basisverarbeitungseinheiten wie in 2 gezeigt aufgeteilt und als Eingangsmakroblöcke in das Subtrahierglied 1 und den Bewegungsdetektor 11 eingegeben. Wenn die eingegebenen Videosignale zum Beispiel 4:2:0 sind, sind 16 Bildpunkte × 16 Zeilen eines Leuchtdichtesignal (Y) auf dem Bildschirm so breit wie 8 Bildpunkte × 8 Zeilen von zwei Farbtonsignalen (Cb, Cr), so dass sechs Blöcke zu 8 Bildpunkten × 8 Zeilen einen Makroblock bauen.
  • In dem Intra-Codierfall wird jeder Block dem DCT unterzogen und dann quantisiert. Diese quantisierten DCT-Koeffizienten werden in dem DC/AC-Prädiktor 4 vorhergesagt und dann gemeinsam mit zusätzlicher Information, wie zum Beispiel mit dem Quantisierungsparameter codiert. Die quantisierten DCT-Koeffizienten werden von dem Dequantisierer 6 dequantisiert und dem IDCT unterzogen und decodiert. Der Ausgang des IDTC 7, das heißt das decodierte Bild, wird in dem Speicher 9 gespeichert.
  • In dem Inter-Codierfall erfasst der Bewegungsdetektor den Bewegungsvektor, der die Bewegungen der eingegebenen Makroblöcke anzeigt. Dieser Bewegungsvektor zeigt eine Position in dem decodierten Bild, das in dem Speicher 9 gespeichert ist, an, die den Mindestunterschied gegenüber dem eingegebenen Makroblock ausmacht.
  • Der Bildformer für vorhergesagtes Bild 10 bildet ein vorhergesagtes Bild auf der Grundlage des Bewegungsvektors, der in dem Bewegungsdetektor 11 erfasst wird. Danach wird ein Unterschied zwischen dem eingegebenen Makroblock und dem vorhergesagten Bild bestimmt und dem DCT durch den DCT 2 unterworfen und von dem Quantisierer 3 quantisiert.
  • Die quantisierten DCT-Koeffizienten werden gemeinsam mit zusätzlicher Information, wie zum Beispiel mit dem Bewegungsvektor, der von dem Bewegungsvektorprädiktor 12 vorhergesagt wird, und dem Quantisierungsparameter durch den Codierer für variable Länge 5a codiert. Andererseits werden die quantisierten DCT-Koeffizienten in dem Dequantisierer 6 dequantisiert. Der Ausgang des Dequantisierers 6 wird dem IDCT in dem IDCT 7 unterworfen. Der Ausgang des IDCT 7 wird zu dem vorhergesagten Bild, das von dem Bildformer für vorhergesagtes Bild 10 ausgegeben wird, hinzugefügt, so dass die Summe in dem Speicher 9 gespeichert wird.
  • Hier werden spezifisch die Operationen des Codierers für variable Länge 5a beschrieben.
  • Für jeden Makroblock codiert der Codierer für variable Länge 5a die quantisierten DCT-Koeffizienten und die zusätzliche Information, speichert sie in dem zeitweiligen Pufferspeicher 101 und gibt die Anzahl von Bits, die für den laufenden Makroblock verwendet werden, zu der Ratensteuereinheit 102 aus.
  • In dem Fall einer I-VOP von MPEG4 zum Beispiel, werden die AC-Komponenten der DCT-Koeffizienten in jedem Block, wie er von dem DC/AC-Prädiktor ausgegeben wird, eindimensional zuerst durch das Zick-Zack-Scanverfahren oder dergleichen gescannt, um das Lauflängencodieren der Kombination zwischen der Anzahl von Null und dem Koeffizienten von Nicht-Null auszuführen. Die codierten Daten der AC-Komponenten in jedem Block werden in dem zeitweiligen Pufferspeicher 101 gespeichert.
  • Nach den Koeffizientendaten jedes Blocks werden, wie in 7a gezeigt, in dem zeitweiligen Pufferspeicher 101 Folgende sequenziell codiert und gespeichert: mcbpc, der Code für MTYPE (Makroblocktyp, wie zum Beispiel Intra-/Inter-Modus) und cbpc, das anzeigt, ob jeder Block des Farbtonsignals die Nicht-Null AC-Komponenten hat oder nicht, dquant für den Quantisierungsparameter, die DC-Komponenten der DCT-Koeffizienten in jedem Block, das ac_pred_flag, das anzeigt, ob die AC-Vorhersage erfolgte oder nicht, und cbpy, das anzeigt, ob jeder Block von Y die Nicht-Null AC-Koeffizienten hat oder nicht.
  • Hier wird die Anzahl von Bits für jeden Makroblock zu der Ratensteuereinheit 102 ausgegeben.
  • Ähnlich werden in dem Fall von P-VOP für MPEG4 die codier ten Daten, wie in 8a gezeigt, geordnet in dem zeitweiligen Pufferspeicher 101 gespeichert.
  • Auf der Grundlage der Anzahl von Bits in jedem Makroblock, die von dem Codierer für variable Länge 5a ausgegeben werden, richtet die Ratensteuereinheit 102 die Makroblöcke so ein, dass die Länge jedes Videopakets einen vorbestimmten Wert nicht überschreiten kann, und überträgt die geordneten Makroblöcke aus dem zeitweiligen Pufferspeicher 101 zu dem Übertragungspufferspeicher 103.
  • In dem Fall von MPEG4 zum Beispiel, wird der Kopfteil zu dem Kopf jedes Videopakets hinzugefügt, das in der Reihenfolge des spezifizierten Bitstroms neu geordnet und übertragen wird, wie in 7b und 8b gezeigt.
  • Andererseits setzt die Ratensteuereinheit 102 die maximale Anzahl von Bits Tmax für jede VOP so, dass der Übertragungspufferspeicher 103 nicht überlaufen kann, oder so, dass der VBV (Videopufferprüfer)-Pufferspeicher nicht unterlaufen kann. (Der VBV-Pufferspeicher ist ein Pufferspeichermodell eines Decoders. Er ist erforderlich, um Speicheranforderungen für den Bitstrompufferspeicher, der in einem Decoder erforderlich ist, zu begrenzen.)
  • Die Ratensteuereinheit 102 wählt den Ausgang des Codierers für variable Länge 5a oder den Ausgang der Fixcode-Ausgabeeinheit 104 so aus, dass die Anzahl von Bits für die laufende VOP nicht größer sein kann als der Wert Tmax, und speichert sie in den zeitweiligen Pufferspeicher 101.
  • Hier ist Tmax das obere Limit der Anzahl von Bits für die VOP, um den Übertragungspufferspeicher 103 daran zu hindern überzulaufen und den VBV-Pufferspeicher unterzulaufen.
  • Die Operationen werden ausführlich unten beschrieben.
  • Die Ratensteuereinheit 102 bestimmt die maximale Anzahl von Bits Tmax für jede VOP, bevor sie sie codiert. Wenn zum Beispiel der Übertragungspufferspeicher 103 eine Kapazität Bs (Bits) hat, und wenn die aktuelle Belegung des Übertragungspufferspeichers 103 B (Bits) ist, reicht es zum Verhindern des Überlaufens des Übertragungspufferspeichers 103, das die Anzahl von Bits für die VOP Bs-B oder niedriger ist. Es reicht daher, dass Tmax wie folgt eingestellt wird: Tmax ≤ Bs – B.
  • In dem Fall des Verwaltens des VBV-Pufferspeichers, beträgt die Anzahl von Bits, die für eine VOP-Periode von dem VBV-Pufferspeicher zu empfangen ist, Rp: Rp = R/F. wobei R (Bits/s) die Bitrate ist und F (1/s) die VOP-Rate (Rahmenrate) ist.
  • Wenn die Belegung des VBV-Pufferspeichers im Decodierzeitpunkt der vorhergehenden VOP ausgedrückt ist durch vbv_bits (Bits), reicht es, um das Unterlaufen des VBV-Pufferspeichers zu verhindern, dass die Anzahl von Bits, die für die laufende VOP verwendet werden, vbv_bits + Rp nicht überschreitet. Kurz gesagt reicht es, wenn man Tmax in den folgenden Beziehungen einstellt: Tmax ≤ vbv_bits + Rp.
  • Vor dem Codieren jeder VOP stellt die Ratensteuereinheit 102 Tmax wie folgt ein: Tmax = min(vbv_bits + Rp, Bs – B), wobei min(a, b) den kleineren der Werte a und b annimmt.
  • Hier ist die Belegung vbv_bits des VBV-Pufferspeichers die geschätzte Belegung des Pufferspeichers auf der Decoderseite. Wenn der Decoder so konfiguriert ist, dass die Decodierzeit verzögert werden muss, wenn der Pufferspeicher leer wird, ist es dem VBV-Pufferspeicher gestattet, unterzulaufen. In solchen Fällen ist es nicht erforderlich, den Unterlauf des VBV-Pufferspeichers zu prüfen. Tmax kann daher wie folgt eingestellt werden: Tmax = Bs – B.
  • Da sich die Belegung B des Übertragungspufferspeichers 103 mit der Zeit ändert, ändert sich auch Tmax mit der Zeit und wird für jede VOP berechnet.
  • Danach berechnet die Ratensteuereinheit 102 für jeden Makroblock die Gesamtanzahl von Bits, die für die laufende VOP verwendet wird.
  • Gemäß den Flussdiagrammen, die in den 9 und 10 gezeigt sind, wählt die Ratensteuereinheit 102 entweder die, die von dem Codierer für variable Länge 5a ausgegeben werden, oder die Fixcodes, die von der Fixcode-Ausgabeeinheit 104 ausgegeben werden, für den laufenden Makroblock aus und speichert sie in den zeitweiligen Pufferspeicher 101.
  • Hier zeigt 9 ein Flussdiagramm des Falls, in dem die laufende VOP die P-VOP ist (wobei es sich um den Inter-Codiertyp handelt), und 10 zeigt ein Flussdiagramm des Falls, in dem die laufende VOP die I-VOP ist (wobei es sich um den Intra-Codiertyp handelt).
  • (Ratensteuerung für P-VOP)
  • Unten werden die Operationen der Ratensteuereinheit 102 des P-VOP-Falls beschrieben.
  • In diesem P-VOP-Fall gibt der Codierer für variable Länge 5a die codierten Daten von Koeffizienten not_coded, mcbpc, die Bewegungsvektoren, cbpy und dquant wie in 8a gezeigt für jeden Makroblock aus. Alle diese Codes sind jedoch nicht immer gegenwärtig. Wenn zum Beispiel alle Koeffizienten 0 sind und der Bewegungsvektor (0, 0) ist, ist nur 1 Bit für not_coded = 1 gegenwärtig. Das ist der Fall der Mindestcodelänge für den Makroblock in P-VOP.
  • In dem P-VOP-Fall gibt die Fixcode-Ausgabeeinheit 104 daher nur 1 Bit von not_coded = 1 als den Fixcode aus. Kurz gesagt gibt die Fixcode-Ausgabeeinheit 104 den Fixcode des Makroblocks aus, der die Mindestlänge für den Codiertyp der laufenden VOP hat.
  • Für jeden Makroblock berechnet die Ratensteuereinheit 102 die Anzahl von Bits, die für die laufende VOP verwendet werden. Dann ersetzt sie die Codes des laufenden Makroblocks durch den Fixcode, der von der Fixcode-Ausgabeeinheit 104 ausgegeben wird, wenn die Gesamtanzahl der Bits, die für alle Makroblöcke in der laufenden VOP verwendet werden, Tmax überschreitet, wird sogar der Fixcode für alle restlichen Makroblöcke ausgewählt.
  • Angenommen, die Gesamtanzahl der Makroblöcke in einer VOP wird mit A bezeichnet und die laufende Makroblocknummer wird mit K bezeichnet (0 ≤ K ≤ a – 1), wird die Anzahl der restlichen Makroblöcke, die zu codieren sind, wie folgt ausgedrückt: M = A – K – 1.
  • Wenn der Fixcode der Fixcode-Ausgabeeinheit 104 für die restlichen M Makroblöcke ausgewählt wird, wird die Gesamtanzahl der Bits, die für die laufende VOP verwendet wird, wie folgt ausgedrückt: Sc + mb_bit + M × L + α, wobei Sc die Anzahl der Bits ist, die für die Makroblöcke mit der Makroblocknummer 0 bis K – 1 in der laufenden VOP verwendet wird, mb_bit die Anzahl der Bits der Codes ist, die von dem Codierer für variable Länge 5a für den laufenden Makroblock ausgegeben wird (Nr. K), L die Codelänge des Fixcodes ist und α die Anzahl der Bits, die für die „zusätzlichen Codes" verwendet wird, die in den Makroblöcken der Nummern K bis inklusive A – 1 zu erzeugen ist.
  • Hier bedeutet „zusätzliche Codes" die Codes, die auf der Videopaketbasis erzeugt werden, wie zum Beispiel Resync Marker, der Videopaketkopfteil, die Stopfbits und motion_marker. α ≥ 0.
  • Wenn die folgende Beziehung für den laufenden Makroblock wahr ist (mit der Makroblocknummer K): Sc + mb_bit + M × L + α ≥ Tmax, wird der Fixcode, der von der Fixcode-Ausgabeeinheit 104 ausgegeben wird, in dem zeitweiligen Pufferspeicher 101 gespeichert. Anderenfalls wird der Code, der von dem Codierer für variable Länge 5a ausgegeben wird, in dem zeitweiligen Pufferspeicher 101 (wie in 9 gezeigt) gespeichert.
  • Hier wird α wie folgt bestimmt. Die Anzahl der Bits, die für die Makroblöcke mit den Makroblocknummer K bis inklusive A – 1 verwendet wird, beträgt mindestens: (M + 1) × L, und die Anzahl der Videopakete für sie kann die folgende sein: (M + 1) × L/VPlen + 1, wobei VPlen die vorausbestimmte Videopaketlänge ist. Die Anzahl der Bits für die zusätzlichen Codes beträgt daher: α = ((M + 1) × L/Vplen + 1) × Cp, wobei Cp die Summe der Anzahl von Bits für Resync Marker, den Videopaketkopf und motion_marker in der P-VOP ist.
  • Um die Berechnung zu vereinfachen, kann unter Anwendung der folgenden Beziehung: M + 1 ≤ A, α als ein Fixwert für P-VOP wie folgt ausgedrückt eingestellt werden: α = (A × L/VPlen + 1) × Cp.
  • Wird der Fixcode ausgewählt und in den zeitweiligen Pufferspeicher 101 für den laufenden Makroblock gespeichert, wird das decodierte Bild des laufenden Makroblocks, das in dem Speicher 9 gespeichert ist, von dem decodierten Bild des gleichen Makroblocks in der vorhergehenden VOP ersetzt, das ebenfalls in dem Speicher 9 gespeichert werden, weil der laufende Makroblock gezwungen ist, nicht codierter Makroblock zu sein.
  • Genauer genommen wird das decodierte Bild des Makroblocks mit der Makroblocknummer K in der vorhergehenden VOP in die Bilddatenzone für den laufenden Makroblock mit der Makroblocknummer K in der laufenden VOP kopiert. Dieser Vorgang wird in dem Speicher 9 ausgeführt.
  • In dem Fall der P-VOP wird der Fixcode not_coded = 1 von der Fixcode-Ausgabeeinheit 104 ausgegeben. Das decodierte Bild des laufenden Makroblocks kann durch Kopieren des decodierten Bilds des gleichen Makroblocks in der vorhergehenden VOP erzielt werden.
  • (Ratensteuerung für I-VOP)
  • Unten werden die Operationen der Ratensteuereinheit 102 für den I-VOP-Fall beschrieben.
  • In diesem I-VOP-Fall gibt der Codierer für variable Länge 5a die decodierten Daten der AC-Komponenten, mcbpc, dquant, die DC-Komponente, ac_pred_flag und cbpy wie in 7a gezeigt für jeden Makroblock aus.
  • Alle diese Codes sind jedoch nicht immer gegenwärtig. Wenn zum Beispiel sowohl cbpc in mcbpc und cbpy 0 sind, sind Koeffizienten der codierten Daten nicht gegenwärtig. Und wenn der Makroblocktyp MTYPE, der in mcbpc enthalten ist, kein dquant hat, ist dieses dquant ebenfalls nicht gegenwärtig.
  • In dem I-VOP-Fall gibt die Fixcode-Ausgabeeinheit 104 daher die fix codierten Daten, die darstellen, dass alle DC- und AC-Komponentendaten 0 sind, dquant = 0 und ac_pred_flag = 0 aus. Das ist der Fall der Mindestcodelänge für den Makroblock in I-VOP wie zum Beispiel für das MPEG2- oder MPEG4-Codiersystem.
  • Wie in dem P-VOP-Fall berechnet die Ratensteuereinheit 102 für jeden Makroblock die Anzahl von Bits, die für die laufende VOP verwendet wird. Dann ersetzt sie die Codes des laufenden Makroblocks durch den Fixcode, der von der Fixcode-Ausgabeeinheit 104 ausgegeben wird, wenn die Gesamtanzahl der Bits, die für alle Makroblöcke in der laufenden VOP verwendet werden, Tmax überschreitet, wird sogar der Fixcode für alle restlichen Makroblöcke ausgewählt.
  • Die Ersatzoperationssteuerung beruht auf der folgenden Beziehung: Sc + mb_bit + M × L + α ≥ Tmax (zu bemerken ist, dass M = A – K – 1),
    wobei Sc die Anzahl der Bits ist, die für die Makroblöcke mit den Makroblocknummern 0 bis K – 1 in der laufenden VOP verwendet werden ist, mb_bit die Anzahl der Bits der Codes ist, die von dem Codierer für variable Länge 5a für den laufenden Makroblock ausgegeben werden (Nr. K), und L die Codelänge des Fixcodes ist. Wie in 10 gezeigt, und wenn die oben stehende Beziehung wahr ist, wird der von der Fixcode-Ausgabeeinheit 104 ausgegebene Fixcode in dem zeitweiligen Pufferspeicher 101 gespeichert. Anderenfalls wird der Code, der von dem Codierer für variable Länge 5a ausgegeben wird, in dem zeitweiligen Pufferspeicher 101 gespeichert.
  • α ist hier die Anzahl von Bits, die pro Videopaket für den Makroblock mit der Makroblocknummer K bis inklusive A – 1 zu erzeugen ist. α enthält Daten, wie zum Beispiel Resync Marker, den Videopaketkopfteil, Stopfbits oder dc_marker. Zu bemerken ist, dass α ≥ 0.
  • α wird hier wie folgt bestimmt. Die Anzahl der Bits, die für die Makroblöcke mit der Makroblocknummer K bis inklusive A – 1 verwendet wird, beträgt mindestens: (M + 1) × L, und die Anzahl der Videopakete für sie kann die folgende sein: (M + 1) × L/VPlen + 1, wobei VPlen die vorbestimmte Videopaketlänge ist.
  • Die Anzahl der Bits für zusätzliche Codes beträgt daher: α = ((M + 1) × L/VPlen + 1) × Ci, wobei Ci die Summe der Anzahl von Bits für Resync Marker, den Videopaketkopfteil, Stopfbits und dc_marker in der I-VOP ist. Um die Berechnung zu vereinfachen, kann unter Einsatz der folgenden Beziehung: M + 1 ≤ A, α als ein Fixwert für I-VOP wie folgt eingestellt werden, ausgedrückt durch: α = (A × L/VPlen + 1) × Ci.
  • Wird der Fixcode ausgewählt und in den zeitweiligen Pufferspeicher 101 für den laufenden Makroblock gespeichert, und wird der Code, der von dem Codierer für variable Länge 5a ausgegeben wird, für den vorhergehenden Makroblock ausgewählt, wird ein neues Videopaket für den laufenden Makroblock wie in 19 erzeugt.
  • In dem I-VOP-Fall und auch wenn ac_pred_flag = 0, wird die DC-Komponentenvorhersage ausgeführt. Wenn die DC-Komponente in dem zeitweiligen Pufferspeicher 101 daher 0 ist, wird nicht angezeigt, dass die DC-Komponente Fx(0, 0), die von dem Quantisierer 3 ausgegeben wird, 0 ist, sondern dass die vorhergesagte DC-Komponente Ox(0, 0), die von dem DC/AC-Prädiktor 4 ausgegeben wird, 0 ist.
  • Das decodierte Bild aus dem Fixcode ist daher im Allgemeinen nicht stationär, auch wenn die Fixcode-Ausgabeeinheit 104 den Fixcode zu dem laufenden Makroblock ausgibt.
  • Praktisch bezieht sich der DC/AC-Prädiktor 4 jedoch nicht auf Koeffizienten der DC-Komponenten zwischen Blöcken eines anderen Videopakets. Der DC/AC-Prädiktor 4 bezieht sich auf eine Konstante β, die ein Zwischenwert in dem Bereich der Werte der DC-Komponenten ist. Wenn der Fixcode daher ausgewählt und in dem zeitweiligen Pufferspeicher 101 gespeichert wird, wenn ein neues Videopaket wie oben erwähnt aus dem laufenden Makroblock erzeugt wird, ist die dequantisierte DC-Komponente fx(0, 0) fx(0, 0) = β.
  • Wenn daher die Fixcodes, die von der Fixcode-Ausgabeeinheit 104 ausgegeben werden, decodiert werden, hat jeder Bildpunkt des Bilds einen konstanten Wert γ. Hier ist γ ein Zwischenwert in dem Bereich der Werte des Bildsignalpegels. Wenn der Bereich des Bildsignalpegels zum Beispiel ausgedrückt werden kann durch 8 Bit, das heißt 0 bis 255, wird der konstante Wert γ auf 128 eingestellt.
  • Derart ist die DC-Komponente nach dem Dequantisieren jedes Blocks des laufenden Makroblocks (Nr. K) gleich der Konstante β. Wenn der Fixcode für einen nächsten Makroblock (Nr. K + 1) ausgewählt wird, sind die DC-Komponenten gleich der Konstante β, und jeder Bildpunkt des Bilds hat einen konstanten Bildsignalpegel γ.
  • Wird der Fixcode ausgewählt und in dem zeitweiligen Pufferspeicher 101 für den laufenden Makroblock gespeichert, wird das decodierte Bild des laufenden Makroblocks, das in dem Speicher 9 gespeichert ist, durch den konstanten Bildsignalpegel γ ersetzt. Der konstante Bildsignalpegel γ wird daher in der Zone des decodierten Bilds für den laufenden Makroblock der laufenden VOP in Speicher 9 gespeichert.
  • Wie oben beschrieben, ermöglicht es diese Ausführungsform zu vermeiden, dass die Anzahl von Bits für jede VOP die maximale Anzahl von Bits Tmax überschreitet, indem entweder die Codes, die von dem Codierer für variable Länge 5a ausgegeben werden, oder die Fixcodes, die von der Fixcode-Ausgabeeinheit 104 auf der Basis der Flussdiagramme der 9 und 10 ausgegeben werden, ausgewählt werden.
  • Ferner ermöglicht es die Ausführungsform 1, das decodierte Bild zu holen, das dem Fixcode entspricht, der von der Fixcode-Ausgabeeinheit 104 ausgegeben wurde, ohne jede neue Berechnung, sogar in I-VOP, weil bestimmt wird, ob das neue Videopaket aus dem laufenden Makroblock auf der Basis der Flussdiagramme der 10 zu erzeugen ist oder nicht.
  • Ausführungsform 2
  • Bei der vorhergehenden Ausführungsform 1 wählt die Ratensteuereinheit 102 den Ausgang des Codierers für variable Länge 5a oder der Fixcode-Ausgabeeinheit 104 auf der Grundlage von Flussdiagrammen, die in den 9 und 10 gezeigt sind, aus.
  • Andererseits wählt in der Ausführungsform 2 die Ratensteuereinheit 102 den Ausgang des Codierers für variable Länge 5A oder den Fixcode der Fixcode-Ausgabeeinheit 104 auf der Basis der Flussdiagramme, die in den 11 und 12 gezeigt sind, aus.
  • Hier zeigt 11 ein Flussdiagramm des Falls, in dem die laufende VOP die P-VOP ist (in welcher der Codiertyp der Inter-Codiertyp ist). 12 zeigt ein Flussdiagramm des Falls, bei dem die laufende VOP die I-VOP ist (in der der Codiertyp der Intra-Codiertyp ist).
  • (Ratensteuerung für P-VOP)
  • Zuerst wird der Fall P-VOP unter Bezugnahme auf 11 beschrieben.
  • Wie bei der Ausführungsform 1 steuert die Ratensteuereinheit 102 für den laufenden Makroblock (Nr. K) dass der von der Fixcode-Ausgabeeinheit 104 ausgegebene Fixcode in dem zeitweiligen Pufferspeicher 101 gespeichert wird, wenn die Beziehung der Gesamtanzahl von Bits, die für die laufende VOP verwendet wird, und Tmax wie folgt ist: Sc + mb_bit + M × L + α ≥ Tmax (1), wobei Sc die Anzahl von Bits ist, die für die Makroblöcke mit der Makroblocknummer 0 bis K – 1 in der laufenden VOP verwendet werden, mb_bit die Anzahl von Bits der Codes ist, die von dem Codierer für variable Länge 5a für den laufenden Makroblock (Nr. K) ausgegeben werden, M die Anzahl von Makroblocks an und nach dem Makroblocknummer K + 1 der laufenden VOP ist, und L die Codelänge des Fixcodes ist.
  • α ist die Anzahl von Bits, die für die „zusätzlichen Codes" verwendet wird, die in den Makroblöcken der Nr. K bis A – 1 zu erzeugen sind. Hier bedeutet „zusätzliche Codes" die Codes, die auf der Videopaketbasis erzeugt werden, wie zum Beispiel Resync Marker, der Videopaketkopfteil, die Stopfbits und der motion_marker. α ≥ 0. Wie in Ausführungsform 1 beschrieben, kann α entweder für jeden Makroblock berechnet werden oder kann für jedes Codieren der VOP fix sein.
  • Wenn die oben erwähnte Beziehung (1) für den laufenden Makroblock wahr ist, ist es sehr wahrscheinlich, dass die Beziehung (1) für den nächsten Makroblock wahr ist. Denn die Anzahl von Bits ist summiert.
  • Zum Beispiel ist eine Anzahl von Bits Sc' des Makroblocks der Nummer 0 bis K die folgende Summe der Codelänge L des Fixcodes, wie er von der Fixcode-Ausgabeeinheit 104 ausgegeben wird, und der Anzahl von Bits Sc bis zu dem Makro block Nummer K – 1: Sc' = Sc + L.
  • Hier ist mb_bit die Anzahl von Bits des Codes, der von dem Codierer für variable Länge 5a für die Makroblocknummer K ausgegeben wird, und mb_bit' ist die Anzahl von Bits des Codes, der von dem Codierer für variable Länge 5a für die Makroblocknummer K + 1 ausgegeben wird. Wenn die Beziehung (1) für die Makroblocknummer K wahr ist, wenn mb_bit gleich mb_bit' ist, und wenn der oben erwähnte Wert α für die zwei Makroblöcke gleich ist, ist die folgende Beziehung wahr: Sc' + mb_bit' + (M – 1) × L + α = Sc + mb_bit + M × L + α > Tmax, und die Beziehung (1) ist auch für den Makroblock Nr. K + 1 wahr.
  • Wenn die Beziehung (1) für den Makroblock Nr. K wahr ist, können die Berechnungen daher weggelassen werden, indem angenommen wird, dass die Beziehung (1) auch für den Makroblock an und nach der Makroblocknummer K wahr ist.
  • Wie in 11 gezeigt, wird zuerst beurteilt, ob der Fixcode der Fixcode-Ausgabeeinheit 104 für den vorhergehenden Makroblock mit der Makroblock Nr. K – 1 ausgewählt wurde oder nicht. Wurde der Fixcode der Fixcode-Ausgabeeinheit 104 für den vorhergehenden Makroblock ausgewählt, wird der Fixcode der Fixcode-Ausgabeeinheit 104 in dem zeitweiligen Pufferspeicher 101 für den laufenden Makroblock gespeichert.
  • Wenn der Fixcode der Fixcode-Ausgabeeinheit 104 andererseits nicht für den vorhergehenden Makroblock ausgewählt wurde, wird die oben genannte Beziehung (1) bewertet. Ist die Beziehung (1) wahr, wird der Fixcode der Fixcode-Ausgabeeinheit 104 in dem zeitweiligen Pufferspeicher 101 gespeichert, anderenfalls wird der Ausgang des Codierers für variable Länge 5a in dem zeitweiligen Pufferspeicher 101 gespeichert.
  • (Ratensteuerung für I-VOP)
  • In dem I-VOP-Fall, wie in 12 gezeigt, wird zuerst beurteilt, ob der Fixcode der Fixcode-Ausgabeeinheit 104 für den vorhergehenden Makroblock mit der Makroblocknummer K – 1 ausgewählt wurde oder nicht. Wurde der Fixcode ausgewählt, wird der Fixcode der Fixcode-Ausgabeeinheit 104 in dem zeitweiligen Pufferspeicher 101 für den laufenden Makroblock mit der Makroblocknummer K gespeichert. In diesem Fall ist es nicht erforderlich, ein neues Videopaket aus dem laufenden Makroblock wie bei Ausführungsform 1 zu erzeugen.
  • Wurde der Fixcode der Fixcode-Ausgabeeinheit 104 andererseits nicht für den vorhergehenden Makroblock ausgewählt, beurteilt die Ratensteuereinheit 102, ob die oben genannte Beziehung (1) erfüllt ist oder nicht. Ist die Beziehung (1) wahr, wird der Fixcode der Fixcode-Ausgabeeinheit 104 in dem zeitweiligen Pufferspeicher 101 gespeichert, und ein neues Videopaket wird aus dem laufenden Makroblock erzeugt. Anderenfalls wird der Ausgang des Codierers für variable Länge 5a in dem zeitweiligen Pufferspeicher 101 gespeichert.
  • Hier, bei der Ausführungsform 2, und wenn die Beziehung (1) für einen Makroblock in einer VOP für an und nach dem laufenden Makroblock wahr ist, wird der Fixcode der Fixcode-Ausgabeeinheit 104 in dem zeitweiligen Pufferspeicher 101 gespeichert. Daher ist nach dem laufenden Makroblock keine Operation für die Codiereinheit, die das Subtrahier glied 1, den DCT 2, den Quantisierer 2, den DC/AC-Prädiktor 4, den Codierer für variable Länge 5a, den Dequantisierer 6, den IDCT 7, die Addierschaltung 8, den Bildformer für vorhergesagtes Bild 10, den Bewegungsdetektor 11 und den Bewegungsvektorprädiktor 12 umfasst, erforderlich.
  • Das Volumen des Verarbeitens und der Stromverbrauch können daher durch Stoppen der Operation der Codiereinheit verringert werden.
  • Ausführungsform 3
  • Bei der Ausführungsform 3 wählt die Ratensteuereinheit 102 den Ausgang des Codierers für variable Länge 5a oder der Fixcode-Ausgabeeinheit 104 auf der Grundlage des in 13 gezeigten Flussdiagramms aus.
  • Hier zeigt 13 ein Flussdiagramm des Falls, bei dem die laufende VOP die P-VOP ist (bei der der Codiertyp der Inter-Codiertyp ist).
  • (Ratensteuerung für P-VOP)
  • Wenn der Bewegungsdetektor 11 zum Beispiel anpassungsfähig funktioniert, um den Suchbereich des Bewegungsvektors gemäß der Bewegung eines Objekts in der VOP zu wechseln, ändert sich die erforderliche Zeit für den Bewegungsdetektor 11 zum Erfassen des Bewegungsvektors jedes Makroblocks bei jedem Makroblock, und die Verarbeitungszeit einer VOP ist nicht konstant.
  • Unter solchen Bedingungen, wenn die Verarbeitungszeit, darunter die erforderliche Zeit für das Erfassen des Bewegungsvektors für das Codieren aller Makroblöcke innerhalb der für eine VOP vorbestimmten Verarbeitungszeit unzureichend ist, wird der Fixcode der Fixcode-Ausgabeeinheit 104 in dem zeitweiligen Pufferspeicher 101 gespeichert. Die Operationen des Subtrahierglieds 1, des DCT 2, des Quantisierers 3, des DC/AC-Prädiktors 4, des Codierers für variable Länge 5a, des Dequantisierers 6, des IDCT 7, der Addierschaltung 8, des Bildformers für vorhergesagtes Bild 10, des Bewegungsdetektors 11 und des Bewegungsvektorprädiktors 12 erfolgen nicht.
  • Die Ratensteuereinheit 102 misst die verstrichene Zeit ab dem Augenblick, in dem der führende Makroblock (Makroblocknummer 0), der die laufende VOP konstruiert, eingegeben wurde. Wenn die verstrichene Zeit eine vorausbestimmte Verarbeitungszeit Tp überschreitet, wird der Fixcode der Fixcode-Ausgabeeinheit 104 immer in dem zeitweiligen Pufferspeicher 101 wie in 13 gespeichert. Anderenfalls und auf der Basis der oben erwähnten Beziehung (1) werden der Ausgang (der Fixcode) der Fixcode-Ausgabeeinheit 104 und der Ausgang des Codierers für variable Länge 5a ausgewählt und in dem zeitweiligen Pufferspeicher 101 gespeichert.
  • Hier ist die vorbestimmte Verarbeitungszeit Tp für diesen Fall maximal auf eine VOP-Periode eingestellt, denn das Verarbeiten für eine VOP muss innerhalb der VOP-Periode abgeschlossen werden. Wenn daher eine andere Verarbeitung in diese VOP-Periode eingegliedert ist, ist der Unterschied von einer VOP-Periode und der erforderlichen Zeit für eine andere Verarbeitung der maximale Wert für die Verarbeitungszeit Tp.
  • (Ratensteuerung für I-VOP)
  • Wenn die laufende VOP die I-VOP ist, wählt die Ratensteuereinheit 102 den in dem zeitweiligen Pufferspeicher 101 zu speichernden Code gemäß dem Flussdiagramm der 10 oder 12 wie bei der Ausführungsform 1 oder Ausführungsform 2 aus.
  • Ausführungsform 4
  • Bei der Ausführungsform 4 wählt die Ratensteuereinheit 102 den Ausgang des Codierers für variable Länge 5a oder der Fixcode-Ausgabeeinheit 104 auf der Grundlage der Flussdiagramme, die in 14 gezeigt sind, aus.
  • Hier zeigt 14 ein Flussdiagramm des Falls, bei dem die laufende VOP die P-VOP ist (bei der der Codiertyp der Inter-Codiertyp ist).
  • (Ratensteuerung für P-VOP)
  • Wie bei der Ausführungsform 2, wird zuerst beurteilt, ob der Fixcode der Fixcode-Ausgabeeinheit 104 für den vorhergehenden Makroblock mit der Makroblocknummer K – 1 ausgewählt wurde oder nicht. Wurde der Fixcode der Fixcodeeingabeeinheit 104 für den vorhergehenden Makroblock ausgewählt, wird der Fixcode der Fixcodeeingabeeinheit 104 in dem zeitweiligen Pufferspeicher 101 für den laufenden Makroblock gespeichert.
  • Danach misst die Ratensteuereinheit 102 wie bei der Ausführungsform 2 die Zeit, die von dem Augenblick verstrichen ist, in dem der führende Makroblock (Makroblocknummer 0), der die laufende VOP baut, eingegeben wurde. Wenn die verstrichene Zeit eine vorausbestimmte Verarbeitungszeit Tp überschreitet, wird der Fixcode der Fixcodeeingabeeinheit 104 immer in dem zeitweiligen Pufferspeicher 101 gespeichert. Anderenfalls werden auf der Grundlage der oben genannten Beziehung (1) der Ausgang (der Fixcode) der Fixcodeeingabeeinheit 104 und der Ausgang des Codierers für variable Länge 5a ausgewählt und in dem zeitweiligen Pufferspeicher 101 gespeichert.
  • (Ratensteuerung für I-VOP)
  • Wenn die laufende VOP die I-VOP ist, wählt die Ratensteuereinheit 102 den in dem zeitweiligen Pufferspeicher 101 zu speichernden Code gemäß dem Flussdiagramm der 10 oder 12 wie bei der Ausführungsform 1 oder Ausführungsform 2 aus.
  • Ausführungsform 5
  • Die Fixcodeeingabeeinheit 104, die in der Ausführungsform 1 gezeigt ist, ist wahrscheinlich unabhängig von dem Codierer für variable Länge 5a. Sind diese Elemente jedoch durch Software aufgebaut, kann die ROM-Tabelle für den gemeinsamen Gebrauch sowohl der Fixcodeeingabeeinheit 104 als auch des Codierers für variable Länge 5a bereitgestellt werden.
  • Wie bei der Ausführungsform 1 beschrieben, ist der Fixcode der Fixcodeeingabeeinheit 104 einer der I-VOP-/P-VOP-Makroblockcodes. Die ROM-Tabelle für den gemeinsamen Gebrauch kann daher durch Integrieren der Fixcodeeingabeeinheit 104 und des Codierers für variable Länge 5a hergestellt werden.
  • 15 zeigt ein Codiergerät gemäß der Ausführungsform 5 dieser Erfindung. In 15 bezeichnet das Bezugszeichen 1 ein Subtrahierglied zum Empfangen der externen Eingangssignale als seinen ersten Eingang. Der Ausgang des Subtrahierglieds wird dann durch den DCT 2 und den Quantisierer 3 in den DC/AC-Prädiktor 4 und den Dequantisierer 6 eingegeben. Der Ausgang des DC/AC-Prädiktors 4 wird in den ersten Eingang eines Codierers für variable Länge 5b eingespeist.
  • Andererseits wird der Ausgang des Dequantisierers 6 durch den IDCT 7 in den ersten Eingang der Addierschaltung 8 eingespeist. Der Ausgang dieser Addierschaltung 8 wird in den ersten Eingang des Speichers 9 eingespeist, dessen Ausgang wiederum in den ersten Eingang des Bildformers für vorhergesagtes Bild 10 und den ersten Eingang des Bewegungsdetektors 11 eingespeist wird.
  • Das externe Eingangssignal wird in den zweiten Eingang des Bewegungsdetektors 11 eingespeist, dessen Ausgang in den zweiten Eingang des Bildformers für vorhergesagtes Bild 10 und den Bewegungsvektorprädiktor 12 eingespeist wird. Der Ausgang des Bildformers für vorhergesagtes Bild 10 wird in den zweiten Eingang des Subtrahierglieds 1 und den zweiten Eingang der Addierschaltung 1 eingespeist.
  • Der Ausgang des Bewegungsvektorprädiktors 12 wird in den zweiten Eingang des Codierers für variable Länge 5b eingespeist.
  • Der erste Ausgang des Codierers für variable Länge 5b wird in den ersten Eingang des zeitweiligen Pufferspeichers 101 eingespeist, und der zweite Ausgang des Codierers für variable Länge 5b wird in die Ratensteuereinheit 102 eingespeist.
  • Der zeitweilige Pufferspeicher 101 erhält an seinem zweiten Eingang den ersten Ausgang der Ratensteuereinheit 102. Der Ausgang des zeitweiligen Pufferspeichers 101 wird in den ersten Eingang des Übertragungspufferspeichers 103 eingespeist.
  • Der zweite Ausgang der Ratensteuereinheit 102 wird in den zweiten Eingang des Speichers 9 und den dritten Eingang des Codierers für variable Länge 5b eingespeist, und der dritte Ausgang der Ratensteuereinheit 102 wird in den zweiten Eingang des Übertragungspufferspeichers 103 eingespeist. Der Ausgang des Übertragungspufferspeichers 103 wird als der Bitstrom ausgegeben (übertragen).
  • Dieser ausgegebene (übertragene) Bitstrom wird auf der Seite des Decodiersystems empfangen und decodiert.
  • Unten werden die Operationen beschrieben.
  • Die Ausführungsform 5 unterscheidet sich von der Ausführungsform 1 in den Operationen des Codierers für variable Länge 5b und des zeitweiligen Pufferspeicher 1. Die restlichen Teile sind ähnlich mit denen der Ausführungsform 1, so dass ihre Beschreibung weggelassen wird.
  • Für jeden Makroblock codiert der Codierer für variable Länge 5b die Daten jedes Makroblocks wie bei der Ausführungsform 1 und speichert die Codes in dem zeitweiligen Pufferspeicher 101 wie in 16a gezeigt. Dann speichert der Codierer für variable Länge 5b eine führende Adresse Ak der Codes, die für den laufenden Makroblock gespeichert sind, mit der Makroblocknummer K. Dann wird die Anzahl von Bits mb_bit der Codes, die für den laufenden Makroblock erzeugt wird, zu der Ratensteuereinheit 102 ausgegeben.
  • Danach beurteilt die Ratensteuereinheit 102, ob die oben stehende Beziehung (1) erfüllt ist oder nicht. Ist die Beziehung (1) wahr, steuert die Ratensteuereinheit 102 die Schreibadresse des zeitweiligen Pufferspeichers 101 auf Ak, und gibt das Signal aus, das die Auswahl des Fixcodes zu dem Speicher 9 und dem Codierer für variable Länge 5b anzeigt.
  • Als Reaktion auf das Signal, das die Auswahl des Fixcodes anzeigt, gibt der Codierer für variable Länge 5b den Fixcode, wie er für jeden Codiertyp von VOP vorbestimmt ist, zu dem zeitweiligen Pufferspeicher 101 aus. In diesem Zeitpunkt wurde die Schreibadresse des zeitweiligen Pufferspeichers 101 bereits zu Ak zurückgegeben, so dass der Code der Makroblocknummer K mit dem Fixcode überschrieben wird. Wie in dem Datenaufbau des zeitweiligen Pufferspeichers, der in 16b gezeigt ist, wird der Fixcode daher neben dem Code der Makroblocknummer K – 1 gespeichert.
  • Als Reaktion auf das Flag, das die Auswahl des Fixcodes anzeigt, wird die folgende Operation wie bei der Ausführungsform 1 beschrieben ausgeführt. Das heißt, der Speicher 9 speichert die Konstante γ in der Datenzone für decodiertes Bild der Makroblocknummer K, wenn es sich um den I-VOP-Fall handelt. In dem Speicher 9 werden die decodierten Bilddaten des Makroblocks mit der Makroblocknummer K in der vorhergehenden VOP in die Zone für decodiertes Bild für den Makroblock mit der Makroblocknummer K in der laufenden VOP in dem VOP-Fall kopiert.
  • Mit dem wie bisher beschriebenen Aufbau kann der Codierer für variable Länge 5b bei der Ausführungsform 5 die Funktionen der folgenden zwei Elemente erhalten: die Elemente zum Codieren jedes Makroblocks und die Elemente zum Ausgeben des Fixcodes, der für jeden Codiertyp der VOP vorbereitet wird, um so die Größe des Schaltkreises zu verringern.
  • Ausführungsform 6
  • 17 zeigt ein Codiersystem gemäß der Ausführungsform 6 der Erfindung. In 17 bezeichnet das Bezugszeichen 1 ein Subtrahierglied zum Empfangen der externen Eingangssignale als seinen ersten Eingang. Der Ausgang des Subtrahierglieds 1 wird über den DCT 2 und den Quantisierer 3 in den ersten Eingang des Codierers für variable Länge 5c und in den Dequantisierer 6 eingespeist.
  • Der Ausgang des Dequantisierers 6 wird durch den IDCT 7 in den ersten Eingang der Addierschaltung 8 eingespeist. Der Ausgang dieser Addierschaltung 8 wird in den ersten Eingang des Speichers 9 eingespeist, dessen Ausgang in den ersten Eingang des Bildformers für vorhergesagtes Bild 10 und den ersten Eingang des Bewegungsdetektors 11 eingespeist wird.
  • Das externe Eingabesignal wird in den zweiten Eingang des Bewegungsdetektors 11 eingespeist, dessen Ausgang in den zweiten Eingang des Bildformers für vorhergesagtes Bild 10 und den Bewegungsvektorprädiktor 12 eingespeist wird. Der Ausgang des Bildformers für vorhergesagtes Bild 10 wird in den zweiten Eingang des Subtrahierglieds 1 und in den zweiten Eingang der Addierschaltung 8 eingespeist.
  • Andererseits wird der Ausgang des Bewegungsvektorprädiktors 12 in den zweiten Eingang des Codierers für variable Länge 5c eingespeist. Hier ist die Codiereinheit so aufgebaut, dass sie die oben genannten Elemente enthält, von dem Subtrahierglied 1 zum Empfangen des internen Eingabesignals zu dem Codierer für variable Länge 5c zum Ausgeben des Codes mit variabler Länge, der dem externen Eingabesignal entspricht (obwohl der hier offenbarte Aufbau nur ein Beispiel ist, so dass er durch den, der für das Codieren des externen Eingangssignals in entsprechender Weise geeignet ist, veranschaulicht werden kann).
  • Der erste Ausgang des Codierers für variable Länge 5c wird in den ersten Eingang des zeitweiligen Pufferspeichers 101 eingespeist, und der zweite Ausgang des Codierers für variable Länge 5c wird in den Eingang der Ratensteuereinheit 102 eingespeist.
  • In den zeitweiligen Pufferspeicher 101 wird an seinem zweiten Eingang der Ausgang der Fixcodeeingabeeinheit 104 und an seinem dritten Eingang der erste Ausgang der Ratensteuereinheit 102 eingespeist. Der Ausgang des zeitweiligen Pufferspeichers 101 wird in den ersten Eingang des Übertragungspufferspeichers 103 eingespeist.
  • Der zweite Ausgang der Ratensteuereinheit 102 wird in den zweiten Eingang des Speichers 9 eingespeist, und der dritte Ausgang der Ratensteuereinheit 102 wird in den zweiten Eingang des Übertragungspufferspeichers 103 eingespeist. Der Ausgang des Übertragungspufferspeichers 103 wird als der Bitstrom ausgegeben (übertragen).
  • Der so ausgegebene (übertragene) Bitstrom wird auf der Seite des Decodiersystems empfangen und decodiert.
  • Unten werden die Operationen beschrieben.
  • Die Ausführungsform 6 unterscheidet sich von der Ausführungsform 1 dadurch, dass die DC/AC-Vorhersage nicht erfolgt, wenn der Codiertyp der Intra-Codiertyp ist. Spezifisch codiert der Codierer für variable Länge 5c die quantisierten DCT-Koeffizienten, die von dem Quantisierer 3 ausgegeben werden. In dem Fall des Codiersystems gemäß dem internationalen Standard ITU-T H.236 zum Beispiel, wird die DC-Komponente immer über 8 Bits in der I-VOP codiert.
  • Die Fixcodeeingabeeinheit 104 gibt daher die Fixcodes des Makroblocks für die I-VOP aus, in welcher: die DC-Komponente jedes Blocks 128 ist, alle AC-Komponenten 0 sind und dquant = 0.
  • Ohne die DC-Vorhersage dieses Falls braucht daher ein neues Videopaket nicht aus dem laufenden Makroblock aufgebaut zu werden, auch wenn der Fixcode der Fixcodeeingabeeinheit 104 ausgewählt wird. In dem I-VOP-Fall wählt die Ratensteuereinheit 102 daher entweder den Fixcode der Fixcodeeingabeeinheit 104 oder den Ausgang des Codierers für variable Länge 5c aus und speichert ihn in dem zeitweiligen Pufferspeicher 101 in Übereinstimmung mit dem Flussdiagrammen einer der 9, 11, 13, 14.
  • In dem P-VOP-Fall wie in den Ausführungsformen 1 bis 4, wird entweder der Ausgang (der Fixcode) der Fixcodeeingabeeinheit 104 oder der Ausgang des Codierers für variable Länge 5c ausgewählt und in dem zeitweiligen Pufferspeicher 101 in Übereinstimmung mit dem Flussdiagrammen einer der 9, 11, 13 oder 14 gespeichert.
  • Ausführungsform 7
  • Bei der Ausführungsform 6 wird entweder der Ausgang des Codierers für variable Länge 5c oder der Ausgang (der Fixcode) der Fixcodeeingabeeinheit 104 in dem zeitweiligen Pufferspeicher 101 gespeichert und von dem zeitweiligen Pufferspeicher 101 zu dem Übertragungspufferspeicher 103 übertragen. Wenn die Datenstruktur nicht der Datenteilungstyp ist oder wenn die Datenneuanordnung ihn nicht braucht, kann der zeitweilige Pufferspeicher 101 weggelassen werden (bei dieser Änderung entspricht die Speichereinheit dem Übertragungspufferspeicher 103). Der Aufbau kann zum Beispiel so modifiziert werden, dass entweder der Ausgang des Codierers für variable Länge 5c oder der Ausgang (der Fixcode) der Fixcodeeingabeeinheit 104 direkt in den Übertragungspufferspeicher 103 eingegeben wird.
  • In dem Fall des Codiersystems gemäß dem internationalen Standard ITU-T H. 263 in dem Fall ohne Datenaufteilung, zum Beispiel, hat der Bitstrom, der von dem Übertragungspufferspeicher 103 auszugeben ist, einen Aufbau, der in 18 gezeigt ist. In dem Datenteilungstyp von MPEG4, wie er in 7b oder 8b gezeigt ist, werden die Codes jedes Makroblocks in die folgenden Kategorien (1) bis (3) aufgeteilt.
    • (1) mcbpc, dquant und die DC-Komponente,
    • (2) ac_pred_flag und cbpy,
    • (3) die Koeffizientendaten jedes Blocks.
  • In H.263 werden die Codes einer Vielzahl von Makroblöcken jedoch nicht gemeinsam für jede Kategorie aufgebaut. Es ist daher nicht erforderlich, die erzeugten Codes für jeden Makroblock neu anzuordnen.
  • Wenn der Codierer für variable Länge 5c daher die Codes der Makroblöcke gemäß dem in 18 gezeigten Format ausgibt, kann der zeitweilige Pufferspeicher 101 für das Neuanordnen der Codes weggelassen werden.
  • 19 zeigt ein Codiersystem gemäß der Ausführungsform 7 der Erfindung. In 19 bezeichnet das Bezugszeichen 1 Subtrahierglied zum Eingeben der externen Eingabesignale als seinen ersten Eingang. Der Ausgang des Subtrahierglieds 1 wird durch den DCP 2 und den Quantisierer 3 in den ersten Eingang des Codierers für variable Länge 5c und den Dequantisierer 6 eingespeist.
  • Der Ausgang des Dequantisierers 6 wird durch den IDCT 7 in den ersten Eingang der Addierschaltung 8 eingespeist. Der Ausgang der Addierschaltung 8 wird in den ersten Eingang des Speichers 9 eingespeist, dessen Ausgang in den ersten Eingang des Bildformers für vorhergesagtes Bild 10 und in den ersten Eingang des Bewegungsdetektors 11 eingespeist wird.
  • Das externe Eingabesignal wird in den zweiten Eingang des Bewegungsdetektors 11 eingespeist, dessen Ausgang in den zweiten Eingang des Bildformers für vorhergesagtes Bild 10 und den Bewegungsdetektorprädiktor 12 eingespeist wird. Der Ausgang des Bildformers für vorhergesagtes Bild 10 wird in den zweiten Eingang des Subtrahierglieds 1 und den zweiten Eingang der Addierschaltung 8 eingespeist.
  • Der Ausgang des Bewegungsvektorprädiktors 12 wird in den zweiten Eingang des Codierers für variable Länge 5c eingespeist.
  • Der erste Ausgang des Codierers für variable Länge 5c wird in den ersten Eingang des Übertragungspufferspeichers 103 eingespeist, und der zweite Ausgang des Codierers für variable Länge 5c wird in die Ratensteuereinheit 102 eingespeist.
  • Der Ausgang (der Fixcode) der Fixcodeeingabeeinheit 104 wird in den zweiten Eingang des Übertragungspufferspeichers 103 eingespeist, und der erste Ausgang der Ratensteuereinheit 102 wird in den dritten Eingang des Übertragungspufferspeichers 103 eingespeist. Andererseits wird der zweite Ausgang der Ratensteuereinheit 102 in den zweiten Eingang des Speichers 9 eingespeist.
  • Der Ausgang des Übertragungspufferspeichers wird als Bitstrom ausgegeben (übertragen). Dieser ausgegebene (übertragene Bitstrom) wird auf der Seite des Decodiersystems empfangen und decodiert.
  • Unten werden die Operationen beschrieben.
  • Die Ausführungsform 7 unterscheidet sich von der Ausführungsform 6 dadurch, dass der Codierer für variable Länge 5c und die Fixcodeeingabeeinheit 104 die Fixcodes zu dem Übertragungspufferspeicher 103 ausgeben. Die Ratensteuereinheit 102 beurteilt für jeden Makroblock, ob der Ausgang des Codierers für variable Länge 5c oder der Ausgang (Fixcode) der Fixcodeeingabeeinheit 104 auszuwählen ist, und zwar auf der Basis der Anzahl von Bits der Codes, die von dem Codierer für variable Länge 5c ausgegeben werden, wie bei der Ausführungsform 6. Die Ratensteuereinheit 102 steuert, dass der ausgewählte Ausgang in dem Übertragungspufferspeicher 103 gespeichert wird.
  • Hier ist bei den oben stehenden Ausführungsformen 1 bis 7 beim Einstellen der maximalen Anzahl von Bits Tmax für jede VOP die Leserate R des Übertragungspufferspeichers eine konstante Rate. Auch wenn die Leserate eine variable Rate ist, kann die maximale Anzahl von Bits Tmax gesetzt werden, um das Überlaufen des Übertragungspufferspeichers 103 oder das Unterlaufen des VBV Pufferspeichers zu vermeiden.
  • Der Fall, bei dem die Leserate R des Übertragungspufferspeichers 103 variabel ist, entspricht dem Fall, in dem die maximale Übertragungsrate bestimmt wird und die Übertragungsrate innerhalb der maximalen Übertragungsrate nach Typen von Übertragungsinformation geteilt wird, zum Beispiel Video oder Audio.
  • Auch in diesem Fall kann die Steuerung auf der Grundlage der Flussdiagramme der 9 bis 14 durch Auswählen entweder des Speichern des Ausgangs der Codiereinheit zum Codieren jedes Makroblocks, oder des Fixcodes, der für jeden Codiertyp der VOP festgelegt wird, so gestaltet werden, dass die Anzahl der Bits für jede VOP den maximalen Wert Tmax nicht überschreiten kann.
  • In den oben stehenden Ausführungsformen 1 bis 7 wurden der Fall des MPEG4-Datenaufteilungstyps und der Fall des internationalen Standards ITU-T H.263 beschrieben. In dem Fall des Nichtdatenaufteilungstyps oder in dem Fall von MPEG2 kann die Anzahl der Bits jedoch mit einem ähnlichen Aufbau wie die oben erwähnten gesteuert werden.
  • Ferner könnten diese Erfindung oder oben genannte Ausführungsformen dieser Erfindung auch an den Fall angewandt werden, in dem das Eingangssignal nicht 4:2:0 Videoformatsignal ist, oder an den Fall, in dem die VOP (das heißt das Einheitsbild) nicht rechteckig ist.

Claims (20)

  1. Codiersystem zum Codieren einer Bildsequenz, umfassend: eine Codiereinheit (5a) zum Codieren externer Eingangssignale für jeden einer Vielzahl von Makroblöcken, die ein Bild formen, um Codes auszugeben, die den externen Eingangssignalen entsprechen, gekennzeichnet durch eine Fixcode-Ausgabeeinheit (104) für das Ausgeben von Fixcodes, die für jede einer Vielzahl von Codierungstypen zum Codieren eines Bilds vorausbestimmt sind, eine Speichereinheit (101) zum Speichern entweder der Codes, die von der Codiereinheit (5a) ausgegeben werden, oder der Fixcodes, die von der Fixcode-Ausgabeeinheit (104) ausgegeben werden, und eine Ratensteuereinheit (102) zum Steuern des Betriebs des Systems derart, dass für einen Makroblock entweder die Codes, die von der Codiereinheit ausgegeben werden, oder die Fixcodes in der Speichereinheit (103) gespeichert werden, gemäß der Anzahl von Bits für die Codes, die von der Codiereinheit codiert werden.
  2. Codiersystem nach Anspruch 1, wobei die Ratensteuereinheit (102) die maximale Anzahl von Bits bestimmt, die durch Codieren des Bilds für jedes Bild erzeugt werden kann, und das Speichern entweder der Codes, die von der Codiereinheit (5a) ausgegeben werden, oder der Fixcodes, die von der Fixcode-Ausgabeeinheit (104) ausgegeben werden für jeden der Makroblöcke, die das Bild formen, auf der Basis der maximalen Anzahl von Bits steuert.
  3. Codiersystem nach Anspruch 2, wobei die Ratensteuereinheit (102) die maximale Anzahl von Bits Tmax auf der Basis der folgenden Beziehungen bestimmt: Tmax ≤ Bs – B, wobei Tmax die maximale Anzahl von Bits, Bs die Kapazität der Speichereinheit (101) und B die Belegung in der Speichereinheit bezeichnet.
  4. Codiersystem nach Anspruch 2, wobei die Ratensteuereinheit (102) die maximale Anzahl von Bits Tmax auf der Basis der folgenden Beziehungen bestimmt: Tmax ≤ vbv_bits + Rp, wobei Rp = R/F, Tmax die maximale Anzahl von Bits, Rp die Anzahl von Bits, die aus der Speichereinheit (101) für das Bild zu lesen sind, R die Bitrate, die aus der Speichereinheit (101) zu lesen ist, F die Rate des zu codierenden Bilds, und vbv_bits die Belegung des VBV-Pufferspeichers in dem vorhergehenden Bild bezeichnet.
  5. Codiersystem nach Anspruch 2, wobei die Ratensteuereinheit (102) die maximale Anzahl von Bits Tmax auf der Basis einer der folgenden Beziehungen oder Werte für ähnliche Ergebnisse bestimmt: Tmax ≤ min(vbv_bits + Rp, Bs – B), wobei Rp = F/F ist, Tmax die maximale Anzahl von Bits, Rp die Anzahl von Bits, die aus der Speichereinheit (101) für das Bild zu lesen sind, R die Bitrate, die aus der Speichereinheit zu lesen ist, F die Rate des zu codierenden Bilds, vbv_bits eine Belegung des VBV-Pufferspeichers in dem vorhergehenden Bild, Bs die Kapazität der Speichereinheit und B die Belegung der Speichereinheit bezeichnet.
  6. Codiersystem nach Anspruch 4 oder 5, wobei die Bitrate R, die aus der Speichereinheit (103) zu lesen ist, variabel ist.
  7. Codiersystem nach Anspruch 2, wobei die Ratensteuereinheit (102) eine Steuerung macht, um in der Speichereinheit den Fixcode, wie er von der Fixcode-Ausgabeeinheit (104) ausgegeben wird, für den laufenden Makroblock zu speichern, wobei die Beziehungen zwischen der Anzahl von Bits mb_bit der Codes, die von der Codiereinheit (5a) für den laufenden Makroblock ausgegeben wird, der Anzahl von Bits Sc bis zum vorhergehenden Makroblock in dem Bild, die maximale Anzahl von Bits Tmax des Bilds, die Anzahl M von Makroblöcken, die nach dem laufenden Makroblock in dem Bild zu codieren sind, die Codelänge L der Fixcodes, die von der Fixcode-Ausgabeeinheit (104) für das Bild auszugeben sind, und die Anzahl von Bits α der zusätzlichen Codes, die in einem Videopaket für das Bild zu erzeugen sind, ausgedrückt werden von: Sc + mb_bit + M × L + α > Tmax wobei α ≥ 0.
  8. Codiersystem nach Anspruch 2, wobei die Ratensteuereinheit (102) eine Steuerung macht, um in der Speichereinheit (101) den Fixcode, so wie er von der Fixcode-Ausgabeeinheit (104) ausgegeben wird, nicht nur für den laufenden Makroblock, sondern auch für eine Anzahl M von Makroblöcken, die nach dem laufenden Makroblock in dem Bild zu codieren sind, zu speichern, wobei die Beziehungen unter der Anzahl von Bits mb_bit des Codes, der von der Codiereinheit (5a) für den laufenden Makroblock ausgegeben wird, die Anzahl von Bits Sc zu dem vorhergehenden Block in dem Bild, die Anzahl der Bits Tmax des Bilds, die Anzahl M an Makroblöcken, die nach dem laufenden Makroblock in dem Bild zu codieren sind, die Codelänge L der Fixcodes, die von der Fixcode-Ausgabeeinheit (104) für das Bild auszugeben sind und die Anzahl der Bits α an zusätzlichen Codes, die in einem Videopaket für das Bild zu erzeugen sind, ausgedrückt werden durch: Sc + mb_bit + M × L + α > Tmax wobei α ≥ 0.
  9. Codiersystem nach Anspruch 8, wobei die Ratensteuereinheit (102) ein Videopaket aus dem laufenden Makroblock baut, wobei die folgende Beziehung gilt und wobei der Codiertyp dieses Bilds ist intra: Sc + mb_bit + M × L + α > Tmax.
  10. Codiersystem nach Anspruch 2, wobei die Fixcode-Ausgabeeinheit (104) einen Code ausgibt, der dem Makroblock entspricht, in dem die Anzahl von Bits das mögliche Minimum für den Codiertyp des Bilds gemäß dem Codiersystem ist.
  11. Codierverfahren zum Codieren einer Sequenz von Bildern, das Folgendes umfasst: einen Codierschritt zum Codieren externer Eingangssignale für jeden einer Vielzahl von Makroblöcken, die ein Bild formen, um Codes auszugeben, die den externen Eingangssignalen entsprechen, gekennzeichnet durch: einen Fixcode-Ausgabeschritt zum Ausgeben vorausbestimmter Fixcodes für jeden einer Vielzahl von Codiertypen zum Codieren eines Bilds, einen Speicherschritt zum Speichern entweder der Codes, die in dem Codierschritt ausgegeben werden, oder der Fixcodes, die in dem Fixcode-Ausgabeschritt ausgegeben werden, und einen Ratensteuerschritt zum Steuern des Betriebs derart, dass für jeden Makroblock entweder die Codes, die von der Codiereinheit ausgegeben werden, oder die Fixcodes in dem Speicherschritt gemäß der Anzahl von Bits für die in dem Codierschritt codierten Codes gespeichert werden.
  12. Codierverfahren nach Anspruch 11, wobei der Ratensteuerschritt die maximale Anzahl von Bits bestimmt, die durch Codieren des Bilds für jedes der Bilder erzeugt werden kann, und das Speichern ent weder der im Codierschritt ausgegebenen Codes oder der Fixcodes, die im Fixcode-Ausgabeschritt ausgegeben wurden, für jeden der Makroblöcke, die das Bild formen, auf der Basis der maximalen Anzahl von Bits steuert.
  13. Codierverfahren nach Anspruch 12, wobei der Ratensteuerschritt die maximale Anzahl von Bits Tmax auf der Basis der folgenden Beziehung bestimmt Tmax ≤ Bs – B, wobei Tmax die maximale Anzahl von Bits, Bs die in dem Speicherschritt zugelassene Kapazität und B die zugelassene Belegung in dem Speicherschritt bezeichnet.
  14. Codierverfahren nach Anspruch 12, wobei der Ratensteuerschritt die maximale Anzahl von Bits Tmax auf der Basis der folgenden Beziehungen festlegt: Tmax ≤ vbv_bits + Rp, wobei Rp = R/F, Tmax die maximale Anzahl von Bits, Rp die Anzahl von Bits, die beim Speicherschritt für das Bild zu lesen sind, R die Bitrate, die in dem Speicherschritt zu lesen ist, F die Rate des zu codierenden Bilds und vbv_bits die Belegung des VBV-Pufferspeichers in dem vorhergehenden Bild bezeichnet.
  15. Codierverfahren nach Anspruch 12, wobei der Ratensteuerschritt die maximale Anzahl von Bits Tmax auf der Basis einer der folgenden Beziehun gen oder Werte für ähnliche Ergebnisse festlegt: Tmax ≤ min(vbv_bits + Rp, Bs – B), wobei Rp = R/F, Tmax die maximale Anzahl von Bits, Rp die Anzahl von Bits, die bei dem Speicherschritt für das Bild zu lesen sind, R die Bitrate, die in dem Speicherschritt zu lesen ist, F die Rate des zu codierenden Bilds, vbv_bits die Belegung des VBV-Pufferspeichers in dem vorhergehenden Bild, Bs die in dem Speicherschritt zugelassene Kapazität und B die in dem Speicherschritt zugelassenen Belegung bezeichnet.
  16. Codierverfahren nach Anspruch 14 oder 15, wobei die in dem Speicherschritt zu lesende Bitrate R variabel ist.
  17. Codierverfahren nach Anspruch 12, wobei der Ratensteuerschritt eine Steuerung macht, um in dem Speicherschritt den Fixcode, wie er in dem Fixcode-Ausgabeschritt ausgegeben wird, für den laufenden Makroblock, zu speichern, wobei die Beziehungen zwischen der Anzahl von Bits mb_bit der Codes, die in dem Codierschritt für den laufenden Makroblock gegeben werden, die Anzahl von Bits Sc bis zum dem vorhergehenden Makroblock in dem Bild, die maximale Anzahl von Bits Tmax des Bilds, die Anzahl M von Makroblöcken, die nach dem laufenden Block in dem Bild zu codieren sind, die Codelänge L der Fixcodes, die in dem Fixcode-Ausgabeschritt für das Bild auszugeben sind, und die Anzahl der Bits α für die zusätzlichen Codes, die in einem Videopaket für das Bild zu erzeugen sind, ausgedrückt werden durch: Sc + mb_bit + M × L + α > Tmax wobei α ≥ 0 ist.
  18. Codierverfahren nach Anspruch 12, wobei der Ratensteuerschritt eine Steuerung zum Speichern des Fixcodes wie er in dem Fixcode-Ausgabeschritt ausgegeben wurde, in dem Speicherschnitt nicht nur für den laufenden Makroblock, sondern auch für eine Anzahl M von Makroblöcken, die nach dem laufenden Makroblock in dem Bild zu codieren sind, macht, wobei die Beziehungen unter der Anzahl von Bits mb_bit der in dem Codierschritt für den laufenden Makroblock ausgegebenen Codes, die Anzahl von Bits Sc zu dem vorhergehenden Makroblock in dem Bild, die maximale Anzahl von Bits Tmax des Bilds, die Anzahl M von Makroblöcken, die nach dem laufenden Makroblock in dem Bild zu codieren sind, die Codelänge L der in dem Fixcode-Ausgabeschritt für das Bild auszugebenden Fixcodes, und die Anzahl von Bits α der zusätzlichen Codes, die in einem Videopaket für das Bild zu erzeugen sind, ausgedrückt werden durch: Sc + mb_bit + M × L + α > Tmax wobei α ≥ 0 ist.
  19. Codierverfahren nach Anspruch 18, wobei der Ratensteuerschritt ein neues Videopaket aus dem laufenden Makroblock baut, wobei die folgende Beziehung gilt und wobei der Codiertyp der Bildeinheit intra ist: Sc + mb_bit + M × L + α > Tmax.
  20. Codierverfahren nach Anspruch 12, wobei der Fixcode-Ausgabeschritt einen Code ausgibt, der dem Makroblock entspricht, in dem die Anzahl von Bits das mögliche Minimum für den Codiertyp des Bilds gemäß dem Codiersystem ist.
DE60123317T 2000-04-27 2001-04-27 Kodiersystem und Kodierverfahren Expired - Lifetime DE60123317T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000127291 2000-04-27
JP2000127291 2000-04-27

Publications (2)

Publication Number Publication Date
DE60123317D1 DE60123317D1 (de) 2006-11-09
DE60123317T2 true DE60123317T2 (de) 2007-05-10

Family

ID=18636913

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60123317T Expired - Lifetime DE60123317T2 (de) 2000-04-27 2001-04-27 Kodiersystem und Kodierverfahren

Country Status (4)

Country Link
US (2) US6792046B2 (de)
EP (1) EP1150514B1 (de)
CN (1) CN1322759C (de)
DE (1) DE60123317T2 (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563953B2 (en) 1998-11-30 2003-05-13 Microsoft Corporation Predictive image compression using a single variable length code for both the luminance and chrominance blocks for each macroblock
CN100380983C (zh) * 2001-08-02 2008-04-09 皇家飞利浦电子股份有限公司 视频编码方法
US7646816B2 (en) 2001-09-19 2010-01-12 Microsoft Corporation Generalized reference decoder for image or video processing
US7355530B2 (en) * 2001-11-21 2008-04-08 Canon Kabushiki Kaisha Method and device for determining at least one multimedia data encoding parameter
US7240001B2 (en) * 2001-12-14 2007-07-03 Microsoft Corporation Quality improvement techniques in an audio encoder
WO2003053066A1 (en) 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
KR100454501B1 (ko) * 2001-12-26 2004-10-28 브이케이 주식회사 영상신호를 부호화 또는 복호화하기 위한 예측 장치 및 방법
US7280700B2 (en) * 2002-07-05 2007-10-09 Microsoft Corporation Optimization techniques for data compression
US7380028B2 (en) * 2003-06-13 2008-05-27 Microsoft Corporation Robust delivery of video data
US7609763B2 (en) * 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
US7092576B2 (en) * 2003-09-07 2006-08-15 Microsoft Corporation Bitplane coding for macroblock field/frame coding type information
US8345754B2 (en) 2003-09-07 2013-01-01 Microsoft Corporation Signaling buffer fullness
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7961786B2 (en) * 2003-09-07 2011-06-14 Microsoft Corporation Signaling field type information
US8582659B2 (en) 2003-09-07 2013-11-12 Microsoft Corporation Determining a decoding time stamp from buffer fullness
US8107531B2 (en) * 2003-09-07 2012-01-31 Microsoft Corporation Signaling and repeat padding for skip frames
JP4369857B2 (ja) * 2003-12-19 2009-11-25 パナソニック株式会社 画像符号化装置および画像符号化方法
CN1332563C (zh) * 2003-12-31 2007-08-15 中国科学院计算技术研究所 一种视频图像跳过宏块的编码方法
US7467389B2 (en) * 2004-11-23 2008-12-16 Sybase, Inc. System and methodology providing service invocation for occasionally connected computing devices
US20060256868A1 (en) * 2005-05-16 2006-11-16 Ensequence, Inc. Methods and systems for repositioning mpeg image content without recoding
US9077960B2 (en) 2005-08-12 2015-07-07 Microsoft Corporation Non-zero coefficient block pattern coding
US8102878B2 (en) * 2005-09-29 2012-01-24 Qualcomm Incorporated Video packet shaping for video telephony
US8548048B2 (en) * 2005-10-27 2013-10-01 Qualcomm Incorporated Video source rate control for video telephony
US8406309B2 (en) * 2005-10-21 2013-03-26 Qualcomm Incorporated Video rate adaptation to reverse link conditions
US8842555B2 (en) * 2005-10-21 2014-09-23 Qualcomm Incorporated Methods and systems for adaptive encoding of real-time information in packet-switched wireless communication systems
US8514711B2 (en) * 2005-10-21 2013-08-20 Qualcomm Incorporated Reverse link lower layer assisted video error control
KR20120034084A (ko) * 2007-01-10 2012-04-09 콸콤 인코포레이티드 멀티미디어 전화 통신을 위한 컨텐트- 및 링크-의존 코딩 적응 구조
US7885819B2 (en) 2007-06-29 2011-02-08 Microsoft Corporation Bitstream syntax for multi-process audio decoding
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US9009292B2 (en) * 2007-07-30 2015-04-14 Sybase, Inc. Context-based data pre-fetching and notification for mobile applications
US8204870B2 (en) * 2007-08-03 2012-06-19 Sybase, Inc. Unwired enterprise platform
US8797850B2 (en) * 2008-01-10 2014-08-05 Qualcomm Incorporated System and method to adapt to network congestion
JP5206070B2 (ja) * 2008-03-28 2013-06-12 富士通株式会社 復号装置および復号方法
US7949775B2 (en) * 2008-05-30 2011-05-24 Microsoft Corporation Stream selection for enhanced media streaming
KR20100057388A (ko) * 2008-11-21 2010-05-31 삼성전자주식회사 버퍼 상태에 적응적인 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
US20100132007A1 (en) * 2008-11-25 2010-05-27 Cisco Technology, Inc. Accelerating channel change time with external picture property markings
US8683515B2 (en) 2008-11-25 2014-03-25 Cisco Technology, Inc. Receiver for accelerating channel change time
JP5116704B2 (ja) * 2009-02-02 2013-01-09 パナソニック株式会社 画像符号化装置及び画像符号化方法
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
JP2012138661A (ja) * 2010-12-24 2012-07-19 Sony Corp 画像処理装置および方法
JP2014116835A (ja) 2012-12-11 2014-06-26 Toshiba Corp 復号装置、符号化装置、復号方法、及び符号化方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3224465B2 (ja) * 1993-12-22 2001-10-29 シャープ株式会社 画像符号化装置
TW374283B (en) * 1994-05-25 1999-11-11 Sony Corp A multiple coding device
US5686964A (en) * 1995-12-04 1997-11-11 Tabatabai; Ali Bit rate control mechanism for digital image and video data compression
US6044396A (en) * 1995-12-14 2000-03-28 Time Warner Cable, A Division Of Time Warner Entertainment Company, L.P. Method and apparatus for utilizing the available bit rate in a constrained variable bit rate channel
EP1677546B1 (de) * 1996-04-12 2008-07-30 Sony Corporation Bildkodierung mit Pufferunterlaufvermeidung
US6094455A (en) * 1996-09-25 2000-07-25 Matsushita Electric Industrial Co., Ltd. Image compression/encoding apparatus and system with quantization width control based on bit generation error
US6366614B1 (en) * 1996-10-11 2002-04-02 Qualcomm Inc. Adaptive rate control for digital video compression
US6188700B1 (en) * 1996-11-07 2001-02-13 Sony Corporation Method and apparatus for encoding MPEG signals using variable rate encoding and dynamically varying transmission buffers
US6263020B1 (en) * 1996-12-24 2001-07-17 Intel Corporation Method and apparatus for bit rate control in a digital video system
US6366704B1 (en) * 1997-12-01 2002-04-02 Sharp Laboratories Of America, Inc. Method and apparatus for a delay-adaptive rate control scheme for the frame layer
US6567554B1 (en) * 1999-03-12 2003-05-20 Victor Company Of Japan, Limited Data coding method and apparatus therefor

Also Published As

Publication number Publication date
US20040240558A1 (en) 2004-12-02
DE60123317D1 (de) 2006-11-09
CN1335724A (zh) 2002-02-13
EP1150514A2 (de) 2001-10-31
EP1150514B1 (de) 2006-09-27
US6792046B2 (en) 2004-09-14
US7433408B2 (en) 2008-10-07
EP1150514A3 (de) 2003-12-10
CN1322759C (zh) 2007-06-20
US20020012394A1 (en) 2002-01-31

Similar Documents

Publication Publication Date Title
DE60123317T2 (de) Kodiersystem und Kodierverfahren
DE60023576T2 (de) Verfahren und Vorrichtung zur Bewegtbilddatentranscodierung
DE69233411T2 (de) Verfahren und Einrichtung zur Kompression von sich bewegenden Videobildern mit adaptiver Bitzuordnung und Quantisierung
DE60032841T2 (de) Signalprozessor zum nahtlosen Zusammenfügen von MPEG-2 Bitströmen in einem Videokoder
DE69921108T2 (de) Verfahren und vorrichtung zur adaptiven codierung eines videodatenstroms
DE10190285B4 (de) Verfahren und System zur Verarbeitung von komprimierten Videosignalen
DE69637343T2 (de) Videokodierungs- und -dekodierungsvorrichtung
EP0682454B1 (de) Verfahren und Vorrichtung zur Transcodierung von Bitströmen mit Videodaten
DE69834959T2 (de) Prädiktives Bilddekodierungsverfahren
DE60028942T2 (de) Videokodierung
DE60026241T2 (de) Umschalten zwischen bitratenreduzierten Signalen
DE69736537T2 (de) Ratenregelung für stereoskopische digitale Videokodierung
DE69838639T2 (de) Prädiktives kodierungs- und dekodierungsverfahren für dynamische bilder
DE69629137T2 (de) Bildkodierungsgerät und Bilddekodierungsgerät
DE69435000T2 (de) Bildkodierungsvorrichtung
DE69826823T2 (de) Verfahren zur videocodierung mit variabler bitrate und entsprechender videocodierer
DE69829345T2 (de) Verfahren zur Verminderung des Verarbeitungsleistungsbedarfs eines Videodekoders
DE60130180T2 (de) Verfahren zur kodierung und dekodierung, aufzeichnungsmedium und programm
DE69938093T2 (de) Steuerung der Datenrate für einen MPEG-Transcoder ohne a-priori Kenntnis des Bildtyps
EP2198610B1 (de) Verfahren und vorrichtung zum erstellen eines kodierten ausgangsvideostroms aus mindestens zwei kodierten eingangsvideoströmen, sowie verwendung der vorrichtung
DE69913990T2 (de) System zum editieren komprimierter bildsequenzen
DE60027955T2 (de) Verfahren und Vorrichtung zur kontextbasierten Inter/Intra Kodierungsmodeauswahl
DE69816875T2 (de) Sequenzadaptive bit-zuordnung zur codierung von bildern
DE69735756T2 (de) Dynamische steuerung der kodierrate in einem blockbasierten videokodierungssystem
DE69916027T2 (de) Videokompressionssystem welches auch codierungsentscheidungsdaten komprimiert

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
R084 Declaration of willingness to licence

Ref document number: 1150514

Country of ref document: EP

Effective date: 20110630