WO2015055937A1 - 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 Download PDF

Info

Publication number
WO2015055937A1
WO2015055937A1 PCT/FR2014/052605 FR2014052605W WO2015055937A1 WO 2015055937 A1 WO2015055937 A1 WO 2015055937A1 FR 2014052605 W FR2014052605 W FR 2014052605W WO 2015055937 A1 WO2015055937 A1 WO 2015055937A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
current
blocks
decoded
candidate
Prior art date
Application number
PCT/FR2014/052605
Other languages
English (en)
Inventor
Félix Henry
Bihong HUANG
Original Assignee
Orange
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 filed Critical Orange
Priority to CN201480056598.4A priority Critical patent/CN105745928A/zh
Priority to US15/029,738 priority patent/US20160269738A1/en
Priority to EP14796227.8A priority patent/EP3058737A1/fr
Publication of WO2015055937A1 publication Critical patent/WO2015055937A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • 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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/55Motion estimation with spatial constraints, e.g. at image or region borders
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/567Motion estimation based on rate distortion criteria
    • 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/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • H04N19/865Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness with detection of the former encoding block subdivision in decompressed video

Definitions

  • the present invention relates generally to the field of image processing and more specifically to the coding 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
  • the images and digital image sequences occupy a lot of space in terms of memory, which requires, when transmitting these images, to compress them in order to avoid congestion problems on the communication network used for this transmission. , the flow rate usable on it is generally limited. This compression is also desirable for storing these data.
  • Video data compression uses techniques for spatially or temporally prediction of groups of pixel blocks of a current image relative to other groups of blocks of pixels belonging to the same image or to a previous or next image.
  • I-images are coded by spatial prediction (intra prediction), and P and B-images are coded by temporal prediction (inter prediction) with respect to other I, P or B-encoded images. decoded using motion compensation.
  • the images are cut a first time in blocks of pixels called CTU (abbreviation of "Coded Treeblocks Unit") which are similar to the macroblocks of the H.264 standard. These blocks can then be subdivided into smaller blocks, each of these smaller blocks or each CTU block being coded by intra prediction or between images.
  • CTU abbreviation of "Coded Treeblocks Unit”
  • a data signal when a CTU block is subdivided into smaller blocks, a data signal, corresponding to each block, is transmitted to the decoder.
  • a signal includes:
  • coding parameters which are representative of the coding mode used, in particular:
  • the decoding is done image by image, and for each image, block CTU per block CTU.
  • the elements corresponding stream are read. Inverse quantization and inverse transformation of the coefficients of the smaller blocks are performed. Then, the prediction of each CTU block is calculated and each CTU block is reconstructed by adding the prediction to the decoded prediction residue.
  • Intra or inter-competition coding as implemented in the HEVC standard, thus relies on the putting into competition of different coding parameters, such as those mentioned above, in order to select the best mode of coding, which is that is to say, that which will optimize the coding of the block considered according to a predetermined performance criterion, for example the cost rate / distortion well known to those skilled in the art.
  • the coding parameters relating to the selected coding mode are contained in the data stream transmitted by the coder to the decoder, in the form of identifiers generally called competition indices.
  • the decoder is thus able to identify the coding mode selected to the encoder, then to apply the prediction according to this mode.
  • One of the aims of the invention is to overcome disadvantages of the state of the art mentioned above.
  • an object of the present invention relates to a method of coding at least one image cut into blocks.
  • Such a coding method is remarkable in that it comprises, for a current block to be coded, the steps of:
  • Such an arrangement makes it possible, during the coding of an image, to avoid including in the signal to be transmitted to the decoder the indices of the predictor blocks which are used to predict the blocks of the image respectively. This results in a significant decrease in the cost of signaling, insofar as such a provision is reproducible to the decoder.
  • the identification of candidate predictor blocks for the prediction of the current block is particularly reliable. It results from the fact that for a current residual block considered, the characteristics of the candidate predictor blocks are very different from each other, which facilitates the final selection of the most suitable candidate predictor block during the determination step according to a predetermined criterion. .
  • the blocks of the image preceding the current block being coded in a determined order is a function of the pixels of the previously coded image.
  • Such an arrangement thus makes it possible to take account of information of the image which is already available at the time of coding of the current block, thus increasing the performance of the identification of the candidate predictor blocks.
  • the previously coded pixels of the image are located along the current block.
  • Such an arrangement thus makes it possible to minimize the discontinuities likely to appear along the boundaries of the current block, while corresponding better to the reality of the image.
  • the predetermined criterion is the minimization of the bitrate-distortion cost of the image.
  • the current block is a block that has previously been obtained as a result of a prediction.
  • Such an arrangement is intended to further refine the prediction of the current block so as to obtain optimized coding performance.
  • the invention also relates to a device for encoding at least one image cut into blocks, such a device being remarkable in that it comprises, for a current block to be encoded:
  • a determination module a set of candidate predictor blocks
  • An identification module in the set of candidate predictor blocks, of a candidate predictor block, as a function of the current residual block obtained,
  • a determination module among the candidate predictor blocks that may have been selected at the end of the selection step, of a candidate predictor block, using a predetermined criterion
  • Such a coding device is able to implement the aforementioned coding method.
  • the invention also relates to a method of decoding a data signal representative of at least one image cut into blocks, such a method comprising the steps of:
  • the decoding method according to the invention is remarkable in that it comprises, for a current block to be reconstructed, the steps of:
  • identification in the aforementioned set, of a candidate predictor block, such identification being a function of said residual current decoded block
  • An advantage of such a decoding method lies in the fact that the step of identifying the predictor block capable of reconstructing the current block is reproducible at decoding.
  • the data signal received at the decoder advantageously contains no information associated with this identified predictor block, which significantly reduces the cost of signaling this information.
  • the fact that the identification of the predictor block is a function of the decoded current residual block allows a reliable reconstruction of the current block.
  • the characteristics of the candidate predictor blocks of the determined set being very different from each other, the identification of the predictor block used for the reconstruction of the current block is facilitated. This results in a decoding of the image of better quality.
  • the blocks of the image preceding the current block being decoded in a determined order, the identification of a predictor block is a function of the pixels of the previously decoded image.
  • the decoding method further comprises a step of determining, in the data signal, information associated with a prediction of the current block, said step of reconstructing the current block being implemented. from such prediction, the identified predictor block and the current residual block determined.
  • the invention also relates to a device for decoding a data signal representative of at least one image cut into blocks, such a device comprising:
  • Such a decoding device is remarkable in that it comprises, for a current block to be reconstructed:
  • an identification module in said set, of a candidate predictor block, said identification being a function of said decoded current residual block
  • Such a decoding device is able to implement 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 desirable form.
  • the invention also relates to a computer-readable recording medium on which a computer program is recorded, this program including instructions adapted to the implementation of one of the methods according to the invention, as described herein. -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.
  • the decoding method, the coding device, the decoding device, the computer programs and the corresponding recording media mentioned above have at least the same advantages as those conferred by the coding and decoding method according to the present invention. Brief description of the drawings
  • FIGS. 1A and 1B show steps of the coding method according to one embodiment of the invention
  • FIG. 2 represents an embodiment of a coding device according to the invention able to implement the coding method of FIGS. 1A and 1B,
  • FIG. 3 represents an example of partitioning the current image into several blocks of pixels
  • FIG. 4 represents an embodiment according to the invention of the step of identifying a candidate predictor block as a function of the current decoded residue block obtained
  • FIG. 5 represents steps of the coding method according to another embodiment of the invention.
  • FIG. 6 represents an embodiment of a coding device according to the invention able to implement the coding method of FIG. 5;
  • FIG. 7 represents steps of the decoding method according to one embodiment of the invention.
  • FIG. 8 represents an embodiment of a decoding device according to the invention able to implement the decoding method of FIG. 7,
  • FIG. 9 represents steps of the decoding method according to another embodiment of the invention.
  • FIG. 10 represents an embodiment of a decoding device according to the invention able to implement the decoding method of FIG. 9.
  • 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 the HEVC standard.
  • the coding method according to the invention is represented in the form of an algorithm comprising steps C1 to C22 as represented in FIGS. 1A and 1B.
  • the coding method according to the invention is implemented in a coding device C01 represented in FIG.
  • such an encoding device comprises a memory MEM_C01 comprising a buffer memory MT_C01, a processing unit UT_C01 equipped for example with a microprocessor ⁇ and driven by a computer program PG_C01 which implements the method of coding according to the invention.
  • the code instructions of the computer program PG_C01 are for example loaded into a RAM memory (not shown) before being executed by the processor of the processing unit UT_C01.
  • the coding method shown in FIGS. 1A and 1B applies to any current image of an SQ sequence of images to be encoded.
  • a partitioning step is implemented by a partitioning software module MP1 shown in FIG. 2, which module is controlled by the microprocessor ⁇ of the processing unit UT_C01.
  • the image ICj thus partitioned is shown in FIG. 3.
  • the image ICj is partitioned into four blocks Bi, B 2 , B 3 and B 4 .
  • block means coding unit (coding unit).
  • coding unit coding unit
  • This last terminology is especially used in the HEVC standard, for example in the document "B. Bross, W.-J. Han, J.-R. Ohm, GJ Sullivan, and T. Wiegand, "High efficiency video coding (HEVC) text specification draft 10," JCTVC-L1003 document of JCT-VC, Geneva, CH, 14-23 January 2013.
  • 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 u , ..., B s are intended to be coded according to a predetermined order of travel, which is for example of the raster scan type. This means that the blocks are coded one after the other, from left to right.
  • the coder CO1 selects, as current block, a first block to be encoded B u of the image IC j , such as, for example, the first block B-.
  • a set of Q candidate predictor blocks BP1 1 is determined according to the invention ; BP1 2, ..., V BP1, ..., Q BP1 (1 ⁇ v ⁇ Q).
  • Such candidate predictor blocks are for example blocks of pixels that have already been coded or not.
  • Such blocks are stored beforehand in the MT_CO1 buffer memory of the encoder as represented in FIG. 2. In the example represented, it is in particular a predetermined number of blocks which have been coded just before the current block considered. .
  • Such a determination step is implemented by a determination software module DET_CO1 shown in FIG. 2, which module is driven by the microprocessor ⁇ of the processing unit UT_CO1.
  • DET_CO1 determination software module
  • the candidate predictor block BP1 v is subtracted from the current block B u to produce a residue block Br v .
  • the residue block Br v is transformed according to a conventional direct transformation operation such as, for example, a discrete cosine transformation of the DCT type, to produce a transformed Bt block. v .
  • the transformed block Bt v is quantized according to a conventional quantization operation, such as, for example, a scalar quantization.
  • a conventional quantization operation such as, for example, a scalar quantization.
  • a block of quantized coefficients Bq v is then obtained.
  • the steps C4 to C6 are implemented by a predictive coding software module PRED_C01 shown in FIG. 2, which module is driven by the microprocessor ⁇ of the processing unit UT_C01.
  • the predictive coding module PRED_C01 is able to perform a predictive coding of the current block, according to conventional prediction techniques, such as for example in Intra and / or Inter mode.
  • the entropic coding of the quantized coefficient block Bq v is carried out .
  • it is a CABAC entropic coding.
  • Such a step consists in: a) reading the symbol (s) of the predetermined set of symbols which are associated with said current block,
  • Such an entropy coding step is implemented by an entropic coding software module MCE1 shown in FIG. 2, which module is driven by the microprocessor ⁇ of the processing unit UT_C01.
  • the entropic coding module MCE1 is for example of the CABAC type. It may also be a Huffman coder known as such.
  • step C8 shown in FIG. 1A the block Bq v is dequantized according to a conventional operation of FIG. dequantization, which is the inverse operation of the quantization performed in step C6.
  • a block of dequantized coefficients BDq v is then obtained.
  • step C9 it is proceeded to the inverse transformation of the dequantized coefficient block BDQ v which is the inverse operation of the direct conversion performed in step C5 above.
  • a decoded residue block BDr v is then obtained.
  • Steps C8 and C9 are implemented by a PRED "1 _C01 inverse predictive coding software module represented in FIG. 2, which module is driven by the microprocessor ⁇ of the processing unit UT_C01.
  • steps C4 to C9 are repeated for each predictor block of the set of predictor blocks BP1 1; BP1 2 , ..., BP1 V , ..., BP1 Q , Q decoded residue blocks BDr 1; BDr 2 ,..., BDr v ,..., BDr Q are obtained at the end of step C9.
  • the method according to the invention is used to identify, among all the Q predictor blocks BP1-I, BP1 2 ,..., BP1 V ,. , BP1 Q , at least one predictor block capable of being found at the decoding of the current block B u .
  • an identification step is a function of the current decoded residue block BDr v obtained.
  • Such an identification step is implemented by a calculation software module CAL1_C01 shown in FIG. 2, which module is controlled by the microprocessor ⁇ of the processing unit UT_C01.
  • such an identification consists, for a current decoded residue block BDr v , in building a current decoded block BD V, W by adding to the decoded current block BDr v a candidate predictor block BP1 w (1 ⁇ w ⁇ Q).
  • a criterion is applied for minimizing the difference between the decoded pixels of the current image IC j , which are represented by dots in FIG. 4, and the pixels of the decoded block BD V, W along its boundary F.
  • This criterion is a mathematical operator denoted SM (BD v , w, IC j ).
  • the operator SM (BD V , W , IC j ) is in fact representative of the quadratic error along the boundary F of the decoded residual block BDr v with the image IC j .
  • w is the decoded block considered of size NxN pixels
  • - BD v , w (n, m) is the value of the pixel of the decoded residue block BD V , W located on the nth row and the mth column of this block,
  • IC j (k, l) is the value of the pixel of the image IC j located on the k th line and the I th column of this image, and (lin, col) are the coordinates of the decoded block BD v, w in the image IC j .
  • a simplified criterion in which the average of the pixels of the image IC j along the boundary F and the average of the pixels of the decoded block BD V , W - L 'are compared.
  • SM operator (BD V , W , ICj) is then written:
  • step C10 the decoded block BDv.wmin is determined, which minimizes one of the two aforementioned criteria, such as:
  • Kmin argmin K 5 (BD uK, PAC j)
  • the block B Dv.wmin is equal to the sum of the candidate predictor block BP1 wmin and the current decoded residue block BDr v .
  • the candidate candidate block BP1 wmin is compared with the candidate predictor block BP1 V associated with the decoded residue block BDr v .
  • Such a comparison step is implemented by a calculation software module CAL2_C01 shown in FIG. 2, which module is controlled by the microprocessor ⁇ of the processing unit UT_C01.
  • the steps C4 to C1 1 are repeated for each predictor block of the set of predictor blocks BP1 i, BP1 2 ,..., BP1 V ,..., BP1 Q determined in FIG. step C3.
  • the BPI block wmin is not selected as the identified predictor block.
  • a plurality T of identified predictor blocks BP1 i, BP1 2 , BP1 Z , BP1 T is obtained, where 1 ⁇ z ⁇ T ⁇ Q.
  • D represents the distortion between the original current block Bi and the reconstructed block Bi
  • R represents the bit cost of the coding of the coding parameters used to code the block Bi
  • represents a Lagrange multiplier whose value is fixed to the coder.
  • the predetermined performance criterion only depends on the distortion and is expressed by equation (2) below:
  • the criteria J and J ' are calculated conventionally by simulation by a calculation module CAL3_C01 represented in FIG. 2, which module is driven by the microprocessor ⁇ of the processing unit UT_C01.
  • the predictive module PRED_C01 of FIG. 2 subtracts the preferential candidate predictor block BP1 op t from the current block B u to produce a residue block Br op t u - Au during a step C15 shown in FIG. 1B, the module
  • PRED_C01 of FIG. 2 carries out the transformation of the residue block Br op t u according to a conventional direct transformation operation such as, for example, a discrete cosine transformation of the DCT type, to produce a transformed block Bt op tu- During a step C16 shown in FIG. 1B, the module
  • PRED_C01 of FIG. 2 proceeds to the quantization of the transformed block Bt op tu according to a conventional quantization operation, such as, for example, a scalar quantization.
  • a block of quantized coefficients Bq op t u is then obtained.
  • the entropic coding module MCE1 of FIG. 2 proceeds with the entropic coding of the quantized coefficient block Bq op t u -
  • a data flow ⁇ which contains the encoded data of the quantized coefficient block Bq op t u is then delivered at the end of step C17.
  • Such a stream is then transmitted by a communication network (not shown) to a remote terminal.
  • This comprises the decoder D01 represented in FIG. 7.
  • the stream ⁇ furthermore comprises certain information encoded by the coder C01, such as the type of prediction (inter or intra), and, if appropriate, the prediction mode, the partition partitioning type if the block has been partitioned, the reference image index and the displacement vector used in the inter prediction mode.
  • the PRED module " 1_C01 of FIG. 2 dequantizes the block Bq op t u according to a conventional dequantization operation, which is the inverse operation of the quantization performed in step C16 A block of dequantized coefficients BDq op tu is then obtained.
  • the PRED module " 1_C01 of FIG. 2 carries out the inverse transformation of the block of dequantized coefficients BDq op t u which is the reverse operation of the direct transformation performed in step C15 above.
  • a decoded residue block BDr op tu is then obtained.
  • the decoded block BD U is constructed by adding to the preferential candidate predictor block BP1 op t the decoded residue block BDr op t u - H is noted that this last block is the same as the decoded block obtained at the end of the image decoding process IC j which will be described later in the description.
  • the decoded block BD U is then stored in the buffer memory MT_C01 of FIG. 2, in order to be used by the coder C01 as a candidate predictor block of a next block to be encoded.
  • the coder C01 tests whether the current block B u that has just been coded is the last block of the image. If the current block is the last block of the image.
  • IC j during a next step C22 shown in Figure 1 B, it ends the coding process.
  • This alternative embodiment differs from the previous embodiment in that it implements two types of prediction which will be described below with reference to FIG.
  • the coding method according to this other embodiment is represented in the form of an algorithm comprising steps C'1 to C'9 as represented in FIG.
  • the coding method according to this other embodiment of the invention is implemented in a coding device C02 shown in FIG. 6.
  • such a coding device C02 comprises a memory MEM_C02 comprising a buffer memory MT_C02, a processing unit UT_CO2 equipped for example with a microprocessor ⁇ and driven by a computer program PG_C02 which implements the method coding according to this other embodiment.
  • the code instructions of the computer program PG_C02 are for example loaded into a RAM (not shown) before being executed by the processor of the processing unit UT_C02.
  • the coding method shown in FIG. 5 applies to any current image of an image SQ sequence to be encoded.
  • a current image ICj belonging to the image sequence SQ ld, ICj, ..., I CM (1 ⁇ j ⁇ M) is partitioned. ), in a plurality of blocks Bi, B 2 , B u , ..., B s (1 ⁇ u S S), for example of size 64 ⁇ 64 pixels.
  • Such a partitioning step is implemented by a partitioning software module MP2 shown in FIG. 6, which module is controlled by the microprocessor ⁇ of the processing unit UT_C02. Since step C'1 is identical to step C1 of FIG. 1A, it will not be described further.
  • said blocks Bi, B 2 , B u ,..., B s are intended to be coded according to a predetermined order of travel, which is for example of the raster scan type. . This means that the blocks are coded one after the other, from left to right.
  • the coder C02 selects as the current block a first block to be encoded B u of the image ICj, such as, for example, the first block Bi.
  • the current block B u is predicted by conventional intra and / or inter prediction techniques using a predictor block BP1 is i - Such a prediction will be called "primary prediction" in the remainder of the description.
  • the aforementioned prediction step makes it possible to construct a residue block Br1 u which is obtained by calculating the difference between the current block B u and the predictor block BP1 se .
  • the step C'3 is implemented by a predictive coding software module PRED1_C02 shown in FIG. 6, which module is driven by the microprocessor ⁇ of the processing unit UT_C02.
  • a set of Q candidate predictor blocks BP2 1 is determined; BP2 2, ..., V BP2, ..., BP2 Q (1 ⁇ V ⁇ Q). Since such a step is identical to the determination step C3 of FIG. 1A, it will not be described further.
  • Such a determination step C'4 is implemented by a determination software module DET_CO2 shown in FIG. 6, which module is controlled by the microprocessor ⁇ of the processing unit UT_CO2.
  • a prediction of the residue block Br1 u is carried out by implementing the steps C4 to C13 described above in connection with the figures 1 A and 1 B. Such a prediction will be called “secondary prediction" in the remainder of the description.
  • a preferential candidate predictor block BP2 op t is selected.
  • step C'5 is implemented using:
  • a calculation software module CAL2_C02 which is identical to the module CAL2_C01 of FIG. 2.
  • the effectiveness of the preferred candidate predictor block BP2 op t which has been selected is carried out.
  • test step C'6 is implemented by a calculation software module CAL4_C02 shown in FIG. 6, which module is driven by the microprocessor ⁇ of the processing unit UT_C02.
  • such a test consists in verifying whether the energy of the block Br1 u -BP2 op t is lower than a threshold which corresponds to the value of the energy of the block Br 1 u .
  • the test is positive, it means that the preferential candidate predictor block BP2 opt is close to the current original block B u . Therefore, the secondary prediction is applied to the current block B u.
  • step C'6 the residue block Br1 u is transformed according to a conventional direct transformation operation.
  • a conventional direct transformation operation such as for example a discrete cosine transformation of DCT type, to produce a transformed block Bt1 u .
  • the transformed block Bt1 u is quantized according to a conventional quantization operation, such as, for example, scalar quantization.
  • a block of quantized coefficients Bq1 u is then obtained.
  • the steps C'610 and C'61 1 are implemented by the predictive coding software module PRED1_C02 shown in FIG. 6.
  • the entropic coding of the quantized coefficient block Bq1 u is carried out by an entropic coding software module MCE1_CO2 identical to the entropic coding software module MCE_C01 of FIG. furthermore, an indicator Id associated with the preferential candidate predictor block BP2 op t is coded according to a first predetermined value (bit at 0 for example) to indicate that the secondary prediction has not been applied.
  • a data flow ⁇ 1 which contains the encoded data of the quantized coefficient block Bq1 i as well as the bit at 0 of the indicator Id, is then output at the end of the step C'612.
  • Such a stream is then transmitted by a communication network (not shown) to a remote terminal.
  • a communication network (not shown) to a remote terminal.
  • This comprises the decoder D02 shown in FIG. 10.
  • the stream ⁇ 1 contains information encoded by the coder C02, such as the type of prediction (inter or intra), and if appropriate, the mode prediction, the type of partitioning of a block or macroblock if the latter has been partitioned, the reference image index and the displacement vector used in the inter prediction mode.
  • step C'613 the block Bq1 u is dequantized according to a conventional dequantization operation, which is the inverse operation of the quantization performed in step C'61. .
  • a block of dequantized coefficients BDq1 u is then obtained.
  • step C'614 represented in FIG. 5 the inverse transformation of the dequantized coefficient block BDq1 u is carried out which is the inverse operation of the direct transformation carried out in step C'610 above. .
  • a decoded residue block BDr1 u is then obtained.
  • steps C'613 and C'614 are implemented by an inverse predictive coding software module PRED1 "1 _C02 shown in FIG. 6, which module is driven by the microprocessor ⁇ of the processing unit UT_C02. is identical to the software module PRED "1 _C01 of Figure 2.
  • the coder C02 tests whether the current block B u that has just been coded is the last block of the image ICj.
  • the coding method is terminated. If this is not the case, it is proceeded again to the selection step C'2 of the next block to be coded according to the above-mentioned raster scan order, then the steps C'3 to C'6 are reiterated for that next block selected.
  • step C'6 If the test performed in step C'6 is positive, during a step C'620 shown in FIG. 5, the module PRED2_C02 of FIG. 6 subtracts the preferential candidate predictor block BP2 opt from the residual block Br1 u to produce a residue block Br2 op t u - During a step C'621 represented in FIG. 5, the module
  • PRED2_C02 of FIG. 6 transforms the residue block Br2 op t u according to a conventional direct transformation operation such as, for example, a discrete cosine transformation of the DCT type, to produce a transformed block Bt2 op t u -
  • a conventional direct transformation operation such as, for example, a discrete cosine transformation of the DCT type
  • PRED2_C02 of FIG. 6 proceeds to the quantization of the transformed block Bt2 op tu according to a conventional quantization operation, such as, for example, a scalar quantization.
  • a block of quantized coefficients Bq2 op t u is then obtained.
  • the entropic coding module MCE2_CO2 of FIG. 6 proceeds with the entropic coding of the quantized coefficient block Bq2 op t u.
  • the indicator Id associated with the predictor block preferential candidate BP2 opt is coded according to a second predetermined value (1-bit, for example) to signal that the secondary prediction has been applied.
  • a data stream ⁇ 2 which contains the encoded data of the quantized coefficient block Bq2 op t u and the bit at 1 of the indicator Id, is then output at the end of the step C'623. Such a stream is then transmitted by a communication network (not shown) to the decoder D02 shown in FIG.
  • the module PRED2 "1 _C02 of FIG. 6 carries out the dequantization of the block Bq2 op t u according to a conventional operation of dequantization, which is the inverse operation the quantification performed in step C'622.
  • a block of dequantized coefficients BDq2 op t u is then obtained.
  • the module PRED2 "1 _C02 of FIG. 6 carries out the inverse transformation of the dequantized coefficient block BDq2 op t u which is the inverse operation of the direct transformation carried out in step C'621 above A decoded residue block BDr2 op tu is then obtained.
  • the decoded block BD U is constructed by adding to the preferential candidate predictor block BP2 opt the decoded residual block BDr2 op t u.
  • the decoded block BD U thus constructed is then stored. in the MT_C02 buffer memory of FIG. 6, for use by the CO 2 coder as a predictor block candidate for a secondary prediction of a next decoded residue block.
  • the coder C02 tests whether the current block B u which has just been coded is the last block of the image IC j .
  • the coding method is terminated.
  • a decoder D01 comprises a memory MEM_D01 comprising a buffer memory MT_D01, a processing unit UT_D01 equipped for example with a microprocessor ⁇ and driven by a computer program PG_D01 which implements the decoding method according to the invention.
  • the code instructions of the computer program PG_D01 are for example loaded into a RAM before being executed by the processor of the processing unit UT_D01.
  • the decoding method shown in FIG. 8 applies to any current image of an SQ sequence of images to be decoded.
  • information representative of the current image IC j to be decoded is identified in the stream ⁇ received at the decoder.
  • the first decoding step D1 is the identification in said stream ⁇ of the encoded data Bq ; Bq 2 , ..., Bq u , ... Bq s respectively associated with the residual blocks Bn, Br 2 , Br u , ..., Br s coded previously according to the above-mentioned raster scan path, according to the coding method shown in FIG. Figures 1A and 1B.
  • Such an identification step is implemented by an identification module MI_D01 as shown in FIG. 8, said module being driven by the microprocessor ⁇ of the processing unit UT_D01.
  • Said blocks Bq ; Bq 2 , Bq u , ..., Bq s are intended to be decoded according to a predetermined order of travel, which is for example of the sequential type, that is to say that they are intended to be decoded one after the other. other in the raster scan order where they were encoded.
  • the decoder D01 selects as the current block a first block to be encoded Bq u of the image IC j , such as, for example, the first block Bq-,.
  • the entropy decoding of the block Bq u is carried out .
  • it is a CABAC entropic decoding.
  • Such a step consists of: a) reading the symbol (s) of the predetermined set of symbols which are associated with said current residual block,
  • Such an entropy decoding step is implemented by an entropy decoding software module MDE1 shown in FIG. 7, which module is controlled by the microprocessor ⁇ of the processing unit UT_D01.
  • the entropy coding module MDE1 is for example of the CABAC type. It can also be a Huffman decoder known as such.
  • dequantization of the block BDq u is carried out according to a conventional dequantization operation, which is the inverse operation of the quantization performed in step C16 of FIG. 1B.
  • a decoded dequantized block BDt u is then obtained.
  • step D5 the inverse transformation of the decoded dequantized block BDt u is carried out which is the inverse operation of the direct transformation performed in step C15 of FIG. decoded residue BDr u is then obtained.
  • the steps D4 and D5 are implemented by a PRED "1 _D01 inverse predictive decoding software module represented in FIG. 7, which module is driven by the microprocessor ⁇ of the processing unit UT_D01.
  • a set of Q candidate predictor blocks BP1 i, BP1 2 ,..., BP1 V ,..., BP1 is determined according to the invention.
  • Q (1 ⁇ V ⁇ Q) Such candidate predictor blocks are, for example, blocks of pixels that have already been decoded or not. Such blocks are stored beforehand in the buffer MT_D01 of the decoder as shown in FIG. 7. In the example shown, it is in particular a predetermined number of blocks that have been decoded just before the current block. decode considered.
  • Such a determination step is implemented by a DET_D01 determination software module shown in FIG. 7, which module is driven by the ⁇ microprocessor of the processing unit UT_D01.
  • the identification method is carried out according to the invention, among all the Q predictor blocks BP1 ; BP1 2 , ..., BP1 v , ..., BP1 Q, of a preferential candidate predictor block BP1 op t.
  • such an identification step is a function of the decoded residue block BDr u obtained.
  • Said identification step is implemented by a calculation software module CAL1_D01 shown in FIG. 7, which module is controlled by the microprocessor ⁇ of the processing unit UT_D01.
  • such an identification consists, for a current decoded residue block BDr u , of constructing a current decoded block BD U> W by adding to the residual block decoded current BDr u a candidate predictor block BP1 W (1 ⁇ w ⁇ Q).
  • This criterion is a mathematical operator noted SM (BD UiW , IC j ).
  • the operator SM (BD UiW , IC j ) is in fact representative of the quadratic error along the boundary F of the decoded residual block BDr u with the image IC j .
  • W is the decoded block considered of size NxN pixels
  • IC j (k, l) is the value of the pixel of the image IC j located on the k th line and the I th column of this image, and (lin, col) are the coordinates of the decoded block BD u> w in the image IC j .
  • a simplified criterion can be used, in which the average of the pixels of the image ICj along the border F is compared with the average of the pixels of the decoded block BD U> W.
  • the operator SM (BD UiW , ICj) is written then:
  • step D7 the decoded block BDv.wmin is identified, which minimizes one of the two aforementioned criteria, such as:
  • the block BDv.wmin is equal to the sum of the candidate predictor block BP1 wmin and the current decoded residue block BDr v .
  • the candidate predictor block BP1 W min is considered as the preferential candidate predictor block BP1 op t for the inverse prediction of the current decoded residue block BDr u .
  • the current block B u is reconstructed by adding to the decoded current residual block BDr u the preferential candidate predictor block BP1 op t identified in step D7.
  • Said step D8 is implemented by a calculation software module CAL2_DO1 represented in FIG. 7, which module is driven by the microprocessor ⁇ of the processing unit UT_DO1.
  • a decoded block BD U is then obtained and stored in the buffer memory MT_DO1 of FIG. 7, in order to be used by the decoder DO1 as a candidate predictor block of a next block to be decoded.
  • step D9 said decoded block BD U is written in a decoded picture I Dj.
  • a step is implemented by an image reconstruction software module URI1 as shown in FIG. 7, said module being driven by the microprocessor ⁇ of the processing module UT DO1.
  • the decoder D01 tests whether the current block BD U that has just been decoded is the last block contained in the stream ⁇ .
  • step D2 it is proceeded, in step D2, to the selection of the next residual block to be decoded according to the above-mentioned raster scan order.
  • decoding method is implemented in a software or hardware way by modifying a decoder initially conforming to the HEVC standard.
  • the decoding method according to the invention is represented in the form of an algorithm comprising steps D 1 to D 7 as represented in FIG. 9.
  • a decoder D02 comprises a memory MEM_D02 comprising a buffer memory MT_D02, a processing unit UT_D02 equipped for example with a microprocessor ⁇ and controlled by a computer program PG_D02 which implements the decoding method according to the invention.
  • the code instructions of the computer program PG_D02 are for example loaded into a RAM memory before being executed by the processor of the processing unit UT_D02.
  • the decoding method shown in FIG. 9 applies to any current image of an SQ sequence of images to be decoded.
  • the first decoding step D'1 is the identification:
  • Such an identification step is implemented by an identification module MI_D02 as shown in FIG. 10, said module being controlled by the microprocessor ⁇ of the processing unit UT_D02.
  • Said blocks Bq1 1; Bq1 2 , Bq1 u , ..., Bq1 s or Bq2 opt i, Bq2 opt 2,. . . , Bq2 op tu, ... Bq2 op ts are intended to be decoded according to a predetermined order of travel, which is for example sequential, ie the blocks are intended to be decoded one after the other in accordance with to the raster scan order where they were encoded.
  • the decoder D 02 selects as a current block a first block to be coded B 1 u or B q 2 op t u of the image IC j , such as for example the first block B q 1 u or Bq2 op t u -
  • the index Id associated with the selected block Bq u is read in the stream ⁇ 1 or ⁇ 2.
  • Such a reading step is implemented by a reader software module ML_D02 as shown in FIG. 10, said module being driven by the microprocessor ⁇ of the processing unit UT_D02.
  • index Id is equal to zero, it means that the current block to be decoded has undergone a primary prediction according to the steps C'610 to C'614 of the encoding method shown in Figure 5. It is therefore the flow ⁇ 1 that the decoder D02 is intended to treat.
  • index Id Q
  • step D 310 the entropic decoding of the block B q 1 u is carried out .
  • step D3 Such a step being identical to the aforementioned step D3, it will not be described further.
  • Such an entropy decoding step is implemented by an entropic decoding software module MDE1_D02 shown in FIG. 10, which module is controlled by the microprocessor ⁇ of the processing unit UT_D02.
  • the entropy coding module MDE1_D02 is for example of CABAC type. It can also be a Huffman decoder known as such.
  • step D 31 1 the dequantization of the block BDq1 u is carried out .
  • Such a step being identical to the above-mentioned step D4, it will not be described further.
  • a decoded dequantized block BDt1 u is then obtained.
  • step D 312 the inverse transformation of the decoded dequantized block BD t 1 u is carried out .
  • Such a step being identical to the aforementioned step D5, it will not be described further.
  • a decoded residue block BDr1 u is then obtained.
  • a predictor block BP1 is i- Such a step consists in adding to the residual decoded current block BDr1 u that the predictor block BP1 is classically selected.
  • a decoded block BD U is then obtained following the step D4 and stored in the buffer memory MT_D02 of FIG. 10, in order to be used by the decoder D02 as a candidate predictor block of a next block to be decoded.
  • the steps D 31 1 to D 4 are implemented by an inverse predictive decoding software module PRED1 "1 _D02 shown in FIG. 10, which module is driven by the microprocessor ⁇ of the processing unit UT_D02.
  • step D shown in FIG. 9 said decoded block BD U is written in a decoded picture ID j .
  • Such a step is implemented by an image reconstruction software module URI2 as represented in FIG. 10, said module being controlled by the microprocessor ⁇ of the processing module UT_D02.
  • the decoder D02 tests whether the current block BD U that has just been decoded is the last block contained in the stream ⁇ 1.
  • step D 2 it is proceeded, in step D 2, to the selection of the residual block according to Bq1 u to be decoded according to the aforementioned sequential order.
  • the decoding method described above is then iterated for all the S blocks to be decoded.
  • step D'320 the entropy decoding of the block Bq2 op t u is performed.
  • Such a step being identical to the aforementioned step D3, it will not be described further.
  • a decoded quantized block BDq2 op tu is then obtained at the end of this step.
  • Such an entropy decoding step is implemented by an entropic decoding software module MDE2_D02 shown in FIG.
  • step D 321 shown in FIG. 9 dequantization of the block BD q 2 op t u is performed. Such a step being identical to the aforementioned step D 4, it will not be described further. A decoded dequantized block BDt2 op t u is then obtained.
  • step D 322 shown in FIG. 9 the reverse transformation of the decoded dequantized block BD t 2 op t u is carried out. - Such a step being identical to the aforementioned step D 5, it will not be described any further. .
  • a decoded residue block BDr2 op t u is then obtained. Said block The decoded residual BDr2 op t u is then stored in the buffer memory MT_D02 of FIG. 10, in order to be used by the decoder D02 as a candidate predictor block of a next block to be decoded.
  • the steps 321 and 322 are D'implemented by a predictive decoding software module inverse Pred2 "1 _D02 shown in Figure 10, which module is controlled by the microprocessor of the ⁇ UT_D02 processing unit.
  • a set of Q candidate predictor blocks BP2 1 is determined according to the invention ; BP2 2, ..., V BP2, ..., BP2 Q (1 ⁇ v ⁇ Q). Since such a step is identical to step D6 of FIG. 8, it will not be described further.
  • Such a determination step is implemented by a DET_D02 determination software module shown in FIG. 10, which module is driven by the microprocessor ⁇ of the processing unit UT_D02.
  • the method according to the invention is used to identify, among the set of Q predictor blocks BP 2 1; BP2 2 ,..., BP2 V ,..., BP2 Q , of a preferential candidate predictor block BP2 op t.
  • an identification step is a function of the decoded residue block BDr2 op t z obtained.
  • Said identification step is implemented by a calculation software module CAL1_D02 shown in FIG. 10, which module is controlled by the microprocessor ⁇ of the processing unit UT_D02.
  • the decoding method uses a criterion for minimizing the difference between the decoded pixels of the current image IC j , which are represented by dots in FIG. 4, and the pixels of decoded block BDr1 u> w located along its border F.
  • This criterion is a mathematical operator denoted SM (BDr1 UiW , ICj).
  • BDr1 u is the decoded block considered of size NxN pixels
  • BDr1 UiW (n, m) is the value of the pixel of the decoded block BDr1 u> w located on the nth row and the mth column of this block,
  • ICj is the current image
  • ICj (k, l) is the value of the pixel of the image ICj located on the kth row and the ith column of this image, and (lin, col) are the coordinates of the decoded residue block BDr1 u> w in the image ICj.
  • a simplified criterion can be used in which the average of the pixels of the image ICj along the boundary F is compared with the average of the pixels of the decoded block BDr1 u> w .
  • the operator SM (BDr1 UiW , ICj) is written then:
  • the decoded block BDr1 v , wmin is identified which minimizes one of the two aforementioned criteria, such as:
  • the block BDr1 v , wmin is equal to the sum of the candidate predictor block BP2 wmin and the current decoded residue block BDr2 op t u -
  • the candidate predictor block BP2wmin is considered as the preferential candidate predictor block BP2 opt for the inverse prediction of the current decoded residue block BDr2 op t u -
  • the residual current block BD r u is reconstructed by adding to the residual decoded current block BD R 2 op t u the preferential candidate predictor block BP 2 opt identified in step On 324.
  • Said step D'325 is implemented by a calculation software module CAL2_D02 shown in FIG. 10, which module is driven by the microprocessor ⁇ of the processing unit UT_D02.
  • step D 4 and D 5 are then repeated to deliver a current block BD U.
  • step D6 is again implemented to test if the current block BD U is the last block of the image.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

