DE69227970T2 - Signalprozessor zur Kodierung - Google Patents
Signalprozessor zur KodierungInfo
- Publication number
- DE69227970T2 DE69227970T2 DE69227970T DE69227970T DE69227970T2 DE 69227970 T2 DE69227970 T2 DE 69227970T2 DE 69227970 T DE69227970 T DE 69227970T DE 69227970 T DE69227970 T DE 69227970T DE 69227970 T2 DE69227970 T2 DE 69227970T2
- Authority
- DE
- Germany
- Prior art keywords
- frame
- activity
- block
- code
- amount
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 230000000694 effects Effects 0.000 claims description 165
- 238000004364 calculation method Methods 0.000 claims description 12
- 238000013139 quantization Methods 0.000 description 24
- 238000000034 method Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000002542 deteriorative effect Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N11/00—Colour television systems
- H04N11/04—Colour television systems using pulse code modulation
- H04N11/042—Codec means
- H04N11/044—Codec means involving transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/115—Selection of the code volume for a coding unit prior to coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
- H04N19/14—Coding unit complexity, e.g. amount of activity or edge presence estimation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/149—Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/172—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/146—Data rate or code amount at the encoder output
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Image Processing (AREA)
Description
- Die Erfindung betrifft einen Signalprozessor zum leistungsstarken Codieren, der Informationssignale, beispielsweise digitale Bilddaten, leistungsfähig codiert.
- Die digitale Verarbeitung von Videosignalen ist in den letzten Jahren beträchtlich weiterentwickelt worden. Insbesondere sind verschiedene leistungsfähige Codiersysteme zum Komprimieren von Bilddaten für eine Standardisierung vorgeschlagen worden. Wirksame Codiertechniken verwendet man zum Codieren von Bilddaten mit einer verringerten Bitrate, um die Wirksamkeit der digitalen Übertragung, Aufzeichnung usw. zu verbessern. In einem solchen leistungsfähigen Codiersystem hat die CCITT (Comité Consultatif International Télégraphique et Téléphonique oder International Committee for Telephone and Telegraph (Internationaler beratender Ausschuß für den Telegraphen- und Fernsprechdienst)) eine Richtlinie H. 261 zum Standardisieren von Videokonferenzen und Videotelephonaten herausgegeben, das JPEG-System (Joint Photographic Experts Group) zum Codieren von farbigen Standbildern und das MPEG-System (Moving Picture Experts Group) zum Codieren bewegter Bilder (siehe "Unification of Efficient Encoding Systems for Images" in "Nikkei Electronics", October 15, 1990, No. 511, pp. 124-129). Alle drei vorgeschlagenen Systeme beruhen im wesentlichen auf einer DCT-Verarbeitung (Discrete Cosine Transform, diskrete Cosinustransformation).
- Fig. 1 zeigt ein Blockdiagramm eines herkömmlichen Signalprozessors zur leistungsfähigen Codierung, der eine DCT- Verarbeitung verwendet.
- Ein Luminanzsignal Y und zwei Farbdifferenzsignale Cr und Cb von digitalen Bilddaten werden voneinander getrennt verarbeitet. Das Luminanzsignal Y wird in einer Halbbild folge an einen Eingangsanschluß 1 übertragen und in einem Halbbildspeicher 2 gespeichert. Die Farbdifferenzsignale Cr und Cb werden über die Eingangsanschlüsse 1r und 1b eingegeben und nach dem Multiplexen in einem Multiplexer 13 in einem Halbbildspeicher 2c gespeichert. Die Farbdifferenzsignale Cr und Cb nach dem Multiplexer 13 werden genauso verarbeitet wie das Luminanzsignal Y; daher wird im weiteren stellvertretend nur das Luminanzsignal Y beschrieben.
- Das Luminanzsignal Y wird nach der Umwandlung in einen Frame im Halbbildspeicher 2 an eine DCT-Schaltung 3 angelegt, und zwar jeweils in Blöcken zu 8 · 8 Pixeln, d. h. als quadratischer Block mit acht Pixeln in waagrechter Richtung und acht Pixeln in senkrechter Richtung. Die DCT-Schaltung 3 erzeugt mit einer zweidimensionalen 8 · 8-DCT durch eine orthogonale Transformation ihrer Eingangssignale DCT-Koeffizienten. Diese DCT-Koeffizienten werden in einer Folge angeordnet, die bei den waagrechten und senkrechten Niederfrequenzanteilen beginnt und zu den jeweiligen Hochfrequenzanteilen führt. Man erhält einen Gleichanteil-Koeffizienten, der einem Mittelwert aller Daten darstellt, und 63 Wechselgrößen-Koeffizienten. Die DCT-Koeffizienten werden nacheinander beginnend mit den waagrechten und senkrechten Niederfrequenzanteilen in einem Zickzack-Durchlauf gelesen und dann über einen Framespeicher 4 an einen Quantisierer 5 angelegt. Der Quantisierer 5 vermindert die Datenmenge (Datenmenge oder Bitanzahl), indem er die im Zickzack-Durchlauf gelesenen DCT-Koeffizienten durch Quantisierer-Koeffizienten teilt, die aus einer Quantisierungstabelle 10 gelesen werden. Damit wird die Redundanz eines jeden Blocksignals verringert.
- Die quantisierten Daten werden ferner an einen Codierer 6 mit variabler Länge angelegt, der sie beispielsweise mit Huffman-Codes codiert, und zwar ausgehend von einem Ergebnis, das aus einer Stichprobe der quantisierten Ausgangssi gnale berechnet wird. Dadurch werden Daten mit einer großen Auftrittswahrscheinlichkeit mit einer kurzen Bitlänge codiert, dagegen Daten mit einer geringen Auftrittswahrscheinlichkeit mit einer langen Bitlänge. Damit verringert sich die Menge der Übertragungsdaten nochmals.
- Codiert man mit Huffman-Codes, so verändern sich die in eine Dateneinheit komprimierten Bilddatenmengen, wenn sich die Bildmuster ändern. Daher ist die Datenverwaltung bei einem Aufzeichnungsvorgang auf einem vorgeschriebenem Aufzeichnungsmedium äußerst schlecht handhabbar, da man vor dem Aufzeichnungsvorgang die Menge der eigentlich aufzuzeichnenden Daten nicht bestimmen kann. Aus diesem Grund wird ein Codemengen-Zuweiser 11 bereitgestellt, der die Menge der komprimierten Daten eines jeden Frames auf eine gewünschte und vorgeschriebene Bilddatenmenge oder weniger begrenzt. Um die Daten ohne Verschlechterung der Bildqualität zu komprimieren, wird in diesem Fall der Quantisierungskoeffizient für jeden Block abhängig von den eingegebenen digitalen Bilddaten verändert. Anders ausgedrückt ermittelt man einen Koeffizienten "a", der von einer Bildauflösung abhängt (d. h., der Bildschärfe oder dem Verhältnis der Hochfrequenzanteile zu allen Frequenzanteilen). Anschließend verändert man den Quantisierungskoeffizienten, indem man einen aus der Quantisierungstabelle 10 gelesenen Koeffizienten mit dem Koeffizienten "a" multipliziert. Die gestrichelt dargestellten Schaltungsblöcke 12 und 12c bilden jeweils einen adaptiven Quantisierer und eine Codierschaltung mit veränderlicher Länge.
- Es wird nun der Bitzuweisungsvorgang zum Festlegen der Bitrate beschrieben. In einem Blockaktivitätsberechner 7 wird eine Blockaktivität, die eine Bildauflösung in einer Blockeinheit darstellt, aus der Summe der Beträge der 63 Wechselgrößen-Koeffizienten berechnet, die in jedem Block enthalten sind, und über eine Frameverzögerungsschaltung 9 an den Frameaktivitätsberechner 8 sowie an den Codemengen- Zuweiser 11 angelegt. In ähnlicher Weise wie bei der Blockaktivität des Luminanzsignals Y wird auch eine Blockaktivität der Farbdifferenzsignale Cr und Cb in den Frameaktivitätsberechner 8 eingegeben.
- Der Frameaktivitätsberechner 8 akkumuliert die Blockaktivitäten YBact und CBact eines jeden Blocks in einer Frameperiode und berechnet die Frameaktivitäten YFact und CFact. Der Frameaktivitätsberechner 8 ermittelt ein Verhältnis der zuzuweisenden Codemengen für das Luminanzsignal Y und das Chrominanzsignal C abhängig von diesen beiden Frameaktivitäten YFact und CFact. Eine solche Frameaktivität stellt also eine Bildauflösung in einer Frameeinheit dar. Anschließend bestimmt man die entsprechenden Codemengen, (d. h. eine Datenmenge und eine Bitmenge) YFbit und CFbit, die man für das Luminanzsignal Y und das Chrominanzsignal C in einem Frame verwenden kann (im weiteren als Codezuweisungsmenge bezeichnet). Ferner wird eine mittlere Aktivität Aact für jeden Block dadurch berechnet, daß man die Codezuweisungsmengen YFbit und CFbit aufsummiert. Die mittlere Aktivität Aact wird in den Koeffizienten "a" umgewandelt. Dieser Koeffizient "a" wird in die Quantisierungstabelle 10 eingegeben, so daß sich der Quantisierungskoeffizient ändert.
- Die Blockaktivität YBact aus dem Blockaktivitätsberechner 7 wird in der Frameverzögerungsschaltung 9 zur Timingeinstellung um eine Zeitspanne verzögert, die der Berechnung der Frameaktivität YFact und der Bitzuweisungsberechnung entspricht, und in den Codemengen-Zuweiser 11 eingegeben. Die Codezuweisungsmenge YFbit und die Frameaktivität YFact werden ebenfalls in den Codemengen-Zuweiser 11 eingegeben. Der Codemengen-Zuweiser 11 berechnet abhängig von der Blockaktivität YBact, der Codezuweisungsmenge YFbit und der Frameaktivität YFact gemäß der folgenden Gleichung (1) eine Zuweisungsmenge der Codes YBbit, die man für jeden Block ver wenden kann.
- YBbit = YFbit · YBact/YFact... (1)
- Da die Endsummen der Codezuweisungsmenge YFbit und der Blockaktivität YBact in jedem Frame jeweils gleich der Codezuweisungsmenge YFbit und der Frameaktivität. YFact sind, kann man sie in diesem System auf eine vorbestimmte Codemenge für jede Frameeinheit begrenzen. Legt man das quantisierte Ausgangssignal des Quantisierers 5 an den Codierer 6 mit veränderlicher Länge 6 an und codiert es mit einem unterschiedlich langen Code, so sei angenommen, daß die Codezuweisungsmenge n2 Bit groß ist. Beträgt die tatsächliche Codemenge n1 Bit und gilt n1 < n2, d. h., daß die Menge der quantisierten Ausgabebits n1 kleiner ist als die n2 Bits, so wird als unterschiedlich lang codierte Datenmenge nur eine kleinere Datenmenge als die n2 Bits ausgegeben. Gilt n1 > n2, so werden die quantisierten Ausgangssignales alle als unterschiedlich lang codierte Daten ausgegeben. Auf diese Weise enthält der Codierer 6 mit veränderlicher Länge eine Bitbegrenzungs-Verarbeitungsschaltung (nicht dargestellt), die den Bitzuweisungsvorgang ausführt.
- Im herkömmlichen leistungsfähig codierenden Signalprozessor nach Fig. 1 wird wie beschrieben die Blockaktivität YBact und die Frameaktivität YFact mit Hilfe des momentanen Frames und seines Blocks berechnet. Die verwendbare Codemenge in jedem Block wird bestimmt, indem man die Codemenge, die in jedem Frame verwendbar ist, mit dem Verhältnis (Bact/Fact) aus Blockaktivität und Frameaktivität des momentanen Frames und seines Blocks multipliziert. Da man jedoch die Dauer eines Frames zum Berechnen der Frameaktivität Fact benötigt, ist der Framespeicher 4 erforderlich, um das Ausgangssignal der DCT-Schaltung 3 an den Quantisierer 5 anzulegen, nachdem das Ausgangssignal für eine Frameperiode verzögert wurde. Zusätzlich tritt das Problem auf, daß die Frameverzögerungsschaltung 9 zum Verzögern der Blockaktivität für eine Frameperiode erforderlich ist, um den Zuweisungsvorgang im Codemengenzuweiser 11 auszuführen.
- Da wie beschrieben die Frameaktivität Fact zum Berechnen der Codemenge erforderlich ist, die zum Festlegen der Bitrate zugewiesen wird, tritt beim herkömmlichen Signalprozessor mit leistungsfähiger Codierung die Schwierigkeit auf, daß zwei Verzögerungsschaltungen erforderlich sind, nämlich ein Framespeicher zum Verzögern der DCT-Koeffizienten für einen Frame um eine Periode, um die Frameaktivität Fact zu bestimmen, und einen weiteren Framespeicher zum Verzögern der Blockaktivität um eine Frameperiode, bis der Zuweisungsvorgang beginnt. Der Artikel "An Experimental Digital VCR with new DCT-based Bit-Rate Reduction System" von Yoneda et al., in den IEE Transactions on Consumer Electronics, vol. 37, No. 3, Aug. 91, pp 275-282, offenbart eine Video-Bildsignal-Codiervorrichtung, in der die Datenmengen, die einzelnen Bildatenblöcken zuzuweisen sind, abhängig von den Verhältnissen der Aktivitäten der Einzelblöcke zu einer Summe aufeinander folgender Blockaktivitäten bestimmt werden.
- EP-A-0444918 offenbart einen Bilddatenprozessor, bei dem die Quantisierschrittgröße abhängig von aufeinander folgenden Frames bestimmt wird, wobei der Unterschied zwischen einer vorhergesagten Codemenge (berechnet abhängig von einer Standard-Quantisierschrittgröße) und einer Soll-Codemenge eingeht.
- Erfindungsgemäß wird ein Signalprozessor zum Codieren von Bilddaten bereitgestellt, der Bilddaten codiert, die in einer Folge von Blöcken und Frames eingegeben werden, umfassend:
- eine Blockaktivitäts-Berechnungsvorrichtung zum Berechnen eines Blockaktivitätspegels, der zu einem Block gehört;
- eine Frameaktivitäts-Berechnungsvorrichtung zum Bestimmen eines Frameaktivitätspegels, der einem Frame zugewiesen wird, wobei der Block einen Teil des Frames bildet; und
- eine Codemengen-Zuweisevorrichtung, die dem Block eine Menge an Codedaten zuweist, die bestimmt ist durch die Gesamtmenge an verfügbaren Codedaten für den Frame und durch das Verhältnis des Blockaktivitätspegels zum Frameaktivitätspegel,
- dadurch gekennzeichnet, daß der bestimmte Frameaktivitätspegel, der einem Frame zuzuteilen ist, wenn man die einem Block zuzuweisende Codedatenmenge bestimmt, aus den Blockaktivitätspegeln abgeleitet wird, die 2u den Blöcken im vorhergehenden Frame gehören.
- Man versteht die Erfindung und vieler ihrer Vorteile besser, wenn man beispielhaft die beiliegenden Zeichnungen betrachtet.
- Es zeigt:
- Fig. 1 ein Blockdiagramm eines herkömmlichen Signalprozessors mit leistungsfähiger Codierung;
- Fig. 2 ein Blockdiagramm einer ersten Ausführungsform des erfindungsgemäßen Signalprozessors mit leistungsfähiger Codierung;
- Fig. 3 ein Flußdiagramm zum Erklären des adaptiven Sonderverfahrens;
- Fig. 4 ein erläuterndes Diagramm zum Erklären der Steuerung zum Festlegen der Bitrate im Codemengen-Zuweisungscontroller 24 nach Fig. 2;
- Fig. 5 ein Flußdiagramm zum Erklären der Steuerung zum Festlegen der Bitrate im Codemengen-Zuweisungscontroller 24 nach Fig. 2;
- Fig. 6 ein Flußdiagramm zum Erklären einer anderen Codemengenzuweisungs-Steuerschaltung des erfindungsgemäßen Signalprozessors mit leistungsfähiger Codierung:
- Fig. 7 ein Flußdiagramm zum Erklären der Arbeitsweise der anderen Codemengenzuweisungs-Steuerschaltung nach Fig. 6; und
- Fig. 8 ein Blockdiagramm einer zweiten Ausführungsform des erfindungsgemäßen Signalprozessors mit leistungsfähiger Codierung.
- Die Erfindung wird nun ausführlich mit Bezug auf Fig. 2 bis 8 beschrieben. In den Zeichnungen werden zum Vereinfachen der Erklärung die in Fig. 1 verwenden Bezugszeichen dazu benutzt, gleiche oder äquivalente Bauteile zu bezeichnen.
- Mit Bezug auf Fig. 2 bis 7 wird nun eine erste Ausführungsform des erfindungsgemäßen Signalprozessors mit leistungsfähiger Codierung ausführlich beschrieben.
- Die erste Ausführungsform des Signalprozessors mit leistungsfähiger Codierung ist so aufgebaut, daß in ihr eine aus dem momentanen Frame berechnete Frameaktivität verwendet wird. Die Blockaktivität berechnet man aus einem Block in einem vorhergehenden Frame und nicht aus einem Block aus dem momentanen Frame. Dies ist im weiteren ausführlich beschrieben.
- In Fig. 2 wird ein Luminanzsignal in einer Blockeinheit von 8 · 8 Pixel in eine DCT-Schaltung 3 eingegeben. Ein Multiplexsignal aus zwei Farbdifferenzsignalen Cr und Cb wird in eine weitere DCT-Schaltung 3c eingegeben. Die DCT-Schaltung 3 gibt über eine orthogonale Transformation die DCT-Koeffizienten des Luminanzsignals Y an eine Verzögerungsschaltung 21 und einen Blockaktivitätsberechner 7 aus. Die Verzögerungsschaltung 21 verzögert die DCT-Koeffizienten des Luminanzsignals Y um die Periodendauer einiger Blöcke, die zum Berechnen der zuzuweisenden Codemengen (dies ist im folgenden beschrieben) und für den Zickzack-Durchlauf benötigt wird, so daß die höheren Frequenzanteile beginnend bei den Gleichanteilkomponenten in waagrechter und senkrechter Richtung der Reihe nach an einen Quantisierer 5 ausgegeben werden. Der Quantisierer 5 gibt die DCT-Koeffizienten mit einer verringerten Bitrate aus, indem er sie abhängig von dem Quantisierungskoeffizienten aus einer Quantisierungstabelle 10 quantisiert.
- Der Blockaktivitätsberechner 7 berechnet eine Blockaktivität YBact, die eine Informationsmenge (nämlich eine Schärfeninformation) zu jedem Block des momentanen Frames darstellt, und zwar für jeden Block, in den die Blockaktivität YBact einzugeben ist. Die Blockaktivität YBact wird an einen Frameaktivitätsberechner 20 und einen Codemengenzuweiser 11 ausgegeben. In den Frameaktivitätsberechner 20 wird auch eine Blockaktivität CBact aus dem Farbdifferenzsignal- System eingegeben. Damit berechnet der Frameaktivitätsberechner 20 die momentanen Frameaktivitäten YFact und CFact des Luminanzsignals Y und des Chrominanzsignals C, indem er die Blockaktivitäten YBact und CBact für eins Frameperiode aufsummiert. Zum Zeitpunkt des Frameendes gibt sie der Frameaktivitätsberechner 20 an eine Vorhersageschaltung 22 aus.
- Die Vorhersageschaltung 22 kann eine Schaltung enthalten, die logische und numerische Verarbeitungen ausführen kann, beispielsweise einen Mikrocomputer oder einen DSP (digitalen Signalprozessor). Die Vorhersageschaltung 22 sagt die Frameaktivität für den nächsten Frame voraus. In diesem Fall führt die Vorhersageschaltung 22 die Vorhersage getrennt für das Luminanzsignal Y und das Chrominanzsignal C aus. Die folgenden Größen sind für die Vorhersage in der Vorhersageschaltung 22 ausgewählt verfügbar:
- a. Größte Aktivität im momentanen Aufzeichnungsmodus;
- b. Größte Aktivität in den letzten m Frames;
- c. Aktivität im letzten Frame;
- d. Durch eine Näherung für die letzten n Frames vorhergesagte Aktivität; und
- e. Andere verfügbare Aktivitäten.
- Unter diesen fünf Größen macht die Größe (c) die Vorhersage am einfachsten. Die Größe (a) verwendet man beim Verarbeiten nach dem Eintritt in den momentanen Aufzeichnungsmodus. Diese Größe (a) ist für die Vorhersage wirksam, wenn mit einer Kamera Bilder aufgenommen werden, die keine Szenenänderungen enthalten (d. h. Bilder mit geringer Aktivitätsänderung). Ein Beispiel für die Größe (d) kann man durch die Näherung erster Ordnung nach Gleichung (2) angeben:
- Fact0 = Fact-1 + (Fact-1 - Fact-2).... (2)
- Als Verfahren, das die obigen Größen ausgewählt verwendet, kann man wie folgt verschiedene Systeme betrachten:
- (1) Ein Vorgehen, bei dem man eine beliebige Größe im voraus an eine der Größen bindet (Bindungssystem);
- (2) Ein Vorgehen, bei dem man adaptiv eine bestgeeignete Größe auswählt, und Frameaktivitäten, die aus jedem Frame bestimmt werden (adaptives System); und
- (3) Ein Vorgehen, bei dem man eine besondere Routine zum Auswählen der größten Größe verwendet, falls eine vorhergesagte Frameaktivität geringer ist als eine tatsächliche Aktivität (ein Fall, bei dem die später beschriebene Codemengenzuweisungs-Steuerschaltung einsetzbar ist) (adaptives Sondersystem).
- Im System (2) kann sich das Vorhersageverfahren in jedem Frame ändern. Fig. 3 zeigt ein Flußdiagramm zum Erklären des adaptiven Sondersystems (3).
- Derzeit beginnt der Vorhersagevorgang für den Frame (K + 1), d. h. den folgenden Frame, im Frame K. Zuerst nimmt man im Schritt S1 in Fig. 3 die Frameaktivität des vorhergehenden Frames (Frame K - 1) und gibt sie als vorhergesagte Aktivität A0 aus. Im Schritt S2 aktualisiert man die größte Frameaktivität im momentanen Aufzeichnungsmodus. Ist die Frameaktivität im Schritt S1 die größte Frameaktivität im momentanen Aufzeichnungsmodus, so speichert man die vorhergesagte Aktivität A1 durch das Aktualisieren der vorherge sagten Aktivität A0.
- Im Schritt S3 wird die größte Aktivität der letzten m Frameaktivitäten aktualisiert und als vorhergesagte Aktivität A2 gespeichert. Im Schritt S4 sagt man die vorhergesagte Aktivität A3 durch eine Näherungsrechnung voraus, die auf den Aktivitäten der letzten n Frames beruht.
- Dagegen bestimmt man im Schritt S6 die Blockaktivität Bact des momentanen Frames K abhängig von dieser Blockaktivität Bact. Im Schritt S7 berechnet man die größte vorhergesagte Aktivität aus den vorhergesagten Aktivitäten A0 bis A3 (Frameaktivitäten für den Frame K vorhergesagt abhängig von der Aktivität des Frames K - 1) und die Aktivität Fact des momentanen Frames (Frame K). Im Schritt S8 wird geprüft, ob die Codemengen-Zuweisungscontroller 24 und 24c während des Frames K betrieben wurden. Ist die größte vorhergesagte Aktivität, die im Schritt S7 vorhergesagt wurde, größer als die momentane Frameaktivität Fact, so geht der Ablauf vom Schritt S8 zum Schritt S10. Ist die größte vorhergesagte Aktivität kleiner als die momentane Frameaktivität Fact, so geht der Ablauf vom Schritt S8 zum Schritt S9 und zum größten Wert unter den vorhergesagten Aktivitäten A0 bis A3 und der momentanen Frameaktivität Fact. Im Schritt S10 wird die Frameaktivität des nächsten Frames abhängig von den Anweisungen des Vorhersageverfahrens vorhergesagt. Auf diese Weise bestimmt man die folgenden Frameaktivitäten YFact' und CFact'.
- Die Frameaktivität YFact' des vorhergesagten nächsten Frames, d. h. des Frames K + 1, wird an den Quantisierungskoeffizientenberechner 23, den Codemengenzuweiser 11 und einen weiteren Codemengenzuweiser 11c angelegt. Der Quantisierungskoeffizientenberechner 23 berechnet den Koeffizienten a, der von dem Frameaktivitätsberechner 8 aus Fig. 1 bestimmt worden ist, und den Koeffizienten a aus der nächsten Frameaktivität YFact', und gibt ihn an die Quantisierungstabelle 10 aus. Die Berechnung der Codemengen, die dem Luminanzsignal Y und dem Chrominanzsignal C zuzuweisen sind, und die in Fig. 1 der Frameaktivitätsberechner 8 ausgeführt hat, erfolgt nun durch die Vorhersageschaltung 22. D. h., die Vorhersageschaltung 22 sagt YBbit' und CFbit' vorher, die Zuweisungsbitmengen des Luminanzsignals Y und des Farbdifferenzsignals C, die im nächsten Frame verwendbar sind.
- Diese nächste Frameaktivität YFact' und nächste Zuweisungsbitmenge YBbit' werden in den Codemengrenzuweiser 11 eingegeben. Nach dem Empfang des Koeffizienten a aus dem Quantisierungskoeffizientenberechner 23 ändert die Quantisierungstabelle 10 die gespeicherten Daten abhängig vom Koeffizienten a und gibt einen Quantisierungskoeffizienten an den Quantisierer 5 und einen weiteren Quantisierer 5c aus.
- Die momentane Frameblockaktivität YBact, die vorhergesagte nächste Frameaktivität YFact' und die nächste Framezuweisungs-Bitmenge YFbit' werden in den Codemengenzuweiser 11 eingegeben, der die Codezuweisungsmengen YBbit' für jeden Block durch die Berechnung gemäß der folgenden Gleichung (3) vorhersagt:
- YBbit' = YFbit' · YBact/YFact'.... (3)
- Die gleiche Berechnung wird auch für das Chrominanzsignal C ausgeführt.
- Gilt der folgende Ausdruck (4), so gilt YFbit + CFbit = YFbit' + CFbit' = const, und damit wird die Codemenge unter eine vorbestimmte Codemenge gedrückt.
- EBbit' = YFact ≤ YFact... (4)
- Gilt jedoch die folgende Gleichung (5), so wird in Gleichung (3) der Zähler größer als der Nenner, und die Codemengen in einem Codierer 6 mit veränderlicher Länge können eine vorbestimmte Codemenge übersteigen.
- EBact = YFact > YFact... (5)
- Damit steuert in dieser Ausführungsform der Codemengen- Zuweisungscontroller 24 den Codemengenzuweiser 11. Ist die vorhergesagte Frameaktivität kleiner als die momentane Frameaktivität, und können die verwendeten Codemengen einen vorbestimmten Wert übersteigen, so korrigiert der Codemengen-Zuweisungscontroller 24 die Berechnung der gemäß Gleichung (3) zuzuweisenden Codemengen, damit die Codierung bis zum letzten Block möglich ist, ohne daß die Codemengen einen vorbestimmten Wert erreichen dürfen.
- Das erklärende Diagramm in Fig. 4 und das Flußdiagramm in Fig. 5 dienen zum Erklären der Steuerung des Festlegens der Bitrate gemäß dem Codemengen-Zuweisungscontroller 24.
- Ein Frame besteht beispielsweise aus 525 · 910 Pixeln, siehe Fig. 4(a). Von diesen Pixeln werden 480 · 768 wirksame Pixel in 8 · 8-Blöcke unterteilt, d. h. 96 Blöcke in waagrechter Richtung und 60 Blöcke in senkrechter Richtung. Die Position eines jeden Blocks in waagrechter Richtung nennt man Blockzeile. Der Codemengen-Zuweisungscontroller 24 gibt die Codezuweisungsmenge für jeden Block über den Codemengenzuweiser 11 bis zur Blockzeile k direkt an den Codierer 6 mit veränderlicher Länge.
- Im Schritt S11 in Fig. 5 wird also festgestellt, ob die Blockzeile k erreicht ist. Wird k beispielsweise auf 58 eingestellt, so wird die Codierung mit veränderlicher Länge aufgrund der vom Codemengenzuweiser 11 zugewiesenen Codemengen bis zur Blockzeile 58 ausgeführt. Nach dem Erreichen der Blockzeile 58 im Schritt S12 wird die gesamte verwendete Codemenge Ybit1 (Aktivität YFact1) bis zur Blockzeile berechnet. Im Schritt S13 wird die tatsächlich verbleibende Codemenge berechnet. D. h., es wird der Vorgang Ybit - Ybit1 (oder YFact - YFact1) ausgeführt.
- Im Schritt S14 wird die Differenz zwischen der Aktivität des vorhergehenden Frames und der tatsächlichen Codemenge zur verbleibenden Codemenge addiert. Diese Addition erfolgt nur, wenn der Codemengen-Zuweisungscontroller 24 im vorhergehenden Frame nicht gearbeitet hat. Im Schritt S15 wird das Ergebnis dieser Addition jedem Block gleichförmig zugewiesen. Im Schritt S16 wird die Ausgabe des Codemengenzuweisers 11 angehalten und der Codierer 6 mit veränderlicher Länge wird abhängig vom Ergebnis im Schritt S15 gesteuert. Anders ausgedrückt steuert der Codemengen-Zuweisungscontroller 24 die Codemengen für jeden Block in den Blockzeilen 59 und 60, siehe Fig. 4(b). Damit wird die verbleibende Codemenge gleichmäßig jedem der verbleibenden zwei Blöcke zugewiesen, und die endgültige Codemenge nimmt den Wert Ybit (YFact') an.
- Da der Codemengenzuweiser 11 und der Codemengen-Zuweisungscontroller 24 die Codemenge begrenzen, codiert der Codierer 6 mit veränderlicher Länge das quantisierte Ausgangssignal des Quantisierers 5 mit Huffman-Codes und gibt es an eine Verdichterschaltung 25 aus. Anders ausgedrückt gibt der Quantisierer 5 eine Datenfolge von den Niederfrequenzanteilen bis zu den Hochfrequenzanteilen aus. Diese Datenfolge wird in eine Datenfolge umgewandelt, die aus einer Menge aufeinanderfolgender Nullen (im weiteren mit Nullfolge bezeichnet) der quantisierten Ausgabedaten besteht, wobei eine Codelänge von null verschiedener Werte (im weiteren als von null verschiedener Koeffizient bezeichnet) nach den Nullen und dem Datenbefehl des von null verschiedenen Koeffizienten auftritt. Der Codierer 6 mit veränderlicher Länge besitzt eine zweidimensionale Huffmantabelle, deren Adresse von einer Kombination aus der Nullfolge und der Codelänge des von null verschiedenen Koeffizienten des quantisierten Ausgangssignals bezeichnet wird. Die Huffmantabelle speichert Codes mit einer geringeren Bitmenge für die Adressen, die von Daten bezeichnet werden, die eine hohe statistische Erzeugungswahrscheinlichkeit haben. Das Codieren als Huffmancode erfolgt in dieser Weise und weist Daten kürzere Bitlängen zu, die eine große Auftrittswahrscheinlichkeit haben, und längere Bitlängen an Daten, die eine geringe Auftrittswahrscheinlichkeit haben. Die zu übertragende Datenmenge wird damit weiter verringert. Nach der Huffmancodierung des quantisierten Ausgangssignals gibt der Codierer 6 mit veränderlicher Länge einen Datencode des von null verschiedenen Koeffizienten aus und addiert ihn zum Huffmancode.
- Der Aufbau der DCT-Schaltung 3c, der Verzögerungsschaltung 21c, des Quantisierers 5c, des Codemengenzuweisers 11c, des Codemengen-Zuweisungscontrollers 24c und des Codierers 6c mit veränderlicher Länge des Systems für das Chrominanzsignal C gleicht jeweils dem Aufbau der DCT-Schaltung 3, der Verzögerungsschaltung 21, des Quantisierers 5, des Codemengenzuweisers 11, des Codemengen-Zuweisungscontrollers 24 und des Codierers 6 mit veränderlicher Länge des Systems für das Luminanzsignal Y. Die Verdichterschaltung 25 gibt durch Multiplexen mit veränderlicher Länge codierte Daten des Luminanzsignals Y und des Farbdifferenzsignals aus.
- Es wird nun die Arbeitsweise der Ausführungsform in der beschriebenen Anordnung erklärt. Es wird nur die Arbeitsweise des Luminanzsignalsystems erklärt, da das Farbdifferenzsignal-System und das Luminanzsignalsystem in gleicher Weise arbeiten.
- Der DCT-Koeffizient aus der DCT-Schaltung 3 wird nach der Verzögerung um einige Blöcke in der Verzögerungsschaltung 21 an den Quantisierer 5 angelegt. Nach der Quantisierung mit dem Quantisierungskoeffizienten aus der Quantisierungstabelle wird er an den Codierer 6 mit veränderlicher Länge angelegt.
- Der DCT-Koeffizient wird auch in den Blockaktivitätsberechner 7 eingegeben. Dieser Blockaktivitätsberechner 7 berechnet die momentane Frameblockaktivität, die bereits eingegeben wurde, und gibt sie an den Frameaktivitätsberechner 20 aus. Der Frameaktivitätsberechner 20 wird mit den Blockaktivitäten YBact und CBact aus dem Blockaktivitätsberechner 7 bzw. einem weiteren Blockaktivitätsberechner 7c versorgt und berechnet die Frameaktivität YFact des momentanen Frames, die er an die Vorhersageschaltung 22 ausgibt, wenn der Frame zu Ende ist.
- Die Vorhersageschaltung 22 sagt die nächste Frameaktivität YFact' gemäß irgendeiner der unterschiedlichen beschriebenen Verfahren voraus. Die vorhergesagte Frameaktivität YFact' wird an den Quantisierungskoeffizientenberechner 23 und den Codemengenzuweiser 11 angelegt. Der Quantisierungskoeffizientenberechner 23 berechnet den Koeffizienten a aus der vorhergesagten Frameaktivität YFact' und gibt ihn in die Quantisierungstabelle 10 ein. Die Quantisierungstabelle 10 bildet abhängig von diesem Koeffizienten a einen Quantisierungskoeffizienten und gibt ihn in den Quantisierer 5 ein. In den Codemengenzuweiser 11 wird auch die Blockaktivität YBact aus dem Blockaktivitätsberechner 7 eingegeben. Der Codemengenzuweiser 11 berechnet die Codezuweisungsmenge YF- bit' des Luminanzsignals Y durch die Verarbeitung gemäß Gleichung (3) und gibt sie an den Codierer 6 mit veränderlicher Länge aus.
- Der Codierer 6 mit veränderlicher Länge codiert das quantisierte Ausgangssignal abhängig von der vorhergesagten Codezuweisungsmenge YFbit' des nächsten Frames. Eine Codierung mit veränderlicher Länge ist dadurch möglich, ohne einen DCT-Koeffizienten um eine Bildperiode zu verzögern.
- Gilt die Gleichung (4), d. h., ist die vorhergesagte Frameaktivität größer als die momentane Frameaktivität, so begrenzt der Codierer 6 mit veränderlicher Länge die Codemenge nur durch die Codezuweisungsmenge YFbit' abhängig von der Verarbeitung der genannten Gleichung (3) im Codemengenzuweiser 11. In diesem Fall bleibt die Gesamtcodemenge nach der Codierung innerhalb einer vorbestimmten Codemenge.
- Es sei nun angenommen, daß die vorhergesagte Frameaktivität YFbit' kleiner ist als die tatsächliche Frameaktivität. Verwendet man in diesem Fall die Codezuweisungsmenge abhängig von der Verarbeitung im Codemengenzuweiser 11, so kann die Gesamtcodemenge die wirklich verfügbare Codemenge übersteigen.
- Daher begrenzt der Codemengen-Zuweisungscontroller 24 die durch die Arbeit des Codemengenzuweisers 11 zugewiesene Codemenge bis zur Blockzeile k, siehe den Schritt S11 in Fig. 5. Ist die Blockzeile k erreicht, so wird im Schritt S12 und S13 die tatsächlich verbleibende Codemenge aus der gesamten aufsummierten Codemenge berechnet, die bis zur Blockzeile k verwendet worden ist. Nun weist der Codemengen- Zuweisungscontroller 24 im Schritt S14 und S15 diese verbleibende Codemenge oder einen zusätzlichen Wert zur verbleibenden Codemenge und überschüssige Bitmengen vom vorhergehenden Frame den restlichen Blöcken gleichmäßig zu. Im Schritt S16 wird der Codemengenzuweiser 11 angehalten, und die im Schritt S15 bestimmte Codezuweisungsmenge wird an den Codierer 6 mit veränderlicher Länge angelegt. Damit kann man verhindern, daß die Gesamtcodemenge des Codierers 6 mit veränderlicher Länge die wirklich verfügbare Codemenge übersteigt.
- In dieser Ausführungsform wird die Bitzuweisung wie beschrieben dadurch ausgeführt, daß man die momentane Frameblockaktivität und die vorhergesagte Frameaktivität verwendet. Die Codierung ohne den Einsatz eines Verzögerungsspei chers ist möglich. Zudem können die Codemengen-Zuweisungscontroller 24 und 24c den Bitraten-Festlegungsvorgang ausführen, und die Bildqualität des wiedergegebenen Bilds verschlechtert sich nicht.
- Fig. 6 zeigt ein Flußdiagramm zum Erklären einer weiteren Ausführungsform der Codemengenzuweisungs-Steuerschaltung des erfindungsgemäßen Signalprozessors mit leistungsfähiger Codierung.
- Die erfindungsgemäße Codemengenzuweisungs-Steuerschaltung gemäß dieser Ausführungsform führt die Steuerung des Bitraten-Festlegungsvorgangs aus, die im Flußdiagramm nach Fig. 6 dargestellt ist.
- Im Schritt S21 in Fig. 6 wird zuerst untersucht, ob die Blockzeile s erreicht ist. Fig. 7 zeigt, daß s auf 55 gesetzt ist. Die Blockaktivität nach der Blockzeile 55 des vorhergehenden Frames habe den Wert Fact2, und die Codemenge sei Fbit2, siehe Fig. 7(a). Die Blockaktivität bis zur Blockzeile 55 betrage Fbit1, siehe Fig. 7(b).
- Ist die Blockzeile s (d. h. die Blockzeile 55) erreicht, so werden im Schritt S22 die Frameaktivität Fact1 des momentanen Frames und die Frameaktivität Fact2 des vorhergehenden Frames aufaddiert. Diese Summe wird mit der vorhergesagten Frameaktivität Fact' verglichen. Ist die Summe kleiner als die vorhergesagte Frameaktivität Fact', so geht die Verarbeitung im Schritt S24 mit dem nächsten Block weiter.
- Ist dagegen die Summe größer als die vorhergesagte Frameaktivität Fact', so geht die Verarbeitung mit dem Schritt S24 weiter. Die Codezuweisungsmenge für jeden Block, die der Codemengenzuweiser 11 bestimmt, wird um eine vorgeschriebene Bitzahl verringert. Im Schritt S25 wird die Aktivität für die verminderte Codemenge zum Gebrauch beim Berechnen des nächsten Blocks bestimmt. Der Vorgang geht dann im Schritt S26 zum nächsten Block.
- Unter Verwendung der vorhergehenden Frameaktivität Fact nach der Blockzeile s und der Frameaktivität bis zur Blockzeile s des momentanen Frames wird geprüft, ob die Codemenge für jede Blockzeile nach der Blockzeile 56 auf weniger als die Codemenge des vorhergehenden Frames begrenzt ist. Wird die Codezuweisungsmenge YFbit (YFact') überschritten, so wird die Gesamtcodemenge so begrenzt, daß sie die wirklich verfügbare Codemenge nicht übersteigt, indem man die Codemengen-Zuweiseschaltung so steuert, daß sie die Codezuweisungsmenge für jeden Block um eine vorbestimmte Größe verringert.
- Zum Vergleich im Schritt S22 kann man eine überschüssige Bitmenge des vorhergehenden Frames oder die Aktivität entsprechend der überschüssigen Bitmenge nach einer Korrektur verwenden.
- Fig. 8 zeigt ein Blockdiagramm einer weiteren Ausführungsform der Erfindung. In Fig. 8 sind die gleichen Komponenten wie in Fig. 2 mit den gleichen Bezugszeichen und Symbolen bezeichnet; sie werden nicht mehr erklärt.
- Diese Ausführungsform unterscheidet sich von der in Fig. 2 gezeigten ersten Ausführungsform dadurch, daß sie so aufgebaut ist, daß sie eine Frameaktivität und eine Blockaktivität verwendet, die beide aus einem vorhergehenden Frame berechnet wurden. Der Schaltungsaufbau unterscheidet sich von Fig. 2 dadurch, daß der Frameaktivitätsberechner 8 anstelle des Frameaktivitätsberechners 20 dazu verwendet wird, die Vorhersageschaltung 22, die Quantisierungskoeffizienten- Berechnungsschaltung 23 und die Codemengen-Zuweisungscontroller 24 und 24c zu entfernen. Dafür sind neue Frameverzö gerungsschaltungen 9 und 9c bereitgestellt, siehe Fig. 1.
- In den Ausführungsformen gemäß der obigen Beschreibung bestimmen die Codemengenzuweiser 11 und 11c die zuzuweisenden Codemengen mit Hilfe der Blockaktivitäten und der Frameaktivitäten des vorhergehenden Frames. Damit kann man zumindest einen Framespeicher überflüssig machen, der in den herkömmlichen Prozessoren erforderlich ist. Da EBact (Gesamtsumme der Blockaktivitäten des vorhergehenden Frames) = Fact (Frameaktivität des vorhergehenden Frames) gilt, kann man auch in diesem Fall die Gesamtcodemenge auf eine vorbestimmte Bitrate reduzieren. Enthält das Bild zudem sich relativ langsam bewegende Muster, ist eine ausreichende Bildqualität des wiedergegebenen Bilds sichergesteilt.
- In der Erfindung sagt die Frameaktivitäts-Vorhersagevorrichtung eine Frameaktivität mit Hilfe früherer Frameaktivitäten vorher, die durch Berechnungen für vorhergehende Frames bestimmt wurden. Die Codemengen-Zuweisevorrichtung berechnet aus der Blockaktivität und der Frameaktivität eine für jeden Block zuzuweisende Codemenge. Ist die vorhergesagte Frameaktivität kleiner als die tatsächliche Aktivität, so wird die Codemenge, die die Codemengen-Zuweisevorrichtung zuweisen muß, größer als ein vorbestimmter Wert. In diesem Fall steuert die Codemengenzuweisungs-Steuerschaltung die zuzuweisende Codemenge so, daß die Gesamtcodemenge einen vorbestimmten Wert nicht übersteigt, während sie die Codemenge für eine Frameperiode überwacht.
- Die Erfindung kann wie beschrieben einen ganz besonders zu bevorzugenden Signalprozessor mit leistungsfähiger Codierung bereitstellen.
Claims (8)
1. Signalprozessor zum Codieren von Videobildern, der
Bilddaten codiert, die in einer Folge von Blöcken und
Frames eingegeben werden, umfassend:
eine Blockaktivitäts-Berechnungsvorrichtung (7,
7c) zum Berechnen eines Blockaktivitätspegels, der zu
einem Block gehört;
eine Frameaktivitäts-Berechnungsvorrichtung (8;
20, 22) zum Bestimmen eines Frameaktivitätspegels, der
einem Frame zugewiesen wird, wobei der Block einen Teil
des Frames bildet; und
eine Codemengen-Zuweisevorrichtung (11, 11c), die
dem Block eine Menge an Codedaten zuweist, die bestimmt
ist durch die Gesamtmenge an verfügbaren Codedaten für
den Frame und durch das Verhältnis des
Blockaktivitätspegels zum Frameaktivitätspegel,
dadurch gekennzeichnet, daß der bestimmte
Frameaktivitätspegel, der einem Frame zuzuteilen ist, wenn man
die einem Block zuzuweisende Codedatenmenge bestimmt,
aus den Blockaktivitätspegeln abgeleitet wird, die zu
den Blöcken im vorhergehenden Frame gehören.
2. Prozessor nach Anspruch 1, wobei die Bilddaten ein
Luminanzsignal und ein Farbdifferenzsignal enthalten.
3. Prozessor nach Anspruch 1 oder 2, wobei die
Blockaktivitäts-Berechnungsvorrichtung die Informationsmenge
berechnet, die in jedem Block enthalten ist.
4. Prozessor nach irgendeinem vorhergehenden Anspruch,
wobei die Frameaktivitäts-Berechnungsvorrichtung eine
Vorhersageschaltung (22) enthält, die die Aktivität des
nächsten Frames und eine Informationssignal-Bitmenge
vorhersagt, die beim nächsten Frame zu verwenden ist.
5. Prozessor nach irgendeinem vorhergehenden Anspruch,
zudem umfassend einen Quantisierer (5, 5c), der die
Bitrate der Informationsblocks vor dem Codieren
vermindert.
6. Prozessor nach Anspruch 5, wobei der Quantisierer die
Bitrate abhängig von dem berechneten
Frameaktivitätspegel der Frameaktivitäts-Berechnungsvorrichtung
vermindert.
7. Prozessor nach irgendeinem vorhergehenden Anspruch,
ferner umfassend eine Codiervorrichtung, die die
Bilddaten in Huffman-Codes umsetzt.
8. Prozessor nach irgendeinem vorhergehenden Anspruch,
wobei der bestimmte Frameaktivitätspegel, der einem Frame
zugewiesen ist, die Summe aus den Blockaktivitätspegeln
ist, die zu den. Blöcken vor einem vorbestimmten Punkt
in dem Frame gehören, und den Blockaktivitätspegeln,
die zu den Blöcken nach dem vorbestimmten Punkt im
unmittelbar vorausgehenden Frame gehören.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3253709A JPH0595536A (ja) | 1991-10-01 | 1991-10-01 | 高能率符号化信号処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69227970D1 DE69227970D1 (de) | 1999-02-04 |
DE69227970T2 true DE69227970T2 (de) | 1999-05-12 |
Family
ID=17255062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69227970T Expired - Fee Related DE69227970T2 (de) | 1991-10-01 | 1992-10-01 | Signalprozessor zur Kodierung |
Country Status (5)
Country | Link |
---|---|
US (1) | US5337049A (de) |
EP (1) | EP0535960B1 (de) |
JP (1) | JPH0595536A (de) |
KR (1) | KR960008465B1 (de) |
DE (1) | DE69227970T2 (de) |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2921879B2 (ja) * | 1989-09-29 | 1999-07-19 | 株式会社東芝 | 画像データ処理装置 |
US5640208A (en) * | 1991-06-27 | 1997-06-17 | Sony Corporation | Video signal encoding in accordance with stored parameters |
JP3348310B2 (ja) * | 1992-09-28 | 2002-11-20 | ソニー株式会社 | 動画像符号化方法および動画像符号化装置 |
US5748245A (en) | 1993-03-29 | 1998-05-05 | Canon Kabushiki Kaisha | Encoding apparatus for encoding input information data while controlling a code quantity of encoded information data |
US5703646A (en) * | 1993-04-09 | 1997-12-30 | Sony Corporation | Picture encoding method, picture encoding apparatus and picture recording medium |
EP0645930B1 (de) | 1993-04-09 | 2000-06-14 | Sony Corporation | Verfahren und vorrichtung zur bildkodierung |
JP2518524B2 (ja) * | 1993-06-21 | 1996-07-24 | 日本電気株式会社 | 画像デ―タの圧縮/伸長方法 |
US5321522A (en) * | 1993-07-19 | 1994-06-14 | Xerox Corporation | ADCT compression with minimum compression ratio |
FR2711879B1 (fr) * | 1993-10-22 | 1995-12-15 | Thomson Csf | Procédé et dispositif de codage inter-trame avec régulation de débit pour l'enregistrement d'images sur magnétoscope. |
JPH07143487A (ja) * | 1993-11-17 | 1995-06-02 | Canon Inc | 画像符号化装置 |
EP0660619A1 (de) * | 1993-12-22 | 1995-06-28 | Laboratoires D'electronique Philips S.A.S. | Verfahren zur variablen Längenkodierung von Bildern und Vorrichtung zur Ausführung eines solchen Verfahrens |
KR0183688B1 (ko) * | 1994-01-12 | 1999-05-01 | 김광호 | 영상부호화방법 및 장치 |
FR2717029A1 (fr) * | 1994-03-02 | 1995-09-08 | Philips Laboratoire Electroniq | Procédé et dispositif de codage à longueur variable de signaux numériques. |
EP0670663A1 (de) * | 1994-03-02 | 1995-09-06 | Laboratoires D'electronique Philips S.A.S. | Verfahren und Vorrichtung zur Kodierung von eine Bildsequenz darstellenden digitalen signalen |
EP0683613A3 (de) * | 1994-05-20 | 1997-01-29 | At & T Corp | Datennachrichtenspeicherung und Übertragung unter Verwendung eines Bildtelefons und einer Chipkarte. |
KR100307618B1 (ko) * | 1994-05-31 | 2001-11-30 | 윤종용 | 영상부호화방법및장치 |
US5627601A (en) * | 1994-11-30 | 1997-05-06 | National Semiconductor Corporation | Motion estimation with bit rate criterion |
JPH08171384A (ja) * | 1994-12-16 | 1996-07-02 | Canon Inc | 走査変換方法及びその装置 |
KR0139164B1 (ko) * | 1994-12-19 | 1998-06-01 | 김광호 | 적응적 직교변환부호화 장치 |
US5841476A (en) * | 1995-03-03 | 1998-11-24 | Kokusai Denshin Denwa Co. Ltd. | Coding apparatus for encoding motion picture |
US5694170A (en) * | 1995-04-06 | 1997-12-02 | International Business Machines Corporation | Video compression using multiple computing agents |
JP2907063B2 (ja) * | 1995-05-24 | 1999-06-21 | 日本ビクター株式会社 | 総符号量制御を行なう動画像符号化装置 |
US5953456A (en) * | 1995-09-05 | 1999-09-14 | Canon Kabushiki Kaisha | Recording apparatus for repetitively recording image data of same frame and reproducing apparatus |
US5926222A (en) * | 1995-09-28 | 1999-07-20 | Intel Corporation | Bitrate estimator for selecting quantization levels for image encoding |
JP3788823B2 (ja) | 1995-10-27 | 2006-06-21 | 株式会社東芝 | 動画像符号化装置および動画像復号化装置 |
GB2306832B (en) * | 1995-10-30 | 2000-03-29 | Sony Uk Ltd | Image activity in video compression |
US5878166A (en) * | 1995-12-26 | 1999-03-02 | C-Cube Microsystems | Field frame macroblock encoding decision |
US5872598A (en) * | 1995-12-26 | 1999-02-16 | C-Cube Microsystems | Scene change detection using quantization scale factor rate control |
US6314140B1 (en) * | 1995-12-28 | 2001-11-06 | Lucent Technologies Inc. | Dynamic video focus control |
US6337879B1 (en) | 1996-08-14 | 2002-01-08 | Sony Corporation | Video data compression apparatus and method of same |
KR100346740B1 (ko) * | 1996-09-21 | 2002-09-18 | 삼성전자 주식회사 | 이산코사인변환계수예측방법 |
GB2318472B (en) * | 1996-10-09 | 2000-11-15 | Sony Uk Ltd | Processing encoded signals |
CA2264834C (en) | 1997-07-08 | 2006-11-07 | Sony Corporation | Video data encoder, video data encoding method, video data transmitter, and video data recording medium |
US6407972B1 (en) * | 1999-10-20 | 2002-06-18 | Sony Corporation | Editing apparatus and editing method |
US6661927B1 (en) * | 2000-07-27 | 2003-12-09 | Motorola, Inc. | System and method for efficiently encoding an image by prioritizing groups of spatially correlated coefficients based on an activity measure |
US7042943B2 (en) | 2002-11-08 | 2006-05-09 | Apple Computer, Inc. | Method and apparatus for control of rate-distortion tradeoff by mode selection in video encoders |
US8406293B2 (en) | 2004-06-27 | 2013-03-26 | Apple Inc. | Multi-pass video encoding based on different quantization parameters |
US8005139B2 (en) | 2004-06-27 | 2011-08-23 | Apple Inc. | Encoding with visual masking |
US8208536B2 (en) * | 2005-04-28 | 2012-06-26 | Apple Inc. | Method and apparatus for encoding using single pass rate controller |
US9445110B2 (en) | 2007-09-28 | 2016-09-13 | Dolby Laboratories Licensing Corporation | Video compression and transmission techniques |
JP5502336B2 (ja) * | 2009-02-06 | 2014-05-28 | パナソニック株式会社 | 映像信号符号化装置及び、映像信号符号化方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4943855A (en) * | 1988-07-22 | 1990-07-24 | At&T Bell Laboratories | Progressive sub-band image coding system |
US4984076A (en) * | 1988-07-27 | 1991-01-08 | Kabushiki Kaisha Toshiba | Image compression coding system |
JP2552350B2 (ja) * | 1988-12-14 | 1996-11-13 | 富士写真フイルム株式会社 | 画像信号圧縮符号化装置 |
US5051840A (en) * | 1988-12-14 | 1991-09-24 | Fuji Photo Film Co., Ltd. | Device for coding a picture signal by compression |
JPH02248180A (ja) * | 1989-03-22 | 1990-10-03 | Toshiba Corp | 画像情報符号化装置 |
JPH02305182A (ja) * | 1989-05-19 | 1990-12-18 | Fuji Photo Film Co Ltd | 画像信号圧縮符号化装置 |
JP2915922B2 (ja) * | 1989-05-26 | 1999-07-05 | 富士写真フイルム株式会社 | 画像信号圧縮符号化装置 |
US5128758A (en) * | 1989-06-02 | 1992-07-07 | North American Philips Corporation | Method and apparatus for digitally processing a high definition television augmentation signal |
US5179442A (en) * | 1989-06-02 | 1993-01-12 | North American Philips Corporation | Method and apparatus for digitally processing a high definition television augmentation signal |
JP2516082B2 (ja) * | 1990-03-19 | 1996-07-10 | 日本ビクター株式会社 | デ―タ圧縮装置 |
EP0444918B1 (de) * | 1990-02-28 | 1996-06-05 | Victor Company Of Japan, Limited | Einrichtung zur Datenkompression |
FR2660139B1 (fr) * | 1990-03-23 | 1995-08-25 | France Etat | Procede de codage et de transmission a au moins deux niveaux de qualite d'images numeriques appartenant a une sequence d'images, et dispositifs correspondants. |
JPH04137879A (ja) * | 1990-09-28 | 1992-05-12 | Toshiba Corp | 電子スチルカメラ装置及び画像記録方法 |
JPH04227185A (ja) * | 1990-12-28 | 1992-08-17 | Victor Co Of Japan Ltd | 符号化出力データ量制御方式 |
JPH04245864A (ja) * | 1991-01-31 | 1992-09-02 | Toshiba Corp | 画像データの高能率符号化装置 |
-
1991
- 1991-10-01 JP JP3253709A patent/JPH0595536A/ja active Pending
-
1992
- 1992-09-30 US US07/953,819 patent/US5337049A/en not_active Expired - Lifetime
- 1992-10-01 KR KR92018082A patent/KR960008465B1/ko not_active IP Right Cessation
- 1992-10-01 EP EP92308975A patent/EP0535960B1/de not_active Expired - Lifetime
- 1992-10-01 DE DE69227970T patent/DE69227970T2/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5337049A (en) | 1994-08-09 |
EP0535960A2 (de) | 1993-04-07 |
DE69227970D1 (de) | 1999-02-04 |
JPH0595536A (ja) | 1993-04-16 |
EP0535960B1 (de) | 1998-12-23 |
KR930009261A (ko) | 1993-05-22 |
KR960008465B1 (en) | 1996-06-26 |
EP0535960A3 (en) | 1993-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69227970T2 (de) | Signalprozessor zur Kodierung | |
DE69221191T2 (de) | Verfahren und Vorrichtung zur Prädiktiven Kodierung eines Bildsignals mit Bewegungskompensation | |
DE69330620T2 (de) | Verfahren und Einrichtung zur Bildkodierung | |
DE69116869T2 (de) | Digitale bildkodierung mit einer zufallsabtastung der bilder | |
DE69425047T2 (de) | Adaptives variables längenkodierungs- und -dekodierungsverfahren für bilddaten | |
DE69331939T2 (de) | Kodierungssystem | |
DE69435000T2 (de) | Bildkodierungsvorrichtung | |
DE69028221T2 (de) | System zum Steuern einer Menge kodierter Ausgangsdaten | |
DE69321781T2 (de) | Kodierung und Dekodierung von digitalen Daten | |
DE69432142T2 (de) | Verfahren und vorrichtung zur effizienten transkodierung | |
DE69324993T2 (de) | Verfahren und Vorrichtung zum Quantisieren und Dequantisieren von Bildsignalen | |
DE69224055T2 (de) | Bildsignalkodier- und -dekodiergerät | |
DE69735680T2 (de) | Verfahren zur Bilddecodierung | |
DE69230704T2 (de) | Verfahren und Einrichtung zur Kompression von sich bewegenden Videobildern mit adaptiver Bitzuordnung und Quantisierung | |
DE69434018T2 (de) | Bildkodierungsverfahren und -vorrichtung | |
DE69430147T2 (de) | Bildkodierungsverfahren, und -vorrichtung | |
EP0687111B1 (de) | Verfahren zur Codierung/Decodierung eines Datenstroms | |
DE4233543B4 (de) | Vorrichtung zur Steuerung der Quantisierung von Videodaten | |
DE69813349T2 (de) | Vorrichtung zur Kontrolle der Datenmenge und Kodierer dieselbige anwendend | |
DE69227352T2 (de) | Verfahren und System für die Ausführung einer hochwirksamen Bildsignalkodierung | |
DE69712836T2 (de) | Vorrichtung und verfahren zur videosignalkodierung | |
DE19634600A1 (de) | Bildsignalkodiervorrichtung und zugehöriges Verfahren | |
DE10343220B3 (de) | Verfahren und Vorrichtung zur Transcodierung eines Datenstroms, der ein oder mehrere codierte digitalisierte Bilder umfasst | |
DE69610595T2 (de) | Kontrollverfahren der Codemenge für kodierte Bilder | |
DE69736654T2 (de) | Vorrichtung und Verfahren zur Prädiktionskodierung und -dekodierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |