The present invention relates generally to the field of image processing, and more specifically to the coding and the decoding of digital image parameters, whether these digital images are fixed or form part of a sequence of digital images.
The coding/decoding of such image parameters is applied in particular to images deriving from at least one video sequence comprising:
The present invention applies likewise to the coding/decoding of 2D or 3D type image parameters.
The invention can particularly, but not exclusively, be applied to the video coding implemented in current AVC and HEVC video coders and their extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc.), and to the corresponding decoding.
The current video coders (MPEG, H.264, HEVC, . . . ) use a blockwise representation of the video sequence. The images are subdivided into blocks, which can to be re-subdivided recursively.
For a current block to be coded, the image parameters associated with this block are coded in the form of bits using a suitable coding method implemented by a coder, such as, for example, an entropic coder, the aim of which is to code these parameters losslessly.
Such parameters are, for example:
The bits obtained after entropic coding are written into a data stream which is intended to be transmitted to the decoder.
Once the stream has been received by the decoder, the decoding is done image by image, and, for each image, block by block. For each block, the bits representative of the image parameters associated with the block are read, then decoded using a decoding method implemented by a decoder, for which the truth table is the same as that of the coder.
For an image parameter of the abovementioned type associated with a current block, such as, for example, the intra prediction mode, HEVC (abbreviation of “High Efficiency Video Coding”) standard proposes coding such a prediction mode by predicting the value of this mode in relation to:
To this end, the values of the intra prediction modes of the block A and of the block B are first of all tested using a decision tree to determine three most probable intra prediction mode values MPM (abbreviation of “Most Probable Mode”) for the block to be coded, out of the thirty-five possible values of the intra mode as proposed in the HEVC standard.
Such a decision tree is represented in
Thus:
For each of the five leaves, the selected prediction mode is coded, the respective values of the thirty-five intra prediction modes being coded in the following same way:
An example of signaling scheme is described in the table below:
Such a method for coding the intra prediction mode which codes on fewer bits the values of the first most probable intra prediction modes relative to the values of the less probable intra prediction modes allows for a reduction of the signaling cost, the obtained average number of bits to be transmitted having been assessed at 4.01 bits. In order to further reduce the signaling cost, provision is made, according to the HEVC standard, to apply a CABAC (abbreviation of “Context Adaptive Binary Arithmetic Coding”) coding to one or more of the constituent bits of the associated code words. The obtained average number of bits to be transmitted is thus reduced to 3.95 bits.
The drawback with such a technique for coding the image parameters is that the binary sequence which results therefrom remains costly to signal. Thus, it does not make it possible to optimize the reduction of the compression gain of the coded data. This results in compression performance levels which are not satisfactory.
One of the aims of the invention is therefore to remedy inadequacies/drawbacks of the state of the art and/or to provide improvements thereto.
To this end, one object of the present invention relates to a method for coding at least one current image parameter, characterized in that, relative to a zone of a current image, it implements the following:
Such a provision makes it possible, by taking account of certain characteristics of the image in which the current image zone is situated or else certain characteristics of another image which contains a reference image zone corresponding to the current image zone, and by proposing at least two different methods for coding an image parameter associated with the current image zone:
According to a particular embodiment, N possible values being associated with said at least one current image parameter, such as N≥2, the predetermined coding method which is selected matches K code words respectively to K values out of N, such as K<N.
Such a provision makes it possible, for a selected coding method out of at least two, to code an image parameter that can take N possible values, according to only K code words, such as K<N, which has the advantage of optimizing the reduction of the signaling cost.
According to another particular embodiment, N possible values being associated with said at least one current image parameter, such as N≥2:
Such a provision makes it possible to further reduce the cost of signaling of the N code words associated respectively with the N coded values of an image parameter, by assigning, to the most probable values of the image parameter, code words of length less than that of the code words associated with the least probable values of the image parameter.
This reduction is further accompanied by an estimation of the bit rate that is easier to calculate given the fact that the least probable values of the image parameter are associated with code words which are of the same length.
Such a provision therefore reduces the complexity of the coder in terms of computation resources.
The abovementioned various embodiments or features can be added, independently or in combination with one another, to the steps of the coding method as defined above.
The invention relates also to a device for coding at least one current image parameter, comprising a processing circuit, characterized in that it is arranged to, relative to a zone of a current image:
Such a coding device is particularly suitable for implementing the abovementioned coding method.
The invention relates also to a method for decoding at least one current image parameter, characterized in that, relative to a zone of a current image, it implements the following:
According to a particular embodiment, N possible values being associated with said at least one current image parameter, such as N≥2, the predetermined decoding method which is selected matches K code words respectively to K values out of N, such as K<N.
According to another particular embodiment, N possible values being associated with said at least one current image parameter, such as N≥2:
The abovementioned various embodiments or features can be added, independently or in combination with one another, to the steps of the decoding method as defined above.
The invention relates also to a device for decoding at least one current image parameter, comprising a processing circuit, characterized in that it is arranged to, relative to a zone of a current image:
Such a decoding device is particularly suitable for implementing the abovementioned decoding method.
The invention relates also to a computer program comprising instructions for implementing one of the coding and decoding methods according to the invention, when it is run on a computer.
This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other desirable form.
The invention also targets a computer-readable storage medium on which is stored a computer program, this program comprising instructions suitable for implementing one of the coding or decoding methods according to the invention, as described above.
The invention also targets a computer-readable storage medium on which is stored a computer program, this program comprising instructions suitable for implementing the coding or decoding method according to the invention, as described above.
The storage medium can be any entity or device capable of storing the program. For example, the medium can comprise a storage means, such as ROM, for example a CD ROM or a microelectronic circuit ROM, a USB key or even a magnetic storage means, for example a hard disk.
Also, the storage medium can be a transmissible medium such as an electrical or optical signal, which can be routed via an electrical or optical cable, wirelessly or by other means. The program according to the invention can in particular be downloaded over a network of Internet type.
Alternatively, the storage medium can be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the abovementioned coding or decoding method.
Other features and advantages will become apparent on reading about several preferred embodiments described with reference to the figures in which:
An embodiment of the invention will now be described, in which the coding method according to the invention is used to code an image parameter according to a bit stream close to that which is obtained by a coding according to any one of the current or future video coding standards.
In this embodiment, the coding method according to the invention is for example implemented by software or hardware through modifications of a coder initially conforming to one of said standards. The coding method according to the invention is represented in the form of an algorithm comprising steps C1a to C5a as represented in
According to the embodiment of the invention, the coding method according to the invention is implemented in a coding device CO represented in
As illustrated in
On initialization, the code instructions of the computer program PG_C are for example loaded into a RAM memory, MR_C, before being executed by the processing circuit CT_C.
The coding method represented in
During a step C1a represented in
According to an exemplary embodiment, said zones are blocks.
It should be noted that, within the meaning of the invention, the term “block” means coding unit. The latter terminology is used in particular in the HEVC standard “ISO/IEC/23008-2 ITU-T Recommendation H.265 High Efficiency Video Coding (HEVC)”.
In particular, such a coding unit groups together sets of pixels of rectangular or square form, also called blocks or macroblocks.
Such a coding unit could, in a future standard, also group together sets of pixels having other geometrical forms.
According to another exemplary embodiment, the zones of the image are matched to the local characteristics of the image, such as, for example, a uniform texture, a constant motion, an object in the foreground in the image, etc.
Said zones B1, B2, . . . , B1, . . . , BF are intended to be coded according to a predetermined order of progress, which is for example of the lexycographical type. That means that the zones are coded one after the other, from left to right then from top to bottom.
Other types of progress are of course possible. Thus, it is possible to subdivide the image ICj into several subimages called slices and to independently apply a subdividing of this type to each subimage. It is also possible to code not a succession of rows, as explained above, but a succession of columns. It is also possible to cover the lines or columns in one direction or in the other.
Each image zone can moreover be itself subdivided into subzones which can themselves be subdivided.
During a step C2a represented in
In the example represented in
Conventionally, the current image zone Bi is associated with a plurality of image parameters P1, P2, . . . , Pu, . . . , PM, such as 1≤u≤M.
Such parameters are for example:
A parameter Pu considered takes a plurality of values Vu1, Vu2, . . . , Vum, . . . , VuN (1≤m≤N). It concerns for example:
In accordance with the invention, during a step C3a represented in
The step C3a is implemented by a selection device SEL_C represented in
According to an exemplary embodiment, only two coding methods MCx and MCy are made available to the coder CO.
More generally, and as represented in
In accordance with the invention, the selection of a coding method out of at least two coding methods is a function of the value of at least one image parameter associated with a reference image zone which precedes the current image zone Bi.
According to one embodiment, the reference image zone is composed of a plurality of reference zones BR1, BR2, . . . , BRs, . . . , BRZ (1≤s≤Z) which have been coded before the current image zone Bi. Referring to
For example, the set EPRs of image parameters associated with the reference zone BRs contains a plurality of image parameters PR1, PR2, . . . , PRk, . . . , PV (1≤k≤V) of the type mentioned above in relation to the current image zone Bi.
In the example of
The parameter of the reference zone is for example of the same type as the parameter Pu of the current image zone Bi. That is to say that, for example, if the image parameter of the current image zone Bi is the intra prediction mode, it is the intra prediction mode of the reference image zone which is considered.
According to another example, the parameter of the reference zone is of a type different from the type of the parameter Pu of the current image zone Bi. That is to say that, for example, if the image parameter of the current image zone Bi is the inter prediction mode, it is for example the index of the transform which has been applied to the data of the reference image zone which is considered.
Furthermore, the selection of the coding method can be implemented as a function of several parameters associated with a reference image zone. Thus, for example, if the image parameter of the current image zone Bi is the transform, for example of the DCT or DST type, which has been applied to the pixels of the current image zone, the selection of the coding method to be applied to the index of this transform can be a function not only of the index of the transform applied to the pixels of the reference image zone, but also of the prediction mode associated with the latter.
In the example of
Referring again to
The step C4a is implemented by a coding device MC_C represented in
To this end, the value Vum is associated with the code word MOCselum corresponding to the selected coding method MCsel. If it is for example the coding method MCx, the value Vum of the current image parameter Pu is associated with the code word MOCxum corresponding to the coding method MCx and stored in the buffer memory MT_C of the coder CO of
In the case where the current image parameter Pu takes a plurality of values Vu1, Vu2, . . . , Vum, . . . , VuN, the coding step C4a is iterated for each of these values.
At the end of the step C4a, N code words MOCselu1, MOCselu2, . . . , MOCselum, . . . , MOCseluN corresponding to the selected coding method MCsel are therefore obtained.
During a step C5a represented in
The step C5a is implemented by a data signal construction device MCF, as represented in
The data signal ϕa is then delivered via the output SOR_C of the coder CO of
The coding steps C3a to C5a which have just been described above are then implemented for each of the image parameters P1, P2, . . . , Pu, . . . , PM to be coded of the current image zone Bi.
The set of the steps C1a to C5a is then implemented for each of the image zones B1, B2, . . . , Bi, . . . , BF to be coded of the current image ICj considered, in a predetermined order which is for example the lexicographical order.
The fact that there are at least two coding methods for coding a current image parameter associated with a current image zone Bi and that one is selected on the basis of one or more parameters of a reference image zone, which spatially or temporally precedes the current image zone Bi, makes it possible to obtain a code for which the quantity of information is substantially reduced compared to that contained in a code as obtained by the coding techniques implemented in the current video coders. It follows therefrom that the complexity in terms of computation resources of the coder CO of
According to an exemplary embodiment, the reduction in terms of bit rate can be augmented by implementing, in the image parameter coding device MC_C of
Referring to
The steps C1b to C3b are the same as the steps C1a to C3a of
The coding method of
At the end of the step C4b, K code words MOCselu1, MOCselu2, . . . , MOCselum, . . . , MOCseluK corresponding to the selected coding method MCsel are therefore obtained.
During a step C5b represented in
Such an embodiment makes it possible to optimize the reduction of the signaling cost.
According to another embodiment in which the current image parameter Pu takes N values Vu1, Vu2, . . . , Vum, . . . , VuN (1≤m≤N), the step C4a or C4b comprises, referring to
During a substep C42, the coding device MC_C of
If, for example, a code word is composed of a plurality of bits, the length of this code word is composed of the number of bits contained in the code word considered.
The embodiment of
There now follows a description of an exemplary embodiment of the invention, in which the current image parameter Pu is the HEVC intra mode. The parameter Pu therefore takes thirty-five values Vu1 to Vu35 which correspond respectively to the thirty-five prediction direction indices proposed in HEVC.
In the example represented, the current image zone Bi is a block of 8×8 size as represented in
In accordance with the invention, it is proposed to select a coding method out of two coding methods MC1 and MC2 made available to the coder CO of
Such a test is for example implemented using a decision tree represented in
Thus:
According to the invention:
In this example, a CABAC coding is not applied to one or more of the code words obtained. It has moreover been calculated that the obtained average number of bits to be transmitted is equal to 3.72 bits, which makes it possible to save 0.29 bits for each intra prediction mode signaled relative to the average number of bits obtained with HEVC which is 4.01 bits.
If a CABAC coding is applied to the first bit of each of the code words obtained in accordance with one of the coding methods MC1 and MC2, it has been calculated that the obtained average number of bits to be transmitted is equal to 3.68 bits, which makes it possible to save 0.27 bits for each intra prediction mode signaled relative to the average number of bits obtained with a CABAC coding implemented in HEVC, which is 3.95 bits.
In another embodiment, the availability of the blocks neighboring the current block is assessed. Thus, according to this other embodiment, a parameter other than the prediction mode assists in the determination of the most probable prediction modes. In this embodiment, according to a first variant, if the reference blocks BR1 and BR2 are available, then the decision tree according to
The respective values of the thirty-five intra prediction modes are coded as follows in accordance with the first method MC1:
According to a second variant of this embodiment, if the reference blocks BR1 and BR2 are both unavailable, according to a second predetermined coding method MC2, the following three most probable values are associated with the intra prediction mode of the current block:
The respective values of the thirty-five intra prediction modes are coded according to the same number of bits as the first method MC1 above.
According to a variant of the embodiment which has just been described, when the reference blocks BR1 and BR2 are both available and, in addition, the prediction mode A of the block BR1 and the prediction mode B of the block BR2 are both equal to 1, then an advantageous signaling mode is employed. In this case, according to a third predetermined coding method MC3, the following four most probable values are associated with the intra prediction mode of the current block:
The respective values of these four intra prediction modes are coded as follows in accordance with the third coding method MC3:
Thus, only K=4 prediction mode values out of N=35 are coded according to the third coding method MC3. A particularly targeted code is therefore employed in this case, which makes it possible to substantially reduce the bit rate. When the reverse condition is fulfilled, that is to say that the prediction mode A of the block BR1 and the prediction mode B of the block BR2 are both different from 1, then a tree according to
An embodiment of the invention will now be described, in which the decoding method according to the invention is used to decode a data signal or stream representative of an image parameter which is capable of being decoded by a decoder according to any one of the current or future video decoding standards.
In this embodiment, the decoding method according to the invention is for example implemented by software or hardware through modifications of a decoder initially conforming to one of said standards. The decoding method according to the invention is represented in the form of an algorithm comprising steps D1 to D5 as represented in
According to the embodiment of the invention, the decoding method according to the invention is implemented in a decoding device DO represented in
As illustrated in
On initialization, the code instructions of the computer program PG_D are for example loaded into a RAM memory, MR_D, before being executed by the processing circuit CT_D.
The decoding method represented in
To this end, information representative of the current image ICj to be decoded is identified in the data signal ϕa or ϕb received at the input ENT_D of the decoder DO and as delivered at the end of the coding method of
Referring to
Such a determination step D1 is implemented by a stream analysis device MI_D, such as represented in
Types of progress other than that mentioned above are of course possible and depend on the order of progress chosen in the coding.
According to an exemplary embodiment, said image zones to be decoded are rectangular or square blocks.
According to another exemplary embodiment, the zones of the image to be decoded are matched to the local characteristics of the image, such as, for example, a uniform texture, a constant motion, an object in the foreground in the image, etc.
During a step D2 represented in
In the example represented in
Conventionally, the current image zone Bi is associated with a plurality of image parameters P1, P2, . . . , Pu, . . . , PM, such as 1≤u≤M.
Such parameters are for example:
A parameter Pu considered takes a plurality of values Vu1, Vu2, . . . , Vu2, . . . , Vum, . . . , VuN (1≤m≤N). It concerns for example:
According to the invention, during a step D3 represented in
The step D3 is implemented by a selection device SEL_D represented in
According to an exemplary embodiment, only two decoding methods MDx and MDy are made available to the decoder DO.
More generally and in a way corresponding to the coder CO of
In accordance with the invention, the selection of a decoding method out of at least two decoding methods is a function of the value of at least one image parameter associated with a reference image zone which precedes the current image zone Bi.
According to one embodiment, the reference image zone is composed of a plurality of reference zones BR1, BR2, . . . , BRs, . . . , BRZ (1≤s≤Z) which have been decoded before the current image zone Bi. Referring to
For example, the set EPRs of image parameters associated with the reference zone BRs contains a plurality of image parameters PR1, PR2, . . . , PRk, . . . , PV (1≤k≤V) of the type mentioned above in relation to the current image zone Bi.
In the same way as for the coder CO of
Furthermore, still in a way corresponding to the coding described above, the selection of the decoding method can be implemented as a function of several parameters associated with the reference image zone.
Referring again to
The step D4 is implemented by a decoding device MD_D represented in
To this end, the code word MOCselum associated with the value Vum at the end of the coding step C4a of
The decoding steps D3 and D4 which have just been described above are then implemented for each of the parameters P1, P2, . . . , Pu, . . . , PM to be reconstructed of the current image zone Bi.
During a step D5 represented in
Such a step is implemented by an image reconstruction device URI as represented in
The set of the steps D1 to D5 of
According to an exemplary embodiment, the reduction of the computation resources of the decoder DO of
Such an embodiment makes it possible to optimize the reduction of the complexity of the computations of the decoder DO.
It goes without saying that the embodiments which have been described above have been given in a purely indicative and nonlimiting manner, and that many modifications can easily be made by the person skilled in the art without thereby departing from the scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
1660251 | Oct 2016 | FR | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/FR2017/052840 | 10/16/2017 | WO | 00 |