EP3345391A2 - Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants - Google Patents

Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants

Info

Publication number
EP3345391A2
EP3345391A2 EP16770058.2A EP16770058A EP3345391A2 EP 3345391 A2 EP3345391 A2 EP 3345391A2 EP 16770058 A EP16770058 A EP 16770058A EP 3345391 A2 EP3345391 A2 EP 3345391A2
Authority
EP
European Patent Office
Prior art keywords
transform
prediction mode
prediction
association
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
EP16770058.2A
Other languages
German (de)
English (en)
Inventor
Pierrick Philippe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
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 Orange SA filed Critical Orange SA
Publication of EP3345391A2 publication Critical patent/EP3345391A2/fr
Pending legal-status Critical Current

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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/103Selection of coding mode or of prediction mode
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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 present invention relates generally to the field of image processing, and more specifically to the encoding and decoding of digital images and digital image sequences.
  • 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 especially, but not exclusively, apply to video coding implemented in current AVC and HEVC video encoders and their extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc.), and to corresponding decoding.
  • MVC Motion Picture Codon Coding
  • 3D-AVC 3D-AVC
  • MV-HEVC 3D-HEVC
  • 3D-HEVC 3D-HEVC
  • residue block also called residue of prediction, corresponding to the original block minus a prediction.
  • the prediction can be omitted, the residual block then being equivalent to the original block.
  • the residue blocks are transformed using a transform mathematical operation and then quantized using a mathematical quantization operation, for example of the scalar type.
  • a mathematical quantization operation for example of the scalar type.
  • the mathematical operation of transform will be called later 'transformed' and the mathematical operation of quantification will be called later 'quantification'.
  • Coefficients are obtained at the end of the quantization step. They are then browsed in a reading order that depends on the coding mode that was chosen. In the HEVC standard, for example, the reading order is dependent on the prediction made and can be done in the "horizontal", “vertical” or “diagonal” order.
  • a one-dimensional list of coefficients is obtained.
  • the coefficients of this list are then encoded in bits by an entropy coding whose purpose is to code the coefficients without loss.
  • bits obtained after entropy coding are written in a signal or data stream which is intended to be transmitted to the decoder.
  • such a signal comprises:
  • the decoding is done image by image, and for each image, block by block. For each block, the corresponding elements of the stream are read. Inverse quantization and inverse transform of block coefficients are performed to produce the decoded prediction residue. Then, the prediction of the block is calculated and the block is reconstructed by adding the prediction to the decoded prediction residue.
  • DCT discrete Cosine Transform
  • DST discrete sinus transforms
  • such a transform can be of separable type or not separable.
  • a first Al transform is applied to a residue block X of K pixels which are organized in the form of an MxN matrix, where Al is a matrix of data of size MxM and M, N are natural numbers greater than or equal to 1.
  • a first transformed block Al.x is obtained at the end of the application of this first transform.
  • a transposition operation t is then applied to the transformed block Al.x.
  • a transposed block (Al.x) f is obtained.
  • the transformed block X obtained according to this second case is similar to the transformed block X obtained according to the first case, to a close transposition.
  • the corresponding inverse transform makes it possible to obtain the residue block x using the following calculation:
  • AI "1 and Ac " 1 represent the respective inverse transforms of the Al and Ac transforms. They make it possible to obtain the values of the residue block x from the values of the transformed block X.
  • the matrices AI "1 and Ac " 1 are commonly called inverse matrices of Al and Ac respectively, in the case where the matrices are chosen orthogonal. correspond to the matrices transposed of Al and Ac respectively.
  • the inverse transform consists in multiplying the transformed block X by the inverse matrix A "1 of A which can be the transpose of A, when A is orthogonal. This inverse transform makes it possible to obtain the following residue block x:
  • Non-separable mode depend transforms for Intra coding in HEVC Adrià Arrufat et al. VCIP 2014 "to increase the number of transforms by proposed modes of prediction.
  • a prediction mode is selected, a transform is selected from among the 16 transforms stored for this prediction mode, according to a predetermined coding performance criterion, such as the debit-distortion criterion well known to those skilled in the art.
  • a predetermined coding performance criterion such as the debit-distortion criterion well known to those skilled in the art.
  • the amount of transforms to be added in order to implement such an adaptation has an impact on the memory resources to be used both by the coder who must store the transforms for each of the predictions considered, and by the decoder which must also know the transforms to apply the transform inverse of that applied to the coding.
  • the amount of memory increases linearly with the number of transforms to be provisioned by prediction mode and becomes significant compared to the amount of storage required for current encoders, such as for example coders.
  • HEVC for which the amount of memory dedicated to the storage of transforms is about 1 kb.
  • an object of the present invention relates to a method of coding at least one image cut into blocks, implementing, for a current block to code the image:
  • Such a coding method is remarkable in that when storing the set of transform operations associated with the selected prediction mode, the number of transform operations contained in this set is different from the number of transform operations contained in the set. in a set of transform operations that is stored in association with at least one other predetermined prediction mode of the plurality of predetermined prediction modes.
  • the number of transform operations in each of said two sets contains in common at least one identical transform operation.
  • Such an arrangement further reduces the memory resources of the encoder for storing the transform matrices.
  • At least two sets of transform operations could contain in common:
  • a single transform operation for example a DCT type transform
  • the set of transform operations associated with the selected prediction mode is stored in association with at least one other prediction mode of the plurality of predetermined prediction modes.
  • Such an arrangement makes it possible to further reduce the memory resources of the encoder for storing the transform matrices.
  • the invention proposes different ways of determining the number of transform operations according to the prediction mode, so as to optimize the compromise "memory resources-coding performance”.
  • the number of transform operations that is determined in the case of a prediction mode associated with a vertical or horizontal prediction direction is greater than the number of transform operations that is determined in the case a prediction mode associated with an oblique prediction direction.
  • the number of transform operations which is determined in the case of a prediction mode for which the prediction is calculated by averaging more than two pixels of an edge of the current block, is greater or equal to the number of transform operations that is determined for any other prediction mode.
  • the number of transform operations that is determined in the case of a prediction mode that has been previously selected, in the plurality of predetermined prediction modes, as the prediction mode the more likely is greater than the number of transform operations that is determined in the case of a prediction mode that has not been previously selected as the most likely prediction mode.
  • the number of transform operations contained in the set of stored transform operations in association with the selected prediction mode is determined according to the amount of information representative of the prediction mode. selected.
  • the invention also relates to a device for encoding at least one image divided into blocks, comprising a processing circuit which, for a current block to be coded with the image, is arranged for:
  • the coding device is remarkable in that the processing circuit is arranged to store the set of transform operations associated with the selected prediction mode, the number of transform operations contained in this set being different from the number of transform operations contained in a set of transform operations that is stored in association with at least one other predetermined prediction mode of the plurality of predetermined prediction modes.
  • Such a coding device is particularly suitable for implementing the aforementioned coding method.
  • the invention also relates to a method for decoding a data signal representative of at least one image divided into blocks, implementing, for a current block to be decoded:
  • a prediction mode of the current block to be decoded this prediction mode belonging to a plurality of predetermined prediction modes
  • Such a decoding method is remarkable in that when storing the set of transform operations associated with the determined prediction mode, the number of transform operations contained in this set is different from the number of transform operations contained in the set. in a set of transform operations that is stored in association with at least one another predetermined prediction mode of the plurality of predetermined prediction modes.
  • the number of transform operations in each of the two sets contains in common at least one identical transform operation.
  • the set of transform operations associated with the determined prediction mode is stored in association with at least one other prediction mode of the plurality of predetermined prediction modes.
  • the number of transform operations which is determined in the case of a prediction mode associated with a vertical or horizontal prediction direction is greater than the number of transform operations which is determined in the case of a prediction mode associated with an oblique prediction direction.
  • the number of transform operations which is determined in the case of a prediction mode for which the prediction is calculated by averaging more than two pixels of an edge of the current block, is greater than or equal to the number of transform operations that is determined for any other prediction mode.
  • the number of transform operations which is determined in the case where the predetermined prediction mode has been previously selected, in the plurality of predetermined prediction modes, as the most predictive mode of prediction. likely is greater than the number of transform operations that is determined in the case where the determined prediction mode has not been previously selected as the most probable prediction mode.
  • the number of transform operations contained in the set of stored transform operations in association with the determined prediction mode is determined according to the amount of information representative of the prediction mode. determined.
  • the invention also relates to a device for decoding a data signal representative of at least one image divided into blocks, comprising a processing circuit which, for a current block to be decoded, is arranged for:
  • a mode of prediction of the current block to be decoded this prediction mode belonging to a plurality of predetermined prediction modes,
  • a transform operation to the data representative of the residue block, such a transform operation belonging to a set of transform operations that is previously stored in association with the determined prediction mode, reconstructing the current block using a predictor block obtained at the end of the prediction and data obtained following the transformation operation.
  • the decoding device is remarkable in that the processing circuit is arranged to store the set of transform operations associated with the determined prediction mode, the number of transform operations contained in this set being different from the number of transform operations contained in a set of transform operations that is stored in association with at least one other predetermined prediction mode of the plurality of predetermined prediction modes.
  • Such a decoding device is particularly suitable for implementing the aforementioned decoding method.
  • the invention also relates to a computer program comprising instructions for implementing one of the coding and decoding methods according to the invention, when it is executed on a computer.
  • This program can use any programming language, and be in the form of source code, object code, or intermediate code between source code and object code, such as in a partially compiled form, or in any other form desirable shape.
  • the invention also relates to a computer-readable recording medium on which a computer program is recorded, this program comprising instructions adapted to the implementation of one of the coding or decoding methods according to the invention. as described above.
  • the invention also relates to a computer-readable recording medium on which a computer program is recorded, this program comprising instructions adapted to the implementation of the coding or decoding method according to the invention, as described. above.
  • the recording medium may be any entity or device capable of storing the program.
  • the medium may include storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording means, for example a USB key or a hard disk.
  • the recording medium may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means.
  • the program according to the invention can be downloaded in particular on an Internet type network.
  • the recording medium may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the aforementioned coding or decoding method.
  • FIG. 1 represents the steps of the coding method according to the invention
  • FIG. 2 represents an embodiment of a coding device according to the invention
  • FIG. 3 represents the steps of a method for determining a variable number of transforms by prediction mode, according to one embodiment of the invention
  • FIG. 4 represents a table illustrating the number of transforms determined by prediction mode, after successive addition of sixteen transforms according to the determination method of FIG. 3;
  • FIG. 5 represents a comparison diagram between the compromise - memory resources / coding performance - as obtained following the implementation of the iterative process of FIG. 3, and that obtained with a number of identical transforms by prediction mode,
  • FIG. 6A represents a first example of grouping of various Intra prediction modes according to the symmetry of their corresponding angles
  • FIG. 6B represents a second example of grouping of various Intra prediction modes according to the symmetry of their corresponding angles
  • FIG. 7 represents a graph which illustrates the relationship between thirty-three Intra HEVC prediction modes and their corresponding angular directions
  • FIG. 8 represents an example of grouping of different modes of prediction Inter according to the symmetry of their corresponding angles
  • FIG. 9 represents a table illustrating the number of transforms determined by group of prediction modes, after successive addition of sixteen transforms according to a variant of the determination method of FIG. 3,
  • FIG. 10 represents an embodiment of a decoding device according to the invention.
  • FIG. 1 1 represents the main steps of the decoding method according to the invention.
  • the coding method according to the invention is for example implemented in a software or hardware way by modifications of an encoder initially conforming to any one of the current or future video coding standards.
  • the coding method according to the invention is represented in the form of an algorithm comprising steps C0 to C9 as represented in FIG.
  • the coding method according to the invention is implemented in a coding device CO represented in FIG.
  • such an encoder device comprises:
  • an input ENT_C to receive a current image to be encoded
  • a processing circuit CT_C for implementing the coding method according to the invention, the processing circuit CT_C containing:
  • an output SOR_C for delivering a coded stream containing the data obtained at the end of the coding of the current image.
  • the code instructions of the computer program PG_C are for example loaded into a RAM memory, MR_C, before being executed by the processing circuit CT_C.
  • the coding method shown in FIG. 1 applies to any current image IC j fixed or part of a sequence of L images IC-i,
  • a current image IC j is partitioned into a plurality of blocks Bi, B 2 , B ,, ..., B s (1 ⁇ i ⁇ S), for example of size MxM pixels, where M is a natural integer greater than or equal to 1.
  • Such a partitioning step is implemented by a partitioning software module MP_C shown in FIG. 2, which module is controlled by the processor PROC_C.
  • block means coding unit (coding unit). This last terminology is notably used in the standard HEVC "ISO / IEC / 23008-2 Recommendation ITU-T H.265 High Efficiency Video Coding (HEVC)”.
  • HEVC High Efficiency Video Coding
  • such a coding unit groups together sets of pixels of rectangular or square shape, also called blocks, macroblocks, or sets of pixels having other geometrical shapes.
  • Said blocks Bi, B 2 , B ,, ..., B s are intended to be coded according to a predetermined order of travel, which is for example of the lexicographic type. This means that the blocks are coded one after the other, from left to right. Other types of course are of course possible. Thus, it is possible to cut the image IC j into several subimages called slices and to independently apply a division of this type on each sub-image. It is also possible to code not a succession of lines, as explained above, but a succession of columns. It is also possible to browse the rows or columns in one direction or the other.
  • Each block can also be divided into sub-blocks which are themselves subdividable.
  • the coder CO selects as current block a first block to be coded B, of the image IC j , such as for example the first block B-.
  • the current block B is predicted by known Intra and / or Inter prediction techniques.
  • the block B is predicted with respect to at least one predictor block according to a prediction mode MP S selected from among a plurality of predetermined prediction modes MP 0 , MP-1, ..., MP V ,. .., MP R where 0 ⁇ v ⁇ R + 1 and 0 ⁇ s ⁇ R + 1.
  • block B is predicted with respect to a plurality of candidate predictor blocks.
  • Each of the candidate predictor blocks is a block of pixels that has already been encoded or encoded and decoded.
  • Such predictor blocks are stored beforehand in the buffer MT_C of the coder CO as represented in FIG. 2.
  • an optimal predictor block BP op t is obtained following a putting into competition of said predetermined prediction modes, for example by minimizing a distortion rate criterion that is well known to the human being. job.
  • the BP op t block is considered as an approximation of the current block B ,.
  • the information relating to this prediction is intended to be written in a signal or data stream to be transmitted to a decoder. Such information includes in particular the type of prediction (Inter or Intra), and if appropriate, the selected prediction mode MP S , the partitioning type of the current block if the latter has been subdivided, the reference image index and the displacement vector used in the case where an Inter prediction mode has been selected. This information is compressed by the CO encoder.
  • the data relating to the current block B are compared with the data of the predictor block BP op t. More precisely, during this step, the difference between the predictor block obtained BP op t and the current block B i is conventionally calculated.
  • a set of data, called residual block ⁇ , is then obtained at the end of step C4.
  • the steps C3 and C4 are implemented by a predictive coding software module PRED_C shown in FIG. 2, which module is controlled by the processor PROC_C.
  • a transform of the residue block Br 1 can be for example:
  • a direct transform such as, for example, a discrete cosine transform of the DCT type
  • a direct transform such as, for example, a discrete sinus transform of the DST type
  • Said transform belongs to a set of transforms which, during a prior storage step C0 shown in FIG. 1, is stored in association with the selected prediction mode MP S , in the buffer memory MT_C of FIG. during this storage step: the predetermined prediction mode MP 0 is stored in association with a set of transforms containing a number NB 0 of transforms,
  • the predetermined prediction mode MP is stored in association with a set of transforms containing a number NB of transforms
  • the predetermined prediction mode MP V is stored in association with a set of transforms containing a number NB V of transforms,
  • the predetermined prediction mode MP R is stored in association with a set of transforms containing a number NB R of transforms.
  • the number of transforms, noted NB a which is contained in the set of transforms associated with the prediction mode MP a is different from the number of transforms, noted NB b , which is contained in a set of stored transforms in association with the prediction mode MP b .
  • the number of transforms in each of said two sets contains in common at least one identical transform operation.
  • the number of transforms in each of said two sets may for example contain in common:
  • more than two sets of transforms may contain in common at least one identical transform operation.
  • the sets of transforms respectively associated with each of these thirty-five prediction directions may contain in common at least one identical transform operation.
  • the set of transforms associated with said selected prediction mode MP S and containing a number NB S of transforms is stored in association with at least one other prediction mode, denoted MP U , of said plurality of predetermined prediction modes MP 0 , MPi, ..., MP V , ..., MP R , with 0 ⁇ u ⁇ R + 1.
  • the aforementioned determination step C5 consists of:
  • the complexity is defined for example by counting the number of mathematical operations (addition, multiplication, binary shift) involved for calculating the transform of the coefficients of the residual block.
  • the residue block Br is transformed using the transform T s> k or T s> k *.
  • Such an operation is performed by a transform software module MTR_C, as represented in FIG. 2, which module is controlled by the processor PROC_C.
  • a transformed Bt block is obtained.
  • Step C7 the data of the transformed block Bt are quantized according to a conventional quantization operation, such as, for example, a scalar or vector quantization.
  • a block Bq of quantized coefficients is then obtained.
  • Step C7 is performed by means of a quantization software module MQ_C as represented in FIG. 2, which module is controlled by the processor PROC_C.
  • step C7 is represented following the transforming step C6.
  • step C7 can be integrated in step C6 which is then implemented with integers including the quantization factor.
  • step C8 the data of the block Bq 1 is encoded.
  • Such coding is, for example, entropic coding of CABAC type ("Context Adaptive Binary Arithmetic Coder" in English) or else an entropy coding of arithmetic type or Huffman type.
  • CABAC Context Adaptive Binary Arithmetic Coder
  • entropy coding of arithmetic type or Huffman type.
  • Step C8 is implemented by an encoding software module MC_C shown in FIG. 2, which module is controlled by the processor PROC_C.
  • the signal or data flow F which contains:
  • the IDX index can be written in the stream, for example in the form of a binary code.
  • Such an arrangement is for example implemented if the transform T s> k or T Sik * is a transform which is common to the R + 1 sets of transforms respectively associated with the R + 1 predetermined prediction modes MP 0 , MP-i, ..., MP V , ..., MP R.
  • the IDX index will then be set to 1 or 0, for example 1. If, on the other hand, the transform T s> k or T s> k * is a transform which is not common to the R + 1 sets of transforms respectively associated with the R + 1 predetermined prediction modes MP 0 , MP-i, ..
  • the IDX index will contain a first bit of value 0, followed by an additional codeword representative of the transform T s> k or T s> k * which has been selected in the number NB S of transforms contained in the set of transforms associated with the prediction mode MP S selected.
  • the first bit of value 0 is for example coded using a CABAC encoder.
  • the additional code word may be coded on a fixed length if the number of transforms NB S is a power of 2.
  • the additional codeword may also be coded on a variable length code if the number of transforms NB S is a power of 2 or not.
  • the step C9 is implemented by a software module MCF data signal construction, as shown in Figure 2, which module is controlled by the PROC_C processor.
  • the data signal F is then delivered via the output SOR_C of the coder CO of FIG. 2, then transmitted by a communication network (not shown) to a remote terminal.
  • the data signal F furthermore comprises certain information encoded by the coder CO, such as the type of prediction (Inter or Intra) applied to the step C3, and, if appropriate, the prediction mode selected.
  • a decoded residue block BDn is then obtained.
  • the decoded block BDi is then constructed by adding to the optimal predictor block BP opt the decoded residue block BDn.
  • the decoded block BD is the same as the decoded block obtained at the end of the decoding process of the image IC j which will be described later in the description.
  • the decoded block BD is thus made available for use by the coder CO of FIG. 2.
  • n max of transforms that can be associated with a given intra prediction mode is determined.
  • n max 16
  • this number may or may not include at least one HEVC transform common to each of the 35 intra ipm prediction modes of the HEVC standard.
  • step ST2 the number of transforms for each of the thirty-five intrapm prediction modes of the HEVC standard is initialized to zero.
  • Each prediction mode has at this step only one common transform of the type of that of HEVC (DCT or DST) and zero additional transform.
  • DCT or DST DCT
  • Such a step is summarized in the table TB1 of FIG. 4, whose first column lists the 35 prediction modes intra ipm 0 to ipm 34 and the first line lists the first fifteen iterations, during each of which is added a transformed. Following the first column of Table TB1 are also listed, for each of the first fifteen iterations:
  • BDRate the coding performance obtained, that is to say the percentage of flow reduction obtained relative to a HEVC encoder.
  • a first iteration is carried out 1, during which a first transform is added.
  • step ST4 shown in FIG. 3 for each of the thirty-five intra prediction modes, calculation of the coding performance and the storage capacity to be used in relation to the added transform are performed.
  • the obtained coding performances that is to say the gain in bit rate, are denoted Ri t , x and the corresponding storage capacity for storing the added transform is denoted Mj tjX .
  • step ST6 shown in FIG 3 it is proceeded to select the intra prediction mode IPM x for which the A_X report presents the most favorable value, that is to say the rate decrease the more important for added memory resources as low as possible.
  • the intra prediction mode IPM x for which the A_X report presents the most favorable value, that is to say the rate decrease the more important for added memory resources as low as possible.
  • the ratio a_0 which is the most favorable and which corresponds to the prediction mode intra 0.
  • the index of this mode is indicated at the bottom of the third column of the table in association with:
  • the CO encoder of FIG. 2 is updated with the transform added during this first iteration.
  • the table TB1 shows how, over the first fifteen iterations carried out, the bit rate gain (BDRate) is improved as a function of the iterations, as the memory resources (ROM) increase.
  • the storage capacity of prior art encoders that use a fixed number of transforms per prediction mode is 140 kb, whereas the storage capacity of the encoders according to the using a variable number of transforms per prediction mode is 60.4 kb.
  • the reduction of the storage capacities of the encoders according to the invention with respect to the coders of the state of the art can thus be estimated at 57% for the gain in target bit rate of 2.8%.
  • the coding method according to the invention advantageously makes it possible to obtain high coding performances, with a limited impact on the storage capacity of the transforms compared to that used in the coding methods of the prior art.
  • an embodiment of the invention implemented in the case of a HEVC encoding of Intra type, and in which the set of transforms associated with an intra prediction mode selected in step C3 of FIG. 1 is previously stored in association with at least one other prediction mode of said plurality of predetermined prediction modes.
  • the optimal predictor block BP op t obtained is associated with an optimal Intra prediction direction which is, for example, the direction DPI 2 2-
  • the transform (if unique) or the set of transforms associated with the Intra DPI22 prediction direction is previously associated, during the step CO of FIG. 1, with another direction.
  • Intra prediction provided that this other Intra prediction direction is symmetrical with respect to the Intra DPI 2 2 prediction direction. In this way, two-fold fewer transforms are stored at the CO encoder, and correspondingly, at the level of the decoder which will be described later in the following description, the advantage being a reduction of the memory encoder side and decoder.
  • two Intra prediction directions with symmetries are associated with the same transform or set of transforms.
  • two intra-angular prediction directions each having identical angle deviations with respect to a vertical (or horizontal) direction are associated with the same transform or set of transforms.
  • an Intra-angular prediction direction having an angle of 30 ° with respect to a horizontal axis AH is associated with an Intra-Angular prediction direction presenting symmetrically an angle of -30 ° with respect to this axis. horizontal.
  • these two directions of prediction Intra correspond respectively to directions DPI 4 and DP 6 .
  • an Intra Angular prediction direction having an angle of -60 ° with respect to a horizontal axis is associated with an Intra Angular prediction direction having symmetrically an angle of -120 ° with respect to a vertical axis AV.
  • these two prediction directions Intra correspond respectively to the directions DPI 2 o and DPI 32 .
  • the transform or the plurality of transforms associated with the Intra DPI22 prediction direction selected in step C3 is previously associated with three other Intra prediction directions, provided that these other Intra prediction directions are symmetrical with respect to the Intra DPI 2 2 prediction direction.
  • the advantage being a reduction of the memory encoder and decoder side.
  • Intra prediction directions with symmetries are associated with the same transform or set of transforms.
  • intra-angular prediction directions each having identical angles with respect to a vertical, horizontal and diagonal axis are associated with the same transform or the same set of transforms.
  • an Intra Angular prediction direction having an angle of 30 ° with respect to the horizontal axis AH is associated with:
  • these four Intra prediction directions correspond respectively to the directions DPI 4 , DPI 6 , DPI 2 o and DPI 32 .
  • the table below represents nine groups G 1 to G 9 of Intra HEVC prediction directions to which may be associated, in the buffer MT_C of the coder CO of FIG. 2, the same transform (if unique) or a set of transforms, as determined according to the invention.
  • Group Index directions may be associated, in the buffer MT_C of the coder CO of FIG. 2, the same transform (if unique) or a set of transforms, as determined according to the invention.
  • 8 and DPI 34 , as illustrated in Figure 7, are grouped by three and are associated with the same transform or the same set of transforms.
  • step C40 of at least one displacement.
  • data of the residual block Br as obtained at the end of step C4 of FIG.
  • each piece of data considered is moved inside the residue block while keeping its nearest neighbors.
  • the step C40 is implemented by a calculation software module CAL_C as represented in FIG. 2, which module is controlled by the processor PROC_C.
  • a type of data displacement is a transposition, namely an exchange of the row and column coordinates of a data item of the current residue block.
  • a type of data displacement is a mirror, namely an exchange of columns or rows of the current residue block. Each piece of data considered in the current residue block Br, is thus moved inside the residue block while keeping its nearest neighbors.
  • a type of data displacement is a combination of the transposition and the mirror, that is to say: either the application of a displacement of transposition type followed by the application of a mirror-like displacement to the data of the current residue block,
  • the type of data displacement in the residual block ⁇ is a function of the prediction mode MP S selected.
  • an Intra prediction direction is associated with one of the eight types of displacement, according to its grouping mode. For example :
  • the intra-DPI 2 2 and DPI 6 prediction directions associated with the same transform or the same set of transforms are themselves respectively associated with the type 0 and type 5 mirror rotations as represented in FIG. 8,
  • the intra-DPI 4 and DPI 6 prediction directions associated with the same transform or the same set of transforms are themselves respectively associated with the type 0 and type 2 mirror rotations as represented in FIG. 8,
  • the intra-DPI 2 o and DPI 32 prediction directions associated with the same transform or the same set of transforms are themselves respectively associated with the type 0 and type 1 mirror rotations as represented in FIG. 8,
  • the intra-DPI 4 , DPI 6 , DPI 2 o and DPI 32 prediction directions associated with the same transform or the same set of transforms are they are respectively associated with mirror rotations of type 6, type 4, type 0 and type 1, as shown in FIG.
  • bit rate gain (BDRate) is improved as a function of the iterations, as the memory resources (ROM) increase, when at least two prediction modes are associated with the same set of transforms.
  • Table TB2 shows a significant reduction in memory resources dedicated to storing transforms of the order of 20% compared to the coding method that does not use such a grouping of prediction modes.
  • Table TB2 shows a significant reduction in memory resources dedicated to storing transforms of the order of 20% compared to the coding method that does not use such a grouping of prediction modes.
  • the gain being evaluated in terms of storage capacity for targeted coding performances is presented the table below which gives a comparative of the capacities fixed storage units present in a coder of the prior art using the same number of transforms by prediction mode and variable storage capacities present in the encoder according to the invention, and the reduction of storage capacity obtained with the capacity of the variable storage.
  • the storage capacity of the encoders that use a fixed number of transforms per prediction mode is 17.5 kb
  • the storage capacity of the encoders according to the invention that use a variable number of transforms per prediction mode or set of prediction modes is only 5.3 kb.
  • the reduction of the storage capacities of the encoders according to the invention with respect to the coders of the state of the art can thus be estimated at 70% for the target rate gain of 1.7%.
  • the iterative determination method of the number of transforms by prediction mode or by group of prediction modes can be replaced by a method of automatically determining said number of transforms.
  • the automatic determination method may be necessary when, in certain coding contexts, the CO encoder of FIG. 2 is forced to operate at a given point of complexity. It is then necessary, during the coding, to reduce the number of transforms in competition to limit the choice investigations by the coder of the optimal transform, during step C5 of FIG.
  • the number of transforms which is determined in the case of a prediction mode associated with a vertical or horizontal prediction direction is made greater than the number of transforms which is determined in the case of a prediction associated with an oblique prediction direction.
  • the person skilled in the art knows that among the thirty-five intra prediction modes available, the modes 0 (Planar) and 1 (DC) are the most smoothed modes because the prediction according to these two modes is calculated by averaging more than two pixels from an edge of the current block. As a result, the Planar and DC modes are associated, during the step C0 of FIG. 1, with a greater number of transforms than the other intra-HEVC prediction modes.
  • the modes 10 and 26 are used to predict patterns of the image which are horizontal or vertical. Since such patterns are frequently found in nature (eg vertical trees, poles, horizon lines, etc.), they must be associated with a higher number of transforms than the number of transforms associated with the intra-prediction modes. obliques.
  • the number of transforms which is determined in the case of a prediction mode which has been previously selected, in the plurality of predetermined prediction modes MP 0 , MP-i,. . . , MPv, ..., M PR, as the most probable prediction mode is greater than the number of transforms that is determined in the case of a prediction mode that has not been previously selected as a mode prediction most likely.
  • MPMs of the "Most Probable Modes"
  • the modes 0 (Planar), 1 (DC) and 26 (vertical) are the prediction modes assigned by default when establishing the list.
  • these three modes of intra prediction are therefore previously associated, during the storage step C0 of FIG. 1, with a greater number of transforms than the number of transforms associated with the other intra-HEVC prediction modes.
  • the number of transforms contained in the set of transforms stored in association with each of the predetermined prediction modes MP 0 , MP-i,. . . , MP V , ..., MP R is determined according to the amount of information representative of each of these prediction modes.
  • the most probable intra prediction modes such as 0 (Planar), 1 (DC) and 26 (vertical) will be reported on less bits than the other modes. According to the invention, it is therefore appropriate to associate them with a higher number of transforms than the other intra prediction modes, because these three modes will be chosen more frequently than the others and consequently, there will be a greater variety of predictor blocks to test with these three modes.
  • the number of transforms, which is stored in association with this prediction mode during step C0 of FIG. is larger than the average of the transforms over all thirty-five intra prediction modes.
  • the decoding method according to the invention is for example implemented in a software or hardware way by modifications of such a decoder.
  • the decoding method according to the invention is represented in the form of an algorithm comprising steps D0 to D9 as represented in FIG. According to this embodiment, the decoding method according to the invention is implemented in a decoding device or decoder DO represented in FIG.
  • such a decoder device comprises:
  • CT_D processing circuit for implementing the decoding method according to the invention, the CT_D processing circuit containing:
  • an output SOR_D for delivering a reconstructed current image containing the data obtained at the end of the decoding according to the method of the invention.
  • the code instructions of the computer program PG_D are for example loaded into a RAM memory, MR_D, before being executed by the processing circuit CT_D.
  • the decoding method represented in FIG. 11 applies to a signal or data flow F representative of a current image ICj to be decoded which is fixed or which belongs to a sequence of images to be decoded.
  • information representative of the current image ICj to be decoded is identified in the data signal F received at the input ENT_D of the decoder DO and as delivered at the end of the coding method of FIG.
  • step D1 it is carried out in the determination signal F residues encoded blocks associated with each of the blocks Bi, B 2, Bi, ..., B s previously coded according to the above-mentioned lexicographic order.
  • Such a determination step D1 is implemented by a flow analysis software identification module MI_D, as shown in FIG. 10, which module is controlled by the PROC_D processor.
  • the blocks Bi, B 2 , B ,,..., B s to be decoded have, for example, a square shape and are for example of size MxM pixels where M is a natural integer greater than or equal to 1.
  • Each block to be decoded can also be divided into sub-blocks which are themselves subdividable.
  • the decoder DO of FIG. 10 selects, as current block B, to be decoded, the first block which has been coded at the end of the coding method of FIG. .
  • step C40 for moving data of the residual block Br has been implemented at the coding .
  • step D3 information relating to the prediction type of the current block B, as implemented during coding in step C3 of FIG. 1, which has been written in the signal, is determined.
  • step D3 are determined:
  • the index of the predictor block BP op t denoted IBP op t
  • the type of partitioning of the current block B if the latter has been partitioned.
  • Such a decoding step D3 is implemented by a decoding module MD_D shown in FIG. 10, which module is controlled by the processor PROC_D.
  • the predictive decoding of the current block to be decoded is carried out using the IBP index opt of the block predictor that was decoded during the aforementioned step D3.
  • Each of the candidate predictor blocks is a block of pixels that has already been decoded.
  • Step D4 is implemented by an inverse prediction software module PRED "1 _D, as shown in FIG. 10, which is controlled by the PROC_D processor.
  • step D5 which is implemented in the case where it is the set of data associated with the block Bq, or Bmq, coded which was obtained at the end of the
  • dequantization of this set of data is carried out according to a conventional dequantization operation which is the inverse operation of the quantization implemented during the quantization step C7 of FIG.
  • a set of current dequantized coefficients BDq, or a set of dequantized modified current coefficients BDmq, is then obtained at the end of step D5.
  • Such a dequantization step is for example of scalar or vector type.
  • Step D5 is performed by means of an inverse quantization software module MQ "1 _D, as shown in FIG. 10, which module is controlled by the PROC_D processor.
  • the decoder DO of FIG. 10 carries out the determination of a transform of the current dequantized coefficient set BDq, or the set of dequantized modified current coefficients BD m , as obtained in step D5 above.
  • a transform is an inverse transform from that determined at the end of step C5 of FIG. 1, such as, for example:
  • a direct transform such as, for example, a discrete cosine transform of the DCT type
  • a direct transform such as, for example, a discrete sinus transform of the DST type, -an optimized block transform distortion rate as presented in the publication "Rate-distortion optimized! transform competition for intra coding in HEVC ", Adrià Arrufat, Philippe Pierrick, Olivier Deforges, IEEE VCIP, Dec 2014,
  • Said transform belongs to a set of transforms which, during a prior storage step D0 represented in FIG. 11, is stored in association with the prediction mode MP S , in the buffer memory MT_D of FIG. during this storage step:
  • the predetermined prediction mode MP 0 is stored in association with a set of transforms containing a number NB 0 of transforms,
  • the predetermined prediction mode MPi is stored in association with a set of transforms containing a number NB of transforms
  • the predetermined prediction mode MP V is stored in association with a set of transforms containing a number NB V of transforms;
  • the predetermined prediction mode MP R is stored in association with a set of transforms containing a number NB R of transforms.
  • the number of transforms, noted NB a which is contained in the set of transforms associated with the prediction mode MP a is different from the number of transforms transformed, noted NB b , which is contained in a set of transforms stored in association with the prediction mode MP b .
  • the number of transforms in each of said two sets contains in common at least one identical transform.
  • the number of transforms in each of said two sets may for example contain in common:
  • more than two sets of transforms may contain in common at least one identical transform operation.
  • the sets of transforms respectively associated with each of these thirty-five prediction directions may contain in common at least one identical transform operation.
  • the set of transforms, associated with said prediction mode MP S determined in the aforementioned step D3 and containing a number NB S of transforms, is stored in the buffer memory MT_D of the FIG. 10, in association with at least one other prediction mode, denoted MP U , of said plurality of predetermined prediction modes MP 0 , MP 1 ..., MP V , ..., MP R , with 0 ⁇ u ⁇ R + 1.
  • step D7 the inverse transform of the transform T s> k or T s> k * is applied to the set of dequantized coefficients current BDq, or to the set of current dequantized coefficients BD mq ,, as obtained in step D5 above.
  • a current decoded residue block BDr is obtained at the end of step D7.
  • Such an operation is performed by an inverse transform software module MTR "1 _D, as shown in FIG. 10, which module is controlled by the processor PROC_D.
  • step D5 is represented before the inverse transformation application step D7.
  • step D5 can be integrated in step D7 which is then implemented with integers including the dequantization factor.
  • the current block B is reconstructed, by adding to the decoded residue block BDn, obtained at the end of the aforementioned step D7, the predictor block BP op. t that was obtained at the end of the aforementioned step D4.
  • a current decoded block BD is obtained.
  • Step D8 is implemented by a software module CAL1_D shown in FIG. 10, which module is controlled by the processor PROC_D.
  • step D9 said current decoded block BD is written in a decoded image ID j .
  • Such a step is implemented by an image reconstruction URI software module as shown in FIG. 10, said module being controlled by the PROC_D processor.
  • the decoding steps which have just been described above are implemented for all the blocks Bi, B 2 , B ,,..., B s to be decoded from the current image IC j considered, in a predetermined order which is for example the lexicographic order.
  • the decoding method implements, according to a first embodiment of the invention, a method for determining the number of transforms for each predetermined prediction mode. , in the case of an Intra type HEVC decoding.
  • FIGS. 3, 6A, 6B, 7 to 11 an embodiment of the invention implemented in the case of Intra-type HEVC decoding, and in which the set of FIG. Transforms associated with an intra prediction mode determined in step D3 of FIG. 11 are previously stored in association with at least one other prediction mode of said plurality of predetermined prediction modes.
  • the optimal predictor block BP op t obtained is associated with an optimal Intra prediction direction which is, for example, the direction DPI 22.
  • the transform (if unique) or the set of transforms associated with the direction of prediction Intra DPI 22 is previously associated, during the step DO of Figure 1 1, to another direction of prediction Intra , provided that this other Intra prediction direction is symmetrical with respect to the Intra DPI prediction direction 22 - In this way, two times fewer transforms are stored at the decoder DO, the advantage being a reduction of the memory decoder side.
  • two Intra prediction directions with symmetries are associated with the same transform or set of transforms.
  • two intra-angular prediction directions each having identical angles with respect to a vertical (or horizontal) direction are associated with the same transform or set of transforms.
  • an Intra-angular prediction direction having an angle of 30 ° with respect to a horizontal axis AH is associated with an Intra-Angular prediction direction presenting symmetrically an angle of -30 ° with respect to this axis. horizontal.
  • these two prediction directions Intra correspond respectively to directions DPI 4 and DP 6 .
  • an Intra Angular prediction direction having an angle of -60 ° with respect to a horizontal axis is associated with an Intra Angular prediction direction having symmetrically an angle of -120 ° with respect to a vertical axis AV.
  • these two prediction directions Intra correspond respectively to the directions DPI 2 o and DPI 32 .
  • the transform or the plurality of transforms associated with the direction of Intra DPI prediction 2 2 determined in step D3 is previously associated with three other prediction directions
  • Intra provided that these other prediction directions Intra are symmetrical with respect to the Intra DPI 2 2 prediction direction. In this way, four times fewer transforms are stored at the decoder DO, the advantage being a reduction of the decoder side memory.
  • Intra prediction directions with symmetries are associated with the same transform or set of transforms.
  • intra-angular prediction directions each having identical angles with respect to a vertical, horizontal and diagonal axis are associated with the same transform or the same set of transforms.
  • an Intra Angular prediction direction having an angle of 30 ° with respect to the horizontal axis AH is associated with:
  • these four prediction directions Intra correspond respectively to the directions DPI 4 , DPI-
  • the table below represents nine groups G 1 to G 9 of Intra HEVC prediction directions to which may be associated a single transform (if unique) or a set of transforms, as determined according to the invention.
  • 45 ° multiple angular directions (45 °, -45 ° and -135 °) as shown in FIG. 6B, corresponding respectively to the prediction directions DPI 2 , DPI 8 and DPI 34 , as illustrated in FIG. 7, are grouped by three and are associated, in the buffer MT_D of the decoder DO of Figure 10, the same transform or the same set of transforms.
  • the step D70 is implemented by a calculation software module CAL2_D as represented in FIG. 10, which module is controlled by the processor PROC_D.
  • a type of data displacement is a transposition, the reverse of that performed at the coding, namely an exchange of the row and column coordinates of a data block residue modified decoded BDmn current.
  • a type of data displacement is a mirror, the reverse of that carried out at the coding, namely an exchange of the columns or lines of the current decoded modified residual block BDmn.
  • Each data considered in the current decoded modified residue block BDmn is thus moved inside the latter, while keeping its nearest neighbors.
  • a type of data displacement is a combination of the inverse transposition and the inverse mirror, that is to say:
  • the type of data displacement in the current decoded modified residual block BDmn is a function of the prediction mode MP S determined in the aforementioned step D3.
  • an Intra prediction direction determined at the end of the step D3 of FIG. 11 is associated with one of the eight types of inverse displacement, according to the group to which it belongs.
  • the directions of intra prediction DPI22 and DPI 6 associated with the same transform or the same set of transforms are themselves respectively associated with the inverse mirror rotations respectively of the type 0 and type 5 mirror rotations as represented in FIG. 8,
  • the intra-DPI 4 and DP 6 prediction directions associated with the same transform or the same set of transforms are themselves respectively associated with the inverse mirror rotations respectively of the type 0 and type 2 mirror rotations as represented in FIG. 8 ,
  • the iterative determination method of the number of transforms by prediction mode or by group of prediction modes can be replaced by a method of automatic determination of said number of transforms.
  • the automatic determination method may be necessary when, in certain decoding contexts, the decoder DO of FIG. 10 is constrained to operate at a given point of complexity.
  • This given point of complexity can be indicated by the encoder CO of FIG. 2, by a given configuration information for a portion of an image, an entire image or for a sequence of images. It can comprise a maximum number of transforms identifier or a ratio of the number of transforms relative to the number of transformations available to the decoder.
  • the decoder DO searches in the buffer memory MT_D of FIG. 10 only in the number of transforms associated with FIG. said configuration information signaled, the transform selected at the coding and corresponding to the IDX index determined in step D3.
  • the number of transforms which is determined in the case of a prediction mode associated with a vertical or horizontal prediction direction is made greater than the number of transforms which is determined in the case of a prediction associated with an oblique prediction direction.
  • the person skilled in the art knows that among the thirty-five intra prediction modes available, the modes 0 (Planar) and 1 (DC) are the most smoothed modes because the prediction according to these two modes is calculated by averaging more pixels than the edges of the current block. Consequently, the Planar and DC modes are associated, during the step D0 of FIG. 11, with a greater number of transforms than the other intra-HEVC prediction modes.
  • modes 10 and 26 are used to predict image patterns that are horizontal or vertical. Since such patterns are frequently found in nature (eg vertical trees, poles, horizon lines, etc.), they must be associated with a higher number of transforms than the number of transforms associated with the intra-prediction modes. obliques.
  • the number of transforms that is determined in the case of a prediction mode that has been previously selected, in the plurality of predetermined prediction modes MP 0 , MP-i, ..., MPv, ..., M PR, as the most probable prediction mode is greater than the number of transforms that is determined in the case of a prediction mode that has not been previously selected as a prediction mode. more likely.
  • MPMs of the "Most Probable Modes"
  • the modes 0 (Planar), 1 (DC) and 26 (vertical) are the prediction modes assigned by default when establishing the list.
  • these three intra prediction modes are therefore previously associated, during the step of storage OD of Figure 1A, to a number of transforms higher than the number of transforms associated with the other modes of intra-HEVC prediction.
  • the number of transforms contained in the set of transforms stored in association with each of the predetermined prediction modes MP 0 , MP-i,. . . , MP V , ..., MP R is determined according to the amount of information representative of each of these prediction modes.
  • the most probable intra prediction modes such as 0 (Planar), 1 (DC) and 26 (vertical) will be reported on less bits than the other modes. According to the invention, it is therefore appropriate to associate them with a higher number of transforms than the other intra prediction modes, because these three modes will be chosen more frequently than the others and consequently, there will be a greater variety of predictor blocks to test with these three modes.
  • the number of transforms, which is stored in association with this prediction mode during the step D0 of FIG. 1, is larger than the average of the transforms on all thirty-five intra prediction modes.

