[go: up one dir, main page]

WO2010086548A1 - Procede et dispositif de codage d'une image, procede et dispositif de decodage, et programmes d'ordinateur correspondants - Google Patents

Procede et dispositif de codage d'une image, procede et dispositif de decodage, et programmes d'ordinateur correspondants Download PDF

Info

Publication number
WO2010086548A1
WO2010086548A1 PCT/FR2010/050120 FR2010050120W WO2010086548A1 WO 2010086548 A1 WO2010086548 A1 WO 2010086548A1 FR 2010050120 W FR2010050120 W FR 2010050120W WO 2010086548 A1 WO2010086548 A1 WO 2010086548A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
blocks
macroblock
priority level
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
PCT/FR2010/050120
Other languages
English (en)
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 WO2010086548A1 publication Critical patent/WO2010086548A1/fr
Anticipated expiration legal-status Critical
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/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 coding and decoding images, and in particular 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 may especially apply to video coding implemented in current (MPEG, H.264, etc.) or future (H.265) 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 4x4, 8x4 or 4x8 size blocks.
  • 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 to say with reference to a reference block or macroblock belonging to one or more other images; and / or a spatial prediction, as a function of the blocks or macroblocks of the current image.
  • the prediction can only be made from the blocks that have been previously coded.
  • I-images are coded by spatial prediction (intra prediction), and P and B-images are coded by temporal prediction with respect to other I, P or B images coded / decoded at using a moving compensation.
  • a residual block also called prediction residue
  • the prediction is insufficient on its own, hence the need to code the prediction error.
  • 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 information concerning the prediction (orientation, reference image, etc.);
  • the decoding is done image by image, and for each image, macroblock by macroblock. For each macroblock, the corresponding elements of the stream are read. Inverse quantization and inverse transformation of block coefficients of the macroblock are performed. Then, the prediction of the macroblock is computed and the macroblock is reconstructed by adding the prediction to the decoded prediction residue.
  • the reconstructed data is used for predicting the next data to be encoded.
  • 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 intra-coding mode of a current block is performed using a directional extrapolation technique of coded-decoded texture values on neighboring blocks.
  • Nine intra prediction modes are used, eight of which correspond to a given orientation for copying pixels from the previously coded-decoded neighbor blocks (vertical, horizontal, diagonal down left, diagonal down right, vertical right, vertical left, horizontal up, horizontal down), and one corresponding to the average of the pixels adjacent to the block from the neighboring blocks.
  • the coding / decoding is performed according to a predetermined path, from left to right and from top to bottom, as shown in FIG. figure 1.
  • this coding / decoding order is not necessarily the best, especially in the case of a macroblock traversed by one or more outlines.
  • Some techniques have proposed to modify this order of block prediction in the macroblock, in order to improve the coding speed.
  • the invention proposes a novel solution that does not have all of these disadvantages of the prior art, in the form of a method for coding at least one image, divided into standard size regions, called macroblocks, a macroblock comprising a set of pixel blocks.
  • such a method comprises at least one iteration of the following steps, for at least one current macroblock of said image: assigning a priority level to at least one block of said current macroblock, adjacent to at least one block previously encoded, and - encoding the block having the highest priority level, so as to encode the blocks of said current macroblock in an adaptive path order.
  • the invention is based on a novel and inventive image coding approach, making it possible to adapt the order of travel for the coding of the blocks within a macroblock, so as to optimize the quality of the prediction. and thus the quality of encoding and decoding of images, while reducing the bit rate required for coding.
  • the coding order of the blocks within a macroblock is thus determined according to a priority level assigned to the blocks, and is recalculated at each new coded and reconstructed block.
  • the blocks which are assigned a priority level are the blocks adjacent to previously coded-decoded blocks, and among these adjacent blocks, some have a higher priority than others. , depending on one or more parameters.
  • said step of assigning a priority level takes account of at least one parameter belonging to the group comprising:
  • a statistical parameter representative of an activity of said block Such a criterion defines for example a distribution of the pixels in the block, or the energy or the variance of the block relative to these neighbors. It is thus a characteristic parameter of the importance of the block with respect to these neighbors.
  • the direction of travel of the blocks within 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 blocks.
  • one of the parameters taken into account to assign a priority to a block corresponds to the number of pixels already coded-decoded that can be used for the coding of this block. This number of already encoded-decoded pixels is calculated from the already coded-decoded blocks, adjacent to the block that is to be encoded.
  • This parameter can have for example a value corresponding directly to the number of available pixels.
  • Another parameter takes into account the presence of an incident contour in a block, that is to say a contour that is also present in an adjacent block already coded-decoded.
  • 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 block may have for example the value 1.
  • the method comprises a step of weighting said parameters according to a predetermined criterion, implemented before said assignment step.
  • the parameters used to assign a priority level can be weighted, so as to give them more or less importance, depending on the objective.
  • the objective is to first consider blocks with incident contours, then a larger weight is assigned to the corresponding parameter in the block priority calculation.
  • the weighting of the parameters allows a complex calculation of the priority level, corresponding to a linear combination of the values of these parameters.
  • a block of the edge of the macroblock having no incident contour is assigned a priority level equal to the number of available pixels.
  • a block of the edge of the macroblock having an incident contour is assigned a priority level corresponding to a combination of the two parameters described above.
  • the priority level is equal to the result of adding the number of available pixels and the value 1 of the edge parameter.
  • the priority level assigned to a block of the edge of the macroblock having an incident contour is the result of adding the number of available pixels and the value of the contour parameter multiplied by 10.
  • this block having an incident contour has a higher priority level than the block that does not have one, and is therefore coded in priority.
  • the method comprises an initialization iteration affecting a priority level at least one block of said current macroblock, adjacent to at least one block belonging to a macroblock previously coded, and at least one subsequent iteration affecting a priority level to at least one block of said current macroblock, adjacent to at least one block of said coded current macroblock during a previous iteration.
  • the first block to be coded in the macroblock is a block adjacent to an already coded-decoded block in a macroblock adjacent to the macroblock considered, that is to say a block located at the edge of the macroblock.
  • the first block coded in the macroblock always benefits from the pixels resulting from the prior coding-decoding of another macroblock.
  • some blocks for example those located in the corners of the macroblock, benefit from more pixels already encoded-decoded than some other blocks, and therefore have a higher priority level.
  • the order of the blocks of the macroblock is recalculated, assigning a priority level to the blocks adjacent to at least one previously coded-decoded block or during the coding decoding of another macroblock, ie during the first iteration of the method of the invention.
  • the previously coded-decoded block is taken into consideration to assign the priority levels to the other blocks and thus determine the direction of travel of the macroblock.
  • the prediction of the blocks last processed in the macroblock is better because they have more pixels available in the adjacent coded-decoded blocks.
  • the prediction is better for all the blocks, because those with a contour are treated in priority, and those without a contour have more pixels for the prediction, because they are treated last and therefore benefit from more blocks already coded-decoded.
  • said coding step implements an "intra" encoding mode, implementing a prediction, the number of possible predictions and the directions of these predictions are determined taking into account of said adaptive course order.
  • the possible prediction directions may be different depending on whether the direction of travel of the macroblock is conventional or adaptive according to the coding method of the invention. Indeed, if the prediction mode takes into account the place of the block in the macroblock and more particularly its index in the order of the blocks, for example a prediction mode according to the method proposed by Shiodera et al. above, then the method according to the invention makes it possible to obtain a better prediction because the number of possible prediction directions is adapted to the configuration.
  • the neighboring blocks used for the coding of the current block are the blocks located on the first line of the macroblock. Since only the blocks above the current block are available, it is possible to limit the prediction directions to those having a very close angle (for example the vertical direction, and the diagonal directions downwards left and right).
  • the number of possible prediction directions is therefore adjusted (increased or decreased) according to the position of the block and its coding order.
  • the number of prediction directions can be fixed
  • the number of possible directions can then be adjusted (a second time) so as to reach this number of predetermined prediction directions.
  • the number of possible directions is less than eight, intermediate directions can be added.
  • certain directions for example one in two, one in three, etc.
  • Another aspect of the invention relates to a computer program comprising instructions for implementing the encoding method as described above, when said program is executed by a processor.
  • the invention relates to a device for encoding at least one image, divided into standard size regions, said macroblocks, a macroblock comprising a set of blocks of pixels. According to the invention, such a device comprises:
  • 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.
  • Another aspect of the invention relates to a method for decoding a signal representative of at least one image, divided into standard size regions, called macroblocks, a macroblock comprising a set of blocks of pixels.
  • such a decoding method comprises at least one iteration of the following steps, for at least one current macroblock of said image:
  • the decoding technique according to the invention makes it possible to reconstruct the blocks of a macroblock with an adaptive direction of travel, in the same way as the coding of the blocks of the macroblock.
  • the decoding method may implement a prediction for decoding an "intra" coding mode, making it possible to determine the number and directions of prediction, as well as the number of possible prediction directions taking into account said order of adaptive course.
  • the invention relates to a computer program comprising instructions for implementing the decoding method described above, when said program is executed by a processor.
  • the invention also relates to a device for decoding a signal representative of at least one image, divided into standard size regions, called macroblocks, a macroblock comprising a set of blocks of pixels.
  • such a device comprises:
  • Block reconstruction means having the highest priority level, said means being implemented for at least one iteration, so as to reconstruct the blocks of said current macroblock in an adaptive course order.
  • 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.
  • FIG. 1 already commented on in relation with the prior art, illustrates an example of direction of travel for the coding of the blocks of a macroblock
  • FIG. 2 illustrates the main steps of an encoding method according to one embodiment of the invention
  • FIG. 3 illustrates a macroblock of a two-dimensional image for coding and decoding according to one embodiment of the invention
  • FIGS. 1 already commented on in relation with the prior art, illustrates an example of direction of travel for the coding of the blocks of a macroblock
  • FIG. 2 illustrates the main steps of an encoding method according to one embodiment of the invention
  • FIG. 3 illustrates a macroblock of a two-dimensional image for coding and decoding according to one embodiment of the invention
  • FIGS. 4a to 4d illustrate a direction of travel of a macroblock in an image, and different steps of coding blocks of the macroblock;
  • Figures 5 and 6 respectively show the structure of a coding device and a decoding device implementing a coding technique and a decoding technique according to a particular embodiment of the invention.
  • the general principle of the invention is based on the adaptive path of the blocks of a macroblock for coding and decoding.
  • the invention thus makes it possible to better predict all the blocks of the macroblock by adapting the direction of travel of the blocks of the macroblock.
  • the direction of travel of the blocks in the macroblock is iteratively defined, taking into account parameters making it possible to assign a priority level to certain blocks at each iteration, and to code or decode the highest priority block at each iteration.
  • the invention therefore proposes a new solution making it possible to recalculate the order of travel of the blocks after each coded block.
  • FIG. 2 illustrates more precisely the steps of the coding method according to one embodiment of the invention, from a current macroblock MB of an image cut into macroblocks, themselves composed of blocks of pixels.
  • Such an encoding method implements at least one iteration of an assignment step 20 and an encoding step 21.
  • a priority level is assigned to the blocks of the current MB macroblock adjacent to at least one block previously coded-decoded.
  • the highest priority block of the blocks to which a priority level has been assigned is encoded.
  • a step of selecting the highest priority level block is performed, so as to identify it among the blocks to which priority levels have been assigned.
  • a priority level is assigned to the uncoded blocks adjacent to at least one already encoded-decoded block.
  • Such a block already codecode decoded may have been coded and then decoded during a previous iteration or when coding a macroblock adjacent to the macroblock considered.
  • This macroblock MB is composed of 4x4 blocks, themselves including 4x4 pixels.
  • This macroblock MB is adjacent, in the image, to three already coded-decoded macroblocks (located above the current macroblock - MBf, to the left of the current macroblock - MBL, e * above left and current macroblock - MB TL ).
  • adjacent block a block that touches the border of the current block.
  • an “adjacent block” is a block located in a ring comprising the eight blocks surrounding the current block.
  • An already coded-decoded block is represented by a square with a lattice pattern.
  • the blocks B 1 ... B 16 of the macroblock MB are numbered from left to right and from top to bottom, to facilitate reading of the rest of the description.
  • FIGS. 4a to 4d illustrate an example of coding run of the blocks of a macroblock MB according to one embodiment of the coding method of the invention.
  • the blocks to which priorities are assigned are represented by squares with a diagonal striped pattern, and more specifically, the blocks of the edge of the current macroblock MB, adjacent to already coded-decoded blocks of the macroblocks.
  • MBj, MBL, and MB ⁇ L > are represented by squares with the same bold pattern.
  • the numbers in the middle of the blocks correspond to the priority of the blocks for the coding path direction.
  • the priorities of the blocks depend on the priority levels calculated for these blocks: priority 1 corresponds to the highest priority level and priority 6 corresponds to the lowest priority level.
  • FIG. 4a illustrates the result of the assignment step 20 of the first iteration of the coding method according to this embodiment of the invention, of assigning a priority level to the blocks of the macroblock adjacent to the three previously coded macroblocks. -decoded (top MBf, left
  • This parameter is weighted so as to code in priority a block having an incident contour.
  • this incident contour parameter is 10; a weighting of the available pixels as a function of their distance with respect to a coded block having an incident contour.
  • this parameter is 2 when the distance corresponds to a distance equal to or less than that of two neighboring blocks;
  • This non-incident contour parameter is 1 for example, in this embodiment.
  • the priority levels of the blocks have already been calculated and the blocks are numbered by priority.
  • Block B 13 being adjacent to two coded-decoded blocks of the macroblock
  • MBL has (4 + 1) pixels available for encoding.
  • weight parameter 10 incident C contour coming from the left block.
  • the block B l has meanwhile (1 + 4 + 1 + 4 + 1) pixels available for its coding, since it is close to five blocks already coded-decoded. It is assigned a priority level of 11.
  • the B5 block has (1 + 4 + 1) pixels available for its coding, one pixel of which is in the block next to the block from which the incident C contour detected in the block of priority 1 (weighting parameter by 2 of the available pixel).
  • the other two blocks B2 and B3 have the same number (six) of available pixels (being adjacent to a coded-decoded block) and have no contour. They are therefore assigned the same priority level equal to 6.
  • B 13 has priority 1
  • B9 and B1 have priority 2
  • B5 has priority 3
  • B2, B3 and B4 have priority 4.
  • the next step is to code the priority block 1, B 13.
  • the sequence of blocks is thus progressively constructed in the current macroblock by coding, during this first iteration, only the block of priority 1.
  • the calculation of the priority levels is carried out again and illustrated in FIG. 4b, after the coding of the first block (which is therefore represented with a lattice pattern in this FIG. 4b).
  • the blocks of the macroblock edge MB (B1 to B5 and B9) are again considered, and also the blocks adjacent to the first coded block B 13, ie the additional blocks B 14 and B 10.
  • the block B9 thus adjacent to four previously coded blocks, and has (4 + 1 + 4 + 1) pixels available for its coding.
  • this block is traversed by an incident C contour, from the coded block at the previous iteration (value parameter 10). The priority level of this block is therefore 20.
  • Block B 14 is adjacent to a single coded block and has 4 pixels available for coding. It is not traversed by an outline, its priority level is equal to 4.
  • Block B5 has a priority level equal to 7, this priority level calculation being unchanged by the coding of the first block.
  • the priority levels of the blocks Bl to B4 remain unchanged as well, so the block B l has a priority level equal to 11, and the blocks B2 to B4 a priority level equal to 6.
  • Block B9 of priority level equal to 20 is the block to be coded in priority. Once the priority block 1 coded and decoded, a new calculation of the priority levels is performed, taking into account this new coded-decoded block. This third iteration is illustrated in FIG. 4c, on which are represented the two coded blocks during the two previous iterations.
  • the block BlO adjacent to the block B9 encoded during the previous iteration, has a priority level equal to 15, calculated in the following way: - (4 + 1) pixels available for coding, because adjacent two coded-decoded blocks; - an incident C contour passes through it (parameter value 10).
  • the block B5 has (4 + 1 + 4 + 1) pixels available for its coding, of which one pixel is in the neighboring block of the block from which the incident C contour detected in the block of priority 1 (weighting parameter by 2 pixel available).
  • the priority level of block B 1 is unchanged from the previous step and is 11.
  • the other three blocks B 2 to B 4 also have an unchanged priority level of 6.
  • Block B 14 has a priority level equal to 5 because it has (4 + 1) pixels available for its coding.
  • the block B6 is adjacent to the block B9 and has a pixel available for its coding. Its priority level is equal to 1. Thus, this third iteration indicates that the block B 10 of priority 1 is the next block to be coded.
  • the coding of this block is carried out during the second step of this third iteration.
  • block B 1 is adjacent to 6 already coded blocks, and has (1 + 4 + 1 + 4 + 1 + 1) available pixels. Its priority level is equal to 12.
  • Block B5 is also adjacent to 6 decoded blocks, and has (1 + 4 +
  • Block B2 is also adjacent to 6 decoded blocks, and has (1 + 4 + 1 + 4 + 1 + 4) available pixels. Its priority level is equal to 15. Finally, the other three blocks to which a priority level is assigned are blocks B 12, B 14 and B 15, with priority levels of 10, 9 and 5, respectively.
  • the two blocks of priority level 15, the highest, should therefore have the same priority 1 in the direction of travel for the decoding of the remaining blocks. However, they must be differentiated because only one block is decoded during an iteration.
  • a differentiation criterion is, for example, the use of the conventional decoding path direction, that is to say from left to right at first, and from top to bottom (as illustrated in FIG. 1).
  • the conventional decoding path direction that is to say from left to right at first, and from top to bottom (as illustrated in FIG. 1).
  • the block B2 of priority 2 is represented with the different prediction directions that can be used for its coding / decoding, corresponding to the number of available border points.
  • this block is coded, according to this embodiment of the invention, among the last of the macroblock, and therefore has more pixels at the moment prediction.
  • the adaptive path direction of the blocks in the macroblock obtained by the coding method according to the invention allows a better prediction of all the blocks, as well as a better reconstruction of the blocks by respecting the contours.
  • the coding method according to the invention makes it possible to reduce the bit rate necessary for encoding a sequence of video images, without affecting the quality thereof.
  • the coding method according to the invention is suitable for being integrated in a video coder based on the macroblocks, for example by adding a new spatial prediction mode of the macroblocks.
  • Such an encoder comprises a memory 51 comprising a buffer memory, a processing unit 52, equipped for example with a microprocessor ⁇ P, and driven by the computer program 53, implementing the coding method according to an embodiment of FIG. the invention.
  • the code instructions of the computer program 53 are for example loaded into a RAM memory before being executed by the processor of the processing unit 52.
  • the processing unit 52 receives as input one or several images to code.
  • the microprocessor of the processing unit 52 implements the steps of the encoding method described above, according to the instructions of the computer program 53, for encoding the one or more images in a signal.
  • the encoder comprises, in addition to the buffer memory 51, means for assigning a priority level to at least one block of a current macroblock of the image, this block being adjacent to at least one block previously coded, and coding means of the block having the highest priority level, these means being implemented for at least one iteration, so as to code the blocks of the current macroblock in an adaptive course order. These means are controlled by the microprocessor of the processing unit 52.
  • the decoder 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 of decoding according to a mode embodiment of the invention.
  • the code instructions of the computer program 63 are for example loaded into a RAM memory before being executed by the processor of the processing unit 62.
  • the processing unit 62 receives as input a signal representative of a sequence of images.
  • the microprocessor of the processing unit 62 implements the steps of the decoding method described above, according to the instructions of the computer program 63, for decoding the signal and reconstructing the image or images of the sequence.
  • the decoder comprises, in addition to the buffer memory 61, means for assigning a priority level to at least one block of a current macroblock of the image, this block being adjacent to at least one previously coded block. , and block reconstruction means having the highest priority level, these means being implemented for at least one iteration, so as to reconstruct the blocks of the current macroblock in an adaptive course order.
  • These means are controlled by the microprocessor of the processing unit 62.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

L'invention concerne un procédé de codage d'au moins une image, découpée en macroblocs, un macrobloc comprenant un ensemble de blocs de pixels. Selon l'invention, un tel procédé comprend au moins une itération des étapes suivantes, pour au moins un macrobloc courant de ladite image : affectation (20) d'un niveau de priorité à au moins un bloc dudit macrobloc courant, adjacent à au moins un bloc précédemment codé; et codage (21) du bloc présentant le niveau de priorité le plus élevé, de façon à coder les blocs dudit macrobloc courant selon un ordre de parcours adaptatif.

Description

Procédé et dispositif de codage d'une image, procédé et dispositif de décodage, 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.
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 (H.265). 2. Art antérieur
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 blocs de taille 4x4, 8x4 ou 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. Dans ce dernier cas, la prédiction ne peut être effectuée qu'à partir des blocs qui ont été précédemment codés.
Plus précisément, selon la technique H.264, des images I sont codées par prédiction spatiale (prédiction intra), et des images P et B sont codées par prédiction temporelle par rapport à d'autres images I, P ou B codées/décodées à l'aide d'une compensation en mouvement.
Pour coder ces images, celles-ci sont découpées en blocs. 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. En effet, la prédiction est insuffisante à elle seule, d'où la nécessité de coder l'erreur de 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.
Selon la technique H.264 par exemple, on code pour chaque bloc :
- le type de codage (prédiction intra, prédiction inter, pas de prédiction en anglais « skip ») ;
- le type de partitionnement ;
- les informations concernant la prédiction (orientation, image de référence, ...) ;
- les informations de mouvement si nécessaire ; - les coefficients obtenus après quantification et transformation de l'erreur de prédiction résiduelle;
- etc.
Le décodage est fait image par image, et pour chaque image, macrobloc par macrobloc. Pour chaque macrobloc, les éléments correspondants du flux sont lus. La quantification inverse et la transformation inverse des coefficients des blocs du macrobloc sont effectuées. Puis, la prédiction du macrobloc est calculée et le macrobloc est reconstruit en ajoutant la prédiction au résidu de prédiction décodé.
Ainsi, les données reconstruites sont utilisées pour la prédiction des données suivantes à coder. Au codeur, le mode de prédiction choisi est celui permettant d'obtenir le meilleur compromis débit-distorsion.
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.
Dans le standard ITU-T H.264, le mode de codage intra d'un bloc courant est réalisé à l'aide d'une technique d'extrapolation directionnelle des valeurs de texture codées-décodées sur les blocs voisins. Neuf modes de prédiction intra sont utilisés, dont huit 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 correspondant à la moyenne des pixels adjacents au bloc à partir des blocs voisins.
D'autres méthodes de prédiction intra ont été proposées récemment, notamment plusieurs méthodes basées sur les corrélations entre pixels voisins.
Par exemple, l'article « Intra prédiction by template matching » de Tan et al. présente une telle technique de prédiction intra, encore appelée « Template Matching ».
Selon ces techniques, pour estimer une zone (un pixel ou un groupe de pixels) dans une image, à partir d'une source (l'image partiellement décodée), le candidat le plus proche du modèle (en anglais « template »), c'est-à-dire la zone formée des pixels connus voisins de la zone à prédire, est recherché, grâce à une comparaison pixel à pixel. Une fois que le meilleur candidat est trouvé, les pixels correspondants sont recopiés de la source vers la cible, c'est-à-dire le bloc à coder. Cependant, un inconvénient de ces techniques de codage intra, classiques ou basées sur une technique de « Template Matching », de l'art antérieur, réside dans le fait que l'ordre de reconstruction des blocs 4x4 dans le macrobloc est fixe et prédéterminé.
Ainsi, dans le codeur H.264, le codage/décodage est réalisé selon un parcours prédéterminé, de gauche à droite et de haut en bas, comme illustré sur la figure 1.
Or cet ordre de codage/décodage n'est pas forcément le meilleur, notamment dans le cas d'un macrobloc traversé par un ou plusieurs contours.
Certaines techniques ont proposé de modifier cet ordre de prédiction des blocs dans le macrobloc, afin d'améliorer la vitesse de codage.
D'autres techniques proposent également de modifier l'ordre de parcours prédéterminé, afin d'améliorer l'efficacité de prédiction. Par exemple, la méthode est décrite dans l'article « Block Based Extra/Inter-Polating Prédiction for Intra Coding », de Shiodera, T. Tanizawa, A. Chujoh, T., modifie les directions de prédiction intra. Néanmoins, dans tous ces cas, l'ordre de traitement des blocs intra à l'intérieur du macrobloc reste prédéterminé, même s'il est différent de celui classiquement utilisé dans le codeur H.264. 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 régions de taille standard, dites macroblocs, un macrobloc comprenant un ensemble de blocs de pixels.
Selon l'invention, un tel procédé comprend au moins une itération des étapes suivantes, pour au moins un macrobloc courant de ladite image : - affectation d'un niveau de priorité à au moins un bloc dudit macrobloc courant, adjacent à au moins un bloc précédemment codé, et - codage du bloc présentant le niveau de priorité le plus élevé, de façon à coder les blocs dudit macrobloc courant selon un ordre de parcours adaptatif. Ainsi, l'invention repose sur une approche nouvelle et inventive de codage d'images, permettant d'adapter l'ordre de parcours pour le codage des blocs à l'intérieur d'un macrobloc, de façon à optimiser 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. L'ordre de codage des blocs à l'intérieur d'un macrobloc est ainsi déterminé en fonction d'un niveau de priorité affecté aux blocs, et est recalculé à chaque nouveau bloc codé et reconstruit.
Le sens de parcours des blocs à 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é.
Afin d'obtenir un codage optimal des blocs d'un macrobloc, les blocs auxquels est affecté un niveau de priorité sont les blocs adjacents à des blocs précédemment codés-décodés, et parmi ces blocs adjacents, certains ont une priorité supérieure à d'autres, en fonction d'un ou plusieurs paramètres.
Ainsi, selon une caractéristique particulière de l'invention, ladite étape d'affectation d'un niveau de priorité tient compte d'au moins un paramètre appartenant au groupe comprenant :
- un nombre de pixels, dits pixels disponibles, d'au moins un bloc précédemment codé adjacent audit bloc ;
- une présence d'un contour dans ledit bloc, qui poursuit un contour provenant d'un bloc précédemment codé adjacent audit bloc ;
- une pondération des pixels disponibles en fonction de leur distance par rapport à un bloc codé présentant un contour incident ; - un nombre de candidats disponibles pour une région modèle
(« template ») de l'image, voisine d'une région à prédire, c'est-à-dire le nombre de candidats jugés suffisamment similaires au « template » pour être considérés comme fiables ;
- un paramètre statistique représentatif d'une activité dudit bloc. Un tel critère défini par exemple une répartition des pixels dans le bloc, ou l'énergie ou la variance du bloc par rapport à ces voisins. Il s'agit donc d'un paramètre caractéristique de l'importance du bloc par rapport à ces voisins. Ainsi, le sens de parcours des blocs à 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 blocs.
Par exemple, l'un des paramètres pris en compte pour affecter une priorité à un bloc correspond au nombre de pixels déjà codés-décodés pouvant être utilisés pour le codage de ce bloc. Ce nombre de pixels déjà codés-décodés se calcule à partir des blocs déjà codés-décodés, adjacents au bloc que l'on cherche à coder.
Ainsi, dans le cas d'une image en deux dimensions pour laquelle les macroblocs définissent des régions de forme carré ou rectangulaire, parmi les blocs situés au bord d'un macrobloc, ceux dans les coins du macrobloc peuvent bénéficier d'un plus grand nombre de pixels codés-décodés disponibles pour le codage que les blocs situés sur les côtés du macrobloc, si le macrobloc considéré est entouré de plusieurs macroblocs déjà codés-décodés.
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 bloc, c'est-à-dire d'un contour qui est également présent dans un bloc adjacent déjà codé-décodé.
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 bloc, noté paramètre de contour dans la suite de la description, peut avoir par exemple la valeur 1.
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 bloc. Selon un aspect particulier de l'invention, le procédé comprend une étape de pondération desdits paramètres selon un critère prédéterminé, mise en œuvre préalablement à ladite étape d'affectation.
Ainsi, les paramètres utilisés pour affecter un niveau de priorité peuvent être pondérés, de façon à leur accorder plus ou moins d'importance, en fonction de l'objectif visé.
Par exemple, si l'objectif est de tenir compte d'abord des blocs présentant des contours incidents, alors un poids plus important est attribué au paramètre correspondant, dans le calcul de la priorité des blocs. De plus, la pondération des paramètres permet un calcul complexe du niveau de priorité, correspondant à une combinaison linéaire des valeurs de ces paramètres.
Par exemple, un bloc du bord du macrobloc n'ayant pas de contour incident se voit attribuer un niveau de priorité égal au nombre de pixels disponibles.
Un bloc du bord du macrobloc ayant un contour incident se voit attribuer un niveau de priorité correspondant à une combinaison des deux paramètres décrits ci-dessus. Par exemple, le niveau de priorité est égal au résultat de l'addition du nombre de pixels disponibles et de la valeur 1 du paramètre de contour.
Si l'on considère qu'il faut accorder plus d'importance au paramètre de contour, on peut lui attribuer un poids de 10, et alors, dans l'exemple précédent, le niveau de priorité affecté à un bloc du bord du macrobloc ayant un contour incident a pour valeur le résultat de l'addition du nombre de pixels disponibles et de la valeur du paramètre de contour multipliée par 10.
Ainsi, ce bloc ayant un contour incident a un niveau de priorité plus élevé que le bloc n'en ayant pas, et est donc codé en priorité.
Selon un mode de réalisation particulier, le procédé comprend une itération d'initialisation affectant un niveau de priorité à au moins un bloc dudit macrobloc courant, adjacent à au moins un bloc appartenant à un macrobloc précédemment codé, et au moins une itération suivante affectant un niveau de priorité à au moins un bloc dudit macrobloc courant, adjacent à au moins un bloc dudit macrobloc courant codé au cours d'une itération précédente.
Ainsi, le premier bloc à coder dans le macrobloc est un bloc adjacent à un bloc déjà codé-décodé dans un macrobloc adjacent au macrobloc considéré, c'est- à-dire un bloc situé au bord du macrobloc.
De cette manière, le premier bloc codé dans le macrobloc bénéficie toujours des pixels issus du codage-décodage préalable d'un autre macrobloc.
Ensuite, parmi ces blocs du bord du macrobloc, certains blocs, par exemple ceux situés dans les coins du macrobloc, bénéficient de plus de pixels déjà codés-décodés que certains autres blocs, et ont donc un niveau de priorité plus élevé.
Une fois qu'un premier bloc du bord du macrobloc est codé-décodé, l'ordre de parcours des blocs du macrobloc est recalculé, en affectant un niveau de priorité aux blocs adjacents à au moins un bloc précédemment codé-décodé soit pendant le codage-décodage d'un autre macrobloc, soit pendant la première itération du procédé de l'invention.
De cette manière, à chaque itération, le bloc précédemment code-décodé est pris en considération pour affecter les niveaux de priorité aux autres blocs et ainsi déterminer le sens de parcours du macrobloc.
Ainsi, la prédiction des blocs traités en dernier dans le macrobloc est meilleure car ils disposent de plus de pixels disponibles dans les blocs adjacents codés-décodés.
Ainsi, globalement, la prédiction est meilleure pour tous les blocs, car ceux disposant d'un contour sont traités en priorité, et ceux ne disposant pas d'un contour disposent de plus de pixels pour la prédiction, car ils sont traités en dernier et donc bénéficient de plus de blocs déjà codés-décodés.
Notamment, lorsque ladite étape de codage met en œuvre un mode de codage dit « intra », mettant en œuvre une prédiction, le nombre de prédiction possibles et les directions de ces prédictions sont déterminés en tenant compte dudit ordre de parcours adaptatif.
Ainsi, pour un bloc donné, les directions de prédiction possibles peuvent être différentes selon que le sens de parcours du macrobloc est classique ou bien adaptatif selon le procédé de codage de l'invention. En effet, si le mode de prédiction tient compte de la place du bloc dans le macrobloc et plus particulièrement de son indice dans l'ordre de parcours des blocs, par exemple un mode de prédiction selon la méthode proposée par Shiodera et al. précitée, alors le procédé selon l'invention permet d'obtenir une meilleure prédiction car le nombre de directions de prédiction possibles est adapté à la configuration.
Par exemple, si l'on considère un parcours ligne par ligne d'un macrobloc et un bloc courant localisé sur la deuxième ligne du macrobloc, les blocs voisins utilisés pour le codage du bloc courant sont les blocs situés sur la première ligne du macrobloc. Puisque seuls les blocs situés au-dessus du bloc courant sont disponibles, il est possible de limiter les directions de prédiction à celles présentant un angle très proche (par exemple la direction verticale, et les directions diagonale vers le bas gauche et droite).
Le nombre de directions de prédiction possibles est donc ajusté (augmenté ou diminué) selon la position du bloc et son ordre de codage. Selon une variante, le nombre de directions de prédiction peut être fixé
(par exemple à huit). Le nombre de directions possibles peut alors être ajusté (une seconde fois) de manière à atteindre ce nombre de directions de prédiction prédéterminé. Ainsi, si le nombre de directions possibles est inférieur à huit, des directions intermédiaires peuvent être ajoutées. Au contraire, si le nombre de directions possibles est supérieur à huit, certaines directions (par exemple une sur deux, une sur trois...) peuvent être supprimées.
Un autre aspect de l'invention concerne un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de codage tel que décrit précédemment, lorsque ledit programme est exécuté par un processeur. Dans un autre mode de réalisation, l'invention concerne un dispositif de codage d'au moins une image, découpée en régions de taille standard, dites macroblocs, un macrobloc comprenant un ensemble de blocs de pixels. Selon l'invention, un tel dispositif comprend :
- des moyens d'affectation d'un niveau de priorité à au moins un bloc d'un macrobloc courant de ladite image, ledit bloc étant adjacent à au moins un bloc précédemment codé, et
- des moyens de codage du bloc présentant le niveau de priorité le plus élevé, lesdits moyens étant mis en œuvre pour au moins une itération, de façon à coder les blocs dudit macrobloc courant selon un ordre de parcours adaptatif.
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. Un autre aspect de l'invention concerne un procédé de décodage d'un signal représentatif d'au moins une image, découpée en régions de taille standard, dites macroblocs, un macrobloc comprenant un ensemble de blocs de pixels.
Selon l'invention, un tel procédé de décodage comprend au moins une itération des étapes suivantes, pour au moins un macrobloc courant de ladite image :
- affectation d'un niveau de priorité à au moins un bloc dudit macrobloc courant, adjacent à au moins un bloc précédemment codé, et
- reconstruction du bloc présentant le niveau de priorité le plus élevé, de façon à reconstruire les blocs dudit macrobloc courant selon un ordre de parcours adaptatif.
De cette façon, la technique de décodage selon l'invention permet de reconstruire les blocs d'un macrobloc avec un sens de parcours adaptatif, de la même façon que le codage des blocs du macrobloc.
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.
En particulier, le procédé de décodage peut mettre en œuvre une prédiction pour décoder un mode de codage dit « intra », permettant de déterminer le nombre et les directions de prédiction, ainsi que le nombre de directions de prédiction possibles en tenant compte dudit ordre de parcours adaptatif.
Dans un autre mode de réalisation, l'invention concerne un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de décodage décrit précédemment, lorsque ledit programme est exécuté par un processeur. Enfin, l'invention concerne également un dispositif de décodage d'un signal représentatif d'au moins une image, découpée en régions de taille standard, dites macroblocs, un macrobloc comprenant un ensemble de blocs de pixels.
Selon l'invention, un tel dispositif comprend :
- des moyens d'affectation d'un niveau de priorité à au moins un bloc d'un macrobloc courant de ladite image, ledit bloc étant adjacent à au moins un bloc précédemment codé, et
- des moyens de reconstruction du bloc présentant le niveau de priorité le plus élevé, lesdits moyens étant mis en œuvre pour au moins une itération, de façon à reconstruire les blocs dudit macrobloc courant selon un ordre de parcours adaptatif.
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.
4. Liste des 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, déjà commentée en relation avec l'art antérieur, illustre un exemple de sens de parcours pour le codage des blocs d'un macrobloc ; la figure 2 illustre les principales étapes d'un procédé de codage selon un mode de réalisation de l'invention ; - la figure 3 illustre un macrobloc d'une image en deux dimensions pour le codage et décodage selon un mode de réalisation de l'invention ; les figures 4a à 4d illustrent un sens de parcours d'un macrobloc dans une image, et différentes étapes de codage des blocs du macrobloc ; les figures 5 et 6 présentent respectivement la structure d'un dispositif de codage et d'un dispositif de décodage mettant en œuvre une technique de codage et une technique de décodage selon un mode de réalisation particulier de l'invention.
5. Description d'un mode de réalisation de l'invention
5.1 Principe général Le principe général de l'invention repose sur le parcours adaptatif des blocs d'un macrobloc pour le codage et le décodage. L'invention permet ainsi de mieux prédire tous les blocs du macrobloc en adaptant le sens de parcours des blocs du macrobloc. Pour ce faire, le sens de parcours des blocs dans le macrobloc est défini itérativement, en tenant compte de paramètres permettant d'affecter un niveau de priorité à certains blocs à chaque itération, et de coder ou décoder le bloc de priorité le plus élevé à chaque itération.
L'invention propose donc une solution nouvelle permettant de recalculer l'ordre de parcours des blocs, après chaque bloc codé.
La figure 2 illustre plus précisément les étapes du procédé de codage selon un mode de réalisation de l'invention, à partir d'un macrobloc courant MB d'une image découpée en macroblocs, eux-mêmes composés de blocs de pixels.
Un tel procédé de codage met en œuvre au moins une itération d'une étape d'affectation 20 et d'une étape de codage 21.
Plus précisément, au cours de l'étape d'affectation 20, on affecte un niveau de priorité aux blocs du macrobloc MB courant adjacents à au moins un bloc précédemment codé-décodé.
Lors de l'étape de codage 21, le bloc de niveau de priorité le plus élevé, parmi les blocs auxquels on a affecté un niveau de priorité, est codé.
Préalablement à l'étape 21 de codage, une étape de sélection du bloc de niveau de priorité le plus élevé est effectuée, de façon à l'identifier parmi les blocs auxquels ont été affectés des niveaux de priorité.
Ces deux étapes d'affectation 20 et de codage 21 peuvent être répétées autant de fois que nécessaire pour coder tous les blocs du macrobloc MB considéré et obtenir un macrobloc codé MBc. Lors de la première itération, c'est-à-dire lorsqu'aucun bloc du macrobloc courant n'a encore été codé, un niveau de priorité est affecté aux blocs situés sur le bord du macrobloc et adjacents à au moins un bloc déjà codé-décodé lors du codage d'un macrobloc adjacent au macrobloc MB considéré.
Lors des itérations suivantes, un niveau de priorité est affecté aux blocs non codés adjacents à au moins un bloc déjà codé-décodé. Un tel bloc déjà codé- décodé peut avoir été codé puis décodé lors d'une précédente itération ou lors du codage d'un macrobloc adjacent au macrobloc considéré.
Ces étapes d'affectation 20 et de codage 21 permettent d'obtenir un sens de parcours pour le codage des blocs du macrobloc considéré, dans l'ordre de priorité obtenu en fonction des niveaux de priorité calculés. Ce sens de parcours des blocs restant à coder dans le macrobloc est défini ou adapté à chaque itération, c'est-à-dire à chaque nouveau bloc codé.
5.2 Description détaillée d'un mode de réalisation du procédé de codage On décrit ci-après un exemple de mise en œuvre du procédé de codage selon l'invention, pour une image courante en deux dimensions, et plus particulièrement pour un macrobloc MB tel qu'illustré en figure 3.
Ce macrobloc MB est composé de 4x4 blocs, eux-mêmes comprenant 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 - MBf, à gauche du macrobloc courant - MBL, e* au-dessus à gauche et du macrobloc courant - MBTL).
On entend ici par « bloc adjacent » un bloc qui touche la frontière du bloc courant. En d'autres termes, un « bloc adjacent » est un bloc localisé dans une couronne comprenant les huit blocs entourant le bloc courant.
Un bloc déjà codé-décodé est représenté par un carré avec un motif de treillis.
Sur la figure 3, les blocs Bl ... B 16 du macrobloc MB sont numérotés de gauche à droite et de haut en bas, pour faciliter la lecture de la suite de la description.
Les figures 4a à 4d illustrent un exemple de parcours de codage des blocs d'un macrobloc MB selon un mode de réalisation du procédé de codage de l'invention.
Les blocs auxquels sont affectées des priorités sont représentés par des carrés avec un motif rayé diagonal, et plus spécifiquement, les blocs du bord du macrobloc courant MB, adjacents à des blocs déjà codés-décodés des macroblocs
MBj, MBL, et MBχL> sont représentés par des carrés avec le même motif en gras.
Les chiffres au milieu des blocs correspondent à la priorité des blocs pour le sens de parcours de codage. Les priorités des blocs sont fonction des niveaux de priorité calculés pour ces blocs : la priorité 1 correspond au niveau de priorité le plus élevé et la priorité 6 correspond au niveau de priorité le plus faible.
La figure 4a illustre le résultat de l'étape d'affectation 20 de la première itération du procédé de codage selon ce mode de réalisation de l'invention, consistant à affecter un niveau de priorité aux blocs du macrobloc adjacents aux trois macroblocs déjà précédemment codés-décodés (en haut MBf, à gauche
MBL, et dans le coin haut gauche du macrobloc MBJL)-
Ces blocs adjacents sont au nombre de sept (B l, B2, B3, B4, B5, B9 et B 13), représentés par des carrés avec un motif rayé diagonal. Une priorité allant de 1 à 5 est affectée à chacun d'eux. Selon cet exemple de réalisation de l'invention, on considère les paramètres suivants pour calculer le niveau de priorité de chaque bloc :
- le nombre de pixels d'au moins un bloc précédemment codé adjacent audit bloc ; - la présence d'un contour dans ledit bloc qui poursuit un contour provenant d'un bloc précédemment codé adjacent audit bloc. Ce paramètre est pondéré de façon à coder en priorité un bloc ayant un contour incident. Par exemple, ce paramètre de contour incident vaut 10 ; - une pondération des pixels disponibles en fonction de leur distance par rapport à un bloc codé présentant un contour incident. Par exemple, ce paramètre vaut 2 lorsque la distance correspond à une distance égale ou inférieure à celle de deux blocs voisins ;
- la présence d'un contour non incident. Ce paramètre de contour non incident vaut 1 par exemple, dans ce mode de réalisation.
D'autres critères pourraient également être pris en compte, comme un nombre de candidats disponibles pour une région modèle (« template ») ou un paramètre statistique représentatif d'une activité du bloc.
Dans l'exemple de la figure 4a, les niveaux de priorité des blocs ont déjà été calculés et les blocs sont numérotés par priorité.
Les calculs de priorité effectués sont détaillés ci-dessous. On considère que lorsqu'un bloc est « directement adjacent » à un autre bloc, il bénéficie de quatre pixels disponibles pour son codage, et lorsqu'il est « adjacent par un coin », il bénéficie d'un pixel disponible pour son codage. Le bloc B 13 étant adjacent à deux blocs codés-décodés du macrobloc
MBL, ϋ bénéficie de (4+1) pixels disponibles pour le codage. De plus, il comporte un contour C incident (paramètre de poids 10), venant du bloc de gauche. Le niveau de priorité de ce bloc se calcule donc de la façon suivante : 5 + 10 = 15.
Le bloc B9 étant adjacent à trois blocs codés-décodés du macrobloc MBL, il bénéficie de (1+4+1) pixels disponibles. De plus, cinq de ces pixels sont proches d'un bloc comportant un contour C incident (dans l'exemple ils sont dans le bloc voisin ou dans le bloc même d'où est issu le contour C incident détecté dans le bloc de priorité 1), ce qui pondère par 2 ces cinq pixels disponibles. Le niveau de priorité de ce bloc est donc égal à 1 + (2x5) = 11. Le bloc B l bénéficie quant à lui de (1+4+1+4+1) pixels disponibles pour son codage, car il est voisin de cinq blocs déjà codés-décodés. Il est affecté d'un niveau de priorité égal à 11.
Le bloc B5 bénéficie quant à lui de (1+4+1) pixels disponibles pour son codage, dont un pixel est dans le bloc voisin du bloc dont est issu le contour C incident détecté dans le bloc de priorité 1 (paramètre de pondération par 2 du pixel disponible). Le niveau de priorité de ce bloc est égal à (2x1) + 4 + 1= 7.
Le bloc B4 bénéficie de (4+1) pixels disponibles pour son codage, et comporte un contour C non incident. Ce paramètre valant 1, un niveau de priorité égal à 5 + 1 = 6 est affecté à ce bloc. Les deux autres blocs B2 et B3 bénéficient du même nombre (six) de pixels disponibles (étant adjacents à un bloc codé-décodé) et n'ont pas de contour. Ils sont donc affectés du même niveau de priorité égal à 6.
Ainsi, les priorités suivantes sont attribuées aux sept blocs considérés :
B 13 a la priorité 1, B9 et Bl ont une priorité 2, B5 a la priorité 3, et B2, B3 et B 4 ont une priorité 4.
L'étape suivante consiste à coder le bloc de priorité 1, B 13.
On construit ainsi progressivement l'ordre de parcours des blocs dans le macrobloc courant en codant, au cours de cette première itération, uniquement le bloc de priorité 1. Lors d'une deuxième itération, le calcul des niveaux de priorité est effectué à nouveau et illustré sur la figure 4b, après le codage du premier bloc (qui est donc représenté avec un motif en treillis sur cette figure 4b).
Pour cette deuxième itération, on considère à nouveau les blocs du bord du macrobloc MB (B l à B5 et B9), et également les blocs adjacents au premier bloc codé B 13, soit les blocs supplémentaires B 14 et B 10. Dans l'exemple, le bloc B9 donc adjacent à quatre blocs précédemment codés, et bénéficie de (4+1+4+1) pixels disponibles pour son codage. De plus, ce bloc est traversé par un contour C incident, provenant du bloc codé à l'itération précédente (paramètre de valeur 10). Le niveau de priorité de ce bloc vaut donc 20.
Le bloc B 14 est adjacent à un seul bloc codé et bénéficie de 4 pixels disponibles pour son codage. Il n'est pas traversé par un contour, son niveau de priorité est égal à 4.
Le bloc BlO est adjacent à un seul bloc codé et bénéficie de 4 pixels disponibles pour son codage. Il est traversé par un contour C non incident. Ce paramètre valant 1, un niveau de priorité égal à 4 + 1 = 5 est affecté à ce bloc.
Le bloc B5 a un niveau de priorité égal à 7, ce calcul de niveau de priorité étant inchangé par le codage du premier bloc.
Les niveaux de priorité des blocs Bl à B4 restent inchangés également, ainsi le bloc B l a un niveau de priorité égal à 11, et les blocs B2 à B4 un niveau de priorité égal à 6.
Le bloc B9 de niveau de priorité égal à 20 est le bloc à coder en priorité. Une fois le bloc de priorité 1 codé et décodé, un nouveau calcul des niveaux de priorité est effectué, tenant compte de ce nouveau bloc codé-décodé. Cette troisième itération est illustrée par la figure 4c, sur laquelle sont représentés les deux blocs codés lors des deux itérations précédentes.
Sur cette figure 4c, le bloc BlO, adjacent au bloc B9 codé lors de l'itération précédente, a un niveau de priorité égal à 15, calculé de la façon suivante : - (4+1) pixels disponibles pour le codage, car adjacent à deux blocs codés- décodés ; - un contour C incident le traverse (paramètre de valeur 10).
Le bloc B5 bénéficie de (4+1+4+1) pixels disponibles pour son codage, dont un pixel est dans le bloc voisin du bloc dont est issu le contour C incident détecté dans le bloc de priorité 1 (paramètre de pondération par 2 du pixel disponible). Le niveau de priorité de ce bloc est égal à (2x1) + 4 + 1 + 4 = 11.
Le niveau de priorité du bloc B l est inchangé par rapport à l'étape précédente, et vaut 11.
Les trois autres blocs B 2 à B4 ont également un niveau de priorité inchangé, valant 6.
Le bloc B 14 a un niveau de priorité égal à 5, car il bénéficie de (4+1) pixels disponibles pour son codage.
Enfin, le bloc B6 est adjacent au bloc B9 et bénéficie d'un pixel disponible pour son codage. Son niveau de priorité est égal à 1. Ainsi, cette troisième itération indique que le bloc B lO de priorité 1 est le prochain bloc à coder.
Le codage de ce bloc est effectué lors de la deuxième étape de cette troisième itération.
On ne détaille pas ci-après toutes les itérations mises en œuvre pour le codage des 16 blocs du macrobloc considéré, car elles suivent le même principe que les itérations décrites ci-dessus.
On s'intéresse par exemple au résultat de la neuvième itération, illustré en figure 4d, sur laquelle est représenté le sens de parcours SP de codage des 9 premiers blocs. Lors de la dixième itération, on affecte donc, comme pour les autres itérations, un niveau de priorité aux blocs non encore codés, et adjacents à au moins un bloc déjà codé-décodé.
Par exemple, le bloc B l est adjacent à 6 blocs déjà codés, et bénéficie de (1 + 4 + 1 + 4 + 1 + 1) pixels disponibles. Son niveau de priorité est égal à 12. Le bloc B5 est lui aussi adjacent à 6 blocs décodés, et bénéficie de (1 + 4 +
1 + 4 + 1 + 4) pixels disponibles. Son niveau de priorité est égal à 15.
Le bloc B2 est également adjacent à 6 blocs décodés, et bénéficie de (1 + 4 + 1 + 4 + 1 + 4) pixels disponibles. Son niveau de priorité est égal à 15. Enfin, les trois autres blocs auxquels est affecté un niveau de priorité sont les blocs B 12, B 14 et B 15, présentant des niveaux de priorité respectivement de 10, 9 et 5.
Les deux blocs de niveau de priorité 15, le plus élevé, devraient donc avoir la même priorité 1 dans le sens de parcours pour le décodage des blocs restant. Il faut cependant les différencier car un seul bloc est décodé lors d'une itération.
Un critère de différenciation est par exemple l'utilisation du sens de parcours de décodage classique, c'est-à-dire de gauche à droite dans un premier temps, et de haut en bas (comme illustré en figure 1). Dans l'exemple de la figure 4d, on choisit donc d'attribuer la priorité 1 au bloc B5, et la priorité 2 au bloc B2. Selon un autre exemple, on pourrait choisir d'inverser les priorités de ces deux blocs, en privilégiant le codage du bloc le plus haut dans le macrobloc par exemple.
Dans cet exemple, le bloc B2 de priorité 2 est représenté avec les différents sens de prédiction qui pourront être utilisés pour son codage/décodage, correspondant au nombre de points frontière disponibles.
On peut constater que, contrairement au sens de parcours classique dans lequel ce bloc est codé en deuxième, ce bloc est codé, selon ce mode de réalisation de l'invention, parmi les derniers du macrobloc, et bénéficie donc de plus de pixels au moment de la prédiction.
Ainsi, le sens de parcours adaptatif des blocs dans le macrobloc obtenu par le procédé de codage selon l'invention permet une meilleure prédiction de tous les blocs, ainsi qu'une meilleure reconstruction des blocs en respectant les contours.
Ainsi, le procédé de codage selon l'invention permet de réduire le débit nécessaire au codage d'une séquence d'images vidéo, sans en affecter la qualité.
De plus, le procédé de codage selon l'invention est apte à être intégré dans un codeur vidéo basé sur les macroblocs, par exemple en ajoutant un nouveau mode de prédiction spatiale des macroblocs.
Ces itérations sont effectuées de manière similaire côté décodage, et ne sont pas décrites plus en détails ici. Plus précisément, ces itérations étant réalisées de manière similaire côté décodage, l'ordre de décodage obtenu est le même que l'ordre de codage mis en œuvre. Il n'est donc pas nécessaire de transmettre des informations supplémentaires relatives à la priorité des blocs dans le signal représentatif de l'image. 5.5 Structure des dispositifs de codage et de décodage
On présente finalement, en relation avec les figures 5 et 6, la structure simplifiée d'un codeur et d'un décodeur mettant respectivement en œuvre une technique de codage d'une image et une technique de décodage selon le mode de réalisation particulier décrit ci-dessus. Un tel codeur comprend une mémoire 51 comprenant une mémoire tampon, une unité de traitement 52, équipée par exemple d'un microprocesseur μP, et pilotée par le programme d'ordinateur 53, mettant en œuvre le procédé de codage selon un mode de réalisation de l'invention.
A l'initialisation, les instructions de code du programme d'ordinateur 53 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 52. L'unité de traitement 52 reçoit en entrée une ou plusieurs images à coder. Le microprocesseur de l'unité de traitement 52 met en œuvre les étapes du procédé de codage décrit précédemment, selon les instructions du programme d'ordinateur 53, pour coder la ou les images dans un signal. Pour cela, le codeur comprend, outre la mémoire tampon 51, des moyens de d'affectation d'un niveau de priorité à au moins un bloc d'un macrobloc courant de l'image, ce bloc étant adjacent à au moins un bloc précédemment codé, et des moyens de codage du bloc présentant le niveau de priorité le plus élevé, ces moyens étant mis en œuvre pour au moins une itération, de façon à coder les blocs du macrobloc courant selon un ordre de parcours adaptatif. Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 52.
Le décodeur 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 décodage selon un mode de réalisation de l'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 en entrée un signal représentatif d'une séquence d'images. Le microprocesseur de l'unité de traitement 62 met en œuvre les étapes du procédé de décodage décrit précédemment, selon les instructions du programme d'ordinateur 63, pour décoder le signal et reconstruire la ou les images de la séquence. Pour cela, le décodeur comprend, outre la mémoire tampon 61, des moyens d'affectation d'un niveau de priorité à au moins un bloc d'un macrobloc courant de l'image, ce bloc étant adjacent à au moins un bloc précédemment codé, et des moyens de reconstruction du bloc présentant le niveau de priorité le plus élevé, ces moyens étant mis en œuvre pour au moins une itération, de façon à reconstruire les blocs du macrobloc courant selon un ordre de parcours adaptatif. Ces moyens sont pilotés par le microprocesseur de l'unité de traitement 62.

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é comprend au moins une itération des étapes suivantes, pour au moins un macrobloc courant de ladite image :
- affectation (20) d'un niveau de priorité à au moins un bloc dudit macrobloc courant, adjacent à au moins un bloc précédemment codé, et
- codage (21) du bloc présentant le niveau de priorité le plus élevé, de façon à coder les blocs dudit macrobloc courant selon un ordre de parcours adaptatif.
2. Procédé de codage selon la revendication 1, caractérisé en ce que ladite étape d'affectation (20) d'un niveau de priorité tient compte d'au moins un paramètre appartenant au groupe comprenant :
- un nombre de pixels d'au moins un bloc précédemment codé adjacent audit bloc, dits pixels disponibles ;
- une présence d'un contour dans ledit bloc qui poursuit un contour provenant d'un bloc précédemment codé adjacent audit bloc ;
- une pondération des pixels disponibles en fonction de leur distance par rapport à un bloc codé présentant un contour incident ; - un nombre de candidats disponibles pour une région modèle de l'image, voisine d'une région à prédire ;
- un paramètre statistique représentatif d'une activité dudit bloc.
3. Procédé de codage selon la revendication 2, caractérisé en ce qu'il comprend une étape de pondération desdits paramètres selon un critère prédéterminé, mise en œuvre préalablement à ladite étape d'affectation.
4. Procédé de codage selon la revendication 1, caractérisé en ce qu'il comprend une itération d'initialisation affectant un niveau de priorité à au moins un bloc dudit macrobloc courant, adjacent à au moins un bloc appartenant à un macrobloc précédemment codé, et au moins une itération suivante affectant un niveau de priorité à au moins un bloc dudit macrobloc courant, adjacent à au moins un bloc dudit macrobloc courant codé au cours d'une itération précédente.
5. Procédé de codage selon la revendication 1, caractérisé en ce que ladite étape de codage met en œuvre un mode de codage dit « intra », mettant en œuvre une prédiction, et en ce que le nombre de prédiction possibles et les directions de ces prédictions sont déterminés en tenant compte dudit ordre de parcours adaptatif.
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.
7. Dispositif 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 dispositif comprend :
- des moyens d'affectation (20) d'un niveau de priorité à au moins un bloc d'un macrobloc courant de ladite image, ledit bloc étant adjacent à au moins un bloc précédemment codé, et
- des moyens de codage (21) du bloc présentant le niveau de priorité le plus élevé, lesdits moyens étant mis en œuvre pour au moins une itération, de façon à coder les blocs dudit macrobloc courant selon un ordre de parcours adaptatif.
8. Procédé de décodage d'un signal représentatif 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é comprend au moins une itération des étapes suivantes, pour au moins un macrobloc courant de ladite image :
- affectation d'un niveau de priorité à au moins un bloc dudit macrobloc courant, adjacent à au moins un bloc précédemment codé, et
- reconstruction du bloc présentant le niveau de priorité le plus élevé, de façon à reconstruire les blocs dudit macrobloc courant selon un ordre de parcours adaptatif.
9. Programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de décodage selon la revendication 8 lorsque ledit programme est exécuté par un processeur.
10. Dispositif de décodage d'un signal représentatif 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 dispositif comprend :
- des moyens d'affectation d'un niveau de priorité à au moins un bloc d'un macrobloc courant de ladite image, ledit bloc étant adjacent à au moins un bloc précédemment codé, et
- des moyens de reconstruction du bloc présentant le niveau de priorité le plus élevé, lesdits moyens étant mis en œuvre pour au moins une itération, de façon à reconstruire les blocs dudit macrobloc courant selon un ordre de parcours adaptatif.
PCT/FR2010/050120 2009-01-28 2010-01-27 Procede et dispositif de codage d'une image, procede et dispositif de decodage, et programmes d'ordinateur correspondants Ceased WO2010086548A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0950513 2009-01-28
FR0950513 2009-01-28