L'invention concerne de codage d'au moins une image (ICj) découpée en blocs, caractérisé en ce qu'il comprend, pour un bloc courant (Bu) à coder, les étapes de: - détermination (C3), d'un ensemble de blocs prédicteurs candidats (BP1 1; BP12,..., BP1 V,..., BP1 Q), - pour au moins un bloc prédicteur candidat (BP1 V) dudit ensemble : obtention (C4) d'un bloc résiduel représentatif de la différence entre le bloc prédicteur candidat et le bloc courant (Bu), identification (C10), dans ledit ensemble de blocs prédicteurs candidats, d'un bloc prédicteur candidat, ladite identification étant fonction dudit bloc résiduel courant obtenu, sélection (C12a)) dudit au moins un bloc prédicteur candidat s'il est égal au bloc prédicteur identifié, - détermination (C13), parmi les blocs prédicteurs candidats susceptibles d'avoir été sélectionnés à l'issue de l'étape de sélection, d'un bloc prédicteur candidat (BP1 opt), à l'aide d'un critère prédéterminé (J), - codage (C15-C17) du bloc résiduel représentatif de la différence entre le bloc prédicteur candidat déterminé et le bloc courant (Bu).

Description

PROCÉDÉ DE CODAGE ET DE DÉCODAGE D'IMAGES, DISPOSITIF DE CODAGE ET DE DÉCODAGE 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 images et séquences d'images numériques occupent beaucoup d'espace en termes de mémoire, ce qui nécessite, lorsqu'on transmet ces images, de les compresser afin d'éviter les problèmes d'encombrement sur le réseau de communication utilisé pour cette transmission, le débit utilisable sur celui-ci étant généralement limité. Cette compression est également souhaitable en vue du stockage de ces données.
On connaît déjà de nombreuses techniques de compression de données vidéo. Parmi celles-ci, de nombreuses techniques de codages vidéo, notamment la technique HEVC, utilisent des techniques de prédiction spatiale ou temporelle de groupes de blocs de pixels d'une image courante par rapport à d'autres groupes de blocs de pixels appartenant à la même image ou à une image précédente ou suivante.
Plus précisément, selon la technique HEVC, des images I sont codées par prédiction spatiale (prédiction intra), et des images P et B sont codées par prédiction temporelle (prédiction inter) par rapport à d'autres images I, P ou B codées/décodées à l'aide d'une compensation en mouvement.
A cet effet, les images sont découpées une première fois en blocs de pixels appelés CTU (abréviation anglaise de « Coded Treeblocks Unit ») qui sont similaires aux macroblocs de la norme H.264. Ces blocs peuvent être ensuite subdivisés en blocs plus petits, chacun de ces blocs plus petits ou chaque bloc CTU étant codé par prédiction intra ou inter images.
Selon la technique HEVC, lorsqu'un bloc CTU est subdivisé en blocs plus petits, un signal de données, correspondant à chaque bloc, est transmis au décodeur. Un tel signal comprend :
- des données résiduelles qui sont les coefficients des blocs résiduels quantifiés,
- des paramètres de codage qui sont représentatifs 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 subdivision ;
• le type de transformée, par exemple DCT 4x4, DCT 8x8, etc ..
· les informations de mouvement si nécessaire ;
• etc.
Le décodage est fait image par image, et pour chaque image, bloc CTU par bloc CTU. Pour chaque bloc plus petit d'un bloc CTU, les éléments correspondants du flux sont lus. La quantification inverse et la transformation inverse des coefficients des blocs plus petits sont effectuées. Puis, la prédiction de chaque bloc CTU est calculée et chaque bloc CTU est reconstruit en ajoutant la prédiction au résidu de prédiction décodé.
Le codage intra ou inter par compétition, tel que mis en œuvre dans la norme HEVC, repose ainsi sur la mise en compétition de différents paramètres de codage, tels que ceux précités, dans le but de sélectionner le meilleur mode de codage, c'est-à-dire celui qui optimisera le codage du bloc considéré selon un critère de performance prédéterminé, par exemple le coût débit/distorsion bien connu de l'homme du métier.
Les paramètres de codage relatifs au mode de codage sélectionné sont contenus dans le flux de données transmis par le codeur au décodeur, sous la forme d'identifiants appelés généralement indices de compétition. Le décodeur est ainsi capable d'identifier le mode de codage sélectionné au codeur, puis d'appliquer la prédiction conforme à ce mode.
La bande passante allouée à ces indices de compétition n'est pas négligeable, puisqu'elle atteint environ 30%. Elle tend par ailleurs à augmenter en raison de l'apport toujours grandissant de nouveaux paramètres de codage tels que de nouvelles dimensions et/ou formes de blocs de pixels, de nouveaux paramètres de prédiction Intra, Inter, etc....
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.
Un tel procédé de codage est remarquable en ce qu'il comprend, pour un bloc courant à coder, les étapes de :
- détermination, d'un ensemble de blocs prédicteurs candidats, - pour au moins un bloc prédicteur candidat de l'ensemble précité:
• obtention d'un bloc résiduel représentatif de la différence entre le bloc prédicteur candidat et le bloc courant, identification, dans l'ensemble de blocs prédicteurs candidats, d'un bloc prédicteur candidat, une telle identification étant fonction du bloc résiduel courant obtenu,
• sélection dudit au moins un bloc prédicteur candidat s'il est égal au bloc prédicteur identifié,
- détermination, parmi les blocs prédicteurs candidats susceptibles d'avoir été sélectionnés à l'issue de l'étape de sélection, d'un bloc prédicteur candidat, à l'aide d'un critère prédéterminé,
- codage du bloc résiduel représentatif de la différence entre le bloc prédicteur candidat déterminé et le bloc courant.
Une telle disposition permet, lors du codage d'une image, d'éviter d'inclure dans le signal à transmettre au décodeur les indices des blocs prédicteurs qui sont utilisés pour prédire respectivement les blocs de l'image. II en résulte ainsi une diminution non négligeable du coût de signalisation, dans la mesure où une telle disposition est reproductible au décodeur.
En outre, l'identification de blocs prédicteurs candidats en vue de la prédiction du bloc courant est particulièrement fiable. Elle résulte du fait que pour un bloc résiduel courant considéré, les caractéristiques des blocs prédicteurs candidats sont très différentes les unes des autres, ce qui facilite la sélection finale du bloc prédicteur candidat le plus adapté lors de l'étape de détermination selon un critère prédéterminé.
Selon un mode de réalisation particulier, les blocs de l'image précédant le bloc courant étant codés dans un ordre déterminé, l'identification précitée est fonction des pixels de l'image précédemment codés.
Une telle disposition permet ainsi de tenir compte d'informations de l'image qui sont déjà disponibles au moment du codage du bloc courant, augmentant ainsi les performances de l'identification des blocs prédicteurs candidats.
Selon un mode de réalisation préféré de l'invention, les pixels précédemment codés de l'image sont situés le long du bloc courant. Une telle disposition permet ainsi de minimiser les discontinuités susceptibles d'apparaître le long des frontières du bloc courant, tout en correspondant mieux à la réalité de l'image.
Selon un mode de réalisation particulier, le critère prédéterminé est la minimisation du coût débit-distorsion de l'image.
Le choix d'un tel critère optimise la prédiction effectuée au codage.
Selon un mode de réalisation particulier, le bloc courant est un bloc qui a été préalablement obtenu à la suite d'une prédiction.
Une telle disposition a pour but d'affiner davantage la prédiction du bloc courant de façon à obtenir des performances de codage optimisées.
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, un tel dispositif étant remarquable en ce qu'il comprend, pour un bloc courant à coder :
- un module de détermination, d'un ensemble de blocs prédicteurs candidats,
- pour au moins un bloc prédicteur candidat de l'ensemble :
· un module d'obtention d'un bloc résiduel représentatif de la différence entre le bloc prédicteur candidat et le bloc courant,
• un module d'identification, dans l'ensemble de blocs prédicteurs candidats, d'un bloc prédicteur candidat, en fonction du bloc résiduel courant obtenu,
• un module de sélection dudit au moins un bloc prédicteur candidat s'il est égal au bloc prédicteur identifié,
- un module de détermination, parmi les blocs prédicteurs candidats susceptibles d'avoir été sélectionnés à l'issue de l'étape de sélection, d'un bloc prédicteur candidat, à l'aide d'un critère prédéterminé,
- un module de codage du bloc résiduel représentatif de la différence entre le bloc prédicteur candidat déterminé et le bloc courant. Un tel dispositif de codage est apte à mettre en œuvre le procédé de codage précité.
L'invention concerne également un procédé de décodage d'un signal de données représentatif d'au moins une image découpée en blocs, un tel procédé comprenant les étapes de :
- détermination, dans le signal de données, de données représentatives d'un bloc résiduel courant associé à un bloc courant à décoder,
- décodage du bloc résiduel courant.
Le procédé de décodage selon l'invention est remarquable en ce qu'il comprend, pour un bloc courant à reconstruire, les étapes de :
- détermination d'un ensemble de blocs prédicteurs candidats,
- identification, dans l'ensemble précité, d'un bloc prédicteur candidat, une telle identification étant fonction dudit bloc résiduel courant décodé,
- reconstruction du bloc courant à l'aide du bloc prédicteur identifié et du bloc résiduel courant décodé.
Un avantage d'un tel procédé de décodage réside dans le fait que l'étape d'identification du bloc prédicteur apte à reconstruire le bloc courant est reproductible au décodage. Le signal de données reçu au décodeur ne contient avantageusement pas d'informations associées à ce bloc prédicteur identifié, ce qui réduit notablement le coût de signalisation de ces informations.
En outre, le fait que l'identification du bloc prédicteur soit fonction du bloc résiduel courant décodé permet une reconstruction fiable du bloc courant. Les caractéristiques des blocs prédicteurs candidats de l'ensemble déterminé étant très différentes les unes des autres, l'identification du bloc prédicteur retenu pour la reconstruction du bloc courant s'en trouve facilitée. Il en résulte un décodage de l'image de meilleure qualité.
Selon un mode de réalisation particulier, les blocs de l'image précédant le bloc courant étant décodés dans un ordre déterminé, l'identification d'un bloc prédicteur est fonction des pixels de l'image précédemment décodés.
Selon un autre mode de réalisation particulier, les pixels précédemment décodés de l'image sont situés le long du bloc courant. Selon un autre mode de réalisation particulier, le procédé de décodage comprend en outre une étape de détermination, dans le signal de données, d'une information associée à une prédiction préalable du bloc courant, ladite étape de reconstruction du bloc courant étant mise en œuvre à partir d'une telle prédiction préalable, du bloc prédicteur identifié et du bloc résiduel courant déterminé.
Une telle disposition permet d'affiner davantage la prédiction de façon à obtenir des performances de décodage optimisées.
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.
De façon correspondante, l'invention concerne aussi un dispositif de décodage d'un signal de données représentatif d'au moins une image découpée en blocs, un tel dispositif comprenant :
- un module de détermination, dans le signal de données, de données représentatives d'un bloc résiduel courant associé à un bloc courant à décoder,
- un module de décodage dudit bloc résiduel courant.
Un tel dispositif de décodage est remarquable en ce qu'il comprend, pour un bloc courant à reconstruire :
- un module de détermination d'un ensemble de blocs prédicteurs candidats,
- un module d'identification, dans ledit ensemble, d'un bloc prédicteur candidat, ladite identification étant fonction dudit bloc résiduel courant décodé,
- un module de reconstruction du bloc courant à l'aide du bloc prédicteur identifié et du bloc résiduel courant décodé.
Un tel dispositif de décodage est 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 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é.
Le procédé de décodage, le dispositif de codage, le dispositif de décodage, les programmes d'ordinateur et les supports d'enregistrement correspondants précités présentent au moins les mêmes avantages que ceux conférés par le procédé de codage et de décodage selon la présente invention. Brève description des dessins
D'autres caractéristiques et avantages apparaîtront à la lecture de modes de réalisation préférés décrits en référence aux figures dans lesquelles:
- les figures 1 A et 1 B représentent des étapes du procédé de codage selon un mode de réalisation de l'invention,
- la figure 2 représente un mode de réalisation d'un dispositif de codage selon l'invention apte à mettre en œuvre le procédé de codage des figures 1 A et 1 B,
- la figure 3 représente un exemple de partitionnement de l'image courante en plusieurs blocs de pixels,
- la figure 4 représente un mode de réalisation selon l'invention de l'étape d'identification d'un bloc prédicteur candidat en fonction du bloc résidu décodé courant obtenu,
- la figure 5 représente des étapes du procédé de codage selon un autre mode de réalisation de l'invention,
- la figure 6 représente un mode de réalisation d'un dispositif de codage selon l'invention apte à mettre en œuvre le procédé de codage de la figure 5,
- la figure 7 représente des étapes du procédé de décodage selon un mode de réalisation de l'invention,
- la figure 8 représente un mode de réalisation d'un dispositif de décodage selon l'invention apte à mettre en œuvre le procédé de décodage de la figure 7,
- la figure 9 représente des étapes du procédé de décodage selon un autre mode de réalisation de l'invention,
- la figure 10 représente un mode de réalisation d'un dispositif de décodage selon l'invention apte à mettre en œuvre le procédé de décodage de la figure 9.
Description détaillée d'un mode de réalisation 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 par exemple à la norme HEVC.
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 à la norme HEVC. Le procédé de codage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes C1 à C22 telles que représentées aux figures 1 A et 1 B.
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 C01 représenté à la figure 2.
Comme illustré en figure 2, un tel dispositif de codage comprend une mémoire MEM_C01 comprenant une mémoire tampon MT_C01 , une unité de traitement UT_C01 équipée par exemple d'un microprocesseur μΡ et pilotée par un programme d'ordinateur PG_C01 qui met en œuvre le procédé de codage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur PG_C01 sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur de l'unité de traitement UT_C01 .
Le procédé de codage représenté sur les figures 1 A et 1 B s'applique à toute image courante d'une séquence SQ d'images à coder.
Au cours d'une première étape C1 représentée à la figure 1 A, il est procédé, de façon connue en soi, au partitionnement d'une image courante ICj appartenant à la séquence SQ d'images ld , ICj, ... , I CM (1≤j≤M), en une pluralité de blocs B-i , B2, Bu, ... , Bs (1 <u≤S), par exemple de taille 64x64 pixels. Une telle étape de partitionnement est mise en œuvre par un module logiciel de partitionnement MP1 représenté sur la figure 2, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C01 .
L'image ICj ainsi partitionnée est représentée à la figure 3. Dans l'exemple représenté, l'image ICj est partitionnée en quatre blocs B-i , B2, B3 et B4.
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, par exemple dans le document « B. Bross, W.-J. Han, J.-R. Ohm, G. J. Sullivan, and T. Wiegand, "High efficiency video coding (HEVC) text spécification draft 10," document JCTVC-L1003 of JCT-VC, Genève, CH, 14-23 January 2013».
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, Bu, ..., Bs sont destinés à être codés selon un ordre de parcours prédéterminé, qui est par exemple du type raster scan. 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.
Au cours d'une étape C2 représentée à la figure 1A, le codeur CO1 sélectionne comme bloc courant un premier bloc à coder Bu de l'image ICj, tel que par exemple le premier bloc B-,.
Au cours d'une étape C3 représentée à la figure 1A, il est procédé selon l'invention à la détermination d'un ensemble de Q blocs prédicteurs candidats BP1 1 ; BP12, ..., BP1 V, ...,BP1 Q (1 <v≤Q). De tels blocs prédicteurs candidats sont par exemple des blocs de pixels qui ont été déjà codés ou non. De tels blocs sont préalablement stockés dans la mémoire tampon MT_CO1 du codeur telle que représentée à la figure 2. Dans l'exemple représenté, il s'agit en particulier d'un nombre prédéterminé de blocs qui ont été codés juste avant le bloc courant considéré.
Une telle étape de détermination est mise en œuvre par un module logiciel de détermination DET_CO1 représenté sur la figure 2, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_CO1 . Au cours d'une étape C4 représentée à la figure 1A, pour un bloc prédicteur candidat BP1 V considéré, il est procédé à la soustraction du bloc prédicteur candidat BP1 v du bloc courant Bu pour produire un bloc résidu Brv.
Au cours d'une étape C5 représentée à la figure 1A, il est procédé à la transformation du bloc résidu Brv selon une opération classique de transformation directe telle que par exemple une transformation en cosinus discrètes de type DCT, pour produire un bloc transformé Btv.
Au cours d'une étape C6 représentée à la figure 1A, il est procédé à la quantification du bloc transformé Btv selon une opération classique de quantification, telle que par exemple une quantification scalaire. Un bloc de coefficients quantifiés Bqv est alors obtenu.
Les étapes C4 à C6 sont mises en œuvre par un module logiciel de codage prédictif PRED_C01 représenté sur la figure 2, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C01 . Le module de codage prédictif PRED_C01 est apte à effectuer un codage prédictif du bloc courant, selon les techniques de prédiction classiques, telles que par exemple en mode Intra et/ou Inter.
Au cours d'une étape C7 représentée à la figure 1 A, il est procédé au codage entropique du bloc de coefficients quantifiés Bqv. Dans le mode préféré de réalisation, il s'agit d'un codage entropique CABAC. Une telle étape consiste à : a) lire le ou les symboles de l'ensemble prédéterminé de symboles qui sont associés audit bloc courant,
b) associer des informations numériques, telles que des bits, au(x) symbole(s) lu(s).
Une telle étape de codage entropique est mise en œuvre par un module logiciel de codage entropique MCE1 représenté sur la figure 2, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C01 . Le module de codage entropique MCE1 est par exemple de type CABAC. Il peut également s'agir d'un codeur de Huffman connu en tant que tel.
Au cours d'une étape C8 représentée à la figure 1A, il est procédé à la déquantification du bloc Bqv selon une opération classique de déquantification, qui est l'opération inverse de la quantification effectuée à l'étape C6. Un bloc de coefficients déquantifiés BDqv est alors obtenu.
Au cours d'une étape C9 représentée à la figure 1A, il est procédé à la transformation inverse du bloc de coefficients déquantifiés BDqv qui est l'opération inverse de la transformation directe effectuée à l'étape C5 ci- dessus. Un bloc résidu décodé BDrv est alors obtenu.
Les étapes C8 et C9 sont mises en œuvre par un module logiciel de codage prédictif inverse PRED"1_C01 représenté sur la figure 2, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C01 .
Du fait que pour le bloc courant Bu considéré, les étapes C4 à C9 sont réitérées pour chaque bloc prédicteur de l'ensemble de blocs prédicteurs BP1 1 ; BP12, ..., BP1 V, ...,BP1 Q, Q blocs résidus décodés BDr1 ; BDr2,..., BDrv, ...,BDrQ sont obtenus à l'issue de l'étape C9.
Au cours d'une étape C10 représentée à la figure 1A, il est procédé selon l'invention à l'identification, parmi l'ensemble des Q blocs prédicteurs BP1 -I , BP12, ..., BP1 V,...,BP1 Q, d'au moins un bloc prédicteur capable d'être retrouvé au décodage du bloc courant Bu. Selon l'invention, une telle étape d'identification est fonction du bloc résidu décodé courant BDrv obtenu.
Une telle étape d'identification est mise en œuvre par un module logiciel de calcul CAL1_C01 représenté sur la figure 2, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C01 .
Selon un mode particulier de réalisation représenté sur la figure 4, une telle identification consiste, pour un bloc résidu décodé courant BDrv, à construire un bloc décodé courant BDV,W en ajoutant au bloc résidu décodé courant BDrv un bloc prédicteur candidat BP1 w (1≤w≤Q).
Dans ce mode particulier, est appliqué un critère de minimisation de la différence entre les pixels décodés de l'image courante ICj, qui sont représentés par des points sur la figure 4, et les pixels du bloc décodé BDV,W le long de sa frontière F. Ce critère est un opérateur mathématique noté SM(BDv,w, ICj). L'opérateur SM(BDV,W, ICj) est en fait représentatif de l'erreur quadratique le long de la frontière F du bloc résiduel décodé BDrv avec l'image ICj.
Il s'écrit de la façon suivante : SM(BDViW, lCj)
N-1
= ^ BDV w(0, a)— lCj(lin— 1, col + α)
α=0
N-1
+ ^ ( 3Dv w(a, 0) — ICj lin + a, col — 1)
a=Q
OU
- BDv,w est le bloc décodé considéré de taille NxN pixels,
- BDv,w(n,m) est la valeur du pixel du bloc résidu décodé BDV,W situé sur la nième ligne et la mième colonne de ce bloc,
- ICj est l'image courante,
- ICj(k,l) est la valeur du pixel de l'image ICj situé sur la k ième ligne et la I ième colonne de cette image, et (lin, col) sont les coordonnées du bloc décodé BDv,wdans l'image ICj.
A titre d'alternative, on peut utiliser un critère simplifié, où l'on vient comparer la moyenne des pixels de l'image ICj le long de la frontière F et la moyenne des pixels du bloc décodé BDV,W- L'opérateur SM(BDV,W, ICj) s'écrit alors :
SM(BDViW, lCj)
N-1
abs ( Cj(lin— 1, col + a)
(2N - 11))
a=0
N-1 N-1
+ ICjÇlin + a, col - 1)) - ^ ^ BDV
a=0 b=0
Où abs() représente la valeur absolue.
Au cours de l'étape C10, il est procédé à la détermination du bloc décodé BDv.wmin qui minimise l'un des deux critères précités choisis, tel que :
Kmin = argminK 5 (BDuK, PDICj)
Le bloc B Dv.wmin est égal à la somme du bloc prédicteur candidat BP1 wmin et du bloc résidu décodé courant BDrv.
Au cours d'une étape C1 1 représentée à la figure 1 A, il est procédé à la comparaison du bloc prédicteur candidat identifié BP1 wmin avec le bloc prédicteur candidat BP1 V associée au bloc résidu décodé BDrv. Une telle étape de comparaison est mise en œuvre par un module logiciel de calcul CAL2_C01 représenté sur la figure 2, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C01 .
Pour le bloc courant Bu considéré, les étapes C4 à C1 1 sont réitérées pour chaque bloc prédicteur de l'ensemble de blocs prédicteurs BP1 i, BP12, ..., BP1 V, ...,BP1 Q déterminé à l'étape C3.
Dans le cas où il y a identité entre le bloc BP1 Wmin et le bloc BP1 V, il est procédé, au cours d'une étape C12a) représentée à la figure 1A, à la sélection du bloc BP1 Wmin qui devient un bloc prédicteur identifié.
Dans le cas où il n'y a pas identité entre le bloc BP1 wmin et le bloc BP1 V, le bloc BPI wmin n'est pas sélectionné en tant que bloc prédicteur identifié.
A l'issue de l'étape de sélection C12a), une pluralité T de blocs prédicteurs identifiés BP1 i , BP12, BP1 Z, BP1 T est obtenue, où 1 <z≤T≤Q.
Au cours d'une étape C13 représentée à la figure 1 B, il est procédé à la détermination, parmi tous les blocs prédicteurs BP1 -, , BP12, BP1 Z, BP1 T qui ont été obtenus à l'étape C12a), d'un bloc prédicteur candidat préférentiel BP1 opt, à l'aide de la minimisation d'un critère prédéterminé. Un tel critère s'exprime par l'équation (1 ) ci-dessous:
(1 ) J=D+AR où
D représente la distorsion entre le bloc courant Bi original et le bloc Bi reconstruit, R représente le coût en bits du codage des paramètres de codage utilisés pour coder le bloc Bi et λ représente un multiplicateur de Lagrange dont la valeur est fixée au codeur.
Selon une variante particulièrement avantageuse d'un point de vue réduction du temps de calcul au codeur, le critère de performance prédéterminé ne dépend que de la distorsion et s'exprime par l'équation (2) ci- dessous :
(2) J'=D.
Les critères J et J' sont calculés classiquement par simulation par un module de calcul CAL3_C01 représenté sur la figure 2, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C01 . Au cours d'une étape C14 représentée à la figure 1 B, le module prédictif PRED_C01 de la figure 2 procède à la soustraction du bloc prédicteur candidat préférentiel BP1 opt du bloc courant Bu pour produire un bloc résidu Broptu- Au cours d'une étape C15 représentée à la figure 1 B, le module
PRED_C01 de la figure 2 procède à la transformation du bloc résidu Broptu selon une opération classique de transformation directe telle que par exemple une transformation en cosinus discrètes de type DCT, pour produire un bloc transformé Btoptu- Au cours d'une étape C16 représentée à la figure 1 B, le module
PRED_C01 de la figure 2 procède à la quantification du bloc transformé Btoptu selon une opération classique de quantification, telle que par exemple une quantification scalaire. Un bloc de coefficients quantifiés Bqoptu est alors obtenu.
Au cours d'une étape C17 représentée à la figure 1 B, le module de codage entropique MCE1 de la figure 2 procède au codage entropique du bloc de coefficients quantifiés Bqoptu-
Un flux de données φ qui contient les données encodées du bloc de coefficients quantifiés Bqoptu est alors délivré à l'issue de l'étape C17. Un tel flux est ensuite transmis par un réseau de communication (non représenté), à un terminal distant. Celui-ci comporte le décodeur D01 représenté à la figure 7. De façon connue en soi, le flux φ comprend en outre certaines informations encodées par le codeur C01 , telles que le type de prédiction (inter ou intra), et le cas échéant, le mode de prédiction, le type de partitionnement du bloc si ce dernier a été partitionné, l'indice d'image de référence et le vecteur de déplacement utilisés dans le mode de prédiction inter.
Au cours d'une étape C18 représentée à la figure 1 B, le module PRED"1_C01 de la figure 2 procède à la déquantification du bloc Bqoptu selon une opération classique de déquantification, qui est l'opération inverse de la quantification effectuée à l'étape C16. Un bloc de coefficients déquantifiés BDqoptu est alors obtenu.
Au cours d'une étape C19 représentée à la figure 1 B, le module PRED"1_C01 de la figure 2 procède à la transformation inverse du bloc de coefficients déquantifiés BDqoptu qui est l'opération inverse de la transformation directe effectuée à l'étape C15 ci-dessus. Un bloc résidu décodé BDroptu est alors obtenu.
Au cours d'une étape C20 représentée à la figure 1 B, il est procédé à la construction du bloc décodé BDU en ajoutant au bloc prédicteur candidat préférentiel BP1 opt le bloc résidu décodé BDroptu- H est à noter que ce dernier bloc 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é BDU est alors stocké dans la mémoire tampon MT_C01 de la figure 2, afin d'être utilisé par le codeur C01 comme bloc prédicteur candidat d'un bloc suivant à coder.
Au cours d'une étape C21 représentée à la figure 1 B, le codeur C01 teste si le bloc courant Bu qui vient d'être codé est le dernier bloc de l'image Si le bloc courant est le dernier bloc de l'image ICj, au cours d'une étape suivante C22 représentée à la figure 1 B, il est mis fin au procédé de codage.
Si tel n'est pas le cas, il est procédé à nouveau à l'étape de sélection C2 du bloc suivant à coder conformément à l'ordre de parcours raster scan précité, puis les étapes C3 à C21 sont réitérées pour ce bloc suivant sélectionné.
Les étapes de codage qui viennent d'être décrites ci-dessus sont mises en œuvre pour tous les blocs B-i , B2, Bu, ..., Bs à coder de l'image courante ICj considérée.
Description détaillée d'un autre mode de réalisation de la partie codage Cet autre mode de réalisation se distingue du mode de réalisation précédent en ce qu'il met en œuvre deux types de prédiction qui vont être décrites ci-dessous en référence à la figure 5. Le procédé de codage selon cet autre mode de réalisation est représenté sous la forme d'un algorithme comportant des étapes C'1 à C'9 telles que représentées à la figure 5. Le procédé de codage selon cet autre mode de réalisation de l'invention est implémenté dans un dispositif de codage C02 représenté à la figure 6.
Comme illustré en figure 6, un tel dispositif de codage C02 comprend une mémoire MEM_C02 comprenant une mémoire tampon MT_C02, une unité de traitement UT_C02 équipée par exemple d'un microprocesseur μΡ et pilotée par un programme d'ordinateur PG_C02 qui met en œuvre le procédé de codage selon cet autre mode de réalisation. A l'initialisation, les instructions de code du programme d'ordinateur PG_C02 sont par exemple chargées dans une mémoire RAM (non représentée) avant d'être exécutées par le processeur de l'unité de traitement UT_C02.
Le procédé de codage représenté sur la figure 5 s'applique à toute image courante d'une séquence SQ d'images à coder.
Au cours d'une étape C'1 représentée à la figure 5, il est procédé au partitionnement d'une image courante ICj appartenant à la séquence SQ d'images ld , ICj, ..., I CM (1≤j≤M), en une pluralité de blocs B-i , B2, Bu, ..., Bs (1 <u≤S), par exemple de taille 64x64 pixels. Une telle étape de partitionnement est mise en œuvre par un module logiciel de partitionnement MP2 représenté sur la figure 6, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C02. L'étape C'1 étant identique à l'étape C1 de la figure 1 A, elle ne sera pas décrite plus longuement.
Comme dans le mode de réalisation des figures 1 A et 1 B, lesdits blocs B-i , B2, Bu, ... , Bs sont destinés à être codés selon un ordre de parcours prédéterminé, qui est par exemple du type raster scan. Cela signifie que les blocs sont codés les uns après les autres, de la gauche vers la droite.
Au cours d'une étape C'2 représentée à la figure 5, le codeur C02 sélectionne comme bloc courant un premier bloc à coder Bu de l'image ICj, tel que par exemple le premier bloc B-i .
Au cours d'une étape C'3 représentée à la figure 5, il est procédé, de façon connue en soi, à la prédiction du bloc courant Bu par des techniques classiques de prédiction intra et/ou inter à l'aide d'un bloc prédicteur BP1 sei - Une telle prédiction sera appelée « prédiction primaire » dans la suite de la description.
L'étape de prédiction précitée permet de construire un bloc résidu Br1 u qui est obtenu par calcul de la différence entre le bloc courant Bu et le bloc prédicteur BP1 se|.
L'étape C'3 est mise en œuvre par un module logiciel de codage prédictif PRED1_C02 représenté sur la figure 6, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C02.
Au cours d'une étape C'4 représentée à la figure 5, conformément à l'invention, il est procédé à la détermination d'un ensemble de Q blocs prédicteurs candidats BP21 ; BP22, ..., BP2V,...,BP2Q (1 <V≤Q). Une telle étape étant identique à l'étape de détermination C3 de la figure 1 A, elle ne sera pas décrite plus longuement.
Une telle étape de détermination C'4 est mise en œuvre par un module logiciel de détermination DET_C02 représenté sur la figure 6, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C02.
Au cours d'une étape C'5 représentée à la figure 5, conformément à l'invention, il est procédé à une prédiction du bloc résidu Br1 u en mettant en œuvre les étapes C4 à C13 décrites ci-dessus en liaison avec les figures 1 A et 1 B. Une telle prédiction sera appelée « prédiction secondaire » dans la suite de la description.
Au cours de cette prédiction secondaire, un bloc prédicteur candidat préférentiel BP2opt est sélectionné.
En référence à la figure 6, l'étape C'5 est mise en œuvre à l'aide :
- d'un module logiciel de prédiction PRED2_C02 qui est identique au module PRED_CO de la figure 2,
- d'un module logiciel de codage entropique MCE2_C02 qui est identique au module MCE1 de la figure 2,
- d'un module logiciel de prédiction inverse PRED2"1_C02 qui est identique au module PRED"1_C01 de la figure 2,
- d'un module logiciel de calcul CAL1_C02 qui est identique au module CAL1_C01 de la figure 2,
- d'un module logiciel de calcul CAL2_C02 qui est identique au module CAL2_C01 de la figure 2. Au cours d'une étape C'6 représentée à la figure 5, conformément à l'invention, il est procédé au test de l'efficacité du bloc prédicteur candidat préférentiel BP2opt qui a été sélectionné.
L'étape de test C'6 est mise en œuvre par un module logiciel de calcul CAL4_C02 représenté sur la figure 6, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C02.
Dans un mode préféré de réalisation, un tel test consiste à vérifier si l'énergie du bloc Br1 u-BP2opt est inférieure à un seuil qui correspond à la valeur de l'énergie du bloc Br1 u.
Si le test négatif, le codage du bloc courant Bu se poursuit de manière classique.
Si le test est positif, cela signifie que le bloc prédicteur candidat préférentiel BP2opt est proche du bloc original courant Bu. Par conséquent, la prédiction secondaire est appliquée au bloc courant Bu.
Test négatif
Dans le cas où le test effectué à l'étape C'6 est négatif, au cours d'une étape C'610 représentée à la figure 5, il est procédé à la transformation du bloc résidu Br1 u selon une opération classique de transformation directe telle que par exemple une transformation en cosinus discrètes de type DCT, pour produire un bloc transformé Bt1 u.
Au cours d'une étape C'61 1 représentée à la figure 5, il est procédé à la quantification du bloc transformé Bt1 u selon une opération classique de quantification, telle que par exemple une quantification scalaire. Un bloc de coefficients quantifiés Bq1 u est alors obtenu.
Les étapes C'610 et C'61 1 sont mises en œuvre par le module logiciel de codage prédictif PRED1_C02 représenté sur la figure 6.
Au cours d'une étape C'612 représentée à la figure 5, il est procédé au codage entropique du bloc de coefficients quantifiés Bq1 u par un module logiciel de codage entropique MCE1_C02 identique au module logiciel de codage entropique MCE_C01 de la figure 2. En outre, un indicateur Id associé au bloc prédicteur candidat préférentiel BP2opt est codé selon une première valeur prédéterminée (bit à 0 par exemple) pour signaler que la prédiction secondaire n'a pas été appliquée. Un flux de données φ1 , qui contient les données encodées du bloc de coefficients quantifiés Bq1 i ainsi que le bit à 0 de l'indicateur Id, est alors délivré à l'issue de l'étape C'612. Un tel flux est ensuite transmis par un réseau de communication (non représenté), à un terminal distant. Celui-ci comporte le décodeur D02 représenté à la figure 10. De façon connue en soi, le flux φ1 contient des informations encodées par le codeur C02, telles que le type de prédiction (inter ou intra), et le cas échéant, le mode de prédiction, le type de partitionnement d'un bloc ou macrobloc si ce dernier a été partitionné, l'indice d'image de référence et le vecteur de déplacement utilisés dans le mode de prédiction inter.
Au cours d'une étape C'613 représentée à la figure 5, il est procédé à la déquantification du bloc Bq1 u selon une opération classique de déquantification, qui est l'opération inverse de la quantification effectuée à l'étape C'61 1 . Un bloc de coefficients déquantifiés BDq1 u est alors obtenu. Au cours d'une étape C'614 représentée à la figure 5, il est procédé à la transformation inverse du bloc de coefficients déquantifiés BDq1 u qui est l'opération inverse de la transformation directe effectuée à l'étape C'610 ci- dessus. Un bloc résidu décodé BDr1 u est alors obtenu.
Les étapes C'613 et C'614 sont mises en œuvre par un module logiciel de codage prédictif inverse PRED1 "1_C02 représenté sur la figure 6, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_C02. Un tel module est identique au module logiciel PRED"1_C01 de la figure 2.
Au cours d'une étape C7 représentée à la figure 5, il est procédé à la construction du bloc décodé BDU en ajoutant au bloc prédicteur BP1 sei le bloc résidu décodé BDr1 u. Le bloc décodé BDU est alors stocké dans la mémoire tampon MT_C02 de la figure 6, afin d'être utilisé par le codeur C02 comme bloc prédicteur candidat à une prédiction secondaire d'un bloc résidu décodé suivant.
Au cours d'une étape C'8 représentée à la figure 5, le codeur C02 teste si le bloc courant Bu qui vient d'être codé est le dernier bloc de l'image ICj.
Si le bloc courant Bu est le dernier bloc de l'image ICj, au cours d'une étape C'9 représentée à la figure 5, il est mis fin au procédé de codage. Si tel n'est pas le cas, il est procédé à nouveau à l'étape de sélection C'2 du bloc suivant à coder conformément à l'ordre de parcours raster scan précité, puis les étapes C'3 à C'6 sont réitérées pour ce bloc suivant sélectionné.
Test positif
Si le test effectué à l'étape C'6 est positif, au cours d'une étape C'620 représentée à la figure 5, le module PRED2_C02 de la figure 6 procède à la soustraction du bloc prédicteur candidat préférentiel BP2opt du bloc résidu Br1 u pour produire un bloc résidu Br2optu- Au cours d'une étape C'621 représentée à la figure 5, le module
PRED2_C02 de la figure 6 procède à la transformation du bloc résidu Br2optu selon une opération classique de transformation directe telle que par exemple une transformation en cosinus discrètes de type DCT, pour produire un bloc transformé Bt2optu- Au cours d'une étape C'622 représentée à la figure 5, le module
PRED2_C02 de la figure 6 procède à la quantification du bloc transformé Bt2optu selon une opération classique de quantification, telle que par exemple une quantification scalaire. Un bloc de coefficients quantifiés Bq2optu est alors obtenu.
Au cours d'une étape C'623 représentée à la figure 5, le module de codage entropique MCE2_C02 de la figure 6 procède au codage entropique du bloc de coefficients quantifiés Bq2optu- En outre, l'indicateur Id associé au bloc prédicteur candidat préférentiel BP2opt est codé selon une seconde valeur prédéterminée (bit à 1 par exemple) pour signaler que la prédiction secondaire a été appliquée.
Un flux de données φ2, qui contient les données encodées du bloc de coefficients quantifiés Bq2optu ainsi que le bit à 1 de l'indicateur Id, est alors délivré à l'issue de l'étape C'623. Un tel flux est ensuite transmis par un réseau de communication (non représenté) au décodeur D02 représenté à la figure 10.
Au cours d'une étape C'624 représentée à la figure 5, le module PRED2"1_C02 de la figure 6 procède à la déquantification du bloc Bq2optu selon une opération classique de déquantification, qui est l'opération inverse de la quantification effectuée à l'étape C'622. Un bloc de coefficients déquantifiés BDq2optu est alors obtenu.
Au cours d'une étape C'625 représentée à la figure 5, le module PRED2"1_C02 de la figure 6 procède à la transformation inverse du bloc de coefficients déquantifiés BDq2optu qui est l'opération inverse de la transformation directe effectuée à l'étape C'621 ci-dessus. Un bloc résidu décodé BDr2optu est alors obtenu.
Au cours de l'étape C7 mentionnée plus haut, il est procédé à la construction du bloc décodé BDU en ajoutant au bloc prédicteur candidat préférentiel BP2opt le bloc résidu décodé BDr2optu- Le bloc décodé BDU ainsi construit est alors stocké dans la mémoire tampon MT_C02 de la figure 6, afin d'être utilisé par le codeur C02 comme bloc prédicteur candidat à une prédiction secondaire d'un bloc résidu décodé suivant.
Au cours de l'étape C'8 représentée à la figure 5, le codeur C02 teste si le bloc courant Bu qui vient d'être codé est le dernier bloc de l'image ICj.
Si le bloc courant est le dernier bloc de l'image ICj, au cours de l'étape C'9 représentée à la figure 5, il est mis fin au procédé de codage.
Si tel n'est pas le cas, il est procédé à nouveau à l'étape de sélection C'2 du bloc suivant à coder conformément à l'ordre de parcours raster scan précité, puis les étapes C'3 à C'6 sont réitérées pour ce bloc suivant sélectionné.
Les étapes de codage qui viennent d'être décrites ci-dessus sont mises en œuvre pour tous les blocs B-i , B2, Bu, ..., Bs à coder de l'image courante ICj considérée.
Description détaillée d'un mode de réalisation de la partie décodage
Un mode de réalisation du procédé de décodage selon l'invention va maintenant être décrit, dans lequel le procédé de décodage est implémenté de manière logicielle ou matérielle par modifications d'un décodeur initialement conforme à la norme HEVC. Le procédé de décodage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes D1 à D1 1 telles que représentées à la figure 8. Comme illustré en figure 7, un décodeur D01 selon l'invention comprend une mémoire MEM_D01 comprenant une mémoire tampon MT_D01 , une unité de traitement UT_D01 équipée par exemple d'un microprocesseur μΡ et pilotée par un programme d'ordinateur PG_D01 qui met en œuvre le procédé de décodage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur PG_D01 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement UT_D01 .
Le procédé de décodage représenté sur la figure 8 s'applique à toute image courante d'une séquence SQ d'images à décoder.
A cet effet, des informations représentatives de l'image courante ICj à décoder sont identifiées dans le flux φ reçu au décodeur.
En référence à la figure 8, la première étape de décodage D1 est l'identification dans ledit flux φ des données encodées Bq ; Bq2, ..., Bqu, ...Bqs associées respectivement aux blocs résiduels Bn, Br2, Bru,..., Brs codés précédemment conformément au parcours raster scan précité, selon le procédé de codage représenté sur les figures 1A et 1 B.
Une telle étape d'identification est mise en œuvre par un module d'identification MI_D01 telle que représenté à la figure 8, ledit module étant pilotée par le microprocesseur μΡ de l'unité de traitement UT_D01 .
Lesdits blocs Bq ; Bq2, Bqu, ..., Bqs sont destinés à être décodés selon un ordre de parcours prédéterminé, qui est par exemple du type séquentiel, c'est à dire qu'ils sont destinés à être décodés l'un après l'autre dans l'ordre raster scan où ils ont été codés.
D'autres types de parcours que celui qui vient d'être décrit ci-dessus sont bien sûr possibles et dépendent de l'ordre de parcours choisi au codage, dont des exemples ont été mentionnés plus haut.
Au cours d'une étape D2 représentée à la figure 8, le décodeur D01 sélectionne comme bloc courant un premier bloc à coder Bqu de l'image ICj, tel que par exemple le premier bloc Bq-, .
Au cours d'une étape D3 représentée à la figure 8, il est procédé au décodage entropique du bloc Bqu. Dans le mode préféré de réalisation, il s'agit d'un décodage entropique CABAC. Une telle étape consiste à : a) lire le ou les symboles de l'ensemble prédéterminé de symboles qui sont associés audit bloc résiduel courant,
b) associer des informations numériques, telles que des bits, au(x) symbole(s) lu(s).
Une telle étape de décodage entropique est mise en œuvre par un module logiciel de décodage entropique MDE1 représenté sur la figure 7, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_D01 . Le module de codage entropique MDE1 est par exemple de type CABAC. Il peut également s'agir d'un décodeur de Huffman connu en tant que tel.
Au cours d'une étape D4 représentée à la figure 8, il est procédé à la déquantification du bloc BDqu selon une opération classique de déquantification, qui est l'opération inverse de la quantification effectuée à l'étape C16 de la figure 1 B. Un bloc déquantifié décodé BDtu est alors obtenu.
Au cours d'une étape D5 représentée à la figure 8, il est procédé à la transformation inverse du bloc déquantifié décodé BDtu qui est l'opération inverse de la transformation directe effectuée à l'étape C15 de la figure 1 B. Un bloc résidu décodé BDru est alors obtenu.
Les étapes D4 et D5 sont mises en œuvre par un module logiciel de décodage prédictif inverse PRED"1_D01 représenté sur la figure 7, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_D01 .
Au cours d'une étape D6 représentée à la figure 8, il est procédé selon l'invention à la détermination d'un ensemble de Q blocs prédicteurs candidats BP1 i, BP12, ..., BP1 V,...,BP1 Q (1 <V≤Q). De tels blocs prédicteurs candidats sont par exemple des blocs de pixels qui ont été déjà décodés ou non. De tels blocs sont préalablement stockés dans la mémoire tampon MT_D01 du décodeur telle que représentée à la figure 7. Dans l'exemple représenté, il s'agit en particulier d'un nombre prédéterminé de blocs qui ont été décodés juste avant le bloc courant à décoder considéré.
Une telle étape de détermination est mise en œuvre par un module logiciel de détermination DET_D01 représenté sur la figure 7, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_D01 . Au cours d'une étape D7 représentée à la figure 8, il est procédé selon l'invention à l'identification, parmi l'ensemble des Q blocs prédicteurs BP1 ; BP12, ..., BP1 v, ...,BP1 Q, d'un bloc prédicteur candidat préférentiel BP1 opt. Selon l'invention, de la même façon qu'au codage précité, une telle étape d'identification est fonction du bloc résidu décodé BDru obtenu.
Ladite étape d'identification est mise en œuvre par un module logiciel de calcul CAL1_D01 représenté sur la figure 7, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_D01 .
De la même façon qu'au procédé de codage décrit en référence aux figures 1 A et 1 B, une telle identification consiste, pour un bloc résidu décodé courant BDru, à construire un bloc décodé courant BDU>W en ajoutant au bloc résidu décodé courant BDru un bloc prédicteur candidat BP1 W (1 <w≤Q).
Dans ce mode particulier, et de façon correspondante au codage, est appliqué un critère de minimisation de la différence entre les pixels décodés de l'image courante ICj, qui sont représentés par des points sur la figure 4, et les pixels du bloc décodé BDU>W situés le long de sa frontière F. Ce critère est un opérateur mathématique noté SM(BDUiW, ICj). L'opérateur SM(BDUiW, ICj) est en fait représentatif de l'erreur quadratique le long de la frontière F du bloc résiduel décodé BDru avec l'image ICj.
II s'écrit de la façon suivante :
SM(BDu>w, ICj)
N-l
= ^ (BDUiW(0, a) — ICj lin— 1, col + a))
a=0
N-l
+ ^ (BDu w(CL, 0) - ICj (lin + a, col - 1))
a=0
où :
- BDU>W est le bloc décodé considéré de taille NxN pixels,
- BDu,w(n,m) est la valeur du pixel du bloc résidu décodé BDU>W situé sur la nième ligne et la mième colonne de ce bloc,
- ICj est l'image courante,
- ICj(k,l) est la valeur du pixel de l'image ICj situé sur la k ième ligne et la I ième colonne de cette image, et (lin, col) sont les coordonnées du bloc décodé BDu>wdans l'image ICj. A titre d'alternative, on peut utiliser un critère simplifié, où l'on vient comparer la moyenne des pixels de l'image ICj le long de la frontière F et la moyenne des pixels du bloc décodé BDU>W. L'opérateur SM(BDUiW, ICj) s'écrit alors :
SM(BDu>w, ICj)
N-1
(2N _ ^ ^ {iCj Çlin - 1, col + a)
a=Q
N-1 N-1
+ iq (lin + a, col - ï)) -— ^ ^ (BDUIW (a, b))
a=0 b=0
Où abs() représente la valeur absolue.
Au cours de l'étape D7, il est procédé à l'identification du bloc décodé BDv.wmin qui minimise l'un des deux critères précités choisis, tel que :
wmin = argminw SM{BDu w, lCj)
Le bloc BDv.wmin est égal à la somme du bloc prédicteur candidat BP1 wmin et du bloc résidu décodé courant BDrv.
A l'issue de l'étape D7, le bloc prédicteur candidat BP1 Wmin est considéré comme le bloc prédicteur préférentiel candidat BP1 opt en vue de la prédiction inverse du bloc résidu décodé courant BDru.
Au cours d'une étape D8 représentée à la figure 8, il est procédé à la reconstruction du bloc courant Bu en ajoutant au bloc résiduel courant décodé BDru le bloc prédicteur candidat préférentiel BP1 opt identifié à l'étape D7.
Ladite étape D8 est mise en œuvre par un module logiciel de calcul CAL2_DO1 représenté sur la figure 7, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_DO1 .
Un bloc décodé BDU est alors obtenu et stocké dans la mémoire tampon MT_DO1 de la figure 7, afin d'être utilisé par le décodeur DO1 comme bloc prédicteur candidat d'un bloc suivant à décoder.
Au cours d'une étape D9 représentée à la figure 8, ledit bloc décodé BDU est écrit dans une image décodée I Dj. Une telle étape est mise en œuvre par un module logiciel URI1 de reconstruction d'image tel que représenté sur la figure 7, ledit module étant piloté par le microprocesseur μΡ du module de traitement UT DO1 . Au cours d'une étape suivante D10 représentée à la figure 8, le décodeur D01 teste si le bloc courant BDU qui vient d'être décodé est le dernier bloc contenu dans le flux φ.
Si tel est le cas, au cours d'une étape D1 1 représentée à la figure 8, il est mis fin au procédé de décodage.
Si tel n'est pas le cas, il est procédé, au cours de l'étape D2, à la sélection du bloc résiduel suivant à décoder conformément à l'ordre de parcours raster scan précité.
Les étapes de décodage qui viennent d'être décrites ci-dessus sont mises en œuvre pour tous les blocs Bq ; Bq2, Bqu, ..., Bqs à décoder de l'image courante ICj considérée.
Description détaillée d'un autre mode de réalisation de la partie décodage
Un autre mode de réalisation du procédé de décodage selon l'invention va maintenant être décrit, dans lequel le procédé de décodage est implémenté de manière logicielle ou matérielle par modifications d'un décodeur initialement conforme à la norme HEVC. Le procédé de décodage selon l'invention est représenté sous la forme d'un algorithme comportant des étapes D'1 à D7 telles que représentées à la figure 9.
Comme illustré en figure 10, un décodeur D02 selon cet autre mode de réalisation de l'invention comprend une mémoire MEM_D02 comprenant une mémoire tampon MT_D02, une unité de traitement UT_D02 équipée par exemple d'un microprocesseur μΡ et pilotée par un programme d'ordinateur PG_D02 qui met en œuvre le procédé de décodage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur PG_D02 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement UT_D02.
Le procédé de décodage représenté sur la figure 9 s'applique à toute image courante d'une séquence SQ d'images à décoder.
A cet effet, des informations représentatives de l'image courante ICj à décoder sont identifiées dans un flux de données φ1 ou φ2 reçu au décodeur, tel que délivré à la suite du procédé de codage de la figure 5. En référence à la figure 9, la première étape de décodage D'1 est l'identification :
- dans ledit flux φ1 des données encodées Bq1 1 , Bq12,..., Bq1 u, ...Bq1 s (1≤u≤S) associées respectivement aux blocs résiduels Br , Br12, Br1 u, ..., Br1 s codés précédemment conformément au parcours raster scan précité, dans le cas où a été mise en œuvre la prédiction primaire du procédé de codage de la figure 5,
- dans ledit flux φ2 des données encodées Bq2opti , Bq2opt2, - - - , Bq2optu, ...Bq2opts (1≤u≤S) associées respectivement aux blocs résiduels Br2opti , Br2opt2,■ Br2optu, - - - , Br2opts codés précédemment conformément au parcours raster scan précité, dans le cas où a été mise en œuvre la prédiction secondaire du procédé de codage représenté sur la figure 5.
Une telle étape d'identification est mise en œuvre par un module d'identification MI_D02 telle que représenté à la figure 10, ledit module étant piloté par le microprocesseur μΡ de l'unité de traitement UT_D02.
Lesdits blocs Bq1 1 ; Bq12, Bq1 u, ..., Bq1 s ou Bq2opti , Bq2opt2, . . . , Bq2optu, ...Bq2opts sont destinés à être décodés selon un ordre de parcours prédéterminé, qui est par exemple séquentiel, c'est à dire que les blocs sont destinés à être décodés l'un après l'autre conformément à l'ordre raster scan où ils ont été codés.
D'autres types de parcours que celui qui vient d'être décrit ci-dessus sont bien sûr possibles et dépendent de l'ordre de parcours choisi au codage, dont des exemples ont été mentionnés plus haut.
Au cours d'une étape D'2 représentée à la figure 9, le décodeur D02 sélectionne comme bloc courant un premier bloc à coder Bq1 u ou Bq2optu de l'image ICj, tel que par exemple le premier bloc Bq1 u ou Bq2optu-
Au cours d'une étape D'3 représentée à la figure 9, il est procédé à la lecture, dans le flux φ1 ou φ2, de l'indice Id associé au bloc Bqu sélectionné.
Une telle étape de lecture est mise en œuvre par un module logiciel de lecture ML_D02 telle que représenté à la figure 10, ledit module étant piloté par le microprocesseur μΡ de l'unité de traitement UT_D02.
Si l'indice Id est égal à zéro, cela signifie que le bloc courant à décoder a subi une prédiction primaire conformément aux étapes C'610 à C'614 du procédé de codage représenté sur la figure 5. C'est donc le flux φ1 que le décodeur D02 est destiné à traiter.
Si l'indice Id est égal à un, cela signifie que le bloc courant à décoder a subi une prédiction secondaire conformément aux étapes C'5 à C'625 du procédé de codage représenté sur la figure 5. C'est donc le flux φ2 que le décodeur D02 est destiné à traiter. cas où ld=Q
Au cours d'une étape D'310 représentée à la figure 9, il est procédé au décodage entropique du bloc Bq1 u. Une telle étape étant identique à l'étape D3 précitée, elle ne sera pas décrite plus longuement.
Une telle étape de décodage entropique est mise en œuvre par un module logiciel de décodage entropique MDE1_D02 représenté sur la figure 10, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_D02. Le module de codage entropique MDE1_D02 est par exemple de type CABAC. Il peut également s'agir d'un décodeur de Huffman connu en tant que tel.
Au cours d'une étape D'31 1 représentée à la figure 9, il est procédé à la déquantification du bloc BDq1 u. Une telle étape étant identique à l'étape D4 précitée, elle ne sera pas décrite plus longuement. Un bloc déquantifié décodé BDt1 u est alors obtenu.
Au cours d'une étape D'312 représentée à la figure 9, il est procédé à la transformation inverse du bloc déquantifié décodé BDt1 u. Une telle étape étant identique à l'étape D5 précitée, elle ne sera pas décrite plus longuement. Un bloc résidu décodé BDr1 u est alors obtenu.
Au cours d'une étape D'4 représentée à la figure 9, il est procédé, de façon connue en soi, à la reconstruction du bloc courant Bu par des techniques classiques de prédiction intra et/ou inter à l'aide d'un bloc prédicteur BP1 sei- Une telle étape consiste à ajouter au bloc résiduel courant décodé BDr1 u le bloc prédicteur BP1 sei sélectionné classiquement.
Un bloc décodé BDU est alors obtenu à la suite de l'étape D'4 et stocké dans la mémoire tampon MT_D02 de la figure 10, afin d'être utilisé par le décodeur D02 comme bloc prédicteur candidat d'un bloc suivant à décoder. Les étapes D'31 1 à D'4 sont mises en œuvre par un module logiciel de décodage prédictif inverse PRED1 "1_D02 représenté sur la figure 10, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_D02.
Au cours d'une étape D'5 représentée à la figure 9, ledit bloc décodé BDU est écrit dans une image décodée IDj. Une telle étape est mise en œuvre par un module logiciel URI2 de reconstruction d'image tel que représenté sur la figure 10, ledit module étant piloté par le microprocesseur μΡ du module de traitement UT_D02.
Au cours d'une étape suivante D'6 représentée à la figure 9, le décodeur D02 teste si le bloc courant BDU qui vient d'être décodé est le dernier bloc contenu dans le flux φ1 .
Si tel est le cas, au cours d'une étape D7 représentée à la figure 9, il est mis fin au procédé de décodage.
Si tel n'est pas le cas, il est procédé, au cours de l'étape D'2, à la sélection du bloc résiduel suivant Bq1 u à décoder conformément à l'ordre séquentiel précité. Le procédé de décodage décrit ci-dessus est alors itéré pour l'ensemble des S blocs à décoder.
Cas où ld=1
Au cours d'une étape D'320 représentée à la figure 9, il est procédé au décodage entropique du bloc Bq2optu- Une telle étape étant identique à l'étape D3 précitée, elle ne sera pas décrite plus longuement. Un bloc quantifié décodé BDq2optu est alors obtenu à l'issue de cette étape.
Une telle étape de décodage entropique est mise en œuvre par un module logiciel de décodage entropique MDE2_D02 représenté sur la figure 10.
Au cours d'une étape D'321 représentée à la figure 9, il est procédé à la déquantification du bloc BDq2optu- Une telle étape étant identique à l'étape D4 précitée, elle ne sera pas décrite plus longuement. Un bloc déquantifié décodé BDt2optu est alors obtenu.
Au cours d'une étape D'322 représentée à la figure 9, il est procédé à la transformation inverse du bloc déquantifié décodé BDt2optu- Une telle étape étant identique à l'étape D5 précitée, elle ne sera pas décrite plus longuement. Un bloc résidu décodé BDr2optu est alors obtenu. Ledit bloc résiduel décodé BDr2optu est alors stocké dans la mémoire tampon MT_D02 de la figure 10, afin d'être utilisé par le décodeur D02 comme bloc prédicteur candidat d'un bloc suivant à décoder.
Les étapes D'321 et D'322 sont mises en œuvre par un module logiciel de décodage prédictif inverse PRED2"1_D02 représenté sur la figure 10, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_D02.
Au cours d'une étape D'323 représentée à la figure 9, il est procédé selon l'invention à la détermination d'un ensemble de Q blocs prédicteurs candidats BP21 ; BP22, ..., BP2V, ...,BP2Q (1 <v≤Q). Une telle étape étant identique à l'étape D6 de la figure 8, elle ne sera pas décrite plus longuement.
Une telle étape de détermination est mise en œuvre par un module logiciel de détermination DET_D02 représenté sur la figure 10, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_D02.
Au cours d'une étape D'324 représentée à la figure 9, il est procédé selon l'invention à l'identification, parmi l'ensemble des Q blocs prédicteurs BP21 ; BP22, ..., BP2V, ...,BP2Q, d'un bloc prédicteur candidat préférentiel BP2opt. Selon l'invention, de la même façon qu'au codage précité, une telle étape d'identification est fonction du bloc résidu décodé BDr2optz obtenu.
Ladite étape d'identification est mise en œuvre par un module logiciel de calcul CAL1_D02 représenté sur la figure 10, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_D02.
De la même façon qu'a l'étape D6 de la figure 8, le procédé de décodage selon cet autre mode de réalisation utilise un critère de minimisation de la différence entre les pixels décodés de l'image courante ICj, qui sont représentés par des points sur la figure 4, et les pixels du bloc décodé BDr1 u>w situés le long de sa frontière F. Ce critère est un opérateur mathématique noté SM(BDr1 UiW, ICj).
II s'écrit de la façon suivante : SM(BDrlz>w, ICj)
N-1
= ^ (sDrlz w(0, o) - ICj(lin - 1, col + α))
α=0
N-1
+ ^ (sDrlz w(a, 0) - ICj (lin + a, col - 1)J
a=Q
ou :
BDr1 u est le bloc décodé considéré de taille NxN pixels,
- BDr1 UiW(n,m) est la valeur du pixel du bloc décodé BDr1 u>w situé sur la nième ligne et la mième colonne de ce bloc,
- ICj est l'image courante,
- ICj(k,l) est la valeur du pixel de l'image ICj situé sur la k ième ligne et la I ième colonne de cette image, et (lin, col) sont les coordonnées du bloc résidu décodé BDr1 u>wdans l'image ICj.
A titre d'alternative, on peut utiliser un critère simplifié où l'on vient comparer la moyenne des pixels de l'image ICj le long de la frontière F et la moyenne des pixels du bloc décodé BDr1 u>w. L'opérateur SM(BDr1 UiW, ICj) s'écrit alors :
SM(BDrlUiW, ICj)
= abs (lCj(lin - 1, col + a)
Figure imgf000035_0001
N-1 N-1
+ ICj (lin + a, col - li) - ^ ^ (BDrlu>w (a, 6))
a=0 b=0
Où abs() représente la valeur absolue.
Au cours de l'étape D'324, il est procédé à l'identification du bloc décodé BDr1 v,wmin qui minimise l'un des deux critères précités choisis, tel que :
wmin = argminw SM{BDrlu w, lCj)
Le bloc BDr1 v,wmin est égal à la somme du bloc prédicteur candidat BP2wmin et du bloc résidu décodé courant BDr2optu-
A l'issue de l'étape D'324, le bloc prédicteur candidat BP2wmin est considéré comme le bloc prédicteur préférentiel candidat BP2opt en vue de la prédiction inverse du bloc résidu décodé courant BDr2optu- Au cours d'une étape D'325 représentée à la figure 9, il est procédé à la reconstruction du bloc résiduel courant BDru en ajoutant au bloc résiduel courant décodé BDr2optu le bloc prédicteur candidat préférentiel BP2opt identifié à l'étape D'324.
Ladite étape D'325 est mise en œuvre par un module logiciel de calcul CAL2_D02 représenté sur la figure 10, lequel module est piloté par le microprocesseur μΡ de l'unité de traitement UT_D02.
Les étapes D'4 et D'5 précitées sont ensuite réitérées pour délivrer un bloc courant BDU. Puis l'étape D'6 est à nouveau mise en œuvre pour tester si le bloc courant BDU est le dernier bloc de l'image.
Les étapes de décodage du flux q>i (respectivement φ2) qui viennent d'être décrites ci-dessus sont mises en œuvre pour tous les blocs Bq1 -i , Bq12, Bq1 u, ..., Bqs (respectivement Bq2opti , Bq2opt2, . . . , Bq2optu, ...Bq2opts) à décoder de l'image courante ICj considérée.
Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement 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, caractérisé en ce qu'il comprend, pour un bloc courant (Bu) à coder, les étapes de :
- détermination (C3), d'un ensemble de blocs prédicteurs candidats (BP1 i , BP12, ..., BP1 V, ..., BP1 Q),
- pour un premier bloc prédicteur candidat (BP1 V) considéré dudit ensemble :
• obtention (C4) d'un bloc résiduel représentatif de la différence entre le premier bloc prédicteur candidat considéré et le bloc courant (Bu),
• identification (C10), dans ledit ensemble de blocs prédicteurs candidats, d'un deuxième bloc prédicteur candidat, ladite identification étant fonction dudit bloc résiduel courant obtenu et dudit deuxième bloc prédicteur candidat,
• sélection (C12a)) dudit premier bloc prédicteur candidat considéré s'il est égal audit deuxième bloc prédicteur identifié,
- pour chacun des blocs prédicteurs candidats dudit ensemble, autres que ledit premier bloc prédicteur candidat considéré, mise en œuvre des étapes d'obtention, d'identification et de sélection,
- détermination (C13), parmi les blocs prédicteurs candidats ayant été sélectionnés à l'issue de l'étape de sélection, d'un bloc prédicteur candidat (BP1 opt), à l'aide d'un critère prédéterminé (J),
- codage (C15-C17) du bloc résiduel représentatif de la différence entre le bloc prédicteur candidat déterminé et le bloc courant (Bu).
2. Procédé de codage selon la revendication 1 , dans lequel, lesdits blocs de l'image précédant le bloc courant étant codés dans un ordre déterminé, ladite identification est fonction des pixels de l'image précédemment codés.
3. Procédé de codage selon la revendication 2, dans lequel lesdits pixels précédemment codés puis décodés de l'image sont situés le long du bloc courant.
4. Procédé de codage selon l'une quelconque des revendications 1 à
3, dans lequel ledit critère prédéterminé est la minimisation du coût débit- distorsion de l'image.
5. Procédé de codage selon l'une quelconque des revendications 1 à
4, dans lequel le bloc courant est un bloc (Br1 u) qui a été préalablement obtenu à la suite d'une prédiction.
6. Dispositif (D01 ) de codage d'au moins une image (ICj) découpée en blocs, caractérisé en ce qu'il comprend, pour un bloc courant (Bu) à coder :
- des moyens (DET_C01 ) de détermination d'un ensemble de blocs prédicteurs candidats,
- pour un premier bloc prédicteur candidat considéré dudit ensemble :
• des moyens (PRED_C01 ) d'obtention d'un bloc résiduel représentatif de la différence entre le premier bloc prédicteur candidat considéré et le bloc courant (Bu),
• des moyens (CAL1_C01 ) d'identification, dans ledit ensemble de blocs prédicteurs candidats, d'un deuxième bloc prédicteur candidat, en fonction dudit bloc résiduel courant obtenu et dudit deuxième bloc prédicteur candidat,
• des moyens (CAL2_C01 ) de sélection dudit premier bloc prédicteur candidat considéré s'il est égal audit deuxième bloc prédicteur identifié, - lesdits moyens d'obtention, d'identification et de sélection étant activés pour chacun des blocs prédicteurs candidats dudit ensemble, autres que ledit premier bloc prédicteur candidat considéré,
- des moyens (CAL3_C01 ) de détermination, parmi les blocs prédicteurs candidats ayant été sélectionnés par lesdits moyens de sélection, d'un bloc prédicteur candidat, à l'aide d'un critère prédéterminé,
- des moyens (MCE1 ) de codage du bloc résiduel représentatif de la différence entre le bloc prédicteur candidat déterminé et le bloc courant (Bu).
7. Programme d'ordinateur comportant des instructions de code de programme pour l'exécution des étapes du procédé de codage selon l'une quelconque des revendications 1 à 5, lorsque ledit programme est exécuté sur un ordinateur.
8. Procédé de décodage d'un signal de données (φ) représentatif d'au moins une image (ICj) découpée en blocs, ledit procédé comprenant les étapes de :
- détermination (D1 ), dans le signal de données, de données représentatives d'un bloc résiduel courant associé à un bloc courant à décoder,
- décodage (D3-D5) dudit bloc résiduel courant,
ledit procédé de décodage étant caractérisé en ce qu'il comprend, pour un bloc courant à reconstruire, les étapes de :
- détermination (D'323) d'un ensemble de blocs prédicteurs candidats,
- identification (D'324), dans ledit ensemble, d'un bloc prédicteur candidat, ladite identification étant fonction dudit bloc résiduel courant décodé et dudit bloc prédicteur candidat,
- reconstruction (D8) du bloc courant (Bu) à l'aide du bloc prédicteur identifié et du bloc résiduel courant décodé.
9. Procédé de décodage selon la revendication 8, dans lequel lesdits blocs de l'image précédant le bloc courant étant décodés dans un ordre déterminé, ladite identification est fonction des pixels de l'image précédemment décodés.
10. Procédé de décodage selon la revendication 9, dans lequel lesdits pixels précédemment décodés de l'image sont situés le long du bloc courant.
1 1 . Procédé de décodage selon l'une quelconque des revendications 8 à 10, comprenant en outre une étape (D'3) de détermination, dans le signal de données, d'une information (Id) associée à une prédiction préalable du bloc courant, ladite étape de reconstruction du bloc courant étant mise en œuvre à partir de ladite prédiction préalable, dudit bloc prédicteur identifié et du bloc résiduel courant déterminé.
12. Dispositif (D01 ) de décodage d'un signal de données représentatif d'au moins une image (ICj) découpée en blocs, ledit dispositif comprenant :
- des moyens (MI_D01 ) de détermination, dans le signal de données, de données représentatives d'un bloc résiduel courant associé à un bloc courant à décoder,
- des moyens (MDE1 ) de décodage dudit bloc résiduel courant, ledit dispositif de décodage étant caractérisé en ce qu'il comprend, pour un bloc courant à reconstruire :
- des moyens (DET_D01 ) de détermination d'un ensemble de blocs prédicteurs candidats,
- des moyens (CAL1_D01 ) d'identification, dans ledit ensemble, d'un bloc prédicteur candidat, ladite identification étant fonction dudit bloc résiduel courant décodé et dudit bloc prédicteur candidat,
- des moyens (CAL2_D01 ) de reconstruction du bloc courant (Bu) à l'aide du bloc prédicteur identifié et du bloc résiduel courant décodé.
13. 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 à 1 1 , lorsque ledit programme est exécuté sur un ordinateur.
PCT/FR2014/052605 2013-10-15 2014-10-13 Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants WO2015055937A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201480056598.4A CN105745928A (zh) 2013-10-15 2014-10-13 用于对图像进行编码和解码的方法、用于对图像进行编码和解码的设备以及相应的计算机程序
US15/029,738 US20160269738A1 (en) 2013-10-15 2014-10-13 Method for encoding and decoding images, device for encoding and decoding images, and corresponding computer programmes
EP14796227.8A EP3058737A1 (fr) 2013-10-15 2014-10-13 Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1360033A FR3012004A1 (fr) 2013-10-15 2013-10-15 Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
FR1360033 2013-10-15

Publications (1)

Publication Number Publication Date
WO2015055937A1 true WO2015055937A1 (fr) 2015-04-23

Family

ID=50231278

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2014/052605 WO2015055937A1 (fr) 2013-10-15 2014-10-13 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 (5)

Country Link
US (1) US20160269738A1 (fr)
EP (1) EP3058737A1 (fr)
CN (1) CN105745928A (fr)
FR (1) FR3012004A1 (fr)
WO (1) WO2015055937A1 (fr)

Families Citing this family (7)

* 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
CN108111833A (zh) * 2016-11-24 2018-06-01 阿里巴巴集团控股有限公司 用于立体视频编解码的方法、装置及系统
FR3064145A1 (fr) * 2017-03-16 2018-09-21 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR3068558A1 (fr) * 2017-07-05 2019-01-04 Orange Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
CN116684586A (zh) * 2018-10-05 2023-09-01 Lg电子株式会社 解码设备、编码设备及发送针对图像的数据的设备
CN113382260B (zh) * 2019-06-21 2022-03-29 杭州海康威视数字技术股份有限公司 预测模式的解码、编码方法及装置
CN113382255B (zh) * 2019-06-21 2022-05-20 杭州海康威视数字技术股份有限公司 一种编解码方法、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040247029A1 (en) * 2003-06-09 2004-12-09 Lefan Zhong MPEG motion estimation based on dual start points
WO2008103348A2 (fr) * 2007-02-22 2008-08-28 Intellectual Ventures Holding 35 Llc Codage vidéo avec vecteurs de mouvement déterminés par le décodeur
WO2011054879A2 (fr) * 2009-11-06 2011-05-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codage vidéo hybride

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103338365B (zh) * 2007-06-29 2017-04-12 夏普株式会社 图像编码装置、图像编码方法、图像译码装置、图像译码方法
GB2491589B (en) * 2011-06-06 2015-12-16 Canon Kk Method and device for encoding a sequence of images and method and device for decoding a sequence of image
CN103096053B (zh) * 2011-11-04 2015-10-07 华为技术有限公司 一种变换模式的编解码方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040247029A1 (en) * 2003-06-09 2004-12-09 Lefan Zhong MPEG motion estimation based on dual start points
WO2008103348A2 (fr) * 2007-02-22 2008-08-28 Intellectual Ventures Holding 35 Llc Codage vidéo avec vecteurs de mouvement déterminés par le décodeur
WO2011054879A2 (fr) * 2009-11-06 2011-05-12 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codage vidéo hybride

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
B. BROSS; W.-J. HAN; J.-R. OHM; G. J. SULLIVAN; T. WIEGAND: "High efficiency video coding (HEVC) text specification draft 10", JCTVC-L1003 OF JCT-VC, 14 January 2013 (2013-01-14)
LAM W M ET AL: "Recovery of lost or erroneously received motion vectors", 1993 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, 1993. ICASSP-93; [PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING (ICASSP)], PISCATAWAY, NJ, USA, vol. 5, 27 April 1993 (1993-04-27), pages 417 - 420, XP010110891, ISBN: 978-0-7803-0946-3, DOI: 10.1109/ICASSP.1993.319836 *
TIANMI CHEN ET AL: "Predictive patch matching for inter-frame coding", VISUAL COMMUNICATIONS AND IMAGE PROCESSING; 11-7-2010 - 14-7-2010; HUANG SHAN, AN HUI, CHINA,, 11 July 2010 (2010-07-11), XP030082187 *
TOURAPIS: "Direct Prediction in P and B frames", 3. JVT MEETING; 60. MPEG MEETING; 06-05-2002 - 10-05-2002; FAIRFAX,US; (JOINT VIDEO TEAM OF ISO/IEC JTC1/SC29/WG11 AND ITU-T SG.16 ),, no. JVT-C128, 10 May 2002 (2002-05-10), XP030005240, ISSN: 0000-0442 *

Also Published As

Publication number Publication date
US20160269738A1 (en) 2016-09-15
CN105745928A (zh) 2016-07-06
FR3012004A1 (fr) 2015-04-17
EP3058737A1 (fr) 2016-08-24

Similar Documents

Publication Publication Date Title
EP2991351B1 (fr) Procédé de décodage d&#39;images
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
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
EP3209021B1 (fr) Support d&#39;enregistrement mémorisant un flux de données d&#39;images codées
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
EP3198876B1 (fr) Génération et codage d&#39;images intégrales résiduelles
EP3180914B1 (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
EP3345391A2 (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
EP2761871B1 (fr) Estimation de mouvement au niveau du décodeur par mise en correspondance de modèles
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
EP3259909B1 (fr) Procédé de codage et décodage d&#39;images, dispositif de codage et décodage 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
WO2016132074A1 (fr) Codage d&#39;images par quantification vectorielle
FR3064145A1 (fr) Procede de codage et decodage d&#39;images, dispositif de codage et decodage et programmes d&#39;ordinateur correspondants

Legal Events

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

Ref document number: 14796227

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 15029738

Country of ref document: US

REEP Request for entry into the european phase

Ref document number: 2014796227

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2014796227

Country of ref document: EP