Abstract

L'invention concerne un procédé de codage d'au moins une image (ICj) découpée en blocs, mettant en œuvre, pour un bloc courant (Bi) à coder de ladite image : - une prédiction (C3) du bloc courant conformément à un mode de prédiction (MPs) sélectionné parmi une pluralité de modes de prédiction prédéterminés, - un calcul (C4) d'un bloc résidu de données représentatif d'une différence entre un bloc prédicteur (BPopt) obtenu à l'issue de la prédiction et le bloc courant, - une application (C6) d'une opération de transformée aux données dudit bloc résidu, ladite opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké (C0) en association avec un mode de prédiction sélectionné, - un codage (C8) des données obtenues à la suite de ladite opération de transformée, ledit procédé de codage étant caractérisé en ce que lors du stockage (C0) de l'ensemble d'opérations de transformée associé audit mode de prédiction sélectionné, le nombre d'opérations de transformée contenu dans ledit ensemble est différent du nombre d'opérations de transformées contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de ladite pluralité.

Description

PROCÉDÉ DE CODAGE ET DE DÉCODAGE D'IMAGES, DISPOSITIF DE CODAGE ET DE DECODAGE D'IMAGES ET PROGRAMMES
D'ORDINATEUR CORRESPONDANTS Domaine de l'invention
La présente invention se rapporte de manière générale au domaine du traitement d'images, et plus précisément au codage et au décodage d'images numériques et de séquences d'images numériques.
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 et HEVC et leurs extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc), et au décodage correspondant. Art antérieur
Les codeurs vidéo actuels (MPEG, H.264, HEVC, ...) utilisent une représentation par blocs de la séquence vidéo. Les images sont découpées en blocs, lesquels sont susceptibles d'être redécoupés de façon récursive. Puis chaque bloc est codé par prédiction intra-images ou inter-images. Ainsi, certaines images sont codées par prédiction spatiale (prédiction Intra), d'autres images sont également codées par prédiction temporelle (prédiction Inter) par rapport à une ou plusieurs images de référence codées-décodées, à l'aide d'une compensation en mouvement connue par l'homme de l'art.
Pour chaque bloc est codé un bloc résidu, encore appelé résidu de prédiction, correspondant au bloc original diminué d'une prédiction. Notons que dans un cas particulier, la prédiction peut être omise, le bloc résidu étant alors équivalent au bloc original. Les blocs résidus sont transformés à l'aide d'une opération mathématique de transformée, puis quantifiés à l'aide d'une opération mathématique de quantification par exemple de type scalaire. Dans un souci de simplification, l'opération mathématique de transformée sera appelée par la suite 'transformée' et l'opération mathématique de quantification sera appelée par la suite 'quantification'.
Des coefficients sont obtenus à l'issue de l'étape de quantification. Ils sont ensuite parcourus dans un ordre de lecture qui dépend du mode de codage qui a été choisi. Dans la norme HEVC, par exemple, l'ordre de lecture est dépendant de la prédiction réalisée et peut être effectué dans l'ordre « horizontal », « vertical » ou « diagonal ».
A l'issue du parcours précité, une liste monodimensionnelle de coefficients est obtenue. Les coefficients de cette liste sont alors codés sous forme de bits par un codage entropique dont le but est de coder les coefficients sans perte.
Les bits obtenus après codage entropique sont inscrits dans un signal ou flux de données qui est destiné à être transmis au décodeur.
De façon connue en soi, un tel signal comprend :
- les coefficients quantifiés contenus dans la liste précitée,
- des informations représentatives du mode de codage utilisé, en particulier:
• le mode de prédiction (prédiction Intra, prédiction Inter, prédiction par défaut réalisant une prédiction pour laquelle aucune information n'est transmise au décodeur (« en anglais « skip »)) ;
• des informations précisant le type de prédiction (orientation, image de référence, ...) ;
· le type de découpage du bloc ;
• les informations de mouvement si nécessaire ;
• etc. Une fois que le flux a été reçu par le décodeur, le décodage est fait image par image, et pour chaque image, bloc par bloc. Pour chaque bloc, les éléments correspondants du flux sont lus. La quantification inverse et la transformée inverse des coefficients des blocs sont effectuées pour produire le résidu de prédiction décodé. Puis, la prédiction du bloc est calculée et le bloc est reconstruit en ajoutant la prédiction au résidu de prédiction décodé.
La technique de codage/décodage classique qui vient d'être décrite permet certes des améliorations des performances de codage. Selon le contexte vidéo, elle permet notamment :
- une amélioration de la qualité des images pour un débit donné du réseau utilisé pour transmettre les images,
- un réduction du débit de transmission des images pour un critère de qualité d'images préalablement fixé.
Toutefois, de telles performances de codage ne sont actuellement pas optimisées et ont vocation à encore être améliorées, en particulier du point de vue de l'obtention du meilleur compromis - ressources mémoire/performances de codage-.
En particulier, une telle optimisation pourrait concerner la transformée précitée. Il s'agit classiquement d'une transformée linéaire qui, lorsqu'elle s'applique à un bloc résidu contenant un nombre déterminé de K pixels (K>1 ), permet d'obtenir un ensemble de K coefficients. Dans les codeurs/décodeurs vidéo actuels (MPEG, H.264, HEVC, ...), une seule transformée est stockée en association avec un mode de prédiction donné.
Dans le domaine du codage vidéo, les transformées en cosinus discrète, DCT (abréviation anglaise de « Discrète Cosine Transform »), ou les transformées en sinus discrète, DST (abréviation anglaise de « Discrète Sine Transform »), sont généralement privilégiées, notamment pour les raisons suivantes :
- ce sont des transformées bloc et il est ainsi facile de manipuler les blocs indépendamment les uns des autres,
- elles sont efficaces pour compacter l'information dans le domaine fréquentiel, là où l'opération de réduction de débit opère.
De façon classique, une telle transformée peut être de type séparable ou non séparable.
S'agissant d'une transformée de type séparable, il est procédé, selon un premier cas, à l'application d'une première transformée Al à un bloc résidu x de K pixels qui sont organisés sous forme d'une matrice MxN, où Al est une matrice de données de taille MxM et M, N sont des entiers naturels supérieurs ou égaux à 1 . A l'issue de l'application de cette première transformée est obtenu un premier bloc transformé Al.x.
Une opération de transposition t est ensuite appliquée sur le bloc transformé Al.x. A l'issue de cette transposition est obtenu un bloc transposé (Al.x)f.
Enfin, une deuxième transformée Ac est appliquée sur le bloc transposé (Al.x)f, où Ac est une matrice de données de taille NxN. A l'issue de l'application de cette deuxième transformée est obtenu un deuxième bloc transformé X de K=NxM pixels, tel que :
X = Ac - (Al - xf
Selon un deuxième cas, l'ordre d'application des transformées Al et Ac est inversé. Le deuxième bloc transformé X de K=NxM pixels s'écrit alors de la façon suivante :
X = Al - (Ac - xty
Le bloc transformé X obtenu selon ce deuxième cas est similaire au bloc transformé X obtenu selon le premier cas, à une transposition près.
Dans le cas particulier où le bloc résidu x est carré, c'est-à-dire M=N, les matrices Al et Ac ont la même taille.
Au décodage, de façon connue en soi, sont appliquées des transformées inverses de celles mentionnées ci-dessus.
Ainsi, si la transformée a été appliquée selon le premier cas, la transformée inverse correspondante permet d'obtenir le bloc résidu x à l'aide du calcul suivant :
x = Al'1■ (Ac'1■ xy
Ainsi, si la transformée a été appliquée selon le deuxième cas, la transformée inverse correspondante permet d'obtenir le bloc résidu x à l'aide du calcul suivant : x = (Ac-1 ■ (Ai^ - xyy
AI"1 et Ac"1 représentent les transformées inverses respectives des transformées Al et Ac. Elles permettent d'obtenir les valeurs du bloc résidu x à partir des valeurs du bloc transformé X. Les matrices AI"1 et Ac"1 sont appelées communément matrices inverses de Al et Ac respectivement, dans le cas où les matrices sont choisies orthogonales elles correspondent aux matrices transposées de Al et Ac respectivement.
S'agissant d'une transformée de type non séparable, elle s'écrit au codage comme la multiplication du bloc résidu x, mis sous la forme d'un vecteur de dimension 1 xK, par une matrice A de taille KxK. Le bloc transformé X obtenu à l'issue de l'application de cette transformée s'écrit alors de la façon suivante :
X = A - x
Au décodage, la transformée inverse consiste à multiplier le bloc transformé X par la matrice inverse A"1 de A qui peut être la transposée de A, lorsque A est orthogonale. Une telle transformée inverse permet d'obtenir le bloc résidu x suivant :
x = A~1 - X
Dans le domaine du codage vidéo, il a été proposé, notamment dans la publication « Non-separable mode dépendent transforms for Intra coding in HEVC, Adrià Arrufat et al. VCIP 2014 » d'augmenter le nombre de transformées par modes de prédiction proposés. Ainsi, dans le cadre d'une prédiction spatiale conforme au standard HEVC qui peut être mise en œuvre selon trente- cinq modes de prédiction spatiale différents, il est proposé de stocker 16 transformées en association avec chacun des 35 modes de prédiction respectivement. Lorsqu'un mode de prédiction est sélectionné, une transformée est sélectionnée parmi les 16 transformées stockées pour ce mode de prédiction, selon un critère de performance de codage prédéterminé, tel que le critère débit-distorsion bien connu de l'Homme du métier. Ainsi, pour chaque prédiction considérée, l'étape d'application de transformée est mieux adaptée à la nature des signaux résidu de prédiction et la performance de codage est améliorée selon les critères de distorsion pour un débit donné qui sont bien connus de l'homme de métier.
Toutefois avec une telle approche, la quantité de transformées à ajouter pour pouvoir mettre en œuvre une telle adaptation a un impact sur les ressources mémoire à utiliser à la fois au codeur qui doit stocker les transformées pour chacune des prédictions considérées, et au décodeur qui doit également connaître les transformées pour appliquer la transformée inverse de celle appliquée au codage.
Ainsi, si on se place dans le cas de transformées séparables, ce qui est le cadre général en codage vidéo, le besoin de stockage peut être estimé suivant un nombre total NT de transformées, tel que NT=n*NMp où n est le nombre de transformées à provisionner par mode de prédiction et NMp est le nombre de modes de prédiction proposés. Plus particulièrement dans le cas d'un codage HEVC utilisant par exemple des transformées de taille 8x8, dont les coefficients sont stockés sur un octet, il est nécessaire de stocker 2 transformées (verticales et horizontales) ce qui requiert à minima (2 * 8 * 8 * n * NMP)/1024= 4.375 kilooctets, où n=1 et NMp=35.
Cette configuration est représentée sur la première ligne du tableau ci- dessous. Pour cette configuration, sont également représentées les performances de codage obtenues. Ces performances correspondent au gain en débit, c'est-à-dire au pourcentage de réduction de débit obtenu sans affecter les performances de codage (à distorsion constante). Les lignes suivantes représentent l'évolution des ressources mémoire requises lorsque respectivement deux, quatre, huit, seize transformées 8x8 sont stockées en association avec chacun des 35 modes de prédiction spatiale, ainsi que les performances de codage correspondantes. Nombre n de Nombre total quantité de Gain en débit
transformées NT de mémoire
/mode de transformées nécessaire
prédiction
1 35 4.375 ko 0,84%
2 70 8.75 ko 1 ,33%
4 140 17.5 ko 1 ,72%
8 280 35 ko 2,10%
16 560 70 ko 2,48%
Il convient de constater que selon le tableau ci-dessus, la quantité de mémoire croit linéairement avec le nombre de transformées à provisionner par mode de prédiction et devient significative comparativement à la quantité de stockage requise pour les codeurs actuels, tels que par exemple les codeurs HEVC, pour lesquels la quantité de mémoire consacrée au stockage des transformées est de 1 ko environ.
En outre, il est observé que les performances de codage les plus élevées (gain en débit de 2,48%) nécessitent une quantité de mémoire non négligeable de 560ko par rapport à la quantité de mémoire maximale de 1 ko requise dans HEVC.
Même si le gain en débit de 2,48% s'avère intéressant, une mémoire de capacité 70ko pour stocker 560 transformées afin d'obtenir un tel gain s'avère bien trop coûteuse, sachant que les mémoires utilisées pour l'implémentation matérielle de systèmes de codage/décodage vidéo doivent être rapides au regard de la quantité de données traitées.
Objet et résumé de l'invention
Un des buts de l'invention est de remédier à des inconvénients de l'état de la technique précité. A cet effet, un objet de la présente invention concerne un procédé de codage d'au moins une image découpée en blocs, mettant en œuvre, pour un bloc courant à coder de l'image :
- une prédiction du bloc courant conformément à un mode de prédiction sélectionné parmi une pluralité de modes de prédiction prédéterminés,
- un calcul d'un bloc résidu de données représentatif d'une différence entre un bloc prédicteur obtenu à l'issue de la prédiction et le bloc courant,
- une application d'une opération de transformée aux données dudit bloc résidu, ladite opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké en association avec un mode de prédiction sélectionné,
- un codage des données obtenues à la suite de ladite opération de transformée
Un tel procédé de codage est remarquable en ce que lors du stockage de l'ensemble d'opérations de transformée associé au mode de prédiction sélectionné, le nombre d'opérations de transformée contenu dans cet ensemble est différent du nombre d'opérations de transformées contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés.
Une telle disposition permet, lorsqu'il existe plusieurs opérations de transformée par mode de prédiction :
- soit de réduire significativement les ressources mémoire du codeur en vue du stockage des matrices de transformée par rapport aux ressources mémoire des codeurs de l'art antérieur, sans pour cela détériorer les performances de codage du bloc courant,
- soit augmenter les performances de codage du bloc courant sans pour cela requérir à une augmentation des ressources mémoire du codeur en vue du stockage des matrices de transformée, par rapport aux ressources mémoire des codeurs de l'art antérieur. Selon un mode de réalisation particulier, pour au moins deux ensembles d'opérations de transformées stockés respectivement en association avec deux modes de prédiction de la pluralité de modes de prédiction prédéterminés, le nombre d'opérations de transformée dans chacun desdits deux ensembles contient en commun au moins une opération de transformée identique.
Une telle disposition permet de réduire davantage les ressources mémoire du codeur en vue du stockage des matrices de transformée.
Ainsi par exemple, dans le cadre du standard HEVC, au moins deux ensembles d'opérations de transformée pourraient contenir en commun :
- une seule opération de transformée, par exemple une transformée de type DCT,
- deux opérations de transformée, par exemple une transformée de type DCT et une transformée de type DST,
- etc ..
Selon un autre mode de réalisation particulier, l'ensemble d'opérations de transformée associé au mode de prédiction sélectionné est stocké en association avec au moins un autre mode de prédiction de la pluralité de modes de prédiction prédéterminés.
Une telle disposition permet de réduire encore davantage les ressources mémoire du codeur en vue du stockage des matrices de transformée.
L'invention propose différentes manières de déterminer le nombre d'opérations de transformées en fonction du mode de prédiction, de façon à optimiser le compromis « ressources mémoire-performance de codage ».
Selon un mode de réalisation particulier, le nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction verticale ou horizontale est supérieur au nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction oblique.
Selon un autre mode de réalisation particulier, le nombre d'opérations de transformée, qui est déterminé dans le cas d'un mode de prédiction pour lequel la prédiction est calculée en moyennant plus de deux pixels d'un bord du bloc courant, est supérieur ou égal au nombre d'opérations de transformée qui est déterminé pour tout autre mode de prédiction. Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction qui a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés, en tant que mode de prédiction le plus probable, est supérieur au nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction qui n'a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée contenu dans l'ensemble d'opérations de transformée stocké en association avec le mode de prédiction sélectionné est déterminé en fonction de la quantité d'informations représentatives du mode de prédiction sélectionné.
Cette dernière disposition permet en outre de calculer simplement et de façon optimale en termes de compromis « ressources mémoire-performance de codage » le nombre d'opérations de transformées à utiliser pour un mode de prédiction prédéterminé donné.
Les différents modes ou caractéristiques de réalisation précités peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de codage tel que défini ci-dessus.
L'invention concerne également un dispositif de codage d'au moins une image découpée en blocs, comprenant un circuit de traitement qui, pour un bloc courant à coder de l'image, est agencé pour :
- prédire le bloc courant conformément à un mode de prédiction sélectionné parmi une pluralité de modes de prédiction prédéterminés,
- calculer un bloc résidu de données représentatif d'une différence entre un bloc prédicteur obtenu à l'issue de la prédiction et le bloc courant,
- appliquer une opération de transformée aux données du bloc résidu, l'opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké en association avec le mode de prédiction sélectionné,
- coder les données obtenues à la suite de l'opération de transformée. Le dispositif de codage selon l'invention est remarquable en ce que le circuit de traitement est agencé pour stocker l'ensemble d'opérations de transformée associé au mode de prédiction sélectionné, le nombre d'opérations de transformée contenu dans cet ensemble étant différent du nombre d'opérations de transformée contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés.
Un tel dispositif de codage est notamment apte à mettre en œuvre le procédé de codage précité.
L'invention concerne aussi un procédé de décodage d'un signal de données représentatif d'au moins une image découpée en blocs, mettant en œuvre, pour un bloc courant à décoder :
- une détermination, dans le signal de données :
• de données représentatives d'un bloc résidu courant associé au bloc courant à décoder,
• d'un mode de prédiction du bloc courant à décoder, ce mode de prédiction appartenant à une pluralité de modes de prédiction prédéterminés,
- une prédiction du bloc courant conformément au mode de prédiction déterminé,
- une application d'une opération de transformée aux données représentatives du bloc résidu, une telle opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké en association avec le mode de prédiction déterminé,
- une reconstruction du bloc courant à l'aide d'un bloc prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de ladite opération de transformée.
Un tel procédé de décodage est remarquable en ce que lors du stockage de l'ensemble d'opérations de transformée associé au mode de prédiction déterminé, le nombre d'opérations de transformée contenu dans cet ensemble est différent du nombre d'opérations de transformée contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés.
De façon similaire au codeur, une telle disposition est avantageuse au décodeur qui doit également connaître les transformées pour appliquer la transformée inverse de celle appliquée au codage. En particulier, une telle disposition permet, lorsqu'il existe plusieurs opérations de transformée par mode de prédiction :
- soit de réduire significativement les ressources mémoire du décodeur en vue du stockage des matrices de transformée par rapport aux ressources mémoire des décodeurs de l'art antérieur, sans pour cela détériorer la qualité de reconstruction du bloc courant,
- soit augmenter la qualité de reconstruction du bloc courant sans pour cela requérir à une augmentation des ressources mémoire du décodeur en vue du stockage des matrices de transformée par rapport aux ressources mémoire des décodeurs de l'art antérieur.
Selon un mode de réalisation particulier, pour au moins deux ensembles d'opérations de transformée stockés respectivement en association avec deux modes de prédiction de la pluralité de modes de prédiction prédéterminés, le nombre d'opérations de transformée dans chacun des deux ensembles contient en commun au moins une opération de transformée identique.
Selon un autre mode de réalisation particulier, l'ensemble d'opérations de transformée associé au mode de prédiction déterminé est stocké en association avec au moins un autre mode de prédiction de la pluralité de modes de prédiction prédéterminés.
Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction verticale ou horizontale est supérieur au nombre d'opérations de transformée qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction oblique.
Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée, qui est déterminé dans le cas d'un mode de prédiction pour lequel la prédiction est calculée en moyennant plus de deux pixels d'un bord du bloc courant, est supérieur ou égal au nombre d'opérations de transformée qui est déterminé pour tout autre mode de prédiction.
Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée qui est déterminé dans le cas où le mode de prédiction déterminé a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés, en tant que mode de prédiction le plus probable, est supérieur au nombre d'opérations de transformée qui est déterminé dans le cas où le mode de prédiction déterminé n'a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
Selon encore un autre mode de réalisation particulier, le nombre d'opérations de transformée contenu dans l'ensemble d'opérations de transformée stocké en association avec le mode de prédiction déterminé est déterminé en fonction de la quantité d'informations représentatives du mode de prédiction déterminé.
Les différents modes ou caractéristiques de réalisation précités peuvent être ajoutés indépendamment ou en combinaison les uns avec les autres, aux étapes du procédé de décodage tel que défini ci-dessus.
L'invention concerne également un dispositif de décodage d'un signal de données représentatif d'au moins une image découpée en blocs, comprenant un circuit de traitement qui, pour un bloc courant à décoder, est agencé pour :
- déterminer, dans le signal de données :
• des données représentatives d'un bloc résidu courant associé au bloc courant à décoder,
• un mode de prédiction du bloc courant à décoder, ce mode de prédiction appartenant à une pluralité de modes de prédiction prédéterminés,
- prédire le bloc courant conformément au mode de prédiction déterminé,
- appliquer une opération de transformée aux données représentatives du bloc résidu, une telle opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké en association avec le mode de prédiction déterminé, - reconstruire le bloc courant à l'aide d'un bloc prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de l'opération de transformée.
Le dispositif de décodage selon l'invention est remarquable en ce que le circuit de traitement est agencé pour stocker l'ensemble d'opérations de transformée associé au mode de prédiction déterminé, le nombre d'opérations de transformée contenu dans cet ensemble étant différent du nombre d'opérations de transformée contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de la pluralité de modes de prédiction prédéterminés.
Un tel dispositif de décodage est notamment apte à mettre en œuvre le procédé de décodage précité.
L'invention concerne encore un programme d'ordinateur comportant des instructions pour mettre en œuvre l'un des procédés de codage et de décodage selon l'invention, lorsqu'il est exécuté sur un ordinateur.
Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.
L'invention vise également un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre de l'un des procédés de codage ou de décodage selon l'invention, tels que décrits ci-dessus.
L'invention vise également un support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur, ce programme comportant des instructions adaptées à la mise en œuvre du procédé de codage ou de décodage selon l'invention, tels que décrits ci-dessus.
Le support d'enregistrement peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une clé USB ou un disque dur. D'autre part, le support d'enregistrement peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon l'invention peut être en particulier téléchargé sur un réseau de type Internet.
Alternativement, le support d'enregistrement peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé de codage ou de décodage précité.
Brève description des dessins
D'autres caractéristiques et avantages apparaîtront à la lecture d'un mode de réalisation préféré décrit en référence aux figures dans lesquelles:
- la figure 1 représente les étapes du procédé de codage selon l'invention,
- la figure 2 représente un mode de réalisation d'un dispositif de codage selon l'invention,
- la figure 3 représente les étapes d'un procédé de détermination d'un nombre variable de transformées par mode de prédiction, selon un mode de réalisation de l'invention,
- la figure 4 représente un tableau illustrant le nombre de transformées déterminé par mode de prédiction, après ajout successif de seize transformées selon le procédé de détermination de la figure 3,
- la figure 5 représente un diagramme comparatif entre le compromis - ressources mémoire/performances de codage -, tel qu'obtenu à la suite de la mise en œuvre du procédé itératif de la figure 3, et celui obtenu avec un nombre de transformées identique par mode de prédiction,
- la figure 6A représente un premier exemple de regroupement de différents modes de prédiction Intra en fonction de la symétrie de leurs angles correspondants,
- la figure 6B représente un deuxième exemple de regroupement de différents modes de prédiction Intra en fonction de la symétrie de leurs angles correspondants, - la figure 7 représente un graphique qui illustre la relation entre trente-trois modes de prédiction Intra HEVC et leurs directions angulaires correspondantes,
- la figure 8 représente un exemple de regroupement de différents modes de prédiction Inter en fonction de la symétrie de leurs angles correspondants,
- la figure 9 représente un tableau illustrant le nombre de transformées déterminé par groupe de modes de prédiction, après ajout successif de seize transformées selon une variante du procédé de détermination de la figure 3,
- la figure 10 représente un mode de réalisation d'un dispositif de décodage selon l'invention,
- la figure 1 1 représente les principales étapes du procédé de décodage selon l'invention.
Description détaillée de la partie codage
Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de codage selon l'invention est utilisé pour coder une image ou une séquence d'images selon un flux binaire proche de celui qu'on obtient par un codage conforme à l'une quelconque des normes de codage vidéo actuelles ou à venir.
Dans ce mode de réalisation, le procédé de codage selon l'invention est par exemple implémenté de manière logicielle ou matérielle par modifications d'un codeur initialement conforme à l'une quelconque des normes de codage vidéo actuelles ou à venir. Le procédé de codage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes C0 à C9 telles que représentées à la figure 1 .
Selon le mode de réalisation de l'invention, le procédé de codage selon l'invention est implémenté dans un dispositif de codage CO représenté à la figure 2.
Comme illustré en figure 2, un tel dispositif codeur comprend :
- une entrée ENT_C pour recevoir une image courante à coder, - un circuit de traitement CT_C pour mettre en œuvre le procédé de codage selon l'invention, le circuit de traitement CT_C contenant :
• une mémoire MEM_C comprenant une mémoire tampon MT_C,
« un processeur PROC_C piloté par un programme d'ordinateur PG_C,
- une sortie SOR_C pour délivrer un flux codé contenant les données obtenues à l'issue du codage de l'image courante.
A l'initialisation, les instructions de code du programme d'ordinateur PG_C sont par exemple chargées dans une mémoire RAM, MR_C, avant d'être exécutées par le circuit de traitement CT_C.
Le procédé de codage représenté sur la figure 1 s'applique à toute image courante ICj fixe ou bien faisant partie d'une séquence de L images IC-i ,
ICj ICL (1≤j≤L) à coder.
Au cours d'une étape C1 représentée à la figure 1 , il est procédé, de façon connue en soi, au partitionnement d'une image courante ICj en une pluralité de blocs B-i , B2, B,, ..., Bs (1 <i≤S), par exemple de taille MxM pixels, où M est un entier naturel supérieur ou égal à 1 . Une telle étape de partitionnement est mise en œuvre par un module logiciel de partitionnement MP_C représenté sur la figure 2, lequel module est piloté par le processeur PROC_C.
Il convient de noter qu'au sens de l'invention, le terme « bloc » signifie unité de codage (de l'anglais « coding unit »). Cette dernière terminologie est notamment utilisée dans la norme HEVC « ISO/IEC/23008-2 Recommandation ITU-T H.265 High Efficiency Video Coding (HEVC) ».
En particulier, une telle unité de codage regroupe des ensembles de pixels de forme rectangulaire ou carrée, encore appelés blocs, macroblocs, ou bien des ensembles de pixels présentant d'autres formes géométriques.
Lesdits blocs B-i , B2, B,, ..., Bs sont destinés à être codés selon un ordre de parcours prédéterminé, qui est par exemple du type lexicographique. Cela signifie que les blocs sont codés les uns après les autres, de la gauche vers la droite. D'autres types de parcours sont bien sûr possibles. Ainsi, il est possible de découper l'image ICj en plusieurs sous-images appelées slices et d'appliquer indépendamment un découpage de ce type sur chaque sous-image. Il est également possible de coder non pas une succession de lignes, comme expliqué ci-dessus, mais une succession de colonnes. Il est également possible de parcourir les lignes ou colonnes dans un sens ou dans l'autre.
Chaque bloc peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles.
Au cours d'une étape C2 représentée à la figure 1 , le codeur CO sélectionne comme bloc courant un premier bloc à coder B, de l'image ICj, tel que par exemple le premier bloc B-,.
Au cours d'une étape C3 représentée à la figure 1 , il est procédé à la prédiction du bloc courant B, par des techniques connues de prédiction Intra et/ou Inter. A cet effet, le bloc B, est prédit par rapport à au moins un bloc prédicteur conformément à un mode de prédiction MPS sélectionné parmi une pluralité de modes de prédiction prédéterminés MP0, MP-i ,..., MPV,..., MPR où 0<v≤R+1 et 0<s≤R+1 .
De façon connue en soi, le bloc B, est prédit par rapport à une pluralité de blocs prédicteurs candidats. Chacun des blocs prédicteurs candidats est un bloc de pixels qui a été déjà codé ou bien codé puis décodé. De tels blocs prédicteurs sont préalablement stockés dans la mémoire tampon MT_C du codeur CO telle que représentée à la figure 2.
A l'issue de l'étape C3 de prédiction, un bloc prédicteur optimal BPopt est obtenu suite à une mise en compétition desdits modes de prédiction prédéterminés, par exemple par minimisation d'un critère débit distorsion bien connu de l'homme du métier. Le bloc BPopt est considéré comme une approximation du bloc courant B,. Les informations relatives à cette prédiction sont destinées à être inscrites dans un signal ou flux de données à transmettre à un décodeur. De telles informations comprennent notamment le type de prédiction (Inter ou Intra), et le cas échéant, le mode de prédiction sélectionné MPS, le type de partitionnement du bloc courant si ce dernier a été subdivisé, l'indice d'image de référence et le vecteur de déplacement utilisés dans le cas où un mode de prédiction Inter a été sélectionné. Ces informations sont compressées par le codeur CO.
Au cours d'une étape C4 représentée à la figure 1 , il est procédé à la comparaison des données relatives au bloc courant B, aux données du bloc prédicteur BPopt. Plus précisément, au cours de cette étape, il est procédé classiquement au calcul de la différence entre le bloc prédicteur obtenu BPopt et le bloc courant B,.
Un ensemble de données, appelé bloc résidu Βη, est alors obtenu à l'issue de l'étape C4.
Les étapes C3 et C4 sont mises en œuvre par un module logiciel de codage prédictif PRED_C représenté sur la figure 2, lequel module est piloté par le processeur PROC_C.
Au cours d'une étape C5 représentée à la figure 1 , le codeur CO de la figure 2 procède à la détermination d'une transformée du bloc résidu Br,. Une telle transformée peut être par exemple :
- une transformée directe telle que par exemple une transformée en cosinus discrète de type DCT,
- une transformée directe telle que par exemple une transformée en sinus discrète de type DST,
-une transformée bloc optimisée en débit distorsion comme présenté dans la publication « Rate-distortion optimisée! transform compétition for intra coding in HEVC », Adrià Arrufat, Pierrick Philippe, Olivier Déforges, IEEE VCIP, Dec 2014,
- une transformée en ondelettes du type DWT,
- une transformée incluant un recouvrement du type Lapped
Transforms telle que présentée dans la publication « Réduction of blocking effects in image coding with a lapped orthogonal transform », H. Malvar,
- ou tout autre type de transformées exploitables.
Ladite transformée appartient à un ensemble de transformées qui, au cours d'une étape préalable de stockage C0 représentée à la figure 1 , est stocké en association avec le mode de prédiction sélectionné MPS, dans la mémoire tampon MT_C de la figure 2. Au cours de cette étape de stockage : - le mode de prédiction prédéterminé MP0 est stocké en association avec un ensemble de transformées contenant un nombre NB0 de transformées,
- le mode de prédiction prédéterminé MP est stocké en association avec un ensemble de transformées contenant un nombre NB de transformées,
- le mode de prédiction prédéterminé MPV est stocké en association avec un ensemble de transformées contenant un nombre NBV de transformées,
- le mode de prédiction prédéterminé MPR est stocké en association avec un ensemble de transformées contenant un nombre NBR de transformées.
Conformément à l'invention, pour au moins deux modes de prédiction différents MPa, MPb appartenant à la pluralité de modes de prédiction prédéterminés MP0, MPi, ..., MPV, ..., MPR, avec 0<a≤R+1 et 0<b≤R+1 , le nombre de transformées, noté NBa, qui est contenu dans l'ensemble de transformées associé au mode de prédiction MPa est différent du nombre de transformées, noté NBb, qui est contenu dans un ensemble de transformées stocké en association avec le mode de prédiction MPb.
Selon un premier exemple de réalisation, pour au moins deux ensembles de transformées stockés respectivement en association avec deux modes de prédiction de ladite pluralité MP0, MP-i , . . . , MPV, ..., MPR de modes de prédiction prédéterminés, le nombre de transformées dans chacun desdits deux ensembles contient en commun au moins une opération de transformée identique.
Par exemple, dans le cas d'un codage selon le standard HEVC, le nombre de transformées dans chacun desdits deux ensembles peut par exemple contenir en commun :
- une transformée de type DST ou bien une transformée de type
DCT,
- deux transformées, l'une de type DCT, l'autre de type DST, - plus de deux transformées en commun.
Par ailleurs, plus de deux ensembles de transformées peuvent contenir en commun au moins une opération de transformée identique. Toujours dans le cas d'un codage selon le standard HEVC, et plus particulièrement dans le cas d'une prédiction Intra conforme à ce standard qui propose trente-cinq directions de prédiction possibles DPI0, DP , ..., DPI34, les ensembles de transformées associés respectivement à chacune de ces trente-cinq directions de prédiction peuvent contenir en commun au moins une opération de transformée identique.
Selon un deuxième exemple de réalisation représenté sur la figure 2, l'ensemble de transformées associé audit mode de prédiction sélectionné MPS et contenant un nombre NBS de transformées est stocké en association avec au moins un autre mode de prédiction, noté MPU, de ladite pluralité de modes de prédiction prédéterminés MP0, MPi, ..., MPV,..., MPR, avec 0≤u≤R+1 .
Ainsi, en fonction du nombre NBS de transformées qui est contenu dans l'ensemble de transformées associé au mode de prédiction MPS sélectionné à l'étape C4, l'étape de détermination précitée C5 consiste :
- soit à lire une unique transformée, notée Ts>k, si l'ensemble de transformées qui est associé au mode de prédiction MPS ne contient qu'une transformée, c'est-à-dire dans le cas où NBS=1 ,
- soit à sélectionner une transformée parmi plusieurs, notée par exemple Ts>k*, avec 0<k*≤N-1 , si l'ensemble de transformées qui est associé au mode de prédiction MPS contient plus d'une transformée, c'est-à-dire dans le cas où NBS>1 , une telle sélection étant mise en œuvre selon un critère de performance de codage prédéterminé, par exemple :
· par minimisation du critère débit/distorsion bien connu de l'homme du métier,
• ou par minimisation uniquement du débit,
• ou par minimisation uniquement de la distorsion,
• ou par minimisation du compromis débit- distorsion/complexité bien connu de l'homme du métier,
• ou par minimisation uniquement de l'efficacité,
• ou par minimisation uniquement de la complexité. On rappelle que dans un contexte de codage vidéo, la complexité est définie par exemple par le comptage du nombre d'opérations mathématiques (addition, multiplication, décalage binaire) impliquées pour le calcul de la transformée des coefficients du bloc résidu.
Au cours d'une étape C6 représentée à la figure 1 , il est procédé à la transformée du bloc résidu Br, à l'aide de la transformée Ts>k ou Ts>k*. Une telle opération est effectuée par un module logiciel MTR_C de transformée, tel que représenté figure 2, lequel module est piloté par le processeur PROC_C. A l'issue de l'étape C6, un bloc transformé Bt, est obtenu.
Au cours d'une étape C7 représentée à la figure 1 , il est procédé à la quantification des données du bloc transformé Bt, selon une opération classique de quantification, telle que par exemple une quantification scalaire ou vectorielle. Un bloc Bq, de coefficients quantifiés est alors obtenu. L'étape C7 est effectuée au moyen d'un module logiciel de quantification MQ_C tel que représenté à la figure 2, lequel module est piloté par le processeur PROC_C.
Sur la figure 1 , l'étape de quantification C7 est représentée à la suite de l'étape C6 d'application de transformée. Toutefois, l'étape C7 peut être intégrée à l'étape C6 qui est alors mise en œuvre avec des nombres entiers incluant le facteur de quantification.
De façon connue en soi, au cours d'une étape C8 représentée sur la figure 1 , il est procédé au codage des données du bloc Bq,. Un tel codage est par exemple un codage entropique de type CABAC ("Context Adaptive Binary Arithmetic Coder" en anglais) ou bien encore un codage entropique de type arithmétique ou de Huffman. A l'issue de l'étape C8 sont obtenues des données codées d-ι , d2, ...,dw, ..., dv (1≤w≤V avec V entier naturel) associées au bloc courant B,.
L'étape C8 est mise en œuvre par un module logiciel de codage MC_C représenté sur la figure 2, lequel module est piloté par le processeur PROC_C.
Au cours d'une étape C9 représentée à la figure 1 , il est procédé à la construction du signal ou flux de données F qui contient :
- les données codées d-i , d?, ...,d w, dv obtenues à l'issue de l'étape C8 précitée, - l'index IDX de la transformée Ts>k ou TSik* qui a été déterminée à l'étape C5.
L'index IDX peut être inscrit dans le flux, par exemple sous la forme d'un code binaire. Une telle disposition est par exemple mise en œuvre si la transformée Ts>k ou TSik* est une transformée qui est commune aux R+1 ensembles de transformées associés respectivement aux R+1 modes de prédiction prédéterminés MP0, MP-i , ... , MPV,..., MPR. L'index IDX sera alors mis à 1 ou 0, par exemple 1 . Si en revanche la transformée Ts>k ou Ts>k* est une transformée qui n'est pas commune aux R+1 ensembles de transformées associés respectivement aux R+1 modes de prédiction prédéterminés MP0, MP-i , ... , MPv, ... , M PR, l'index IDX contiendra un premier bit de valeur 0, suivi d'un mot de code supplémentaire représentatif de la transformée Ts>k ou Ts>k* qui a été sélectionnée dans le nombre NBS de transformées contenu dans l'ensemble de transformées associé au mode de prédiction MPS sélectionné. Le premier bit de valeur 0 est par exemple codé à l'aide d'un codeur CABAC. Le mot de code supplémentaire peut être codé sur une longueur fixe si le nombre de transformées NBS est une puissance de 2. Le mot de code supplémentaire peut être également codé sur un code à longueur variable si le nombre de transformées NBS est une puissance de 2 ou pas.
L'étape C9 est mise en œuvre par un module logiciel MCF de construction de signal de données, tel que représenté sur la figure 2, lequel module est piloté par le processeur PROC_C.
Le signal de données F est ensuite délivré via la sortie SOR_C du codeur CO de la figure 2, puis transmis par un réseau de communication (non représenté) à un terminal distant. Celui-ci comporte le décodeur DO représenté à la figure 10.
De façon connue en soi, le signal de données F comprend en outre certaines informations encodées par le codeur CO, telles que le type de prédiction (Inter ou Intra) appliqué à l'étape C3, et le cas échéant, le mode de prédiction sélectionné, l'index du bloc prédicteur obtenu BPopt obtenu à l'issue de l'étape C3, noté IBPopt, le type de partitionnement du bloc courant B, si ce dernier a été partitionné, l'indice d'image de référence et le vecteur de mouvement utilisés dans le mode de prédiction Inter. Il est ensuite procédé au décodage du bloc résidu Br,. Un bloc résidu décodé BDn est alors obtenu. Il est alors procédé à la construction du bloc décodé BDi en ajoutant au bloc prédicteur optimal BPopt le bloc résidu décodé BDn.
II est à noter que le bloc décodé BD, est le même que le bloc décodé obtenu à l'issue du procédé de décodage de l'image ICj qui sera décrit plus loin dans la description. Le bloc décodé BD, est ainsi rendu disponible pour être utilisé par le codeur CO de la figure 2.
Les étapes de codage C1 à C9 qui viennent d'être décrites ci-dessus sont ensuite mises en œuvre pour chacun des blocs B-i , B2, B,, ..., Bs à coder de l'image courante ICj considérée, dans un ordre prédéterminé qui est par exemple l'ordre lexicographique.
On va maintenant décrire, en référence aux figures 3 à 8, selon un premier mode de réalisation de l'invention, un procédé de détermination du nombre de transformées pour chaque mode de prédiction prédéterminé, dans le cas d'un codage HEVC de type Intra.
Préalablement à la mise en œuvre des étapes du procédé de codage de la figure 1 , il est procédé aux étapes suivantes :
Au cours d'une étape ST1 représentée sur la figure 3, il est déterminé un nombre maximal nmax de transformées susceptible d'être associé à un mode de prédiction intra donné.
Dans le mode de réalisation représenté, nmax=16, ce nombre pouvant inclure ou non au moins une transformée HEVC commune à chacun des 35 modes de prédiction intra ipm du standard HEVC.
Au cours d'une étape ST2 représentée sur la figure 3, il est procédé à une initialisation à zéro du nombre de transformées pour chacun des trente-cinq modes de prédiction intra ipm du standard HEVC. Chaque mode de prédiction n'a à cette étape qu'une seule transformée commune du type de celle de HEVC (DCT ou DST) et zéro transformée additionnelle. Une telle étape est résumée dans le tableau TB1 de la figure 4, dont la première colonne liste les 35 modes de prédiction intra ipm0 à ipm34 et la première ligne liste les quinze premières itérations (iter) au cours de chacune desquelles est ajoutée une transformée. A la suite de la première colonne du tableau TB1 sont listés également, pour chacune des quinze premières itérations (iter) :
- le mode de prédiction (ipm) sélectionné selon le meilleur compromis - ressources mémoire/performances de codage -, suite à l'ajout d'une transformée donnée,
- le nombre global (Nb) de transformées ajoutées depuis la première itération (iter),
- la capacité de stockage (ROM) utilisée au codeur pour stocker la globalité des transformées ajoutées,
- les performances de codage (BDRate) obtenues, c'est-à-dire le pourcentage de réduction de débit obtenu relativement à un codeur HEVC.
Dans le tableau TB1 , l'initialisation à zéro est représentée avec iter=0. Au cours d'une étape ST3 représentée sur la figure 3, il est procédé à une première itération iter=1 , au cours de laquelle on ajoute une première transformée.
Au cours d'une étape ST4 représentée sur la figure 3, il est procédé, pour chacun des trente-cinq modes de prédiction intra, au calcul des performances de codage et de la capacité de stockage à utiliser en relation avec la transformée ajoutée.
Pour un mode de prédiction intra donné ipmx, avec 0<x<34, et une itération donnée it, avec it>0, les performances de codage obtenues, c'est-à- dire le gain en débit, sont notées Rit,x et la capacité de stockage correspondante pour stocker la transformée ajoutée est notée MjtjX.
Au cours d'une étape ST5 représentée sur la figure 3, il est procédé, pour chacun des trente-cinq modes de prédiction intra, au calcul du rapport a_x entre l'écart de débit obtenu et l'écart de mémoire ajouté, tel que :
a_x=(Rit,x-Ro)/(Mit,x-M0) avec R0 et M0 présentant respectivement le débit économisé et la mémoire ajoutée par rapport au standard HEVC, c'est- à-dire à l'itération it=0. (R0=0, M0=0).
Au cours d'une étape ST6 représentée sur la figure 3, il est procédé à la sélection du mode de prédiction intra ipmx pour lequel le rapport a_x présente la valeur la plus favorable, c'est-à-dire la diminution de débit la plus importante pour des ressources mémoire ajoutées les plus faibles possible. Comme représenté dans la troisième colonne du tableau TB1 de la figure 4, pour la première itération it=1 , c'est la valeur du rapport a_0 qui est la plus favorable et qui correspond au mode de prédiction intra 0. L'indice de ce mode est indiqué en bas de la troisième colonne du tableau en association avec :
- le débit Ri économisé par rapport au standard HEVC, soit
- la mémoire M ajoutée par rapport au standard HEVC, soit M =
0,1 ko.
Au cours d'une étape ST7 représentée sur la figure 3, il est procédé à une mise à jour du codeur CO de la figure 2 avec la transformée ajoutée lors de cette première itération.
Les étapes ST3 à ST7 sont ensuite à nouveau appliquées pour chaque itération.
Comme illustré sur la figure 4, le tableau TB1 présente comment, sur les quinze premières itérations effectuées, le gain en débit (BDRate) est amélioré en fonction des itérations, à mesure que les ressources mémoire (ROM) augmentent.
Ainsi par exemple, à l'itération iter=15, comme représenté dans la dernière colonne du tableau TB1 , c'est la valeur du rapport a_28 qui est la plus favorable et qui correspond au mode de prédiction intra 28. L'indice de ce mode est indiqué en bas de la dernière colonne du tableau en association avec :
- le débit R15 économisé par rapport au standard HEVC, soit
- la mémoire M 5 ajoutée par rapport au standard HEVC, soit M 5= 2ko.
Par ailleurs, à l'itération iter=15, est représenté le nombre de transformées qui ont été ajoutées par mode de prédiction. Ainsi :
- pour le mode de prédiction intra 0, quatre transformées ont été ajoutées,
- pour les modes de prédiction intra 10 et 16, deux transformées ont été respectivement ajoutées,
- pour les modes de prédiction intra 1 , 8, 9, 1 1 , 14, 25, 27 et 28, une transformée a été respectivement ajoutée. Pour l'itération iter=15, un total de seize transformées a donc été ajouté. En référence maintenant à la figure 5, est présenté :
- directement en liaison avec le tableau TB1 de la figure 4, une courbe CB1 en pointillé, représentative de l'évolution des performances de codage par rapport aux ressources mémoire utilisées, à la suite de la mise en œuvre du procédé itératif de la figure 3,
- une courbe CB2 en trait plein, représentative de l'évolution des performances de codage par rapport aux ressources mémoire utilisées, telle qu'obtenue avec un codeur de l'état de l'art qui utilise un nombre de transformées identique par mode de prédiction.
En comparant les deux courbes CB1 et CB2, on note que les performances de codage, pour une empreinte de mémoire donnée, sont considérablement améliorées lorsque le procédé itératif de détermination du nombre de transformées par mode de prédiction, tel que représenté sur la figure 3, est mis en œuvre. De façon correspondante, le procédé itératif de détermination du nombre de transformées par mode de prédiction, tel que représenté sur la figure 3, permet d'obtenir une réduction significative des ressources mémoire nécessaires au stockage des transformées déterminées, pour des performances de codage visées.
Afin d'apprécier le gain apporté, selon l'invention, en termes de capacité de stockage, pour des performances de codage visées, est présenté le tableau ci-dessous qui dresse un comparatif des capacités de stockage fixes et variables, et de la réduction de capacité de stockage obtenue avec les capacités de stockage variables utilisées selon l'invention.
Gain en Capacité de Capacité Réduction
débit stockage fixe de Capacité de
(BDRate)(%) (ko) stockage stockage (%)
variable
(ko)
0.8 4.4 1 .3 71
1 .3 8.8 4.1 53
1 .7 17.5 8.3 53
2.1 35 14.9 58
2.5 70 30.3 57
2.8 140 60.4 57
Ainsi, pour un gain en débit visé de 2.8%, la capacité de stockage des codeurs de l'art antérieur qui utilisent un nombre fixe de transformées par mode de prédiction est de 140 ko, alors que la capacité de stockage des codeurs selon l'invention qui utilisent un nombre variable de transformées par mode de prédiction est de 60.4 ko. La réduction des capacités de stockage des codeurs selon l'invention par rapport aux codeurs de l'état de l'art peut ainsi être estimée à 57% pour le gain en débit visé de 2,8%.
Par conséquent, le procédé de codage selon l'invention permet avantageusement d'obtenir des performances de codage élevées, avec un impact limité sur la capacité de stockage des transformées par rapport à celle utilisée dans les procédés de codage de l'art antérieur.
On va maintenant décrire, en référence aux figures 1 à 3, 6A, 6B, 7 à 9, un mode de réalisation de l'invention mis en œuvre dans le cas d'un codage HEVC de type Intra, et dans lequel l'ensemble de transformées associé à un mode de prédiction intra sélectionné au cours de l'étape C3 de la figure 1 est préalablement stocké en association avec au moins un autre mode de prédiction de ladite pluralité de modes de prédiction prédéterminés.
Dans cet exemple, à l'issue de l'étape C3 de la figure 1 , le bloc prédicteur optimal BPopt obtenu est associé à une direction de prédiction Intra optimale qui est par exemple la direction DPI22- Conformément au présent mode de réalisation, la transformée (si unique) ou l'ensemble de transformées associée(s) à la direction de prédiction Intra DPI22 est préalablement associée, au cours de l'étape CO de la figure 1 , à une autre direction de prédiction Intra, à la condition que cette autre direction de prédiction Intra soit symétrique par rapport à la direction de prédiction Intra DPI22- De cette façon, deux fois moins de transformées sont stockées au niveau du codeur CO, et de façon correspondante, au niveau du décodeur qui sera décrit plus loin dans la suite de la description, l'avantage étant une réduction de la mémoire côté codeur et décodeur.
Selon une première variante, deux directions de prédiction Intra présentant des symétries sont associées à la même transformée ou au même ensemble de transformées.
Selon une deuxième variante, deux directions de prédiction Intra angulaires présentant chacune des écarts d'angles identiques par rapport à une direction verticale (ou horizontale) sont associées à la même transformée ou au même ensemble de transformées.
Ainsi, comme représenté à la figure 6A, une direction de prédiction Intra angulaire présentant un angle de 30° par rapport à un axe horizontal AH est associée à une direction de prédiction Intra angulaire présentant symétriquement un angle de -30° par rapport à cet axe horizontal. En référence à la figure 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPI4 et DP 6.
De façon similaire, comme représenté sur la figure 6A, une direction de prédiction Intra angulaire présentant un angle de -60° par rapport à un axe horizontal est associée à une direction de prédiction Intra angulaire présentant symétriquement un angle de -120° par rapport à un axe vertical AV. En référence à la figure 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPI2o et DPI32.
Toujours conformément à l'exemple qui vient juste d'être décrit et selon encore un autre mode de réalisation, la transformée ou la pluralité de transformées associée(s) à la direction de prédiction Intra DPI22 sélectionnée à l'étape C3 est préalablement associée à trois autres directions de prédiction Intra, à la condition que ces autres directions de prédiction Intra soient symétriques par rapport à la direction de prédiction Intra DPI22- De cette façon, quatre fois moins de transformées sont stockées au niveau du codeur CO, et de façon correspondante, au niveau du décodeur qui sera décrit plus loin dans la suite de la description, l'avantage étant une réduction de la mémoire côté codeur et décodeur.
Selon une première variante, quatre directions de prédiction Intra présentant des symétries sont associées à la même transformée ou au même ensemble de transformées.
Selon une deuxième variante, quatre directions de prédiction Intra angulaires présentant chacune des angles identiques par rapport à un axe vertical, horizontal et diagonal sont associées à la même transformée ou au même ensemble de transformées.
Ainsi, comme représenté sur la figure 6A, une direction de prédiction Intra angulaire présentant un angle de 30° par rapport à l'axe horizontal AH est associée :
- à une direction de prédiction Intra angulaire d'un angle de -30° par symétrie par rapport à cet axe horizontal,
- à une direction de prédiction Intra angulaire présentant un angle de -60° par symétrie par rapport à cet axe horizontal puis par rapport à un axe diagonal AD,
- à une direction de prédiction Intra angulaire présentant un angle de -120° par symétrie par rapport à l'axe diagonal AD.
En référence à la figure 7, ces quatre directions de prédiction Intra correspondent respectivement aux directions DPI4, DPI 6, DPI2o et DPI32.
Le tableau ci-dessous représente neuf groupes Gi à G9 de directions de prédiction Intra HEVC auxquels peut être associée, dans la mémoire tampon MT_C du codeur CO de la figure 2, une même transformée (si unique) ou bien un ensemble de transformées, tel que déterminé selon l'invention. Groupe Index directions de
prédiction Intra
G, 2 34 18
G2 3 33 19 17
G3 4 32 20 16
G4 5 31 21 15
G5 6 30 22 14
G6 7 29 23 13
G7 8 28 24 12
G8 9 27 25 1 1
G9 10 26
Les directions angulaires à multiple de 45° (45°, -45° et -135°) telles que représentées sur la figure 6B, correspondant respectivement aux directions de prédiction DPI2, DPI-|8 et DPI34, comme illustré sur la figure 7, sont regroupées par trois et sont associées à une même transformée ou à un même ensemble de transformées.
Conformément à l'obtention des groupes de modes de prédiction précités, en référence à la figure 1 , il peut être nécessaire de procéder, préalablement à l'étape C5 de détermination d'une transformée, à une étape C40 d'au moins un déplacement des données du bloc résidu Br, tel qu'obtenu à l'issue de l'étape C4 de la figure 1 . Au cours de l'étape C40, chaque donnée considérée est déplacée à l'intérieur du bloc résidu tout en conservant ses plus proches voisines.
L'étape C40 est mise en œuvre par un module logiciel de calcul CAL_C tel que représenté sur la figure 2, lequel module est piloté par le processeur PROC_C.
Selon un premier mode de réalisation, un type de déplacement de données est une transposition, à savoir un échange des coordonnées lignes et colonnes d'une donnée du bloc résidu courant.
Selon un deuxième mode de réalisation, un type de déplacement de données est un miroir, à savoir un échange des colonnes ou lignes du bloc résidu courant. Chaque donnée considérée dans le bloc résidu courant Br, est ainsi déplacée à l'intérieur du bloc résidu tout en conservant ses plus proches voisines.
Selon un troisième mode de réalisation, un type de déplacement de données est une combinaison de la transposition et du miroir, c'est-à-dire : - soit l'application d'un déplacement de type transposition suivie de l'application d'un déplacement de type miroir aux données du bloc résidu courant,
- soit l'application d'un déplacement de type miroir suivie de l'application d'un déplacement de type transposition aux données du bloc résidu courant.
En outre, selon un autre mode de réalisation de l'invention, le type de déplacement de données dans le bloc résidu Βη est fonction du mode de prédiction MPS sélectionné.
En référence à la figure 8, il existe huit types de déplacement possibles différents numérotés de 0 à 7 qui permettent à un pixel donné du bloc résidu Βη de conserver ses pixels voisins. Par exemple, pour le pixel p7, ce dernier est toujours entouré des pixels p2, p3, p4, p6, p8, p10, p1 1 et p12. De façon particulière, la rotation miroir de type 0 qui est appliquée au bloc résidu Bn, permet d'obtenir un bloc résidu modifié Βιτιη qui, dans le cas présent, est le même que le bloc résidu Βη.
En outre, conformément à l'invention, une direction de prédiction Intra est associée à l'un des huit types de déplacement, selon son mode de regroupement. Par exemple :
- les directions de prédiction intra DPI22 et DPI6 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir de type 0 et de type 5 telles que représentées sur la figure 8,
- les directions de prédiction intra DPI4 et DPI 6 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir de type 0 et de type 2 telles que représentées sur la figure 8,
- les directions de prédiction intra DPI2o et DPI32 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir de type 0 et de type 1 telles que représentées sur la figure 8,
- les directions de prédiction intra DPI4, DPI 6, DPI2o et DPI32 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir de type 6, de type 4, de type 0 et de type 1 , telles que représentées sur la figure 8.
En référence maintenant à la figure 9, est illustré le tableau TB2 qui présente comment, sur les quinze premières itérations effectuées, le gain en débit (BDRate) est amélioré en fonction des itérations, à mesure que les ressources mémoire (ROM) augmentent, lorsqu'au moins deux modes de prédiction sont associés à un même ensemble de transformées.
Ainsi par exemple, à l'itération iter=1 5, comme représenté dans la dernière colonne du tableau TB2, c'est la valeur du rapport a_28 qui est la plus favorable et qui correspond au mode de prédiction intra 28. Ce mode est indiqué en bas de la troisième colonne du tableau en association avec :
- le débit R-|5 économisé par rapport à un procédé de codage de l'art antérieur, soit .21 %,
- la mémoire M-|5 ajoutée par rapport à un procédé de codage de l'art antérieur, soit M 5= 2.1 ko.
Par ailleurs, à l'itération iter=1 5, est représenté le nombre de transformées qui ont été ajoutées par mode de prédiction ou par groupes de modes de prédiction. Ainsi :
- pour le mode de prédiction intra 1 et les groupes précités G3 et G5 de directions de prédiction intra, une seule transformée a été respectivement ajoutée,
- pour les groupes précités G6, G7 et G9 de directions de prédiction intra, deux transformées ont été respectivement ajoutées,
- pour le mode de prédiction intra 0 et le groupe précité G8 de directions de prédiction intra, quatre transformées ont été respectivement ajoutées.
Pour l'itération iter=15, un total de dix-sept transformées a donc été ajouté.
Le tableau TB2 permet de constater une réduction significative des ressources mémoire dédiées au stockage des transformées de l'ordre de 20% par rapport au procédé de codage qui n'utilise pas un tel regroupement des modes de prédiction. Afin d'apprécier le gain apporté avec un tel regroupement de modes de prédiction selon l'invention, le gain étant évalué en termes de capacité de stockage pour des performances de codage visées, est présenté le tableau ci- dessous qui dresse un comparatif des capacités de stockage fixes présentes dans un codeur de l'art antérieur utilisant un même nombre de transformées par mode de prédiction et des capacités de stockage variables présentes dans le codeur selon l'invention, et de la réduction de capacité de stockage obtenue avec les capacités de stockage variables.
Ainsi, pour un gain en débit visé de 1 .7%, la capacité de stockage des codeurs qui utilisent un nombre fixe de transformées par mode de prédiction est de 17.5 ko, alors que la capacité de stockage des codeurs selon l'invention qui utilisent un nombre variable de transformées par mode de prédiction ou par ensemble de modes de prédiction est de seulement 5.3 ko. La réduction des capacités de stockage des codeurs selon l'invention par rapport aux codeurs de l'état de l'art peut ainsi être estimée à 70% pour le gain en débit visé de 1 ,7%.
Selon un autre mode de réalisation de l'invention, le procédé de détermination itératif du nombre de transformées par mode de prédiction ou par groupe de modes de prédiction peut être remplacé par un procédé de détermination automatique dudit nombre de transformées.
Le procédé de détermination automatique peut s'avérer nécessaire lorsque, dans certains contextes de codage, le codeur CO de la figure 2 est contraint de fonctionner à un point de complexité donné. Il est alors nécessaire, au cours du codage, de réduire le nombre de transformées en compétition pour limiter les investigations de choix par le codeur de la transformée optimale, au cours de l'étape C5 de la figure 1 .
Selon un premier exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction verticale ou horizontale est rendu supérieur au nombre de transformées qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction oblique.
Dans le cas par exemple du standard HEVC, l'Homme du Métier sait que parmi les trente-cinq modes de prédiction intra disponibles, les modes 0 (Planar) et 1 (DC) sont les modes les plus lissés car la prédiction selon ces deux modes est calculée en moyennant plus de deux pixels d'un bord du bloc courant. Par conséquent, les modes Planar et DC sont associés, au cours de l'étape C0 de la figure 1 , à un nombre de transformées supérieur à celui des autres modes de prédiction intra HEVC.
De plus, de façon connue en soi, les modes 10 (Horizontal) et 26 (Vertical) sont utilisés pour prédire des motifs de l'image qui sont horizontaux ou verticaux. De tels motifs se trouvant fréquemment dans la nature (ex : arbres verticaux, poteaux, ligne d'horizon, etc ...), ils doivent être associés à un nombre de transformées plus élevé que le nombre de transformées associé aux modes de prédiction intra obliques.
Selon un deuxième exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d'un mode de prédiction qui a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés MP0, MP-i , . . . , MPv, ... , M PR, en tant que mode de prédiction le plus probable, est supérieur au nombre de transformées qui est déterminé dans le cas d'un mode de prédiction qui n'a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
Dans le cas par exemple du standard HEVC, une liste de modes de prédiction les plus probables, appelés MPM (de l'anglais « Most Probable Modes »), est établie préalablement au codage. En particulier, les modes 0 (Planar), 1 (DC) et 26 (vertical) sont les modes de prédiction assignés par défaut lors de l'établissement de la liste. Selon l'invention, ces trois modes de prédiction intra sont donc préalablement associés, au cours de l'étape de stockage C0 de la figure 1 , à un nombre de transformées plus élevé que le nombre de transformées associé aux autres modes de prédiction intra HEVC.
Selon un troisième exemple de réalisation, le nombre de transformées contenu dans l'ensemble de transformées stocké en association avec chacun des modes de prédiction prédéterminés MP0, MP-i , . . . , MPV,... , MPR est déterminé en fonction de la quantité d'informations représentatives de chacun de ces modes de prédiction.
Dans le cas par exemple du standard HEVC, les modes de prédiction intra les plus probables tels que 0 (Planar), 1 (DC) et 26 (vertical) seront signalés sur moins de bits que les autres modes. Selon l'invention, il est donc opportun de leur associer un nombre de transformées plus élevé que celui des autres modes de prédiction intra, car ces trois modes seront choisis plus fréquemment que les autres et par conséquent, il y aura une variété plus importante de blocs prédicteurs à tester avec ces trois modes.
Ainsi, selon l'invention, si la signalisation d'un mode de prédiction est portée sur moins de bits, alors le nombre de transformées, qui est stocké en association avec ce mode de prédiction au cours de l'étape C0 de la figure 1 , est plus important que la moyenne des transformées sur l'ensemble des trente- cinq modes de prédiction intra.
Description détaillée de la partie décodage
Un mode de réalisation de l'invention va maintenant être décrit, dans lequel le procédé de décodage selon l'invention est utilisé pour décoder un signal ou flux de données représentatif d'une image ou d'une séquence d'images qui est apte à être décodé par un décodeur conforme à l'une quelconque des normes de décodage vidéo actuelles ou à venir.
Dans ce mode de réalisation, le procédé de décodage selon l'invention est par exemple implémenté de manière logicielle ou matérielle par modifications d'un tel décodeur.
Le procédé de décodage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes D0 à D9 telles que représentées à la figure 1 1 . Selon ce mode de réalisation, le procédé de décodage selon l'invention est implémenté dans un dispositif de décodage ou décodeur DO représenté à la figure 10.
Comme illustré en figure 1 0, un tel dispositif décodeur comprend :
- une entrée ENT_D pour recevoir le signal de données ou flux courant F à décoder,
- un circuit de traitement CT_D pour mettre en œuvre le procédé de décodage selon l'invention, le circuit de traitement CT_D contenant :
• une mémoire MEM_D comprenant une mémoire tampon MT_D,
• un processeur PROC_D piloté par un programme d'ordinateur PG_D,
- une sortie SOR_D pour délivrer une image courante reconstruite contenant les données obtenues à l'issue du décodage selon le procédé de l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur PG_D sont par exemple chargées dans une mémoire RAM, MR_D, avant d'être exécutées par le circuit de traitement CT_D.
Le procédé de décodage représenté sur la figure 1 1 s'applique à un signal ou flux de données F représentatif d'une image courante ICj à décoder qui est fixe ou qui appartient à une séquence d'images à décoder.
A cet effet, des informations représentatives de l'image courante ICj à décoder sont identifiées dans le signal de données F reçu à l'entrée ENT_D du décodeur DO et tel que délivré à l'issue du procédé de codage de la figure 1 .
En référence à la figure 1 1 , au cours d'une étape D1 , il est procédé à la détermination dans le signal F des blocs résidus codés associés à chacun des blocs B-i , B2, Bi, ... , Bs codés précédemment conformément à l'ordre lexicographique précité.
Une telle étape de détermination D1 est mise en œuvre par un module logiciel d'identification MI_D d'analyse de flux, tel que représenté à la figure 10, lequel module est piloté par le processeur PROC_D.
D'autres types de parcours que celui mentionné ci-dessus sont bien sûr possibles et dépendent de l'ordre de parcours choisi au codage. Dans l'exemple représenté, les blocs B-i , B2, B,,..., Bs à décoder ont par exemple une forme carrée et sont par exemple de taille MxM pixels où M est un entier naturel supérieur ou égal à 1 .
Chaque bloc à décoder peut par ailleurs être lui-même divisé en sous blocs qui sont eux-mêmes subdivisibles.
Au cours d'une étape D2 représentée à la figure 1 1 , le décodeur DO de la figure 10 sélectionne, comme bloc courant B, à décoder, le premier bloc qui a été codé à l'issue du procédé de codage de la figure 1 .
Au cours d'une étape D3 représentée à la figure 1 1 , il est procédé à une détermination, par exemple par décodage, des données résiduelles d-i , d2, ...,dw, ..., dv associées au bloc courant B, à décoder, lesquelles ont été codées au cours de l'étape C8 de la figure 1 . A l'issue d'une telle détermination sont obtenues :
- soit un ensemble d'informations numériques associées au bloc quantifié Bq, obtenu à l'issue de l'étape C7,
- soit un ensemble d'informations numériques associées au bloc modifié quantifié Bmq, obtenu à l'issue de l'étape C7, dans le cas où l'étape C40 de déplacement des données du bloc résidu Br, a été mise en œuvre au codage.
Egalement au cours de l'étape D3, sont déterminées des informations relatives au type de prédiction du bloc courant B, tel que mis en œuvre au codage au cours de l'étape C3 de la figure 1 , et qui ont été inscrites dans le signal de données F.
A cet effet, au cours de l'étape D3, sont déterminés :
- le mode de prédiction MPS sélectionné à l'étape C3 de la figure
1 ,
- l'index du bloc prédicteur BPopt, noté IBPopt, et le type de partitionnement du bloc courant B, si ce dernier a été partitionné.
Une telle étape D3 de décodage est mise en œuvre par un module de décodage MD_D représenté sur la figure 10, lequel module est piloté par le processeur PROC_D.
Au cours d'une étape D4 représentée à la figure 1 1 , il est procédé au décodage prédictif du bloc courant à décoder à l'aide de l'index IBPopt du bloc prédicteur qui a été décodé au cours de l'étape D3 précitée. A cet effet, de façon connue en soi, il est procédé, en association avec l'index IBPopt, à la sélection, dans la mémoire tampon MT_D du décodeur DO de la figure 10, du bloc prédicteur BPopt correspondant, lequel figure parmi une pluralité de blocs prédicteurs candidats préalablement stockés dans la mémoire tampon MT_D. Chacun des blocs prédicteurs candidats est un bloc de pixels qui a déjà été décodé.
L'étape D4 est mise en œuvre par un module logiciel PRED"1_D de prédiction inverse, tel que représenté sur la figure 10, lequel est piloté par le processeur PROC_D.
Au cours d'une étape D5 représentée à la figure 1 1 , qui est mise en œuvre dans le cas où c'est l'ensemble de données associé au bloc Bq, ou Bmq, codé qui a été obtenu à l'issue de l'étape D3 précitée, il est procédé à une déquantification de cet ensemble de données, selon une opération classique de déquantification qui est l'opération inverse de la quantification mise en œuvre lors de l'étape de quantification C7 de la figure 1 . Un ensemble de coefficients déquantifiés courant BDq, ou un ensemble de coefficients modifiés déquantifiés courant BDmq, est alors obtenu à l'issue de l'étape D5. Une telle étape de déquantification est par exemple de type scalaire ou vectorielle.
L'étape D5 est effectuée au moyen d'un module logiciel MQ"1_D de quantification inverse, tel que représenté à la figure 10, lequel module est piloté par le processeur PROC_D.
Au cours d'une étape D6 représentée à la figure 1 1 , le décodeur DO de la figure 10 procède à la détermination d'une transformée de l'ensemble de coefficients déquantifiés courant BDq, ou de l'ensemble de coefficients modifiés déquantifiés courant BDmq,, tel qu'obtenu à l'étape D5 précitée. De façon connue en soi, une telle transformée est une transformée inverse de celle déterminée au codage à l'issue de l'étape C5 de la figure 1 , telle que par exemple :
- une transformée directe telle que par exemple une transformée en cosinus discrète de type DCT,
- une transformée directe telle que par exemple une transformée en sinus discrète de type DST, -une transformée bloc optimisée en débit distorsion comme présenté dans la publication « Rate-distortion optimisée! transform compétition for intra coding in HEVC », Adrià Arrufat, Pierrick Philippe, Olivier Déforges, IEEE VCIP, Dec 2014,
- une transformée en ondelettes du type DWT,
- une transformée incluant un recouvrement du type Lapped Transforms telle que présentée dans la publication « Réduction of blocking effects in image coding with a lapped orthogonal transform », H. Malvar,
- ou tout autre type de transformées exploitables.
Ladite transformée appartient à un ensemble de transformées qui, au cours d'une étape préalable de stockage D0 représentée à la figure 1 1 , est stocké en association avec le mode de prédiction MPS, dans la mémoire tampon MT_D de la figure 10. Au cours de cette étape de stockage :
- le mode de prédiction prédéterminé MP0 est stocké en association avec un ensemble de transformées contenant un nombre NB0 de transformées,
- le mode de prédiction prédéterminé MPi est stocké en association avec un ensemble de transformées contenant un nombre NB de transformées,
- le mode de prédiction prédéterminé MPV est stocké en association avec un ensemble de transformées contenant un nombre NBV de transformées, - le mode de prédiction prédéterminé MPR est stocké en association avec un ensemble de transformées contenant un nombre NBR de transformées.
Conformément à l'invention, pour au moins deux modes de prédiction différents MPa, MPb appartenant à la pluralité de modes de prédiction prédéterminés MP0, MPi, ..., MPV, ..., MPR, avec 0<a≤R+1 et 0<b≤R+1 , le nombre de transformées, noté NBa, qui est contenu dans l'ensemble de transformées associé au mode de prédiction MPa est différent du nombre de transformées, noté NBb, qui est contenu dans un ensemble de transformées stocké en association avec le mode de prédiction MPb.
Selon un premier exemple de réalisation, pour au moins deux ensembles de transformées stockés respectivement en association avec deux modes de prédiction de ladite pluralité MP0, MP-i , . . . , MPV, ..., MPR de modes de prédiction prédéterminés, le nombre de transformées dans chacun desdits deux ensembles contient en commun au moins une transformée identique.
Par exemple, dans le cas d'un décodage selon le standard HEVC, le nombre de transformées dans chacun desdits deux ensembles peut par exemple contenir en commun :
- une transformée inverse d'une transformée de type DST, ou bien une transformée inverse d'une transformée de type DCT,
- une transformée inverse d'une transformée de type DST et une transformée inverse d'une transformée de type DCT,
- plus de deux transformées en commun.
Par ailleurs, plus de deux ensembles de transformées peuvent contenir en commun au moins une opération de transformée identique. Toujours dans le cas d'un décodage selon le standard HEVC, et plus particulièrement dans le cas d'une prédiction Intra inverse conforme à ce standard qui propose trente- cinq directions de prédiction possibles DPI0, DPI-i , . . . , DPI34, les ensembles de transformées associés respectivement à chacune de ces trente-cinq directions de prédiction peuvent contenir en commun au moins une opération de transformée identique.
Selon un deuxième exemple de réalisation représenté sur la figure 10, l'ensemble de transformées, associé audit mode de prédiction MPS déterminé à l'étape D3 précitée et contenant un nombre NBS de transformées, est stocké dans la mémoire tampon MT_D de la figure 10, en association avec au moins un autre mode de prédiction, noté MPU, de ladite pluralité de modes de prédiction prédéterminés MP0, MP^ ..., MPV,..., MPR, avec 0≤u≤R+1 .
Plus particulièrement, l'étape de détermination précitée D6 consiste à lire dans le signal de données F l'index IDX de la transformée Ts>k (NBS=1 ) ou Ts>k* (NBS>1 ) qui a été sélectionnée au codage à l'issue de l'étape C5 précitée (figure 1 ), lequel index a été inscrit dans le signal de données F au cours de l'étape C8 précitée (figure 1 ).
Au cours d'une étape D7 représentée à la figure 1 1 , il est procédé à l'application de la transformée inverse de la transformée Ts>k ou Ts>k* à l'ensemble de coefficients déquantifiés courant BDq, ou à l'ensemble de coefficients modifiés déquantifiés courant BDmq,, tel qu'obtenu à l'étape D5 précitée. A l'issue de l'étape D7, est obtenu soit un bloc résidu décodé courant BDr,, soit un bloc résidu modifié décodé courant BDmr,.
Une telle opération est effectuée par un module logiciel MTR"1_D de transformée inverse, tel que représenté à la figure 10, lequel module est piloté par le processeur PROC_D.
Sur la figure 1 1 , l'étape de déquantification D5 est représentée avant l'étape D7 d'application de transformée inverse. Toutefois, l'étape D5 peut être intégrée à l'étape D7 qui est alors mise en œuvre avec des nombres entiers incluant le facteur de déquantification.
Au cours d'une étape D8 représentée à la figure 1 1 , il est procédé à la reconstruction du bloc courant B, en ajoutant au bloc résidu décodé BDn, obtenu à l'issue de l'étape D7 précitée, le bloc prédicteur BPopt qui a été obtenu à l'issue de l'étape D4 précitée. A l'issue de l'étape D8, un bloc décodé courant BD, est obtenu.
L'étape D8 est mise en œuvre par un module logiciel CAL1_D représenté sur la figure 10, lequel module est piloté par le processeur PROC_D.
Au cours d'une étape D9 représentée à la figure 1 1 , ledit bloc décodé courant BD, est écrit dans une image décodée IDj.
Une telle étape est mise en œuvre par un module logiciel URI de reconstruction d'image tel que représenté sur la figure 10, ledit module étant piloté par le processeur PROC_D.
Les étapes de décodage qui viennent d'être décrites ci-dessus sont mises en œuvre pour tous les blocs B-i , B2, B,, ..., Bs à décoder de l'image courante ICj considérée, dans un ordre prédéterminé qui est par exemple l'ordre lexicographique. De la même manière qu'au codage, en référence aux figures 3 à 8, le procédé de décodage met en œuvre, selon un premier mode de réalisation de l'invention, un procédé de détermination du nombre de transformées pour chaque mode de prédiction prédéterminé, dans le cas d'un décodage HEVC de type Intra.
On va maintenant décrire, en référence aux figures 3, 6A, 6B, 7 à 1 1 , un mode de réalisation de l'invention mis en œuvre dans le cas d'un décodage HEVC de type Intra, et dans lequel l'ensemble de transformées associé à un mode de prédiction intra déterminé au cours de l'étape D3 de la figure 1 1 est préalablement stocké en association avec au moins un autre mode de prédiction de ladite pluralité de modes de prédiction prédéterminés.
Dans cet exemple, à l'issue de l'étape D3 de la figure 1 1 , le bloc prédicteur optimal BPopt obtenu est associé à une direction de prédiction Intra optimale qui est par exemple la direction DPI22- Conformément au présent mode de réalisation, la transformée (si unique) ou l'ensemble de transformées associée(s) à la direction de prédiction Intra DPI22 est préalablement associée, au cours de l'étape DO de la figure 1 1 , à une autre direction de prédiction Intra, à la condition que cette autre direction de prédiction Intra soit symétrique par rapport à la direction de prédiction Intra DPI22- De cette façon, deux fois moins de transformées sont stockées au niveau du décodeur DO, l'avantage étant une réduction de la mémoire côté décodeur.
Selon une première variante, deux directions de prédiction Intra présentant des symétries sont associées à la même transformée ou au même ensemble de transformées.
Selon une deuxième variante, deux directions de prédiction Intra angulaires présentant chacune des angles identiques par rapport à une direction verticale (ou horizontale) sont associées à la même transformée ou au même ensemble de transformées.
Ainsi, comme représenté à la figure 6A, une direction de prédiction Intra angulaire présentant un angle de 30° par rapport à un axe horizontal AH est associée à une direction de prédiction Intra angulaire présentant symétriquement un angle de -30° par rapport à cet axe horizontal. En référence à la figure 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPI4 et DP 6.
De façon similaire, comme représenté sur la figure 6A, une direction de prédiction Intra angulaire présentant un angle de -60° par rapport à un axe horizontal est associée à une direction de prédiction Intra angulaire présentant symétriquement un angle de -120° par rapport à un axe vertical AV. En référence à la figure 7, ces deux directions de prédiction Intra correspondent respectivement aux directions DPI2o et DPI32.
Toujours conformément à l'exemple qui vient juste d'être décrit et selon encore un autre mode de réalisation, la transformée ou la pluralité de transformées associée(s) à la direction de prédiction Intra DPI22 déterminée à l'étape D3 est préalablement associée à trois autres directions de prédiction
Intra, à la condition que ces autres directions de prédiction Intra soient symétriques par rapport à la direction de prédiction Intra DPI22- De cette façon, quatre fois moins de transformées sont stockées au niveau du décodeur DO, l'avantage étant une réduction de la mémoire côté décodeur.
Selon une première variante, quatre directions de prédiction Intra présentant des symétries sont associées à la même transformée ou au même ensemble de transformées.
Selon une deuxième variante, quatre directions de prédiction Intra angulaires présentant chacune des angles identiques par rapport à un axe vertical, horizontal et diagonal sont associées à la même transformée ou au même ensemble de transformées.
Ainsi, comme représenté sur la figure 6A, une direction de prédiction Intra angulaire présentant un angle de 30° par rapport à l'axe horizontal AH est associée :
- à une direction de prédiction Intra angulaire d'un angle de -30° par symétrie par rapport à cet axe horizontal,
- à une direction de prédiction Intra angulaire présentant un angle de -60° par symétrie par rapport à cet axe horizontal puis par rapport à un axe diagonal AD,
- à une direction de prédiction Intra angulaire présentant un angle de -120° par symétrie par rapport à l'axe diagonal AD. En référence à la figure 7, ces quatre directions de prédiction Intra correspondent respectivement aux directions DPI4, DPI-|6, DPI2o et DPI32-
Le tableau ci-dessous représente neuf groupes Gi à G9 de directions de prédiction Intra HEVC auxquels peut être associée une même transformée (si unique) ou bien un ensemble de transformées, tel que déterminé selon l'invention.
Les directions angulaires à multiple de 45° (45°, -45° et -135°) telles que représentées sur la figure 6B, correspondant respectivement aux directions de prédiction DPI2, DPI 8 et DPI34, comme illustré sur la figure 7, sont regroupées par trois et sont associées, dans la mémoire tampon MT_D du décodeur DO de la figure 10, à une même transformée ou à un même ensemble de transformées.
Conformément à l'obtention des groupes de modes de prédiction précités, en référence à la figure 1 1 , dans le cas où c'est le bloc résidu modifié décodé courant BDmn qui a été obtenu à l'issue de l'étape D7, il est procédé, à la suite cette étape, à une étape D70 d'au moins un déplacement des données du bloc résidu modifié décodé courant BDmn, chaque donnée considérée étant déplacée à l'intérieur de ce bloc tout en conservant ses plus proches voisines.
L'étape D70 est mise en œuvre par un module logiciel de calcul CAL2_D tel que représenté sur la figure 10, lequel module est piloté par le processeur PROC_D.
Selon un premier mode de réalisation, un type de déplacement de données est une transposition, inverse de celle effectuée au codage, à savoir un échange des coordonnées lignes et colonnes d'une donnée du bloc résidu modifié décodé courant BDmn.
Selon un deuxième mode de réalisation, un type de déplacement de données est un miroir, inverse de celui effectué au codage, à savoir un échange des colonnes ou lignes du bloc résidu modifié décodé courant BDmn. Chaque donnée considérée dans le bloc résidu modifié décodé courant BDmn est ainsi déplacée à l'intérieur de ce dernier, tout en conservant ses plus proches voisines.
Selon un troisième mode de réalisation, un type de déplacement de données est une combinaison de la transposition inverse et du miroir inverse, c'est-à-dire :
- soit l'application d'un déplacement de type transposition inverse suivie de l'application d'un déplacement de type miroir inverse aux données du bloc résidu modifié décodé courant BDmn,
- soit l'application d'un déplacement de type miroir inverse suivie de l'application d'un déplacement de type transposition inverse aux données du bloc résidu modifié décodé courant BDmn.
En outre, selon un autre mode de réalisation de l'invention, le type de déplacement de données dans le bloc résidu modifié décodé courant BDmn est fonction du mode de prédiction MPS déterminé à l'étape D3 précitée.
De façon correspondante aux différents types de déplacement mis en œuvre au codage, tels que représentés à la figure 8, il existe également au décodage huit types de déplacement possibles différents numérotés de 0 à 7 qui permettent à un pixel donné du bloc résidu modifié décodé courant BDmn de conserver ses pixels voisins. Par exemple, pour le pixel p7, ce dernier est toujours entouré des pixels p2, p3, p4, p6, p8, p10, p1 1 et p12. De façon particulière, la rotation miroir inverse de la rotation miroir de type 0 n'entraîne pas un déplacement des données puisque les données du bloc résidu modifié décodé courant BDmn sont disposées dans le même ordre que les données du bloc résidu courant Βη.
En outre, conformément à l'invention, une direction de prédiction Intra déterminée à l'issue de l'étape D3 de la figure 1 1 est associée à l'un des huit types de déplacement inverse, selon le groupe auquel elle appartient. Par exemple : - les directions de prédiction intra DPI22 et DPI6 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir inverses respectivement des rotations miroir de type 0 et de type 5 telles que représentées sur la figure 8,
- les directions de prédiction intra DPI4 et DP 6 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir inverses respectivement des rotations miroir de type 0 et de type 2 telles que représentées sur la figure 8,
- les directions de prédiction intra DPI2o et DPI32 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir inverses respectivement des rotations miroir de type 0 et de type 1 telles que représentées sur la figure 8,
- les directions de prédiction intra DPI4, DPI-|6, DPI2o et DPI32 associées à la même transformée ou au même ensemble de transformées sont elles-mêmes associées respectivement aux rotations miroir inverses respectivement des rotations miroir de type 6, de type 4, de type 0 et de type 1 , telles que représentées sur la figure 8.
Selon un autre mode de réalisation de l'invention, de la même manière qu'au codage, le procédé de détermination itératif du nombre de transformées par mode de prédiction ou par groupe de modes de prédiction peut être remplacé par un procédé de détermination automatique dudit nombre de transformées.
Le procédé de détermination automatique peut s'avérer nécessaire lorsque, dans certains contextes de décodage, le décodeur DO de la figure 10 est contraint de fonctionner à un point de complexité donné. Ce point de complexité donné peut être signalé par l'encodeur CO de la figure 2, par une information de configuration donnée pour une partie d'image, une image entière ou pour une séquence d'images. Il peut comprendre un identifiant du nombre de transformées maximal ou bien un rapport du nombre de transformées par rapport au nombre de transformées disponible au décodeur. Ainsi, au cours de l'étape D6 de la figure 1 1 , le décodeur DO recherche dans la mémoire tampon MT_D de la figure 10, uniquement dans le nombre de transformées associé à ladite information de configuration signalée, la transformée sélectionnée au codage et correspondant à l'indice IDX déterminé à l'étape D3.
Selon un premier exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction verticale ou horizontale est rendu supérieur au nombre de transformées qui est déterminé dans le cas d'un mode de prédiction associé à une direction de prédiction oblique.
Dans le cas par exemple du standard HEVC, l'Homme du Métier sait que parmi les trente-cinq modes de prédiction intra disponibles, les modes 0 (Planar) et 1 (DC) sont les modes les plus lissés car la prédiction selon ces deux modes est calculée en moyennant plus de pixels des bords du bloc courant. Par conséquent, les modes Planar et DC sont associés, au cours de l'étape DO de la figure 1 1 , à un nombre de transformées supérieur à celui des autres modes de prédiction intra HEVC.
De plus, de façon connue en soi, les modes 10 et 26 sont utilisés pour prédire des motifs de l'image qui sont horizontaux ou verticaux. De tels motifs se trouvant fréquemment dans la nature (ex : arbres verticaux, poteaux, ligne d'horizon, etc ...), ils doivent être associés à un nombre de transformées plus élevé que le nombre de transformées associé aux modes de prédiction intra obliques.
Selon un deuxième exemple de réalisation, le nombre de transformées qui est déterminé dans le cas d'un mode de prédiction qui a été préalablement sélectionné, dans la pluralité de modes de prédiction prédéterminés MP0, MP-i , ... , MPv, ... , M PR, en tant que mode de prédiction le plus probable, est supérieur au nombre de transformées qui est déterminé dans le cas d'un mode de prédiction qui n'a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
Dans le cas par exemple du standard HEVC, une liste de modes de prédiction les plus probables, appelés MPM (de l'anglais « Most Probable Modes »), est établie préalablement au codage. En particulier, les modes 0 (Planar), 1 (DC) et 26 (vertical) sont les modes de prédiction assignés par défaut lors de l'établissement de la liste. Selon l'invention, ces trois modes de prédiction intra sont donc préalablement associés, au cours de l'étape de stockage DO de la figure 1 A, à un nombre de transformées plus élevé que le nombre de transformées associé aux autres modes de prédiction intra HEVC.
Selon un troisième exemple de réalisation, le nombre de transformées contenu dans l'ensemble de transformées stocké en association avec chacun des modes de prédiction prédéterminés MP0, MP-i , . . . , MPV,... , MPR est déterminé en fonction de la quantité d'informations représentatives de chacun de ces modes de prédiction.
Dans le cas par exemple du standard HEVC, les modes de prédiction intra les plus probables tels que 0 (Planar), 1 (DC) et 26 (vertical) seront signalés sur moins de bits que les autres modes. Selon l'invention, il est donc opportun de leur associer un nombre de transformées plus élevé que celui des autres modes de prédiction intra, car ces trois modes seront choisis plus fréquemment que les autres et par conséquent, il y aura une variété plus importante de blocs prédicteurs à tester avec ces trois modes.
Ainsi, selon l'invention, si la signalisation d'un mode de prédiction est portée sur moins de bits, alors le nombre de transformées, qui est stocké en association avec ce mode de prédiction au cours de l'étape DO de la figure 1 1 , est plus important que la moyenne des transformées sur l'ensemble des trente- cinq modes de prédiction intra.
II 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 apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention

Claims

REVENDICATIONS
1 . Procédé de codage d'au moins une image (ICj) découpée en blocs, mettant en œuvre, pour un bloc courant (B,) à coder de ladite image :
- une prédiction (C3) du bloc courant conformément à un mode de prédiction (MPS) sélectionné parmi une pluralité de modes de prédiction prédéterminés,
- un calcul (C4) d'un bloc résidu de données représentatif d'une différence entre un bloc prédicteur (BPopt) obtenu à l'issue de la prédiction et le bloc courant,
- une application (C6) d'une opération de transformée aux données dudit bloc résidu, ladite opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké (C0) en association avec un mode de prédiction sélectionné,
- un codage (C8) des données obtenues à la suite de ladite opération de transformée,
ledit procédé de codage étant caractérisé en ce que lors du stockage (C0) de l'ensemble d'opérations de transformée associé audit mode de prédiction sélectionné, le nombre d'opérations de transformée contenu dans ledit ensemble est différent du nombre d'opérations de transformées contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de ladite pluralité.
2. Procédé de codage selon la revendication 1 , dans lequel pour au moins deux ensembles d'opérations de transformées stockés respectivement en association avec deux modes de prédiction de ladite pluralité de modes de prédiction prédéterminés, le nombre d'opérations de transformée dans chacun desdits deux ensembles contient en commun au moins une opération de transformée identique.
3. Procédé de codage selon la revendication 1 ou la revendication 2, dans lequel l'ensemble d'opérations de transformée associé audit mode de prédiction sélectionné est stocké en association avec au moins un autre mode de prédiction de ladite pluralité de modes de prédiction prédéterminés.
4. Procédé de codage selon l'une quelconque des revendications 1 à 3, dans lequel le nombre d'opérations de transformée contenu dans un ensemble stocké en association avec un mode de prédiction associé à une direction de prédiction verticale ou horizontale est supérieur au nombre d'opérations de transformée contenu dans un ensemble stocké en association avec un mode de prédiction associé à une direction de prédiction oblique.
5. Procédé de codage selon l'une quelconque des revendications 1 à 3, dans lequel le nombre d'opérations de transformée contenu dans un ensemble stocké en association avec un mode de prédiction, pour lequel la prédiction est calculée en moyennant plus de deux pixels d'un bord du bloc courant, est supérieur ou égal au nombre d'opérations de transformée contenu dans un ensemble stocké en association avec tout autre mode de prédiction.
6. Procédé de codage selon l'une quelconque des revendications 1 à 3, dans lequel le nombre d'opérations de transformée contenu dans un ensemble stocké en association avec un mode de prédiction qui a été préalablement sélectionné, dans ladite pluralité de modes de prédiction prédéterminés, en tant que mode de prédiction le plus probable, est supérieur au nombre d'opérations de transformée contenu dans un ensemble stocké en association avec un mode de prédiction qui n'a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
7. Dispositif (CO) de codage d'au moins une image (ICj) découpée en blocs, comprenant un circuit de traitement (CT_C) qui, pour un bloc courant (B,) à coder de ladite image, est agencé pour :
- prédire le bloc courant conformément à un mode de prédiction sélectionné parmi une pluralité de modes de prédiction prédéterminés,
- calculer un bloc résidu de données représentatif d'une différence entre un bloc prédicteur obtenu à l'issue de la prédiction et le bloc courant,
- appliquer une opération de transformée aux données dudit bloc résidu, ladite opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké en association avec le mode de prédiction sélectionné,
- coder les données obtenues à la suite de ladite opération de transformée,
ledit dispositif de codage étant caractérisé en ce que le circuit de traitement est agencé pour stocker l'ensemble d'opérations de transformée associé audit mode de prédiction sélectionné, le nombre d'opérations de transformée contenu dans ledit ensemble étant différent du nombre d'opérations de transformée contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de ladite pluralité.
8. Procédé de décodage d'un signal de données (F) représentatif d'au moins une image (ICj) découpée en blocs, mettant en œuvre, pour un bloc courant (B,) à décoder :
- une détermination (D3), dans ledit signal de données :
• de données représentatives d'un bloc résidu courant associé au bloc courant à décoder,
• d'un mode de prédiction (MPS) du bloc courant à décoder, ledit mode de prédiction appartenant à une pluralité de modes de prédiction prédéterminés,
- une prédiction (D4) du bloc courant conformément au mode de prédiction déterminé (MPS),
- une application (D7) d'une opération de transformée aux données représentatives dudit bloc résidu, ladite opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké (DO) en association avec ledit mode de prédiction déterminé (MPS),
- une reconstruction (D8) du bloc courant à l'aide d'un bloc prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de ladite opération de transformée,
ledit procédé de décodage étant caractérisé en ce que lors du stockage (D0) de l'ensemble d'opérations de transformée associé audit mode de prédiction déterminé, le nombre d'opérations de transformée contenu dans ledit ensemble est différent du nombre d'opérations de transformées contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de ladite pluralité.
9. Procédé de décodage selon la revendication 8, dans lequel pour au moins deux ensembles d'opérations de transformée stockés respectivement en association avec deux modes de prédiction de ladite pluralité de modes de prédiction prédéterminés, le nombre d'opérations de transformée dans chacun desdits deux ensembles contient en commun au moins une opération de transformée identique.
10. Procédé de décodage selon la revendication 8 ou la revendication 9, dans lequel l'ensemble d'opérations de transformée associé audit mode de prédiction déterminé est stocké en association avec au moins un autre mode de prédiction de ladite pluralité de modes de prédiction prédéterminés.
1 1 . Procédé de décodage selon l'une quelconque des revendications 8 à 10, dans lequel le nombre d'opérations de transformée contenu dans un ensemble stocké en association avec un mode de prédiction associé à une direction de prédiction verticale ou horizontale est supérieur au nombre d'opérations de transformée contenu dans un ensemble stocké en association avec un mode de prédiction associé à une direction de prédiction oblique.
12. Procédé de décodage selon l'une quelconque des revendications 8 à 10, dans lequel le nombre d'opérations de transformée contenu dans un ensemble associé à un mode de prédiction, pour lequel la prédiction est calculée en moyennant plus de deux pixels d'un bord du bloc courant, est supérieur ou égal au nombre d'opérations de transformée contenu dans un ensemble stocké en association avec tout autre mode de prédiction.
13. Procédé de décodage selon l'une quelconque des revendications 8 à 10, dans lequel le nombre d'opérations de transformée contenu dans un ensemble stocké en association avec un mode de prédiction qui a été préalablement sélectionné, dans ladite pluralité de modes de prédiction prédéterminés, en tant que mode de prédiction le plus probable, est supérieur au nombre d'opérations de transformée contenu dans un ensemble stocké en association avec un mode de prédiction qui n'a pas été préalablement sélectionné en tant que mode de prédiction le plus probable.
14. Dispositif de décodage d'un signal de données (F) représentatif d'au moins une image (ICj) découpée en blocs, comprenant un circuit de traitement (CT_D) qui, pour un bloc courant (B,) à décoder, est agencé pour :
- déterminer, dans ledit signal de données :
• des données représentatives d'un bloc résidu courant associé au bloc courant à décoder,
• un mode de prédiction du bloc courant à décoder, ledit mode de prédiction appartenant à une pluralité de modes de prédiction prédéterminés,
- prédire le bloc courant conformément au mode de prédiction déterminé,
- appliquer une opération de transformée aux données représentatives dudit bloc résidu, ladite opération de transformée appartenant à un ensemble d'opérations de transformée qui est préalablement stocké en association avec ledit mode de prédiction déterminé (MPS),
- reconstruire le bloc courant à l'aide d'un bloc prédicteur obtenu à l'issue de la prédiction et des données obtenues à la suite de ladite opération de transformée,
ledit dispositif de décodage étant caractérisé en ce que le circuit de traitement est agencé pour stocker l'ensemble d'opérations de transformée associé audit mode de prédiction déterminé, le nombre d'opérations de transformée contenu dans ledit ensemble étant différent du nombre d'opérations de transformée contenu dans un ensemble d'opérations de transformée qui est stocké en association avec au moins un autre mode de prédiction prédéterminé de ladite pluralité.
15. Programme d'ordinateur comportant des instructions de code de programme pour l'exécution des étapes du procédé de décodage selon l'une quelconque des revendications 8 à 13, lorsque ledit programme est exécuté sur un ordinateur.
EP16770058.2A 2015-08-31 2016-08-26 Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants Pending EP3345391A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1558066A FR3040578A1 (fr) 2015-08-31 2015-08-31 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
PCT/FR2016/052128 WO2017037368A2 (fr) 2015-08-31 2016-08-26 Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants

Publications (1)

Publication Number Publication Date
EP3345391A2 true EP3345391A2 (fr) 2018-07-11

Family

ID=54329793

Family Applications (1)

Application Number Title Priority Date Filing Date
EP16770058.2A Pending EP3345391A2 (fr) 2015-08-31 2016-08-26 Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants

Country Status (8)

Country Link
US (2) US10523969B2 (fr)
EP (1) EP3345391A2 (fr)
JP (2) JP6951324B2 (fr)
KR (1) KR20180048719A (fr)
CN (2) CN115802030A (fr)
BR (1) BR112018003492B1 (fr)
FR (1) FR3040578A1 (fr)
WO (1) WO2017037368A2 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3044507A1 (fr) * 2015-11-30 2017-06-02 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
US10880564B2 (en) * 2016-10-01 2020-12-29 Qualcomm Incorporated Transform selection for video coding
BR112021003829A2 (pt) * 2018-09-02 2021-05-18 Lg Electronics Inc. método e aparelho para processamento de sinal de imagem
US11785254B2 (en) 2020-05-29 2023-10-10 Tencent America LLC Implicit mode dependent primary transforms

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4609670B2 (ja) * 2004-12-28 2011-01-12 日本電気株式会社 画像符号化装置、画像符号化方法及びそのプログラム
US8130822B2 (en) * 2006-07-10 2012-03-06 Sharp Laboratories Of America, Inc. Methods and systems for conditional transform-domain residual accumulation
KR101457894B1 (ko) * 2009-10-28 2014-11-05 삼성전자주식회사 영상 부호화 방법 및 장치, 복호화 방법 및 장치
US20130177077A1 (en) * 2010-07-15 2013-07-11 Agency For Science, Technology And Research Method, Apparatus and Computer Program Product for Encoding Video Data
US9299133B2 (en) * 2011-01-12 2016-03-29 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, and image decoding method for generating a prediction image
US8929455B2 (en) * 2011-07-01 2015-01-06 Mitsubishi Electric Research Laboratories, Inc. Method for selecting transform types from mapping table for prediction modes
KR20130040414A (ko) * 2011-10-14 2013-04-24 주식회사 팬택 인트라 예측 모드에 따른 변환 및 역변환 방법과 이를 이용한 부호화 및 복호화 장치
IN2014DN03096A (fr) * 2011-10-17 2015-05-15 Kt Corp
CN103096053B (zh) * 2011-11-04 2015-10-07 华为技术有限公司 一种变换模式的编解码方法和装置
FR3014278A1 (fr) * 2013-11-29 2015-06-05 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants

Also Published As

Publication number Publication date
JP6951324B2 (ja) 2021-10-20
JP2018529279A (ja) 2018-10-04
BR112018003492B1 (pt) 2023-11-28
US20200137419A1 (en) 2020-04-30
US20190028738A1 (en) 2019-01-24
CN115802030A (zh) 2023-03-14
CN107925757B (zh) 2022-12-02
BR112018003492A2 (pt) 2018-09-25
US10911784B2 (en) 2021-02-02
JP7130708B2 (ja) 2022-09-05
FR3040578A1 (fr) 2017-03-03
WO2017037368A3 (fr) 2017-05-04
JP2020205609A (ja) 2020-12-24
KR20180048719A (ko) 2018-05-10
WO2017037368A2 (fr) 2017-03-09
US10523969B2 (en) 2019-12-31
CN107925757A (zh) 2018-04-17

Similar Documents

Publication Publication Date Title
WO2015197945A1 (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
WO2017037368A2 (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
WO2015055937A1 (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
WO2014001703A1 (fr) Procédé de codage d&#39;un bloc courant d&#39;une première composante d&#39;image par rapport a un bloc de référence d&#39;au moins une deuxième composante d&#39;image, dispositif de codage et programme d&#39;ordinateur correspondant
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
EP2932714B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
FR3050598A1 (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
WO2019008254A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage 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
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
EP3409016A1 (fr) Procédé de codage et décodage de données, dispositif de codage et décodage de données et programmes d&#39;ordinateur correspondants
WO2017093653A1 (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
EP3259909B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
FR3035761A1 (fr) Procede de codage et de decodage d&#39;images, dispositif de codage et de decodage d&#39;images et programmes d&#39;ordinateur correspondants
WO2019008253A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
EP3272122A1 (fr) Codage d&#39;images par quantification vectorielle
WO2018167419A1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage et programmes d&#39;ordinateur correspondants
FR3050858A1 (fr) Procede de codage et de decodage d’images, dispositif de codage et de decodage d’images et programmes d’ordinateur correspondants

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE

17P Request for examination filed

Effective date: 20180220

AK Designated contracting states

Kind code of ref document: A2

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
RIN1 Information on inventor provided before grant (corrected)

Inventor name: ARRUFAT, ADRIA

Inventor name: PHILIPPE, PIERRICK

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20190807

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ORANGE

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

RAP3 Party data changed (applicant data changed or rights of an application transferred)

Owner name: ORANGE

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS