Abstract: The invention concerns a method and a device for coding and a method and a device for decoding a signal comprising coded data representative of at least one image broken up into blocks, the signal including information representative of one block, termed the correction block. For at least one current block of the coded image in the signal, at least a first pixel of the current block is coded based on a prediction value obtained (E20) for said first pixel from at least one pixel of a previously reconstructed block of the image, said prediction being corrected (E21) using at least one value of a pixel of said correction block, and at least one current pixel of the current block is coded based on a prediction value obtained (E20) for said current pixel from at least one previously corrected pixel of the current block, said prediction being corrected (E21) using at least one value of a pixel of said correction block, providing a predictor block for the current block. The signal also comprises at least one piece of information (Resq b) representative of a residual block calculated from the current block and the predictor block.
1. Field of the Invention
The field of the invention is that of encoding and decoding of images or sequences of images, and in particular video stream.
More specifically, the invention relates to the compression of images or image sequences using a block representation of images.
The invention is particularly applicable to the image or video encoding implemented in current or future encoders (JPEG, MPEG, H.264, HEVC, etc. and amendments), and the corresponding decoding.
2. Prior Art
The images and digital image sequences occupy much space in terms of memory, which requires, when transmitting these images, compress them to avoid congestion problems on the network used for this transmission. Indeed, the rate used on the network is generally limited.
already known many video compression techniques.
Among these, the compression standard HEVC ( "High Efficiency Video Coding, Coding Tools and Specification", Matthias Wien, Signals and Communication Technology, 2015) proposes to implement a pixel prediction of a current image relative to other pixels in the same picture (intra prediction) or to a previous or next image (inter prediction).
Specifically, the intra prediction exploits the spatial redundancies within an image. To do this, the images are cut into blocks of pixels. The pixel blocks are then predicted using information already reconstructed, corresponding to the blocks previously encoded / decoded in the current frame in the order of blocks of the course in the image.
Moreover, conventionally, the coding of a current block is performed using a prediction of the current block, said block predictor, and a prediction residual or "residual block" corresponding to a difference between the current block and the predictor block. The obtained residual block is then transformed, for example using a DCT type transform (discrete cosine transform). The coefficients of the transformed residual block are then quantized, and then encoded by an entropy coding and transmitted to the decoder, which can reconstruct the current block by adding the residual block to the predictor block.
The decoding is done frame by frame, and for each image block by block. For each block, the corresponding elements of the stream are read. The inverse quantization and inverse transformation of residual block coefficients are performed. Then, the block prediction is calculated for the predictor block and the current block is reconstructed by adding the prediction (ie the predictor block) to the residual block decoded.
Conventionally, the intra prediction of a current block is performed using blocks of reference pixels in the image previously reconstructed. Such a situation is illustrated in Figure 1, in which the reference pixels used to predict the pixels
, 2.3 and 1 = 0.1, 2.3) of a current block X in general correspond to the pixels on the line just above the current block (pixels identified by T (-1
, 0.1, 2.3) and the pixels on the left column of the current block (pixels identified by T (i-1) i = - i, 0, I, 2,3) - For example, the standard defines 35 HEVC intra prediction modes using reference pixels such, these prediction modes differing from each other by the way in which these reference pixels are used to construct a predictor block of the current block.
It appears that as a technique of intra prediction, the pixels on the first line and the first column of the predictor block are predicted very well because they are immediately adjacent to the reference pixel. The more pixels are spatially close, the more information they contain is correlated.
However, the pixels of the predictor block which are located at the bottom right, ie away from the reference pixel, e.g., pixel X (3,3) illustrated in Figure 1, are not correctly predicted. Such pixels then provide a prediction residual with high energy and therefore more bandwidth is required for encoding.
There is therefore a need for a new technical building blocks predictors for predicting a current block, to improve the compression of image data or video.
3. Summary of the Invention
The invention improves the state of the art. It relates to a decoding method of a representative coded data stream with at least one cut-out image into blocks. The decoding method comprises the following steps for at least one of the image current block: - decoding from the encoded data stream, at least one information representative of a block, said correction block, and a residual block,
- determining the correction block from the decoded information,
- determining a current block predictor block comprising:
- for at least one first pixel of the current block:
- obtaining a prediction value of said first pixel from at least one pixel of a block previously reconstructed image,
- correcting said first pixel by adding the prediction value obtained for said first pixel, at least one value of a pixel of the correction block,
- for at least one current pixel of the current block, distinct from the first pixel:
- obtaining a prediction value of said current pixel from at least one previously corrected pixel of the current block,
- correcting said current pixel by adding said prediction value for the current pixel, at least one value of a pixel of the correction block,
- reconstruction of said current block from the predictor block and the block residual decoded. Correlatively, the invention concerns a method for encoding at least one image in the form of an encoded data stream, said image being divided into blocks, comprising the following steps for at least one of the image current block to encode:
- determining a current block predictor block comprising:
- for at least one first pixel of the current block:
- obtaining a prediction value of said first pixel from at least one pixel of a block previously reconstructed image,
- correcting said first pixel by adding the prediction value obtained for said first pixel, at least one value of a pixel of a block, said correction block,
- for at least one current pixel of the current block, distinct from the first pixel:
- obtaining a prediction value of said current pixel from at least one previously corrected pixel of the current block,
- correcting said current pixel by adding the prediction value for the current pixel, at least one value of a pixel of said correction block,
- coding in the data stream of at least one information representative of said correction block,
- calculating a residual block from said current block and said determined predictor block,
- coding in the data stream of said residual block.
According to the invention, the prediction of a current block of a current pixel is improved. Indeed, it is possible to predict the current pixel of the current block by one pixel of the current block, which has previously been fixed. In particular, for a current pixel that is spatially distant reference pixels of the current block, ie the reference pixels corresponding to the pixels located just above the current block and to the left of the current block, it is thus possible to predict such a pixel current by pixels of the current block that are closer to the current pixel. The prediction of pixels is improved, the prediction residual between the current block and the predictor block is less and the current block coding cost is reduced.
According to the invention, a coding residual for the current block is transmitted in the data stream and added to the predictor block to reconstruct the current block, thereby improving performance in compression.
According to another particular embodiment of the invention, the correction block comprises residue predetermined data.
According to another particular embodiment of the invention, the correction block belongs to a set of predetermined data blocks, said at least one information representative of said correction block for identifying said correction block among the blocks of together. According to this particular embodiment of the invention, a dictionary of residual data blocks is available at the encoder and the decoder. For a current block to be coded or decoded, the correction block is selected from blocks of the dictionary. For example, the dictionary block providing the best compromise rate / distortion to encode the current block is selected as the correction block for the current block.
According to another particular embodiment of the invention, the current pixel of the prediction value is obtained from at least one previously corrected current pixel block in accordance with a local prediction function applied to the pixel located au above the current pixel, the pixel on the left of the current pixel and the pixel situated at the top left of the current pixel. According to this particular embodiment of the invention, a current pixel is predicted with a causal and local neighborhood at that pixel. The correlation between the current pixel and the reference pixels used for the prediction of the current pixel is therefore higher than with the methods of conventional intra prediction.
According to another particular embodiment of the invention, information representative of the local prediction function is encoded into or decoded from the encoded data stream. According to this particular embodiment, various local prediction functions can be used to predict the pixels of a current block. It is possible to select and report to the decoder function of more effective local prediction for predicting pixels of a current block.
According to another particular embodiment of the invention, the encoded data stream comprises, for the current block, information indicating whether the current block is encoded according to a prediction mode using only pixels belonging to previously reconstructed blocks of image or if the current block is coded according to an embodiment of
prediction using at least one previously corrected pixel of the current block. According to this particular embodiment, the data stream includes information indicating whether the current block is encoded for example according to a directional intra prediction mode as known existing compression standard or according to the new intra prediction mode of one any of the particular embodiments referred to above. Thus, it is possible for each block of the image to select the best intra prediction mode in terms of rate / distortion.
The invention also relates to a signal comprising encoded data representative of at least one image divided into blocks. Such a signal comprises, for at least one of the image current block, at least one information representative of a block, said correction block, at least one first pixel of the current block being encoded from at least a value of a correction of the pixel block and a prediction value obtained for said first pixel from at least one pixel of a block previously reconstructed image, and at least one current pixel of the current block being encoded from at least one value of a correction of the pixel block and a prediction value obtained for said current pixel from at least one previously corrected pixel of the current block, delivering a predictor block for the current block. The signal also comprises at least one information representative of a block of residue calculated from the current block and the predictor block.
According to a particular embodiment of the invention, the signal further comprises, for the current block, information indicating whether the current block is encoded according to a prediction mode using only pixels belonging to previously reconstructed blocks of image or if the current block is encoded according to a prediction mode using at least one previously corrected pixel of the current block.
The invention also relates to a decoding device configured to implement the decoding method according to any of the particular embodiments defined above. This decoding device could of course comprise different features relating to decoding process of the invention. Thus, the characteristics and advantages of this decoding device are the same as those of the decoding method, and are not described in more detail.
According to a particular embodiment of the invention, a decoding device is included in a terminal.
The invention also relates to a coding device configured to implement the coding method according to any of the particular embodiments defined above. The coding device could of course comprise the different characteristics pertaining to the encoding method of the invention. Thus, the features and advantages of this coding device are the same as those of the encoding method, and are not described in more detail.
According to a particular embodiment of the invention, an encoding apparatus is included in a terminal, or a server.
The decoding method, respectively the coding method according to the invention can be implemented in various ways, especially in wired form or in software form. According to a particular embodiment of the invention, the decoding method, respectively the coding method is implemented by a computer program. The invention also relates to a computer program comprising instructions for implementing the decoding method or the coding method according to any of the particular embodiments described above, when said program is executed by a processor. Such a program can use any programming language. It can be downloaded from a communication network and / or recorded on a computer readable medium.
This program can use any programming language and take the form of source code, object code, or intermediate code between source code and object code, such as a partially compiled form, or in any other desirable form.
The invention also provides a recording medium or medium readable by a computer and containing instructions of a computer program as mentioned above. The recording media mentioned above can be any entity or device capable of storing the program. For example, the medium may comprise a storage medium such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, for example a diskette (floppy disk) or a disc hard. On the other hand, the record carrier may correspond to a transmissible medium such as an electrical or optical signal which may be conveyed via an electrical or optical cable, by radio or by other means.
Alternatively, the record carrier may correspond to an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in carrying out the process in question.
4. List of Figures
Other features and advantages of the invention will become apparent from reading the following description of specific embodiments, given by way of illustrative and non-limiting examples and the accompanying drawings, wherein:
- Figure 1 illustrates the position of the reference pixels according to the prior art to predict the pixels of a current block,
- Figure 2 illustrates a method of determining a predictor block according to a particular embodiment of the invention,
- Figure 3 shows the reference pixels of the position of examples used to predict the pixels of a current block according to a particular embodiment of the invention,
- Figure 4 shows the steps of the coding method according to a particular embodiment of the invention,
- Figure 5 shows the steps of the decoding method according to a particular embodiment of the invention,
- Figure 6 shows the simplified structure of an encoding device adapted to implement the coding method according to any of the particular embodiments of the invention,
- Figure 7 shows the simplified structure of a decoding device adapted to implement the decoding method according to any of the particular embodiments of the invention,
- Figure 8A illustrates an exemplary signal comprising encoded data representative of at least one of an image block according to a particular embodiment of the invention,
- Figure 8B illustrates an exemplary signal comprising encoded data representative of at least one block of an image according to another particular embodiment of the invention.
5. Description of an embodiment of the invention
5.1 General principle
The general principle of the invention is to improve the prediction of the pixels of a block to encode an image, located away from the reference pixel conventionally used for the prediction of a block.
For this, a prediction of these pixels is implemented by using current block of pixels itself that were previously corrected with a residual data block. Such a residual data block is different from a known coding of residual block conventional prediction coding methods. According to the invention, the residual data block, also called correction block comprises residue data for correcting the value of the current block of pixels used to predict the following pixels of the current block. Indeed, the pixels of the current block used to predict current block following pixels themselves have been predicted earlier by pixels
corrected current block and / or pixels of a block previously reconstructed image, but for which a prediction residue has not yet been calculated, or coded / decoded. According to the invention, current pixel block are predicted by other pixels also belonging to the current block and that have not yet been reconstructed, ie using a prediction residual coded / decoded but are corrected with a correction block available to the encoder and the decoder.
Value of a pixel is defined by the value of a component of the image to encode the pixel. For example, in the case of a representation of the image to be encoded in the form of a luminance component Y and two chrominance components U and V, the prediction method can be applied to each component, or only on one of them. The invention is obviously not limited to the YUV representation and applies similarly to other representations of the image (RGB, YCbCr, ...).
Presents firstly modes of implementation of the determination of a current block of a predictor block according to the invention and a method of coding an image sequence and a method of decoding a data stream, using any two such determining a predictor block for a current block of the image, according to a particular embodiment of the invention, and the corresponding encoding and decoding devices.
5.2 Determination of a current block of a predictor block according to a particular embodiment of the invention
Figure 2 illustrates the determination of a predictor block b pred for predicting a current block of an image to be encoded.
For each pixel X of the current block X shown in Figure 3 using bold lines, a prediction value of pixel X is determined in a step E20. For this purpose, a local prediction function HA i B i C i is used. Such a function HA i B i C i calculates a prediction value P of a pixel X from the pixel value Α ,, B ,, C ,. Depending on the particular embodiment of the invention described herein, the pixels Α ,, B ,, C, correspond to the pixel on the left of the pixel X ,, above the pixel X, and above and to the left of pixel X ,.
Local prediction function HA i B i C i is for example of the form:
Imin (Ai, Bi) si C t > max (Ai, Bi)
max (Ai, Bi) si C { 0 and col = 0, G (flax, col) = H (P k (0, col- l), T (-l, col), T (-l, col- l)) if = 0 and flax col> 0, G (flax, col) = H (P k (lin , col - l), P k (lin- l, col), P k (lin- \, col- Y), if lin> 0 and col> 0 with T (flax, col) a pixel belonging to a block previously reconstructed, H function local prediction el P k (x, y) of a pixel prediction value (x, y) belonging to the current block X and having previously been corrected by correction block V kdescribed below. At the end of step E20, a prediction value G (flax, col) is obtained for the current pixel X lin, col).
During a step E21, the prediction value G (flax, col) is corrected using a value of a l- ^ correction block for the pixel X (flax, col). The correction block V k is a residue data block comprising, for example values between -255 and 255 when the pixel values are represented in 8 bits.
According to a particular embodiment of the invention, the correction block V k belongs to a set or dictionary of predetermined residue data blocks {V k } k = 0 ^ N , where N is the number of blocks of the whole .
For example, such a dictionary comprises a subset of all possible combinations of residue values, the subset being selected for example by learning on a group of images, and / or transmitted with the encoded data stream.
For example, assuming in this example that the image pixels are coded on 8 bits, and each pixel a correction block can correct negatively or positively a prediction value is represented with 8 bits. Such a pixel of a correction block must have a dynamic of 9 bits. Accordingly, for a block of 8x8 pixels correction eg size, the number of possible blocks is 2 9x64 . It would then be necessary to encode a lot of information to identify the correction block selected from all possible combinations of residue values. Moreover, finding the best correction block would be very costly in terms of calculation.
In practice, dictionary of sizes including, for example between 32 to 512 correction blocks allow optimal compression, that is to say a high quality gain for reduced transmission of information. However, it is necessary to choose the blocks of the dictionary so that such correction blocks are representative of the blocks really helpful to make a correction of the pixels of the current block.
In the example described here, we construct the dictionary V { k } k = 0 ^ N as a subset of correction blocks among a wide range of correction blocks comprising all possible correction blocks, ie comprising all combinations possible residue values. In a first variant, to construct this dictionary V { k } k = 0 ... N, A conventional technique of construction by Linde-Buzzo-Gray algorithm (LBG algorithm) as described in Linde, Y .; Buzo, A .; Gray, R. (1980). "An Algorithm for Vector Quantizer Design". IEEE Transactions on Communications. 28: 84. doi: 10. 1109 / TCOM. 1980 1094577 is used. This technique is to use a training sequence of blocks of pixels to be corrected, and an initial dictionary, e.g. randomly selected. This technique then iterates two steps:
-a first step of determining, for each block of the training sequence, the best dictionary correction block in the sense of a predetermined criterion, for example the distortion generated by use of the correction block in the prediction of the current block of pixels of the training sequence. Learning blocks are divided into classes, each class being the set of blocks associated with a learning dictionary correction block.
-for each class, a new correction block is determined so that this block improves the predetermined criterion for said class. The dictionary of the block associated with the class is then replaced by the new block.
Other methods known to those skilled in the art to construct a quantification dictionary are possible, such as the approach "Pairwise Nearest Neighbor" described in the book "Vector Quantization and Signal Compression" Allen and Gersho Robert M. Gray, the Springer International Series in Engineering and Computer Science Series Volume159 to Edtions Springer US.
Preferably, the correction block V k has a same size as the current block.
According to a particular embodiment of the invention, the same correction block is used for all pixels of the current block.
At step E21, the value of the correction block V k (flax, col) is added to the prediction value G (flax, col) obtained for the pixel X (flax, col) to obtain the prediction value corrected P k (flax, col) of the pixel X lin, col): P k flax, col) = G (flax, col) + V k (flax, col).
During a step E22, it is checked whether all the pixels of the current block have been predicted. If this is the case (Y of FIG 2), a block predictor b pre d associated with the correction block V k comprising for each pixel X (flax, col) a corrected prediction value P k (flax, col) is available to encode or rebuild the current block. Otherwise (N in Figure 2), one passes to the prediction of the next pixel of the current block by iterating the steps E20 and E21 for the given pixel.
5.3 coding method
4 shows steps of the method of encoding an image sequence \ l 2 , l N b to be encoded in the form of a STR encoded data stream according to a particular embodiment of the invention. For example, such a coding method is implemented by an encoding device as described in relation to FIG 6.
An image sequence \ l 2 , l N b, Nb is the number of images of the sequence to be encoded, is provided in the encoding method entry. The encoding method outputs a STR coded data stream representative of the sequence of images inputted.
In known manner, the encoding of the sequence of images, the 2 , LNB is made frame by frame according to a previously established coding order and is known to the decoder. For example, images can be encoded in the temporal order, the 2 , LNB or in another order, for example li, l 3 , l 2 , INB At step E0, a lj image to be encoded of the li sequence of images, l 2 , l N b is divided into blocks, such as blocks of 32x32 size, or 64x64 or more. Such a block may be subdivided into sub-blocks square or rectangular, for example of size 16x16, 8x8, 4x4, 16x8, 8x16, ....
Then, in step E0, a block or sub-block X to be coded to an I-picture j (1 1 are directional interpolations in 33 different directions from J pixels (flax, col) previously reconstructed.
In step E10, the best prediction from the prediction modes Intra classical m, m = 0, M-1, is determined.
To do this, for each prediction mode m from 0 to M-1:
- when a sub-step E101, the P predictor block m is constructed by applying the corresponding prediction function to each pixel of the current block X P m (flax, col) = F m (T, flax, col), - when a sub-step E102, the prediction residual Res m of the current block for mode m is calculated for each pixel of the current block X, by Res m (n //, col) = X (flax, col) - P m (flax, col). - in a conventional manner at a sub-step E103, the prediction residual is transformed, for example by a DCT transform, and quantized, providing quantized coefficients Res q m , and an encoding cost R massociated with the intra prediction mode m is estimated from the quantized coefficients Res q m and cost of signaling the intra prediction mode m, - when a sub-step E104, the prediction residual Res rec m is reconstructed by quantizing inverse and inverse transformation of the quantized coefficients Res q m ,
- when a sub-step E105, the current block X rec m is reconstructed by X rec m = Res rec m + P m ,
- when a sub-step E106, the distortion D m between the current block X and the block current reconstructed X rec m associated with the intra prediction mode m is calculated: D m = Dist (X rec m ), with Dist representing an error function, for example a quadratic error function, and the cost rate / distortion associated with the intra prediction mode m is calculated: J m = R m + a xD m at a sub-step E107, the prediction mode n providing the cost rate / distortion J n lowest among all costs rate / distortion J mm associated with the prediction modes 0 to M-1, is selected as the best mode of classical Intra prediction. The prediction mode n, the coded information associated with the prediction residual Res q n and the current block reconstructed X rec m are stored for later.
At a step E1 1, the cost of encoding a prediction mode Intra as described in relation to Figures 2 and 3 is determined to be then compared with the best mode Intra prediction vector. For clarity, we will call the intra prediction mode as described in connection with Figures 2 and 3, "mode a corrected prediction".
During step E1 1, the correction block V b providing a current block to which the encoding cost rate / distortion according to the corrected prediction mode is the lowest is determined. To do this, for each correction block V k of the set of correction blocks, k ranging from 0 to N-1, the following sub-steps are implemented:
- when a sub-step E1 1 1, the predictor block P k associated with the correction block V k is constructed by implementing the steps 20-22 described in connection with Figure 2,
- when a sub-step E1 12, the residue prediction Res k of the current block in the correction block V k is calculated for each pixel of the current block X, by Res k (n //, col) = X ( flax, col) -P k (flax, col).
- when a sub-step E1 13, the prediction residual is transformed, for example by a DCT, and outputting quantized coefficients quantized Res q k , and a cost of coding R k associated with the correction block V k is estimated from the quantized coefficients and the cost of signaling correction block V k . For example, the correction block V k is signaled to the decoder by the coding index of the correction block V k from the set of correction blocks,
- when a sub-step E1 14, the prediction residual Res rec k is reconstructed by inverse quantization and inverse transformation of the quantized coefficients Res q k ,
- when a sub-step E1 15, the current block is reconstructed by X ^ rec k = Res rec k + P k ,
- when a sub-step E1 1 6 the radio distortion D k between the current block X and the block current reconstructed X rec k associated with the correction block V k is calculated: D k = Dist (X rec k ), with Dist representing an error function, e.g., a squared error function, and the cost rate / distortion associated with the correction block V k is calculated: J k = R k + a xD k .
At a E1 July 1st substep, the correction block V b providing the cost rate / distortion J b the lowest among all costs rate / distortion J k associated with correction blocks V k with k from 0 to N -1, is selected as the best correction block. The index of the correction block V b and the encoded information associated with the prediction residual Res b are stored for later.
During a step E12, the cost rate / distortion J n and J b of the two prediction modes respectively obtained at step E10 and E1 in step 1, are compared, and the current block X is encoded according Intra prediction mode providing cost debit / lowest distortion.
During step E1 2, information (YT) indicating the type of Intra prediction mode is encoded in the stream STR data as shown in Figures 8A and 8B. Such information indicates whether the current block X is encoded by a conventional prediction mode Intra, ie, a prediction mode using only pixels belonging to the blocks previously reconstructed image, or if the current block X is encoded in a manner with corrected prediction, ie a prediction mode using at least one pixel previously corrected current block X.
If it is determined at step E12 that the best mode of intra prediction for coding the current block is prediction mode Intra classic n, during a step E13, the prediction mode n is encoded in the stream STR data encoded and quantized coefficients Res q n obtained for this prediction mode n are encoded in the stream STR encoded data by entropy coding module, such as a CABAC encoder described in D. Marpe, H. Schwarz, T. Wiegand, "Context-based adaptive binary arithmetic coding in the H.264 / AVC video compression standard," IEEE Transactions on Circuits and Systems for video Technology (Volume: 13, issue: 7), pages 620-636, July 2003.
If it is determined at step E12 that the best intra prediction mode for encoding the current block is the prediction mode with corrected using the correction block V b , in step E1 3, information representative of the block correction V b is encoded into the encoded data stream STR, for example the index "b" of the correction block V b in dictionary correction blocks. Such an index is for example encoded by a fixed or variable length code. The quantized coefficients Res q b obtained in step E1 13 for correction block V bare then encoded into the encoded data stream STR by an entropy coding module, for example a CABAC encoder. An example of signal
resulting from the encoding of the current block X according to the corrected prediction mode is illustrated in Figure 8A.
According to a particular embodiment of the invention, information representative of the local prediction function / (^ ^) used for the corrected prediction mode is encoded in the coded data stream STR, as illustrated in FIG 8B. According to this particular embodiment of the invention, such information can be encoded at the image level. Thus the same local prediction function is used for all blocks of the picture when encoded according to the mode with corrected prediction. Alternatively, such information may be encoded at the block level, and the local prediction function can be adapted for each block, and function of local prediction providing the best cost rate / distortion can be selected.
During a step E14, it is checked whether all the blocks of the image coding I have been encoded. In the negative case (N), the coding method resumes at step E10 by performing the selection of the next block according to a predetermined path of the image to be encoded.
In the case where all the image blocks have been processed, in a step E15, an image I j rec is reconstructed from the reconstructed blocks X rec image and stored in a reference picture list for later use as a reference when coding the following pictures of the image sequence. The coding method then returns to step E0 to treat the following images of the sequence of images according to the order of coding.
5.4 Decoding method
5 shows steps of a method of decoding a stream STR representative coded data of a sequence of images \ l 2 , the Nb to be decoded according to a particular embodiment of the invention.
For example, the STR data stream has been generated via the coding method presented in relation to Figure 4. The data stream STR is supplied into a decoding device DEC as described in relation to Figure 7 .
The decoding process carries out the decoding of the stream frame by frame and each image is decoded block by block.
For an X-block of an image to be reconstructed, in step E50, the data STR data stream corresponding to the block X is decoded by an entropy decoding module to provide a part of syntax elements related to the mode current block coding and the other coefficients of prediction residuals Res q b of the current block X.
According to a particular embodiment of the invention, the decoded syntax elements include information (TYP) indicating whether the current block is coded according to a conventional prediction mode Intra, ie, a prediction mode using only pixels belonging to previously reconstructed blocks of the image, or if the current block X is encoded according to a corrected prediction mode, ie, a prediction mode using at least a previously corrected pixel of the current block X.
It is assumed here that the current block is encoded according to a prediction mode with corrected.
The syntax elements decoded during step E50 also include information "b" representative of a correction block V b belonging to a correction block dictionary available at the decoder DEC.
At a step E501, the correction block V b is determined from the information "b" decoded. The correction block V b is identified among the dictionary correction blocks available at the decoder DEC. For example, such correction blocks are stored in a memory of the decoder DEC.
During a step E51, the coefficients of the prediction residues of the block X undergo an inverse quantization and an inverse transform to provide a decoded prediction residual Res q b rec .
During a step E52, a predictor block P b associated with the correction block V b is constructed by implementing the steps 20-22 described in connection with Figure 2.
According to a particular embodiment of the invention, the syntax elements decoded during step E50 also include information representative of a local prediction function H Ai Bi used for the corrected prediction mode. Such information can be decoded at the level of syntax elements of image or for the current block X such information representative of a prediction based on local HA i B i C i may be an index of a function from a list of functions known prediction of the encoder and the decoder. According to this particular embodiment of the invention, the local prediction function HA i BC i decoded from the coded data stream STR is used by the method of determining a predictor block described in connection with Figure 2 in the step E52.
During a step E53, the current block X ec is reconstructed by adding the block predictor P b associated with the correction block V b , the prediction residual Res q b rec associated with the current block X that has been decoded from the stream encoded data STR.
During a step E54, it is checked whether all the blocks of the image to be decoded have been decoded and reconstructed. In the negative case (N), the decoding process resumes at step E50 by performing the selection of the next block according to a predetermined path of the image to be decoded.
In the case where all blocks in the image have been processed (Y), during a step E55, the image k rec is reconstructed from the reconstructed blocks X ec and stored in a reference picture list for be further used as a reference when decoding the following pictures of the image sequence.
The coding methods and decoding described above can be integrated in the encoders / decoders video standards such as H.266, HEVC / H.265, AVC / H.264 or any type of encoders / decoders video owners. coding methods and the decoding according to the invention also apply to all types of coders / decoders still images and more generally signals, using a predictive coding per block.
The coding methods and decoding have been described previously in the case of block spatial coding (intra coding of an image). These processes can easily apply in the case of images coded in other types of coding modes, inter example, in which only some blocks can be encoded by spatial prediction.
5.5 Coding device
Figure 6 shows the simplified structure of a COD coding device adapted to implement the coding method according to any of the particular embodiments of the invention.
According to a particular embodiment of the invention, the steps of the encoding method are implemented by computer program instructions. For this, the coding device COD has the classical architecture of a computer and includes a memory MEM, a processing unit UT, equipped for example with a processor PROC, and driven by the computer program PG stored memory MEM. The computer program PG includes instructions for implementing the steps of the coding method as described above when the program is executed by the processor PROC.
At initialization, the code instructions of the computer program PG are for example loaded into a RAM before being executed by the processor PROC. The processor PROC of the processing unit UT implements notably the steps of the coding method described above, as instructed by the computer program PG. According to another particular embodiment of the invention, the coding method is implemented by functional modules. For this, the COD encoding device further comprises:
- PRED a prediction module configured to determine a predictor block of a current image block to be coded, the prediction module PRED also being configured to:
- for at least one first pixel of the current block:
- obtain a prediction value of said first pixel from at least one pixel of a block previously reconstructed image,
- correcting the first pixel by adding the prediction value obtained for said first pixel, at least one value of a pixel of a block, said correction block,
- for at least one current pixel of the current block,
- obtain a prediction value of said current pixel from at least one previously corrected pixel of the current block,
- correcting said current pixel by adding the prediction value for the current pixel, at least one value of a pixel of said correction block,
- a CD encoding module adapted to encode the encoded data stream at least one information representative of said correction block and a block of residual derived from said current block and said block predictor determined.
The UT processing unit is configured to calculate the block of residue from the current block and the predictor block determined.
The UT processing unit cooperates with the various functional modules described above and the memory MEM in order to implement the steps of the coding method.
The various functional modules described above may be in hardware and / or software. Under a software form, such a functional module may include a processor, memory and program code instructions for implementing the function corresponding to the module when the code instructions are executed by the processor. In a tangible form, such a functional module may be implemented by any type of suitable encoding circuits, such as for example and not limited to microprocessors, signal processors (DSP Digital Signal Processor English ) specific integrated circuits for applications (ASIC for Application specific integrated circuit English), FPGAs (Field Programmable Gate Arrays for English), wiring of
5.6 Decoding device
Figure 7 shows the simplified structure with a DCS decoding apparatus adapted to implement the decoding method according to any of the particular embodiments of the invention.
According to a particular embodiment of the invention, the decoding device DEC classical architecture of a computer and includes a memory MEMO, an OTU processing unit, equipped for example with a processor PROCO and driven by the PGO computer program stored in memory MEMO. The PGO computer program comprises instructions for implementing the steps of the decoding method as described above when the program is executed by the processor PROCO.
At initialization, the program code instructions PGO computer are for example loaded into a RAM before being executed by the processor PROCO. The processor PROCO the OTU processing unit implements notably the steps of the decoding method described above, according to the instructions of the computer program PGO.
According to another particular embodiment of the invention, the decoding method is implemented by functional modules. For this, DEC decoding device further comprises:
- a decoding module configured to DC, for at least one stream of an image to be reconstructed block, decoded from the encoded data stream, at least one information representative of a block, said correction block, and a block residue,
- DET a determination module configured to determine the correction block from the decoded information,
- PREDO a prediction module configured to determine a predictor block of the current block, the PREDO prediction module configured to:
- for at least one first pixel of the current block:
- obtain a prediction value of said first pixel from at least one pixel of a block previously reconstructed image,
- correcting the first pixel by adding the prediction value obtained for said first pixel, at least one value of a pixel of the correction block,
- for at least one current pixel of the current block, distinct from the first pixel,
- obtain a prediction value of said current pixel from at least one previously corrected pixel of the current block,
- correcting said current pixel by adding the prediction value for the current pixel, at least one value of a pixel of the correction block,
- a reconstruction module adapted to reconstruct said REC current block from the predictor block and the residual block.
The OTU processing unit cooperates with the various functional modules described above and the memory MEMO in order to implement the steps of the decoding method.
The various functional modules described above may be in hardware and / or software. Under a software form, such a functional module may include a processor, memory and program code instructions for implementing the function corresponding to the module when the code instructions are executed by the processor. In a tangible form, such a functional module may be implemented by any type of suitable decoding circuitry, such as for example and not limited to microprocessors, signal processors (DSP Digital Signal Processor English) integrated circuits for specific applications (ASIC for Application specific integrated circuit English), FPGAs (Field Programmable Gate Arrays for English), wiring of
Claims
1. A method of decoding a stream of coded data representative of at least one image, said image being divided into blocks, the decoding method comprises the following steps for at least one block of the image, said current block:
- decoding (E50) from the encoded data stream, at least one information representative of a block, said correction block, and a residual block,
- determining the correction block from the decoded information,
- determining (E52) a current block predictor block comprising:
for at least one first current block pixel:
- obtaining (E20) a prediction value of said first pixel from at least one pixel of a block previously reconstructed image,
- correcting (E21) of said first pixel by adding the prediction value obtained for said first pixel, at least one value of a pixel of the correction block,
for at least a current block of the current pixel, distinct from the first pixel:
- obtaining (E20) a prediction value of said current pixel from at least one previously corrected pixel of the current block,
- correcting (E21) of said current pixel by adding said prediction value for the current pixel, at least one value of a pixel of the correction block,
- reconstruction (E53) of said current block from the predictor block and the decoded residual block.
2. A method of coding at least one image in the form of an encoded data stream, said image being divided into blocks, the coding method comprises the following steps for at least one block of the image to be coded, said current block:
- determining (E1 1 1) of a current block of the predictor block comprising:
- for at least one first pixel of the current block:
- obtaining (E20) a prediction value of said first pixel from at least one pixel of a block previously reconstructed image,
- correcting (E21) of said first pixel by adding the prediction value obtained for said first pixel, at least one value of a pixel of a block, said correction block,
- for at least one current pixel of the current block, distinct from the first pixel:
- obtaining (E20) a prediction value of said current pixel from at least one previously corrected pixel of the current block,
- correcting (E21) of said current pixel by adding the prediction value for the current pixel, at least one value of a pixel of said correction block,
- coding (E13) in the data stream of at least one information representative of said correction block,
- calculating a residual block from said current block and said determined predictor block,
- coding in the data stream of said residual block.
3. A method according to any one of claims 1 or 2, wherein the correction block comprises residue predetermined data.
4. A method according to any one of claims 1 to 3, wherein the correction block belongs to a set of predetermined data blocks, said at least one information representative of said correction block for identifying said block correction among blocks of the assembly.
5. A method according to any one of claims 1 to 4, wherein the current pixel of the prediction value is obtained from at least one previously corrected pixel of the current block according to a local prediction function applied to the pixel located above the current pixel, the pixel on the left of the current pixel and the pixel situated at the top left of the current pixel.
6. The method of claim 5, wherein information representative of the local prediction function is encoded into or decoded from the encoded data stream.
7. A method according to any one of claims 1 to 6, wherein the encoded data stream comprises, for the current block, information indicating whether the current block is encoded according to a prediction mode using only pixels belonging to blocks previously reconstructed image or if the current block is encoded according to a prediction mode using at least one previously corrected pixel of the current block.
8 A decoding device (DEC) of an encoded data stream representative of at least one image, said image being divided into blocks, the decoding device comprises, for at least one block of the image, said current block:
- a decoding module (DC) adapted to decode from the encoded data stream, at least one information representative of a block, said correction block, and a residual block,
- a determination module (DET) adapted to determine the correction block from the decoded information,
- a prediction module (PREDO) adapted to determine a current block of the predictor block, the prediction module being also adapted to:
- for at least one first pixel of the current block:
- obtain a prediction value of said first pixel from at least one pixel of a block previously reconstructed image,
- correcting the first pixel by adding the prediction value obtained for said first pixel, at least one value of a pixel of the correction block,
- for at least one current pixel of the current block, distinct from the first pixel,
- obtain a prediction value of said current pixel from at least one previously corrected pixel of the current block,
- correcting said current pixel by adding the prediction value for the current pixel, at least one value of a pixel of the correction block,
- a reconstruction unit (REC) adapted to reconstruct said current block from the predictor block and the decoded residual block.
9. A coding device (COD) of at least one image in the form of an encoded data stream, said image being divided into blocks, the coding device comprises, for at least one block of the image to be coded, said current block:
- a prediction module (PRED) adapted to determine a current block of the predictor block, the prediction module being also adapted to:
- for at least one first pixel of the current block:
- obtain a prediction value of said first pixel from at least one pixel of a block previously reconstructed image,
- correcting the first pixel by adding the prediction value obtained for said first pixel, at least one value of a pixel of a block, said correction block,
- for at least one current pixel of the current block,
- obtain a prediction value of said current pixel from at least one previously corrected pixel of the current block,
- correcting said current pixel by adding the prediction value for the current pixel, at least one value of a pixel of said correction block,
- a coding module (CD) adapted for encoding in the data stream at least one information representative of said correction block and a block of residual derived from said current block and said block predictor determined.
10. A computer program comprising instructions for implementing the decoding method according to any one of claims 1 or 3 to 7 when the program is executed by a processor.
January 1. comprising computer program instructions for implementing the encoding method according to any one of claims 2 to 7, when the program is executed by a processor.
12. Signal comprising encoded data representative of at least one image, said image being divided into blocks, the signal comprises, for at least one block of the image, said current block:
- at least one information (b) representative of a block, said correction block, at least one first pixel of the current block being encoded from at least a value of a correction block of the pixel and a value prediction obtained for said first pixel from at least one pixel of a block previously reconstructed image, and at least one current block of the current pixel being encoded from at least a value of a pixel of correction block and a prediction value obtained for said current pixel from at least one previously corrected pixel of the current block, delivering a predictor block for the current block,
- at least one information (Res q b ) representative of a block of residue calculated from the current block and the predictor block.
13. Signal as claimed in Claim 12, further comprising, for the current block, information (TYP) indicating whether the current block is encoded according to a prediction mode using only pixels belonging to previously reconstructed image blocks or the current block is encoded according to a prediction mode using at least one previously corrected pixel of the current block.
| # | Name | Date |
|---|---|---|
| 1 | 201917054242.pdf | 2019-12-27 |
| 2 | 201917054242-TRANSLATIOIN OF PRIOIRTY DOCUMENTS ETC. [27-12-2019(online)].pdf | 2019-12-27 |
| 3 | 201917054242-STATEMENT OF UNDERTAKING (FORM 3) [27-12-2019(online)].pdf | 2019-12-27 |
| 4 | 201917054242-PRIORITY DOCUMENTS [27-12-2019(online)].pdf | 2019-12-27 |
| 5 | 201917054242-NOTIFICATION OF INT. APPLN. NO. & FILING DATE (PCT-RO-105) [27-12-2019(online)].pdf | 2019-12-27 |
| 6 | 201917054242-FORM 1 [27-12-2019(online)].pdf | 2019-12-27 |
| 7 | 201917054242-DRAWINGS [27-12-2019(online)].pdf | 2019-12-27 |
| 8 | 201917054242-DECLARATION OF INVENTORSHIP (FORM 5) [27-12-2019(online)].pdf | 2019-12-27 |
| 9 | 201917054242-COMPLETE SPECIFICATION [27-12-2019(online)].pdf | 2019-12-27 |
| 10 | 201917054242-OTHERS-020120.pdf | 2020-01-04 |
| 11 | 201917054242-OTHERS-020120-.pdf | 2020-01-04 |
| 12 | 201917054242-Correspondence-020120.pdf | 2020-01-04 |
| 13 | 201917054242-Verified English translation (MANDATORY) [15-01-2020(online)].pdf | 2020-01-15 |
| 14 | 201917054242-Proof of Right (MANDATORY) [15-01-2020(online)].pdf | 2020-01-15 |
| 15 | 201917054242-FORM-26 [15-01-2020(online)].pdf | 2020-01-15 |
| 16 | 201917054242-Power of Attorney-170120.pdf | 2020-01-21 |
| 17 | 201917054242-OTHERS-170120.pdf | 2020-01-21 |
| 18 | 201917054242-OTHERS-170120-.pdf | 2020-01-21 |
| 19 | 201917054242-Correspondence-170120.pdf | 2020-01-21 |
| 20 | abstract.jpg | 2020-01-30 |
| 21 | 201917054242-FORM 3 [26-05-2020(online)].pdf | 2020-05-26 |
| 22 | 201917054242-FORM 18 [15-02-2021(online)].pdf | 2021-02-15 |
| 23 | 201917054242-FORM 3 [16-06-2021(online)].pdf | 2021-06-16 |
| 24 | 201917054242-FORM 3 [15-12-2021(online)].pdf | 2021-12-15 |
| 25 | 201917054242-FER.pdf | 2022-01-13 |
| 26 | 201917054242-FORM 3 [06-07-2022(online)].pdf | 2022-07-06 |
| 27 | 201917054242-OTHERS [13-07-2022(online)].pdf | 2022-07-13 |
| 28 | 201917054242-MARKED COPIES OF AMENDEMENTS [13-07-2022(online)].pdf | 2022-07-13 |
| 29 | 201917054242-Information under section 8(2) [13-07-2022(online)].pdf | 2022-07-13 |
| 30 | 201917054242-FORM 13 [13-07-2022(online)].pdf | 2022-07-13 |
| 31 | 201917054242-FER_SER_REPLY [13-07-2022(online)].pdf | 2022-07-13 |
| 32 | 201917054242-DRAWING [13-07-2022(online)].pdf | 2022-07-13 |
| 33 | 201917054242-COMPLETE SPECIFICATION [13-07-2022(online)].pdf | 2022-07-13 |
| 34 | 201917054242-CLAIMS [13-07-2022(online)].pdf | 2022-07-13 |
| 35 | 201917054242-AMMENDED DOCUMENTS [13-07-2022(online)].pdf | 2022-07-13 |
| 36 | 201917054242-ABSTRACT [13-07-2022(online)].pdf | 2022-07-13 |
| 37 | 201917054242-PatentCertificate29-11-2022.pdf | 2022-11-29 |
| 38 | 201917054242-IntimationOfGrant29-11-2022.pdf | 2022-11-29 |
| 1 | searchstrategyE_23-12-2021.pdf |