EP2392141A1 - Method and device for encoding an image using a prediction mask decoding method and device and corresponding signals and computer programs - Google Patents

Method and device for encoding an image using a prediction mask decoding method and device and corresponding signals and computer programs

Info

Publication number
EP2392141A1
EP2392141A1 EP10707587A EP10707587A EP2392141A1 EP 2392141 A1 EP2392141 A1 EP 2392141A1 EP 10707587 A EP10707587 A EP 10707587A EP 10707587 A EP10707587 A EP 10707587A EP 2392141 A1 EP2392141 A1 EP 2392141A1
Authority
EP
European Patent Office
Prior art keywords
pixels
predicted
pixel
macroblock
coding
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
EP10707587A
Other languages
German (de)
French (fr)
Inventor
Isabelle Amonou
Matthieu Moinard
Nathalie Cammas
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
France Telecom SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by France Telecom SA filed Critical France Telecom SA
Publication of EP2392141A1 publication Critical patent/EP2392141A1/en
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/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/182Methods 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 a pixel
    • 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/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the field of the invention is that of encoding and decoding of images, and in particular of a video stream consisting of a series of successive images. More specifically, the invention applies to the compression of images or image sequences using block transforms.
  • the invention can notably apply to video coding implemented in current (MPEG, H.264, etc.) or future (ITU-T / VCEG (H.265) or ISO / MPEG (HVC) video encoders) .
  • each image can be sliced (in English "slice"), themselves cut into macroblocks, which are then subdivided into blocks.
  • a block consists of a set of pixels.
  • a macroblock is a square block of size equal to 16x16 pixels, which can be split into blocks of 8x8, 16x8 or 8x16 size, the 8x8 blocks can then be cut into sub-blocks of size 4x4, 8x4 or 4x8.
  • the macroblocks or the blocks can be coded by intra-image prediction or inter-image prediction.
  • a macroblock or block may be encoded by: a temporal prediction, that is, with reference to a reference block or macroblock belonging to one or more other images; and / or - a spatial prediction, depending on the blocks or macroblocks of the current image.
  • the prediction of a current block can only be made from blocks that have been previously coded, using a directional extrapolation technique of the coded texture values. decoded on the neighboring blocks. These blocks are said to belong to the "causal neighborhood" of the current block, comprising blocks located before the current block in a predetermined direction of travel of the blocks in the image.
  • nine intra prediction modes are used according to the ITU-T H.264 standard. These prediction modes comprise eight modes corresponding to a given orientation for copying the pixels from the previously coded-decoded neighboring blocks (vertical, horizontal, diagonal down left, diagonal down right, vertical right, vertical left, horizontal amount, horizontal descending), and a mode corresponding to the average of the pixels adjacent to the block from the neighboring blocks.
  • a residual block also called prediction residue
  • the coefficients of this block are quantized, after a possible transformation (for example the DCT transform - in English "Discrtica cosine transform", in French “transformed in discrete cosine"), then coded by an entropic coder.
  • the prediction mode chosen is that which makes it possible to obtain the best rate-distortion compromise.
  • a prediction of the texture values of the current block is established from the coded-decoded texture values of the neighboring blocks, and then a prediction residue is added to this prediction.
  • the ITU-T H.264 standard uses motion-displacement to predict a block or macroblock from its time neighborhood. The motion vector is then encoded and transmitted.
  • Alternative methods of intra prediction have recently been proposed, based in particular on the correlations between neighboring pixels.
  • This technique makes it possible to synthesize a pixel p (or a group of pixels) in a target area C of the image, taking into account a source area S of the same image. It is based on correlations between neighboring pixels.
  • the value of each pixel p of the target area C is determined by comparing (11) the pixels N (p) belonging to the causal neighborhood of the pixel p, defining a "template” or "mask” of the pixel p, with all the neighbors of the source area S.
  • the mask N (p) is made up of previously coded / decoded pixels, which avoids the propagation of errors. If we find a region of the source zone S similar to the mask defined by N (p), then we assign (12) to the pixel p of the target zone C, the pixel (or group of pixels) of the source zone S presenting the most similar neighborhood.
  • the pixels are synthesized in a fixed and predetermined order, generally from top to bottom and from left to right (in English "raster scan order").
  • the "template matching” technique has also been extended to the block coding of an H.264 encoder by Wang et al., As described in the document “Priority-based template matching intra prediction. It is thus possible to code / decode a macroblock using blocks (composed of 4x4 pixels according to the H.264 standard) reconstructed by the "template matching" technique.
  • the blocks are conventionally processed in a left-to-right and top-to-bottom ("raster scan") order of the blocks in the macroblock. Therefore, the macroblock is encoded / decoded (or rebuilt) block by block. Processing the blocks one after the other makes it possible to use the pixels of a previously coded / decoded block as "source zone" for a current block, according to the order of travel.
  • the invention proposes a new solution which does not have all of these disadvantages of the prior art, in the form of a method of encoding at least one image, divided into zones of standard size, called macroblocks, a macroblock comprising a set of blocks of pixels.
  • such a method implements, for at least one current macroblock of a current image: at least two iterations of the following steps:
  • a coding priority level to at least one pixel of the current macroblock, adjacent to at least one previously predicted pixel, according to a predetermined priority determination criterion; - selection of a pixel with the highest priority level, says priority pixel;
  • the coding step is implemented as soon as the predicted region complies with a predetermined coding criterion.
  • the invention thus proposes to improve the existing "template matching" techniques by working directly on a macroblock, and by adapting the order of the macroblock pixels for the prediction of the macroblock.
  • the efficiency of a template matching technique applied to an entire macroblock is limited because the further one moves towards the end of the macroblock, the more predicted pixels used for the prediction are away from the pixels to predict. Indeed, the pixels predicted at the beginning of the macroblock have not yet been coded / decoded (the prediction error has not yet been coded), the predicted pixels do not provide a sufficiently good prediction, and may propagate errors. errors towards the end of the macroblock and to increase by the same amount the cost of coding the residue. It is thus possible to signal once, for the entire macroblock, that a template matching technique is used, without having to report it for each block.
  • the pixels are synthesized in a fixed and predetermined order
  • the prediction residue corresponding to the difference between the predicted pixels of the predicted region and the original pixels belonging to the current image, can be practically nil. This means that the prediction is sufficient (for example for a targeted application: low speed, low quality, etc.). In this case, the obtained prediction residue is small and can be canceled during the quantization of the residue.
  • the coding criterion belongs to the group comprising: a predicted number of pixels greater than a predetermined threshold; a predetermined configuration of the predicted pixels.
  • Such a configuration is in agreement with the transforms used by the encoder, and corresponds to a 4x4 block in the case of an H.264-AVC encoder.
  • Such a configuration can also be processed by a transform implemented in the encoder / decoder, and corresponds to a 2x8, or 8x2, or 16x1, or 1x16 block, or any region of 16 pixels in the case of a transform.
  • SA-DCT type in English "Shape Adaptive DCT", in French “Adaptive form discrete cosine transform”).
  • Pixels thus encoded / decoded (or reconstructed) can then be used for the prediction of following regions of the macroblock It is considered that these coded / decoded pixels now belong to a "source" zone as defined in relation with the prior art
  • the predicted region comprises sixteen predicted pixels.
  • sixteen pixels are predicted (forming a region of 4x4 pixels, 2x8 pixels, 8x2 pixels, 16x1 pixels or 1x16 pixels), the residue associated with this region, and we code / decode this region
  • the priority determination criterion takes account of at least one parameter belonging to the group comprising.
  • a statistical parameter representative of an activity of the vicinity of said pixel a number of candidates similar to said mask, defined for example by the sum of the absolute differences, as described in relation with the prior art
  • the direction of travel of the pixels inside a macroblock takes into account parameters making it possible to optimize the coding by improving the efficiency of the prediction and therefore the quality of the reconstruction of the pixels.
  • one of the parameters taken into account to assign a priority to a pixel corresponds to the number of available pixels already coded-decoded (or reconstructed) that can be used for coding this pixel.
  • This parameter can have for example a value corresponding directly to the number of pixels available
  • Another parameter takes into account the presence of an incident contour in a pixel, that is to say a contour that is also present in an already coded-decoded adjacent pixel.
  • the technique according to one embodiment of the invention adapts the order of travel according to the direction of the contour, and the order of travel. obtained diagonal improves the quality of the prediction and thus the speed and quality of the decoding.
  • This parameter indicating the presence of an incident contour in a pixel also noted as a contour parameter, may have for example a value of 1.
  • Yet another parameter takes into account the number of previously predicted or coded pixels present in the mask defined near the pixel. This gives preference to the prediction of a target set for which the corresponding mask comprises the largest number of pixels already predicted. Then, the values of the parameters described above can be added, or multiplied, to obtain a priority level assigned to each pixel adjacent to a previously predicted pixel.
  • At least one of the iterations is a refinement iteration, in which the assignment step assigns a coding priority level to at least one pixel of the current macroblock adjacent to at least one previously coded pixel.
  • coded / decoded pixels are considered, and not only predicted. Indeed, coded / decoded pixels can be given greater confidence than only predicted pixels. It is recalled to this effect that if the predicted pixels do not provide a sufficiently good prediction, they may propagate errors towards the end of the macroblock and increase the coding cost of the residue. Pixels already coded / decoded are therefore used to refine the prediction.
  • the invention also relates to a computer program comprising instructions for implementing the encoding method described above when the program is executed by a processor.
  • the coding method according to the invention can be implemented in various ways, in particular in hard-wired form or in software form.
  • the invention in another embodiment, relates to a device for encoding at least one image, divided into standard size areas, called macroblocks, a macroblock comprising a set of blocks of pixels.
  • such a device comprises the following means, activated for at least one current macroblock of a current image and for at least two iterations:
  • Such a signal comprises at least one piece of information representative of the coding criterion, such as a threshold corresponding to the minimum number of pixels that must be predicted to reconstruct a predicted region.
  • This signal may of course include the various characteristics relating to the coding method according to the invention.
  • the invention also relates to a method for decoding a signal representative of at least one image, divided into zones of standard size, called macroblocks, a macroblock comprising a set of blocks of pixels. According to the invention, such a method implements at least two iterations of the following steps, for at least one current macroblock of a current image:
  • Such a decoding method is able to decode a signal as described above.
  • such a method comprises a step of receiving at least one piece of information representative of the coding criterion.
  • the invention also relates to a computer program comprising instructions for implementing the decoding method described above, when the program is executed by a processor.
  • the decoding method according to the invention can be implemented in various ways, in particular in hard-wired form or in software form.
  • the invention in another embodiment, relates to a device for decoding a signal representative of at least one image, divided into zones of standard size, called macroblocks, a macroblock comprising a set of blocks of pixels.
  • such a device comprises the following means, activated for at least one current macroblock of a current image and for at least two iterations:
  • FIG. 1 commented on in relation to the prior art, presents a simplified diagram of the so-called "template matching"technique;
  • FIG. 2 illustrates an example of direction of travel for the coding of the blocks of a macroblock;
  • - Figure 3 shows the main steps implemented in the coding according to a particular embodiment of the invention;
  • FIGS. 4A to 4G illustrate the application of the coding method of FIG. 3 to a macroblock;
  • Figure 5 shows the main steps implemented in the decoding according to a particular embodiment of the invention;
  • Figures 6 and 7 respectively show the structure of a coding device and a decoding device according to a particular embodiment of the invention.
  • the general principle of the invention is based on the adaptive coding / decoding of a macroblock, making it possible to predict pixels, and then to code / decode predicted pixel regions, as soon as there is a sufficient number of predicted pixels for each pixel. the transformation and coding of the residue.
  • the coding / decoding of the macroblock does not require the coding / decoding of the different blocks of the macroblock, one after the other, according to a predefined order of travel.
  • FIG. 3 illustrates the main steps implemented on the coding side, for at least one current macroblock of a current image.
  • the line dividing the previously predicted pixels from the not yet predicted pixels is called the "prediction boundary", and the "coding boundary” is a line separating the already coded / decoded pixels from the pixels not yet coded / decoded.
  • the coding method implements a step of coding a prediction residue for the predicted region of the macroblock, by determining a difference between the predicted pixels. of the predicted region and original pixels belonging to the current image. It is recalled that the prediction residue can be virtually zero. In this case, the prediction residue obtained is canceled during the quantization step.
  • the predicted region is coded / decoded.
  • the coding boundary is shifted to encompass the new coded / decoded pixels.
  • These new coded / decoded pixels are now considered as pixels belonging to the source zone of the image, which can be used for the prediction of unpredicted pixels, or the refinement of previously predicted pixels.
  • FIGS. 4A to 4G illustrate the application of a particular embodiment of the coding method to the case of intra prediction in an H.264 coder for example, using macroblocks of size 16 ⁇ 16. cut into blocks of 4x4 size.
  • this is just an example.
  • the invention also applies to an image encoder using regions of arbitrary size and shape, in the context of intra or interimage prediction.
  • the current macroblock MB is composed of sixteen blocks each comprising 4x4 pixels.
  • This macroblock MB is adjacent, in the image, to three already encoded-decoded macroblocks (located above the current macroblock - MBj, to the left of the current macroblock - MBL, and above to the left and the current macroblock - MBJL). .
  • adjacent is meant here a macroblock that touches the boundary of the current macroblock.
  • Macroblocks MBj, MBL and MBJL- previously coded / decoded are considered to belong to a source area of the image, which can be used for the prediction of regions not yet predicted.
  • FIGS. 4B to 4G each illustrate the result obtained after a prediction iteration as described with reference to FIG. 3, for the coding of the current macroblock MB.
  • the previously coded / decoded macroblocks MBj, MBL and MBJL define, with the current macroblock MB, a coding boundary FR.
  • This FR coding boundary (illustrated in the other figures 4C to 4G in short dotted lines) is superimposed with a prediction boundary Fp (illustrated in long dashed lines) during the first iteration.
  • a coding priority level is assigned to the unpredicted pixels of the macroblock MB located at the prediction boundary Fp.
  • a priority level is assigned to all the pixels of the MB macroblock adjacent to a previously predicted pixel MBJ, MBL and MBJL macroblocks previously coded / decoded.
  • the pixel p located in the top left corner of macroblock MB, has the highest priority level. Indeed, this pixel is adjacent to five pixels previously coded / decoded (and therefore predicted). This pixel is called "priority pixel".
  • a mask Tp is identified, such that the mask Tp and the target set P form a block (see FIG. 4A for the sake of clarity).
  • a source block comprising a similar zone Tn in the mask is then searched. Tp.
  • This search region comprising a set of previously coded / decoded (or reconstructed) blocks, also called source zone, is delimited by the coding boundary.
  • Tn previously coded / decoded (or reconstructed) blocks
  • Tp we look in the source area for a "template” Tn (or mask) closest to the mask Tp, and then we build the target set P from the source block thus identified. To do this, it is possible to copy in the target set P the pixels of the source block identified that do not belong to the similar zone Tn.
  • This "template matching" technique is more precisely described in relation to the prior art. In this way, a prediction of the target set P, delivering predicted pixels, is obtained.
  • a new coding priority level is assigned to the unpredicted pixels of the MB macroblock adjacent to a previously predicted pixel. These non-predicted pixels correspond to the pixels located at the prediction boundary Fp.
  • the pixel p corresponding to the pixel located on the fourth line, fourth column of the macroblock MB, has the highest priority level.
  • this priority pixel p is located on a contour crossing the target set defined at the first iteration.
  • the shape of the target set P and the mask Tp (that is to say the number of pixels and the configuration of the pixels) does not change during the different iterations.
  • the pixels present in the target set P and in the mask Tp differ from one iteration to the other.
  • a source block comprising a similar zone Tn to the mask Tp is then searched in the source zone.
  • This research area is the same as for the first iteration, since the FR coding boundary has not evolved.
  • the number of predicted pixels is not sufficient to code / decode a region of the macroblock MB.
  • the FR encoding boundary has not changed.
  • the prediction boundary Fp has shifted to encompass the new predicted pixels.
  • the number of predicted pixels is sufficient to code / decode (or reconstruct) a predicted region of the macroblock MB, by coding a prediction residue associated with this region.
  • a sufficient number of pixels has been predicted for these predicted pixels to be used for transformation and coding of the residue.
  • the first block B 1 located at the top left of the macroblock MB
  • this residue coding step can be implemented to code / decode (or reconstruct) a predicted region of different size, such as a region consisting of 2x2 predicted pixels, 4x4 predicted pixels, 8x8 predicted pixels, 2x8 predicted pixels, 8x2 predicted pixels, 16x1 predicted pixels, 1x16 predicted pixels, etc.
  • One could therefore reconstruct a block of data as soon as 16 pixels have been predicted for example 16 pixels of the same line, or of the same column, ).
  • this step of coding the residue is implemented as soon as the predicted region respects a predetermined coding criterion, such as a predicted number of pixels greater than a predetermined threshold, or a specific configuration of the predicted pixels.
  • a predetermined coding criterion such as a predicted number of pixels greater than a predetermined threshold, or a specific configuration of the predicted pixels.
  • the first block B1 of the macroblock MB is reconstructed (that is to say encoded and decoded with its residue). Therefore, the FR encoding boundary is shifted to encompass this new encoded / decoded B block, which is now part of the source area of the image, and can serve as a reliable source for predicting the remaining regions to be restored from the macroblock. MB. It is recalled that it is however not possible to use, for the prediction, predicted but not reconstructed pixels.
  • the invention proposes to code / decode
  • the algorithm can progress freely in the macroblock by restoring / predicting image regions "on horseback" over several blocks; the reconstruction of the blocks (4x4 size according to the H.264 standard) is not imposed according to a predetermined order.
  • the proposed solution can be integrated without difficulty in a video coder based macroblock type H.264, without substantially changing its operation. For that, it is enough for example to add a new mode of spatial prediction of the macroblocks, or to replace several existing modes little used in the context of the present invention. In particular, the rate-distortion optimization process remains unchanged.
  • the signal representative of the encoded image (s) according to the coding method described above can be transmitted to a decoder and / or stored on a recording medium.
  • This signal can carry particular information.
  • this signal may carry at least one piece of information representative of the coding criterion, such as a threshold corresponding to the minimum number of pixels that must be predicted to reconstruct a predicted region.
  • This signal can also transmit information representative of the priority determination criterion. Indeed, the priority of the pixels to be predicted, located at the level of the prediction boundary, can be calculated at the encoder and transmitted to the decoder, or alternatively recalculated to the decoder. This signal can also transport the prediction residue (s) obtained by comparing the current image and the predicted image.
  • Such a decoder implements the following steps, for at least one current image:
  • At least one piece of information representative of this coding criterion may be conveyed by the signal.
  • the decoding method comprises an additional step of receiving the information representative of this coding criterion.
  • the decoding method may implement an additional step of receiving information representative of the priority determination criterion.
  • the iterations 51 are similar to those described in the coding, and are not described in more detail here.
  • the decoding algorithm repeats the following steps until the macroblock is completely reconstructed:
  • a coding device as illustrated in FIG. 6 comprises a memory 61 comprising a buffer memory, a processing unit 62, equipped for example with a microprocessor ⁇ P, and driven by the computer program 63, implementing the method coding according to the invention.
  • the code instructions of the computer program 63 are for example loaded into a RAM before being executed by the processor of the processing unit 62.
  • the processing unit 62 receives a current image at code.
  • the microprocessor of the processing unit 62 implements the steps of the coding method described above, according to the instructions of the computer program 63, for coding the current image.
  • the coding device comprises, in addition to the buffer memory 61, means for assigning a coding priority level to at least one pixel of a current macroblock, means for selecting a pixel presenting the level of highest priority, means for predicting a set of pixels comprising the priority pixel and means for coding a prediction residue for a region formed of predicted pixels of the macroblock.
  • a decoding device as illustrated in FIG. 7 comprises a memory 71 comprising a buffer memory, a processing unit 72, equipped for example with a microprocessor ⁇ P, and controlled by the computer program 73, implementing the decoding method according to the invention.
  • the code instructions of the computer program 73 are for example loaded into a RAM memory before being executed by the processor of the processing unit 72.
  • the processing unit 72 receives as input a signal representative of at least one coded picture.
  • the microprocessor of the processing unit 72 implements the steps of the decoding method described above, according to the instructions of the computer program 73, to determine reconstructing the current image.
  • the decoding device comprises, in addition to the buffer memory 71, means for assigning a coding priority level to at least one pixel of a current macroblock, means for selecting a pixel having the highest priority level, means for predicting a set of pixels comprising the priority pixel, means for receiving at least one prediction residue and means for reconstructing a region formed of predicted pixels of the macroblock.