Publications (1)

Publication Number Publication Date
WO2010086548A1 true WO2010086548A1 (fr) 2010-08-05

Family

ID=41226110

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2010/050120 Ceased WO2010086548A1 (fr) 2009-01-28 2010-01-27 Procede et dispositif de codage d'une image, procede et dispositif de decodage, et programmes d'ordinateur correspondants

Country Status (1)

Country Link
WO (1) WO2010086548A1 (fr)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011142833A3 (fr) * 2010-05-14 2012-04-26 Thomson Licensing Procédés et appareil pour le codage intra d'un bloc ayant des pixels attribués à des groupes
EP2903276A1 (fr) * 2014-02-04 2015-08-05 Thomson Licensing Procédés de codage et de décodage d'une image comprenant la retouche de l'épitome de l'image et dispositifs correspondants
US10264290B2 (en) 2013-10-25 2019-04-16 Microsoft Technology Licensing, Llc Hash-based block matching in video and image coding
EP3484148A1 (fr) * 2017-11-09 2019-05-15 Thomson Licensing Ordre de balayage automatisé de blocs subdivisés
US10368092B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US10567754B2 (en) 2014-03-04 2020-02-18 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
US10681372B2 (en) 2014-06-23 2020-06-09 Microsoft Technology Licensing, Llc Encoder decisions based on results of hash-based block matching
US11025923B2 (en) 2014-09-30 2021-06-01 Microsoft Technology Licensing, Llc Hash-based encoder decisions for video coding
US11076171B2 (en) 2013-10-25 2021-07-27 Microsoft Technology Licensing, Llc Representing blocks with hash values in video and image coding and decoding
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5767909A (en) * 1995-03-28 1998-06-16 Daewoo Electronics, Co., Ltd. Apparatus for encoding a digital video signal using an adaptive scanning technique
US20060067399A1 (en) * 2004-09-30 2006-03-30 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding data in intra mode based on multiple scanning
US20070041450A1 (en) * 2005-08-20 2007-02-22 Samsung Electronics Co., Ltd. Method and apparatus for image intraperdiction encoding/decoding
EP1956847A1 (fr) * 2005-11-08 2008-08-13 Matsushita Electric Industrial Co., Ltd. Méthode de codage d'image en mouvement, méthode de décodage d'image en mouvement et appareils correspondants
EP1976298A2 (fr) * 2007-03-30 2008-10-01 Fujitsu Limited Procédé de traitement d'image, encodeur et décodeur
US20090003443A1 (en) * 2007-06-26 2009-01-01 Nokia Corporation Priority-based template matching intra prediction video and image coding

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5767909A (en) * 1995-03-28 1998-06-16 Daewoo Electronics, Co., Ltd. Apparatus for encoding a digital video signal using an adaptive scanning technique
US20060067399A1 (en) * 2004-09-30 2006-03-30 Samsung Electronics Co., Ltd. Method and apparatus for encoding and decoding data in intra mode based on multiple scanning
US20070041450A1 (en) * 2005-08-20 2007-02-22 Samsung Electronics Co., Ltd. Method and apparatus for image intraperdiction encoding/decoding
EP1956847A1 (fr) * 2005-11-08 2008-08-13 Matsushita Electric Industrial Co., Ltd. Méthode de codage d'image en mouvement, méthode de décodage d'image en mouvement et appareils correspondants
EP1976298A2 (fr) * 2007-03-30 2008-10-01 Fujitsu Limited Procédé de traitement d'image, encodeur et décodeur
US20090003443A1 (en) * 2007-06-26 2009-01-01 Nokia Corporation Priority-based template matching intra prediction video and image coding

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
JIHENG YANG ET AL: "A Block-Matching Based Intra Frame Prediction for H.264/AVC", IEEE INTERNATIONAL CONFERENCE ON MULTIMEDIA AND EXPO, 1 July 2006 (2006-07-01), pages 705 - 708, XP031032933, ISBN: 978-1-4244-0366-0 *
SUGIMOTO K ET AL: "Inter frame coding with template matching spatio-temporal prediction", IMAGE PROCESSING, 2004. ICIP '04. 2004 INTERNATIONAL CONFERENCE ON SINGAPORE 24-27 OCT. 2004, PISCATAWAY, NJ, USA,IEEE LNKD- DOI:10.1109/ICIP.2004.1418791, vol. 1, 24 October 2004 (2004-10-24), pages 465 - 468, XP010784855, ISBN: 978-0-7803-8554-2 *
TAICHIRO SHIODERA ET AL: "Block Based Extra/Inter-Polating Prediction for Intra Coding", IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING, 1 September 2007 (2007-09-01), pages VI - 445, XP031158358, ISBN: 978-1-4244-1436-9 *
THIOW KENG TAN ET AL: "Intra Prediction by Template Matching", IEEE INTERNATIONAL CONFERENCE ON IMAGE PROCESSING, 1 October 2006 (2006-10-01), pages 1693 - 1696, XP031048981, ISBN: 978-1-4244-0480-3 *
YONGJUN WU ET AL: "Directional spatial I-blocks for the MC-EZBC video coder", IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH, AND SIGNAL PROCESSING, vol. 3, 17 May 2004 (2004-05-17), pages 129 - 132, XP010718143, ISBN: 978-0-7803-8484-2 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10805610B2 (en) 2010-05-14 2020-10-13 Interdigital Vc Holdings, Inc. Methods and apparatus for intra coding a block having pixels assigned to groups
US11871005B2 (en) 2010-05-14 2024-01-09 Interdigital Vc Holdings, Inc. Methods and apparatus for intra coding a block having pixels assigned to groups
US10080024B2 (en) 2010-05-14 2018-09-18 Thomson Licensing Methods and apparatus for intra coding a block having pixels assigned to groups
US12413742B2 (en) 2010-05-14 2025-09-09 Interdigital Vc Holdings, Inc. Methods and apparatus for intra coding a block having pixels assigned to groups
EP4354866A3 (fr) * 2010-05-14 2024-05-01 InterDigital VC Holdings, Inc. Procédés et appareil pour intracoder un bloc ayant des pixels affectés à des groupes
WO2011142833A3 (fr) * 2010-05-14 2012-04-26 Thomson Licensing Procédés et appareil pour le codage intra d'un bloc ayant des pixels attribués à des groupes
EP3499883A3 (fr) * 2010-05-14 2019-08-14 Interdigital VC Holdings, Inc Procédés et appareil d'intra-codage d'un bloc ayant des pixels attribués à des groupes
US11212534B2 (en) 2010-05-14 2021-12-28 Interdigital Vc Holdings, Inc. Methods and apparatus for intra coding a block having pixels assigned to groups
US10264290B2 (en) 2013-10-25 2019-04-16 Microsoft Technology Licensing, Llc Hash-based block matching in video and image coding
US11076171B2 (en) 2013-10-25 2021-07-27 Microsoft Technology Licensing, Llc Representing blocks with hash values in video and image coding and decoding
EP2903276A1 (fr) * 2014-02-04 2015-08-05 Thomson Licensing Procédés de codage et de décodage d'une image comprenant la retouche de l'épitome de l'image et dispositifs correspondants
US10567754B2 (en) 2014-03-04 2020-02-18 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
US10368092B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Encoder-side decisions for block flipping and skip mode in intra block copy prediction
US10681372B2 (en) 2014-06-23 2020-06-09 Microsoft Technology Licensing, Llc Encoder decisions based on results of hash-based block matching
US11025923B2 (en) 2014-09-30 2021-06-01 Microsoft Technology Licensing, Llc Hash-based encoder decisions for video coding
US10390039B2 (en) 2016-08-31 2019-08-20 Microsoft Technology Licensing, Llc Motion estimation for screen remoting scenarios
US11095877B2 (en) 2016-11-30 2021-08-17 Microsoft Technology Licensing, Llc Local hash-based motion estimation for screen remoting scenarios
US11240505B2 (en) 2017-11-09 2022-02-01 Interdigital Vc Holdings, Inc. Automated scanning order for sub-divided blocks
CN111328449B (zh) * 2017-11-09 2022-08-19 交互数字Vc控股公司 基于细分块的自动扫描顺序的视频信号处理系统和方法
CN111328449A (zh) * 2017-11-09 2020-06-23 交互数字Vc控股公司 细分块的自动扫描顺序
WO2019094423A1 (fr) * 2017-11-09 2019-05-16 Interdigital Vc Holdings, Inc. Ordre de balayage automatisé pour blocs sous-divisés
EP3484148A1 (fr) * 2017-11-09 2019-05-15 Thomson Licensing Ordre de balayage automatisé de blocs subdivisés
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks

