DE4343450A1 - Coder for segment-wise coding of input signal, esp. for video telephone - Google Patents
Coder for segment-wise coding of input signal, esp. for video telephoneInfo
- Publication number
- DE4343450A1 DE4343450A1 DE4343450A DE4343450A DE4343450A1 DE 4343450 A1 DE4343450 A1 DE 4343450A1 DE 4343450 A DE4343450 A DE 4343450A DE 4343450 A DE4343450 A DE 4343450A DE 4343450 A1 DE4343450 A1 DE 4343450A1
- Authority
- DE
- Germany
- Prior art keywords
- image
- coding
- coder
- quantizer
- segment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- 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/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/587—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence
-
- 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/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/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/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/184—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 bits, e.g. of the compressed video stream
-
- 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
-
- 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/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
Die Erfindung betrifft einen Coder zur segmentweisen Co dierung eines Eingangssignales, mit einem steuerbaren Quantisierer und einem Pufferspeicher, in den quantisierte und VLC-codierte Daten des Eingangssignales zwischengespeichert werden.The invention relates to a coder for segmental co dation of an input signal, with a controllable Quantizer and a buffer memory in which quantized and VLC-coded data of the input signal be cached.
Derartige Coder werden zum Beispiel in Bildtelefonen ver wendet, die entsprechend dem CCITT-Standard H.261 aufge baut sind (vergleiche hierzu zum Beispiel: Draft Revision of Recommendation H.261: Video Codec for Audiovisual Ser vices at px64 kbit/s. Signal Processing: Image Communi cation 2 (1990), 221-239. Elsevier). Die angegebene Lite raturstelle wird im folgenden mit (I) zitiert werden.Such encoders are used, for example, in videophones applies the according to the CCITT standard H.261 are built (compare for example: Draft Revision of Recommendation H.261: Video Codec for Audiovisual Ser vices at px64 kbit / s. Signal Processing: Image Communi cation 2 (1990) 221-239. Elsevier). The specified lite will be cited below with (I).
Eine andere Anwendungsmöglichkeit ergibt sich bei der Codierung von Standbildern, soweit die Codierung entspre chend der CCITT-Empfehlung T.81 vorgenommen wird. Die Codierung eines Standbildes erfolgt danach in mehreren Schritten mit steigender Bildqualität, wobei in jedem Schritt das zuvor codierte und wieder decodierte Standbild als Prädiktionsbild verwendet wird. Die Empfehlung T.81 soll im folgenden mit (II) zitiert werden (Vgl. hierzu: International Standard DIS 1011918-1. CCITT Recommendation T.81. Digital Compression and Coding of Continuous-Tone Still Images. Part I: Requirements and Guidelines (JPEG)).Another application is the Coding of still images, as far as the coding corresponds according to the CCITT recommendation T.81. The A still image is then encoded in several Steps with increasing image quality, being in each Step the previously encoded and decoded still image is used as a prediction picture. Recommendation T.81 should be cited in the following with (II) (cf. International Standard DIS 1011918-1. CCITT Recommendation T.81. Digital Compression and Coding of Continuous-Tone Still images. Part I: Requirements and Guidelines (JPEG)).
Schließlich werden Coder mit den Eingangs aufgezählten
Merkmalen auch bei der Audio-Codierung eingesetzt, wie zum
Beispiel folgendes Dokument zeigt: Brandenburg, K. et al.:
Aspec: Adaptive spectral entropy coding of high quality
music signals. An Audio Engineering Society preprint.
Presented at the 90th Convention 1991 February 19-22 Pa
ris. Preprint 3011 (A-4). Es soll im folgenden mit (III)
zitiert werden.Finally, encoders with the features listed above are also used in audio coding, as the following document shows, for example: Brandenburg, K. et al .:
Aspec: Adaptive spectral entropy coding of high quality music signals. An Audio Engineering Society preprint. Presented at the 90th Convention 1991 February 19-22 Pa ris. Preprint 3011 (A-4). In the following it should be cited with (III).
Die Erläuterung der vorliegenden Erfindung soll jedoch hauptsächlich anhand eines Videocoders erfolgen, der mit der H.261-Empfehlung kompatibel ist. Die Übertragung auf die anderen Anwendungsfälle ergibt sich dann ohne weiteres aus dieser speziellen Erläuterung.However, the explanation of the present invention is intended mainly using a video encoder that works with the H.261 recommendation is compatible. The transfer to the other use cases are then obvious from this particular explanation.
Einem Coder nach (I) werden die zu codierenden Videodaten bildweise zugeführt. Die Eingangs angedeuteten Signalseg mente sind im allgemeinen (s. jedoch weiter unten) die zu einem Videobild gehörenden Prädiktionsfehler im CIF-Format oder im QCIF-Format (vergleiche hierzu (I)).The video data to be encoded is a coder according to (I) fed imagewise. The signal segment indicated at the beginning elements are generally (see below, however) a prediction error belonging to a video image in CIF format or in QCIF format (see (I)).
Videodaten im CIF-Format werden nach (I) wiederum hierar chisch in weitere Teildaten gegliedert, nämlich in zwölf Blockgruppen (GOB′s). Jede Blockgruppe gliedert sich in dreiunddreißig Macroblöcke und jeder Macroblock in sechs Blöcke. Ein Block besteht entweder aus den 64 Luminanzwer ten (Y-Werte) eines quadratischen Bildausschnittes von 8 × 8 Bildpunkten oder aus 64 Werten einer der beiden Farb differenz-Komponenten (CB- oder CR-Werte) Diese Chromi nanzwerte ergeben sich aus einem Bildausschnitt von 16 × 16 Bildpunkten, der bezüglich der Chrominanz im Verhältnis 1 : 2 horizontal und vertikal unterabgetastet ist. Ein Ma croblock enthält sowohl Luminanz- als auch Chrominaz- Informationen eines Bildausschnittes von 16 × 16 Bildpunk ten.According to (I), video data in CIF format are again broken down hierarchically into further partial data, namely into twelve block groups (GOB's). Each block group is divided into thirty-three macro blocks and each macro block into six blocks. A block either consists of the 64 luminance values (Y values) of a square image section of 8 × 8 pixels or 64 values of one of the two color difference components (C B or C R values). These chrominance values result from a Image section of 16 × 16 pixels, which is horizontally and vertically subsampled in terms of chrominance in a ratio of 1: 2. A macro block contains both luminance and chrominaz information in an image section of 16 × 16 pixels.
Ein Coder nach (I) arbeitet in zwei Hauptbetriebsarten, nämlich im INTER-Modus oder im INTRA-Modus. Im INTER-Modus werden die Differenzen der Bildpunktdaten zwischen einem Eingangsbild (aktuelles Bild) und seinem decodierten und gegebenenfalls bewegungskompensierten Vorgängerbild (Prä diktionsbild) codiert. Im INTRA-Modus wird statt des Prä diktionsfehlers daß Eingangsbild ohne Bezugnahme auf das Vorgängerbild codiert.A encoder according to (I) works in two main operating modes, namely in INTER mode or in INTRA mode. In INTER mode the differences in the pixel data between one Input picture (current picture) and its decoded and possibly motion-compensated previous picture (Pre diction picture) coded. In INTRA mode, instead of the pre diction error that input picture without reference to the Coded previous picture.
Die Codierung erfolgt blockweise. Die Blockdaten oder die Differenzen der Blockdaten werden einer zweidimensionalen diskreten Cosinus-Transformation unterworfen. Die dabei bestimmten Transformationskoeffzienten werden einem steu erbaren Quantisierer zugeführt, nach deren Quantisierung VCL-codiert und in einen Pufferspeicher eingeschrieben. Ferner wird in einem Rückkoppelungszweig des Coders das codierte Bild (blockweise) wieder decodiert, in einem Bildspeicher gespeichert und als Prädiktionsbild für das nächste Eingangsbild verwendet.The coding is done in blocks. The block data or the Differences in the block data become two-dimensional subjected to discrete cosine transformation. The one there certain transformation coefficients become taxable erable quantizers supplied, after their quantization VCL-encoded and written into a buffer memory. Furthermore, the in a feedback branch of the encoder encoded picture (block by block) decoded again in one Image memory stored and as a prediction image for the next input image used.
Der Quantisierer des Coders ist insofern steuerbar, als bei ihm die Quantisierungskennlinie eingestellt werden kann. Unterschiedliche Quantisierungskennlinien unter scheiden sich durch die Länge ihrer Quantisierungsinter valle. Innerhalb einer Quantisierungskennlinie ist die Länge der Quantisierungsintervalle (auch Schrittweite genannt) in der Regel gleich. Man erhält eine grobe Quan tisierung bei Kennlinien mit großer Schrittweite und eine feine Quantisierung bei Kennlinien mit kleiner Schritt weite. Wird grob quantisiert, wird also ein großer Quan tisierungsfehler in Kauf genommen, werden im allgemeinen weniger VLC-Daten in den Pufferspeicher eingeschrieben. Wird fein quantisiert, steigt im allgemeinen die Zahl der Bits, die in Form der VLC-Codeworte in den Pufferspeicher vor ihrer Übertragung zwischengespeichert werden.The quantizer of the encoder is controllable in that the quantization characteristic can be set with it can. Different quantization curves under differ by the length of their quantization inter valle. The is within a quantization curve Length of the quantization intervals (also step size usually called the same. You get a rough quan for characteristic curves with large increments and one fine quantization for characteristic curves with a small step wide. If it is roughly quantized, it becomes a large quan Acceptance errors are generally accepted less VLC data written into the buffer memory. If you quantize finely, the number of Bits in the form of VLC code words in the buffer memory be cached before transmission.
Entleert wird der Pufferspeicher mit zeitlich konstanter Bitrate, während das Füllen des Speichers mit hochgradig zeitabhängiger Bitrate erfolgen kann. Ob viele oder wenige Bits pro Sekunde in den Pufferspeicher eingeschrieben werden, hängt sowohl von der Einstellung des Quantisierers als auch von der Größe des Prädiktionsfehlers - also von den Bilddaten - ab.The buffer tank is emptied with a more constant time Bit rate while filling the memory with high time-dependent bit rate can take place. Many or few Bits written into the buffer memory per second depends on both the setting of the quantizer as well as the size of the prediction error - i.e. of the image data - from.
Für welche Daten eines Videobildes welche Quantisierungs kennlinie zu verwenden ist, ist in (I) nicht vorgeschrie ben. Vorgeschrieben ist lediglich, daß innerhalb eines Macroblockes nur eine Quantisierungskennlinie zu verwenden ist, die Quantisierungskennlinie also höchstens von Macro block zu Macroblock geändert werden darf und daß für den DC-Koeffizienten im INTRA-Modus immer die gleiche Quanti sierungskennlinie verwendet werden soll. Die möglichen Quantisierungsschrittweiten sind die ganzen Zahlen 2, 4, 6, . . . bis 62.Which quantization for which data of a video image characteristic is not to be used in (I) ben. The only requirement is that within one Macroblockes to use only one quantization curve is the quantization characteristic of Macro at most block to Macroblock may be changed and that for the DC coefficients in INTRA mode always the same quanti characteristic curve should be used. The possible Quantization step sizes are the integers 2, 4, 6,. . . to 62.
Üblich ist eine Steuerung des Quantisierers in Abhängig keit vom Pufferfüllstand, wie zum Beispiel die EP 036 3 682 oder die EP 028 4 168 zeigt. Sinn einer sol chen Steuerung ist, einen Überlauf oder einen Leerlauf des Pufferspeichers zu vermeiden. Da inzwischen die Kapazität von Speichern kaum noch ein technisches Problem ist, also die Gefahr des Überlaufs und des damit verbundenen Infor mationsverlustes nicht mehr besteht, weil genügend große Speicher verwendet werden können, ist es dennoch wün schenswert, daß der Füllstand des Pufferspeichers einen maximalen Füllstand nicht überschreitet. Der Grund hierfür ist der, daß - ganz ausgeprägt bei niederen Übertragungs bitraten - der zeitliche Abstand zwischen dem Codieren eines Videobildes auf der Sendeseite und dem Decodieren und dem Aufbauen des gleichen Videobildes auf der Emp fangsseite unannehmbar groß wird. Dieser zeitliche Abstand muß zum Beispiel bei einem Dialog über Bildtelefone nahezu unmerklich für die Teilnehmer sein. Akzeptabel sind Zei ten, die im Bereich einer zehntel Sekunde liegen. Daher bleibt auch bei technisch fast grenzenloser Speicherkapa zität das Problem, den Füllstand des Pufferspeichers aus den dargelegten Gründen nicht über einen maximalen Füll stand hinausgehen zu lassen.Control of the quantizer is usually dependent buffer level, such as the EP 036 3 682 or EP 028 4 168 shows. Sense of a sol Chen control is an overflow or an idle of the Avoid buffer storage. Since now the capacity storage is hardly a technical problem anymore, so the risk of overflow and the associated information loss of mation no longer exists because it is sufficiently large Memory can be used, it is still wu it is worth it that the fill level of the buffer storage does not exceed the maximum fill level. The reason for that is that - quite pronounced with low transmission bit rates - the time interval between coding a video image on the transmission side and decoding and building the same video image on the emp start side becomes unacceptably large. This time interval For example, in a dialogue via videophones, almost be imperceptible to the participants. Time is acceptable that are in the range of a tenth of a second. Therefore remains with almost unlimited memory capa the problem, the level of the buffer storage for the reasons given do not have a maximum fill stood to let go.
Die Steuerung des Quantisierers allein durch den Füllstand des Pufferspeichers (im folgenden Füllstandssteuerung genannt) führt in der Regel dazu, daß Macroblöcke, die zum gleichen Bild oder zur gleichen Bilddifferenz gehören, mit unterschiedlichen Quantisierungskennlinien quantisiert werden, da der Füllstand des Pufferspeicher während des Kodierens eines Bildes starken Schwankungen unterworfen sein kann.The control of the quantizer solely by the level of the buffer tank (in the following fill level control usually leads to macroblocks leading to the belong to the same picture or to the same picture difference, with different quantization characteristics be, because the filling level of the buffer storage during the Encoding an image is subject to strong fluctuations can be.
Der Wechsel von einer Quantisierungskennlinie zu einer anderen während der Codierung eines Bildes ist bei der Füllstandssteuerung in dem Sinne willkürlich, als dieser Wechsel ohne Rücksicht auf den Informationsgehalt der noch zu kodierenden Makroblöcke vorgenommen werden muß. So können für den Betrachter wichtige Bildteile grob quan tisiert werden und andere - weniger wichtige - wiederum unnötig fein. Mit anderen Worten: bei der Füllstandssteue rung wird die Bedeutung des Bildinhaltes für den Betrach ter außer acht gelassen. Die Füllstandssteuerung führt deshalb zu einer subjektiv wie auch objektiv unbefriedi genden Bildqualität.The change from a quantization curve to one another while encoding an image is at the Level control in the sense arbitrary than this Change regardless of the information content of the still to be encoded macro blocks must be made. In this way, important parts of the picture can be roughly quan be tized and others - less important - in turn unnecessarily fine. In other words: with level control the importance of the image content for the viewer disregarded. The level control leads therefore to a subjectively as well as objectively unsatisfied image quality.
Der Erfindung liegt die Aufgabe zugrunde, eine Steuerung des Quantisierers derart durchzuführen, daß sich die Qua lität der decodierten Bilder subjektiv und objektiv we sentlich verbessert.The invention has for its object a controller the quantizer so that the Qua subjectivity and objectivity of the decoded images considerably improved.
Diese Aufgabe wird bei einem eingangs erwähnten Coder durch Mittel gelöst, mit denen im Betriebsfall eine ein malige Einstellung des Quantisieres für ein zu codierendes Signalsegment derart geschätzt wird, daß die Anzahl der Bits, die aufgrund der Codierung dieses Signalsegmentes in den Pufferspeicher eingeschrieben werden, mit einer vor gegebenen Anzahl möglichst gut übereinstimmt.This task is done with a coder mentioned at the beginning solved by means with which a one in operation times setting the quantizer for one to be encoded Signal segment is estimated such that the number of Bits which, due to the coding of this signal segment in the buffer memory are written with a before given number matches as closely as possible.
Im Falle der Bildcodierung bedeutet das, daß für das gesamte Bild (Signalsegment) - also für alle Macroblöcke eines Bildes - nur eine einzige Einstellung des Quantisie res verwendet wird, sofern die geschätze Einstellung unter den in (I) vorgesehenen Einstellungen vorkommt.In the case of image coding, this means that for the entire image (signal segment) - i.e. for all macroblocks of an image - just a single shot of the quantisie res is used, provided the estimated setting is under the settings provided in (I) occurs.
Bei dieser Maßnahme wird von der Erkenntnis Gebrauch ge macht, daß die Verwendung einer einzigen Quatisierungs kennlienie für alle Blöcke eines Bildes (im eingeschwunge nen Zustand - vergl. hierzu weiter unten) subjektiv und objektiv zur nahezu bestmöglichen Bildqualität führt. Auch das sogenannte "blocking" wird reduziert. Zwar ist eine Unterscheidung zwischen wichtigen und unwichtigen Teilen eines Bildes nicht vorgesehen, jedoch ist eindeutig der Fall ausgeschlossen, daß wichtige Teile grob und unwichti ge fein quantisiert werden.This measure uses knowledge makes use of a single quatization kennlienie for all blocks of a picture (in the steady state - see below) subjectively and objectively leads to almost the best possible image quality. Also the so-called "blocking" is reduced. There is one Differentiation between important and unimportant parts of an image is not provided, but is clearly the Case excluded that important parts are rough and unimportant can be finely quantized.
Anhand eines Ausführungsbeispieles soll die Erfindung nun in Verbindung mit den Figuren naher erläutert werden.Based on an embodiment, the invention will now are explained in more detail in connection with the figures.
Es zeigen:Show it:
Fig. 1 ein Blockschaltbild eines Coders mit Merkmalen der Erfindung und Fig. 1 is a block diagram of a encoder with features of the invention and
Fig. 2 ein PSNR-Diagramm, in dem der Unterschied zwi schen einem Coder mit Puffersteuerung und einem Coder nach der Erfindung dargestellt wird. Fig. 2 is a PSNR diagram in which the difference between a coder with buffer control and a coder according to the invention is shown.
Im Prinzipschaltbild nach Fig. 1 sind die wichtigsten Funktionseinheiten eines Videocoders angegeben, der nach den in (I) dargelegten Vorschriften arbeitet und der auch erfindungsgemäße Zusätze enthält. Taktleitungen sind nicht eingetragen oder nur angedeutet. Ebenso sind eine Reihe von Steuerleitungen und Adreßleitungen fortgelassen oder ebenfalls nur angedeutet, um die Figur nicht unüber sichtlich zu machen. Der Fachmann jedoch kann sie ohne weiteres in der Figur gedanklich ergänzen und bei der Konkretisierung der Schaltung hinzufügen.The basic circuit diagram of FIG. 1 shows the most important functional units of a video encoder which operates according to the regulations set out in (I) and which also contains additives according to the invention. Clock lines are not entered or are only hinted at. Likewise, a number of control lines and address lines are omitted or also only hinted at in order not to obscure the figure. However, the person skilled in the art can easily add to them mentally in the figure and add them when the circuit is specified.
Mit dem Bezugszeichen 1 ist eine Quellcoder versehen, d. h. derjenige Teile eines Videocoders nach (I), der als we sentliche Bestandteile eine Transformationseinheit 1B, einen steuerbaren Quantisierer 1C und eine Rückkopplungs schleife mit einem Decoder 1D enthält. Durch den Decoder 1D werden Prädiktionsbilder für Eingangsbilder gewonnen, die dem Videocoder 1 auf einer Leitung a2 zugeführt wer den. Die Eingangsbilder auf der Leitung a2 sind eine Aus wahl der auf einer Leitung a1 mit einer Bildfolgefrequenz von etwa 30 Hz ankommenden Bilder im CIF-Format. Im Bei spiel wird ein Schalter 8 so gesteuert, daß nur jedes zweite Bild von der Leitung a1 auf die Leitung a2 gelangt.With the reference numeral 1 , a source encoder is provided, ie those parts of a video encoder according to (I), the essential components of a transformation unit 1 B, a controllable quantizer 1 C and a feedback loop with a decoder 1 D contains. The decoder 1 D provides prediction images for input images which are fed to the video encoder 1 on a line a2. The input images on line a2 are a selection of the images arriving on line a1 with an image repetition rate of approximately 30 Hz in CIF format. In the game, a switch 8 is controlled so that only every second picture from line a1 to line a2.
Eine steuerbare Funktionseinheit 1A gibt entweder die Ein gangsbilder von der Leitung a2 oder den Prädiktionsfehler (ebenfalls im CIF-Format) auf eine Leitung b. Der Prädik tionsfehler besteht aus den Differenzen aller Daten eines Eingangsbildes und den Daten des Prädiktionsbildes. Das Signal auf der Leitung b ist das durch den Quellcoder 1 nach den in (I) niedergelegten Vorschriften zu codierende und oben erwähnte Eingangssignal. Es gelangt nach der Diskreten Cosinus-Transformation durch die Einheit 1B über eine Leitung c zum steuerbaren Quantisierer 1C und von dort über einen steuerbaren Schalter 1E und einen Abschnitt einer Leitung d zu einem Variable-Length-Coder 5, auch Entropie-Coder genannt. Die Codeworte des Entro pie-Coders 5 werden in einen Pufferspeicher 6 eingeschrie ben und aus diesem mit einer Bitrate von 64 × p kbit/s ausgelesen und gegebenenfalls leitungscodiert an einen Empfänger übertragen. Sofern nichts anderes ausdrücklich erwähnt ist, wird im Ausführungsbeispiel der Fall p = 1 behandelt.A controllable functional unit 1 A gives either the input images from line a2 or the prediction error (also in CIF format) on line b. The prediction error consists of the differences between all data of an input picture and the data of the prediction picture. The signal on line b is the input signal to be coded by the source coder 1 according to the regulations laid down in (I) and mentioned above. After the discrete cosine transformation, it arrives through the unit 1 B via a line c to the controllable quantizer 1 C and from there via a controllable switch 1 E and a section of a line d to a variable length coder 5 , also entropy coder called. The code words of the entro pie coder 5 are written into a buffer memory 6 and read out from this at a bit rate of 64 × p kbit / s and, if appropriate, line-coded transmitted to a receiver. Unless expressly stated otherwise, the case p = 1 is dealt with in the exemplary embodiment.
Alle steuerbaren Funktionseinheiten des Quellcoders 1 werden durch eine Steuereinheit 3 gesteuert, was durch eine Verbindung a5 der Steuereinheit 3 mit dem Quellcoder 1 angedeutet ist. Bei der Erfindung geht es hauptsächlich um die Steuerung des Quantisierers 1C derart, daß sich der Füllstand F des Pufferspeichers 6 während des Betriebes innerhalb vorgeschriebener Grenzen bewegt, ohne daß - entgegen dem Stand der Technik - die Einstellung des Quan tisierers 1C während der Codierung eines Bildes geändert wird. Der Füllstand F wird über eine Leitung a6 an die Steuereinheit 3 übertragen und in einer weiter unten be schriebenen Weise von ihr ausgewertet.All controllable functional units of the source encoder 1 are controlled by a control unit 3 , which is indicated by a connection a5 of the control unit 3 to the source encoder 1 . The invention is mainly about the control of the quantizer 1 C such that the level F of the buffer memory 6 moves during operation within prescribed limits, without - contrary to the prior art - the setting of the quantizer 1 C during coding an image is changed. The level F is transmitted via a line a6 to the control unit 3 and evaluated by it in a manner described below.
Daneben besteht ein Informationsaustausch zwischen der Steuereinheit 3 und einer Reihe von Sonderbausteinen, die im Wesentlichen der Präanalyse eines zu codierenden Bildes dienen und die nicht Bestandteile eines Coders nach (I) sein müssen. Diese Bausteine umfassen unter anderem den schon erwähnten Schalter 8, einen Bildspeicher 7 und einen Aktivitätsrechner 2; sie stehen über ein Leitungssystem a3 mit der Steuereinheit 3 in Verbindung. Ein weiterer Sonderbaustein ist ein Bitzähler 4, der die in den Puffer speicher 6 pro Bild eingeschriebenen Bits zählt und seinen Zählerstand über eine Leitung a4 an die Steuereinheit 3 weitergibt. Die Anzahl der pro Bild in den Pufferspeicher eingeschriebenen Bits soll im folgenden Bildvolumen B genannt werden. Das Bildvolumen B und die Ausgangsdaten des Aktivitätsrechners 2 benötigt die Steuereinheit 3 zur Ausübung ihrer Steuerfunktionen. In addition, there is an exchange of information between the control unit 3 and a number of special modules which essentially serve for the pre-analysis of an image to be coded and which do not have to be part of a coder according to (I). These modules include the switch 8 already mentioned, an image memory 7 and an activity calculator 2 ; they are connected to the control unit 3 via a line system a3. Another special module is a bit counter 4 , which counts the bits written into the buffer memory 6 per image and forwards its counter reading to the control unit 3 via a line a4. The number of bits written into the buffer memory per picture is to be called B in the following picture volume. The image volume B and the output data of the activity computer 2 are required by the control unit 3 to carry out their control functions.
Vom Aktivitätsrechner 2 bekommt die Steuereinheit 3 eine quantitative Aussage über die Aktivität des Signals auf der Leitung b, kurz Bildaktivität a genannt. Darunter soll im vorliegenden Zusammenhang zunächst jede beliebige Funk tion der Beträge aller Bilddaten eines Bildes oder Diffe renzbildes verstanden werden. Ist zum Beispiel xk eine quantitative Angabe (Chrominanz- oder Luminanzwert) über den k-ten Bildpunkt eines Bildes, so wäreFrom the activity computer 2 , the control unit 3 receives a quantitative statement about the activity of the signal on line b, called image activity a for short. In the present context, this should be understood to mean any function of the amounts of all image data of an image or difference image. For example, if x k is a quantitative statement (chrominance or luminance value) about the kth pixel of an image, then it would be
eine mögliche quantitative Aussage über die Bildakti vität σ.a possible quantitative statement about the image stocks vity σ.
Im vorliegenden Beispiel wird für σ der AusdruckIn the present example, the expression for σ is
verwendet, also das Quadrat des als "Absolutnorm" in der Mathematik bekannten Ausdrucks, weil er sich als besonders brauchbar erwiesen hat. Die Summe in (2) durchläuft die Luminanz- und Chrominanzwerte aller Bildpunkte eines Bil des oder Differenzbildes im CIF-Format. Insgesamt sind das 152.064 Werte pro Bild. Eine Beschränkung auf die Lumi nanzwerte alleine liefert ebenfalls brauchbare Werte für die Bildaktivität.used, ie the square of the "absolute standard" in the Mathematics known expression because it turns out to be special has proven useful. The sum in (2) runs through the Luminance and chrominance values of all pixels in a bil des or difference image in CIF format. Overall, that is 152,064 values per image. A limitation to the Lumi nanz values alone also provides useful values for the image activity.
Um das Verständnis der nun folgenden Ausführungen zu er leichtern, soll zunächst eine Liste mit den weiter unten verwendeten Symbolen aufgestellt und deren Bedeutung erläutert werden. Vorab sei bemerkt, daß i das Symbol für die Ordnungszahlen ist, mit denen die zu codierenden Bil der abgezählt werden. Größen - hier auch Codierparameter genannt - die für die Codierung des i-ten Bildes benötigt werden oder von den Daten dieses Bildes abhängen, erhalten die Ordnungszahl i als Index.To understand the following explanations easier, should first a list with the below symbols used and their meaning are explained. It should be noted in advance that i is the symbol for is the ordinal number with which the Bil which are counted. Sizes - here also coding parameters called - which is required for coding the i-th image will depend or depend on the data of this picture the atomic number i as an index.
Im einzelnen bedeuten:
σ₁ die Bildaktivität des i-ten zu codierenden Bildes,
die vor dessen Codierung vom Aktivitätsrechner 2 nach
Formel (2) bestimmt wird.
si die vor der Codierung des i-ten Bildes errechnete
Quantisierungsschrittweite, mit der dieses Bild quan
tisiert werden sollte, jedoch in der Regel nicht
quantisiert werden kann, weil ihr Wert keinem der
nach (I) zulässigen Werte zwischen 2 und 62 gleicht.
sli,
shi zwei nach (I) zulässige Quantisierungschrittweiten,
mit denen jeweils ein zugehöriger Anteil des i-ten
Bildes quantisiert wird und die sich aus dem errech
neten Wert si nach den GleichungenIn particular:
σ₁ the image activity of the i-th image to be encoded, which is determined by the activity calculator 2 according to formula ( 2 ) before it is encoded.
s i the quantization step size calculated before the coding of the i-th image, with which this image should be quantized, but usually cannot be quantized because its value does not equal any of the values between 2 and 62 permitted by (I).
sl i , sh i two quantization increments permissible according to (I), with each of which an associated part of the i-th image is quantized and which result from the calculated value s i according to the equations
sli = 2*INT(si/2);
shi = sli + 2sl i = 2 * INT (s i / 2);
sh i = sl i + 2
ergeben, wobei mit INT(x) die größte ganze Zahl ge
meint ist, die kleiner als x ist. Sollten sich für
diese Größen Werte ergeben, die außerhalb des in (I)
vorgesehenen Intervalles liegen, so werden ihnen die
zulässigen Werte 4 oder 62 zugewiesen.
Bi Bildvolumen des i-ten Bildes, das die Anzahl der Bits
angibt, die infolge der Codierung dieses Bildes in
den Pufferspeicher 6 eingeschrieben wird und die mit
dem Stand des Bitzählers 4 nach der Codierung dieses
Bildes übereinstimmt.
i geschätztes Bildvolumen für das i-te Bild.
B₀ vorgegebenes Bildvolumen (im Beispiel 6400 bit).
Fi Füllstand des" Pufferspeichers 6 unmittelbar vor der
Codierung des i-ten Bildes
BSi Soll-Bildvolumen, dasjenige Bildvolumen, das das i-te
Bild haben soll; es wird vor der Codierung dieses
Bildes von der Steuerung 3 berechnet.
FSi Soll-Füllstand, derjenige Füllstand des Pufferspei
chers 6, den dieser nach der Codierung des i-ten
Bildes haben soll und der vor der Codierung des i-ten
Bildes von der Steuerung 3 berechnet wird.
2 * Si Steigung der Schätzgeraden, die adaptiv vor der Co
dierung des i-ten Bildes ermittelt wird.result, where INT (x) means the largest integer that is less than x. If values result for these quantities that lie outside the interval provided in (I), then the permissible values 4 or 62 are assigned to them.
B i image volume of the i-th image, which indicates the number of bits which is written into the buffer memory 6 as a result of the encoding of this image and which corresponds to the state of the bit counter 4 after the encoding of this image.
i Estimated image volume for the i-th image.
B₀ predefined image volume (6400 bit in the example).
F i level of the "buffer memory 6 immediately before the coding of the i-th picture
BS i target image volume, that image volume that the i-th image should have; it is calculated by the controller 3 before coding this picture.
FS i target fill level, the fill level of the buffer store 6 which it is to have after the coding of the i-th picture and which is calculated by the controller 3 before the coding of the i-th picture.
2 * S i slope of the estimation line, which is determined adaptively before the coding of the i-th image.
Das Bildvolumen Bi läßt sich nicht aus dem Pufferfüllstand vor und nach dem i-ten Bild ermitteln. Denn während der Codierung eines Bildes kann der Puffer 6 leerlaufen, weil für bestimmte Bildausschnitte keine Bits anfallen. Um den Leerlauf praktisch zu verhindern, werden Stopfbits hin zugefügt, die nichts mit dem Bildvolumen Bi zu tun haben und die auf der Empfängerseite wieder entfernt werden müssen. Wegen dieser Stopfbits sind das Bildvolumen und der Pufferfüllstand getrennt voneinander zu ermitteln.The image volume B i cannot be determined from the buffer fill level before and after the i-th image. Because during the coding of a picture, the buffer 6 can run empty because no bits are generated for certain picture sections. In order to practically prevent idling, stuffing bits are added which have nothing to do with the image volume B i and which have to be removed on the receiver side. Because of these stuff bits, the image volume and the buffer fill level must be determined separately.
Die Aufgabe, die die Steuerschaltung 3 zu lösen hat, läßt sich in folgender Frage zusammenfassen: Wie muß die Schrittweite si des Quantisierers 1C für die Codierung des i-ten Bildes gewählt werden, damit das Bildvolumen Bi des noch zu codierenden Bildes möglichst gut ein vorgegebenes Soll-Bildvolumen BSi annimmt? Vorausgesetzt wird dabei, daß die Bildaktivität σi nach Formel (2) des i-ten Bildes vor dessen Codierung bekannt ist. Schaltungstechnisch wird diese Voraussetzung durch das Zusammenspiel der beiden steuerbaren Schalter 8 und 1E mit dem Bildspeicher 7 er füllt. Befindet sich der Schalter 8 in seiner leitenden Schaltstellung (Verbindung zwischen den Leitungen a1 und a2 hergestellt) wird das ankommende Bild - es sei das i-te Bild - in den Speicher 7 eingelesen, während gleichzeitig die Differenzdaten zwischen diesem Bild und seinem schon codierten und wieder decodierten Vorgängerbild - das Bild mit der Nummer (i-1) - auf die Leitung b gegeben werden. In dieser Phase befindet sich der Schalter 1E in seiner sperrenden Stellung, so daß die codierten Werte weder dem Entropie-Coder 5 noch dem Decoder 1D zugeführt werden und dort die Daten des (i-1)-sten Bildes überschreiben. Der Schalter 1E hat eher symbolische Bedeutung, da seine Wir kung auch durch Taktunterbrechung oder durch eine Unter brechung der Adressenzufuhr erreicht werden kann.The task which the control circuit 3 has to solve can be summarized in the following question: How must the step size s i of the quantizer 1 C be chosen for coding the i-th picture so that the picture volume Bi of the picture still to be coded is as good as possible assumes a predetermined target image volume BS i ? It is assumed that the picture activity σ i according to formula (2) of the i-th picture is known before it is encoded. In terms of circuitry, this requirement is met by the interaction of the two controllable switches 8 and 1 E with the image memory 7 . If the switch 8 is in its conductive switching position (connection between the lines a1 and a2 established), the incoming image - be it the i-th image - is read into the memory 7 , while at the same time the difference data between this image and its already encoded and again decoded previous picture - the picture with the number (i-1) - be given on line b. In this phase, the switch 1 E is in its blocking position, so that the coded values are neither supplied to the entropy coder 5 nor to the decoder 1 D and overwrite the data of the (i-1) th picture there. The switch 1 E has more symbolic meaning, since its effect can also be achieved by interrupting the cycle or by interrupting the address supply.
Während der Sperrphase des Schalters 1E bestimmt der Akti vitätsrechner 2 die Größe σi und stellt sie danach der Steuereinheit 3 zur Verfügung. Danach wird der Schalter 8 von der Steuereinheit 3 in seine sperrende Stellung ge bracht und das im Speicher 7 abgespeicherte Bild wieder ausgelesen. Das in der Sperrphase des Schalters 8 auf der Leitung a1 anliegende Bild der CIF-Folge wird übergangen. Bei leitend geschaltetem Schalter 1E erfolgt nun die Co dierung des im Speicher 7 abgelegten i-ten Bildes wie üblich, allerdings mit einer Einstellung des Quantisierers 1C, die von der Steuereinheit 3 zuvor - auch mit der Bild aktivität σi - errechnet worden ist. Dann wiederholen sich die Vorgänge mit leitendem Schalter 8 und sperrendem Schalter 1E. Abweichend von dieser Regel wird der Schalter 1E auch dann solange gesperrt, solange der Füllstand des Pufferspeichers 6 über einem maximal zulässigen Füllstand liegt. Die Sperrzeiten sind so gewählt, daß nur ganze Bilder von der VLC-Codierung durch den Entropie-Coder 5 ausgenommen werden.During the blocking phase of the switch 1 E, the activity calculator 2 determines the size σ i and then makes it available to the control unit 3 . Then the switch 8 is brought by the control unit 3 into its blocking position and the image stored in the memory 7 is read out again. The image of the CIF sequence present on line a1 in the blocking phase of switch 8 is ignored. When the switch 1 E is switched on, the i-th image stored in the memory 7 is coded as usual, but with a setting of the quantizer 1 C, which was previously calculated by the control unit 3 - also with the image activity σ i . Then, the operations with conductive switch 8 and the off state switch 1 repeat E. exception to this rule to be locked, the switch E 1 as long as the filling level of the buffer memory 6 is higher than a maximum permissible level. The blocking times are chosen so that only whole pictures are excluded from the VLC coding by the entropy coder 5 .
Um nun die Beantwortung der oben gestellten Frage ver ständlich zu machen, soll an folgende Beobachtung erinnert werden. Trägt man das Bildvolumen Bi aller Bilder einer Bildsequenz gegen die Quantisierungsschrittweite si bezogen auf die Signalintensität σi auf, stellt alsoIn order to make the answer to the above question understandable, the following observation should be recalled. If the image volume B i of all images of an image sequence is plotted against the quantization step size s i in relation to the signal intensity σ i , the
Bi *(σi/si) für i = 1, 2, 3,B i * (σ i / s i ) for i = 1, 2, 3,
für unterschiedliche Werte von σi/si und unterschiedli che Bildsequenzen graphisch dar, so läßt sich das Ergeb nis gut durch eine stückweise lineare Kurve approximieren. Daher ist es möglich, das ungefähre Bildvolumen i für das i-te Bild durch adaptive, lineare Extrapolation oder Ex trapolation aus den Codierparametern Bi-1, σi, σi-1 sowie si und si-1 vorherzusagen. Es gilt dann für das vorhergesagte oder geschätzte Bildvolumen i for different values of σ i / s i and different image sequences, the result can be approximated well by a piece-wise linear curve. It is therefore possible to predict the approximate image volume i for the i-th image by adaptive, linear extrapolation or extrapolation from the coding parameters B i-1 , σ i , σ i-1 and s i and s i-1 . It then applies to the predicted or estimated image volume i
Vor der Codierung des i-ten Bildes sind bis auf si alle Codierparameter bekannt. Wählt man für Bi das Soll-Bildvo lumen BSi, so ist Gleichung (3) als Gleichung für die Unbekannte si zu verstehen, die angibt, mit welcher Quanti sierungsschrittweite si das i-te Bild zu codieren ist, damit sich als geschätztes Bildvolumen das Soll-Bildvolu men BSi ergibt. Bei der Codierung des ersten Bildes einer Sequenz wird die Schrittweite si zu 62 gewählt.Before coding the i-th picture, all coding parameters are known except for s i . If one chooses the target image volume BS i for B i , equation (3) is to be understood as an equation for the unknown s i , which specifies the quantization step size s i to be used to code the i-th image so that Estimated image volume gives the target image volume BS i . When coding the first image of a sequence, the step size s i is chosen to be 62.
Zu klären ist noch, wie die Steigung 2Si der Schätzgeraden und das Soll-Bildvolumen BSi zu bestimmen sind und wie der Quantisierer 1C einzustellen ist, wenn sich aus (3) rein rechnerisch für die Quantisierungsschrittweite ein Wert si ergibt, der in (I) nicht vorgesehen ist, der also nicht standardkompatibel ist. Die Schrittweite kann nämlich nach (I) nur einen geradzahligen Wert zwischen zwei und 62 annehmen.It still has to be clarified how the slope 2 S i of the estimation line and the target image volume BS i are to be determined and how the quantizer 1 C is to be set if a value s i results from (3) purely arithmetically for the quantization step size is not provided for in (I), which is therefore not compatible with standards. According to (I), the step size can only assume an even number between two and 62.
Für die ersten beiden Bilder einer Bildsequenz wird die Steigung der Schätzgeraden auf einen durch Erfahrung nahe gelegten Wert, nämlich 40 000 gesetzt, d. h., für S₁ und S₂ wird jeweils der Wert 20 000 gewählt. Zur Bestimmung der Steigung der Schätzgeraden für das (i+1)-ste Bild mit i < 2 wird zunächst geprüft, ob die BedingungFor the first two pictures of a picture sequence the Slope of the estimation line to one close by experience set value, namely 40,000 set, d. h., for S₁ and S₂ the value 20,000 is selected in each case. To determine the Slope of the estimation line for the (i + 1) -th picture with i < 2 is first checked whether the condition
erfüllt ist. Ist sie nicht erfüllt, wird Si+1 = Si gesetzt. Anderenfalls wird der Quotientis satisfied. If it is not fulfilled, S i + 1 = S i is set. Otherwise the quotient
errechnet. Der Wert der Hilfsvariablen S*i+1 entscheidet nun darüber, welcher Wert der (halben) Steigung Si+1 zugewiesen wird. Die Berechnung der Steigung Si+1 soll nun durch ein Pseudoprogramm dargestellt werden, das ein Fachmann ohne weiteres in ein Steuerprogramm für die Steuereinheit 3 umsetzen kann. In dem Pseudoprogramm werden bedingte An weisungen übergangen, falls die der Anweisung vorausgehen de Bedingung nicht erfüllt ist.calculated. The value of the auxiliary variable S * i + 1 now decides which value is assigned to the (half) slope S i + 1 . The calculation of the slope S i + 1 is now to be represented by a pseudo program which a person skilled in the art can easily convert into a control program for the control unit 3 . Conditional instructions are skipped in the pseudo program if the condition preceding the instruction is not met.
- 1. Start! 1. Start!
- 2. Wenn die Ungleichung (4) nicht erfüllt ist, setze Si+1: = Si und springe nach 7!2. If the inequality ( 4 ) is not fulfilled, set S i + 1 : = S i and jump to 7!
- 3. Berechne die Größe S*i+1 nach Gleichung (5)!3. Calculate the size S * i + 1 according to equation (5)!
- 4. Wenn S*i+1 kleiner oder gleich 7*Si/8 ist, dann setze Si+1: = 7*Si/8 und springe nach 7!4. If S * i + 1 is less than or equal to 7 * S i / 8, then set S i + 1 : = 7 * S i / 8 and jump to 7!
- 5. Wenn S*i+1 größer als 9*Si/8 ist, dann setze Si+1: = 9*Si/8 und springe nach 7!5. If S * i + 1 is greater than 9 * S i / 8, then set S i + 1 : = 9 * S i / 8 and jump to 7!
- 6. Setze Si+1: = Si!6. Set S i + 1 : = S i !
- 7. Ende!7. End!
Das Soll-Bildvolumen BSi für das i-te Bild wird durch den Pufferfüllstand Fi vor der Codierung des i-ten Bildes fest gelegt, und zwar nach der GleichungThe target image volume BS i for the i-th image is determined by the buffer fill level F i before the coding of the i-th image, specifically according to the equation
BSi = 5B₀/4 für BSi 5B₀/4
BSi = 3B₀/4 für BSi 3B₀/4 (6)
BSi = -F₁ + 2*FSi sonst,BS i = 5B₀ / 4 for BS i 5B₀ / 4
BS i = 3B₀ / 4 for BS i 3B₀ / 4 (6)
BS i = -F₁ + 2 * FS i otherwise,
wobei FSi den Sollfüllstand des Pufferspeichers 6 bedeutet.where FS i means the target fill level of the buffer memory 6 .
Ähnlich wie die Berechnung der Steigung der Schätzgeraden wird nun auch die Berechnung des Sollfüllstandes FSi durch ein Pseudoprogramm erläutert. Zunächst wird FS₁ = 3200 bit gesetzt. Der Sollfüllstand wird möglichst klein gehalten, um die oben erwähnten Verzögerungszeiten klein zu halten. Deshalb enthält das Programm eine Zählvariable K, die die Anzahl der Bilder zählt, die zu einem Leerlauf des Puffer speichers 6 geführt hätten, bei denen also Stopfbits ein gefügt werden mußten. Diese Variable K wird vor Beginn der Codierung auf null gesetzt.Similar to the calculation of the slope of the estimation straight line, the calculation of the target fill level FS i is now explained by a pseudo program. First FS₁ = 3200 bit is set. The target level is kept as low as possible in order to keep the delay times mentioned above small. Therefore, the program contains a count variable K, which counts the number of images that would have led to an idle of the buffer memory 6 , in which therefore stuffing bits had to be inserted. This variable K is set to zero before coding begins.
- 1. Start!1. Start!
- 2. Wurden im Bild (i-1) Stopfbits eingefügt? Wenn nein, springe nach 5!2. Have stuff bits been inserted in the picture (i-1)? If not, jump to 5!
- 3. Ist der Füllstand Fi größer oder gleich FSi-1 - B₀/4? Wenn nein, springe nach 8!3. Is the level F i greater than or equal to FS i-1 - B₀ / 4? If not, jump after 8!
- 4. FSi := FSi-1 + B₀/8 K := 0; springe nach 8! 4. FS i : = FS i-1 + B₀ / 8 K: = 0; jump to 8!
- 5. K := K + 1;5. K: = K + 1;
- 6. K = 5? Wenn nein, springe nach 8!6. K = 5? If not, jump after 8!
- 7. FSi := FSi-1 - B₀/8 K := 0;7. FS i : = FS i-1 - B₀ / 8 K: = 0;
- 8. Ende!8. End!
Wie oben angedeutet, muß die Steuereinheit 3 für den Fall (der die Regel ist), daß sich aus der Gleichung (3) für si ein Wert ergibt, der nicht eine der geraden Zahlen von 2 bis 62 ist, eine weiter Entscheidung fällen. Es sei hier nochmals betont, daß mit si immer die über Gleichung (3) errechneten Werte sind. Im vorliegenden Beispiel wird nun folgendermaßen verfahren:As indicated above, the control unit 3 must make a further decision in the case (which is the rule) that equation (3) gives a value for s i that is not one of the even numbers from 2 to 62. It should be emphasized here again that with s i are always the values calculated using equation (3). In the present example, the procedure is as follows:
Es seiIt is
siL = 2*INT(si/2) und
siH = siL + 2 (6)s iL = 2 * INT (s i / 2) and
s iH = s iL + 2 (6)
wobei mit INT(x) die größte ganze Zahl gemeint ist, die kleiner als x ist. siL und siH sind zulässige Schrittweiten nach (I), wenn sie nicht kleiner als 2 oder größer als 62 sind. Die Quantisierung mit der Schrittweite 2 wird jedoch vermieden - d. h. durch die Schrittweite 4 ersetzt - weil die kleinste Schrittweite fast unweigerlich zu einem Puf ferüberlauf führt.where INT (x) means the largest integer that is less than x. s iL and s iH are allowable increments according to (I) if they are not less than 2 or greater than 62. However, quantization with step size 2 is avoided - ie replaced by step size 4 - because the smallest step size almost inevitably leads to a buffer overflow.
Das i-te Bild soll nun mit den beiden Schrittweiten quan tisiert werden, die sich aus der Gleichung (6) ergeben. Bestimmt werden muß noch vor der Codierung des i-ten Bil des, welcher Anteil dieses Bildes mit siL und welcher mit siH quantisiert werden soll. Um diese Frage zu beantworten, werden zwei (positive) Gewichte aiH und aiL mit aiH + aiL = 1 derart bestimmt, daßThe i-th image should now be quantized with the two step sizes that result from equation (6). Before coding the i-th image, it must be determined which portion of this image is to be quantized with s iL and which portion with s iH . To answer this question, two (positive) weights a iH and a iL with a iH + a iL = 1 are determined such that
aiH * i(siH) + aiL * i(siL) = BSi (7)a iH * i (s iH ) + a iL * i (s iL ) = BS i (7)
wird. Die Gleichung (7) enthält die für siH und siL nach Gleichung (3) geschätzten Bildvolumina und das Soll-Bild volumen. Die Auflösung von (6) nach den Gewichten ergibt die gesuchten Bildanteile. Da ein Bild aus N = 12 Block gruppen (GOB′s) besteht, werden NL = INT(N*aiL) Blockgruppen mit der Schrittweite siL quantisiert und der Rest mit der Schrittweite siH. Die Auswahl der NL Blockgruppen erfolgt mit gleichförmiger Verteilung über das ganze Bild.becomes. Equation (7) contains the image volumes estimated for s iH and s iL according to equation (3) and the target image volume. The resolution of (6) according to the weights gives the image parts sought. Since an image consists of N = 12 block groups (GOB's), N L = INT (N * a iL ) block groups are quantized with the step size s iL and the rest with the step size s iH . The selection of the N L block groups is made with a uniform distribution over the whole picture.
In Fig. 2 ist auf der horizontalen Achse die Nummer der Bilder einer zu Testzwecken bekannten Bildsequenz ("Ale xis") von 108 Bildern aufgetragen. Auf der vertikalen Achse ist das PSNR (Peak Signal Noise Ratio) angegeben. Die obere Kurve zeigt das PSNR für eine Codierung nach der Erfindung und und die untere für eine Codierung mit Puf fersteuerung. Die Verbesserung mit einem Coder nach der Erfindung ist offensichtlich.In FIG. 2, the number of images of a known test purposes image sequence ( "Ale xis") is plotted of 108 images on the horizontal axis. The PSNR (peak signal noise ratio) is shown on the vertical axis. The upper curve shows the PSNR for coding according to the invention and the lower one for coding with buffer control. The improvement with a coder according to the invention is obvious.
Claims (6)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4343450A DE4343450A1 (en) | 1993-12-20 | 1993-12-20 | Coder for segment-wise coding of input signal, esp. for video telephone |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE4343450A DE4343450A1 (en) | 1993-12-20 | 1993-12-20 | Coder for segment-wise coding of input signal, esp. for video telephone |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4343450A1 true DE4343450A1 (en) | 1995-06-22 |
Family
ID=6505514
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE4343450A Withdrawn DE4343450A1 (en) | 1993-12-20 | 1993-12-20 | Coder for segment-wise coding of input signal, esp. for video telephone |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE4343450A1 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996017491A2 (en) * | 1994-12-02 | 1996-06-06 | Philips Electronics N.V. | Video editing buffer management |
EP0836329A1 (en) * | 1996-04-12 | 1998-04-15 | Sony Corporation | Image encoder, image encoding method and medium on which image encoding program is recorded |
EP0848559A2 (en) * | 1996-12-13 | 1998-06-17 | Matsushita Electric Industrial Co., Ltd. | Video coding and decoding method and apparatus |
US6147627A (en) * | 1994-09-22 | 2000-11-14 | U.S. Philips Corporation | Coder for segmented coding of an input signal using controllable quantization based on quantization step size and buffer fullness |
-
1993
- 1993-12-20 DE DE4343450A patent/DE4343450A1/en not_active Withdrawn
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6147627A (en) * | 1994-09-22 | 2000-11-14 | U.S. Philips Corporation | Coder for segmented coding of an input signal using controllable quantization based on quantization step size and buffer fullness |
WO1996017491A2 (en) * | 1994-12-02 | 1996-06-06 | Philips Electronics N.V. | Video editing buffer management |
WO1996017491A3 (en) * | 1994-12-02 | 1996-08-29 | Philips Electronics Nv | Video editing buffer management |
US5949487A (en) * | 1994-12-02 | 1999-09-07 | U.S. Philips Corporation | Video editing buffer management |
EP0836329A1 (en) * | 1996-04-12 | 1998-04-15 | Sony Corporation | Image encoder, image encoding method and medium on which image encoding program is recorded |
EP0836329A4 (en) * | 1996-04-12 | 2002-09-04 | Sony Corp | Image encoder, image encoding method and medium on which image encoding program is recorded |
US6535556B1 (en) | 1996-04-12 | 2003-03-18 | Sony Corporation | Apparatus and method for encoding images and medium in which image encoding program has been recorded |
EP1677546A1 (en) * | 1996-04-12 | 2006-07-05 | Sony Corporation | Image encoding with buffer underflow prevention |
EP0848559A2 (en) * | 1996-12-13 | 1998-06-17 | Matsushita Electric Industrial Co., Ltd. | Video coding and decoding method and apparatus |
EP0848559A3 (en) * | 1996-12-13 | 2002-12-04 | Matsushita Electric Industrial Co., Ltd. | Video coding and decoding method and apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10190285B4 (en) | Method and system for processing compressed video signals | |
DE69116869T2 (en) | DIGITAL IMAGE CODING WITH A RANDOM SCAN OF THE IMAGES | |
DE69015695T2 (en) | Transformation coding facility. | |
DE69825811T2 (en) | Motion compensation coding and coding method for high efficiency video coding by selective selection of past motion vectors instead of using motion vectors derived from motion estimation | |
DE69434668T2 (en) | Adaptive coding and decoding method with variable length for image data | |
EP0201679B1 (en) | Method for reducing the image data of digital television signals | |
DE69111264T2 (en) | Improvements to systems for hybrid coding of a video signal. | |
DE2740945C3 (en) | Method for the transmission of image signals with the aid of differential pulse code modulation (DPCM) and a controlled quantizer | |
DE69822607T2 (en) | NONLINEAR QUANTIZER FOR VIDEO CODING | |
DE69031045T2 (en) | Device for adaptive interframe prediction decoding of a video signal | |
DE69435000T2 (en) | Picture coding device | |
DE69921108T2 (en) | METHOD AND DEVICE FOR ADAPTIVELY CODING A VIDEO DATA STREAM | |
DE69635369T2 (en) | The video coding apparatus | |
DE69212124T2 (en) | Method and device for image coding | |
DE69816971T2 (en) | VIDEO ENCODER WITH SCALING DEPENDENT VLC (VARIABLE LENGTH CODE) ENCODING | |
DE10296787B4 (en) | Selective predication for intra-coding a video data block | |
EP0703711B1 (en) | Video signal segmentation coder | |
DE3889939T2 (en) | Method and means for coding and decoding an image signal. | |
DE10204617A1 (en) | Methods and devices for compressing and decompressing a video data stream | |
DE69017838T2 (en) | Device for coding images. | |
DE69828144T2 (en) | METHOD AND DEVICE FOR VIDEO CODING AND DECODING | |
DE69928494T2 (en) | VIDEO COMPRESSION | |
DE10218541A1 (en) | Context-adaptive binary arithmetic video coding, e.g. for prediction error matrix spectral coefficients, uses specifically matched context sets based on previously encoded level values | |
DE69210963T2 (en) | Method for image coding a video signal | |
DE3926154A1 (en) | SIGNAL PROCESSING SYSTEM |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8139 | Disposal/non-payment of the annual fee |