Landscapes

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

Abstract

The invention relates to a method for encoding at least one image, divided into macroblocks, one macroblock comprising a set of blocks de pixels. According to eh invention, such a method comprises the following steps for at least one current macroblock of a current image, at least two iterations of the following steps: allocation (31) of a priority level for encoding to at least one pixel of the current macroblock, selection (32) of a pixel with the highest priority level called the priority pixel, prediction (33) of a set of pixels including said priority pixel and an encoding step (35) for a remainder from prediction for a region made up of predicted pixels of said macroblock, called the predicted region, said encoding step being used as and when said predicted region meets a predetermined encoding criterion.

Description

Procédé et dispositif de codage d'une image utilisant un masque de prédiction, procédé et dispositif de décodage, signal et programmes d'ordinateur correspondants. 1. Domaine de l'invention Le domaine de l'invention est celui du codage et du décodage d'images, et notamment d'un flux vidéo constitué d'une série d'images successives. Plus précisément, l'invention s'applique à la compression d'images ou de séquences d'images utilisant des transformées par bloc. Method and apparatus for coding an image using a prediction mask, decoding method and device, signal and corresponding computer programs. FIELD OF THE INVENTION The field of the invention is that of encoding and decoding of images, and in particular of a video stream consisting of a series of successive images. More specifically, the invention applies to the compression of images or image sequences using block transforms.
L'invention peut notamment s'appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels (MPEG, H.264, etc) ou à venir (ITU-T/VCEG (H.265) ou ISO/MPEG (HVC)). 2. Art antérieurThe invention can notably apply to video coding implemented in current (MPEG, H.264, etc.) or future (ITU-T / VCEG (H.265) or ISO / MPEG (HVC) video encoders) . 2. Prior Art
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 utilisent une représentation par bloc de la séquence vidéo, comme par exemple celles mettant en œuvre les standards de compression vidéo issus de l'organisation MPEG (MPEG-I, MPEG-2, MPEG-4 partie 2, ...) ou de ITTU-T (H.261, ..., H.264/AVC). Ainsi, selon la technique H.264, chaque image peut être découpée en tranches (en anglais « slice »), elles-mêmes découpées en macroblocs, qui sont ensuite subdivisés en blocs. Un bloc est constitué d'un ensemble de pixels. Selon le standard H.264, un macrobloc est un bloc carré de taille égale à 16x16 pixels, qui peut être redécoupé en blocs de taille 8x8, 16x8 ou 8x16, les blocs 8x8 pouvant ensuite être redécoupés en sous-blocs de taille 4x4, 8x4 ou 4x8.Many techniques of video data compression are already known. Among these, many video coding techniques use a block representation of the video sequence, such as those implementing video compression standards from the MPEG organization (MPEG-I, MPEG-2, MPEG-1 4 part 2, ...) or ITTU-T (H.261, ..., H.264 / AVC). Thus, according to the H.264 technique, each image can be sliced (in English "slice"), themselves cut into macroblocks, which are then subdivided into blocks. A block consists of a set of pixels. According to the H.264 standard, a macroblock is a square block of size equal to 16x16 pixels, which can be split into blocks of 8x8, 16x8 or 8x16 size, the 8x8 blocks can then be cut into sub-blocks of size 4x4, 8x4 or 4x8.
Selon les techniques connues, les macroblocs ou les blocs peuvent être codés par prédiction intra-images ou inter-images. En d'autres termes, un macrobloc ou bloc peut être codé par : une prédiction temporelle, c'est-à-dire en référence à un bloc ou macrobloc de référence appartenant à une ou plusieurs autres images ; et/ou - une prédiction spatiale, en fonction des blocs ou macroblocs de l'image courante.According to the known techniques, the macroblocks or the blocks can be coded by intra-image prediction or inter-image prediction. In other words, a macroblock or block may be encoded by: a temporal prediction, that is, with reference to a reference block or macroblock belonging to one or more other images; and / or - a spatial prediction, depending on the blocks or macroblocks of the current image.
Dans le cas d'une prédiction spatiale, la prédiction d'un bloc courant ne peut être effectuée qu'à partir des blocs qui ont été précédemment codés, à l'aide d'une technique d'extrapolation directionnelle des valeurs de texture codées- décodées sur les blocs voisins. On dit que ces blocs appartiennent au « voisinage causal » du bloc courant, comprenant les blocs situés avant le bloc courant selon un sens de parcours prédéterminé des blocs dans l'image.In the case of a spatial prediction, the prediction of a current block can only be made from blocks that have been previously coded, using a directional extrapolation technique of the coded texture values. decoded on the neighboring blocks. These blocks are said to belong to the "causal neighborhood" of the current block, comprising blocks located before the current block in a predetermined direction of travel of the blocks in the image.
Ainsi, pour prédire un macrobloc ou un bloc à partir de son voisinage causal, neuf modes de prédiction intra sont utilisés selon le standard ITU-T H.264. Ces modes de prédiction comprennent huit modes correspondant à une orientation donnée pour la recopie des pixels à partir des blocs voisins précédemment codés- décodés (orientation verticale, horizontale, diagonale vers le bas gauche, diagonale vers le bas droite, verticale droit, verticale gauche, horizontal montant, horizontal descendant), et un mode correspondant à la moyenne des pixels adjacents au bloc à partir des blocs voisins.Thus, to predict a macroblock or a block from its causal neighborhood, nine intra prediction modes are used according to the ITU-T H.264 standard. These prediction modes comprise eight modes corresponding to a given orientation for copying the pixels from the previously coded-decoded neighboring blocks (vertical, horizontal, diagonal down left, diagonal down right, vertical right, vertical left, horizontal amount, horizontal descending), and a mode corresponding to the average of the pixels adjacent to the block from the neighboring blocks.
Malheureusement, la prédiction spatiale est insuffisante à elle seule, d'où la nécessité de coder une erreur de prédiction. Ainsi, pour chaque bloc est codé un bloc résiduel, encore appelé résidu de prédiction, correspondant au bloc original diminué d'une prédiction. Pour cela, les coefficients de ce bloc sont quantifiés, après une éventuelle transformation (par exemple la transformée DCT - en anglais « Discrète cosine transform », en français « transformée en cosinus discrète »), puis codés par un codeur entropique. Au codeur, le mode de prédiction choisi est celui permettant d'obtenir le meilleur compromis débit-distorsion.Unfortunately, spatial prediction alone is insufficient, hence the need to code a prediction error. Thus, for each block is coded a residual block, also called prediction residue, corresponding to the original block decreased by a prediction. For that, the coefficients of this block are quantized, after a possible transformation (for example the DCT transform - in English "Discrète cosine transform", in French "transformed in discrete cosine"), then coded by an entropic coder. At the encoder, the prediction mode chosen is that which makes it possible to obtain the best rate-distortion compromise.
Ainsi, en mode de codage intra, une prédiction des valeurs de texture du bloc courant est établie à partir des valeurs de texture codées-décodées des blocs voisins, puis un résidu de prédiction vient s'ajouter à cette prédiction.Thus, in intra coding mode, a prediction of the texture values of the current block is established from the coded-decoded texture values of the neighboring blocks, and then a prediction residue is added to this prediction.
Dans le cas d'une prédiction temporelle, le standard ITU-T H.264 utilise un déplacement au sens du mouvement pour prédire un bloc ou un macrobloc à partir de son voisinage temporel. Le vecteur de mouvement est alors codé et transmis. Des méthodes alternatives de prédiction intra ont été proposées récemment, basées notamment sur les corrélations entre pixels voisins.In the case of time prediction, the ITU-T H.264 standard uses motion-displacement to predict a block or macroblock from its time neighborhood. The motion vector is then encoded and transmitted. Alternative methods of intra prediction have recently been proposed, based in particular on the correlations between neighboring pixels.
Par exemple, l'article « Intra prédiction by template matching » de Tan et al. présente une telle technique de synthèse de texture basée sur une prédiction intra, encore appelée « template matching ». Un schéma simplifié de cette technique est illustré en figure 1.For example, the article "Intra prediction by template matching" of Tan et al. presents such a texture synthesis technique based on an intra prediction, also called "template matching". A simplified diagram of this technique is illustrated in FIG.
Cette technique permet de synthétiser un pixel p (ou un groupe de pixels) dans une zone cible C de l'image, en tenant compte d'une zone source S de la même image. Elle est basée sur les corrélations entre pixels voisins. Ainsi, la valeur de chaque pixel p de la zone cible C est déterminée en comparant (11) les pixels N(p) appartenant au voisinage causal du pixel p, définissant un « template » ou « masque » du pixel p, avec tous les voisins de la zone source S. Le masque N(p) est donc constitué de pixels préalablement codés/décodés, ce qui évite la propagation d'erreurs. Si l'on trouve une région de la zone source S similaire au masque défini par N(p), alors on affecte (12) au pixel p de la zone cible C, le pixel (ou groupe de pixels) de la zone source S présentant le voisinage le plus similaire.This technique makes it possible to synthesize a pixel p (or a group of pixels) in a target area C of the image, taking into account a source area S of the same image. It is based on correlations between neighboring pixels. Thus, the value of each pixel p of the target area C is determined by comparing (11) the pixels N (p) belonging to the causal neighborhood of the pixel p, defining a "template" or "mask" of the pixel p, with all the neighbors of the source area S. The mask N (p) is made up of previously coded / decoded pixels, which avoids the propagation of errors. If we find a region of the source zone S similar to the mask defined by N (p), then we assign (12) to the pixel p of the target zone C, the pixel (or group of pixels) of the source zone S presenting the most similar neighborhood.
Classiquement, la région la plus proche du masque dans l'image source, correspondant à une région similaire au masque, est choisie sur des critères de minimisation de l'erreur quadratique ou absolue selon la formule suivante : N(q') = aτg min d(N(p),N(q))Conventionally, the region closest to the mask in the source image, corresponding to a region similar to the mask, is chosen on criteria for minimizing the quadratic or absolute error according to the following formula: N (q ') = aτg min d (N (p), N (q))
N(q)≡S avec :N (q) ≡S with:
- q un pixel de la zone source S ;q a pixel of the source zone S;
- d une fonction mesurant la distance entre deux masques selon le critère de minimisation retenu.a function measuring the distance between two masks according to the minimization criterion used.
Selon cette technique, les pixels sont synthétisés dans un ordre fixe et prédéterminé, généralement de haut en bas et de gauche à droite (en anglais « raster scan order »).According to this technique, the pixels are synthesized in a fixed and predetermined order, generally from top to bottom and from left to right (in English "raster scan order").
La technique classique de « template matching » permet de synthétiser des textures constituées de structures aléatoires. En revanche, elle n'est pas très efficace lorsqu'elle est appliquée sur des images naturelles, composées de textures mixtes et de contours.The classic "template matching" technique makes it possible to synthesize textures made up of random structures. On the other hand, it is not very effective when applied to natural images, composed of mixed textures and contours.
La technique de « template matching » a également été étendue au codage des blocs d'un codeur H.264 par Wang et al., comme décrit dans le document « Priority-based template matching intra prédiction. On peut ainsi coder/décoder un macrobloc à l'aide de blocs (composés de 4x4 pixels selon le standard H.264) reconstruits par la technique de « template matching ».The "template matching" technique has also been extended to the block coding of an H.264 encoder by Wang et al., As described in the document "Priority-based template matching intra prediction. It is thus possible to code / decode a macroblock using blocks (composed of 4x4 pixels according to the H.264 standard) reconstructed by the "template matching" technique.
Comme illustré en figure 2, dans l'application de Wang et al., les blocs sont classiquement traités selon un ordre de parcours de gauche à droite et de haut en bas (« raster scan ») des blocs dans le macrobloc. Par conséquent, le macrobloc est codé/décodé (ou reconstruit) bloc par bloc. Le traitement des blocs l'un à la suite de l'autre permet d'utiliser les pixels d'un bloc précédemment codé/décodé comme « zone source » pour un bloc courant, suivant l'ordre de parcours.As illustrated in FIG. 2, in the application by Wang et al., The blocks are conventionally processed in a left-to-right and top-to-bottom ("raster scan") order of the blocks in the macroblock. Therefore, the macroblock is encoded / decoded (or rebuilt) block by block. Processing the blocks one after the other makes it possible to use the pixels of a previously coded / decoded block as "source zone" for a current block, according to the order of travel.
Malheureusement, cette technique n'est pas optimale car elle contraint la reconstruction du macrobloc à suivre les blocs de 4x4 pixels.Unfortunately, this technique is not optimal because it forces the reconstruction of the macroblock to follow blocks of 4x4 pixels.
Il existe donc un besoin pour de nouvelles techniques de codage/décodage d'images mettant en œuvre une technique de synthèse de type « template matching », permettant d'améliorer ces techniques de l'art antérieur.There is therefore a need for new image coding / decoding techniques implementing a "template matching" type of synthesis technique, making it possible to improve these techniques of the prior art.
3. Exposé de l'invention L'invention propose une solution nouvelle qui ne présente pas l'ensemble de ces inconvénients de l'art antérieur, sous la forme d'un procédé de codage d'au moins une image, découpée en zones de taille standard, dites macroblocs, un macrobloc comprenant un ensemble de blocs de pixels.3. DISCLOSURE OF THE INVENTION The invention proposes a new solution which does not have all of these disadvantages of the prior art, in the form of a method of encoding at least one image, divided into zones of standard size, called macroblocks, a macroblock comprising a set of blocks of pixels.
Selon l'invention, un tel procédé met en œuvre, pour au moins un macrobloc courant d'une image courante : au moins deux itérations des étapes suivantes :According to the invention, such a method implements, for at least one current macroblock of a current image: at least two iterations of the following steps:
- affectation d'un niveau de priorité de codage à au moins un pixel du macrobloc courant, adjacent à au moins un pixel précédemment prédit, selon un critère de détermination de priorité prédéterminé ; - sélection d'un pixel présentant le niveau de priorité le plus élevé, dit pixel prioritaire ;assigning a coding priority level to at least one pixel of the current macroblock, adjacent to at least one previously predicted pixel, according to a predetermined priority determination criterion; - selection of a pixel with the highest priority level, says priority pixel;
— prédiction d'un ensemble de pixels comprenant le pixel prioritaire, dit ensemble cible, mettant en œuvre les sous-étapes suivantes :Prediction of a set of pixels comprising the priority pixel, said target set, implementing the following substeps:
" identification d'un masque correspondant à une région modèle prédéterminée, le masque et l'ensemble cible formant un bloc ;"identifying a mask corresponding to a predetermined template region, the mask and the target set forming a block;
• recherche dans les blocs précédemment codés de l'image courante ou d'une image de référence d'un bloc source comprenant une zone similaire au masque ; " construction de l'ensemble cible à partir du bloc source, délivrant des pixels prédits ; et une étape de codage d'un résidu de prédiction pour une région formée de pixels prédits du macrobloc, dite région prédite, par détermination d'une différence entre les pixels prédits de la région prédite et des pixels d'origine appartenant à l'image courante (non codée).Searching in the previously coded blocks of the current image or of a reference image of a source block comprising a zone similar to the mask; "constructing the target set from the source block, delivering predicted pixels; and a step of encoding a prediction residue for a region of predicted pixels of the macroblock, said predicted region, by determining a difference between the predicted pixels of the predicted region and the original pixels belonging to the current (uncoded) image.
Selon l'invention, l'étape de codage est mise en œuvre dès que la région prédite respecte un critère de codage prédéterminé.According to the invention, the coding step is implemented as soon as the predicted region complies with a predetermined coding criterion.
L'invention propose ainsi d'améliorer les techniques de type « template matching » existantes, en travaillant directement sur un macrobloc, et en adaptant l'ordre de parcours des pixels du macrobloc pour la prédiction du macrobloc.The invention thus proposes to improve the existing "template matching" techniques by working directly on a macroblock, and by adapting the order of the macroblock pixels for the prediction of the macroblock.
On optimise de cette façon la qualité de la prédiction et donc la qualité du codage et du décodage d'images, tout en réduisant le débit nécessaire au codage.This optimizes the quality of the prediction and thus the quality of the coding and decoding of images, while reducing the bit rate necessary for coding.
On rappelle que selon l'Homme du Métier, l'efficacité d'une technique de type « template matching » appliquée à un macrobloc entier est limitée, car plus on avance vers la fin du macrobloc, plus les pixels prédits utilisés pour la prédiction sont éloignés des pixels à prédire. En effet, les pixels prédits au début du macrobloc n'ayant pas encore été codés/décodés (l'erreur de prédiction n'a pas encore été codée), les pixels prédits ne fournissent pas une prédiction suffisamment bonne, et risquent de propager des erreurs vers la fin du macrobloc et d'augmenter d'autant le coût de codage du résidu. II est ainsi possible de signaler une seule fois, pour l'ensemble du macrobloc, qu'une technique de type « template matching » est utilisée, sans avoir à le signaler pour chaque bloc.It will be recalled that, according to the skilled person, the efficiency of a template matching technique applied to an entire macroblock is limited because the further one moves towards the end of the macroblock, the more predicted pixels used for the prediction are away from the pixels to predict. Indeed, the pixels predicted at the beginning of the macroblock have not yet been coded / decoded (the prediction error has not yet been coded), the predicted pixels do not provide a sufficiently good prediction, and may propagate errors. errors towards the end of the macroblock and to increase by the same amount the cost of coding the residue. It is thus possible to signal once, for the entire macroblock, that a template matching technique is used, without having to report it for each block.
De plus, alors que selon la technique de « template matching » classique les pixels sont synthétisés dans un ordre fixe et prédéterminé, on propose selon l'invention d'adapter cet ordre de parcours en fonction d'un niveau de priorité affecté aux pixels, et de recalculer cet ordre de parcours lorsqu'un ensemble cible de pixels est prédit.In addition, whereas according to the conventional "template matching" technique, the pixels are synthesized in a fixed and predetermined order, it is proposed according to the invention to adapt this order of travel as a function of a priority level assigned to the pixels. and recalculate this course order when a target pixel array is predicted.
Le sens de parcours des pixels à l'intérieur d'un macrobloc est donc adaptatif, alors que selon les techniques de l'art antérieur, cet ordre de parcours était prédéfini et figé.The direction of travel of the pixels inside a macroblock is therefore adaptive, whereas according to the techniques of the prior art, this order of travel was predefined and fixed.
Finalement, on note que le résidu de prédiction, correspondant à la différence entre les pixels prédits de la région prédite et les pixels d'origine appartenant à l'image courante, peut être quasiment nul. Cela signifie que la prédiction est suffisante (par exemple pour une application visée : bas débit, basse qualité, etc). Dans ce cas, le résidu de prédiction obtenu est faible et peut être annulé lors de la quantification du résidu.Finally, it is noted that the prediction residue, corresponding to the difference between the predicted pixels of the predicted region and the original pixels belonging to the current image, can be practically nil. This means that the prediction is sufficient (for example for a targeted application: low speed, low quality, etc.). In this case, the obtained prediction residue is small and can be canceled during the quantization of the residue.
Par exemple, le critère de codage appartient au groupe comprenant : - un nombre de pixels prédits supérieur à un seuil prédéterminé ; - une configuration prédéterminée des pixels prédits.For example, the coding criterion belongs to the group comprising: a predicted number of pixels greater than a predetermined threshold; a predetermined configuration of the predicted pixels.
Par exemple, une telle configuration est en accord avec les transformées utilisées par le codeur, et correspond à un bloc 4x4 dans le cas d'un codeur H.264- AVC. Une telle configuration peut également être traitée par une transformée implémentée dans le codeur/décodeur, et correspond à un bloc 2x8, ou 8x2, ou 16x1, ou 1x16, ou n'importe quelle région de 16 pixels dans le cas d'une transformée de type SA-DCT (en anglais « Shape Adaptive DCT », en français « Transformée en cosinus discret à forme adaptative »).For example, such a configuration is in agreement with the transforms used by the encoder, and corresponds to a 4x4 block in the case of an H.264-AVC encoder. Such a configuration can also be processed by a transform implemented in the encoder / decoder, and corresponds to a 2x8, or 8x2, or 16x1, or 1x16 block, or any region of 16 pixels in the case of a transform. SA-DCT type (in English "Shape Adaptive DCT", in French "Adaptive form discrete cosine transform").
Ainsi, dès que suffisamment de pixels sont prédits (ou restaurés), on peut coder puis décoder la région prédite correspondante. Les pixels ainsi codés/décodés (ou reconstruits) peuvent alors être utilisés pour la prédiction des régions suivantes du macrobloc On considère que ces pixels codés/décodés appartiennent désormais à une zone « source » telle que définie en relation avec l'art antérieurThus, as soon as enough pixels are predicted (or restored), it is possible to code and decode the corresponding predicted region. Pixels thus encoded / decoded (or reconstructed) can then be used for the prediction of following regions of the macroblock It is considered that these coded / decoded pixels now belong to a "source" zone as defined in relation with the prior art
Par exemple, la région prédite comprend seize pixels prédits En d'autres termes, dès que seize pixels sont prédits (formant une région de 4x4 pixels, 2x8 pixels, 8x2 pixels, 16x1 pixels ou encore 1x16 pixels), on détermine le résidu associé à cette région, et on code/décode cette régionFor example, the predicted region comprises sixteen predicted pixels. In other words, as soon as sixteen pixels are predicted (forming a region of 4x4 pixels, 2x8 pixels, 8x2 pixels, 16x1 pixels or 1x16 pixels), the residue associated with this region, and we code / decode this region
Selon un mode de réalisation particulier de l'invention, le critère de détermination de priorité tient compte d'au moins un paramètre appartenant au groupe comprenant .According to a particular embodiment of the invention, the priority determination criterion takes account of at least one parameter belonging to the group comprising.
— un nombre de pixels précédemment prédits ou codés, dits pixels disponibles, adjacents audit au moins un pixel ,A number of previously predicted or coded pixels, said available pixels, adjacent to said at least one pixel,
- une présence d'un contour qui poursuit un contour provenant d'un ensemble de pixels précédemment prédits ou codés, dont un pixel au moins dudit ensemble est adjacent audit au moins un pixel ,a presence of a contour which follows a contour coming from a set of previously predicted or coded pixels, of which at least one pixel of said set is adjacent to said at least one pixel,
- un nombre de pixels précédemment prédits ou codés appartenant audit masque ,a number of previously predicted or coded pixels belonging to said mask,
— un paramètre statistique représentatif d'une activité du voisinage dudit pixel , — un nombre de candidats similaires audit masque, définis par exemple par la somme des différences absolues, comme décrit en relation avec l'art antérieurA statistical parameter representative of an activity of the vicinity of said pixel, a number of candidates similar to said mask, defined for example by the sum of the absolute differences, as described in relation with the prior art
Ainsi, le sens de parcours des pixels à l'intérieur d'un macrobloc tient compte de paramètres permettant d'optimiser le codage en améliorant l'efficacité de la prédiction et donc la qualité de la reconstruction des pixelsThus, the direction of travel of the pixels inside a macroblock takes into account parameters making it possible to optimize the coding by improving the efficiency of the prediction and therefore the quality of the reconstruction of the pixels.
Par exemple, l'un des paramètres pris en compte pour affecter une priorité à un pixel correspond au nombre de pixels disponibles déjà codés-décodés (ou reconstruit) pouvant être utilisés pour le codage de ce pixelFor example, one of the parameters taken into account to assign a priority to a pixel corresponds to the number of available pixels already coded-decoded (or reconstructed) that can be used for coding this pixel.
Ce paramètre peut avoir par exemple une valeur correspondant directement au nombre de pixels disponibles Un autre paramètre tient compte de la présence d'un contour incident dans un pixel, c'est-à-dire d'un contour qui est également présent dans un pixel adjacent déjà codé-décodé.This parameter can have for example a value corresponding directly to the number of pixels available Another parameter takes into account the presence of an incident contour in a pixel, that is to say a contour that is also present in an already coded-decoded adjacent pixel.
Ainsi, si un contour diagonal traverse un macrobloc, en provenance d'un macrobloc déjà codé-décodé, la technique selon un mode de réalisation de l'invention adapte l'ordre de parcours suivant le sens du contour, et l'ordre de parcours diagonal obtenu permet d'améliorer la qualité de la prédiction et ainsi la vitesse et la qualité du décodage. Ce paramètre indiquant la présence d'un contour incident dans un pixel (le pixel appartenant au contour), noté également paramètre de contour, peut avoir par exemple la valeur 1.Thus, if a diagonal contour passes through a macroblock from an already coded-decoded macroblock, the technique according to one embodiment of the invention adapts the order of travel according to the direction of the contour, and the order of travel. obtained diagonal improves the quality of the prediction and thus the speed and quality of the decoding. This parameter indicating the presence of an incident contour in a pixel (the pixel belonging to the contour), also noted as a contour parameter, may have for example a value of 1.
Encore un autre paramètre tient compte du nombre de pixels précédemment prédits ou codés présents dans le masque défini à proximité du pixel. On privilégie ainsi la prédiction d'un ensemble cible pour lequel le masque correspondant comprend le plus grand nombre de pixels déjà prédits. Ensuite, les valeurs des paramètres décrits ci-dessus peuvent être additionnées, ou multipliées, pour obtenir un niveau de priorité affecté à chaque pixel adjacent à un pixel précédemment prédit.Yet another parameter takes into account the number of previously predicted or coded pixels present in the mask defined near the pixel. This gives preference to the prediction of a target set for which the corresponding mask comprises the largest number of pixels already predicted. Then, the values of the parameters described above can be added, or multiplied, to obtain a priority level assigned to each pixel adjacent to a previously predicted pixel.
Selon un autre aspect de l'invention, au moins une des itérations est une itération de raffinement, au cours de laquelle l'étape d'affectation affecte un niveau de priorité de codage à au moins un pixel du macrobloc courant adjacent à au moins un pixel précédemment codé.According to another aspect of the invention, at least one of the iterations is a refinement iteration, in which the assignment step assigns a coding priority level to at least one pixel of the current macroblock adjacent to at least one previously coded pixel.
On tient compte ici des pixels codés/décodés, et non uniquement prédits. En effet, on peut accorder une plus grande confiance aux pixels codés/décodés qu'aux pixels uniquement prédits. On rappelle à cet effet que si les pixels prédits ne fournissent pas une prédiction suffisamment bonne, ils risquent de propager des erreurs vers la fin du macrobloc et d'augmenter le coût de codage du résidu. On utilise donc des pixels déjà codés/décodés pour raffiner la prédiction.Here coded / decoded pixels are considered, and not only predicted. Indeed, coded / decoded pixels can be given greater confidence than only predicted pixels. It is recalled to this effect that if the predicted pixels do not provide a sufficiently good prediction, they may propagate errors towards the end of the macroblock and increase the coding cost of the residue. Pixels already coded / decoded are therefore used to refine the prediction.
L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de codage décrit précédemment lorsque le programme est exécuté par un processeur. Ainsi, le procédé de codage selon l'invention peut être mis en œuvre de diverses manières, notamment sous forme câblée ou sous forme logicielle.The invention also relates to a computer program comprising instructions for implementing the encoding method described above when the program is executed by a processor. Thus, the coding method according to the invention can be implemented in various ways, in particular in hard-wired form or in software form.
Dans un autre mode de réalisation, l'invention concerne un dispositif de codage d'au moins une image, découpée en zones de taille standard, dites macroblocs, un macrobloc comprenant un ensemble de blocs de pixels.In another embodiment, the invention relates to a device for encoding at least one image, divided into standard size areas, called macroblocks, a macroblock comprising a set of blocks of pixels.
Selon l'invention, un tel dispositif comprend les moyens suivants, activés pour au moins un macrobloc courant d'une image courante et pour au moins deux itérations :According to the invention, such a device comprises the following means, activated for at least one current macroblock of a current image and for at least two iterations:
- des moyens d'affectation d'un niveau de priorité de codage à au moins un pixel du macrobloc courant, adjacent à au moins un pixel précédemment prédit, selon un critère de détermination de priorité prédéterminé ;means for assigning a coding priority level to at least one pixel of the current macroblock, adjacent to at least one previously predicted pixel, according to a predetermined priority determination criterion;
- des moyens de sélection d'un pixel présentant le niveau de priorité le plus élevé, dit pixel prioritaire ; - des moyens de prédiction d'un ensemble de pixels comprenant le pixel prioritaire, dit ensemble cible, comprenant :- Means for selecting a pixel having the highest priority level, said priority pixel; means for predicting a set of pixels comprising the priority pixel, said target set, comprising:
" des moyens d'identification d'un masque correspondant à une région modèle prédéterminée, le masque et l'ensemble cible formant un bloc ; " des moyens de recherche dans les blocs précédemment codés de l'image courante ou d'une image de référence d'un bloc source comprenant une zone similaire au masque ;means for identifying a mask corresponding to a predetermined model region, the mask and the target assembly forming a block; search means in the previously coded blocks of the current image or of a reference image a source block comprising a zone similar to the mask;
" des moyens de construction de l'ensemble cible à partir du bloc source, délivrant des pixels prédits ; et des moyens de codage d'un résidu de prédiction pour une région formée de pixels prédits du macrobloc, dite région prédite, par détermination d'une différence entre les pixels prédits de la région prédite et des pixels d'origine appartenant à l'image courante (non codée), les moyens de codage étant activés dès que la région prédite respecte un critère de codage prédéterminé. Un tel dispositif de codage est notamment adapté à mettre en œuvre le procédé de codage décrit précédemment. Il s'agit par exemple d'un codeur vidéo de type MPEG ou H.264, ou selon une future norme de compression vidéo, par exemple H.265. L'invention concerne également un signal représentatif d'au moins une image codée selon le procédé de codage décrit précédemment.means for constructing the target set from the source block, delivering predicted pixels, and coding means for a prediction residue for a predicted region of predicted pixels of the macroblock, said predicted region, by determination of a difference between the predicted pixels of the predicted region and the original pixels belonging to the current image (uncoded), the coding means being activated as soon as the predicted region complies with a predetermined coding criterion. Such a coding device is particularly suitable for implementing the coding method described above. This is, for example, a video coder of the MPEG or H.264 type, or according to a future video compression standard, for example H.265. The invention also relates to a signal representative of at least one image coded according to the coding method described above.
Un tel signal comprend au moins une information représentative du critère de codage, comme un seuil correspondant au nombre minimum de pixels que l'on doit prédire pour reconstruire une région prédite. Ce signal pourra bien sûr comporter les différentes caractéristiques relatives au procédé de codage selon l'invention.Such a signal comprises at least one piece of information representative of the coding criterion, such as a threshold corresponding to the minimum number of pixels that must be predicted to reconstruct a predicted region. This signal may of course include the various characteristics relating to the coding method according to the invention.
L'invention concerne également un procédé de décodage d'un signal représentatif d'au moins une image, découpée en zones de taille standard, dites macroblocs, un macrobloc comprenant un ensemble de blocs de pixels. Selon l'invention, un tel procédé met en œuvre au moins deux itérations des étapes suivantes, pour au moins un macrobloc courant d'une image courante :The invention also relates to a method for decoding a signal representative of at least one image, divided into zones of standard size, called macroblocks, a macroblock comprising a set of blocks of pixels. According to the invention, such a method implements at least two iterations of the following steps, for at least one current macroblock of a current image:
- affectation d'un niveau de priorité de codage à au moins un pixel du macrobloc courant, adjacent à au moins un pixel précédemment prédit, selon un critère de détermination de priorité prédéterminé ; - sélection d'un pixel présentant le niveau de priorité le plus élevé, dit pixel prioritaire ;assigning a coding priority level to at least one pixel of the current macroblock, adjacent to at least one previously predicted pixel, according to a predetermined priority determination criterion; selecting a pixel having the highest priority level, said priority pixel;
- prédiction d'un ensemble de pixels comprenant le pixel prioritaire, dit ensemble cible, mettant en œuvre les sous-étapes suivantes :prediction of a set of pixels comprising the priority pixel, said target set, implementing the following substeps:
" identification d'un masque correspondant à une région modèle prédéterminée, le masque et l'ensemble cible formant un bloc ;"identifying a mask corresponding to a predetermined template region, the mask and the target set forming a block;
" recherche dans les blocs précédemment codés de l'image courante ou d'une image de référence d'un bloc source comprenant une zone similaire au masque ; " construction de l'ensemble cible à partir du bloc source, délivrant des pixels prédits ; et en ce que ledit procédé comprend également :"search in the previously coded blocks of the current image or reference image of a source block including a mask-like area;" construction of the target set from the source block, delivering predicted pixels; and in that said method also comprises:
- une étape de réception d'au moins un résidu de prédiction ;a step of receiving at least one prediction residue;
- une étape de reconstruction d'une région formée de pixels prédits du macrobloc, dite région prédite, par ajout d'un résidu de prédiction correspondant à la région prédite, l'étape de reconstruction étant mise en œuvre dès que la région prédite respecte un critère de codage prédéterminé.a step of reconstructing a region formed of predicted pixels of the macroblock, said predicted region, by adding a prediction residue corresponding to the predicted region, the reconstruction step being implemented as soon as the predicted region complies with a predicted region; predetermined coding criterion.
Les caractéristiques et avantages relatifs à ce procédé de décodage sont les mêmes que ceux du procédé de codage. Par conséquent, ils ne sont pas détaillés plus amplement.The features and advantages relating to this decoding method are the same as those of the coding method. Therefore, they are not detailed further.
Un tel procédé de décodage est apte à décoder un signal tel que décrit précédemment.Such a decoding method is able to decode a signal as described above.
Ainsi, selon une caractéristique particulière, un tel procédé comprend une étape de réception d'au moins une information représentative du critère de codage.Thus, according to a particular characteristic, such a method comprises a step of receiving at least one piece of information representative of the coding criterion.
L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de décodage décrit ci-dessus, lorsque le programme est exécuté par un processeur. Ainsi, le procédé de décodage selon l'invention peut être mis en œuvre de diverses manières, notamment sous forme câblée ou sous forme logicielle.The invention also relates to a computer program comprising instructions for implementing the decoding method described above, when the program is executed by a processor. Thus, the decoding method according to the invention can be implemented in various ways, in particular in hard-wired form or in software form.
Dans un autre mode de réalisation, l'invention concerne un dispositif de décodage d'un signal représentatif d'au moins une image, découpée en zones de taille standard, dites macroblocs, un macrobloc comprenant un ensemble de blocs de pixels.In another embodiment, the invention relates to a device for decoding a signal representative of at least one image, divided into zones of standard size, called macroblocks, a macroblock comprising a set of blocks of pixels.
Selon l'invention, un tel dispositif comprend les moyens suivants, activés pour au moins un macrobloc courant d'une image courante et pour au moins deux itérations :According to the invention, such a device comprises the following means, activated for at least one current macroblock of a current image and for at least two iterations:
- des moyens d'affectation d'un niveau de priorité de codage à au moins un pixel du macrobloc courant, adjacent à au moins un pixel précédemment prédit, selon un critère de détermination de priorité prédéterminé ;means for assigning a coding priority level to at least one pixel of the current macroblock, adjacent to at least one pixel previously predicted, according to a predetermined priority determination criterion;
- des moyens de sélection d'un pixel présentant le niveau de priorité le plus élevé, dit pixel prioritaire ; - des moyens de prédiction d'un ensemble de pixels comprenant le pixel prioritaire, dit ensemble cible, comprenant :- Means for selecting a pixel having the highest priority level, said priority pixel; means for predicting a set of pixels comprising the priority pixel, said target set, comprising:
" des moyens d'identification d'un masque correspondant à une région modèle prédéterminée, le masque et l'ensemble cible formant un bloc ; • des moyens de recherche dans les blocs précédemment codés de l'image courante ou d'une image de référence d'un bloc source comprenant une zone similaire au masque ;means for identifying a mask corresponding to a predetermined model region, the mask and the target assembly forming a block; search means in the previously coded blocks of the current image or of a reference image a source block comprising a zone similar to the mask;
" des moyens de construction de l'ensemble cible à partir du bloc source, délivrant des pixels prédits ; ainsi que :"means for constructing the target set from the source block, delivering predicted pixels, as well as:
- des moyens de réception d'au moins un résidu de prédiction ;means for receiving at least one prediction residue;
- des moyens de reconstruction d'une région formée de pixels prédits du macrobloc, dite région prédite, par ajout d'un résidu de prédiction correspondant à la région prédite, activés dès que la région prédite respecte un critère de codage prédéterminé.means for reconstructing a region formed of predicted pixels of the macroblock, said predicted region, by adding a prediction residue corresponding to the predicted region, activated as soon as the predicted region complies with a predetermined coding criterion.
Un tel dispositif de décodage est notamment adapté à mettre en œuvre le procédé de décodage décrit précédemment. Il s'agit par exemple d'un décodeur vidéo de type MPEG ou H.264, ou selon une future norme de compression vidéo, par exemple H.265.Such a decoding device is particularly suitable for implementing the decoding method described above. This is for example a MPEG or H.264 video decoder, or according to a future video compression standard, for example H.265.
4. Liste des figures4. List of figures
D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : la figure 1, commentée en relation avec l'art antérieur, présente un schéma simplifié de la technique dite de « template matching » ; la figure 2 illustre un exemple de sens de parcours pour le codage des blocs d'un macrobloc ; - la figure 3 présente les principales étapes mises en œuvre au codage selon un mode de réalisation particulier de l'invention ; les figures 4 A à 4G illustrent l'application du procédé de codage de la figure 3 à un macrobloc ; la figure 5 montre les principales étapes mises en œuvre au décodage selon un mode de réalisation particulier de l'invention ; les figures 6 et 7 présentent respectivement la structure d'un dispositif de codage et d'un dispositif de décodage selon un mode de réalisation particulier de l'invention.Other features and advantages of the invention will appear more clearly on reading the following description of a particular embodiment, given as a simple illustrative and nonlimiting example, and the appended drawings, among which: FIG. 1, commented on in relation to the prior art, presents a simplified diagram of the so-called "template matching"technique; FIG. 2 illustrates an example of direction of travel for the coding of the blocks of a macroblock; - Figure 3 shows the main steps implemented in the coding according to a particular embodiment of the invention; FIGS. 4A to 4G illustrate the application of the coding method of FIG. 3 to a macroblock; Figure 5 shows the main steps implemented in the decoding according to a particular embodiment of the invention; Figures 6 and 7 respectively show the structure of a coding device and a decoding device according to a particular embodiment of the invention.
5. Description d'un mode de réalisation de l'invention 5.7 Principe général5. Description of an embodiment of the invention 5.7 General principle
Le principe général de l'invention repose sur le codage/décodage adaptatif d'un macrobloc, permettant de prédire des pixels, puis de coder/décoder des régions de pixels prédits, dès qu'on dispose d'un nombre suffisant de pixels prédits pour la transformation et le codage du résidu. Ainsi, le codage/décodage du macrobloc ne nécessite pas le codage/décodage des différents blocs du macrobloc, les uns à la suite des autres, selon un ordre de parcours prédéfini.The general principle of the invention is based on the adaptive coding / decoding of a macroblock, making it possible to predict pixels, and then to code / decode predicted pixel regions, as soon as there is a sufficient number of predicted pixels for each pixel. the transformation and coding of the residue. Thus, the coding / decoding of the macroblock does not require the coding / decoding of the different blocks of the macroblock, one after the other, according to a predefined order of travel.
La figure 3 illustre les principales étapes mises en œuvre côté codage, pour au moins un macrobloc courant d'une image courante. On nomme « frontière de prédiction » la ligne séparant les pixels déjà prédits des pixels non encore prédits, et « frontière de codage » une ligne séparant les pixels déjà codés/décodés des pixels non encore codés/décodés.FIG. 3 illustrates the main steps implemented on the coding side, for at least one current macroblock of a current image. The line dividing the previously predicted pixels from the not yet predicted pixels is called the "prediction boundary", and the "coding boundary" is a line separating the already coded / decoded pixels from the pixels not yet coded / decoded.
Ainsi, le procédé de codage met en œuvre au moins deux itérations des étapes suivantes : - affectation 31 d'un niveau de priorité de codage à au moins un pixel du macrobloc courant, adjacent à au moins un pixel précédemment prédit, selon un critère de détermination de priorité prédéterminé. En d'autres termes, on affecte un niveau de priorité aux pixels non encore prédits localisés au niveau de la frontière de prédiction. Lors de la première itération de codage d'un macrobloc, les frontières de prédiction et de codage sont superposées ;Thus, the coding method implements at least two iterations of the following steps: assigning a coding priority level to at least one pixel of the current macroblock, adjacent to at least one previously predicted pixel, according to a predetermined priority determination criterion. In other words, a priority level is assigned to the not yet predicted pixels located at the prediction boundary. During the first coding iteration of a macroblock, the prediction and coding boundaries are superimposed;
- sélection 32 d'un pixel présentant le niveau de priorité le plus élevé, dit pixel prioritaire p, parmi les pixels localisés au niveau de la frontière de prédiction ; - prédiction 33 d'un ensemble de pixels comprenant le pixel prioritaire, dit ensemble cible P, mettant en œuvre les sous-étapes suivantes :selecting 32 a pixel having the highest priority level, said priority pixel p, from the pixels located at the prediction boundary; - Prediction 33 of a set of pixels comprising the priority pixel, said target set P, implementing the following substeps:
" identification 331 d'un masque Tp correspondant à une région modèle prédéterminée, le masque Tp et l'ensemble cible P formant un bloc ; " recherche 332 dans les blocs précédemment codés de l'image courante ou d'une image de référence d'un bloc source comprenant une zone similaire au masque Tp ; • construction 333 de l'ensemble cible P à partir du bloc source, délivrant des pixels prédits. La frontière de prédiction se trouve donc déplacée pour englober les nouveaux pixels prédits."identification 331 of a mask Tp corresponding to a predetermined model region, the mask Tp and the target set P forming a block;" search 332 in the previously coded blocks of the current image or of a reference image of a source block comprising a zone similar to the mask Tp; Construction 333 of the target set P from the source block, delivering predicted pixels. The prediction boundary is thus displaced to encompass the new predicted pixels.
On teste alors (34) si une région formée de pixels prédits du macrobloc, dite région prédite, respecte un critère de codage prédéterminé.It is then tested (34) whether a region formed of predicted pixels of the macroblock, said predicted region, meets a predetermined coding criterion.
Si ce n'est pas le cas (341), alors on réitère les étapes précédentes en revenant à l'étape 31 d'affectation d'un niveau de priorité de codage.If this is not the case (341), then the previous steps are repeated by returning to step 31 of assigning a coding priority level.
Si la région prédite respecte (342) le critère de codage prédéterminé, alors le procédé de codage met en œuvre une étape de codage 35 d'un résidu de prédiction pour la région prédite du macrobloc, par détermination d'une différence entre les pixels prédits de la région prédite et des pixels d'origine appartenant à l'image courante. On rappelle que le résidu de prédiction peut être quasiment nul. Dans ce cas, le résidu de prédiction obtenu est annulé lors de l'étape de quantification.If the predicted region respects (342) the predetermined coding criterion, then the coding method implements a step of coding a prediction residue for the predicted region of the macroblock, by determining a difference between the predicted pixels. of the predicted region and original pixels belonging to the current image. It is recalled that the prediction residue can be virtually zero. In this case, the prediction residue obtained is canceled during the quantization step.
A l'issue de l'étape de codage, on considère que la région prédite est codée/décodée. Par conséquent, la frontière de codage se trouve déplacée pour englober les nouveaux pixels codés/décodés. Ces nouveaux pixels codés/décodés sont désormais considérés comme des pixels appartenant à la zone source de l'image, pouvant être utilisés pour la prédiction de pixels non prédits, ou le raffinement de pixels déjà prédits.At the end of the coding step, it is considered that the predicted region is coded / decoded. As a result, the coding boundary is shifted to encompass the new coded / decoded pixels. These new coded / decoded pixels are now considered as pixels belonging to the source zone of the image, which can be used for the prediction of unpredicted pixels, or the refinement of previously predicted pixels.
5.2 Description d'un mode de réalisation particulier pour la mise en œuvre du codage5.2 Description of a particular embodiment for the implementation of the coding
On illustre désormais, en relation avec les figures 4 A à 4G, l'application d'un mode de réalisation particulier du procédé de codage au cas de la prédiction intra dans un codeur H.264 par exemple, utilisant des macroblocs de taille 16x16, découpés en blocs de taille 4x4. Bien entendu, il ne s'agit que d'un exemple. En effet, l'invention s'applique également à un codeur d'images utilisant des régions de taille et de forme arbitraire, dans le contexte d'une prédiction intra ou interimages.FIGS. 4A to 4G illustrate the application of a particular embodiment of the coding method to the case of intra prediction in an H.264 coder for example, using macroblocks of size 16 × 16. cut into blocks of 4x4 size. Of course, this is just an example. Indeed, the invention also applies to an image encoder using regions of arbitrary size and shape, in the context of intra or interimage prediction.
Selon cet exemple d'application, le macrobloc courant MB est composé de seize blocs comprenant chacun 4x4 pixels. Ce macrobloc MB est adjacent, dans l'image, à trois macroblocs déjà codés-décodés (localisés au-dessus du macrobloc courant - MBj, à gauche du macrobloc courant - MBL, et au-dessus à gauche et du macrobloc courant - MBJL). On entend ici par « adjacent » un macrobloc qui touche la frontière du macrobloc courant.According to this application example, the current macroblock MB is composed of sixteen blocks each comprising 4x4 pixels. This macroblock MB is adjacent, in the image, to three already encoded-decoded macroblocks (located above the current macroblock - MBj, to the left of the current macroblock - MBL, and above to the left and the current macroblock - MBJL). . By "adjacent" is meant here a macroblock that touches the boundary of the current macroblock.
On cherche selon ce mode de réalisation, à restaurer le macrobloc courant MB de manière optimale, en respectant un ordre de priorité pour le codage/décodage (ou la reconstruction) des informations.According to this embodiment, it is sought to restore the current MB macroblock optimally, respecting an order of priority for coding / decoding (or reconstruction) information.
On considère que les macroblocs MBj, MBL et MBJL- précédemment codés/décodés (représentés par des hachures diagonales dans les deux sens), appartiennent à une zone source de l'image, que l'on peut utiliser pour la prédiction de régions non encore prédites. Les figures 4B à 4G illustrent chacune le résultat obtenu après une itération de prédiction telle que décrite en relation avec la figure 3, pour le codage du macrobloc courant MB.Macroblocks MBj, MBL and MBJL- previously coded / decoded (represented by diagonal hatching in both directions) are considered to belong to a source area of the image, which can be used for the prediction of regions not yet predicted. FIGS. 4B to 4G each illustrate the result obtained after a prediction iteration as described with reference to FIG. 3, for the coding of the current macroblock MB.
Comme illustré en figure 4B, les macroblocs MBj, MBL et MBJL précédemment codés/décodés, définissent avec le macrobloc courant MB une frontière de codage FR. Cette frontière de codage FR (illustrée sur les autres figures 4C à 4G en traits pointillés courts) se superpose avec une frontière de prédiction Fp (illustrée en traits pointillés longs) au cours de la première itération.As illustrated in FIG. 4B, the previously coded / decoded macroblocks MBj, MBL and MBJL define, with the current macroblock MB, a coding boundary FR. This FR coding boundary (illustrated in the other figures 4C to 4G in short dotted lines) is superimposed with a prediction boundary Fp (illustrated in long dashed lines) during the first iteration.
Au cours d'une première itération selon l'algorithme décrit en figure 3, on affecte un niveau de priorité de codage aux pixels non prédits du macrobloc MB localisés au niveau de la frontière de prédiction Fp. Par exemple, on affecte un niveau de priorité à tous les pixels du macrobloc MB adjacents à un pixel précédemment prédit des macroblocs MBj, MBL et MBJL précédemment codés/décodés. On considère par exemple que le pixel p, situé dans le coin en haut à gauche du macrobloc MB, présente le niveau de priorité le plus élevé. En effet, ce pixel est adjacent à cinq pixels précédemment codés/décodés (et donc prédits). On nomme ce pixel « pixel prioritaire ». On cherche alors à prédire un ensemble cible P, représenté par des hachures horizontales sur la figure 4B, comprenant le pixel prioritaire p. Cet ensemble cible correspond par exemple aux trois premières lignes et trois premières colonnes du premier bloc du macrobloc MB.During a first iteration according to the algorithm described in FIG. 3, a coding priority level is assigned to the unpredicted pixels of the macroblock MB located at the prediction boundary Fp. For example, a priority level is assigned to all the pixels of the MB macroblock adjacent to a previously predicted pixel MBJ, MBL and MBJL macroblocks previously coded / decoded. Consider for example that the pixel p, located in the top left corner of macroblock MB, has the highest priority level. Indeed, this pixel is adjacent to five pixels previously coded / decoded (and therefore predicted). This pixel is called "priority pixel". One then seeks to predict a target set P, represented by horizontal hatching in FIG. 4B, comprising the priority pixel p. This target set corresponds for example to the first three lines and first three columns of the first block MB macroblock.
Pour ce faire, on identifie un masque Tp, tel que le masque Tp et l'ensemble cible P forment un bloc (voir la figure 4A pour plus de clarté).To do this, a mask Tp is identified, such that the mask Tp and the target set P form a block (see FIG. 4A for the sake of clarity).
On cherche alors dans les blocs précédemment codés de l'image courante (dans le cas d'une prédiction intra) ou d'une image de référence (dans le cas d'une prédiction inter) un bloc source comprenant une zone similaire Tn au masque Tp. Cette région de recherche comprenant un ensemble de blocs précédemment codés/décodés (ou reconstruits), encore appelée zone source, est délimitée par la frontière de codage. En d'autres termes, on cherche dans la zone source un « template » Tn (ou masque) le plus proche du masque Tp, puis on construit l'ensemble cible P à partir du bloc source ainsi identifié. Pour ce faire, on peut recopier dans l'ensemble cible P les pixels du bloc source identifiés n'appartenant pas à la zone similaire Tn. Cette technique de « template matching » est plus précisément décrite en relation avec l'art antérieur. On obtient de cette façon une prédiction de l'ensemble cible P, délivrant des pixels prédits.In the previously coded blocks of the current image (in the case of an intra prediction) or of a reference image (in the case of an inter prediction), a source block comprising a similar zone Tn in the mask is then searched. Tp. This search region comprising a set of previously coded / decoded (or reconstructed) blocks, also called source zone, is delimited by the coding boundary. In other words, we look in the source area for a "template" Tn (or mask) closest to the mask Tp, and then we build the target set P from the source block thus identified. To do this, it is possible to copy in the target set P the pixels of the source block identified that do not belong to the similar zone Tn. This "template matching" technique is more precisely described in relation to the prior art. In this way, a prediction of the target set P, delivering predicted pixels, is obtained.
Comme le nombre de pixels prédits n'est pas suffisant pour coder/décoder une région du macrobloc MB, on recommence les étapes précédentes au cours d'une deuxième itération. Comme illustré en figure 4C, on voit que la frontière de prédiction Fp s'est déplacée, pour englober les nouveaux pixels prédits. En revanche, la frontière de codage FR n'a pas évolué.Since the number of predicted pixels is not sufficient to code / decode a region of the macroblock MB, the preceding steps are repeated during a second iteration. As illustrated in FIG. 4C, it can be seen that the prediction boundary Fp has moved to encompass the new predicted pixels. In contrast, the FR encoding boundary has not changed.
Plus précisément, au cours d'une deuxième itération, on affecte un nouveau niveau de priorité de codage aux pixels non prédits du macrobloc MB adjacents à un pixel précédemment prédit. Ces pixels non prédits correspondent aux pixels localisés au niveau de la frontière de prédiction Fp.More precisely, during a second iteration, a new coding priority level is assigned to the unpredicted pixels of the MB macroblock adjacent to a previously predicted pixel. These non-predicted pixels correspond to the pixels located at the prediction boundary Fp.
On considère par exemple que le pixel p, correspondant au pixel localisé sur la quatrième ligne, quatrième colonne du macrobloc MB, présente le niveau de priorité le plus élevé. Par exemple, ce pixel prioritaire p est localisé sur un contour traversant l'ensemble cible défini à la première itération.For example, it is considered that the pixel p, corresponding to the pixel located on the fourth line, fourth column of the macroblock MB, has the highest priority level. For example, this priority pixel p is located on a contour crossing the target set defined at the first iteration.
On cherche à prédire un nouvel ensemble cible P, représenté par des hachures horizontales sur la figure 4C, comprenant le pixel prioritaire p. Pour ce faire, on identifie un nouveau masque Tp, tel que le masque Tp et l'ensemble cibleIt is sought to predict a new target set P, represented by horizontal hatching in FIG. 4C, comprising the priority pixel p. To do this, we identify a new mask Tp, such as the mask Tp and the target set
P forment un bloc. On note que la forme de l'ensemble cible P et du masque Tp (c'est-à-dire le nombre de pixels et la configuration des pixels) n'évolue pas au cours des différentes itérations. En revanche, les pixels présents dans l'ensemble cible P et dans le masque Tp diffèrent d'une itération à l'autre.P form a block. Note that the shape of the target set P and the mask Tp (that is to say the number of pixels and the configuration of the pixels) does not change during the different iterations. On the other hand, the pixels present in the target set P and in the mask Tp differ from one iteration to the other.
On cherche alors dans la zone source un bloc source comprenant une zone similaire Tn au masque Tp. Cette région de recherche est la même que pour la première itération, puisque la frontière de codage FR n'a pas évolué.A source block comprising a similar zone Tn to the mask Tp is then searched in the source zone. This research area is the same as for the first iteration, since the FR coding boundary has not evolved.
On obtient de cette façon une prédiction de l'ensemble cible P, délivrant des pixels prédits.In this way, a prediction of the target set P, delivering predicted pixels, is obtained.
Comme le nombre de pixels prédits n'est pas suffisant pour coder/décoder une région du macrobloc MB, on recommence les étapes précédentes au cours d'une troisième itération (dont le résultat est illustré en figure 4D), puis d'une quatrième itération (dont le résultat est illustré en figure 4E), puis d'une k-ième itération (dont le résultat est illustré en figure 4F).Since the number of predicted pixels is not sufficient to code / decode a region of the macroblock MB, the preceding steps are repeated during a third iteration (the result of which is illustrated in FIG. 4D) and then a fourth iteration. (whose result is illustrated in FIG. 4E), then a kth iteration (the result of which is illustrated in FIG. 4F).
A l'issue des troisième et quatrième itérations, le nombre de pixels prédits n'est pas suffisant pour coder/décoder une région du macrobloc MB. Par conséquent, la frontière de codage FR n'a pas évolué. En revanche, la frontière de prédiction Fp s'est déplacée, pour englober les nouveaux pixels prédits.At the conclusion of the third and fourth iterations, the number of predicted pixels is not sufficient to code / decode a region of the macroblock MB. As a result, the FR encoding boundary has not changed. In contrast, the prediction boundary Fp has shifted to encompass the new predicted pixels.
A l'issue de la k-ième itération, on considère que le nombre de pixels prédits est suffisant pour coder/décoder (ou reconstruire) une région prédite du macrobloc MB, en codant un résidu de prédiction associé à cette région. Par exemple, un nombre suffisant de pixels a été prédit pour que ces pixels prédits puissent être utilisés pour une transformation et un codage du résidu. Par exemple le premier bloc B l (localisé en haut à gauche du macrobloc MB) est totalement prédit. Bien entendu, cette étape de codage du résidu peut être mise en œuvre pour coder/décoder (ou reconstruire) une région prédite de taille différente, comme une région formée de 2x2 pixels prédits, 4x4 pixels prédits, 8x8 pixels prédits, 2x8 pixels prédits, 8x2 pixels prédits, 16x1 pixels prédits, 1x16 pixels prédits, etc. On pourrait donc reconstruire un bloc de données dès que 16 pixels ont été prédits (par exemple 16 pixels de la même ligne, ou de la même colonne, ...).At the end of the kth iteration, it is considered that the number of predicted pixels is sufficient to code / decode (or reconstruct) a predicted region of the macroblock MB, by coding a prediction residue associated with this region. For example, a sufficient number of pixels has been predicted for these predicted pixels to be used for transformation and coding of the residue. For example, the first block B 1 (located at the top left of the macroblock MB) is totally predicted. Of course, this residue coding step can be implemented to code / decode (or reconstruct) a predicted region of different size, such as a region consisting of 2x2 predicted pixels, 4x4 predicted pixels, 8x8 predicted pixels, 2x8 predicted pixels, 8x2 predicted pixels, 16x1 predicted pixels, 1x16 predicted pixels, etc. One could therefore reconstruct a block of data as soon as 16 pixels have been predicted (for example 16 pixels of the same line, or of the same column, ...).
En d'autres termes, cette étape de codage du résidu est mise en œuvre dès que la région prédite respecte un critère de codage prédéterminé, comme un nombre de pixels prédits supérieur à un seuil prédéterminé, ou une configuration spécifique des pixels prédits. A l'issue de cette étape de codage, le premier bloc Bl du macrobloc MB est reconstruit (c'est-à-dire codé et décodé avec son résidu). Par conséquent, la frontière de codage FR se trouve déplacée pour englober ce nouveau bloc Bl codé/décodé, qui fait désormais partie de la zone source de l'image, et peut servir de source fiable pour la prédiction des régions restantes à restaurer du macrobloc MB. On rappelle qu'il n'est en revanche pas possible d'utiliser, pour la prédiction, des pixels prédits mais non reconstruits.In other words, this step of coding the residue is implemented as soon as the predicted region respects a predetermined coding criterion, such as a predicted number of pixels greater than a predetermined threshold, or a specific configuration of the predicted pixels. At the end of this coding step, the first block B1 of the macroblock MB is reconstructed (that is to say encoded and decoded with its residue). Therefore, the FR encoding boundary is shifted to encompass this new encoded / decoded B block, which is now part of the source area of the image, and can serve as a reliable source for predicting the remaining regions to be restored from the macroblock. MB. It is recalled that it is however not possible to use, for the prediction, predicted but not reconstructed pixels.
Au cours d'une itération k+1, dont le résultat est illustré en figure 4G, on peut donc prédire l'ensemble cible P en se servant du bloc Bl. De plus, il est également possible de raffiner la prédiction de certains pixels lorsqu'une région a été codée/décodée.During an iteration k + 1, the result of which is illustrated in FIG. 4G, it is therefore possible to predict the target set P using the block B1. In addition, it is also possible to refine the prediction of certain pixels when a region has been coded / decoded.
Par exemple, comme illustré en figure 4G, il est possible de raffiner la prédiction de la région prédite localisée entre les frontières de prédiction Fp et de codage FR en tenant compte de la nouvelle zone source. Ainsi, l'invention selon ce mode de réalisation propose de coder/décoderFor example, as illustrated in FIG. 4G, it is possible to refine the prediction of the predicted region located between the prediction Fp and FR coding boundaries, taking into account the new source zone. Thus, the invention according to this embodiment proposes to code / decode
(ou reconstruire) une région du macrobloc dès que suffisamment de pixels ont été prédits et peuvent être utilisés pour une transformation et codage du résidu. Ces pixels sont alors codés (pixels prédits auxquels on ajoute un résidu de prédiction) et peuvent servir à leur tour de prédiction. Ainsi l'invention propose plusieurs avantages découlant de la mise en œuvre d'au moins un mode de réalisation :(or rebuild) a region of the macroblock as soon as enough pixels have been predicted and can be used for residue transformation and coding. These pixels are then coded (predicted pixels to which a prediction residue is added) and can in turn be used for prediction. Thus the invention proposes several advantages resulting from the implementation of at least one embodiment:
- l'algorithme peut progresser librement dans le macrobloc en restaurant/prédisant des régions d'image « à cheval » sur plusieurs blocs ; - la reconstruction des blocs (de taille 4x4 selon le standard H.264) n'est pas imposée selon un ordre prédéterminé.the algorithm can progress freely in the macroblock by restoring / predicting image regions "on horseback" over several blocks; the reconstruction of the blocks (4x4 size according to the H.264 standard) is not imposed according to a predetermined order.
On note également que la solution proposée peut s'intégrer sans difficulté dans un codeur vidéo basé macrobloc de type H.264, sans modifier en profondeur son fonctionnement. Pour cela, il suffit par exemple d'ajouter un nouveau mode de prédiction spatiale des macroblocs, ou de remplacer plusieurs modes existants peu utilisés dans le contexte de la présente invention. En particulier, le processus d'optimisation débit-distorsion reste inchangé.We also note that the proposed solution can be integrated without difficulty in a video coder based macroblock type H.264, without substantially changing its operation. For that, it is enough for example to add a new mode of spatial prediction of the macroblocks, or to replace several existing modes little used in the context of the present invention. In particular, the rate-distortion optimization process remains unchanged.
5.3 Signal5.3 Signal
Une fois l'image ou les images codées, le signal représentatif de la ou des images codées selon le procédé de codage décrit ci-dessus peut être transmis à un décodeur et/ou stocké sur un support d'enregistrement.Once the image or the coded images, the signal representative of the encoded image (s) according to the coding method described above can be transmitted to a decoder and / or stored on a recording medium.
Ce signal peut transporter des informations particulières. Par exemple, ce signal peut transporter au moins une information représentative du critère de codage, comme un seuil correspondant au nombre minimum de pixels que l'on doit prédire pour reconstruire une région prédite.This signal can carry particular information. For example, this signal may carry at least one piece of information representative of the coding criterion, such as a threshold corresponding to the minimum number of pixels that must be predicted to reconstruct a predicted region.
Ce signal peut également transmettre une information représentative du critère de détermination de priorité. En effet, la priorité des pixels à prédire, localisés au niveau de la frontière de prédiction, peut être calculée au codeur et transmise au décodeur, ou alternativement recalculée au décodeur. Ce signal peut également transporter le ou les résidus de prédiction obtenus par comparaison de l'image courante et de l'image prédite.This signal can also transmit information representative of the priority determination criterion. Indeed, the priority of the pixels to be predicted, located at the level of the prediction boundary, can be calculated at the encoder and transmitted to the decoder, or alternatively recalculated to the decoder. This signal can also transport the prediction residue (s) obtained by comparing the current image and the predicted image.
5.4 Décodage5.4 Decoding
On présente désormais en relation avec la figure 5 les principales étapes de décodage d'un signal représentatif d'au moins une image codée tel que décrit précédemment, mises en œuvre dans un décodeur vidéo de type H.264 par exemple.The main decoding steps of a signal representative of at least one coded image as described previously, implemented in a video decoder of the H.264 type, for example, are now presented in relation with FIG.
Un tel décodeur met en œuvre les étapes suivantes, pour au moins une image courante :Such a decoder implements the following steps, for at least one current image:
- au moins deux itérations It 51 des étapes suivantes, pour au moins un macrobloc courant d'une image courante : o affectation d'un niveau de priorité de codage à au moins un pixel du macrobloc courant, adjacent à au moins un pixel précédemment prédit, selon un critère de détermination de priorité prédéterminé ; o sélection d'un pixel présentant le niveau de priorité le plus élevé, dit pixel prioritaire ; o prédiction d'un ensemble de pixels comprenant ledit pixel prioritaire, dit ensemble cible ;at least two iterations It 51 of the following steps, for at least one current macroblock of a current image: assignment of a coding priority level to at least one pixel of the current macroblock, adjacent to at least one pixel previously predicted according to a predetermined priority determination criterion; selecting a pixel having the highest priority level, said priority pixel; o prediction of a set of pixels comprising said priority pixel, said target set;
- une étape de réception 52 d'au moins un résidu de prédiction ;a step of receiving 52 of at least one prediction residue;
- une étape de reconstruction 53 d'une région formée de pixels prédits du macrobloc, dite région prédite, par ajout d'un résidu de prédiction correspondant à la région prédite, l'étape de reconstruction étant mise en œuvre dès que ladite région prédite respecte un critère de codage prédéterminé.a step of reconstruction 53 of a region formed of predicted pixels of the macroblock, said predicted region, by adding a prediction residue corresponding to the predicted region, the reconstruction step being implemented as soon as said predicted region respects a predetermined coding criterion.
Au moins une information représentative de ce critère de codage peut être véhiculée par le signal. Dans ce cas, le procédé de décodage comprend une étape supplémentaire de réception de l'information représentative de ce critère de codage. De même, le procédé de décodage peut mettre en œuvre une étape supplémentaire de réception d'une information représentative du critère de détermination de priorité. Les itérations 51 sont similaires à celles décrites au niveau du codage, et ne sont pas décrite plus en détail ici.At least one piece of information representative of this coding criterion may be conveyed by the signal. In this case, the decoding method comprises an additional step of receiving the information representative of this coding criterion. Similarly, the decoding method may implement an additional step of receiving information representative of the priority determination criterion. The iterations 51 are similar to those described in the coding, and are not described in more detail here.
De manière simplifiée, l'algorithme de décodage répète les étapes suivantes jusqu'à ce que le macrobloc soit entièrement reconstruit :In a simplified manner, the decoding algorithm repeats the following steps until the macroblock is completely reconstructed:
- détermination d'un niveau de priorité pour les pixels adjacents à des pixels déjà prédits (localisés au niveau de la frontière d prédiction) ;determining a priority level for pixels adjacent to already predicted pixels (located at the prediction boundary);
- prédiction d'un ensemble cible associé au pixel de plus haute priorité, en utilisant une technique de « template matching » ;prediction of a target set associated with the highest priority pixel, using a "template matching" technique;
- dès qu'un nombre suffisant de nouveaux pixels sont restaurés, ajout d'un résidu de prédiction associé à la région ainsi prédite, permettant de reconstruire cette région. Les pixels de la région reconstruite deviennent alors des pixels source (appartenant à une zone source) qui peuvent être utilisés pour la prédiction des régions suivantes du macrobloc. 5.5 Structures du codeur et du décodeuras soon as a sufficient number of new pixels are restored, adding a prediction residue associated with the region thus predicted, making it possible to reconstruct this region. The pixels of the reconstructed region then become source pixels (belonging to a source area) that can be used for the prediction of the subsequent regions of the macroblock. 5.5 Encoder and decoder structures
On présente finalement, en relation avec les figures 6 et 7, les structures simplifiées d'un dispositif de codage et d'un dispositif de décodage mettant respectivement en œuvre une technique de codage et une technique de décodage telles que décrites ci-dessus.Finally, with reference to FIGS. 6 and 7, the simplified structures of a coding device and a decoding device introducing respectively implement a coding technique and a decoding technique as described above.
Un dispositif de codage tel qu'illustré en figure 6 comprend une mémoire 61 comprenant une mémoire tampon, une unité de traitement 62, équipée par exemple d'un microprocesseur μP, et pilotée par le programme d'ordinateur 63, mettant en œuvre le procédé de codage selon l'invention.A coding device as illustrated in FIG. 6 comprises a memory 61 comprising a buffer memory, a processing unit 62, equipped for example with a microprocessor μP, and driven by the computer program 63, implementing the method coding according to the invention.
A l'initialisation, les instructions de code du programme d'ordinateur 63 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 62. L'unité de traitement 62 reçoit une image courante à coder. Le microprocesseur de l'unité de traitement 62 met en œuvre les étapes du procédé de codage décrit précédemment, selon les instructions du programme d'ordinateur 63, pour coder l'image courante. Pour cela, le dispositif de codage comprend, outre la mémoire tampon 61, des moyens d'affectation d'un niveau de priorité de codage à au moins un pixel d'un macrobloc courant, des moyens de sélection d'un pixel présentant le niveau de priorité le plus élevé, des moyens de prédiction d'un ensemble de pixels comprenant le pixel prioritaire et des moyens de codage d'un résidu de prédiction pour une région formée de pixels prédits du macrobloc.At initialization, the code instructions of the computer program 63 are for example loaded into a RAM before being executed by the processor of the processing unit 62. The processing unit 62 receives a current image at code. The microprocessor of the processing unit 62 implements the steps of the coding method described above, according to the instructions of the computer program 63, for coding the current image. For this purpose, the coding device comprises, in addition to the buffer memory 61, means for assigning a coding priority level to at least one pixel of a current macroblock, means for selecting a pixel presenting the level of highest priority, means for predicting a set of pixels comprising the priority pixel and means for coding a prediction residue for a region formed of predicted pixels of the macroblock.
Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 62. Un dispositif de décodage tel qu'illustré en figure 7 comprend une mémoire 71 comprenant une mémoire tampon, une unité de traitement 72, équipée par exemple d'un microprocesseur μP, et pilotée par le programme d'ordinateur 73, mettant en œuvre le procédé de décodage selon l'invention.These means are controlled by the microprocessor of the processing unit 62. A decoding device as illustrated in FIG. 7 comprises a memory 71 comprising a buffer memory, a processing unit 72, equipped for example with a microprocessor μP, and controlled by the computer program 73, implementing the decoding method according to the invention.
A l'initialisation, les instructions de code du programme d'ordinateur 73 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 72. L'unité de traitement 72 reçoit en entrée un signal représentatif d'au moins une image codée. Le microprocesseur de l'unité de traitement 72 met en œuvre les étapes du procédé de décodage décrit précédemment, selon les instructions du programme d'ordinateur 73, pour déterminer reconstruire l'image courante. Pour cela, le dispositif de décodage comprend, outre la mémoire tampon 71, des moyens d'affectation d'un niveau de priorité de codage à au moins un pixel d'un macrobloc courant, des moyens de sélection d'un pixel présentant le niveau de priorité le plus élevé, des moyens de prédiction d'un ensemble de pixels comprenant le pixel prioritaire, des moyens de réception d'au moins un résidu de prédiction et des moyens de reconstruction d'une région formée de pixels prédits du macrobloc.At initialization, the code instructions of the computer program 73 are for example loaded into a RAM memory before being executed by the processor of the processing unit 72. The processing unit 72 receives as input a signal representative of at least one coded picture. The microprocessor of the processing unit 72 implements the steps of the decoding method described above, according to the instructions of the computer program 73, to determine reconstructing the current image. For this, the decoding device comprises, in addition to the buffer memory 71, means for assigning a coding priority level to at least one pixel of a current macroblock, means for selecting a pixel having the highest priority level, means for predicting a set of pixels comprising the priority pixel, means for receiving at least one prediction residue and means for reconstructing a region formed of predicted pixels of the macroblock.
Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 72. These means are controlled by the microprocessor of the processing unit 72.

Claims

REVENDICATIONS
1. Procédé de codage d'au moins une image, découpée en macroblocs, un macrobloc comprenant un ensemble de blocs de pixels, caractérisé en ce que ledit procédé met en œuvre, pour au moins un macrobloc courant d'une image courante : au moins deux itérations des étapes suivantes :A method for encoding at least one image, divided into macroblocks, a macroblock comprising a set of blocks of pixels, characterized in that said method implements, for at least one current macroblock of a current image: at least one two iterations of the following steps:
- affectation (31) d'un niveau de priorité de codage à au moins un pixel dudit macrobloc courant, adjacent à au moins un pixel précédemment prédit, selon un critère de détermination de priorité prédéterminé ; - sélection (32) d'un pixel présentant le niveau de priorité le plus élevé, dit pixel prioritaire ;assigning (31) a coding priority level to at least one pixel of said current macroblock, adjacent to at least one previously predicted pixel, according to a predetermined priority determination criterion; selecting (32) a pixel having the highest priority level, said priority pixel;
- prédiction (33) d'un ensemble de pixels comprenant ledit pixel prioritaire, dit ensemble cible, mettant en œuvre les sous-étapes suivantes : " identification (331) d'un masque correspondant à une région modèle prédéterminée adjacente audit ensemble cible, ledit masque et ledit ensemble cible formant un bloc ;prediction (33) of a set of pixels comprising said priority pixel, said target set, implementing the following substeps: "identification (331) of a mask corresponding to a predetermined model region adjacent to said target set, said mask and said target assembly forming a block;
" recherche (332) dans les blocs précédemment codés de ladite image courante ou d'une image de référence d'un bloc source comprenant une zone similaire audit masque ;"searching (332) in the previously encoded blocks of said current image or of a reference image of a source block including a region similar to said mask;
" construction (333) dudit ensemble cible à partir dudit bloc source, délivrant des pixels prédits ; et une étape de codage (35) d'un résidu de prédiction pour une région formée de pixels prédits dudit macrobloc, dite région prédite, par détermination d'une différence entre les pixels prédits de ladite région prédite et des pixels d'origine correspondants, lesdits pixels d'origine appartenant à ladite image courante, ladite étape de codage étant mise en œuvre dès que ladite région prédite respecte un critère de codage prédéterminé, avant que la totalité des pixels dudit macrobloc ne soit prédite. "constructing (333) said target set from said source block, delivering predicted pixels; and a step of encoding (35) a prediction residue for a region of predicted pixels of said macroblock, said predicted region, by determining a difference between the predicted pixels of said predicted region and corresponding original pixels, said original pixels belonging to said current image, said coding step being implemented as soon as said predicted region complies with a predetermined coding criterion, before all the pixels of said macroblock are predicted.
2. Procédé de codage selon la revendication 1, caractérisé en ce que ledit critère de codage appartient au groupe comprenant :2. Coding method according to claim 1, characterized in that said encoding criterion belongs to the group comprising:
- un nombre de pixels prédits supérieur à un seuil prédéterminé ;a number of predicted pixels greater than a predetermined threshold;
- une configuration prédéterminée des pixels prédits.a predetermined configuration of the predicted pixels.
3. Procédé de codage selon la revendication 1, caractérisé en ce que ladite région prédite comprend seize pixels prédits.3. coding method according to claim 1, characterized in that said predicted region comprises sixteen predicted pixels.
4. Procédé de codage selon la revendication 1, caractérisé en ce que ledit critère de détermination de priorité tient compte d'au moins un paramètre appartenant au groupe comprenant :4. Coding method according to claim 1, characterized in that said priority determination criterion takes account of at least one parameter belonging to the group comprising:
- un nombre de pixels précédemment prédits ou codés, adjacents audit au moins un pixel ;a number of previously predicted or coded pixels adjacent to said at least one pixel;
- une présence d'un contour qui poursuit un contour provenant d'un ensemble de pixels précédemment prédits ou codés, dont un pixel au moins dudit ensemble est adjacent audit au moins un pixel ;a presence of a contour which follows a contour coming from a set of previously predicted or coded pixels, of which at least one pixel of said set is adjacent to said at least one pixel;
- un nombre de pixels précédemment prédits ou codés appartenant audit masque ;a number of previously predicted or coded pixels belonging to said mask;
- un paramètre statistique représentatif d'une activité du voisinage dudit pixel ;a statistical parameter representative of an activity of the neighborhood of said pixel;
- un nombre de candidats similaires audit masque.a number of candidates similar to said mask.
5. Procédé de codage selon la revendication 1, caractérisé en ce qu'au moins une desdites itérations est une itération de raffinement, au cours de laquelle ladite étape d'affectation affecte un niveau de priorité de codage à au moins un pixel dudit macrobloc courant adjacent à au moins un pixel précédemment codé.The coding method as claimed in claim 1, wherein at least one of said iterations is a refinement iteration, during which said assignment step assigns a coding priority level to at least one pixel of said current macroblock. adjacent to at least one previously coded pixel.
6. Programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de codage selon la revendication 1 lorsque ledit programme est exécuté par un processeur.Computer program comprising instructions for implementing the coding method according to claim 1 when said program is executed by a processor.
7. Dispositif de codage d'au moins une image, découpée en zones de taille standard, dites macroblocs, un macrobloc comprenant un ensemble de blocs de pixels, caractérisé en ce que ledit dispositif comprend les moyens suivants, activés pour au moins un macrobloc courant d'une image courante et pour au moins deux itérations :7. Device for coding at least one image, divided into standard size zones, called macroblocks, a macroblock comprising a set of blocks of pixels, characterized in that said device comprises the following means, activated for at least one current macroblock of a current image and for at least two iterations:
- des moyens d'affectation (31) d'un niveau de priorité de codage à au moins un pixel dudit macrobloc courant, adjacent à au moins un pixel précédemment prédit, selon un critère de détermination de priorité prédéterminé ;means for assigning (31) a coding priority level to at least one pixel of said current macroblock, adjacent to at least one previously predicted pixel, according to a predetermined priority determination criterion;
- des moyens de sélection (32) d'un pixel présentant le niveau de priorité le plus élevé, dit pixel prioritaire ;- Selection means (32) of a pixel having the highest priority level, said priority pixel;
- des moyens de prédiction (33) d'un ensemble de pixels comprenant ledit pixel prioritaire, dit ensemble cible, comprenant : " des moyens d'identification (331) d'un masque correspondant à une région modèle prédéterminée adjacente audit ensemble cible, ledit masque et ledit ensemble cible formant un bloc ;means for predicting (33) a set of pixels comprising said priority pixel, said target set, comprising: means for identifying (331) a mask corresponding to a predetermined model region adjacent said target set, said set mask and said target assembly forming a block;
• des moyens de recherche (332) dans les blocs précédemment codés de ladite image courante ou d'une image de référence d'un bloc source comprenant une zone similaire audit masque ;Search means (332) in the previously coded blocks of said current image or of a reference image of a source block comprising a zone similar to said mask;
• des moyens de construction (333) dudit ensemble cible à partir dudit bloc source, délivrant des pixels prédits ; et des moyens de codage (35) d'un résidu de prédiction pour une région formée de pixels prédits dudit macrobloc, dite région prédite, par détermination d'une différence entre les pixels prédits de ladite région prédite et des pixels d'origine correspondants, lesdits pixels d'origine appartenant à ladite image courante, lesdits moyens de codage étant activés dès que ladite région prédite respecte un critère de codage prédéterminé avant que la totalité des pixels dudit macrobloc ne soit prédite.• building means (333) of said target set from said source block, delivering predicted pixels; and coding means (35) of a prediction residue for a region formed of predicted pixels of said macroblock, said predicted region, by determining a difference between the predicted pixels of said predicted region and corresponding original pixels, said original pixels belonging to said current image, said encoding means being activated as soon as said predicted region respects a predetermined coding criterion before all the pixels of said macroblock are predicted.
8. Signal représentatif d'au moins une image codée selon le procédé de codage de la revendication 1 , caractérisé en ce qu'il comprend au moins une information représentative dudit critère de codage. 8. Signal representative of at least one coded image according to the coding method of claim 1, characterized in that it comprises at least one piece of information representative of said coding criterion.
9. Procédé de décodage d'un signal représentatif d'au moins une image, découpée en zones de taille standard, dites macroblocs, un macrobloc comprenant un ensemble de blocs de pixels, caractérisé en ce que ledit procédé met en œuvre au moins deux itérations (51) des étapes suivantes, pour au moins un macrobloc courant d'une image courante :9. A method of decoding a signal representative of at least one image, divided into standard size zones, called macroblocks, a macroblock comprising a set of blocks of pixels, characterized in that said method implements at least two iterations. (51) next steps, for at least one current macroblock of a current image:
- affectation d'un niveau de priorité de codage à au moins un pixel dudit macrobloc courant, adjacent à au moins un pixel précédemment prédit, selon un critère de détermination de priorité prédéterminé ;assigning a coding priority level to at least one pixel of said current macroblock, adjacent to at least one previously predicted pixel, according to a predetermined priority determination criterion;
- sélection d'un pixel présentant le niveau de priorité le plus élevé, dit pixel prioritaire ;selecting a pixel having the highest priority level, said priority pixel;
- prédiction d'un ensemble de pixels comprenant ledit pixel prioritaire, dit ensemble cible, mettant en œuvre les sous-étapes suivantes :prediction of a set of pixels comprising said priority pixel, said target set, implementing the following substeps:
" identification d'un masque correspondant à une région modèle prédéterminée adjacente audit ensemble cible, ledit masque et ledit ensemble cible formant un bloc ;"identifying a mask corresponding to a predetermined template region adjacent to said target set, said mask and said target set forming a block;
• recherche dans les blocs précédemment codés de ladite image courante ou d'une image de référence d'un bloc source comprenant une zone similaire audit masque ;Searching in the previously coded blocks of said current image or of a reference image of a source block comprising a zone similar to said mask;
• construction dudit ensemble cible à partir dudit bloc source, délivrant des pixels prédits ; et en ce que ledit procédé comprend également :Constructing said target set from said source block, delivering predicted pixels; and in that said method also comprises:
- une étape de réception (52) d'au moins un résidu de prédiction ; une étape de reconstruction (53) d'une région formée de pixels prédits dudit macrobloc, dite région prédite, par ajout d'un résidu de prédiction correspondant à ladite région prédite, ladite étape de reconstruction étant mise en œuvre dès que ladite région prédite respecte un critère de codage prédéterminé avant que la totalité des pixels dudit macrobloc ne soit prédite.a step of receiving (52) at least one prediction residue; a step of reconstructing (53) a region formed of predicted pixels of said macroblock, said predicted region, by adding a prediction residue corresponding to said predicted region, said reconstruction step being implemented as soon as said predicted region respects a predetermined coding criterion before all the pixels of said macroblock are predicted.
10. Procédé de décodage selon la revendication 9, caractérisé en ce qu'il comprend une étape de réception d'au moins une information représentative dudit critère de codage. 10. Decoding method according to claim 9, characterized in that it comprises a step of receiving at least one piece of information representative of said coding criterion.
11. Programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de décodage selon la revendication 9 lorsque ledit programme est exécuté par un processeur.11. Computer program comprising instructions for implementing the decoding method according to claim 9 when said program is executed by a processor.
12. Dispositif de décodage d'un signal représentatif d'au moins une image, découpée en zones de taille standard, dites macroblocs, un macrobloc comprenant un ensemble de blocs de pixels, caractérisé en ce que ledit dispositif comprend les moyens suivants (51), activés pour au moins un macrobloc courant d'une image courante et pour au moins deux itérations : - des moyens d'affectation d'un niveau de priorité de codage à au moins un pixel dudit macrobloc courant, adjacent à au moins un pixel précédemment prédit, selon un critère de détermination de priorité prédéterminé ;12. A device for decoding a signal representative of at least one image, divided into standard size zones, called macroblocks, a macroblock comprising a set of blocks of pixels, characterized in that said device comprises the following means (51) , activated for at least one current macroblock of a current image and for at least two iterations: means for assigning a coding priority level to at least one pixel of said current macroblock, adjacent to at least one pixel previously predicts, according to a predetermined priority determination criterion;
- des moyens de sélection d'un pixel présentant le niveau de priorité le plus élevé, dit pixel prioritaire ;- Means for selecting a pixel having the highest priority level, said priority pixel;
- des moyens de prédiction d'un ensemble de pixels comprenant ledit pixel prioritaire, dit ensemble cible, comprenant :means for predicting a set of pixels comprising said priority pixel, said target set, comprising:
" des moyens d'identification d'un masque correspondant à une région modèle prédéterminée adjacente audit ensemble cible, ledit masque et ledit ensemble cible formant un bloc ;means for identifying a mask corresponding to a predetermined template region adjacent to said target set, said mask and said target set forming a block;
" des moyens de recherche dans les blocs précédemment codés de ladite image courante ou d'une image de référence d'un bloc source comprenant une zone similaire audit masque ; " des moyens de construction dudit ensemble cible à partir dudit bloc source, délivrant des pixels prédits ; et en ce que ledit dispositif comprend également :search means in the previously coded blocks of said current image or of a reference image of a source block comprising a zone similar to said mask; means for constructing said target set from said source block, delivering pixels; predicted; and in that said device also comprises:
- des moyens de réception (52) d'au moins un résidu de prédiction ; des moyens de reconstruction (53) d'une région formée de pixels prédits dudit macrobloc, dite région prédite, par ajout d'un résidu de prédiction correspondant à ladite région prédite, activés dès que ladite région prédite respecte un critère de codage prédéterminé avant que la totalité des pixels dudit macrobloc ne soit prédite. means for receiving (52) at least one prediction residue; means for reconstructing (53) a region formed of predicted pixels of said macroblock, said predicted region, by adding a prediction residue corresponding to said predicted region, activated as soon as said predicted region respects a predetermined coding criterion before all the pixels of said macroblock are predicted.
EP10707587A 2009-01-28 2010-01-26 Method and device for encoding an image using a prediction mask decoding method and device and corresponding signals and computer programs Ceased EP2392141A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0950511 2009-01-28
PCT/FR2010/050114 WO2010086544A1 (en) 2009-01-28 2010-01-26 Method and device for encoding an image using a prediction mask decoding method and device and corresponding signals and computer programs

Publications (1)

Publication Number Publication Date
EP2392141A1 true EP2392141A1 (en) 2011-12-07

Family

ID=41211823

Family Applications (1)

Application Number Title Priority Date Filing Date
EP10707587A Ceased EP2392141A1 (en) 2009-01-28 2010-01-26 Method and device for encoding an image using a prediction mask decoding method and device and corresponding signals and computer programs

Country Status (4)

Country Link
US (1) US9055294B2 (en)
EP (1) EP2392141A1 (en)
CN (1) CN102301713B (en)
WO (1) WO2010086544A1 (en)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103002289B (en) * 2013-01-08 2015-06-17 中国电子科技集团公司第三十八研究所 Video constant quality coding device for monitoring application and coding method thereof
EP2903276A1 (en) * 2014-02-04 2015-08-05 Thomson Licensing Method for encoding and decoding a picture comprising inpainting of the picture epitome and corresponding devices
CN105338351B (en) 2014-05-28 2019-11-12 华为技术有限公司 Intra prediction coding and decoding, array scanning method and device based on template matching
FR3024933A1 (en) * 2014-08-12 2016-02-19 Orange IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS
EP3142365A1 (en) * 2015-09-14 2017-03-15 Thomson Licensing Method and apparatus for encoding and decoding a light field based image, and corresponding computer program product
EP3142366A1 (en) * 2015-09-14 2017-03-15 Thomson Licensing Method and apparatus for encoding and decoding a light field based image, and corresponding computer program product
US10701390B2 (en) * 2017-03-14 2020-06-30 Qualcomm Incorporated Affine motion information derivation
EP3815359A1 (en) * 2018-06-27 2021-05-05 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Contour mode prediction
US11335034B2 (en) 2019-01-16 2022-05-17 Disney Enterprises, Inc. Systems and methods for image compression at multiple, different bitrates

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0178198B1 (en) * 1995-03-28 1999-05-01 배순훈 Apparatus for encoding an image signal
KR100694058B1 (en) 2004-09-30 2007-03-12 삼성전자주식회사 Method and apparatus for encoding and decoding in intra mode based on multi time scan
JP2007043651A (en) * 2005-07-05 2007-02-15 Ntt Docomo Inc Dynamic image encoding device, dynamic image encoding method, dynamic image encoding program, dynamic image decoding device, dynamic image decoding method, and dynamic image decoding program
KR100667808B1 (en) * 2005-08-20 2007-01-11 삼성전자주식회사 Method and apparatus for intra prediction encoding and decoding for image
EP1956847B1 (en) * 2005-11-08 2018-01-03 Sun Patent Trust Moving picture coding method, moving picture decoding method, and apparatuses of the same
JP5082548B2 (en) * 2007-03-30 2012-11-28 富士通株式会社 Image processing method, encoder and decoder
KR101378338B1 (en) * 2007-06-14 2014-03-28 삼성전자주식회사 Method and apparatus for encoding and decoding based on intra prediction using image inpainting
US20090003443A1 (en) * 2007-06-26 2009-01-01 Nokia Corporation Priority-based template matching intra prediction video and image coding

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO2010086544A1 *

Also Published As

Publication number Publication date
US9055294B2 (en) 2015-06-09
CN102301713A (en) 2011-12-28
CN102301713B (en) 2014-10-29
US20110286521A1 (en) 2011-11-24
WO2010086544A1 (en) 2010-08-05

Similar Documents

Publication Publication Date Title
EP2392141A1 (en) Method and device for encoding an image using a prediction mask decoding method and device and corresponding signals and computer programs
EP2446628B1 (en) Method for decoding images, decoding devices, and corresponding computer program
WO2010086548A1 (en) Method and device for encoding an image, method and device for decoding and corresponding computer programmes
WO2015197945A1 (en) Method for encoding a digital image, and associated decoding method, devices and computer programmes
EP2304963B1 (en) Method and device for encoding images using improved prediction, and corresponding decoding method and device, signal and computer software
WO2010043811A1 (en) Method and device for coding an image sequence implementing blocks of different size, signal, data medium, decoding method and device, and computer programs corresponding thereto
FR2906433A1 (en) METHODS AND DEVICES FOR ENCODING AND DECODING IMAGES, COMPUTER PROGRAM USING THEM AND INFORMATION SUPPORT FOR IMPLEMENTING THEM
EP3225029B1 (en) Image encoding method and equipment for implementing the method
EP2277318B1 (en) Coding and decoding of an image or of a sequence of images sliced into partitions of pixels of linear form
FR2933565A1 (en) METHOD AND DEVICE FOR ENCODING AN IMAGE SEQUENCE USING TEMPORAL PREDICTION, SIGNAL, DATA MEDIUM, DECODING METHOD AND DEVICE, AND CORRESPONDING COMPUTER PROGRAM PRODUCT
EP2446630B1 (en) Encoding and decoding a video image sequence by image areas
FR3008840A1 (en) METHOD AND DEVICE FOR DECODING A SCALABLE TRAIN REPRESENTATIVE OF AN IMAGE SEQUENCE AND CORRESPONDING ENCODING METHOD AND DEVICE
EP2392142A1 (en) Method for encoding and decoding an image sequence implementing a movement compensation, and corresponding encoding and decoding devices, signal, and computer programs
FR2941581A1 (en) Video image sequence coding method, involves identifying better candidate zone in set of candidate zones, minimizing reconstruction error with respect to target zone, and determining indication representing identified better candidate zone
WO2010072946A2 (en) Image prediction using the repartitioning of a reference causal area, and encoding and decoding using such a prediction
WO2018002474A1 (en) Method for intra-coding of a digital image and corresponding decoding method
WO2016102804A1 (en) Method for encoding a digital image and associated decoding method, devices and computer programs
WO2010063898A1 (en) Device for encoding a digital image stream and corresponding decoding device with approximation of the neighbourhood of a block by the widened neighbourhood of the block
WO2019180350A1 (en) Method of low-latency video encoding and decoding
WO2010086562A1 (en) Method and device for encoding images using separate encoding modes, decoding method and device, and corresponding computer programs
FR3057130A1 (en) METHOD OF ENCODING AN IMAGE, DECODING METHOD, DEVICES, TERMINAL EQUIPMENT AND COMPUTER PROGRAMS
EP2633687B1 (en) Video encoding and decoding using an epitome
FR3033115A1 (en) METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
WO2024042286A1 (en) Coding-loop-external smoothing of a boundary between two image regions
FR2956552A1 (en) Method for coding video sequence consisting digital images, involves determining reference block in reference image, modifying determined reference block, and coding block to be coded by using predictor block

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20110822

AK Designated contracting states

Kind code of ref document: A1

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

DAX Request for extension of the european patent (deleted)
17Q First examination report despatched

Effective date: 20121122

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

Owner name: ORANGE

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

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

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20170911