Similar Documents

Publication Publication Date Title
WO2010086548A1 (fr) Procede et dispositif de codage d'une image, procede et dispositif de decodage, et programmes d'ordinateur correspondants
EP2446628B1 (fr) Procédé de décodage d'images, dispositifs de décodage et programme d'ordinateur correspondants
EP2392141A1 (fr) Procede et dispositif de codage d'une image utilisant un masque de prediction, procede et dispositif de decodage, signal et programmes d'ordinateur correspondants
EP2351373B1 (fr) Codage et decodage avec elimination d'un ou plusieurs predicteurs predetermines
EP2446629B1 (fr) Procédés de codage et de décodage d'images, dispositifs de codage et de décodage, et programme d'ordinateur correspondants
EP2347595A1 (fr) Procede et dispositif de codage d'une sequence d'image mettant en oeuvre des blocs de taille differente, signal, support de donnees, procede et dispositif de decodage, et programmes d'ordinateur correspondants
WO2015197945A1 (fr) Procédé de codage d'une image numérique, procédé de décodage, dispositifs, et programmes d'ordinateurs associés
FR2906433A1 (fr) Procedes et dispositifs de codage et de decodage d'images, programme d'ordinateur les mettant en oeuvre et support d'informaton permettant de les mettre en oeuvre
EP2277318B1 (fr) Codage et decodage d'une image ou d'une sequence d'images decoupees selon des partitions de pixels de forme lineaire
EP2652952B1 (fr) Procédés et dispositifs de codage et de décodage d'au moins une image mettant en oeuvre une sélection de pixels à prédire, programme d'ordinateur correspondant
WO2016124867A1 (fr) Procede de codage d'une image numerique, procede de decodage, dispositifs, et programmes d'ordinateurs associes
WO2017046273A1 (fr) Procede d'encodage d'image et equipement pour la mise en oeuvre du procede
EP3972247B1 (fr) Procédé de codage et de décodage d'images, dispositif de codage et de décodage d'images et programmes d'ordinateur correspondants
FR2955995A1 (fr) Procede et dispositif de traitement d'une sequence video
EP4578188A1 (fr) Lissage hors boucle de codage d'une frontière entre deux zones d'image
EP2279620B1 (fr) Prediction d'images par determination prealable d'une famille de pixels de reference, codage et decodage utilisant une telle prediction
FR3057130B1 (fr) Procede de codage d'une image, procede de decodage, dispositifs, equipement terminal et programmes d'ordinateurs associes
FR2956552A1 (fr) Procede de codage ou de decodage d'une sequence video, dispositifs associes
FR3068558A1 (fr) Procede de codage et decodage d'images,dispositif de codage et decodage et programmes d'ordinateur correspondants
FR2959376A1 (fr) Procede de traitement d'une information de mouvement, procedes de codage et de decodage, dispositifs, signal et programme d'ordinateur correspondants
FR3035761A1 (fr) Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
WO2020094703A1 (fr) Procédé et displositif de codage et de décodage d'une image par découpage de bloc en zones
FR3033115A1 (fr) Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
FR3092719A1 (fr) Procédés et dispositifs de codage et de décodage d'un flux de données représentatif d'au moins une image.
FR2918203A1 (fr) Procedes et dispositifs de codage et de decodage d'images numeriques tenant compte du type des blocs source, signal et produits programme d'ordinateur correspondants.

Legal Events

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

Ref document number: 10707593

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10707593

Country of ref document: EP

Kind code of ref document: A1