WO2018178342A1 - Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordnateurs associes - Google Patents

Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordnateurs associes Download PDF

Info

Publication number
WO2018178342A1
WO2018178342A1 PCT/EP2018/058307 EP2018058307W WO2018178342A1 WO 2018178342 A1 WO2018178342 A1 WO 2018178342A1 EP 2018058307 W EP2018058307 W EP 2018058307W WO 2018178342 A1 WO2018178342 A1 WO 2018178342A1
Authority
WO
WIPO (PCT)
Prior art keywords
transforms
list
current block
block
transform
Prior art date
Application number
PCT/EP2018/058307
Other languages
English (en)
Inventor
Victorien LORCY
Pierrick Philippe
Thibaud BIATEK
Original Assignee
B<>Com
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by B<>Com filed Critical B<>Com
Publication of WO2018178342A1 publication Critical patent/WO2018178342A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the field of the invention is that of signal compression, in particular of a digital image or a sequence of digital images, divided into blocks of pixels.
  • the invention relates more particularly to the transformation of a block of pixels, whether or not a prediction. It finds particular application in a context of competition transformations.
  • the encoding / decoding of digital images applies in particular to images from at least one video sequence comprising:
  • the present invention applies similarly to the coding / decoding of 2D or 3D type images.
  • the invention may notably, but not exclusively, apply to the video coding implemented in the current video codecs AVC (for "Advanced Video Coding” in English) and HEVC (for "High Efficiency Video Coding”). and their future extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, post-HEVC, etc.), and the corresponding decoding.
  • AVC Advanced Video Coding
  • HEVC High Efficiency Video Coding
  • the compression of image and video sequences uses transformations. These are applied to a residual signal, obtained by difference between the pixels of a block of the image to be encoded and its prediction.
  • the decoder In order to perform the inverse transform, the decoder must be informed of the selected transform at the encoder. Thus the encoder uses a flag to signal the decoder the transform used. The value of this indicator is focused on a number of bits.
  • the invention improves the situation.
  • the invention particularly aims to overcome these disadvantages of the prior art.
  • an objective of the invention is to propose a solution that makes it possible to improve compression performance without any counterpart in terms of signaling.
  • Another objective of the invention is to propose a solution that offers greater flexibility and makes it possible to adapt the list of transforms to the images to be encoded.
  • the method further comprises the following steps:
  • transform bank Evaluating the transforms of a transformed Nt list, called transform bank, by applying to the decoded current block and calculating at least one performance indicator per applied transform, similar to that of the encoder;
  • the decoder has the possibility of calling into question the list of transforms applied to the blocks of the current image, in order to improve the compression performance. To do this, it evaluates, for the current block, the performance of the transforms of some or all of the transformations available to the encoder as well as to the decoder and uses the result of this evaluation to make a decision. If he decides to modify the list of current transformations, he does so in compliance with modification rules known to the encoder. The modified list of transforms is applied to the next block.
  • the invention proposes an entirely new and inventive approach to video compression, according to which the decoder only makes the decisions made by the encoder but actively contributes to the evolution of the coding parameters.
  • the invention advantageously applies to the decoder integrated in the encoder, and more generally to any decoder.
  • the invention also relates to a method for encoding at least one digital image, said image being divided into a plurality of blocks of pixels processed in a defined order, said method comprising the following steps, implemented for a current block, of predetermined dimensions:
  • Transforming the current block into a transformed block using a transformed transform selected from a list of Ne transformants of a set of transformed Nt;
  • the method further comprises:
  • the coder performs a transform evaluation and decision-making similar to that of the decoder.
  • the list of transforms thus evolves dynamically and synchronously with the encoder and the decoder. In this way, no additional signaling is required between them, which makes it possible to improve the compression performance without compensation on the amount of information to be reported between the encoder and the decoder.
  • the evaluation step comprises calculating a score per transform from the at least one performance indicator, a classification of the transforms using at least the calculated scores and in a sequence of decreasing performance and the challenge step comprises forming a sublist from the best-ranked transforms according to at least one predetermined rule and replacing transforms of at least one sublist of the transformed list applicable by the sub-list formed.
  • An advantage of this embodiment is that it is both simple and effective. A part of the transforms is systematically replaced by the sublist of the most performing transforms according to the performance indicator, without comparison of the sub-list to the initial list. It is understood that in some cases, the operation can be neutral.
  • the classification step further takes into account the scores of the transforms for a plurality of previously processed blocks.
  • One advantage is to make decision-making more reliable by smoothing rankings and avoiding local variations in scores that deviate from the overall pattern.
  • One advantage is that it ensures that certain fixed transforms, therefore non-replaceable, systematically participate in the competition of transforms.
  • the list of applicable transforms being of fixed length equal to Ne
  • the sub-list formed is of fixed length
  • An advantage of this mode is that it maintains a list of applicable transforms Se of fixed size equal to Ne, which is simple to implement.
  • the sub-list formed is of length Nr, which is also fixed.
  • the challenge step compares the scores of the transforms with at least one predetermined threshold and the sublist is formed of the transforms that satisfy at least one criterion related to this at least one threshold.
  • An advantage of this embodiment is that it only selects transforms whose performance is sufficient in the sense of one or more criteria.
  • the number Ne, Nr of transforms contained in the list Se is therefore likely to vary over time.
  • the method comprises a step of validating the calling into question of a list of applicable transforms implementing coded information representative of an authorization or prohibition of questioning of the list. applicable transforms for the next block.
  • An advantage of this embodiment is that the encoder controls the challenge of the list of transforms applicable to the next block by the decoder, using information transmitted in the coded data stream.
  • the validation step comprises a step of evaluating transforms of the transform bank according to a rate-distortion criterion, a step of classifying the transforms evaluated according to this criterion and that the validation step compares the rank obtained according to the debit-distortion criterion and the rank obtained according to the calculated scores and validates the challenge according to a similarity criterion between the two rankings.
  • One advantage is to leave the encoder the validation of the final decision. Only the encoder has access to the source signal and therefore to a ground truth. It is the only one capable of evaluating the impact of a change of transforms decision based on a distortion flow criterion from the reconstructed block and from the original block. According to this embodiment of the invention, the decoder determines that a calling into question of the list of transforms Se is necessary, but it is the encoder that validates the change when its evaluation indicates that it goes into the sense of improved compression.
  • the validation step comprises a reading of said information in the coded data and in that the validation of the questioning of the list of applicable transforms depends on the value of said information.
  • the decoder thus exploits the validity indicator read in the stream to validate or invalidate its proposal to question the list of applicable transforms.
  • the invention also relates to a decoding device adapted to implement the decoding method according to any one of the particular embodiments defined above.
  • This decoding device may of course include the various characteristics relating to the decoding method according to the invention. Thus, the characteristics and advantages of this decoding device are the same as those of the decoding method, and are not detailed further.
  • such a decoding device is included in a terminal.
  • the invention also relates to a coding device adapted to implement the coding method according to any one of the particular embodiments defined above.
  • This coding device may of course include the various characteristics relating to the coding method according to the invention. Thus, the characteristics and advantages of this coding device are the same as those of the coding method, and are not detailed further.
  • such a coding device is included in a terminal, or a server.
  • the invention also relates to a signal carrying a bit stream comprising coded data representative of at least one image, said image being divided into blocks of processed pixels in a defined order, the coded data comprising, for a current block, representative information. an index of a transform applied to this block in a predetermined transform list.
  • the coded data furthermore comprise information representative of an authorization or a prohibition of a questioning of said list for the following block, and, on reception of said signal, a decoder is able to validate a questioning of said list according to the value of said information.
  • the invention also relates to a terminal equipment comprising a decoding device according to the invention and / or a coding device according to the invention.
  • the invention also relates to a computer program comprising instructions for implementing the steps of a method of encoding a digital image sequence as described above, when this program is executed by a processor and a program.
  • computer comprising instructions for implementing the steps of a method of decoding a digital image sequence as described above, when this program is executed by a processor
  • These programs can use any programming language. They can be downloaded from a communication network and / or recorded on a computer-readable medium.
  • the invention finally relates to recording media, readable by a processor, integrated or not integrated with the coding device of an image or a sequence of images and with the decoding device according to the invention, possibly removable, respectively storing a computer program implementing an encoding method and a computer program implementing a decoding method, as described above.
  • FIG. 1 schematically presents lists of transforms implemented by the invention
  • Figure 2 schematically shows the steps of evaluating a set of transforms and decision to change a list of transforms according to the results of the evaluation, according to one embodiment of the invention
  • FIG. 3 schematically shows the steps of a coding method according to a first embodiment of the invention
  • FIG. 4 details the step of competition of transformations according to this first embodiment of the invention
  • FIG. 5 schematically shows the steps of a decoding method according to the first embodiment of the invention
  • FIG. 1 schematically presents lists of transforms implemented by the invention
  • Figure 2 schematically shows the steps of evaluating a set of transforms and decision to change a list of transforms according to the results of the evaluation, according to one embodiment of the invention
  • FIG. 3 schematically shows the steps of a coding method according to a first embodiment of the invention
  • FIG. 4 details the step of competition of transformations according to this first embodiment of the invention
  • FIG. 5 schematically shows the steps of a decoding method according to the first embodiment of
  • FIG. 6 schematically shows the steps of a coding method according to a second embodiment of the invention
  • FIG. 7 details the evaluation and decision steps according to this second embodiment of the invention
  • FIG. 8 schematically shows the steps of a decoding method according to a second embodiment of the invention
  • Figures 9 and 10 illustrate the improvement of compression performance provided by the method according to the invention
  • Figure 11 shows schematically an example of a hardware structure of a coding device according to the invention
  • FIG. 12 schematically shows an example of a hardware structure of a decoding device according to the invention.
  • the invention applies to both an encoder and a decoder of an image sequence.
  • the encoder applies a block coding scheme, in which a block is transformed and the transformed block coefficients are encoded and transmitted to the decoder as a bit stream.
  • the current block Prior to the transformation, the current block can be predicted with respect to one or more blocks already processed and it is a residue block obtained by difference between the predicted block and the original block, which is transformed.
  • the general principle of the invention is based on the evaluation of the transforms of a bank of transforms, at least on the basis of the processing of the current block and on the questioning or not of the predetermined list of transforms for the processing of the block following, depending on the results of this assessment.
  • the encoder and the decoder perform these operations identically so that they result in the same update of the list of transforms applicable to the next block.
  • Bt denotes a bank of evaluated transforms during coding and decoding of a block of a sequence of images, and whose transforms may be used for coding or decoding a next block of the sequence of current images. It comprises a number Nt of transforms, with Nt nonzero integer.
  • Sf a list of transforms, called fixed, in the sense that they are not replaceable by other transforms of the bank Bt. It includes a number Nf of transforms.
  • the transforms in the Sf list are not part of the BT transform bank.
  • Sr designates a sub-list of transforms applicable to the current block in addition to the fixed list Sf, said replaceable, in the sense that they can be deleted and replaced by others contained in the bank.
  • the composition of this sublist can therefore change during the course of treatment.
  • This list includes a variable number Nr of transforms, which may be fixed or variable depending on the embodiment.
  • Se denotes a list called current, which includes all the transforms that are applicable to the current block.
  • the transform evaluation step T1 is described and the current list transformation transform step T2 is applicable to the next block according to a first embodiment of the invention.
  • the transforms are for example of discrete cosine transform type or DCT (for "Discrete Cosine Transform”, in English), transformed into discrete sine or DST (for "Discrete Sine Transform", in English) or transformations derived by learning, of KLT type (for "Karhunen Loeve Transform", in English) or transforms optimized according to a rate-distortion criterion, according to the Arrufat document, entitled “Mode-dependent transform competition for HEVC” and published by the IEEE ICIP 2015 conference.
  • the evaluation step T1 applies to a decoded version of the current block in the spatial domain or to the decoded Res residue block.
  • the prediction step is optional.
  • blocks residues without limitation of scope of the invention.
  • the decoded current block or the decoded residual block the only versions available at the decoder, must be evaluated at the encoder and at the decoder.
  • Step T1 evaluates the transformed Nt T ,, with i integer between 1 and Nt, of the bank of transformations Bt available to the encoder as to the decoder.
  • a quantization of the coefficients of the transformed block is carried out at T12. It produces a quantized transformed residue block ResTQ.
  • At least one IP performance indicator of the T, transform is calculated.
  • This indicator can be obtained from one or more CR evaluation criteria.
  • One of these criteria may be, for example, the number of non-zero coefficients, also called significant, in the optionally transformed transformed block.
  • This criterion is also referred to as "zero standard". Indeed, this measurement gives a good indication of the energy concentration achieved by the transformation of the block and thus provides information on the compression performance of the transform.
  • This criterion can also be based on a number of zero coefficients, a quantization error power measurement if the quantization step is implemented. Advantageously, it can then take into account several criteria, such as for example both the error power and the number of coefficients, by weighting them.
  • the IP indicator obtained is stored in memory, for example a BUFO memory called buffer (for "buffer” in English).
  • T15 One tests in T15 if there remain transformations to be treated. For example, if we chose to treat the transforms in the order of their index i, we check that i is strictly less than the total number of transforms to be processed Nt. If this is the case, increment i and repeat steps T1 to T15 for the next transform.
  • the performance indicators calculated for the current block are used to set t16 values of scores already stored in memory and calculated from at least one previously processed block.
  • it is interesting to consider several previously processed blocks, in order to smooth the results obtained and make them less sensitive to local variations in the characteristics of the blocks of the image. For example, we take into account an IP history on the last K blocks treated with K 20 to calculate the score assigned to a transform, which is a good compromise.
  • the IP performance indicators obtained by the transforms of the bank of transforms on the last K blocks were stored in the BUFO memory and all these IP performance indicators are exploited to calculate a score per transform (for example an averaged score or a combination of averaged scores, including for example averages of the IP performance indicators, the median values of the IP performance indicators or the cumulative IP performance indicators of each of the transforms.
  • a score per transform for example an averaged score or a combination of averaged scores, including for example averages of the IP performance indicators, the median values of the IP performance indicators or the cumulative IP performance indicators of each of the transforms.
  • a smoothed value Zcl of the current score can be calculated as a weighted sum of a value Zh stored in memory and the current value Zc:
  • the IP performance indicators obtained by the transforms for the current block Bc can be combined with IP performance indicators initialized beforehand for each of the transforms of the bank.
  • This initialization can be predetermined, identically to the encoder and the decoder, or inherited from the previous image, or determined by the encoder.
  • the encoder must transmit it to the decoder in a header in order to ensure the encoder / decoder synchronization. For example, it inserts this information in an SPS header (for "Sequence Parameter Set" in English) comprising the parameters of the image sequence or in a PPS (for "Picture Parameter Set”) header. English) including the parameters of the current image.
  • the scores are updated, they are classified in T17 for example according to a descending order of performance, or in a predefined order of transformations. For example, if the calculated score corresponds to a number of significant coefficients ("norm-zero"), the ranking is performed according to increasing values of the scores, the first ranked transform being that for which the transformed current block comprises the least significant coefficients.
  • Si of transformed Nt classified, which one stores in memory in T18. S, therefore corresponds to the reordered bank of transformations Bt according to a defined criterion, for example according to the order of performance.
  • the list Se of applicable transforms is challenged by applying predetermined decision rules common to the encoder and the decoder.
  • a predetermined rule is that the number of transforms contained in the list Se can vary during the encoding, therefore the number N r of transforms in the list Sr can be changed .
  • this threshold ⁇ can be dynamically calculated by setting it at a fraction of the average of the values of the scores. In practice a threshold value equal to 0.5 gives good results for this fraction.
  • the number of transforms NO which constitute the sub-list S0 corresponds to the new value of Nr, and the transforms of the sub-list S0 replace those of the list Sr in T22.
  • We have a new Se list of transforms applicable to the next block, which includes the Nf fixed transformants and the transformed Nrs of Sr. So we update the value of Ne Nf + Nr and Se in T22.
  • the new list Se and the new value Ne are stored in memory.
  • Nrs ordered from S0 are compared with those of Sr and actual updating is performed if a difference exists.
  • a predetermined rule is that the number of elements in the list Ne is fixed and common to the encoder and the decoder. As a result, the number of elements Nr of the list of replaceable transforms Sr is fixed as well.
  • the list S0 is formed in T21 from the first Nr transforms of the list S, according to the updated classification.
  • T22 we set to play the list Sr of transformable Nrs replaceable from S0 and the list Se applicable transforms, which is also reordered according to the new list Sr.
  • the new list Se concatenating the list Sf and the list Sr, the transformed from the Sf list being placed first. Then, the new list Se and the new value Ne are stored in memory.
  • the IP performance indicator used is the zero standard, which counts, for each evaluated transform, the number of significant coefficients in the transformed residual block Res or ResT of the current block.
  • Example 1 Questioning all the transforms in the Se list with Ne constant
  • BT ⁇ DCT2, DST7, DCT8, DST1, DCT5 ⁇ .
  • DCT2 refers to Type II DCT and the fact that it is applied to both rows and columns of the block.
  • the IP performance indicator considered is the zero standard. It is calculated in T13 for each transform.
  • the transforms are classified according to values of increasing scores and form an ordered list If Nt transformed. For example, the following results are observed:
  • S consists of the ordered list and is worth ⁇ DCT2, DCT8, DST1, DCT5, DST7 ⁇ .
  • Example 2 Editing by deleting / adding one or more transforms
  • SI ⁇ DCT2, DST7, DCT8, DST1, DCT5 ⁇ .
  • such a coding method is implemented by a coding device as described in relation with FIG. 11.
  • the sequence of images II, 12..., IJ to be coded, with J not nu n, is provided as input to the coding method.
  • the coding method outputs a bit stream STR representative of the image sequence provided at the input. This bit stream can be transmitted in the form of a stream or a file to the decoder.
  • the coding of the image sequence II, 12, IJ is done image by image according to a coding order previously established and known to the decoder.
  • the images may be coded in time order II, 12, or in another order, for example II, 13, 12, IJ.
  • an image to be encoded of the image sequence II, 12, IK, called the current image is divided into blocks of maximum size, each block of maximum size can be divided into blocks smaller ones.
  • a block of maximum size is 32x32 pixels in size.
  • Such a block of maximum size can be subdivided into square or rectangular sub-blocks, for example of size 16x16, 8x8, 4x4, 16x8, 8x16, ....
  • a current block Bc to be encoded an image is selected according to a direction of travel of the predetermined image.
  • the current block Bc is predicted with respect to an already processed block, called the predictor block P, of a reference image I R , according to a predetermined prediction mode.
  • a residue block Res is obtained by difference between the current block Bc and the predictor block P.
  • the prediction residue Res is then transformed by a transform of a predetermined list Se and for example of type DCT or DST or other.
  • This predetermined list includes Ne transformed, whose transformed Nf are fixed and N r transformed are replaceable.
  • the initial state of the list Se is predetermined (known from the encoder and the decoder), or inherited from the previous image, or determined by the encoder. If the encoder determines this start list, it must transmit it to the decoder in a header (for example the header PPS including the parameters of the current image (for "Picture Parameter Set", in English), or the SPS header including the parameters of the sequence of images (for "Sequence Parameter Set” in English) to ensure synchronization encoder / decoder.
  • a header for example the header PPS including the parameters of the current image (for "Picture Parameter Set", in English), or the SPS header including the parameters of the sequence of images (for "Sequence Parameter Set” in English
  • the coder implements, in a known manner and for example described in the document by Zhao et al. already mentioned, a competition of transforms, which consists in successively applying to the residual block Res the transforms of the predetermined list Se of transforms, to evaluate a performance of the compression performed by each of them according to a criterion of the type of debit-distortion, then to select the best one for the current residue block Res.
  • the current residue block Res is transformed by the transform T n .
  • the transformed residue block Res T obtained is quantized.
  • a binary coding cost R of the coefficients of the transformed residual block is evaluated, for example, using an entropy coder.
  • E34 an inverse quantization is applied to the quantized transformed residue block Res T Q, then to E35 the inverse transform of Tn.
  • E36 a distortion D between the block Res' obtained and the input block Res is evaluated.
  • T n o the selected transform.
  • the quantized residual block ResQ [no] is then coded in E9, by entropy coding, for example a CABAC coder described in D. Marpe, H. Schwarz, T. Wiegand, "Context-based adaptive binary arithmetic coding in the H.264 / AVC standard video compression" IEEE Transactions on Circuits and Systems for Video Technology (Volume: 13, Issue: 7), pages 620 - 636, July 2003, in the form of an STR encoded data stream.
  • entropy coding for example a CABAC coder described in D. Marpe, H. Schwarz, T. Wiegand, "Context-based adaptive binary arithmetic coding in the H.264 / AVC standard video compression" IEEE Transactions on Circuits and Systems for Video Technology (Volume: 13, Issue: 7), pages 620 - 636, July 2003, in the form of an STR encoded data stream.
  • the selected transform is identified by a Tr-ID code which is also subject to entropy coding.
  • the code chosen to identify the selected transform T n is of variable length and depends on the classification of the transform in the list Se.
  • a list Se comprising three transforms is considered. They are associated with the variable length codes shown in Table 1 below:
  • the residue block Res' [no] obtained during the step E3 by inverse quantization and inverse transformation with the aid of the no selected transform is presented at the input of the step T1 for evaluation of the transforms of the bank BT. according to the invention and already described above in relation with FIG. 2.
  • IP performance indicators of each transform of the bank BT on the decoded spatial residue block Res' are evaluated, then scores from these indicators, in a manner identical to that of the decoder.
  • the transformed NTs of the bank are ranked in an ordered list Si according to the performance indicator, for example from the best score to the worst, or according to another predetermined criterion.
  • the list S, obtained and the associated scores are then processed by the step T2 which determines a list
  • E5 we add the contribution of the reconstructed block Bc R to the reconstructed current image ICR.
  • E6 we test in E6 if the current block Bc is the last of the image. If there are blocks to code, the next block is selected as the new current block in E7. Otherwise the reconstructed image is filtered at E8 in order to obtain a reference image that can be used for the coding of the following images.
  • the STR bit stream can be directly presented to a decoder or transmitted to it via a telecommunications network in the form of a stream or a file.
  • the data stream STR has been generated via the coding method presented in relation to FIG. 3.
  • the data stream STR is provided at the input of a decoding device DEC, as described in connection with FIG. 12.
  • the decoding of the stream is done frame by frame. For each image to be decoded, the decoding method realizes the decoding of the block-by-block image. A current image is considered to be decoded.
  • a first current block B c of the image le is determined.
  • the data of the bitstream STR corresponding to the block B c are decoded by an entropy decoding module to provide at Dl syntax elements relating to the coding mode of the current block B c and at D2 a group of coefficients of a res residue block TQ of a prediction of the current block B c .
  • the decoded syntax elements include a prediction mode information identifying for the current block B c a prediction mode among a plurality of predetermined prediction modes.
  • a step D3 the residue res'TQ residual coefficients of the block B c undergo inverse quantification and a dequantized residue block Res is obtained.
  • a tr-ID index of the inverse transform to be applied to the residue of the current block Bc is decoded from the bit stream into the predetermined list Se of transforms, identical to that used by the coder.
  • the res'TQ residue of the current block Bc is applied to the inverse transform identified by the decoded Tr-ID index.
  • the current block is predicted according to the decoded prediction mode in D1.
  • the prediction can be based, in a so-called inter mode, on previously decoded and reconstructed reference images (IRO, IRI, ⁇ ), or, in a mode called intra, from blocks already decoded for example in the same picture.
  • IRO, IRI, ⁇ previously decoded and reconstructed reference images
  • intra intra
  • the predicted block P ' is added to the spatial residual block RES' in order to obtain the local reconstruction Rec which will be used for the prediction of the next blocks.
  • T1 the performances of each of the transformed Nt of the bank for the spatial residual block Res', according to the invention, are evaluated as previously described in relation to FIG. 2.
  • the residue is transformed by the transform T m of the bank BT, then quantified;
  • IP performance indicator is evaluated according to one of the previously described embodiments.
  • a score is assigned to them from IP performance indicator values and they are ranked in an Si list based on the value of that score, for example from best score to worst.
  • the scores in the list If are formed from the smoothed performance indicator values over several blocks, as previously described.
  • a list SO is formed from the Nt scores determined in T1, for example, when Nr can vary, by applying a predetermined threshold or, when Nr is fixed, by selecting the best Nr transformed;
  • the image Ic R is filtered in DU and saved in a list of reference images I1 R , I2 R , ... to be used later as reference when decoding subsequent images of the image sequence.
  • An advantage of the embodiment which has just been described in relation to FIGS. 3 and 5 is that the encoder and the decoder are capable of automatically modifying the list Se of transforms applicable to the current block, optimally and synchronously. No additional signage is required.
  • the transform competition step E3 is replaced by a step E3 ', which will now be described in relation with FIG. 7.
  • the step E3' competes and evaluates not only the transformed Ne of the current list Se, but also, as the case may be, the remaining transformed Nt-Nrs in the bank of transforms Bt, according to a rate-distortion criterion, similar to that described in the first mode.
  • a rate-distortion cost is associated with each applied transform and is stored in memory BUF1.
  • the selection of the best transform for the current block is unchanged in the sense that it always takes place among the transformed Ne of the list Se.
  • the step T1 of evaluation of the transforms of the BT bank already described is also unchanged. It produces an ordered list If transforms, for example from the best to the worst value of a score according to one or more predetermined performance indicators, in a manner similar to that already described for the first mode.
  • the scores can be those of the current block Bc or obtained by smoothing the IP performance indicator values of the last K blocks processed.
  • the decision step T2 is modified and replaced by a step T2 '.
  • a sub-list S0 is formed in T21 ', to challenge the sub-list Sr, similarly to what has been previously described, but it does not automatically replace the old list Se. It constitutes an update proposal sent to the validation unit T4 in step T22 ', which requires a validation for the actual update to be executed.
  • the coding method further comprises a step T3 for evaluating the transforms of the bank BT from the bitrate-distortion costs produced by the competition step E3 '.
  • this evaluation comprises in step T31 'where, for each transform, a score is calculated from its cost-distortion cost calculated at E3'.
  • the transforms of the bank are ordered and stored in a list Si', according to these scores, for example according to a decreasing cost order. As previously described, this classification can be based on the costs obtained for the current block Bc alone or on the previously processed K blocks including the current block.
  • the list Si is constructed on the basis of an IP performance indicator, for example the "zero standard" which does not rely on the distortion actually introduced by the transformation and quantization steps. On the other hand, it only uses information that is available to both the encoder and the decoder.
  • a step 14 evaluates the sub-list proposal SO made in 12 'concerning an update of the list Se.
  • step T44 updates the lists Se and Sr and as well as the number Ne, Nr of transforms they comprise, from the sub-list SO coming from the decision step T2 '. If bv is zero, then the Se and Sr lists are unchanged.
  • the coder signals to the decoder whether or not he validates the update proposal produced by the decision step. To do this, it relies on an evaluation of the distortion actually introduced by each of the transforms and on the actual cost of coding the current block. This additional mechanism makes it possible to guarantee any risk of drifting from the Se list.
  • Steps DO to DU are unchanged.
  • the step T1 of evaluation of the scores of the bank of transforms for the current block Bc is unchanged. It produces a list Si containing the classification of the transforms of the bank.
  • a decision concerning the change of the list Se is taken in T2 ', but unlike the step T2 previously described in relation with FIG.
  • the step T2' produces an SO update proposal Se, which is then processed by a validation step 14 '.
  • This validation step 14 ' is based on the value of a validity indicator bv, extracted from the bit stream and decoded during a step D4 '. For example, as previously described for the coding method in relation to FIGS. 6 and 7, this indicator takes the value 1 to indicate that the coder validates the change and the value 0 if it invalidates it.
  • step 14 ' stores the new list Se validated in a BUF memory. It will be used to select the inverse transform to apply to the next block.
  • the update of the list Se is not stored in memory and the list remains unchanged.
  • the calling into question of the list Se of transforms by the decoder is subject to validation of the encoder.
  • the latter having access to the source signal, unlike the decoder, it is more likely to determine the most suitable transform or transform the images to be processed.
  • the performances of the invention are evaluated when it is implemented in an encoder and a decoder according to the first embodiment of the invention, that is to say without control. of the encoder.
  • transform is defined as a pair of transforms, the first being applicable to the lines of the current block, the second to the columns of the block resulting from the first or vice versa.
  • the method according to the invention consists first of all in evaluating the transforms of the bank.
  • the IP performance indicators of the two transforms of the bank Bt are calculated, and are stored in a BUFO memory.
  • the IP performance indicator value assigned to the index transform i for a block n is denoted nz ni .
  • the indicator is based on a number of zero coefficients in the current block.
  • a score is or is calculated by smoothing the IP values of each transformed as follows:
  • the transforms of the bank BT DCT8xDCT8 and IDxDST7 are classified by increasing score in the list Si.
  • a n y n , i - y n , 2
  • the sign of Ay n gives a clear indication of the energy compaction provided by the two transforms. If this difference is negative, then it is the DCT8xDCT8 which better compresses the energy on a smaller number of significant coefficients. If this difference is positive, then it is the opposite and it is the IDxDST7 which is the most efficient.
  • the rate-distortion cost and zero-standard of the transformed and quantized residual are extracted for all transforms in the current list and the bank.
  • the calculation of the performance indicator and the decision-making are as described in steps 5 and 6 of the decoding method.
  • the evolution of the performance indicator is illustrated, as well as the changes in the list of transforms Se applicable during the coding of several consecutive images.
  • the sequence used illustrates a real-world use case, representing natural content on the first 620 blocks and computer-generated content on the remaining blocks.
  • the difference of score ⁇ ⁇ informs about the transform which compresses the energy better.
  • the performance indicator does not make it possible to globally distinguish a more efficient transform than another.
  • changes in the list of transforms are localized.
  • the IDxDST7 transform becomes the best option between blocks 620 and 1500.
  • module and “entity”, used in this document, may correspond either to a software component, or to a hardware component, or to a set of hardware and / or software components, capable of implementing perform the function (s) described for the module or entity concerned.
  • module and/or entity
  • module may correspond either to a software component, or to a hardware component, or to a set of hardware and / or software components, capable of implementing perform the function (s) described for the module or entity concerned.
  • FIG. 11 an example of a simplified structure of a device 100 for encoding a digital image according to the invention is now presented.
  • the device 100 implements the coding method according to the invention which has just been described in relation with FIG.
  • the device 100 comprises a processing unit 110, equipped with a processor ⁇ , and driven by a computer program Pgl 120, stored in a memory 130 and implementing the method according to the invention.
  • the code instructions of the computer program Pgi 120 are for example loaded into a RAM memory before being executed by the processor of the processing unit 110.
  • the processor of the processing unit 110 sets implement the steps of the method described above, according to the instructions of the computer program 120.
  • the device 100 comprises a reprogrammable calculation machine or a dedicated calculation machine, capable of and configured to:
  • TRANS Transform a current block into a transformed block using a transform selected from a list Se of Ne transformed from a set of Nt transforms, with Nc ⁇ Nt;
  • Coding COD the transformed block intended to produce coded data representative of the transformed block
  • Transform TRANS -1 the decoded transformed block using the selected transform; Evaluate EVAL transforms of the transform BT bank for the decoded block from at least one performance indicator;
  • the computing machine is configured to implement the embodiments of the invention which have just been described in its different embodiments.
  • it is able to validate or not the decision to change the list of transforms Se and to encode an information representative of an authorization or a prohibition of questioning of the list applicable to the next block , depending on this validation.
  • the device 100 further comprises a storage unit Mi 140, such as a memory, for example of the buffer memory type (for "buffer", in English), able to store for example the list Se and evaluation results or scores of the transforms of the bank BT.
  • a storage unit Mi 140 such as a memory, for example of the buffer memory type (for "buffer", in English), able to store for example the list Se and evaluation results or scores of the transforms of the bank BT.
  • These units are driven by the ⁇ processor of the processing unit 110.
  • such a device 100 may be integrated in a terminal equipment TU.
  • the device 100 is then arranged to cooperate at least with the following module of the terminal TU: a data transmission / reception module E / R, through which the bit stream TB or the compressed file FC is transmitted in a network telecommunications, for example a wired or wireless network or a wireless network.
  • a network telecommunications for example a wired or wireless network or a wireless network.
  • FIG. 12 an example of a simplified structure of a device 200 for decoding a digital image according to the invention is now presented.
  • the device 200 implements the decoding method according to the invention which has just been described with reference to FIGS. 4 and 8.
  • the device 200 comprises a processing unit 210, equipped with a processor ⁇ 2, and driven by a computer program Pg2 220, stored in a memory 230 and implementing the method according to the invention.
  • the code instructions of the computer program Pg2 220 are for example loaded into a RAM before being executed by the processor of the processing unit 210.
  • the processor of the processing unit 210 sets implement the steps of the method described above, according to the instructions of the computer program 220.
  • the device 200 comprises a reprogrammable calculation machine or a dedicated calculation machine, capable of and configured for:
  • Transform TRANS "1 the coefficients of the current block into a transformed decoded block, from a transform belonging to a list Se of Ne transformed, said to be applicable;
  • the computing machine is configured to implement the embodiments of the invention which have just been described in its different embodiments.
  • it is capable of decoding the information representative of a bv authorization or prohibition to question the list of transforms Se depending on the value of this information.
  • the device 200 further comprises an M2 storage unit 240, such as a memory, for example of the buffer memory type, capable of storing, for example, the lists Se, Sr, Sf, BT and evaluation results or scores of the transforms. of the bank BT.
  • M2 storage unit 240 such as a memory, for example of the buffer memory type, capable of storing, for example, the lists Se, Sr, Sf, BT and evaluation results or scores of the transforms. of the bank BT.
  • These units are driven by the processor ⁇ 2 of the processing unit 210.
  • such a device 200 may be integrated in a terminal equipment TU '.
  • the device 200 is then arranged to cooperate at least with the following modules of the terminal TU ': a data transmission / reception module E / R, via which the bit stream TB or the compressed file FC is transmitted in a telecommunications network, for example a wired or wireless network or a wireless network; a display module DISP of the image or of the image sequence reconstructed by the decoding device 200.
  • a terminal equipment TU, TU ' can integrate both a coding device and a decoding device according to the invention.
  • This is for example a mobile terminal, tablet or smartphone type (for "smartphone" in English).
  • the encoding and decoding methods described above can be integrated into standard video encoders / decoders such as HEVC / H.265, AVC / H.264 or from a future Post-HEVC standard or into any type of encoder / decoder. video owners.
  • the coding and decoding methods according to the invention also apply to all types of coders / decoders of still images and more generally to signals implementing a competition of transforms.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention concerne un procédé de décodage d'au moins une image numérique, à partir de données codées par un encodeur et représentatives de ladite image, ladite image (Ij) étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant (C') : - Décodage des coefficients du bloc courant à partir de données codées; - Transformation des coefficients décodés du bloc courant en un bloc courant décodé, à partir d'une transformée appartenant à une liste (Sc) de Nc transformées, dites applicables; - Reconstruction de l'image à partir du bloc courant décodé; - Evaluation des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, par application au bloc courant décodé et calcul d'au moins un indicateur de performance (IP) par transformée appliquée, de façon similaire à celle de l'encodeur; et - Remise en cause des transformées de la liste de transformées (Sc) applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.

Description

Procédé de décodage d'au moins une image numérique, procédé de codage, dispositifs, équipement terminal et programmes d'ordinateurs associés
1. Domaine de l'invention
Le domaine de l'invention est celui de la compression de signal, en particu lier d'une image numérique ou d'une séquence d'images numériques, divisée en blocs de pixels.
L'invention concerne plus particulièrement la transformation d'un bloc de pixels, issu ou non d'une prédiction. Elle trouve notamment son application dans un contexte de compétition de transformées.
Le codage/décodage d'images numériques s'applique notamment à des images issues d'au moins une séquence vidéo comprenant :
- des images issues d'une même caméra et se succédant temporellement (codage/décodage de type 2D),
- des images issues de différentes caméras orientées selon des vues différentes (codage/décodage de type 3D),
- des composantes de texture et de profondeur correspondantes (codage/décodage de type 3D),
- etc.
La présente invention s'applique de manière similaire au codage/décodage d'images de type 2D ou 3D.
L'invention peut notamment, mais non exclusivement, s'appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels AVC (pour « Advanced Video Coding », en anglais) et HEVC (pour « High Efficiency Video Coding », en anglais) et leurs extensions futures (MVC, 3D-AVC, MV- HEVC, 3D-HEVC, post-HEVC, etc), et au décodage correspondant.
2. Présentation de l'art antérieur
La compression de séquences d'images et de vidéo fait appel à des transformations. Celles- ci sont appliquées sur un signal résiduel, obtenu par différence entre les pixels d'un bloc de l'image à coder et sa prédiction.
On connaît de l'article de Zhao, J. Chen, M . Karczewicz, X. Li et C. Wei-Jung, intitulé "Enhanced Multiple Transform for Video Coding,", publié par la conférence Data Compression Conférence (DCC), en 2016, le fait de provisionner une liste de plusieurs transformées pour un mode de codage donné. Ainsi le codeur a la possibilité de sélectionner dans cette liste une transformée adaptée au résidu courant. Par exemple, dans la solution décrite, une liste fixe de 5 transformées est dédiée au codage inter. Elle comprend des transformées DCT de type 2 et 8 et DST de type 7.
Afin d'effectuer la transformée inverse, le décodeur doit être informé de la transformée sélectionnée au codeur. Ainsi le codeur utilise un indicateur pour signaler au décodeur la transformée utilisée. La valeur de cet indicateur est portée sur un certain nombre de bits.
Le fait d'accroître le nombre de transformées permet d'améliorer les performances de compression.
3. Inconvénients de l'art antérieur
La compétition de transformées implique un surcoût de signalisation systématique, qui minimise le bénéfice apporté par le nombre de transformées.
La solution décrite dans le document cité offre un bon compromis entre nombre de transformées et signalisation, cependant la liste de transformées pour un contexte de codage donné est figée.
Or il apparaît que pour certaines images, seules certaines transformées de la liste proposée sont performantes et que pour d'autres, une plus grande diversité de transformées serait nécessaire pour obtenir une meilleure compression.
4. Objectifs de l'invention
L'invention vient améliorer la situation.
L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur.
Plus précisément, un objectif de l'invention est de proposer une solution qui permettre d'améliorer les performances de compression sans contrepartie en termes de signalisation.
Un autre objectif de l'invention est de proposer une solution qui offre une plus grande flexibilité et permette d'adapter la liste de transformées aux images à coder.
5. Exposé de l'invention
Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de décodage d'au moins une image numérique, à partir de données codées par un encodeur et représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant :
- Décodage des coefficients du bloc courant à partir de données codées; - Transformation du bloc courant en un bloc courant décodé, à partir d'une transformée appartenant à une liste de Ne transformées, dites applicables;
- Reconstruction de l'image à partir du bloc courant décodé;
Selon l'invention, le procédé comprend en outre les étapes suivantes :
- Evaluation des transformées d'une liste de Nt transformées, dite banque de transformées, par application au bloc courant décodé et calcul d'au moins un indicateur de performance par transformée appliquée, de façon similaire à celle de l'encodeur;
- Remise en cause des transformées de la liste de transformées applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.
Avec l'invention, le décodeur a la possibilité de remettre en cause la liste de transformées appliquées aux blocs de l'image courante, en vue d'améliorer les performances de compression. Pour ce faire, il évalue, pour le bloc courant, les performances des transformées d'une partie ou de la totalité des transformées disponibles au codeur comme au décodeu r et exploite le résu ltat de cette évaluation pour prendre une décision. S'il décide de modifier la liste de transformées courantes, il le fait dans le respect de règles de modification, connues de l'encodeur. La liste de transformées ainsi modifiée est appliquée au bloc suivant.
L'invention propose une approche tout-à-fait nouvelle et inventive de la compression vidéo, selon laquelle le décodeur ne fait plus que subir les décisions prises par l'encodeur mais contribue activement à l'évolution des paramètres de codage.
L'invention s'applique avantageusement au décodeur intégré au codeur, et plus généralement à tout décodeur.
L'invention concerne aussi un procédé de codage d'au moins une image numérique, ladite image étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc courant, de dimensions prédéterminées :
- Transformation du bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste de Ne transformées d'un ensemble de Nt transformées ;
- Encodage du bloc transformé destiné à produire des données codées représentatives du bloc transformé ;
- Insertion des données codées dans un train binaire représentatif de l'image codée ;
Selon l'invention, le procédé comprend en outre :
Décodage du bloc encodé ; Transformation du bloc décodé à l'aide de la transformée sélectionnée, en un bloc courant décodé ;
- Evaluation d'une liste Nt transformées, dite banque de transformées, par application au bloc courant décodé et calcul d'au moins un indicateur de performance par transformée appliquée, de façon similaire à celle d'un décodeur;
- Remise en cause des transformées de la liste de transformées applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues du décodeur.
Avec l'invention, le codeur réalise une évaluation des transformées et une prise de décision similaires à celles du décodeur. La liste de transformées évolue ainsi de façon dynamique et synchrone au codeur comme au décodeur. De cette manière, aucune signalisation supplémentaire n'est requise entre eux, ce qui permet d'améliorer les performances de compression sans contrepartie sur la quantité d'informations à signaler entre le codeur et le décodeur.
Les différents modes ou caractéristiques de réalisation mentionnés ci-après peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux caractéristiques du procédé de décodage et/ou du procédé de codage défini ci-dessus.
Selon un aspect de l'invention, l'étape d'évaluation comprend un calcul d'un score par transformée à partir du au moins un indicateur de performance, un classement des transformées au moins à l'aide des scores calculés et selon un ordre de performance décroissante et l'étape de remise en cause comprend une formation d'une sous-liste à partir des transformées les mieux classées selon au moins une règle prédéterminée et u n remplacement de transformées d'au moins une sous-liste de la liste transformées applicables par la sous-liste formée.
Un avantage de ce mode de réalisation est qu'il est à la fois simple et efficace. Une partie des transformées est systématiquement remplacée par la sous-liste des transformées les plus performantes selon l'indicateur de performance, sans comparaison préalable de la sous-liste à la liste initiale. On comprend que dans certains cas, l'opération peut être neutre.
Selon un autre aspect de l'invention, l'étape de classement prend en outre en compte les scores des transformées pour une pluralité de blocs précédemment traités.
Un avantage est de rendre la prise de décision plus fiable en lissant le classement et en évitant les variations locales de scores qui dévieraient de la tendance générale observée.
Selon encore un autre aspect de l'invention, la liste de transformées applicables au bloc courant comprend une sous-liste de Nf transformées fixes et une sous-liste de Nr transformées remplaçables, avec Ne = Nf + Nr et la banque de transformées comprend au moins la sous-liste de transformées remplaçables.
Un avantage est qu'on garantit que certaines transformées fixes, donc non remplaçables, participent systématiquement à la compétition de transformées.
Selon un autre aspect de l'invention, la liste de transformées applicables étant de longueur fixe égale à Ne, la sous-liste formée est de longueur fixe.
Un avantage de ce mode est qu'il maintient une liste de transformées applicables Se de taille fixe égale à Ne, ce qui est simple à mettre en œuvre.
Dans le cas où seulement Nr≤Nc transformées sont remplaçables, la sous-liste formée est de longueur Nr, qui est fixe elle aussi.
Selon encore un autre aspect de l'invention, l'étape de remise en cause compare les scores des transformées à au moins un seuil prédéterminé et la sous-liste est formée des transformées qui satisfont au moins un critère lié à ce au moins un seuil.
Un avantage de ce mode de réalisation est qu'il ne sélectionne que les transformées dont les performances sont suffisantes au sens d'un ou plusieurs critères. Le nombre Ne, Nr de transformées contenues dans la liste Se est donc susceptible de varier au cours du temps.
Selon encore un autre aspect de l'invention, le procédé comprend une étape de validation de la remise en cause de liste de transformées applicables mettant en œuvre une information codée représentative d'une autorisation ou d'une interdiction de remise en cause de la liste de transformées applicables pour le bloc suivant.
Un avantage de ce mode de réalisation est que le codeur contrôle la remise en cause de la liste de transformées applicables au bloc suivant par le décodeur, à l'aide d'une information transmise dans le flux de données codées.
Avantageusement, en ce qui concerne le procédé de codage, l'étape de validation comprend une étape d'évaluation des transformées de la banque de transformées selon un critère débit-distorsion, une étape de classement des transformées évaluées selon ce critère et en ce que l'étape de validation compare le classement obtenu selon le critère débit-distorsion et le classement obtenu selon les scores calculés et valide la remise en cause en fonction d'un critère de similarité entre les deux classements.
Un avantage est de laisser à l'encodeur la validation de la décision finale. Seul l'encodeur a accès au signal source et donc à une vérité terrain. Il est seul capable d'évaluer l'impact d'une décision de changement de transformées sur la base d'un critère débit distorsion à partir du bloc reconstruit et du bloc original. Selon ce mode de réalisation de l'invention, le décodeur détermine qu'une remise en cause de la liste de transformées Se est nécessaire, mais c'est l'encodeur qui valide le changement lorsque son évaluation lui indique qu'il va dans le sens d'une amélioration de la compression.
Avantageusement, en ce qui concerne le procédé de décodage, l'étape de validation comprend une lecture de ladite information dans les données codées et en ce que la validation de la remise en cause de la liste de transformées applicables dépend de la valeur de ladite information.
Le décodeur exploite donc l'indicateur de validité lu dans le flux pour valider ou invalider sa proposition de remise en cause de la liste de transformées applicables.
L'invention concerne également un dispositif de décodage adapté pour mettre en œuvre le procédé de décodage selon l'un quelconque des modes particuliers de réalisation définis ci-dessus. Ce dispositif de décodage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de décodage selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif de décodage sont les mêmes que ceux du procédé de décodage, et ne sont pas détaillés plus amplement.
Selon un mode particulier de réalisation de l'invention, un tel dispositif de décodage est compris dans un terminal.
L'invention concerne également un dispositif de codage adapté pour mettre en œuvre le procédé de codage selon l'un quelconque des modes particuliers de réalisation définis ci-dessus.
Ce dispositif de codage pourra bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l'invention. Ainsi, les caractéristiques et avantages de ce dispositif de codage sont les mêmes que ceux du procédé de codage, et ne sont pas détaillés plus amplement.
Selon un mode particulier de réalisation de l'invention, un tel dispositif de codage est compris dans un terminal, ou un serveur.
L'invention concerne aussi un signal portant un train binaire comprenant des données codées représentatives d'au moins une image, ladite image étant divisée en blocs de pixels traités dans un ordre défini, les données codées comprenant, pour un bloc courant, une information représentative d'un index d'une transformée appliquée à ce bloc dans une liste de transformées prédéterminé.
Selon l'invention, les données codées comprennent en outre une information représentative d'une autorisation ou d'une interdiction d'une remise en cause de ladite liste pour le bloc suivant, et, sur réception dudit signal, un décodeur est apte à valider une remise en cause de ladite liste en fonction de la valeur de ladite information.
L'invention concerne en outre un équipement terminal comprenant un dispositif de décodage selon l'invention et/ou un dispositif de codage selon l'invention.
L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de codage d'une séquence d'images numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur et un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de décodage d'une séquence d'images numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur
Ces programmes peuvent utiliser n'importe quel langage de programmation. Ils peuvent être téléchargés depuis un réseau de communication et/ou enregistrés sur un support lisible par ordinateur.
L'invention se rapporte enfin à des supports d'enregistrement, lisibles par un processeur, intégrés ou non au dispositif de codage d'une image ou d'une séquence d'images et au dispositif de décodage selon l'invention, éventuellement amovible, mémorisant respectivement un programme d'ordinateur mettant en œuvre un procédé de codage et un programme d'ordinateur mettant en œuvre un procédé de décodage, tel que décrits précédemment.
6. Liste des figures
D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la figure 1 présente de façon schématique des listes de transformées mises en œuvre par l'invention ; la figure 2 présente de façon schématique les étapes d'évaluation d'un ensemble de transformées et de décision de changement d'une liste de transformées en fonction des résultats de l'évaluation, selon un mode de réalisation de l'invention ; la figure 3 présente de façon schématique les étapes d'un procédé de codage selon un premier mode de réalisation de l'invention ; la figure 4 détaille l'étape de compétition de transformées selon ce premier mode de réalisation de l'invention ; la figure 5 présente de façon schématique les étapes d'un procédé de décodage selon le premier mode de réalisation de l'invention ; la figure 6 présente de façon schématique les étapes d'un procédé de codage selon un deuxième mode de réalisation de l'invention ; la figure 7 détaille les étapes d'évaluation et de décision selon ce deuxième mode de réalisation de l'invention ; la figure 8 présente de façon schématique les étapes d'un procédé de décodage selon un deuxième mode de réalisation de l'invention ; les figures 9 et 10 illustrent l'amélioration des performances de compression apportées par le procédé selon l'invention ; la figure 11 présente de façon schématique un exemple de structure matérielle d'un dispositif de codage selon l'invention ; et la figure 12 présente de façon schématique un exemple de structure matérielle d'un dispositif de décodage selon l'invention.
7. Description d'un mode de réalisation particulier de l'invention
L'invention s'applique à la fois à un codeur et à un décodeur d'une séquence d'images. Le codeur applique un schéma de codage par blocs, selon lequel un bloc est transformé et les coefficients du bloc transformés sont encodés et transmis au décodeur sous la forme d'un train binaire. Préalablement à la transformation, le bloc courant peut être prédit par rapport à un ou plusieurs blocs déjà traités et c'est un bloc résidu obtenu par différence entre le bloc prédit et le bloc original, qui est transformé.
Le principe général de l'invention repose sur l'évaluation des transformées d'une banque de transformées, au moins sur la base du traitement du bloc courant et sur la remise en cause ou non de la liste de transformées prédéterminé pour le traitement du bloc suivant, en fonction des résultats de cette évaluation.
Le codeur et le décodeur réalisent ces opérations de façon identique de telle sorte qu'ils aboutissent à la même mise à jour de la liste de transformées applicable au bloc suivant.
On présente tout d'abord des modes de mises en œuvre de l'évaluation des transformées de la banque de transformées et de la décision de changement de la liste de transformées selon l'invention, puis un procédé de codage et un procédé de décodage mettant en œuvre ces différents modes de réalisation de l'invention.
Dans la suite de la description, on a recours à plusieurs ensembles et listes de transformées, qui sont illustrés par l'exemple de la Figure 1.
On désigne par Bt une banque de transformées évaluées lors du codage et du décodage d'un bloc d'une séquence d'images, et dont les transformées sont susceptibles d'être utilisées pour le codage ou le décodage d'un bloc suivant de la séquence d'images courantes. Elle comprend un nombre Nt de transformées, avec Nt entier non nul.
On définit par Sf une liste de transformées, dites fixes, au sens où elles ne sont pas remplaçables par d'autres transformées de la banque Bt. Elle comprend un nombre Nf de transformées. Les transformées de la liste Sf ne font pas partie de la banque de transformées BT.
On désigne par Sr une sous-liste de transformées applicables au bloc courant en complément de la liste fixe Sf, dites remplaçables, au sens où elles peuvent être supprimées et être remplacées par d'autres contenues dans la banque. La composition de cette sous-liste peut donc évoluer au cours du traitement. Cette liste comprend un nombre variable Nr de transformées, qui peut être fixe ou variable selon le mode de réalisation.
On désigne par Se une liste dite courante, qui comprend toutes les transformées qui sont applicables au bloc courant. Par construction, cette liste est la concaténation des listes Sf et Sr. Elle comprend un nombre Ne de transformées, avec Ne = Nf + Nr.
En relation avec la Figure 2, on décrit l'étape Tl d'évaluation de transformées et l'étape T2 de remise en cause de liste courante de transformées Se applicables au bloc suivant selon un premier mode de réalisation de l'invention.
Les transformées sont par exemple de type transformée en cosinus discrète ou DCT (pour « Discrète Cosine Transform », en anglais), transformée en sinus discrète ou DST (pour « Discrète Sine Transform », en anglais) ou des transformées dérivées par apprentissage, de type KLT ( pour « Karhunen Loeve Transform », en anglais) ou des transformées optimisées selon u n critère débit- distorsion, conformément au document de Arrufat, intitulé « Mode-dependent transform compétition for HEVC » et publié par la conférence IEEE ICIP 2015.
L'étape Tl d'évaluation s'applique à une version décodée du bloc courant dans le domaine spatial ou au bloc résidu Res décodé. Autrement dit, l'étape de prédiction est optionnelle. Néanmoins, dans les modes de réalisation décrits ci-après, on considère des blocs résidus, sans limitation de portée de l'invention.
On notera ainsi que pour garantir un fonctionnement similaire du codeur et du décodeur, il convient d'évaluer au codeur comme au décodeur le bloc courant décodé ou le bloc résidu décodé, seules versions disponibles au niveau du décodeur.
L'étape Tl évalue les Nt transformées T,, avec i entier compris entre 1 et Nt, de la banque de transformées Bt disponible au codeur comme au décodeur.
On suppose par exemple qu'elle les évalue successivement en mettant en œuvre les sous-étapes suivantes : Au cours d'une sous-étape Tl l, la transformée courante T, est appliquée au bloc résidu Res décodé. On obtient un bloc transformé Res-r.
Optionnellement une quantification des coefficients du bloc transformé est réalisée en T12. Elle produit un bloc résidu transformé quantifié ResTQ.
En T13, on calcule au moins un indicateur de performance IP de la transformée T,. Cet indicateur peut être obtenu à partir d'un ou plusieurs critères d'évaluation CR. Un de ces critères peut être par exemple le nombre de coefficients non nuls, encore appelés significatifs, dans le bloc transformé optionnellement quantifié. On désigne aussi ce critère par « norme-zéro » . En effet, cette mesure donne une bonne indication de la concentration d'énergie réalisée par la transformation du bloc et renseigne donc sur les performances de compression de la transformée. Ce critère peut également s'appuyer sur un nombre de coefficients nuls, une mesure de puissance d'erreur de quantification si l'étape de quantification est mise en œuvre. Avantageusement, il peut alors prendre en compte plusieurs critères, comme par exemple à la fois la puissance d'erreur et le nombre de coefficients, en les pondérant.
Avantageusement, lors d'une étape T14, l'indicateur IP obtenu est stocké en mémoire, par exemple une mémoire BUFO dite tampon (pour « buffer », en anglais).
On teste en T15 s'il reste des transformées à traiter. Par exemple, si on a choisi de traiter les transformées dans l'ordre de leur indice i, on vérifie que i est strictement inférieur au nombre total de transformées à traiter Nt. Si c'est bien le cas, on incrémente i et on répète les étapes Tl l à T15 pour la transformée suivante. Avantageusement, on utilise les indicateurs de performance calculés pour le bloc courant pour mettre à jou r en T16 des valeurs de scores déjà stockées en mémoire et calculées à partir d'au moins un bloc précédemment traité. Idéalement, il est intéressant de considérer plusieurs blocs précédemment traités, afin de lisser les résultats obtenus et les rendre moins sensibles aux variations locales des caractéristiques des blocs de l'image. Par exemple, on prend en compte un historique des IP sur les K derniers blocs traités avec K = 20 pour calculer le score attribué à une transformée, ce qui constitue un bon compromis.
Dans ce cas, on a stocké en mémoire BUFO les indicateurs de performances IP obtenus par les transformées de la banque de transformées sur les K derniers blocs et on exploite l'ensemble de ces indicateurs de performance IP pour calculer un score par transformée (par exemple un score moyenné ou une combinaison de scores moyennés, comprenant par exemple les moyennes des indicateurs de performances IP, les valeurs médianes des indicateurs de performance IP ou les indicateurs de performance IP cumulés de chacune des transformées.
De façon alternative, on peut calculer une valeur lissée Zcl du score courant comme une somme pondérée d'une valeur Zh stockée en mémoire et de la valeur courante Zc :
Zcl = 0,lZc + 0.9 Zh
Lorsque le nombre de blocs traité est inférieur à K, les indicateurs de performance IP obtenus par les transformées pour le bloc courant Bc peuvent être combinés à des indicateurs de performance IP initialisés au préalable pour chacune des transformées de la banque. Cette initialisation peut être prédéterminée, de façon identique au codeur et au décodeur, ou héritée de l'image précédente, ou déterminée par l'encodeur. Dans ce dernier cas, le codeur doit la transmettre au décodeur dans un en-tête afin d'assurer la synchronisation codeur/décodeur. Par exemple, il insère ces informations dans un en-tête SPS (pour « Séquence Parameter Set », en anglais) comprenant les paramètres de la séquence d'images ou bien dans un en-tête PPS (pour « Picture Parameter Set », en anglais) comprenant les paramètres de l'image courante.
Une fois les scores mis à jour, ils sont classés en T17 par exemple selon un ordre de performance décroissant, ou bien dans un ordre de transformées prédéfinie. Par exemple, si le score calculé correspond à un nombre de coefficients significatifs (« norme-zéro »), le classement est réalisé selon des valeurs croissantes des scores, la transformée classée la première étant celle pour laquelle le bloc courant transformé comprend le moins de coefficients significatifs. On obtient ainsi une liste Si des Nt transformées classées, qu'on stocke en mémoire en T18. S, correspond donc la banque de transformées Bt réordonnée selon un critère défini, par exemple suivant l'ordre de performance.
Lors d'une étape T2, on remet en cause la liste Se de transformées applicables en appliquant des règles de décision prédéterminées, communes au codeur et au décodeur.
• Dans un premier exemple de réalisation de l'invention, une règle prédéterminée est que le nombre de transformées contenues dans la liste Se peut varier au cours de l'encodage, par conséquent le nombre Nr de transformées dans la liste Sr peut être changé. Dans ce cas, on détermine en T21 une sous-liste S0 de transformées, issues de la liste S, dont le score est meilleur qu'un seuil prédéterminé τ . Par exemple, si l'indicateur de performance dépend du nombre de coefficients significatifs, on choisit les transformées de la banque dont la valeur de score est inférieure à τ. De façon alternative, ce seuil τ peut être dynamiquement calculé en le fixant à une fraction de la moyenne des valeurs des scores. En pratique une valeur seuil égale à 0.5 donne des bons résultats pour cette fraction. Le nombre de transformées NO qui constituent la sous-liste S0 correspond à la nouvelle valeur de Nr, et les transformées de la sous-liste S0 remplacent celles de la liste Sr en T22. On dispose d'une nouvelle liste Se de transformées applicable au bloc suivant, qui comprend les Nf transformées fixées et les Nr transformées de Sr. On remet donc à jour la valeur de Ne = Nf + Nr ainsi que Se en T22. On stocke en mémoire la nouvelle liste Se et la nouvelle valeur de Ne.
De façon alternative, on compare les Nr transformées ordonnées de S0 à celles de Sr et on réalise effectivement une mise à jour si une différence existe.
• Dans un deuxième exemple de réalisation, une règle prédéterminée est que le nombre d'éléments dans la liste Ne est fixe et commun au codeur et au décodeur. Il en résulte que le nombre d'éléments Nr de la liste de transformées remplaçables Sr est fixe lui aussi. On forme la liste S0 en T21 à partir des Nr premières transformées de la liste S, selon le classement mis à jour.
En T22 on met à jou r la liste Sr des Nr transformées remplaçables à partir de S0 et la liste Se des transformées applicables, qui est elle aussi réordonnée en fonction de la nouvelle liste Sr. Par exemple, on forme la nouvelle liste Se en concaténant la liste Sf et la liste Sr, les transformées de la liste Sf étant placées en premier. Ensuite, on stocke en mémoire la nouvelle liste Se et la nouvelle valeur de Ne.
• Dans un troisième exemple de réalisation de l'invention, toutes les transformées de la liste Se sont remplaçables. Autrement dit, Nr = Ne et Nf = 0. A partir du classement des Ni transformées produit par l'étape Tl sous la forme d'une liste Si, on forme une liste SO comprenant les Nr = Ne meilleures transformées de Si. Deux cas sont possibles :
Ne est fixe, ce qui impose de former la liste Si, en choisissant les Ne meilleures transformées plutôt qu'en appliquant un seuil lié à la valeur du score;
Ne peut varier, ce qui permet de choisir les Ni meilleures transformées en fonction d'un seuil τ lié à la valeur de score, quitte à en sélectionner un nombre Ντ inférieur à Ne. Dans ce cas, la valeur de Ne est mise à jour et stockée en mémoire. Avec l'invention, la liste Se, mise à jour, est applicable au bloc suivant.
Bien sûr l'invention n'est pas limitée aux exemples qui viennent d'être présentés. Les mises à jou r des listes Sr et Se peuvent être réalisées de multiples façons, déterminées par des règles de décision communes au codeur et au décodeur.
Plusieurs exemples concrets de mise à jour de la liste Se sont donnés ci-dessous.
Dans ces exemples, l'indicateur de performance IP utilisé est la norme-zéro, qui comptabilise, pour chaque transformée évaluée, le nombre de coefficients significatifs dans le bloc résidu transformé Res ou ResT du bloc courant. Exemple 1 : Remise en cause de toutes les transformées de la liste Se avec Ne constant
A titre d'exemple, on choisit Nr = Ne = 2, Nt=5. Par conséquent toutes les transformées de Se sont remplaçables, donc Sr = Se et Sf est vide. Le nombre Nr de transformées dans Sr est choisi fixe.
On considère la banque de transformées BT suivante : BT = {DCT2, DST7, DCT8, DST1, DCT5}. Par exemple le terme DCT2 désigne la DCT de type II et le fait qu'elle soit appliquée à la fois sur les lignes et les colonnes du bloc.
A un instant donné, on considère que pour le bloc résidu décodé courant Res la liste de transformées est Sr = Se = {DCT2, DST7}.
Dans cet exemple, l'indicateur de performance IP considéré est la norme zéro. Il est calculé en T13 pour chaque transformée. Le score évalué en T16 est la moyenne des valeurs des indicateurs IP sur les X derniers blocs (par exemple X=4). On classe en T17 les transformées selon des valeurs de scores croissants et on forme une liste ordonnée Si de Nt transformées. On observe par exemple les résultats suivants :
Figure imgf000016_0001
S, est constituée de la liste ordonnée et vaut {DCT2, DCT8, DST1, DCT5, DST7}.
On décide dans cet exemple de garder la taille Nr de la liste Sr constante et de choisir les 2 meilleures transformées au sens de l'indicateur de performance, dans l'ordre de classement. On remplace donc en T2 la liste Sr par les Nr=2 premières transformées de la liste Si.
La liste Sr mise à jour vaut : Sr = Se = {DCT2, DCT8}.
Exemple 2 : Modification par suppression/ajout d'une ou plusieurs transformées
On considère la même banque de transformées BT que dans l'exemple précédent, de taille Nt=5. Toutes les transformées de Se sont remplaçables donc Nr = Ne et Sr = Se.
BT = {DCT2, DST7, DCT8, DST1, DCT5}
On initialise la sous-liste Sr avec Nr = 3 comme suit : Sr = Se = {DCT2, DST7, DST1}. A l'issue de l'étape d'évaluation des scores, on obtient les résultats suivants :
Figure imgf000016_0002
Avantageusement, on forme une liste ordonnée Si de taille Nt comme suit : Si= {DCT2, DST7, DST1, DCT5, DCT8}.
La règle de décision applicable dans cet exemple est de conserver dans la liste Sr uniquement les transformées dont le score a une valeur inférieure ou égale à un seuil τ prédéterminé, par exemple ici τ =5.
Après évaluation des transformées de la banque et application de la règle, le décodeur constate que deux transformées ont un score inférieur au seuil S=5. Par conséquent la liste Sr = Se est mise à jour de la façon suivante :
Sr = Se = {DCT2, DST7}. Nr prend donc la valeur 2 et Ne est mis à jour avec Nc=2. Le prochain bloc pourra être transformé par l'une des deux transformées de Se. Il en résulte que la signalisation de la transformée véhiculée entre le codeur et le décodeur sera réduite puisque la liste Se compte une transformée de moins que pour le bloc précédent. On répète l'étape d'évaluation pour le bloc suivant et on obtient les résultats ci-dessous :
Figure imgf000017_0001
SI = {DCT2, DST7, DCT8, DST1, DCT5}.
On constate que 4 transformées de la banque ont un score inférieur au seuil S=5. Par conséquent, la liste Sr est mise à jour de la façon suivante :
Sr = Se = {DCT2, DST7, DCT8, DST1} et Nr=4. En relation avec les figures 3 et 6, on décrit maintenant les étapes d'un procédé de codage mettant en œuvre le mécanisme qui vient d'être détaillé en relation avec la Figure 1. On détaille deux modes de réalisation particuliers de l'invention.
A. Mode de réalisation : sans contrôle de l'encodeur
Par exemple, un tel procédé de codage est mis en œuvre par un dispositif de codage tel que décrit en relation avec la Figure 11. La séquence d'images II, 12..., IJ à coder, avec J entier non nu l, est fournie en entrée du procédé de codage. Le procédé de codage délivre en sortie un train binaire STR représentatif de la séquence d'images fournie en entrée. Ce train binaire peut être transmis sous la forme d'un flux ou d'un fichier au décodeur.
De façon connue en soi, le codage de la séquence d'images II, 12, IJ est fait image par image selon un ordre de codage préalablement établi et connu du décodeur. Par exemple, les images peuvent être codées dans l'ordre temporel II, 12, ou selon un autre ordre, par exemple II, 13, 12, IJ.
Lors d'une étape E0 (non représentée), une image le à coder de la séquence d'images II, 12, IK, dite image courante, est découpée en blocs de taille maximale, chaque bloc de taille maximale pouvant être redécoupé en blocs plus petits. Par exemple, un bloc de taille maximal est de taille 32x32 pixels. Un tel bloc de taille maximal peut être subdivisé en sous-blocs carrés ou rectangulaires, par exemple de taille 16x16, 8x8, 4x4, 16x8, 8x16, .... Puis, lors de l'étape E0, un bloc courant Bc à coder d'une image le est sélectionné selon un sens de parcours de l'image le prédéterminé. Lors d'une étape El, le bloc courant Bc est prédit par rapport à un bloc déjà traité, dit bloc prédicteur P, d'une image de référence IR, selon un mode de prédiction prédéterminé.
En E2, on obtient un bloc résidu Res par différence entre le bloc courant Bc et le bloc prédicteur P. Lors d'u ne étape E3, le résidu de prédiction Res est ensuite transformé par une transformée d'une liste Se prédéterminée et par exemple de type DCT ou DST ou autre. Cette liste prédéterminée comprend Ne transformées, dont Nf transformées sont fixées et Nr transformées sont remplaçables. Une banque de Nt transformées, avec Nr≤Nt et par exemple Nr=4 et Nt = 8, est disponible au codeur et au décodeur. On rappelle que les Nf transformées fixes ne font pas partie de la banque de transformées BT.
L'état initial de la liste Se est prédéterminé (connu du codeur et du décodeur), ou hérité de l'image précédente, ou encore déterminé par l'encodeur. Si l'encodeur détermine cette liste de départ, il doit la transmettre au décodeur dans un en-tête (par exemple l'entête PPS comprenant les paramètres de l'image courant (pour « Picture Parameter Set », en anglais), ou l'entête SPS comprenant les paramètres de la séquence d'images (pour « Séquence Parameter Set », en anglais) afin d'assurer la synchronisation codeur/décodeur.
Dans ce mode de réalisation, le codeur met en œuvre, de façon connue et par exemple décrite dans le document de Zhao et al. déjà cité, une compétition de transformées, qui consiste à appliquer successivement au bloc résidu Res les transformées de la liste Se de transformées prédéterminée, à évaluer une performance de la compression réalisée par chacune d'elles selon un critère de type débit-distorsion, puis à sélectionner la meilleure pour le bloc résidu courant Res.
En relation avec la Figure 4, on détaille un mode de réalisation de l'étape E3 de compétition de transformées. Pour chaque transformée Tn de la liste Se, avec n allant de 1 à Ne, les étapes suivantes sont réalisées :
En E31, le bloc résidu courant Res est transformé par la transformée Tn. En E32, le bloc résidu transformé ResT obtenu est quantifié.
En E33, un coût R de codage binaire des coefficients du bloc résidu transformé est évalué par exemple à l'aide d'un codeur entropique.
En E34, une quantification inverse est appliquée au bloc résidu transformé quantifié ResTQ, puis en E35 la transformée inverse de Tn.
En E36, on évalue une distorsion D entre le bloc Res' obtenu et le bloc Res d'entrée. En E37, on estime un coût débit-distorsion, par exemple à l'aide d'une mesure de coût Lagrangien J = D + A x R, où D est la distorsion mesurée sur le bloc reconstruit, R le débit généré lors du codage et λ le multiplicateur de Lagrange.
On répète donc cet enchaînement de sous-étapes pour les Ne transformées de la liste Se. Enfin, on sélectionne en E38 la transformée T qui minimise le coût débit-distorsion pour les résidus Res, Res' correspondants.
On désigne par Tno la transformée sélectionnée. Le bloc résidu quantifié obtenu ResQ[no] est ensuite codé en E9, par codage entropique, par exemple un codeur CABAC décrit dans 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 , sous la forme d'un flux de données codées STR.
La transformée sélectionnée est identifiée par un code Tr-ID qui est soumis lui aussi au codage entropique. Avantageusement, le code choisi pour identifier la transformée Tno sélectionnée est de longueur variable et dépend du classement de la transformée dans la liste Se. A titre d'exemple, on considère une liste Se comprenant trois transformées. On leur associe les codes à longueur variable indiqués dans la table 1 ci-dessous :
Figure imgf000019_0001
Table 1
De cette manière, les codes les plus courts sont affectés aux meilleures transformées applicables selon l'indicateur de performance. Il en résulte que ces transformées seront moins coûteuses à signaler et qu'elles seront favorisées lors de la compétition de transformées qui s'appuie sur un critère débit-distorsion.
Le bloc résidu Res'[no] obtenu au cours de l'étape E3 par quantification inverse et transformation inverse à l'aide de la transformée no sélectionnée, est présenté en entrée de l'étape Tl d'évaluation des transformées de la banque BT, selon l'invention et déjà décrite ci-dessus en relation avec la Figure 2. Au cours de cette étape Tl sont évalués des indicateurs de performances IP de chaque transformée de la banque BT sur le bloc résidu spatial décodé Res', puis des scores à partir de ces indicateurs, d'une façon identique à celle du décodeur. Les Nt transformées de la banque sont classées dans une liste ordonnée Si en fonction de l'indicateur de performance, par exemple du meilleur score au plus mauvais, ou selon un autre critère prédéterminé.
La liste S, obtenue et les scores associés sont ensuite traités par l'étape T2 qui détermine une liste
50 candidate pour remettre en cause la sous-liste Sr de transformées remplaçables de la liste Se, d'une façon identique à celle du décodeur et telle que décrite précédemment en relation avec la Figure 2.
Si cette remise en cause aboutit à une mise à jour de la liste, alors la nouvelle liste Se est stockée en mémoire BUF. Elle sera mise en œuvre pour le traitement du bloc suivant.
En E4, la prédiction du bloc courant Bc est additionnée au résidu spatial Res' afin d'obtenir un bloc reconstruit REC, qui sera utilisé pour la prédiction des blocs suivants.
En E5, on ajoute la contribution du bloc reconstruit BcR à l'image courante reconstruite ICR. On teste en E6 si le bloc courant Bc est le dernier de l'image. S'il reste des blocs à coder, on sélectionne le bloc suivant comme nouveau bloc courant en E7. Sinon l'image reconstruite est filtrée en E8 afin d'obtenir une image de référence Io- exploitable pour le codage des images suivantes.
A l'issue du codage de l'image courante le, on teste s'il reste des images à coder dans la séquence.
51 c'est le cas, l'image suivante dans l'ordre de codage des images devient l'image courante. Sinon, le traitement est terminé. Le train binaire produit STR peut être directement présenté à un décodeur ou bien lui être transmis via un réseau de télécommunications sous forme de flux ou de fichier.
En relation avec la figure 5, on décrit maintenant les étapes d'un procédé de décodage d'un train binaire STR représentatif d'une séquence d'images Ii, , h à décoder, selon un mode particulier de réalisation de l'invention.
Par exemple, le flux de données STR a été généré via le procédé de codage présenté en relation avec la Figure 3. Le flux de données STR est fourni en entrée d'un dispositif de décodage DEC, par tel que décrit en relation avec la Figure 12.
Le décodage du flux se fait image par image. Pour chaque image à décoder, le procédé de décodage réalise le décodage de l'image bloc par bloc. On considère une image courant le à décoder.
Lors d'une étape DO d'initialisation, on détermine un premier bloc courant Bc de l'image le. Les données du train binaire STR correspondant au bloc Bc sont décodées par un module de décodage entropique pour fournir en Dl des éléments de syntaxe relatifs au mode de codage du bloc courant Bc et en D2 un groupe de coefficients d'un bloc résidu Res'TQ d'une prédiction du bloc courant Bc. Les éléments de syntaxe décodés comprennent notamment une information de mode de prédiction identifiant pour le bloc courant Bc un mode de prédiction parmi une pluralité de modes de prédiction prédéterminés.
Lors d'une étape D3, les coefficients de résidus Res'TQ de prédiction du bloc Bc subissent une quantification inverse et un bloc résidu déquantifié Res est obtenu.
En D4, on décode à partir du train binaire un index Tr-ID de la transformée inverse à appliquer au résidu du bloc courant Bc, dans la liste Se prédéterminée de transformées, identique à celle utilisée par le codeur.
En D5, on applique au résidu Res'TQ du bloc courant Bc la transformée inverse identifiée par l'index Tr-ID décodé.
En D6, le bloc courant est prédit selon le mode de prédiction décodé en Dl . La prédiction peut se baser, dans un mode dit inter, sur des images de référence précédemment décodées et reconstruites (IRO, IRI,■■■), ou, dans un mode dit intra, à partir de blocs déjà décodés par exemple dans la même image. Un bloc prédit P' est obtenu .
En D7, le bloc prédit P' est additionné au bloc résidu spatial RES' afin d'obtenir le reconstruit local Rec qui sera utilisé pour la prédiction des prochains blocs. En Tl, on évalue les performances de chacune des Nt transformées de la banque pour le bloc résidu spatial Res', selon l'invention, comme décrit précédemment en relation avec la figure 2.
Pour chaque transformée Tm, avec m entier compris entre 1 et Nt, on met donc successivement en œuvre les étapes suivantes :
Le résidu est transformé par la transformée Tm de la banque BT, puis quantifié ;
- Un indicateur de performance IP est évalué selon un des modes de réalisation précédemment décrits ;
Une fois toutes les transformées traitées, un score leur est attribué à partir de valeurs de l'indicateur de performance IP et elles sont classées dans une liste Si en fonction de la valeur de ce score, par exemple du meilleur score au plus mauvais. Dans un mode de réalisation particulier, les scores contenus dans la liste Si sont formés à partir des valeurs d'indicateurs de performances lissés sur plusieurs blocs, comme précédemment décrit.
En T2, sur la base des scores déterminés en Tl on remet en cause la liste Sr, et donc la liste Se, comme décrit précédemment en relation avec la Figure 2. Par exemple, dans un mode de réalisation particulier de l'invention, on met en œuvre les étapes suivantes :
On forme une liste SO à partir des Nt scores déterminés en Tl, par exemple, lorsque Nr peut varier, en appliquant un seuil prédéterminé ou, lorsque Nr est fixe, en sélectionnant les Nr meilleures transformées ;
On met à jour Sr en la remplaçant par la liste SO formée. La liste des transformées applicables Se est mise à jour à partir de la nouvelle liste Sr, par exemple en concaténant la liste Sr à celle des transformées fixes Sf. Elle sera utilisée pour le traitement du bloc suivant, en particulier pour l'étape D4 d'identification de la transformée par l'index Tr-ID pointant dans Se et pour l'étape D5 de transformation inverse du résidu courant à l'aide de la transformée inverse identifiée. En D8, le bloc Rec' reconstruit est ajouté à l'image courante ICR. Lors d'une étape D9, il est vérifié si tous les blocs de l'image à décoder ont été décodés et reconstruits. Dans le cas négatif, un nouveau bloc courant est identifié en D10 selon un parcours prédéterminé de l'image à décoder et le procédé de décodage reprend à l'étape Dl pour ce bloc.
Dans le cas où tous les blocs de l'image ont été traités, l'image IcR est filtrée en DU et sauvegardée dans une liste d'images de référence I1R, I2R,... pour être utilisée ultérieurement comme référence lors du décodage des images suivantes de la séquence d'images.
Un avantage du mode de réalisation qui vient d'être décrit en relation avec les Figures 3 et 5, est que le codeur et le décodeur sont capables de modifier automatiquement la liste Se de transformées applicable au bloc courant, de manière optimale et synchrone. Aucune signalisation additionnelle n'est donc requise.
Selon les différentes options prévues par l'invention et décrites en relation avec la Figure 2, la liste Se est donc mise à jour de différentes manières, qui peuvent être combinées entre elles :
Ajout ou suppression de transformées ;
Changement d'ordre des transformées dans la liste.
B. Mode de réalisation avec contrôle de l'encodeur En relation avec la Figure 6, on décrit les étapes d'un procédé de codage d'une séquence d'images selon un deuxième mode de réalisation de l'invention. Les étapes E0 à E2 et E4 à E8 sont inchangées par rapport au premier mode de réalisation décrit en relation avec la figure 3.
Dans ce deuxième mode de réalisation, l'étape E3 de compétition de transformées est remplacée par une étape E3', qui va maintenant être décrite en relation avec la Figure 7. L'étape E3' met en compétition et évalue non seulement les Ne transformées de la liste courante Se mais aussi le cas échéant, les Nt-Nr transformées restantes dans la banque de transformées Bt, selon un critère débit- distorsion, analogue à celui décrit dans le premier mode. Un coût débit-distorsion est associé à chaque transformée appliquée et il est stocké en mémoire BUF1. En revanche, la sélection de la meilleure transformée pour le bloc courant est inchangée au sens où elle s'effectue toujours parmi les Ne transformées de la liste Se.
L'étape Tl d'évaluation des transformées de la banque BT déjà décrite est elle aussi inchangée. Elle produit une liste ordonnée Si des transformées, par exemple de la meilleure à la pire valeur d'un score fonction d'un ou plusieurs indicateurs de performance prédéterminés, de façon analogue à celle déjà décrite pour le premier mode. Les scores peuvent être ceux du bloc Bc courant ou bien obtenus par lissage des valeurs d'indicateurs de performance IP des K derniers blocs traités.
Selon ce deuxième mode de réalisation de l'invention, l'étape T2 de décision est modifiée et remplacée par une étape T2'. Au cours de cette étape, une sous-liste S0 est formée en T21', pour remettre en cause la sous-liste Sr, de façon similaire à ce qui a été précédemment décrit, mais elle ne remplace pas automatiquement l'ancienne liste Se. Elle constitue une proposition de mise à jour envoyée à l'unité de validation T4 en étape T22', qui nécessite une validation pour que la mise à jour effective soit exécutée.
Selon ce deuxième mode de réalisation, le procédé de codage comprend en outre une étape T3 d'évaluation des transformées de la banque BT à partir des coûts débit-distorsion produits par l'étape de compétition E3'. En relation avec la Figure 7, cette évaluation comprend en étape T31' où, pour chaque transformée, un score est calculé à partir du son coût débit-distorsion calculé en E3'. En T32', les transformées de la banque sont ordonnées et stockées dans une liste Si', en fonction de ces scores, par exemple selon un ordre de coût décroissant. Comme précédemment décrit, ce classement peut s'appuyer sur les coûts obtenus pour le bloc courant Bc seul ou sur les K blocs précédemment traités incluant le bloc courant.
On comprend que le classement contenu dans Si' représente en quelque sorte une « vérité terrain » . En effet, les transformées classées ont été obtenues à partir d'une mesure de la distorsion réelle entre l'image décodée reconstruite et l'image originale et du coût réel de codage du bloc courant. De telles informations ne sont disponibles que côté codeur.
Au contraire la liste Si est construite sur la base d'un indicateur de performance IP, par exemple la « norme-zéro » qui ne s'appuie pas sur la distorsion réellement introduite par les étapes de transformation et quantification. Elle n'utilise en revanche que des informations qui sont à la fois disponibles au codeur et au décodeur.
En relation avec la Figure 7, une étape 14 évalue la proposition de sous-liste SO faite en 12' concernant une mise à jour de la liste Se.
En T41, la liste Si est comparée à la liste Si'. Si les deux listes ont un degré de similarité satisfaisant selon au moins un critère de similarité CS prédéterminé, alors la modification de la liste Se est validée. Par exemple, on considère que les deux listes Si et Si' sont suffisamment similaires si elles produisent le même classement de transformées, ou bien si au moins les Nt/2 premières transformées sont similaires, ou bien si la transformées la plus performante est identique dans les deux listes. Dans un autre exemple, on peut considérer que les sous-listes sont similaires si elles placent les mêmes transformées en tête de liste (sur les X=2 premières). On en déduit la valeur d'un indicateur de validité bv. Par exemple, il vaut 1 en cas de validation, zéro sinon. Sa valeur est transmise au codeur entropique pour encodage et insertion dans le train binaire en T43.
Si bv vaut 1, l'étape T44 réalise la mise-à-jour des listes Se et, Sr et ainsi que du nombre Ne, Nr de transformées qu'elles comprennent, à partir de la sous-liste SO en provenance de l'étape de décision T2'. Si bv vaut zéro, les listes Se et Sr sont inchangées.
De cette manière, le codeur signale au décodeur s'il valide ou non la proposition de mise à jour produite par l'étape de décision. Pour ce faire, il s'appuie sur une évaluation de la distorsion réellement introduite par chacu ne des transformées et su r le coût réel de codage du bloc courant. Ce mécanisme additionnel permet de garantir tout risque de dérive de la liste Se. En relation avec la Figure 8, on décrit les étapes d'un procédé de décodage selon ce deuxième mode de réalisation de l'invention. Les étapes DO à DU sont inchangées. L'étape Tl d'évaluation des scores de la banque de transformées pour le bloc courant Bc est inchangée. Elle produit une liste Si contenant le classement des transformées de la banque. Une décision relative au changement de la liste Se est prise en T2', mais à la différence de l'étape T2 précédemment décrite en relation avec la figure 1, selon ce deuxième mode de réalisation de l'invention, l'étape T2' produit une proposition SO de mise à jour de Se, qui est ensuite traitée par une étape 14' de validation. Cette étape 14' de validation s'appuie sur la valeur d'un indicateur de validité bv, extraite du train binaire et décodée au cours d'une étape D4'. Par exemple, comme précédemment décrit pour le procédé de codage en relation avec les figures 6 et 7, cet indicateur prend la valeur 1 pour indiquer que le codeur valide le changement et la valeur 0 s'il l'invalide. Dans le premier cas, l'étape 14' stocke la nouvelle liste Se validée dans une mémoire BUF. Elle sera utilisée pour sélectionner la transformée inverse à appliquer au bloc suivant. Dans le second cas, la mise à jour de la liste Se n'est pas stockée en mémoire et la liste Se reste inchangée.
Dans ce deuxième mode de réalisation, la remise en cause de la liste Se de transformées par le décodeur est soumise à validation de l'encodeur. Ce dernier ayant accès au signal source, contrairement au décodeur, il est plus à même de déterminer la ou les transformées les plus adaptées aux images à traiter.
En relation avec les Figures 9 et 10, on évalue les performances de l'invention lorsqu'elle est mise en œuvre dans un codeur et un décodeur selon le premier mode de réalisation de l'invention, c'est- à-dire sans contrôle de l'encodeur.
Le codeur et le décodeur sont initialisés avec une liste fixe de transformées Sf, de taille Nf=4, comprenant les transformées suivantes :
Sf = {DCT2xDCT2, DCT8xDST7, DST7xDCT8, DST7xDST7}
Dans cet exemple, on désigne par transformée un couple de transformées, la première étant applicable aux lignes du bloc courant, la deuxième aux colonnes du bloc résultant de la première ou inversement. La liste de transformées remplaçable Sr est de taille fixe Nr=l et initialisée de la façon suivante :
Sr = {DCT8xDCT8}
La liste Sr peut être modifiée, comme précédemment décrit à l'aide de transformées comprises dans une banque de transformées Bt, de taille Nt=2, comprenant les transformées suivantes :
BT = {DCT8xDCT8, IDxDST7}
On a donc par conséquence une liste courante Se contenant initialement les transformées suivantes :
Se = Sf + Sr = {DCT2xDCT2, DCT8xDST7, DST7xDCT8, DST7xDST7, DCT8xDCT8}
Le procédé selon l'invention consiste d'abord à évaluer les transformées de la banque. Les indicateurs de performance IP des deux transformées de la banque Bt sont calculés, et sont stockés dans une mémoire BUFO. La valeur d'indicateur de performance IP attribuée à la transformée d'indice i pour un bloc n est noté nzn i. Dans cet exemple, l'indicateur est basé sur un nombre de coefficients nuls dans le bloc courant. Un score yn i est calculé en lissant les valeurs d'IP de chaque transformée de la façon suivante :
c nzn i si n = 0
= (o.9 * yn.u + 0.1 * nzni si n > 0
Dans cet exemple, les transformées de la banque BT DCT8xDCT8 et IDxDST7 sont classées par score croissant dans la liste Si.
En T2, on remet en cause la liste Se. Un critère de décision est appliqué sur les scores des transformées contenues dans la liste Si. Dans la suite on suppose que DCT8xDCT8 correspond à l'indice 1 et IDxDST7 à l'indice 2. On évalue tout d'abord la différence de scores entre la DCT8xDCT8 et l'IDxDST7 :
A n = yn,i - yn,2
Une décision est prise en en fonction des valeurs de cette différence de score. Le signe de Ayn donne une indication claire sur la compaction d'énergie apportée par les deux transformées. Si cette différence est négative, alors c'est la DCT8xDCT8 qui compacte mieux l'énergie sur un nombre plus réduits de coefficients significatifs. Si cette différence est positive, alors c'est l'inverse et c'est l'IDxDST7 qui est la plus performante. Afin, d'éviter un phénomène d'oscillation, deux seuils a et b sont considérés lors du choix de S0 : a . Si Ayn < a, alors S0 = Si[l] = {DCT8xDCT8}.
b. Si Ayn > b, alors S0 = Si[2] = {IDxDST7}. avec a, b réels distincts.
Il en résulte que la transformée de la liste Sr n'est remise en cause que si l'autre transformée apporte une amélioration suffisante, de façon à éviter un phénomène d'oscillation. On ne choisit donc pas toujours la transformée classée la première dans la listeSi.
Côté décodeur, on considère le traitement d'un bloc résidu courant Res'iQ[n] avec n numéro du bloc dans l'image. On met en œuvre l'étape de compétition de transformées sur le résidu Res[n], à partir de la liste Se.
On choisit la transformée de Se qui minimise le coût débit-distorsion / = D + À * R et on met en œuvre les étapes de sélection Tl et de décision T2 déjà décrites pour le décodage afin de mettre éventuellement à jour la liste courante Se. L'objectif de l'expérimentation est de montrer qu'un changement de liste courante Se de transformées basé sur le nombre de coefficients significatifs améliore les performances de compression.
Pour les blocs 4x4, le coût débit-distorsion et la norme-zéro du résidu transformé et quantifié sont extraits, ce pour toutes les transformées de la liste courante et de la banque.
Le calcul de l'indicateur de performance et la prise de décision se font tels que décrit aux étapes 5 et 6 du procédé de décodage. Les seuils pour la prise de décision sont les suivants : a = 0.5, b = -0.44.
En relation avec la Figure 9, on illustre l'évolution de l'indicateur de performance, ainsi que les changements de la liste de transformées Se applicables au cours du codage de plusieurs images consécutives. La séquence utilisée illustre un cas d'usage réel, représentant du contenu naturel sur les 620 premiers blocs et du contenu généré par ordinateur sur les blocs restants. La différence de score Δνη renseigne sur la transformée qui compresse la mieux l'énergie. Sur les 620 premiers blocs, l'indicateur de performance ne permet pas de distinguer globalement une transformée plus efficace qu'une autre. Par conséquent les changements de liste de transformées Se sont localisés. Sur les blocs suivants, pour lesquels le contenu change radicalement, la différence de scores devient positive, la transformée IDxDST7 devient la meilleure option entre les blocs 620 et 1500.
Dans une deuxième partie de l'expérimentation, les choix de l'encodeur ont été simulés. Pour chaque bloc, la transformée minimisant le coût débit-distorsion dans la liste courante Se est sélectionnée. La Figure 10 permet de comparer l'évolution de coûts débit-distorsion lissés, dans trois cas :
• Si Sr est une liste fixe et vaut {DCT8xDCT8} ;
• Si Sr est une liste fixe et vaut {IDxDST7} ;
• Si Sr est une liste modifiable et sa composition remise en cause comme décrit dans
l'invention.
Sur les 600 premiers blocs, l'invention améliore localement les performances. Bien que l'invention ne permette pas systématiquement de sélectionner la transformée optimale pour un bloc, elle apporte néanmoins une amélioration des performances par rapport au cas selon lequel la liste Sr est fixée à {DCT8xDCT8} uniquement. A partir du bloc 620 jusqu'au bloc 1200, l'invention choisit d'utiliser Sr={IDxDST7}. L'amélioration des performances est d'environ 15% par rapport à la liste Sr={DCT8xDCT8}. On notera que l'invention qui vient d'être décrite, peut être mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, les termes « module » et « entité », utilisés dans ce document, peuvent correspondre soit à un composant logiciel, soit à un composant matériel, soit encore à un ensemble de composants matériels et/ou logiciels, aptes à mettre en œuvre la ou les fonctions décrites pour le module ou l'entité concerné(e).
On notera que l'invention qui vient d'être décrite, peut être mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, les termes « module » et « entité », utilisés dans ce document, peuvent correspondre soit à un composant logiciel, soit à un composant matériel, soit encore à un ensemble de composants matériels et/ou logiciels, aptes à mettre en œuvre la ou les fonctions décrites pour le module ou l'entité concerné(e).
En relation avec la Figure 11, on présente maintenant un exemple de structure simplifiée d'un dispositif 100 de codage d'une image numérique selon l'invention. Le dispositif 100 met en œuvre le procédé de codage selon l'invention qui vient d'être décrit en relation avec la Figure 1.
Par exemple, le dispositif 100 comprend une unité de traitement 110, équipée d'un processeur μΐ, et pilotée par un programme d'ordinateur Pgl 120, stocké dans une mémoire 130 et mettant en œuvre le procédé de selon l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur Pgi 120 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 110. Le processeur de l'unité de traitement 110 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 120.
Dans cet exemple de réalisation de l'invention, le dispositif 100 comprend une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et configurée pour :
Transformer TRANS un bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste Se de Ne transformées d'un ensemble de Nt transformées, avec Nc<Nt ;
Coder COD le bloc transformé destiné à produire des données codées représentatives du bloc transformé ;
Décoder DEC les données codées représentatives du bloc transformé ;
Transformer TRANS-1 le bloc transformé décodé à l'aide de la transformée sélectionnée ; Evaluer EVAL les transformées de la banque BT de transformées pour le bloc décodé à partir d'au moins un indicateur de performance ;
Remettre en cause CHANG la liste de transformées en fonction d'un résultat de l'évaluation.
Avantageusement, la machine de calcul est configurée pour mettre en œuvre les modes de réalisation de l'invention qui viennent d'être décrits dans ses différents modes de réalisation. Notamment, dans le deuxième mode de réalisation, elle est apte à valider ou non la décision de changement de la liste de transformées Se et à coder une information représentative d'une autorisation ou une interdiction de remise en cause de la liste applicable au bloc suivant, en fonction de cette validation.
Le dispositif 100 comprend en outre une unité Mi 140 de stockage, telle qu'une mémoire, par exemple de type mémoire tampon (pour « buffer », en anglais), apte à stocker par exemple la liste Se et des résultats d'évaluation ou scores des transformées de la banque BT.
Ces unités sont pilotées par le processeur μΐ de l'unité de traitement 110.
De façon avantageuse, un tel dispositif 100 peut être intégré à un équipement terminal TU. Le dispositif 100 est alors agencé pour coopérer au moins avec le module suivant du terminal TU : un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est transmis dans un réseau de télécommunications, par exemple un réseau filaire, sans fil ou un réseau hertzien.
En relation avec la Figure 12, on présente maintenant un exemple de structure simplifiée d'un dispositif 200 de décodage d'une image numérique selon l'invention. Le dispositif 200 met en œuvre le procédé de décodage selon l'invention qui vient d'être décrit en relation avec les figures 4 et 8.
Par exemple, le dispositif 200 comprend une unité de traitement 210, équipée d'un processeur μ2, et pilotée par un programme d'ordinateur Pg2 220, stocké dans une mémoire 230 et mettant en œuvre le procédé de selon l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur Pg2 220 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 210. Le processeur de l'unité de traitement 210 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 220. Dans cet exemple de réalisation de l'invention, le dispositif 200 comprend une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et configurée pour :
Décoder DEC des coefficients d'un bloc courant à partir de données codées;
Transformer TRANS"1 les coefficients du bloc courant en un bloc décodé transformé, à partir d'une transformée appartenant à une liste Se de Ne transformées, dites applicables;
Reconstruire RECONST l'image à partir du bloc décodé transformé ;
Evaluer EVAL les transformées d'une liste BT de Nt transformées, dite banque de transformées, pour le bloc décodé transformé à partir d'au moins un indicateur de performance IP, connu de l'encodeur;
- Remettre en cause CHANG des transformées de la liste de transformées Se applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.
Avantageusement, la machine de calcul est configurée pour mettre en œuvre les modes de réalisation de l'invention qui viennent d'être décrits dans ses différents modes de réalisation. Notamment, dans le deuxième mode de réalisation, elle est apte à décoder l'information bv représentative d'une autorisation ou d'une interdiction de remettre en cause la liste de transformées Se en fonction de la valeur de cette information.
Le dispositif 200 comprend en outre une unité M2 240 de stockage, telle qu'une mémoire, par exemple de type mémoire tampon, apte à stocker par exemple les listes Se, Sr, Sf, BT et des résultats d'évaluation ou scores des transformées de la banque BT.
Ces unités sont pilotées par le processeur μ2 de l'unité de traitement 210.
De façon avantageuse, un tel dispositif 200 peut être intégré à un équipement terminal TU'. Le dispositif 200 est alors agencé pour coopérer au moins avec les modules suivants du terminal TU' : un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est transmis dans un réseau de télécommunications, par exemple un réseau filaire, sans fil ou un réseau hertzien ; un module d'affichage DISP de l'image ou de la séquence d'image reconstruite par le dispositif de décodage 200.
Bien sûr, un équipement terminal TU, TU' peut intégrer à la fois un dispositif de codage et un dispositif de décodage selon l'invention. Il s'agit par exemple d'un terminal mobile, de type tablette ou téléphone intelligent (pour « smartphone », en anglais). Les procédés de codage et de décodage décrits précédemment peuvent être intégrés dans des codeurs/décodeurs vidéo standards tels que HEVC/H.265, AVC/H.264 ou d'une future norme Post- HEVC ou encore dans tout type de codeurs/décodeurs vidéo propriétaires. Les procédés de codage et de décodage selon l'invention s'appliquent également à tous types de codeurs/décodeurs d'images fixes et plus généralement de signaux mettant en œuvre une compétition de transformées.
Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement leur être apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention.

Claims

REVENDICATIONS
1. Procédé de décodage d'au moins une image numérique (Ij), à partir de données codées par un encodeur et représentatives de ladite image, ladite image (Ij) étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant (C) :
Décodage des coefficients du bloc courant à partir de données codées;
Transformation (D5) des coefficients décodés du bloc courant en un bloc courant décodé, à partir d'une transformée appartenant à une liste (Se) de Ne transformées, dites applicables;
Reconstruction (D8) de l'image à partir du bloc courant décodé;
caractérisé en ce que le procédé comprend en outre les étapes suivantes :
- Evaluation (Tl) des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, par application au bloc courant décodé et calcul d'au moins un indicateur de performance (IP) par transformée appliquée, de façon similaire à celle de l'encodeur;
- Remise en cause (T2) des transformées de la liste de transformées (Se) applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.
2. Procédé de codage d'au moins une image numérique, ladite image (Ij) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc courant, de dimensions prédéterminées :
- Transformation (E3, E3') du bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste de Ne transformées d'un ensemble de Nt transformées ;
- Encodage (E9) du bloc transformé destiné à produire des données codées représentatives du bloc transformé ;
- Insertion des données codées dans un train binaire représentatif de l'image codée ;
caractérisé en ce que le procédé comprend en outre :
Décodage des données codées représentatives du bloc transformé ;
Transformation inverse du bloc courant à l'aide de la transformée sélectionnée, en un bloc courant décodé ; - Evaluation (Tl) d'une liste (BT) de Nt transformées, dite banque de transformées, par application au bloc courant décodé et calcul d'au moins un indicateur de performance (IP) par transformée appliquée, de façon similaire à celle d'un décodeur;
- Remise en cause (T2) des transformées de la liste de transformées (Se) applicables au bloc suivant en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues du décodeur.
Procédé selon l'une des revendications précédentes, caractérisé en ce que l'étape d'évaluation comprend un calcul d'un score par transformée à partir du au moins un indicateur de performance, un classement des transformées au moins à l'aide des scores calculés et selon un ordre de performance décroissante et en ce que l'étape de remise en cause comprend une formation d'une sous-liste à partir des transformées les mieux classées selon au moins une règle prédéterminée et un remplacement de transformées d'au moins une sous-liste de la liste transformées applicables (Se) par la sous-liste (S0).
Procédé selon la revendication 3, caractérisé en ce que l'étape de classement prend en outre en compte les scores des transformées pour une pluralité de blocs précédemment traités.
Procédé selon l'une des revendications précédentes, caractérisé en ce que la liste de transformées applicables au bloc courant comprend une sous-liste (Sf) de Nf transformées fixes et une sous-liste (Sr) de (Nr) transformées remplaçables, avec Ne = Nf + Nr et en ce que la banque de transformées comprend au moins la sous-liste de transformées remplaçables.
Procédé selon l'une des revendications 3 à 5, caractérisé en ce que la liste de transformées applicables étant de longueur fixe égale à Ne, la sous-liste formée est de longueur fixe.
Procédé selon la revendication 3 ou 4, caractérisé en ce que l'étape de remise en cause compare les scores des transformées à au moins un seuil prédéterminé et en ce q ue la sous- liste est formée des transformées qui satisfont au moins un critère lié à ce au moins un seuil.
Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comprend une étape de validation de la remise en cause de liste de transformées applicables mettant en œuvre une information codée (bv) représentative d'une autorisation ou d'une interdiction de remise en cause de la liste de transformées applicables pour le bloc suivant.
Procédé de codage selon la revendication 8, caractérisé en ce que l'étape de validation comprend une étape d'évaluation des transformées de la banque de transformées selon un critère débit-distorsion, une étape de classement des transformées évaluées selon ce critère et en ce que l'étape de validation compare le classement (Si') obtenu selon le critère débit- distorsion et le classement (Si) obtenu selon les scores calculés et valide la remise en cause en fonction d'un critère de similarité (CS) entre les deux classements.
10. Procédé de décodage selon la revendication 8, caractérisé en ce que l'étape de validation comprend une lecture de ladite information codée et en ce que la validation de la remise en cause de la liste de transformées applicables dépend de la valeur de ladite information.
11. Dispositif de décodage (200) d'au moins une image numérique (Ij), à partir de données codées par un encodeur et représentatives de ladite image, ladite image (Ij) étant divisée en une pluralité de blocs traités dans un ordre défini, ledit dispositif comprenant une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et configurée pour :
Décoder (DEC) des coefficients d'un bloc courant à partir de données codées; Transformer les coefficients décodés du bloc courant en un bloc courant décodé, à partir d'une transformée appartenant à une liste (Se) de Ne transformées, dites applicables; Reconstruire (REC) l'image à partir du bloc courant décodé;
caractérisé en ce qu'elle est en outre apte à :
- Evaluer (EVAL) des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, par application au bloc courant décodé et calcul d'au moins un indicateur de performance (IP) par transformée appliquée, de façon similaire à celle de l'encodeur; et
- Remettre en cause (CHANG) des transformées de la liste de transformées (Se) applicables en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues de l'encodeur.
12. Dispositif (100) de codage d'au moins une image numérique, ladite image (Ij) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit dispositif comprenant une machine de calcul reprogrammable ou une machine de calcul dédiée, apte à et configurée pour :
Transformer (TRANS) un bloc courant en un bloc transformé, à l'aide d'une transformée sélectionnée dans une liste de Ne transformées dites applicables ;
Encoder (COD) le bloc transformé destiné à produire des données codées représentatives du bloc transformé ; caractérisé en ce qu'elle est en outre apte à : Décoder (DEC) les données codées représentatives du bloc courant ;
Transformer (TRANS) les données décodées du bloc courant à l'aide de la transformée sélectionnée, en un bloc courant décodé ;
- Evaluer (EVAL) des transformées d'une liste (BT) de Nt transformées, dite banque de transformées, par application au bloc courant décodé et calcul d'au moins un indicateur de performance (IP) par transformée appliquée, de façon similaire à celle d'un décodeur;
- Remettre en cause (CHANG) de transformées de la liste de transformées (Se) applicables en fonction d'un résultat de l'évaluation et de règles prédéterminées, connues d'un décodeur.
13. Signal portant un train binaire (STR) comprenant des données codées représentatives d'au moins une image (Ic), ladite image étant divisée en blocs de pixels traités dans un ordre défini, les données codées comprenant, pour un bloc courant, une information représentative d'un index d'une transformée appliquée à ce bloc dans une liste de transformées prédéterminé, caractérisé en ce que les données codées comprennent en outre une information (bv) représentative d'une autorisation ou d'une interdiction d'une remise en cause de ladite liste pour le bloc suivant, et en ce que, sur réception dudit signal, un décodeur est apte à valider une remise en cause de ladite liste en fonction de la valeur de ladite information.
14. Equipement terminal d'utilisateur (TU, TU') caractérisé en ce qu'il comprend un dispositif de décodage (200) d'au moins une image numérique selon la revendication 11 et/ou un dispositif de codage (100) d'au moins une image numérique selon la revendication 12.
15. Programme d'ordinateur (Pgl, Pg2) comprenant des instructions pour la mise en œuvre du procédé de selon l'une des revendications 1 à 10, lorsqu'il est exécuté par un processeur.
PCT/EP2018/058307 2017-03-31 2018-03-30 Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordnateurs associes WO2018178342A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1752824 2017-03-31
FR1752824A FR3064870A1 (fr) 2017-03-31 2017-03-31 Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordinateurs associes

Publications (1)

Publication Number Publication Date
WO2018178342A1 true WO2018178342A1 (fr) 2018-10-04

Family

ID=61223937

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2018/058307 WO2018178342A1 (fr) 2017-03-31 2018-03-30 Procede de decodage d'au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d'ordnateurs associes

Country Status (2)

Country Link
FR (1) FR3064870A1 (fr)
WO (1) WO2018178342A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2418855A1 (fr) * 2009-04-08 2012-02-15 Sharp Kabushiki Kaisha Dispositif de codage vidéo et dispositif de décodage vidéo
US20140348235A1 (en) * 2009-04-08 2014-11-27 Sharp Kabushiki Kaisha Video encoding apparatus and video decoding apparatus
US20160219290A1 (en) * 2015-01-26 2016-07-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2418855A1 (fr) * 2009-04-08 2012-02-15 Sharp Kabushiki Kaisha Dispositif de codage vidéo et dispositif de décodage vidéo
US20140348235A1 (en) * 2009-04-08 2014-11-27 Sharp Kabushiki Kaisha Video encoding apparatus and video decoding apparatus
US20160219290A1 (en) * 2015-01-26 2016-07-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
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, vol. 13, no. 7, July 2003 (2003-07-01), pages 620 - 636, XP011099255, DOI: doi:10.1109/TCSVT.2003.815173
ZHAO, J. CHEN; M. KARCZEWICZ; X. LI; C. WEI-JUNG: "Enhanced Multiple Transform for Video Coding", LA CONFÉRENCE DATA COMPRESSION CONFÉRENCE (DCC, 2016

Also Published As

Publication number Publication date
FR3064870A1 (fr) 2018-10-05

Similar Documents

Publication Publication Date Title
EP3183879A1 (fr) Procédé de codage d&#39;une image numérique, procédé de décodage, dispositifs, et programmes d&#39;ordinateurs associés
EP3061246B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
WO2010149900A1 (fr) Procédé de codage et de décodage d&#39;images, dispositifs de codage et de décodage, flux de données et programme d&#39;ordinateur correspondants
EP3314897A1 (fr) Procédé de codage d&#39;une image numérique, procédé de décodage, dispositifs, et programmes d&#39;ordinateurs associés
EP2279621B1 (fr) Procédé de codage, de décodage, codeur et décodeur
Lee et al. DPICT: Deep progressive image compression using trit-planes
EP3075155B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP3449631A1 (fr) Procede de decodage d&#39;une image numerique, procede de codage, dispositifs, et programmes d&#39;ordinateurs associes
EP3180914A1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
EP2716045B1 (fr) Procédé de codage et de décodage d&#39;images, dispositif de codage et de décodage d&#39;images et programmes d&#39;ordinateur correspondants
WO2016102804A1 (fr) Procede de codage d&#39;une image numerique, procede de decodage, dispositifs et programmes d&#39;ordinateurs associes
EP3529987A1 (fr) Procédé de codage et de décodage de paramètres d&#39;image, dispositif de codage et de décodage de paramètres d&#39;image et programmes d&#39;ordinateur correspondants
WO2018178342A1 (fr) Procede de decodage d&#39;au moins une image numerique, procede de codage, dispositifs, equipement terminal et programmes d&#39;ordnateurs associes
WO2019015884A1 (fr) Procede de decodage d&#39;une image, procede de codage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associes
FR3071690A1 (fr) Procede de decodage d&#39;une image, procede de codage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associes
WO2020002796A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
WO2018065687A1 (fr) Procede de codage d&#39;une image, procede de decodage, dispositifs, equipement terminal et programmes d&#39;ordinateurs associes
FR2957744A1 (fr) Procede de traitement d&#39;une sequence video et dispositif associe
EP3272122A1 (fr) Codage d&#39;images par quantification vectorielle
WO2020161413A1 (fr) Procédés et dispositifs de codage et de décodage d&#39;un flux de données représentatif d&#39;au moins une image
FR3033115A1 (fr) Procede de codage et decodage d&#39;images, dispositif de codage et decodage et programmes d&#39;ordinateur correspondants
Cheng Artistic and semantic progressive image coding
WO2013007920A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
FR3057429A1 (fr) Procede de codage d&#39;une image numerique, procede de decodage, dispositifs et programmes d&#39;ordinateurs associes
WO2006056720A1 (fr) Compression video par modification de quantification par zones d&#39;images

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 18716568

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 18716568

Country of ref document: EP

Kind code of ref document: A1