Method for controlling the filling of the buffer memory of a picture coder, and controlling device for carrying out the method.
Abstract
The invention relates to a method for controlling the filling of the buffer memory of a picture coder in which the digital values representing the pictures are quantised according to a quantisation scale defined by a controlling parameter Par (R,n,j) which is a function of the filling value (R). The method consists in making the value of the controlling parameter progress over a family of graphs (GR1,...,GR6), each graph comprising a horizontal plateau for all the filling values lying between 0 and 80% of the capacity of the buffer memory, and comprising an exponential part for the filling values lying between 80 and 100%. One graph is selected for the duration of an entire picture. The value of the parameter moves over this graph in the course of the coding of this picture. Each graph is defined by its plateau value, and the method consists in choosing a plateau value such that the current picture, if it is very similar to the preceding picture, will cause a filling of the buffer memory which will remain between 20% and 80%, this allowing the controlling parameter to be kept absolutely constant during at least the duration of an entire picture. For a sequence of virtually stationary pictures, the controlling parameter remains almost constant. This is a significant advantage, since the eye is very sensitive to temporal noise in the pictures. Application to the coding of television pictures. <IMAGE>

Term
Term ended
Projected expiry passed 16 June 2009, 17.3 years ago.
- Priority
- Filed
- Published
- Projected expiry
- Today
7 claims: 1 independent, 6 dependent
- 1Procédé de régulation du remplissage de la mémoire tampon d'un codeur d'images, les images étant représentées par une suite de valeurs numériques, qui sont quantifiées selon une échelle de quantification, puis sont codées par blocs selon un procédé connu ; consistant à définir l'échelle de quantification par un paramètre (Par(R,n,j)) dit paramètre de régulation, chaque pas de l'échelle de quantification croissant avec ce paramètre ; à déterminer une valeur de paramètre en fonction du remplissage (R) de la mémoire tampon, en cours du codage de l'image courante ; et à stocker dans la mémoire tampon des bits de bourrage lorsque la valeur du remplissage (R) est inférieure à une première valeur de seuil (S1) ; caractérisé en ce qu'il consiste, en outre, à :- déterminer, pour toute la durée de chaque image courante (n° n), une valeur (Pal(n)), dite valeur de palier, définissant un graphe (GR1, ..., ou GR6) du paramètre de régulation (Par(R,n,j) en fonction du remplissage (R), ce graphe comportant un palier où le paramètre est égal à la valeur de palier (Pal1, ..., Pal6) pour toutes les valeurs de remplissage (R) inférieures à une seconde valeur de seuil (S2) qui est supérieure à la première valeur de seuil (S1), et comportant une partie où le paramètre est croissant pour les valeurs de remplissage croissant au delà de la seconde valeur de seuil (S2) ;cette valeur de palier étant déterminée en fonction de la valeur de palier qui a été calculée pour l'image précédente, et en fonction du coût de codage de chacun des blocs de valeurs représentant l'image précédente ;- déterminer une valeur du paramètre pour chaque bloc de valeurs représentant l'image courante, telle que cette valeur appartienne au graphe (GR1, ..., ou GR6) déterminé pour l'image courante, et corresponde à la valeur du remplissage (R) à la fin du codage du codage du bloc immédiatement précédent.
- 2Procédé selon la revendication 1, caractérisé en ce que, pour déterminer une valeur de palier pour chaque image courante, il consiste à déterminer une valeur de palier (Pal1, ..., ou Pal6) telle que la valeur (R) du remplissage, estimée pour l'image courante, reste comprise entre la première et la seconde valeur de seuil (S1, S2), pendant toute la durée du codage de l'image courante.
- 3Procédé selon la revendication 1, caractérisé en ce que, pour déterminer une valeur de palier pour chaque image courante, il consiste à déterminer une valeur de palier (Pal1, ..., ou Pal6) telle que la valeur (R) du remplissage, estimée pour l'image courante, reste aux environs d'une valeur fixée (M), pendant toute la durée du codage de l'image courante.
- 4Procédé selon la revendication 2, caractérisé en ce que pour déterminer une valeur de palier, pour chaque image courante, il consiste à :- estimer un coût de codage virtuel de l'image précédente, qui serait le coût du codage de l'image précédente dans l'hypothèse où tous les blocs de cette image précédente seraient codés avec un paramètre de régulation constant et égal à la valeur de palier du graphe du paramètre de régulation utilisé pour coder l'image précédente, en admettant que le coût de codage de chaque bloc est inversement proportionnel à la valeur du paramètre de régulation utilisée pour ce bloc ;- prendre pour valeur de palier, pour le graphe du paramètre de régulation utilisé pour coder l'image courante, le produit de la valeur du palier du graphe utilisé pour coder l'image précédente, par le rapport du coût de codage virtuel de l'image précédente, sur la quantité d'informations qui est extraite de la mémoire tampon pendant la durée du codage de chaque image.
- 5Procédé selon la revendication 3, caractérisé en ce que, pour déterminer la valeur de palier du graphe du paramètre de régulation utilisé pour coder l'image courante, il consiste à :- estimer un coût de codage virtuel de l'image précédente, qui serait le coût du codage de l'image précédente dans l'hypothèse où tous les blocs de cette image précédente seraient codés avec un paramètre de régulation constant et égal à la valeur de palier du graphe du paramètre de régulation utilisé pour coder l'image précédente, en admettant que le coût de codage de chaque bloc est inversement proportionnel à la valeur du paramètre de régulation utilisée pour ce bloc ;- prendre pour valeur de palier (Pal(n)), pour le graphe du paramètre de régulation utilisé pour coder l'image courante, le produit de la valeur du palier du graphe utilisé pour coder l'image précédente, par le rapport du coût virtuel de l'image précédente, sur la quantité d'informations qui peut être inscrite dans la mémoire tampon pendant la durée du codage de l'image courante, compte tenu : de la quantité d'informations extraite de la mémoire pendant cette durée ;de la quantité d'informations résiduelle dans la mémoire au début du codage de l'image courante ;et d'une réserve de capacité pour une variation éventuelle et imprévisible, du coût de codage réel de l'image courante.
- 6Dispositif de régulation du remplissage de la mémoire tampon d'un codeur d'images, pour la mise en oeuvre du procédé selon la revendication 1, le codeur comportant :- des moyens (3) pour quantifier une suite de valeurs numériques représentant une suite d'images, selon une échelle de quantification définie par la valeur d'un paramètre de régulation (Par), ce paramètre étant constant pour un bloc de valeurs représentant un bloc de pixels ;- des moyens (4) pour coder les valeurs quantifiées ;- une mémoire tampon (5) pour stocker les valeurs codées ;- des moyens (7, 8) pour mesurer le remplissage (R) de la mémoire (5) et pour y stocker des bits de bourrage lorsque le remplissage (R) est inférieur à une première valeur de seuil fixée (S1) ;caractérisé en ce que le dispositif de régulation (10) comporte des moyens de calcul programmable (11 à 17) programmés pour : - calculer, pour chaque image courante, une valeur dite valeur de palier, en fonction de la valeur de palier calculée pour l'image précédente et en fonction du coût de codage de chacun des blocs de valeurs représentant l'image précédente ;- calculer, pour chaque bloc de valeurs représentant l'image courante, une valeur du paramètre de régulation (Par) en fonction de la valeur du remplissage (R) à la fin du codage du bloc immédiatement précédent, cette fonction ayant une valeur constante égale à la valeur de palier, pour toutes les valeurs de remplissage (R) inférieures à une seconde valeur de seuil (S2) qui est supérieure à la première valeur de seuil (S1), et ayant une valeur croissante pour les valeurs de remplissage (R) supérieures à la seconde valeur de seuil (S2).
- 7Dispositif selon la revendication 6, caractérisé en ce que, pour calculer la valeur de palier pour l'image courante, les moyens de calcul programmables (11, 17) sont programmés pour :- calculer un coût de codage, dit coût de codage virtuel, pour chaque bloc de valeurs représentant l'image précédente, qui est égal au coût de codage réel de ce bloc, moins le coût du bourrage éventuel, multiplié par la valeur de paramètre effectivement utilisé, sur la valeur de palier déterminée pour l'image précédente ;- calculer un coût de codage virtuel de l'image précédente, en additionnant les coûts de codage virtuels de tous les blocs de valeurs représentant l'image précédente ;- calculer une valeur de palier, pour l'image courante, proportionnel au coût de codage virtuel calculé pour l'image précédente.
Independent claims7
62 paragraphs, as filed
0001The invention relates to a method for regulating the filling of the buffer memory of an image coder and a regulation device for implementing this method. An image coder conventionally comprises a buffer memory placed at the output of this coder in order to allow transmission of the coded data, with a constant bit rate corresponding to the bit rate of a transmission channel, although the coding method provides a quantity of information extremely variable over time.
0002For example, an image coding device by cosine transformation conventionally comprises: - a cosine transformation coding device which calculates a block of 16x16 transformation coefficients corresponding to a block of 16x16 luminance or chrominance values, each image being divided into blocks of 16x16 pixels; a quantization device which makes a digital value correspond to each transformation coefficient value, this quantification operation being a change of scale intended to reduce the amount of information representing each transformation coefficient, by reducing the number of significant bits ; a Huffmann coder, making a code word, of variable length, correspond to each value supplied by the quantization device, these code words constituting the coded data to be transmitted; a buffer memory for storing the coded data, at the rate at which they are supplied by the Huffmann coder, and for restoring them, at a rate corresponding to the constant bit rate of a transmission channel connected to the output of the coder; a device for regulating the filling of the buffer memory, controlling the quantification device as a function of the filling of the buffer memory in order to avoid either drying out or blockage of the buffer memory.
0003A conventional method for regulating the filling of the buffer memory consists in modifying the pitch of the quantization scale for each block of pixels, as a function of the filling of the buffer memory. This quantification scale can be linear or non-linear. In both cases, this scale is defined by the value of a parameter, called a regulation parameter, which is a function of the filling of the buffer memory. For example, the step of the quantization scale may be increasing depending on the value of the parameter.
0004An increase in the step of the quantization scale causes a reduction in the amount of information to be transmitted, by decreasing the number of significant bits representing the transformation coefficients to be transmitted. In particular, many values of coefficients which are close to zero are rounded to zero if the quantization step is large. These zero values not being transmitted, an increase in the quantization step has in particular the consequence of reducing the number of coefficients to be transmitted. On the contrary, a reduction in the pitch of the quantization scale causes an increase in the amount of information to be transmitted and increases the quality of the restored image, by increasing the number of significant bits representing the coefficients to be transmitted.
0005The value of the regulation parameter is calculated conventionally with a period corresponding to a block of 16 × 16 pixels, so that the regulation reacts quickly to fluctuations in the filling. However, it would be desirable to keep the same quantization scale for at least one image because, after decoding, the restored image appears more homogeneous. Indeed, a change in quantization scale for neighboring blocks in the same image reveals demarcations between the blocks, due to a difference in the coding errors affecting the blocks. However, it is not possible to prohibit any variation in the regulation parameter during the coding of an entire image because, in certain cases, this would lead to an overflow of the buffer memory. To avoid drying up of the memory, a conventional method is known which consists in storing stuffing bits.
0006The object of the invention is to allow regulation maintaining the same quantification scale for the duration of at least one image, in most cases, while avoiding drying up or clogging of the buffer memory in the cases exceptional. The object of the invention is a method consisting in calculating, for each current image, a value of the regulation parameter, called the plateau value, such that, if it keeps this value throughout the coding of the current image, the filling will most likely remain in a zone of predetermined values, this value of the parameter being calculated for the current image, as a function of the plateau value calculated for the previous image and as a function of the deviations outside the zone of the predetermined values, effected by the filling value during the coding of the previous image. The value of the parameter is modified exceptionally during the coding of an image, when the filling value leaves the zone of predetermined values, to avoid drying up or blockage of the buffer memory.
0007The invention also relates to a regulating device for implementing this method.
0008According to the invention, a method of regulating the filling of the buffer memory of an image coder, the images being represented by a series of digital values, which are quantified according to a quantization scale, then are coded by blocks according to a known process; consisting in defining the quantization scale by a parameter called a regulation parameter, each step of the quantification scale increasing with this parameter; determining a parameter value as a function of the filling of the buffer memory, during the coding of the current image; and storing stuffing bits in the buffer when the fill value is less than a first threshold value; is characterized in that it further consists in: - determine, for the duration of each current image, a value, known as the level value, defining a graph of the regulation parameter as a function of the filling, this graph comprising a level where the parameter is equal to the level value for all filling values less than a second threshold value which is greater than the first threshold value, and comprising a part where the parameter is increasing for the filling values increasing beyond the second threshold value; this level value being determined as a function of the level value which has been calculated for the previous image, and as a function of the cost of coding each of the blocks of values representing the previous image; - determine a value of the parameter for each block of values representing the current image, such that this value belongs to the graph determined for the current image, and corresponds to the filling value at the end of the coding of the immediately preceding block.
0009The invention will be better understood and other details will appear with the aid of the description below and the accompanying figures:<ul id="ul0001" list-style="none"><li>FIG. 1 represents the family of graphs of the values of the regulation parameter as a function of the filling, in an example of implementation of the method according to the invention;</li><li>- Figures 2 and 3 show graphs illustrating a first variant of implementation of the method according to the invention;</li><li>- Figures 4 and 5 show graphs illustrating a second variant of implementation of the method according to the invention;</li><li>- Figure 6 shows the block diagram of an exemplary embodiment of an image coder comprising a regulating device for implementing the method according to the invention;</li><li>- Figure 7 shows a micro-program flowchart used in this exemplary embodiment.</li></ul>
0010In what follows, the images considered are conventional television images, each consisting of two interlaced frames. Each frame is treated independently of the other, as if it were a single image.
0011Consider, for example, the implementation of the method according to the invention in an image coder where the quantization is carried out according to a linear quantization scale chosen from a plurality of predetermined scales. The scale being linear, its pitch is uniform and it is equal to the value of the regulation parameter. The quantification of a numerical value then consists in dividing this value by the value of the regulation parameter, then in rounding the result to the nearest whole value.
0012Each frame is divided into blocks of 16x16 pixels, each block of pixels being represented by a block of 16x16 cosine coefficients.
0013The regulation parameter used to code the 16x16 transformation coefficients of a block is denoted by Par (R, n, j). It is a function both of the filling R of the buffer memory, of the n ° n of the current frame, and of the n ° j of the block of pixels considered in the current frame. The value R is the filling value measured at the end of the coding of block n ° (j-1). The method according to the invention aims to keep the value of the parameter as constant as possible for the duration of at least one frame. For this, the set of values of the parameter is distributed over a family of graphs GR1, ..., GR6, which is represented in FIG. 1. Each of these graphs has a plateau corresponding to a constant value, Pal1, .. ., Pal6, for all the filling values lower than a value S2, fixed for example at 80% of the capacity of the buffer memory; and includes an increasing part, for example exponential, for the filling values between 80% and 100%.
0014In this example, the graph family has only six graphs to simplify the explanation. In practice, it can include an infinity of graphs, each parameter value being able to be calculated by simple formulas.
0015The method consists in keeping the same graph, GR1, or GR2, ..., or GR6, for the entire duration of a frame. Moving the operating point on this graph creates a first regulation loop, which acts at the rate of the 16x16 pixel blocks. The horizontal level of the graph corresponds to an operating zone making it possible to obtain a uniform quality of the restored frames since there is no change in quantization step when R varies. The increasing part of the graph makes it possible to avoid clogging of the buffer memory if the level value has been chosen too low compared to the amount of information necessary to code the current frame. This case can occur when the current frame requires a significantly greater amount of information than the previous frame. If the filling falls below a threshold value S1, fixed at 20%, a storage of stuffing words, in the buffer memory, is used to avoid drying up of the memory. This case can occur when the current frame requires a significantly lower amount of information than that of the previous frame.
0016In the case where the level value has been chosen appropriately and if the successive frames contain the same amount of information, the same graph is kept for a whole series of frames. The filling remains below 80%, consequently the instantaneous value of the regulation parameter remains constant during the duration of the coding of each of the frames and possibly during the coding of the whole series of frames. There is no visible discontinuity between the blocks within the same frame and between the homologous blocks in the sequence of frames. The quality of the frames returned is therefore uniform.
0017Furthermore, it is desirable that the filling of the buffer memory does not stagnate in the region of 0 to 20%. To avoid drying up of the memory, it is still possible to use the conventional method of storing stuffing bits, but underutilization of the buffer memory has the disadvantage of unnecessarily reducing the amount of information transmitted and, for example, Therefore, unnecessarily reduce the quality of the transmitted images. The regulation process must therefore avoid stagnation of the filling in the range of values from 0% to 20%.
0018The stuffing and the non-linear area of the graphs of the parameter therefore constitute a first regulation loop which has as variable the filling value R, measured at the end of the coding of block n ° (j-1) immediately preceding the current block n ° j. This first regulation loop prevents the filling from reaching 0% or 100% and prevents it from stagnating in the zones 0 to 20% and 80% to 100%. It is even possible to stabilize it at an almost constant value, at the cost of frequent changes in the instantaneous value of the regulation parameter. However, the aim of the method according to the invention is to avoid frequent changes in the value of the regulation parameter, this is why a second regulation loop is provided, acting on the choice of the level value for each frame.
0019It acts at the rate of the frames, which is a rate much lower than that of the first regulation loop. The variable monitored by this second control loop is not the value of the actual filling, since at the end of each frame the filling generally returns to zone 20 to 80%, thanks to the first regulation loop, sometimes after numerous deviations in zones 0 to 20% and 80% to 100%. The variable of the second loop is a virtual filling value corresponding to a virtual coding cost of each frame, which is equal to the coding cost that the previous frame would have if the first level of regulation did not act, ie that is, if the value of the regulation parameter, for each block of pixels of the previous frame, had a constant value equal to the step value calculated for the previous frame.
0020The virtual cost of the previous frame is greater than the real cost if the operating point has made at least one deviation in the exponential part of the graph. The virtual cost of the previous frame is lower than the real cost if the operating point has made at least one deviation in the part of the graph where a stuffing is triggered. The virtual cost translates both the number and the amplitude of the operating point deviations outside the area from S1 to S2. The cost of virtual coding of the current image, for the same level value, is assumed to be identical to that of the previous image, and it is compared with a reference value to deduce therefrom a level value suitable for coding the current image. This setpoint is a predetermined filling value.
0021The step value can be determined according to two variants of the method according to the invention, corresponding to two different set values. According to the first variant, the second regulation loop tends to maintain the filling in the range of values 20% to 80%. According to the second variant, the second regulation loop tends to maintain filling around a fixed value M which is equal to 50% of the capacity, for example. The first variant is preferably used in applications where the sequence of frames is quasi-stationary, while the second variant is preferably used in applications where the sequence of frames frequently involves changes of plane.
0022The first variant consists in calculating, for each current frame, a value of the level such that the probable coding cost of the current frame with this value of level is equal to the quantity of information D extracted from the buffer memory during the duration of coding of a frame, assuming that the first regulation loop will not have to intervene. This first variant of the method therefore tends to leave the buffer memory, in the same filling state at the end of the coding of the current frame, as at the end of the coding of the previous frame, if this filling state is in the zone values considered reasonable: 20 to 80%.
0023The estimation of the probable coding cost of the current frame is made from the real coding cost of the blocks of the previous frame, assuming that these two images are almost identical. If this is not the case, the first regulation loop intervenes: when the filling leaves the 20% to 80% zone, it is brought back there, either by a jam if its value is less than 20%; or by an increase in the instantaneous values of the regulation parameter, due to the increasing part that each of the graphs GR1, ..., GR6 comprises, if the filling value is greater than 80%.
0024To determine a plateau value, such that the probable coding cost of the current frame is equal to the fixed value D, it is necessary to find a relationship between this probable cost and the plateau value which provides this coding cost. To find this relationship, three hypotheses are made:<ul id="ul0002" list-style="none"><li>1) the current frame will contain practically the same amount of information as the previous frame;</li><li>2) during the coding of the current frame, the regulation will reach its steady state, the filling will remain in the zone 20% to 80%, in other words the value of the parameter will remain constantly equal to the level value for the coding of all the blocks pixels of the current frame;</li><li>3) the cost of coding each block of a frame is assumed to be inversely proportional to the value of the regulation parameter used for coding this block.</li></ul>
0025The second hypothesis is assumed to be realized for the current frame, n ° n, but it is not done for the previous frame, n ° (n-1). This leads to defining a virtual coding cost CBv (n-1, j) for each block n ° j of the previous frame. This is the coding cost that this block would have if the value of the regulation parameter Par (R, n-1, j) used for its coding was equal to the level value Pal (n-1).
0026The third hypothesis makes it possible to calculate the virtual coding cost CBv (n-1, j) by a linear extrapolation from: - the real coding cost of the block, CBr (n-1, j) which is easy to measure; - the instantaneous value of the parameter, Par (R, n-1, j) which is known; - of the BOU value of the stuffing possibly carried out during the coding of this block.<maths id="math0001" num=""><img file="EP0347330A1_D0001.tif" /></maths>
0027It should be noted that: BOU = 0 if R is greater than 20%, because the jam is not triggered; and Par (R, n-1, j) = Pal (n-1) if R is less than 80%, because the operating point is then on the level of one of the graphs.
0028The first hypothesis allows us to conclude that block n ° j of current frame n ° n would have a probable coding cost equal to the virtual coding cost CBv (n-1, j), of the homologous block in the previous frame, if the step value Pal (n) used to code the current frame was equal to Pal (n-1); and makes it possible to conclude that the probable coding cost CP (n) of the whole of the current frame would be equal to the sum of the costs CBv (n-1, j) extended to the whole of the previous frame. This sum is called the virtual coding cost, CV (n-1), of the previous frame: (2) CP (n) = CV (n-1) = <img file="EP0347330A1_D0002.tif" /> CBv (n-1, j)
0029The third hypothesis then makes it possible to calculate, by linear extrapolation, the level value Pal (n) making it possible to obtain another probable coding cost, CP ′ (n), of the current frame, equal to the fixed value D, by applying the following formula:<maths id="math0002" num=""><img file="EP0347330A1_D0003.tif" /></maths>
0030The application of formulas (1) to (3) provides for each frame a level value of the regulation graph, such that the value of the filling is slaved to stay in the zone 20% to 80%. The step value changes only if, during the coding of the previous frame, the filling has left the area 20% to 80% during the coding of at least one block. The filling can fluctuate significantly in this operating zone without there being any change in the value of the bearing, from one frame to the next, consequently the sequence of frames is restored with a perfectly uniform quality over time. This is an important advantage because the eye is very sensitive to temporal noise in the images.
0031FIG. 2 represents the graph of the filling value R, expressed as a percentage of the capacity of the buffer memory, as a function of time, the latter being expressed in number of frames. The series of frames considered comprises 120 frames, quasi-stationary from frame No. 1 to frame No. 42, then quasi-stationary from frame 43 to frame 83, then quasi-stationary from frame No. 84 to frame No. 120, the frames 43 and 84 corresponding to changes of plane profoundly modifying the information contained in the sequence of frames.
0032FIG. 3 represents the graph of the level value Pal (i) as a function of the time represented by the number, i, of the frames. The sequence of frames considered is the same as for FIG. 2. FIGS. 2 and 3 correspond to the implementation of the first variant of the method according to the invention. In FIG. 2, it appears that the filling fluctuates a lot between 10% and 90% of the capacity of the buffer memory. In particular, the filling decreases from 90% to 10% during frames # 1 to 12. Figure 3 shows that during frames n ° 1 to 12 the level value has some oscillations and then stabilizes at a perfectly constant value equal to 75. During this time, the filling decreases slowly. Around frame No. 12, the filling drops below 20%, which triggers an artificial filling of the buffer memory with stuffing bits and causes a modification of the value of the level of the graph of the regulation parameter. This new value is equal to 71 from frame No. 14 to frame No. 23. It causes the filling to rise, by increasing the amount of useful information.
0033Around the frame n ° 24, the filling of the memory becomes again higher than 20% and the level value stabilizes at a perfectly constant value and equal to 70, until the change of plane for the frame n ° 43, because the calculation of each level value always gives the same result as long as the filling remains in the area 20% to 80%.
0034The filling reaches the value of 80% for image n ° 48, which then causes an increase in the level value with a few oscillations. This increase in the bearing value causes a decrease in the filling which brings it below the threshold value equal to 80%. The level value then remains absolutely constant and equal to 75, from frame No. 55 to frame No. 84 which corresponds to a change of plane. During this time, the memory filling slowly decreases, remaining between 80% and 20%.
0035Frame No. 84 causes a sudden drop in memory filling, to around 10%. The regulation device then causes a sudden decrease in the level value, followed by a slower decrease allowing the filling to be kept at a value around 20%. Slow rising of the filling causes it to go back above the value of 20%, this being reached around the frame n ° 110. Then the level value remains constant and equal to 20.
0036In conclusion, it appears in FIG. 2 very large variations in the filling of the buffer memory during the time intervals in which the calculation of each new level value gives a constant result. Long periods appear in FIG. 3 where the level value of the graph of the regulation parameter is absolutely constant, which makes it possible to obtain a perfectly constant quality of restitution during these periods.
0037On the other hand, the value of the level could undergo a very significant amplitude jump if a change of plane occurred at the time when the filling drifts towards 80%. This jump could affect the quality of the frames returned. As mentioned previously, this first variant of the regulation method is therefore better suited for applications where the sequence of frames is quasi-stationary.
0038A second variant of the method according to the invention is more particularly suited to a series of frames comprising numerous changes of planes. According to this variant, the level value calculated for each frame is such that the filling at the end of the coding of this frame should be around a predetermined value, M, fixed for example at 50%, instead of the zone S1 to S2 ranging from 20% to 80% .. This value is considered reasonable to allow an unpredictable increase or decrease in the amount of information contained in the current image without greatly increasing the value of the parameter, or using padding. This more rigorous stabilization of the filling of the buffer memory is done at the cost of more frequent modifications of the level value of the graph of the regulation parameter. The reasoning is similar to that held above, but the set value for the coding cost is no longer systematically equal to the value D of the quantity of information extracted from the memory during the duration of the coding of each image. The set value varies according to the value of the residual filling at the end of the coding of the previous frame. The target coding cost is equal to a D- value<maths id="math0003" num=""><math display="inline"><mrow><mfrac><mrow><mtext>VS</mtext></mrow><mrow><mtext>2</mtext></mrow></mfrac></mrow></math><img file="EP0347330A1_D0004.tif" /></maths>-OCC (n-1), where C is the capacity of the memory, and where OCC (n-1) is the residual filling at the start of the coding of frame n ° n. The step value is calculated for the current frame n ° n according to the following formula:<maths id="math0004" num=""><img file="EP0347330A1_D0005.tif" /></maths>
0039The bearing value calculated according to this formula corresponds to a filling control at the value 50%. When the filling is greater than 50% at the end of the coding of the previous image, n ° (n-1), the term<maths id="math0005" num=""><math display="inline"><mrow><mfrac><mrow><mtext>VS</mtext></mrow><mrow><mtext>2</mtext></mrow></mfrac></mrow></math><img file="EP0347330A1_D0006.tif" /></maths>-OCC (n-1) is negative, it causes an increase in the bearing value Pal (n) and therefore in the quantization step to reduce the amount of information representing the current image n ° n. On the contrary, when the filling is less than 50%, at the end of the coding of the previous image, the term<maths id="math0006" num=""><math display="inline"><mrow><mfrac><mrow><mtext>VS</mtext></mrow><mrow><mtext>2</mtext></mrow></mfrac></mrow></math><img file="EP0347330A1_D0007.tif" /></maths>-OCC (n-1) is positive, it causes a reduction in the level of value Pal (n) and therefore in the quantization step, to increase the quantity of information representing the current image n ° n.
0040FIG. 4 represents the graph of the filling of the buffer memory, as a function of time, for the same sequence of 120 frames as that considered for FIGS. 2 and 3. FIG. 5 represents the graph, as a function of time, of the value of the bearing Pal (i) for this same sequence of frames. In FIG. 4, it appears that after a few frames, the filling of the buffer memory stabilizes at around 55%. It decreases a little around the frame No. 44 corresponding to the first change of plane and then remains substantially equal to 50% until the frame No. 83. The change of plane of the frame No. 83 causes a sharp drop in the filling up to the value of 10%. A padding is implemented to avoid drying of the memory, and, simultaneously, the level value of the regulation parameter is greatly reduced. The second regulation loop reacts quickly to bring the filling back to around 50% of the memory capacity, after a few frames.
0041In FIG. 5, it appears that, apart from the transitional periods due to the changes of plan, the value of the plateau is approximately constant but fluctuates a little, from 1 to 2 units, these fluctuations being necessary to maintain the filling in the vicinity 50% instead of letting it drift in the 20 to 80% range. During the coding of frames n ° 4 to n ° 42, the level value is equal to 70 ± 2. During the coding of frames 48 to 83, the level value is equal to 75 ± 2. During the coding of frames n ° 90 to 120, the level value is equal to 25 ± 2. These fluctuations in the bearing value, from one frame to another, are not very troublesome for the quality of the restored frames, because they are of a very low amplitude.
0042FIG. 6 represents the block diagram of an exemplary embodiment of an image coder by cosine transformation, comprising a regulation device, for the implementation of the method according to the invention. This coder comprises: an input terminal 1 receiving a series of luminance values representing a series of television images; a device 2 for coding by cosine transformation, in blocks of 16 × 16 pixels; a quantification device, 3; a Huffmann encoder, 4; a buffer memory 5; a stuffing generator 7; a sequencer 8; an output terminal 6; and a device 10 for regulating the filling of the buffer memory.
0043The device 2 has an input connected to the input terminal 1 for receiving the digital values to be coded, and has an output connected to an input of the quantization device 3. The device 3 has a control input, connected to an output of the regulating device 10, and has an output connected to an input of the Huffmann encoder 4. The encoder 4 has a first output providing a cost value to a first input of the regulating device 10, a second output connected to a data input of the buffer memory 5, and a third output providing a validation signal to an input of the sequencer 8.
0044The stuffing generator 7 has an input connected to an output of the sequencer 8 for controlling the supply of a stuffing word which has a specific shape and which is made up of 16 bits in series. The generator 7 has an output connected to the data input of the buffer memory 5 to supply it with this stuffing word, in serial form. The sequencer 8 has a second output connected to a control input of the buffer memory 5 for controlling the read and write operations in this memory; and has a third output connected to a second input of the device 10 to supply it with the value R of the filling of the buffer memory 5. A third input of the device 10 is connected to the first output of the sequencer 8.
0045The devices 2 and 3 are of conventional construction. The control input of the device 3 receives a regulation parameter value, Par, which defines the quantization scale. For example, this quantization scale is linear and has a step of value equal to the value of the parameter Par. The quantization device 3 divides the digital value applied to its input by the value of the quantization step; rounds the result to the nearest whole value; then provide this result on its output.
0046In an alternative embodiment where the quantification to be carried out is not on a linear scale, the device 3 can consist of a linear quantization device whose uniform pitch is equal to the value of the regulation parameter, followed by a transcoding read only memory having a non-linear transfer function.
0047For each digital value applied to its input, the encoder 4 supplies the buffer memory 5 with a code word in serial form; it provides the device 10 with a coding cost value corresponding to this code word; and it supplies the sequencer 8 with a validation signal for each of the bits of the code word, this validation signal enabling the sequencer 8 to control the writing of this bit in the buffer memory 5.
0048The padding generator 7 supplies a predetermined 16-bit padding word, in serial form, to the buffer memory 5, when it receives a control signal BR supplied by the sequencer 8. The signal BR is also supplied to the third input of the device 10 to inform the latter of a tamping operation. The sequencer 8 controls the writing of data bits at the rate at which they are available at the output of the encoder 4, and it controls the reading of the data stored in the memory 5, at the rate of the transmission channel. The sequencer 8 comprises a filling counter which counts the number of bits written in the memory 5 and which counts the number of bits read in the memory 5. The content of the counter is therefore the value R of the filling of the memory 5. The sequencer 8 further comprises a comparator which supplies the stuffing control signal, BR, when the content R of the counter is less than 20% of the capacity of the memory 5, at the start of the coding of a block. Each time the stuffing signal BR is sent to the generator 7, this provides a stuffing word consisting of 16 predetermined bits and the filling counter is incremented by 16 units.
0049A data output from the buffer memory 5 is connected to the output terminal 6 of the encoder to supply it in serial form the Huffmann code words which have been stored in the buffer memory. These code words, as well as the stuffing words, are restored under the control of the sequencer 8, in the order in which they have been stored in the memory 5. The Huffmann coder 4, the stuffing generator 7, the sequencer 8 , and the buffer memory 5 are of conventional embodiment.
0050The device 10 for regulating the filling of the buffer memory comprises: three registers 11, 12, 13; a sequencer 14; a micro-program memory, 15; an arithmetic and logical unit, 16; and a random access memory 17.
0051The register 11 has an output connected to the output of the device 10. The register 12 has two inputs connected respectively to the first and to the third input of the device 10, to receive respectively a binary word representing the cost of coding and a bit constituted by the value of the BR signal. The register 13 has an entry constituting the second entry of the device 10, to receive the binary word representing the filling, R. The registers 11, 12 and 13 each have a control input, connected respectively to an output of the micro-program memory 15.
0052The registers 12 and 13 each have an output connected to a bidirectional bus 18. The register 11 has an input connected to the bus 18. The bus 18 is connected to an input-output of the arithmetic and logic unit 16, and to an input -output of the random access memory 17. The arithmetic and logic unit 16 has a control input connected to an output of the memory 15. The memory 17 constitutes a calculation memory and is controlled by an output of the memory 15. The outputs of the memory 15 supply control signals to the various elements constituting the device 10, under the control of a series of addresses that the sequencer 14 supplies to an address input of the memory 15.
0053The micro-program memory, 15, stores a series of binary words which constitute the control signals of the elements of the device 10, in order to regulate the filling of the buffer memory 5, in accordance with the first variant of the method described above. During the coding of image n ° (n-1), the device 10 determines the level value Pal (n) of the graph of the regulation parameter which will be used for the coding of image n ° n. Then, during the coding of image n ° n, the device 10 determines a parameter value Par for the coding of each block of 16 × 16 pixels. If the filling R of the buffer memory at the start of the coding of a block is less than 80% of the capacity of the memory 5, the device 10 supplies a parameter value Par equal to the level value Pal (n). On the other hand, if, at the start of the coding of a block, the filling value is greater than 80%, the device 10 calculates a parameter value Par which is equal to the sum of the bearing value Pal (n) plus the value of a predetermined exponential function having as variable filling R.
0054FIG. 7 represents the flow diagram of the sequence of operations controlled by the micro-program for calculating the level value Pal (n) for the current image n ° n, according to formulas (1) to (3), during the coding of the previous image, n ° (n-1). This flowchart is executed during the coding of the image n ° (n-1), which supposes that the level value Pal (n-1) was previously calculated according to the characteristics of the previous image, n ° ( n-2). The sequence of operations begins with an initialization at zero of the block number j and of the virtual cost of coding the image n ° (n-1): CV (n-1). For each block no. J, a first operation consists in reading the value of the filling R in the register 13.
0055The value R is compared with respect to the threshold value: 80% of the capacity of the buffer memory 5. If it is less than this threshold value, the value of the parameter Par (R, n-1, j) for the block, is taken equal to the plateau value Pal (n-1) which was calculated during the coding of image n ° (n-2) and which is available in the RAM 17. If the value R is greater than 80% of the capacity of the buffer memory 5, the value of the parameter Par (R, n-1, j) is calculated by adding the known level value, Pal (n-1), with an exp value aR which is an exponential function of the filling R in which a is a fixed coefficient.
0056In both cases, the sequence of operations then consists in: outputting the value of the regulation parameter Par (R, n-1, j), via the register 11; then read the value of the real coding cost of block n ° j, CBr ((n-1), j), and the value of the stuffing control signal BR, in register 12. The value of the signal BR is tested for find out whether there is a jam or not, during the coding of block n ° j. If there is no jam, the cost of stuffing, BOU, is zero. If there is a jam, the cost of the jam, BOU, takes the value 16.
0057In both cases, the virtual cost of coding the block, CBv (n-1, j) is then calculated according to formula (1). Then the virtual coding cost of the block is added to the value of the virtual coding cost of the image, CV (n-1).
0058Then the value of the block number, j, is compared to the maximum value of the block numbers in an image, max. If the block considered is the last of the image, the processing of image n ° (n-1) ends with a calculation of the value Pal (n) according to formula (3), this value of bearing being that of the graph of the regulation parameter to be used for the following image, image n ° n. If block n ° j is not the last block of the image considered, the following operation consists in incrementing n ° j then in starting again the preceding operations starting from the reading of the filling value R.
0059The realization of the micro-program contained in the memory 15 to control the arithmetic and logic unit 16, according to this flowchart, is within the reach of those skilled in the art.
0060The production of a regulation device implementing the second variant of the method according to the invention is little different from that described above. The micro-program is slightly different because formula (3) is replaced by formula (4). The micro-program then has an additional step, to calculate D +<maths id="math0007" num=""><math display="inline"><mrow><mfrac><mrow><mtext>VS</mtext></mrow><mrow><mtext>2</mtext></mrow></mfrac></mrow></math><img file="EP0347330A1_D0008.tif" /></maths> - OCC (n-1). The first value of the filling R is stored in the random access memory 17, because it constitutes the value OCC (n-1) of the residual filling.
0061The invention is not limited to the examples of implementation described above, and it can be applied in coding devices using other methods than the cosine transformation, the main thing being that it includes a quantization device. , linear or non-linear, the pitch of which can be controlled by providing it with a regulation parameter.
0062The production of an image decoder for decoding the data supplied by such an encoder is within the reach of those skilled in the art. Indeed, it is conventional to make an image decoder comprising a buffer memory and comprising a reverse quantization device controlled by a quantization parameter equal to the inverse of that used for coding, the value of this parameter being calculated in function of filling the buffer. When the method according to the invention is applied, the regulation parameter used in the decoder also includes a family of graphs corresponding to a plurality of step values. For the image decoder to determine an exact value of the inverse quantization parameter, it is sufficient to transmit, with the coded data of each image, a binary word identifying the graph used, this binary word being able to be constituted quite simply by the value of bearing.
16 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16
Every citation, both ways
| Document | Relation | Office | Category | Cited during |
|---|---|---|---|---|
| EP0478230A2 | Cited by | European Patent Office (EPO) | – | Search report |
| US6023531A | Cited by | United States of America | – | Search report |
| FR2664455A1 | Cited by | France | – | Search report |
| EP0498674A2 | Cited by | European Patent Office (EPO) | – | Search report |
| EP0629090A3 | Cited by | European Patent Office (EPO) | – | Search report |
| US6118444A | Cited by | United States of America | – | Search report |
| US6553142B2 | Cited by | United States of America | – | Applicant |
| WO9114339A1 | Cited by | World Intellectual Property Organization (WIPO) | – | International search |
| EP0629090A2 | Cited by | European Patent Office (EPO) | – | Search report |
| EP0498674A3 | Cited by | European Patent Office (EPO) | – | Search report |
| US5479210A | Cited by | United States of America | – | Search report |
| EP0478230A3 | Cited by | European Patent Office (EPO) | – | Search report |
| US6687407B2 | Cited by | United States of America | – | Applicant |
| EP0479432A2 | Cited by | European Patent Office (EPO) | – | Search report |
| US5577190A | Cited by | United States of America | – | Search report |
| EP0479432A3 | Cited by | European Patent Office (EPO) | – | Search report |
| EP0246701A1 | Cites | European Patent Office (EPO) | A | Search report |
| FR2545306A1 | Cites | France | A | Search report |
| US4307420A | Cites | United States of America | A | Search report |
| US4517596A | Cites | United States of America | A | Search report |
| US4672411A | Cites | United States of America | A | Search report |
| US4706260A | Cites | United States of America | A | Search report |
| FUJITSU SCIENTIFIC & TECHNICAL JOURNAL, vol. 13, no. 4, décembre 1977, pages 21-52; O. TAKAHASHI et al.: "Interframe CODEC for NTSC color television signals" | Non-patent | – | – | Search report |
| IEEE TRANSACTIONS ON COMMUNICATIONS, vol. COM-35, no. 11, novembre 1987, pages 1171-1177, IEEE, New York, NY, US; D.R. WALKER et al.: "Motion-compensated coder" | Non-patent | – | – | Search report |
4 priority claims, no other members on record
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 8808125 | France | A | |
| 8808125 | France | – | |
| FR19880008125 | – | – | – |
| 8808125 | – | – | – |
6 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Application refused18R | 18R | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: THE APPLICATION HAS BEEN REFUSEDSTAA | STAA | |
| First examination report despatched17Q | 17Q | |
| Request for examination filed17P | 17P | |
| Designated contracting statesAK | AK | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI |
Numbers
- Publication
- 0347330
- Publication, DOCDB
- 0347330
- Publication, EPODOC
- EP0347330
- Application
- 89401704
- Application, DOCDB
- 89401704
- Application, EPODOC
- EP19890401704
Titles6
- German
- Verfahren zum Steuern der Füllung des Pufferspeichers eines Bildcoders und Steuervorrichtung zum Durchführen des Verfahrens.
- English
- Method for controlling the filling of the buffer memory of a picture coder, and controlling device for carrying out the method.
- French
- Procédé de régulation du remplissage de la mémoire tampon d'un codeur d'images, et dispositif de régulation pour la mise en oeuvre de ce procédé.
- German
- Verfahren zum Steuern der Füllung des Pufferspeichers eines Bildcoders und Steuervorrichtung zum Durchführen des Verfahrens
- English
- Method for controlling the filling of the buffer memory of a picture coder, and controlling device for carrying out the method
- French
- Procédé de régulation du remplissage de la mémoire tampon d'un codeur d'images, et dispositif de régulation pour la mise en oeuvre de ce procédé
Classification
- CPC, 8
- H04N19/152
- H04N19/126
- H04N19/146
- H04N19/172
- H04N19/50
- H04N19/60
- H04N19/61
- H04N19/619
- IPC, 3
- H04N7 30
- H04N7 32
- H04N7 50
Designated states4
- Contracting states, 4
- Germany
- United Kingdom
- Italy
- Netherlands (Kingdom of the)