EP3238449A1 - Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes - Google Patents

Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes

Info

Publication number
EP3238449A1
EP3238449A1 EP15823644.8A EP15823644A EP3238449A1 EP 3238449 A1 EP3238449 A1 EP 3238449A1 EP 15823644 A EP15823644 A EP 15823644A EP 3238449 A1 EP3238449 A1 EP 3238449A1
Authority
EP
European Patent Office
Prior art keywords
sub
partitioning
blocks
block
current block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP15823644.8A
Other languages
German (de)
English (en)
Inventor
Joël JUNG
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.)
B Com SAS
Original Assignee
Orange SA
B Com SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA, B Com SAS filed Critical Orange SA
Publication of EP3238449A1 publication Critical patent/EP3238449A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

Definitions

  • the field of the invention is that of signal compression, in particular a digital image or a sequence of digital images, divided into blocks of pixels.
  • the encoding / decoding of digital images applies in particular to images from at least one video sequence comprising:
  • the present invention applies similarly to the coding / decoding of 2D or 3D type images.
  • the invention may especially, but not exclusively, apply to video coding implemented in current AVC and HEVC video encoders and their extensions (MVC, 3D-AVC, MV-HEVC, 3D-HEVC, etc.), and to corresponding decoding.
  • the invention can also be applied to audio coding, for example implemented in current audio encoders (EVS, OPUS, MPEG-H, etc.) and their extensions and the corresponding decoding.
  • EVS audio encoders
  • OPUS OPUS
  • MPEG-H MPEG-H
  • decoding for example implemented in current audio encoders (EVS, OPUS, MPEG-H, etc.) and their extensions and the corresponding decoding.
  • a current block to be coded which constitutes an initial coding unit, is generally divided into a variable number of sub-blocks according to a predetermined cutting mode.
  • Standard encoders offer regular partitioning, based on square or rectangular blocks of fixed size. Partitioning is always done from the initial, unpartitioned coding unit, and the final partitioning is calculated and reported from this neutral base.
  • block partitioning of size 16x16, 8x8 or 4x4 authorized by the standard.
  • FIG. 1b an exemplary partitioning enabled by the HEVC standard is illustrated.
  • Patent application published under the number WO2011 / 127966 discloses a method of coding a 3D digital image, by planes, according to which the partitioning implemented for the coding of a plane of this image, for example the texture plane is inherited when coding the associated depth plane. This results in a substantial saving in terms of signage.
  • the invention improves the situation.
  • the invention particularly aims to overcome these disadvantages of the prior art.
  • an object of the invention is to propose a solution that makes it possible to more efficiently predict and code complex image structures.
  • Another objective of the invention is to propose a solution that is more efficient in compression.
  • a coding method of a digital image said image (Im) being divided into a plurality of blocks of pixels processed in a sequence defined, characterized in that said method comprises the following steps, implemented for a current block (b): a) Obtaining a motion vector, called base motion vector of the current block with respect to a previously decoded reference image ;
  • the invention is based on a completely new and inventive approach to image coding, which consists in applying to the current block the partitioning of the zone of the same size of the reference image pointed by the vector base movement obtained. for the current block.
  • the invention takes advantage of the similarities of texture that exist between the current block of the current image and the area pointed in the image of the image. reference, to optimize the partitioning of the current block.
  • the initial partitioning structure of the current block does not need to be transmitted to the decoder as signaling information in the data stream, since it can be obtained from the reference image. previously treated.
  • partitioning structure is irregular: unlike standard encoders that apply a regular partitioning, for example of "quadtree" type, the partitioning proposed by the invention is not regular and, although complex, it remains simple to report because it is partly inherited from the reference image.
  • the invention therefore makes it possible to better adapt the partitioning of a block to the content to be coded, while optimizing the coding cost.
  • the invention thus proposes a new coding mode of a current block, which can advantageously be put into competition with other known coding modes of currently standardized coding schemes, such as, for example, the Intra, Inter or Merge modes. of the HEVC standard.
  • the partitioning obtained from the reference image constitutes an initial partitioning of the current block, which the invention proposes to modify to adapt more finely to the specific texture of the current block.
  • This modification can consist of a merge of neighboring partitions or a partition of a partition.
  • this modification is validated by comparison with the initial partitioning. Once validated, the modification is signaled in the bit stream for example by difference with the initial partitioning. Reporting partitioning changes allows for low coding overhead.
  • the step of obtaining the base motion vector comprises a motion estimation of the current block relative to the previously decoded reference image according to an error minimization criterion.
  • the invention implements a particular motion estimation of the current block with respect to a reference image. It provides the basic motion vector used to obtain the initial partitioning of the current block from the reference image. It favors an error minimization criterion, rather than a coding cost criterion of the block, so as to guarantee that the content of the area pointed by the estimated basic motion vector is as similar as possible to that of the current block. .
  • the modification comprises a merger of a sub-block of the coded current partitioning with at least one neighboring sub-block already coded.
  • a modification proposed by the invention is to merge two or more neighboring sub-blocks of the current block to encode them as a single partition.
  • the modification of the partitioning is indicated in the bit stream. Because of the legacy of initial partitioning, signaling is not a significant additional cost, especially since a basic motion vector can be saved as a result of this merger.
  • the invention makes it possible to make a compromise between the additional cost related to the modification of the partitioning, and the reduction of the cost associated with the signaling of the motion vector
  • the modification of the current partitioning further comprises a division of at least one sub-block into at least two sub-blocks.
  • the step of cutting said at least one sub-block into at least two sub-blocks comprises the implementation of steps a) and b) of obtaining a basic motion vector and applying partitioning of the area pointed by the base motion vector for the at least one current sub-block.
  • the principle of defining an initial partitioning of the current block from that of the block pointed by the motion vector estimated in the reference image is here applied recursively for the cut sub-blocks.
  • Such a coding device of a digital image is particular in that it is able to implement the following units, implemented for a current block:
  • said coding comprising a modification of the partitioning of the current block into sub-blocks according to predetermined rules, an encoding of the modified partitioning sub-blocks including the coding of the partitioning modification signaling information and a modified partitioning validation by applying a rate-distortion criterion to the coded sub-blocks of the modified partitioning.
  • the invention also relates to a method for decoding a digital image from a bit stream comprising coded data representative of said image, said image being divided into a plurality of blocks processed in a defined order, said method comprising the following steps, implemented for a block, called current block: a ') Obtaining a basic motion vector between the current block and a previously decoded reference image, said motion vector pointing to an area of the image of reference, of the same size as that of the current block; b ') Obtaining a sub-block partitioning of the area pointed in the reference image by the base motion vector and application of the partitioning obtained to the current block; c ') Course of the sub-blocks of the current block according to a predetermined order of travel and decoding of the coded data read in the bitstream for the sub-blocks traveled, said decoding comprising a modification of the initial partitioning, obtained for the current block according to coded data representative of a signaling of the partitioning modification and the decoding of the modified partitioning
  • the decoder method reproduces the principle of application to the current partitioning block of a zone of the same size pointed by the motion vector of the current block in a reference image proposed by the invention.
  • this coding mode of the invention for the current block is reported in the bit stream, which further comprises a representative field of the base motion vector to use.
  • This basic movement vector may have been estimated specifically to code the current block according to the invention and in this case, the field in question codes its components.
  • it corresponds to an estimated motion vector for a neighboring block and the field comprises an index representative of the neighboring block.
  • the initial partitioning is advantageously modified according to the signaling data read in the bit stream.
  • the step of modifying the initial partitioning replaces the at least two neighboring sub-blocks of the initial partitioning with a sub-block in the modified partitioning and the step decoding includes decoding the sub-block.
  • the signaling of this merge in the bit stream allows the decoder to update the initial partitioning.
  • the step of modifying the partitioning applies the signaling division to the current sub-block and the decoding step decodes the sub-blocks obtained in a predetermined order of travel.
  • the signaling of the division into the bitstream allows the decoder to update the initial partitioning.
  • the signalised cutting is a regular cutting, for example of the "quadtree" type.
  • the signaling data indicates to the decoder that the coding mode chosen for the current sub-block is the coding mode according to the invention, that is to say by applying the partitioning of a zone of the reference image pointed to by a basic motion vector.
  • the decoder then again implements steps a '), b') and c ') for the current sub-block, which leads to an irregular division of this sub-block.
  • the decoding method that has just been described is advantageously implemented by a device for decoding a digital image according to such a device. decoding a digital image from a bit stream comprising encoded data representative of said image, said image being divided into a plurality of processed blocks in a defined order, is particular in that it comprises the following units, capable to be implemented for a block, called current block:
  • the invention relates to a signal carrying a bit stream comprising coded data representative of a digital image, said digital image being divided into blocks of processed pixels in a defined order.
  • the signal according to the invention is particular in that, for a current block, said coded data comprise a field representative of a basic motion vector of the current block with respect to a reference image, a field representative of a coding mode. by applying the partitioning of the zone of the same size as the current block, pointed by the base motion vector in the reference image, said initial partitioning, and coded data representative of a signaling of the modification of the initial partitioning.
  • the invention relates to a user terminal.
  • a user terminal is particular in that it comprises a device for encoding a digital image and a device for decoding a digital image according to the invention.
  • the invention also relates to a computer program comprising instructions for implementing the steps of a method of encoding a digital image as described above, when this program is executed by a processor.
  • the invention also relates to a computer program comprising instructions for implementing the steps of a method of decoding a digital image as described above, when this program is executed by a processor.
  • These programs can use any programming language. They can be downloaded from a communication network and / or recorded on a computer-readable medium.
  • the invention finally relates to recording media, readable by a processor, integrated or not integrated with the encoding device of a digital image and the decoding device of a digital image according to the invention, possibly removable, respectively memorizing a computer program implementing an encoding method and a computer program implementing a decoding method, as described above.
  • FIGS. 1a and 1b, already described, illustrate examples of block partitioning respectively authorized and prohibited by the AVC standard
  • FIGS. 2a and 2b already described, illustrate examples of block partitioning respectively authorized and prohibited by the HEVC standard
  • FIGS. 3a, 3b, 3c and 3d already described, respectively illustrate an example of a block texture having a homogeneous zone and details zones and steps for partitioning the block according to the HEVC standard
  • FIG. 4 schematically shows the steps of a coding method of a digital image according to the prior art
  • FIG. 1a and 1b, already described illustrate examples of block partitioning respectively authorized and prohibited by the AVC standard
  • FIGS. 2a and 2b already described, illustrate examples of block partitioning respectively authorized and prohibited by the HEVC standard
  • FIGS. 3a, 3b, 3c and 3d already described, respectively illustrate an example of a block texture having a homogeneous zone and details zones and steps for partitioning the block according to the HEVC standard
  • FIG. 4 schematically shows the steps
  • FIG. 5 schematically shows the steps of a method of encoding a digital image according to a first embodiment of the invention
  • FIG. 6 schematically shows the steps of a method of decoding a digital image according to a second embodiment of the invention
  • FIG. 7 details a first example of modification of the partitioning of the current block by cutting a sub-block of the partitioning of the current block
  • FIG. 8 details a second example of coding of a current block implementing a modification of the partitioning of the block by cutting a sub-block of the partitioning of the current block
  • FIG. 9 details a third exemplary coding of a current block implementing a modification of the block partitioning by merging a sub-block with a neighboring sub-block of the partitioning
  • FIGS. 11a to 11c show an example of coding of a current block according to one embodiment of the invention, when several successive operations of melting and partitioning partitioning are implemented;
  • Figure 12 schematically shows the steps of a method of decoding a digital image from encoded data according to an embodiment of the invention;
  • Figure 13 schematically shows an example of a hardware structure of a coding device according to one embodiment of the invention;
  • FIG. 14 schematically shows an example of a hardware structure of a decoding device according to one embodiment of the invention.
  • the images are encoded by an encoder, the encoded data is inserted a bit stream TB transmitted to a decoder via a communication network, or a compressed file FC, intended to be stored on a hard disk for example.
  • the decoder extracts the coded data, then received and decoded by a decoder in a predefined order known from the encoder and the decoder, for example in the temporal order II, then 12, and then IM, this order being able to differ according to the mode of the decoder. production.
  • the current decoded picture ID will be noted. Note that, in a video encoder, the ID image is (re) constructed in the encoder so that it can be used to predict the other pixels of the video.
  • each CU will undergo an encoding or decoding operation consisting of a sequence of operations, including non-exhaustively a prediction, a residue calculation, a transformation, a quantization and an entropy coding. This sequence of operations is presented in relation with Figure 4.
  • the first block CTU to be processed is selected as current block b. For example, this is the first block (in lexicographic order). This block has NxN pixels.
  • a prediction Pr of the original block b is determined.
  • the prediction information related to P is encoded in the bit stream TB or compressed file FC.
  • K possible prediction modes ml, ml, ..., mK with K nonzero integer.
  • the prediction mode chosen for the current block b is the mk mode.
  • Some prediction modes are associated with an Intra prediction, others with an INTER prediction, others with a MERGE prediction.
  • the residue R is transformed into a transformed residue block, called RT, by a DCT transform or wavelet transform, both known to those skilled in the art and in particular implemented in the JPEG standards for the DCT and JPEG2000 for the wavelet transform.
  • the transformed residue RT is quantized by conventional quantization means, for example scalar or vector, into a quantized residue block RQ.
  • This quantized block RQ contains NxN coefficients. As known in the state of the art, these coefficients are scanned in a predetermined order so as to constitute a one-dimensional vector RQ [i], where the index i varies from 0 to N 2 -1. The index i is called the frequency of the coefficient RQ [i].
  • these coefficients are scanned in increasing frequency order, for example along a zigzag path, which is known from the JPEG fixed image coding standard.
  • the amplitude information of the coefficients of the residual block RQ is encoded by entropy coding, for example according to a Huffman coding or arithmetic coding technique.
  • amplitude is meant here the absolute value of the coefficient.
  • one or more information relating to the amplitude is encoded.
  • CA amplitudes are obtained.
  • the signs of the coefficients are simply encoded by a bit 0 or 1.
  • the previous steps E1 to E5 are repeated for the possible partitions I of the current block b.
  • each of the sub-blocks CU of the current block b are treated as previously described, a type of prediction (Inter or Intra) being authorized by CU.
  • a type of prediction Inter or Intra
  • the sub-blocks of a sub-block CU are all subjected to the same type of prediction.
  • the coded data for each of the I possible partitionings are put into competition according to a rate-distortion criterion and the partitioning which obtains the best result according to this criterion is finally retained.
  • a current block b of type CU of a following image, for example Ii with i integer greater than or equal to 2.
  • a prediction mode of the Inter type according to which a block of Prediction Pr is obtained by motion compensation with respect to a previously coded and then decoded IR reference image.
  • the current block b will be encoded according to a particular INTER prediction mode, specific to the invention.
  • this mode may be in competition with other INTER or INTRA prediction modes known to those skilled in the art and specified by a coding standard such as HEVC or a future standard.
  • a base motion vector MVb is determined which points to an area of the reference image, of the size of the current block b, also called prediction block Pr.
  • this zone does not necessarily correspond to a block previously coded in the reference image IR, but that it may be straddling several blocks of this image.
  • the prediction block Pr can be seen as a composition of adjacent pieces of the blocks of the reference image which it covers.
  • the initial motion estimation phase only takes into account the pixel-to-pixel distortion, and in no case the concepts of coding cost, as is customary, for example in a diagram. encoding type HEVC.
  • the objective of this motion estimation is to find the best prediction zone in the pixel-to-pixel distortion direction, in order to apply the partitioning of this zone to the current block.
  • the coding cost is taken into account later in the competition between the different prediction modes, in particular that of the invention and those specified by a standard of the HEVC type, for example.
  • partitioning of the prediction block Pr in the IR image is obtained.
  • the partitions of the blocks of the reference image IR have been stored for this purpose in a memory and the partitioning of the prediction block Pr is reconstructed from the partitioning information stored for the blocks of the IR image at least partially covered by the prediction block Pr.
  • the partitioning l P thus obtained does not necessarily satisfy the partitioning rules generally imposed by the specifications of a standard such as HEVC. In particular, it is not necessarily regular.
  • An example of irregular partitioning obtained by the invention is illustrated in Figure 10a.
  • the IP partitioning obtained is then applied to the current block b.
  • a step c) the sub-blocks resulting from the IP partitioning applied to the current block b are traversed in a predetermined order and processed as described above in relation to FIG. 4.
  • a prediction Pr is obtained, a residue R is calculated from this prediction Pr, then the residue is transformed, quantized and finally encoded (RC).
  • the initial motion vector MVb is transmitted in the bit stream.
  • the partitioning applied to the current block does not have to be reported since it can be deduced from that of the prediction block of the reference image.
  • the coded data obtained are put in competition with those resulting from a conventional coding scheme, for example according to the HEVC standard.
  • a rate-distortion criterion is taken into account to compare the different coding modes.
  • the coded data from the partitioning that won the competition is inserted into the TB bit stream or into an FC file.
  • step c) of coding of the sub-blocks of the current block b according to the IP partitioning according to a second embodiment of the invention is now detailed.
  • the sub-blocks SB of the current block b are traversed in cl, according to a predetermined order of travel.
  • the sub-block is subjected in C3 to a modification of partitioning.
  • This modification can be either a subdivision of the sub-block into sub-blocks of smaller sizes or a merger of the sub-block with a neighboring sub-block already processed.
  • the new sub-block (s) obtained is then coded in c4.
  • the modifications of the initial partitioning IPi applied to the current block b must be indicated in the bit stream TB since they can not be deduced from those of the prediction block of the reference image. .
  • they are indicated by difference compared to the initial partitioning. It is understood that a possible signaling could be to indicate first the type of modification applied, division or merger, then the differences with the initial partitioning.
  • c5 the coded data obtained in the first and second cases are put into competition and evaluated according to a distortion flow criterion. Partitioning is retained which achieves the best performance according to this criterion.
  • the division of the current sub-block SB made into c'31 implements the principle of the invention, that is to say that it implements steps a), b) of the coding method according to the invention.
  • a) an estimation of movement is carried out with respect to the reference image IR, a base motion vector MVb 'is obtained, in b) the partitioning of the prediction block pointed by the motion vector MVb' is obtained then applied to the SB current sub-block.
  • signaling the division of a sub-block are possible: given a predetermined order of travel of the sub-blocks of the partitioning, one can cite as an example: signal for each sub-block of a partition a 0 or a 1 to indicate whether the current sub-block is cut for example in a "quadtree" mode and for each sub-block obtained, if it is redécoupé;
  • the sub-block is redrawn, indicate the way in which the new partitioning is obtained, in accordance with the chosen cutting method. For example, if partitioning is split using a quadtree method as is the case under HEVC, the associated signaling follows the HEVC recommendation and in particular section 7.3.8.4 titled "Coding quadtree syntax".
  • the sub-blocks of the current block are coded according to a predetermined order of travel.
  • Step c32 merges the sub-block SB with a neighbor already coded SBV according to the order of travel.
  • Figure 10b shows the enlarged sub-block SBf obtained.
  • This enlarged sub-block SBf is coded in c42.
  • the prediction of the merged sub-block SBf can be implemented according to a prediction mode of the Inter, Merge or Intra type, as previously described.
  • a motion vector MVf is assigned to the enlarged sub-block, either by implementing a new motion estimation step that provides a new motion vector that will have to be transmitted to the decoder, or by reusing a motion vectors of one of the two merged sub-blocks.
  • the reused movement vector can be signaled with an index in the bit stream.
  • Twist of course or report only the number of the current sub-block, followed by the distance (in the order of travel) to the neighboring sub-block with which it merges (eg 0 for the first neighbor according to the order of travel).
  • the RD cost of the fusion is calculated in c52.
  • this calculation takes into account the cost of coding the residue of the enlarged sub-block, the cost of encoding its movement vector MVf and the cost of signaling the merger of the two neighboring sub-blocks.
  • the calculated overall cost is compared in c52 to the sum of the costs of the two sub-blocks SB and SBV encoded separately and a decision to adopt the merger is taken in c62, if this overall cost is less than the sum of the coding costs of the separate sub-blocks. Otherwise, the merger is not retained.
  • the encoder can test the merge of the current sub-block with another already coded neighbor sub-block.
  • the bit stream TB produced by the coding method according to the invention is therefore particular in that it comprises, for the coding of a current block, relative signaling information:
  • the encoding mode according to the invention namely the fact of applying the partitioning of the prediction block to the current block;
  • a binary string may indicate that there has been a change in initial partitioning (1), or not (0).
  • a binary sequence can indicate whether it is a division (0) or a merger (1).
  • a binary sequence then describes the division and the merger.
  • the division is indicated by a binary sequence in agreement with the selected cutting method. For example, if the partition is cut using a "quadtree" method like HEVC, the associated "quadtree” signaling follows the HEVC recommendation and in particular section 7.3.8.4 "Coding quadtree syntax".
  • a merge is signaled by a binary sequence that describes whether the current block merges (1) or not (0) with its neighbor, according to a predefined order.
  • the set of these binary sequences can be encoded using a Huffman type entropy coder, or arithmetic type with use of specific contexts in order to reduce the associated signaling cost;
  • FIGS. 11a-11c an exemplary embodiment of the invention is presented according to which the initial partitioning of a current block b, is modified several times, some sub-blocks being merged, others being divided.
  • FIG. 11a illustrates the fact that the partitioning corresponding to the prediction block is not necessarily regular, because it corresponds to pieces of partitioning of several blocks of the reference image.
  • Figures 11b, 11c and 11d illustrate successive fusions.
  • Figure 11c illustrates an example of sub-block splitting. Note that in this example, the number of motion vectors to be transmitted is 21 for a total number of 28 according to the HEVC standard. Of course, if too many mergers are implemented, the result is an increased signaling cost. It is therefore the coder who knows the coding cost of the modifications made to the initial partitioning and achieves the best compromise distortion rate.
  • the bit stream TB produced by the coding method according to the invention is transmitted to a decoder.
  • This decoder implements a decoding method according to the invention which will now be described in relation with FIG. 12.
  • the decoder reads and analyzes in a known manner the coded DC data received in the bit stream.
  • the coded data relating to a current block of a digital image Im are considered.
  • the decoder retrieves at Tl signaling information relating to the partitioning mode MPA implemented to encode the current block b '. he this is for example a conventional partitioning, type "Quadtree" or the partitioning mode according to the invention.
  • the decoder obtains in T2 the basic motion vector MVb 'to be used to determine the prediction block Pr' of the current block in the image reference IR '. According to the embodiment implemented, it can obtain either signaling information that indicates that the motion vector MVb 'is derived from that of a neighboring block already encoded or data representative of the motion vector itself. Once the motion vector MVb 'has been obtained, the decoder implements a step
  • T3 obtaining an initial IPi partitioning of the current block.
  • This partitioning is that of the prediction block Pr ', that is to say of the zone Zb' pointed by the motion vector MVb 'in the IR reference image already decoded.
  • the decoder thus calculates the coordinates of this zone in the reference image and searches in memory for the partitioning of the different blocks of the reference image which contribute to this zone.
  • this partitioning to the current block. This is his initial partitioning. It then begins in T5 to browse the sub-blocks defined by this initial partitioning according to a predetermined order of travel that it shares with the encoder. For example, this order of course is determined beforehand. For a current sub-block SB ', it extracts from the bit stream any signaling information relating to a modification of the initial partitioning of the block at this sub-block SB'. If it does not extract any information, the sub-block has not been modified. In this case, it decodes it from the coded data received in the bit stream. Alternatively, it extracts at T5 signaling information relating to a modification of the partitioning at the current sub-block.
  • this information first comprises information representative of a type of modification applied to the initial partitioning, cutting or merging, followed by information representative of a difference between the modified partitioning and the initial partitioning.
  • it is a division of the current sub-block.
  • this division can be based on a classical partitioning of the "Quadtree" type or on the partitioning mode according to the invention.
  • the decoder extracts from the bit stream the signaling information relating to this partitioning and the prediction mode used for each of the sub-blocks obtained. It classically decodes the sub-blocks obtained.
  • the decoder repeats the steps already described, extraction of the bit stream signaling information relating to the motion vector (reused or encoded) and obtaining the motion vector, for obtaining the partitioning of the prediction sub-block of the reference image, for applying this partitioning to the current sub-block, and then for decoding the sub-blocks of the sub-block current recut.
  • the modification made to the initial partitioning is a merger of the current sub-block with a neighboring sub-block already decoded.
  • the decoder extracts from the bit stream signaling information for identifying the neighboring sub-block and updates the partitioning of the block b 'by replacing the merged sub-blocks with the enlarged sub-block. Note that there may be more than two neighboring merged sub-blocks in a single enlarged sub-block. It then reads in the bit stream the prediction mode implemented for the enlarged sub-block. In the case of an Inter prediction mode, it obtains the basic motion vector to be applied to the enlarged sub-block to compensate it in motion relative to the reference image.
  • the decoding method reconstructs the quantized residue RQ' of the block b 'at T6 and dequantizes it. This last operation is carried out by means adapted to the quantization used during the coding, for example a scalar or vector dequantization ...) - Then it applies an inverse transformation of the dequantized current block and reconstructs the decoded block b 'by adding the residual to the prediction Pr 'of the current block b'.
  • the reconstructed block b ' is integrated into the image being decoded.
  • the terms "module” and "unit”, used in this document can correspond either to a software component, or to a hardware component, or to a set of hardware and / or software components, able to implement perform the function (s) described for the module or unit concerned.
  • FIG. 13 an example of a simplified structure of a device 100 for encoding a digital image according to the invention is now presented.
  • the device 100 implements the coding method according to the invention which has just been described in relation to FIGS. 4 to 9.
  • the device 100 comprises a processing unit 110, equipped with a processor ⁇ ⁇ , and driven by a computer program Pg l 120, stored in a memory 130 and implementing the coding method according to the invention.
  • the code instructions of the computer program Pgi 120 are for example loaded into a RAM memory before being executed by the processor of the processing unit 110.
  • the processor of the processing unit 110 sets implement the steps of the method described above, according to the instructions of the computer program 120.
  • the device 100 comprises at least one GET MVb unit for obtaining a basic motion vector for the current block with respect to a reference image, a GET PART unit for obtaining a partitioning of the PU prediction block pointed by the estimated base motion vector, a MAP PART unit for applying the partitioning obtained to the current block and a coding unit COD subblocks of the current block defined by the partitioning applied.
  • the device 100 furthermore comprises an IP MOD unit for modifying the partitioning obtained for the block (b ') and a MOD validation unit VALID for the modification.
  • Such a device 100 can be integrated with a user terminal TU.
  • the device 100 is then arranged to cooperate with at least one data transmission / reception module E / R of the user terminal, via which the bit stream TB or the compressed file FC is transmitted in a telecommunications network. for example a wired network or a wireless network.
  • FIG. 13 an example of a simplified structure of a device 200 for decoding a digital image according to the invention is now presented.
  • the device 200 implements the decoding method according to the invention which has just been described in relation to FIG. 11.
  • the device 200 comprises a processing unit 210, equipped with a processor ⁇ 2, and driven by a computer program Pg2 220, stored in a memory 230 and implementing the decoding method according to the invention.
  • the code instructions of the computer program Pg2 220 are for example loaded into a RAM before being executed by the processor of the processing unit 210.
  • the processor of the processing unit 210 sets implement the steps of the method described above, according to the instructions of the computer program 220.
  • the device 200 comprises at least one GET unit MVb 'for obtaining a base motion vector MVb' between the current block and a previously decoded reference image, a GET PART unit d. obtaining a partitioning of the area pointed in the reference image (b '), a MAP PART unit applying the partitioning obtained to the current block (b) and a unit DEC of traversing the sub-blocks of the current block (b) according to a predetermined order of travel and decoding of the coded data read in the bitstream for the traversed sub-blocks.
  • the device 200 further comprises an IP MOD unit for modifying the partitioning obtained for the block (b ') from coded data read in the bitstream TB.
  • Such a device 200 can be integrated with a user terminal TU '.
  • the device 200 is then arranged to cooperate at least with the following module of the terminal TU:
  • a data transmission / reception module E / R through which the bit stream TB or the compressed file FC is received from a telecommunications network;
  • An image rendering device DISP for example a terminal screen, through which the decoded digital image or the sequence of decoded images is returned to a user.
  • a user terminal TU, TU ' can integrate both a coding device and a decoding device according to the invention.

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'une image numérique, ladite image étant divisée en une pluralité de blocs de pixels traités dans un ordre défini. Le procédé selon l'invention est particulier en ce qu'il comprend les étapes suivantes, mises en œuvre pour un bloc courant (b): a) Obtention d'un vecteur mouvement, dit vecteur mouvement de base (MVb) du bloc courant (b) par rapport à une image de référence précédemment décodée; b) Obtention d'un partitionnement (IP) en sous-blocs de la zone (Zb) pointée dans l'image de référence par le vecteur mouvement de base (MVb) et application du partitionnement obtenu au bloc courant (b); c) Parcours des sous-blocs du bloc courant (b) selon un ordre de parcours prédéterminé et codage des sous-blocs parcourus, ledit codage comprenant une étape de modification du partitionnement du bloc courant en sous- blocs selon des règles prédéterminées, une étape de codage des sous-blocs du partitionnement modifié comprenant le codage d'informations de signalisation de la modification du partitionnement et une étape de validation du partitionnement modifié par application d'un critère débit- distorsion aux sous-blocs codés du partitionnement modifié.

Description

Procédé de codage d'une image numérique, procédé de décodage, dispositifs, et programmes d'ordinateurs associés
1. Domaine de l'invention
Le domaine de l'invention est celui de la compression de signal, en particulier d'une image numérique ou d'une séquence d'images numériques, divisée en bloc de pixels.
Le codage/décodage d'images numériques s'applique notamment à des images issues d'au moins une séquence vidéo comprenant :
- des images issues d'une même caméra et se succédant temporellement (codage/décodage de type 2D),
- des images issues de différentes caméras orientées selon des vues différentes (codage/décodage de type 3D),
- des composantes de texture et de profondeur correspondantes (codage/décodage de type 3D),
- etc.
La présente invention s'applique de manière similaire au codage/décodage d'images de type 2D ou 3D.
L'invention peut notamment, mais non exclusivement, s'appliquer au codage vidéo mis en œuvre dans les codeurs vidéo actuels AVC et HEVC et leurs extensions (MVC, 3D- AVC, MV-HEVC, 3D-HEVC, etc), et au décodage correspondant.
L'invention peut s'appliquer aussi au codage audio, par exemple mis en œuvre dans les codeurs audio actuels (EVS, OPUS, MPEG-H, etc) et leurs extensions et au décodage correspondant.
2. Présentation de l'art antérieur
On considère un schéma de compression classique d'une image numérique, selon lequel l'image est divisée en blocs de pixels. Un bloc courant à coder, qui constitue une unité de codage initiale, est généralement découpé en un nombre variable de sous-blocs selon un mode de découpage prédéterminé. Les codeurs standards proposent un partitionnement régulier, qui s'appuie sur des blocs carrés ou rectangulaires de taille fixe. Le partitionnement se fait toujours à partir de l'unité de codage initiale, non partitionnée, et le partitionnement final est calculé puis signalé à partir de cette base neutre. En relation avec la Figure la, on présente un exemple de partitionnement de bloc de taille 16x16, 8x8 ou 4x4 autorisé par la norme. En relation avec la Figure lb, on illustre un exemple de partitionnement permis par la norme HEVC. Cette norme est spécifiée dans le document "ISO/IEC 23008-2: 2013 - High efficiency coding and média delivery in heterogeneous environments — Part 2 : High efficiency video coding », International Organization for Standardization, publié en novembre 2013. On voit qu'il s'agit d'un partitionnement en QuadTree, qui reste régulier, mais qui est plus flexible que celui de la norme AVC, à partir de blocs de taille 64x64. Le partitionnement selon la norme HEVC a pour avantage d'adapter le codage à la structure de l'image, notamment à la présence de zones de texture homogènes et inhomogènes. A titre d'exemple, la figure 2a propose un bloc 64x64 présentant une zone homogène et 2 zones de détails. La figure 2b montre le partitionnement possible de HEVC pour coder le bloc de la figure 3. Un inconvénient de ce partitionnement est de ne pas être encore assez flexible pour permettre de coller aux variations de texture de l'image, alors qu'il engendre déjà une signalisation non négligeable en termes de coût de codage. Par exemple, pour coder le partitionnement final de la Figure 4, on remarque qu'il faudrait transmettre 28 vecteurs de mouvement, et que la signalisation du partitionnement final pourrait être : 1 0 1 100001000000 1 00010000 1 001000010000.
On connaît de la demande de brevet publiée sous le numéro WO2011/127966, un procédé de codage d'une image numérique en 3D, par plans, selon lequel le partitionnement mis en œuvre pour le codage d'un plan de cette image, par exemple le plan de texture, est hérité lors du codage du plan de profondeur associé. Il en résulte une économie substantielle en termes de signalisation.
3. Inconvénients de l'art antérieur
Un inconvénient de cet art antérieur est que le partitionnement proposé par l'art antérieur reste trop contraint et ne permet toujours pas de s'adapter finement aux formes et aux textures des objets contenus dans l'image à coder. 4. Objectifs de l'invention
L'invention vient améliorer la situation.
L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur.
Plus précisément, un objectif de l'invention est de proposer une solution qui permette de prédire et coder plus efficacement des structures d'images complexes.
Un autre objectif de l'invention est de proposer une solution qui soit plus performante en compression.
5. Exposé de l'invention
Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé de codage d'une image numérique, ladite image (Im) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, caractérisé en ce que ledit procédé comprend les étapes suivantes, mises en œuvre pour un bloc courant (b) : a) Obtention d'un vecteur mouvement, dit vecteur mouvement de base du bloc courant par rapport à une image de référence précédemment décodée;
b) Obtention d'un partitionnement en sous-blocs de la zone pointée dans l'image de référence par le vecteur mouvement de base et application du partitionnement obtenu au bloc courant (b);
c) Parcours des sous-blocs du bloc courant selon un ordre de parcours prédéterminé et codage des sous-blocs parcourus, ledit codage comprenant une étape de modification du partitionnement du bloc courant en sous-blocs selon des règles prédéterminées, une étape de codage des sous-blocs du partitionnement modifié comprenant le codage d'informations de signalisation de la modification du partitionnement et une étape de validation du partitionnement modifié par application d'un critère débit-distorsion aux sous-blocs codés du partitionnement modifié. Ainsi, l'invention repose sur une approche tout à fait nouvelle et inventive du codage d'images, qui consiste à appliquer au bloc courant le partitionnement de la zone de même taille de l'image de référence pointée par le vecteur mouvement de base obtenu pour le bloc courant.
Contrairement à l'art antérieur qui, dans un cas calcule et signale un nouveau partitionnement complet par bloc courant, et dans l'autre cas fait hériter le bloc courant d'un plan de l'image à coder du partitionnement utilisé pour le bloc co-localisé d'un autre plan de l'image à coder, par exemple le plan de profondeur, l'invention tire parti des similitudes de texture qui existent entre le bloc courant de l'image courante et la zone pointée dans l'image de référence, pour optimiser le partitionnement du bloc courant.
Il en résulte que la structure de partitionnement initiale du bloc courant n'a pas besoin d'être transmise au décodeur sous forme d'informations de signalisation dans le flux de données, puisqu'elle peut être obtenue à partir de l'image de référence précédemment traitée.
Il en résulte également que la structure de partitionnement est irrégulière : contrairement aux codeurs standards qui appliquent un partitionnement régulier, par exemple de type « quadtree », le partitionnement proposé par l'invention n'est pas régulier et, bien que complexe, il reste simple à signaler, car il est en partie hérité de l'image de référence.
L'invention permet donc de mieux adapter le partitionnement d'un bloc au contenu à coder, tout en optimisant le coût de codage.
L'invention propose ainsi un nouveau mode de codage d'un bloc courant, qui peut avantageusement être mis en compétition avec d'autres modes de codage connus des schémas de codage actuellement normalisés, tels que par exemple les modes Intra, Inter, ou Merge de la norme HEVC.
Le partitionnement obtenu de l'image de référence constitue un partitionnement initial du bloc courant, que l'invention propose de modifier pour s'adapter plus finement à la texture spécifique du bloc courant. Cette modification peut consister en une fusion de partitions voisines ou en un découpage d'une partition.
Avantageusement, cette modification est validée par comparaison avec le partitionnement initial. Une fois validée, la modification est signalée dans le train binaire par exemple par différence avec le partitionnement initial. Le fait de signaler les modifications de partitionnement permet un faible surcoût de codage associé.
Selon une caractéristique avantageuse de l'invention, l'étape d'obtention du vecteur mouvement de base comprend une estimation de mouvement du bloc courant par rapport à l'image de référence précédemment décodée selon un critère de minimisation d'erreur.
De façon avantageuse, l'invention met en œuvre une estimation de mouvement particulière du bloc courant par rapport à une image de référence. Elle fournit le vecteur mouvement de base qui sert à obtenir le partitionnement initial du bloc courant à partir de l'image de référence. Elle privilégie un critère de minimisation d'erreur, plutôt qu'un critère de coût de codage du bloc, de façon à garantir que le contenu de la zone pointée par le vecteur mouvement de base estimé soit la plus semblable possible à celui du bloc courant.
Selon une caractéristique avantageuse de l'invention, la modification comprend une fusion d'un sous bloc du partitionnement courant codé avec au moins un sous bloc voisin déjà codé.
Une modification proposée par l'invention est de fusionner deux ou plusieurs sous-blocs voisins du bloc courant pour les coder comme une seule partition. La modification du partitionnement est signalée dans le train binaire. Du fait de l'héritage du partitionnement initial, la signalisation ne constitue pas un surcoût important, surtout qu'un vecteur mouvement de base peut être économisé du fait de cette fusion. L'invention permet de faire un compromis entre le coût additionnel lié à la modification du partitionnement, et la réduction du coût associé à la signalisation du vecteur de mouvement
En effet, on peut soit faire une estimation de mouvement spécifique au sous-bloc issu de la fusion, de façon à garantir un codage plus efficace du sous-bloc fusionné, soit réutiliser le vecteur mouvement de base mis en œuvre pour au moins un des sous-blocs fusionnés, de façon à minimiser la signalisation additionnelle. Par exemple, on peut prendre la moyenne des vecteurs mouvements des blocs fusionnés, ou bien le minimum des deux, ou encore celui qui correspond au sous bloc initial le plus grand, etc.
Selon un autre aspect de l'invention, la modification du partitionnement courant comprend en outre un découpage d'au moins un sous-bloc en au moins deux sous-blocs.
Il est aussi possible de découper davantage un sous-bloc du partitionnement initial. Les partitionnements obtenus sont codés individuellement. La modification du partitionnement est signalée dans le train binaire, ainsi que d'éventuels vecteurs mouvements de base. Avantageusement, l'étape de découpage dudit au moins un sous-bloc en au moins deux sous-blocs, dits sous-blocs découpés, comprend la mise en œuvre des étapes a) et b) d'obtention d'un vecteur mouvement de base et d'application du partitionnement de la zone pointée par le vecteur mouvement de base pour le au moins un sous-bloc courant. Le principe de définir un partitionnement initial du bloc courant à partir de celui du bloc pointé par le vecteur mouvement estimé dans l'image de référence, est ici appliqué récursivement pour les sous-blocs découpés. L'avantage est d'adapter le plus finement possible le partitionnement donc la prédiction et le codage à la structure de l'image.
Le procédé qui vient d'être décrit dans ses différents modes de réalisation est avantageusement mis en œuvre par un dispositif de codage d'une image numérique selon l'invention.
Un tel dispositif de codage d'une image numérique est particulier en ce qu'il est apte à mettre en œuvre les unités suivantes, mises en œuvre pour un bloc courant :
Obtention d'un vecteur mouvement, dit vecteur mouvement de base du bloc courant par rapport à une image de référence précédemment décodée;
Obtention d'un partitionnement en sous-blocs de la zone pointée dans l'image de référence par le vecteur mouvement de base et application du partitionnement obtenu au bloc courant;
Parcours des sous-blocs du bloc courant selon un ordre de parcours prédéterminé et codage des sous-blocs parcourus, ledit codage comprenant une modification du partitionnement du bloc courant en sous-blocs selon des règles prédéterminées, un codage des sous-blocs du partitionnement modifié comprenant le codage d'informations de signalisation de la modification du partitionnement et une validation du partitionnement modifié par application d'un critère débit-distorsion aux sous-blocs codés du partitionnement modifié.
Corrélativement, l'invention concerne aussi un procédé de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant : a') Obtention d'un vecteur mouvement de base entre le bloc courant et une image de référence précédemment décodée, ledit vecteur mouvement pointant sur une zone de l'image de référence, de même taille que celle du bloc courant; b') Obtention d'un partitionnement en sous-blocs de la zone pointée dans l'image de référence par le vecteur mouvement de base et application du partitionnement obtenu au bloc courant; c') Parcours des sous-blocs du bloc courant selon un ordre de parcours prédéterminé et décodage des données codées lues dans le train binaire pour les sous-blocs parcourus, ledit décodage comprenant une modification du partitionnement initial, obtenu pour le bloc courant en fonction de données codées représentatives d'une signalisation de la modification du partitionnement et le décodage du partitionnement modifié.
Ainsi, le procédé de décodeur reproduit le principe d'application au bloc courant du partitionnement d'une zone de même taille pointée par le vecteur mouvement du bloc courant dans une image de référence, proposé par l'invention.
Avantageusement, la mise en œuvre de ce mode de codage propre à l'invention pour le bloc courant lui est signalée dans le train binaire, lequel comprend en outre un champ représentatif du vecteur mouvement de base à utiliser. Ce vecteur mouvement de base peut avoir été estimé spécifiquement pour coder le bloc courant selon l'invention et dans ce cas, le champ en question code ses composantes. Selon une variante, il correspond à un vecteur mouvement estimé pour un bloc voisin et le champ comprend un index représentatif du bloc voisin. Le partitionnement initial est avantageusement modifié en fonction des données de signalisation lues dans le train binaire.
Selon une caractéristique avantageuse de l'invention, lorsque les données codées signalent une fusion, l'étape de modification du partitionnement initial remplace les au moins deux sous-blocs voisins du partitionnement initial par un sous-bloc dans le partitionnement modifié et l'étape de décodage comprend le décodage du sous-bloc.
Lorsque la modification est une fusion d'au moins deux sous-blocs voisins, la signalisation de cette fusion dans le train binaire permet au décodeur de mettre à jour le partitionnement initial.
Selon une caractéristique avantageuse de l'invention, lorsque les données codées signalent un découpage d'un sous-bloc du partitionnement courant en au moins deux sous-blocs, l'étape de modification du partitionnement applique le découpage signalé au sous-bloc courant et l'étape de décodage décode les sous-blocs obtenus selon un ordre de parcours prédéterminé.
Lorsque la modification est un découpage, la signalisation du découpage dans le train binaire permet au décodeur de mettre à jour le partitionnement initial.
Selon un aspect de l'invention, le découpage signalisé est un découpage régulier, par exemple de type « quadtree »
Selon une variante avantageuse, les données de signalisation indiquent au décodeur que le mode de codage choisi pour le sous-bloc courant est le mode de codage selon l'invention, c'est-à-dire par application du partitionnement d'une zone de l'image de référence pointée par un vecteur mouvement de base. Le décodeur met alors de nouveau en œuvre les étapes a'), b') et c') pour le sous-bloc courant, ce qui conduit à un découpage irrégulier de ce sous-bloc. Le procédé de décodage qui vient d'être décrit est avantageusement mis en œuvre par un dispositif de décodage d'une image numérique selon Un tel dispositif de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, est particulier en ce qu'il comprend les unités suivantes, aptes à être mises en œuvre pour un bloc, dit bloc courant :
- Obtention d'un vecteur mouvement de base entre le bloc courant et une image de référence précédemment décodée, ledit vecteur mouvement pointant sur une zone de l'image de référence de même taille que celle du bloc courant;
- Application au bloc courant du partitionnement en sous-blocs de la zone pointée dans l'image de référence par le vecteur mouvement de base ;
- Parcours des sous-blocs du bloc courant selon un ordre de parcours prédéterminé et décodage des données codées lues dans le train binaire pour les sous-blocs parcourus, ledit décodage comprenant une modification du partitionnement initial, obtenu pour le bloc courant en fonction de données codées représentatives d'une signalisation de la modification du partitionnement et le décodage du partitionnement modifié.
Corrélativement, l'invention concerne un signal portant un train binaire comprenant des données codées représentatives d'une image numérique, ladite image numérique étant divisée en blocs de pixels traités dans un ordre défini. Le signal selon l'invention est particulier en ce que, pour un bloc courant lesdites données codées comprennent un champ représentatif d'un vecteur mouvement de base du bloc courant par rapport à une image de référence, un champ représentatif d'un mode de codage par application du partitionnement de la zone de même taille que le bloc courant, pointée par le vecteur mouvement de base dans l'image de référence, dit partitionnement initial, et des données codées représentatives d'une signalisation de la modification du partitionnement initial.
Corrélativement, l'invention concerne un terminal d'utilisateur. Un tel terminal est particulier en ce qu'il comprend un dispositif de codage d'une image numérique et un dispositif de décodage d'une image numérique selon l'invention. L'invention concerne encore un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de codage d'une image numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur. L'invention concerne aussi un programme d'ordinateur comportant des instructions pour la mise en œuvre des étapes d'un procédé de décodage d'une image numérique tel que décrit précédemment, lorsque ce programme est exécuté par un processeur.
Ces programmes peuvent utiliser n'importe quel langage de programmation. Ils peuvent être téléchargés depuis un réseau de communication et/ou enregistrés sur un support lisible par ordinateur.
L'invention se rapporte enfin à des supports d'enregistrement, lisibles par un processeur, intégrés ou non au dispositif de codage d'une image numérique et au dispositif de décodage d'une image numérique selon l'invention, éventuellement amovible, mémorisant respectivement un programme d'ordinateur mettant en œuvre un procédé de codage et un programme d'ordinateur mettant en œuvre un procédé de décodage, tels que décrits précédemment.
6. Liste des figures
D'autres avantages et caractéristiques de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation particulier de l'invention, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : les figures la et lb, déjà décrites, illustrent des exemples de partitionnement de bloc respectivement autorisés et interdits par la norme AVC ; - les figures 2a et 2b, déjà décrites, illustrent des exemples de partitionnement de bloc respectivement autorisés et interdits par la norme HEVC ; les figures 3a, 3b, 3c et 3d, déjà décrites, illustrent respectivement un exemple de texture de bloc présentant une zone homogène et des zones de détails et des étapes de partitionnement du bloc selon la norme HEVC ; la figure 4 présente de façon schématique les étapes d'un procédé de codage d'une image numérique selon l'art antérieur ; la figure 5 présente de façon schématique les étapes d'un procédé de codage d'une image numérique selon un premier mode de réalisation de l'invention ; la figure 6 présente de façon schématique les étapes d'un procédé de décodage d'une image numérique selon un deuxième mode de réalisation de l'invention ; et la figure 7 détaille un premier exemple de modification du partitionnement du bloc courant par découpage d'un sous-bloc du partitionnement du bloc courant; la figure 8 détaille un deuxième exemple de codage d'un bloc courant mettant en œuvre une modification du partitionnement du bloc par découpage d'un sous-bloc du partitionnement du bloc courant; la figure 9 détaille un troisième exemple de codage d'un bloc courant mettant en œuvre une modification du partitionnement du bloc par fusion d'un sous-bloc avec un sous-bloc voisin du partitionnement ; les figures 10a et 10b présentent un exemple de fusion de deux sous-blocs d'un partitionnement initial selon un mode de réalisation de l'invention ; les figures lia à lie présentent un exemple de codage d'un bloc courant selon un mode de réalisation de l'invention, lorsque plusieurs opérations successives de fusion et de découpage du partitionnement sont mises en œuvre ; la figure 12 présente de façon schématique les étapes d'un procédé de décodage d'une image numérique à partir de données codées selon un mode de réalisation de l'invention ; la figure 13 présente de façon schématique un exemple de structure matérielle d'un dispositif de codage selon un mode de réalisation de l'invention ; et la figure 14 présente de façon schématique un exemple de structure matérielle d'un dispositif de décodage selon un mode de réalisation de l'invention.
Description d'un mode de réalisation particulier de l'invention Le principe général de l'invention repose sur l'application au bloc courant du partitionnement de la zone pointée par le vecteur mouvement de base issu de l'estimation de mouvement entre l'image courante et une image de référence.
On considère une vidéo originale constituée d'une suite de M images II, 12, ...IM, avec M entier non nul. Les images sont encodées par un encodeur, les données codées sont insérées un train binaire TB transmis à un décodeur via un réseau de communication, ou un fichier compressé FC, destiné à être stocké sur un disque dur par exemple. Le décodeur extrait les données codées, puis reçues et décodées par un décodeur dans un ordre prédéfini connu de l'encodeur et du décodeur, par exemple dans l'ordre temporel II, puis 12, puis IM, cet ordre pouvant différer suivant le mode de réalisation.
Par ailleurs, on notera ID l'image courante décodée. On notera que, dans un codeur vidéo, l'image ID est (re)construite dans l'encodeur de façon à pouvoir servir pour prédire les autres pixels de la vidéo.
Lors de l'encodage d'une image Im, avec m entier compris entre 1 et M, celle-ci est subdivisée en blocs de taille maximale prédéterminée, par exemple 64x64, appelés CTU (pour « Coding Tree Unit », en anglais) selon la norme HEVC, qui peuvent à leur tour être subdivisés en blocs plus petits, le bloc codé étant appelé CU (pour « Coding Unit », en anglais). Chaque CU va subir une opération d'encodage ou de décodage consistant en une suite d'opérations, comprenant de manière non exhaustive une prédiction, un calcul de résidu, une transformation, une quantification et un codage entropique. Cette suite d'opérations est présentée en relation avec la Figure 4.
On sélectionne comme bloc courant b le premier bloc CTU à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte NxN pixels.
On suppose qu'il existe L partitionnements en blocs CU possibles numérotées de 1 à L, et que le partitionnement utilisé sur le bloc C correspond au partitionnement numéro I. Par exemple, il peut y avoir 4 partitionnements possibles, en sous-blocs de taille 4x4, 8x8, 16x16, et 32x32 selon un mode de découpage régulier de type « quad tree ». Au cours d'une étape El, on détermine une prédiction Pr du bloc original b. Il s'agit d'un bloc de prédiction construit par des moyens connus, typiquement par compensation de mouvement (bloc issu d'une image de référence précédemment décodée), ou par prédiction MERGE (bloc reconstruit à partir d'un bloc issu d'une image de référence précédemment décodée pointé par un vecteur dérivé des blocs voisins du bloc courant), ou par prédiction intra (bloc construit à partir des pixels décodés immédiatement adjacents au bloc courant dans l'image ID). Les informations de prédiction liées à P sont codées dans le train binaire TB ou fichier compressé FC. On suppose ici qu'il y a K modes de prédiction possibles m l, ml,..., mK, avec K entier non nul. Par exemple, le mode de prédiction choisi pour le bloc courant b est le mode mk. Certains modes de prédiction sont associés à une prédiction de type Intra, d'autres à une prédiction de type INTER, d'autres à une prédiction de type MERGE.
Au cours d'une étape El, un résidu original R est formé, par soustraction R = b-Pr de la prédiction Pr du bloc courant b au bloc courant b.
Au cours d'une étape E3, le résidu R est transformé en un bloc résidu transformé, appelé RT, par une transformée de type DCT ou transformée en ondelettes, toutes les deux connues de l'homme de métier et notamment mises en œuvre dans les normes JPEG pour la DCT et JPEG2000 pour la transformée en ondelettes.
En E4, le résidu transformé RT est quantifié par des moyens classiques de quantification, par exemple scalaire ou vectorielle, en un bloc résidu quantifié RQ. Ce bloc quantifié RQ contient NxN coefficients. De façon connue dans l'état de l'art, ces coefficients sont scannés dans un ordre prédéterminés de façon à constituer un vecteur monodimensionnel RQ[i], où l'indice i varie de 0 à N2-l . L'indice i est appelé fréquence du coefficient RQ[i] . Classiquement, on scanne ces coefficients par ordre croissant de fréquence, par exemple selon un parcours en zigzag, qui est connu de la norme de codage d'image fixes JPEG. Lors d'une étape E5, on vient coder les informations d'amplitude des coefficients du bloc résidu RQ par codage entropique, par exemple selon une technique de codage de Huffman ou de codage arithmétique. Par amplitude, on entend ici la valeur absolue du coefficient. Classiquement, on peut coder pour chaque coefficient une information représentative du fait que le coefficient est non nul. Ensuite, pour chaque coefficient non nul, une ou plusieurs informations relatives à l'amplitude sont codées. On obtient les amplitudes codées CA. En général, les signes des coefficients sont simplement codés par un bit 0 ou 1. On répète les étapes précédentes El à E5 pour les I partitionnements possibles du bloc courant b. Pour un partitionnement I, chacun des sous-blocs CU du bloc courant b sont traités comme précédemment décrit, un type de prédiction (Inter ou Intra) étant autorisé par CU. Autrement dit, les sous-blocs d'un sous-bloc CU sont tous soumis au même type de prédiction.
Par exemple, les données codées pour chacun des I partitionnements possibles sont mises en compétition selon un critère débit-distorsion et le partitionnement qui obtient le meilleur résultat selon ce critère est finalement retenu.
Les autres blocs de l'image II sont traités de la même façon, de même pour les images suivantes de la séquence.
En relation avec la Figure 5, on présente maintenant les étapes du procédé de codage selon un premier mode de réalisation de l'invention.
En entrée, on considère en particulier un bloc courant b, de type CU d'une image suivante, par exemple Ii avec i entier supérieur ou égal à 2. On se place dans un mode de prédiction de type Inter, selon lequel un bloc de prédiction Pr est obtenu par compensation de mouvement par rapport à une image de référence IR précédemment codée puis décodée.
Le bloc courant b va être codé selon un mode de prédiction INTER particulier, propre à l'invention. Bien sûr, ce mode peut être mis en compétition avec d'autres modes de prédiction INTER ou INTRA connus de l'homme de métier et spécifiés par une norme de codage telle que HEVC ou une norme future.
On notera qu'au moins la première image de la séquence d'images à coder a été codée de manière classique.
Au cours d'une étape a) d'estimation du mouvement du bloc courant b par rapport à l'image de référence IR, on détermine un vecteur mouvement de base MVb qui pointe sur une zone de l'image de référence, de la taille du bloc courant b, aussi appelée bloc de prédiction Pr. On note que cette zone ne correspond pas nécessairement à un bloc précédemment codé dans l'image de référence IR, mais qu'elle peut se trouver à cheval sur plusieurs blocs de cette image. Autrement dit, le bloc de prédiction Pr peut être vu comme une composition de morceaux adjacents des blocs de l'image de référence qu'il recouvre.
On notera que selon l'invention, la phase d'estimation de mouvement initiale ne prend en compte que la distorsion pixel à pixel, et en aucun cas des notions de coût de codage, comme ce qui est fait habituellement, par exemple dans un schéma de codage de type HEVC. En effet, l'objectif de cette estimation de mouvement est de trouver la meilleure zone de prédiction au sens de la distorsion pixel à pixel, en vue d'appliquer le partitionnement de cette zone au bloc courant. Le coût de codage est pris en compte ultérieurement lors de la compétition entre les différents modes de prédiction, en particulier celui de l'invention et ceux spécifiés par une norme de type HEVC par exemple.
Au cours d'une étape b), on obtient le partitionnement du bloc de prédiction Pr dans l'image IR. Les partitionnements des blocs de l'image de référence IR ont été à cet effet stockés dans une mémoire et le partitionnement du bloc de prédiction Pr est reconstruit à partir des informations de partitionnement stockées pour les blocs de l'image IR au moins partiellement recouverts par le bloc de prédiction Pr. On comprend que le partitionnement lP ainsi obtenu ne satisfait pas forcément les règles de partitionnement généralement imposées par les spécifications d'une norme telle que HEVC. En particulier, il n'est pas nécessairement régulier. Un exemple de partitionnement irrégulier obtenu par l'invention est illustré par la Figure 10a.
On applique ensuite le partitionnement IP obtenu au bloc courant b.
Au cours d'une étape c), les sous-blocs issus du partitionnement IP appliqué au bloc courant b sont parcourus selon un ordre prédéterminé et traités comme décrit précédemment en relation avec la Figure 4. Pour un sous-bloc de b, une prédiction Pr est obtenue, un résidu R est calculé à partir de cette prédiction Pr, puis le résidu est transformé, quantifié et enfin codé (RC).
On notera que différents ordres de parcours des sous-blocs d'un partitionnement sont possibles, parmi lesquels : de gauche à droite, en zig-zag ; - Par ordre de taille croissante ou décroissante ; Deux ordres de parcours différents aboutissent à des partitionnements différents. Plusieurs ordres de parcours peuvent être en compétition. Dans ce cas, l'ordre de parcours choisi sera signalé dans le train binaire.
Selon un aspect de l'invention, le vecteur mouvement initial MVb est transmis dans le train binaire.
De façon alternative, il n'est pas transmis, mais il est dérivé de ses voisins :
O D'une manière reproductible au décodeur ; ou
O Par un index signalant un choix parmi des candidats en compétition. Dans ce premier mode de réalisation de l'invention, le partitionnement appliqué au bloc courant n'a pas à être signalé puisqu'il peut être déduit de celui du bloc de prédiction de l'image de référence.
Avantageusement, les données codées obtenues sont mises en compétition avec celles issues d'un schéma de codage classique, par exemple selon la norme HEVC. Un critère débit-distorsion est pris en compte pour comparer les différents modes de codage.
Les données codées issues du partitionnement qui a gagné la compétition sont insérées dans le train binaire TB ou dans un fichier FC.
En relation avec la Figure 6, on détaille maintenant l'étape c) de codage des sous- blocs du bloc courant b selon le partitionnement IP selon un deuxième mode de réalisation de l'invention.
Les sous-blocs SB du bloc courant b sont parcourus en cl, selon un ordre de parcours prédéterminés.
Deux cas sont possibles : - Dans le premier cas, déjà décrit en relation avec la figure 5, le sous-bloc SB est traité de façon classique en c2 ;
Dans le deuxième cas, le sous-bloc est soumis en c3 à une modification de partitionnement. Cette modification peut être soit un découpage du sous-bloc en sous-blocs de tailles inférieures ou une fusion du sous-bloc avec un sous- bloc voisin déjà traité. Le ou les nouveaux sous-blocs obtenus sont ensuite codés en c4.
Dans ce deuxième mode de réalisation de l'invention, les modifications du partitionnement initial IPi appliquées au bloc courant b doivent être signalées dans le train binaire TB puisqu'elles ne peuvent pas être déduites de celles du bloc de prédiction de l'image de référence. Avantageusement, elles sont signalées par différence par rapport au partitionnement initial. On comprend qu'une signalisation possible pourrait être d'indiquer d'abord le type de modification appliqué, découpage ou fusion, puis les différences avec le partitionnement initial.
En c5, les données codées obtenues dans le premier et le deuxième cas sont mises en compétition et évaluées selon un critère de débit distorsion. Est retenu le partitionnement qui réalise la meilleure performance selon ce critère.
En relation avec la Figure 7, on détaille maintenant les sous-étapes de modification par découpage et de codage du partitionnement du sous-bloc courant SB selon un premier exemple de réalisation de l'invention. Par exemple, le découpage est réalisé en c31 conformément aux spécifications de la norme HEVC, selon un mode « quadtree ». Un partitionnement IP(SB) est obtenu dont les sous-blocs sont codés en d41 comme précédemment décrit.
Selon un deuxième exemple de découpage d'un sous-bloc présenté en relation avec la Figure 8, le découpage du sous-bloc courant SB réalisé en c'31 met en œuvre le principe de l'invention, c'est-à-dire qu'il met en œuvre les étapes a), b) du procédé de codage selon l'invention. En a) une estimation de mouvement est réalisée par rapport à l'image de référence IR, un vecteur mouvement de base MVb' est obtenu, en b) le partitionnement du bloc de prédiction pointé par le vecteur mouvement MVb' est obtenu puis appliqué au sous-bloc courant SB.
On comprend qu'il s'agit d'une mise en œuvre récursive de l'invention.
Différentes manières de signaler le découpage d'un sous-bloc sont possibles : étant donné un ordre de parcours prédéterminé des sous-blocs du partitionnement, on peut citer à titre d'exemple : signaler pour chaque sous-bloc d'une partition un 0 ou un 1 pour indiquer si le sous-bloc courant est découpé par exemple selon un mode « quadtree » et pour chacun de sous-blocs obtenus, s'il est redécoupé ;
si le sous-bloc est redécoupé, signaler la manière dont le nouveau partitionnement est obtenu, en concordance avec la méthode de découpage retenue. Par exemple, si le partitionnement est découpé en utilisant une méthode de type « quadtree » comme c'est la cas selon la norme HEVC, la signalisation associée suit la recommandation HEVC et en particulier la section 7.3.8.4 intitulée « Coding quadtree syntax ».
En relation avec la Figure 9, on détaille maintenant les sous-étapes de modification et de codage du partitionnement du bloc courant b, lorsqu'une fusion du sous-bloc courant avec un sous-bloc voisin déjà codé est mise en œuvre.
Les sous-blocs du bloc courant sont codés selon un ordre de parcours prédéterminé.
En relation avec la figure 10a, on considère un sous-bloc SB qui vient d'être codé. L'étape c32 réalise une fusion du sous-bloc SB avec un voisin déjà codé SBV selon Tordre de parcours. La figure 10b présente le sous-bloc agrandi SBf obtenu. Ce sous-bloc agrandi SBf est codé en c42. Au cours de cette étape, la prédiction du sous bloc fusionné SBf peut être mise en œuvre selon un mode de prédiction de type Inter, Merge ou Intra, comme décrit précédemment. Dans le cas du mode Inter, on attribue un vecteur mouvement MVf au sous-bloc agrandi, soit en mettant en œuvre une nouvelle étape d'estimation de mouvement qui fournit un nouveau vecteur mouvement qu'il faudra transmettre au décodeur, soit en réutilisant un des vecteurs mouvements de l'un des deux sous-blocs fusionnés. Dans ce cas le vecteur mouvement réutilisé pourra être signalé avec un index dans le train binaire.
Différentes manières de signaler la fusion sont possibles : étant donné un ordre de parcours prédéterminé des sous-blocs du partitionnement, on peut à titre d'exemple :
signaler pour chaque sous-bloc d'un partitionnement un 0 ou un 1 pour indiquer si le sous-bloc courant est fusionné avec un sous-bloc voisin selon
Tordre de parcours ; ou ne signaler que le numéro du sous-bloc courant, suivi de la distance (dans l'ordre de parcours) au sous-bloc voisin avec lequel il fusionne (par ex : 0 pour le premier voisin selon l'ordre de parcours).
A l'issue de cette étape de codage, le coût RD de la fusion est calculé en c52. Avantageusement, ce calcul prend en compte le coût de codage du résidu du sous-bloc agrandi, le coût de codage de son vecteur mouvement MVf et le coût de la signalisation du la fusion des deux sous-blocs voisins.
Le coût global calculé est comparé en c52 à la somme des coûts des deux sous- blocs SB et SBV codés séparément et une décision d'adopter la fusion est prise en c62, si ce coût global est inférieur à la somme des coûts de codage des sous-blocs séparés. Sinon, la fusion n'est pas retenue.
Ensuite le codeur peut tester la fusion du sous-bloc courant avec un autre sous- bloc voisin déjà codé.
On comprend que fusionner permet d'économiser un vecteur mouvement, mais rend la prédiction moins fine et la signalisation du partitionnement plus coûteuse. La fusion est donc un choix du codeur. Par exemple, le codeur peut systématiquement tenter la fusion d'un sous-bloc d'un partitionnement avec l'ensemble de ses sous-blocs voisins et ne garder que les fusions judicieuses, c'est-à-dire celles qui contribuent à réduire globalement à réduire le coût de codage. Le train binaire TB produit par le procédé de codage selon l'invention qui vient d'être décrit est donc particulier en ce qu'il comprend, pour le codage d'un bloc courant, des informations de signalisation relatives :
- Au fait de choisir pour le bloc courant, le mode de codage selon l'invention, à savoir le fait d'appliquer le partitionnement du bloc de prédiction au bloc courant ;
- A la modification éventuelle du partitionnement initial, par découpage ou fusion; Par exemple, une suite binaire peut indiquer qu'il y a eu modification du partitionnement initial (1), ou non (0). En cas de modification, une suite binaire peut indiquer s'il s'agit d'un découpage (0) ou d'une fusion (1). Dans les deux cas, une suite binaire décrit alors le découpage et la fusion. Par exemple, le découpage est signalé par une suite binaire en concordance avec la méthode de découpage retenue. Par exemple, si la partition est découpée en utilisant une méthode « quadtree » façon HEVC, la signalisation du « quadtree » associée suit la recommandation HEVC et en particulier la section 7.3.8.4 « Coding quadtree syntax ». Une fusion est signalée par une suite binaire qui décrit si le bloc courant fusionne ( 1) ou non (0) avec son voisin, selon un ordre prédéfini. L'ensemble de ces suites binaires peuvent être codées à l'aide d'un codeur entropique de type Huffman, ou de type arithmétique avec utilisation de contextes spécifiques afin de réduire le coût de signalisation associé ;
- A la réutilisation éventuelle du vecteur mouvement estimé pour le sous-bloc courant ou le sous-bloc voisin lors d'une modification du partitionnement initial .
En relation avec les Figures lia à lie, on présente un exemple de réalisation de l'invention selon lequel le partitionnement initial d'un bloc courant b, est modifié à plusieurs reprises, certains sous-blocs étant fusionnés, d'autres étant divisés. La figure lia illustre le fait que le partitionnement correspondant au bloc de prédiction n'est pas forcément régulier, du fait qu'il correspond à des morceaux de partitionnement de plusieurs blocs de l'image de référence. Les figures 11b, 11c et lld illustrent des fusions successives. La figure lie illustre un exemple de découpage d'un sous-bloc . On notera que dans cet exemple, le nombre de vecteurs mouvements à transmettre est de 21 pour un nombre total de 28 selon la norme HEVC. Bien sûr, si trop de fusions sont mises en œuvre, il en résulte un coût de signalisation accru. C'est donc le codeur qui connaît le coût de codage des modifications apportées au partitionnement initial et réalise le meilleur compromis débit distorsion.
Le train binaire TB produit par le procédé de codage selon l'invention est transmis à un décodeur. Ce décodeur met en œuvre un procédé de décodage selon l'invention qui va maintenant être décrit en relation avec la Figure 12.
On suppose que le décodeur lit et analyse de façon connue les données codées DC reçues dans le train binaire. On considère en particulier les données codées relatives à un bloc courant d'une image numérique Im. Selon l'invention, le décodeur extrait en Tl une information de signalisation relative au mode de partitionnement MPA mis en œuvre pour coder le bloc courant b'. Il s'agit par exemple d'un partitionnement classique, de type « Quadtree » ou bien du mode de partitionnement selon l'invention.
Dans le cas où le mode de partitionnement MPA utilisé pour le bloc courant est celui de l'invention, le décodeur obtient en T2 le vecteur mouvement de base MVb' à utiliser pour déterminer le bloc de prédiction Pr' du bloc courant dans l'image de référence IR'. Selon le mode de réalisation mis en œuvre, il peut obtenir soit une information de signalisation qui indique que le vecteur mouvement MVb' est déduit de celui d'un bloc voisin déjà codé soit des données représentatives du vecteur mouvement proprement dit. Une fois le vecteur mouvement MVb' obtenu, le décodeur met en œuvre une étape
T3 d'obtention d'un partitionnement initial IPi du bloc courant. Ce partitionnement est celui du bloc de prédiction Pr', c'est-à-dire de la zone Zb' pointée par le vecteur mouvement MVb' dans l'image de référence IR déjà décodée. Le décodeur calcule donc les coordonnées de cette zone dans l'image de référence et va chercher en mémoire le partitionnement des différents blocs de l'image de référence qui contribuent à cette zone.
En T4, il applique ce partitionnement au bloc courant. Il s'agit de son partitionnement initial. Il commence ensuite en T5 à parcourir les sous-blocs définis par ce partitionnement initial selon un ordre de parcours prédéterminé qu'il partage avec l'encodeur. Par exemple, cet ordre de parcours est déterminé au préalable. Pour un sous-bloc courant SB', il extrait du train binaire une éventuelle information de signalisation relative à une modification du partitionnement initial du bloc au niveau de ce sous-bloc SB'. S'il n'extrait aucune information, le sous-bloc n'a pas été modifié. Dans ce cas, il le décode à partir des données codées reçues dans le train binaire. De façon alternative, il extrait en T5 des informations de signalisation relatives à une modification du partitionnement au niveau du sous-bloc courant.
Par exemple, ces informations comprennent d'abord une information représentative d'un type de modification appliquée au partitionnement initial, découpage ou fusion, suivi d'informations représentatives d'une différence entre le partitionnement modifié et le partitionnement initial. Selon un premier cas, il s'agit d'un découpage du sous-bloc courant. Comme précédemment évoqué, ce découpage peut s'appuyer sur un partitionnement classique de type « Quadtree » ou sur le mode de partitionnement selon l'invention.
S'il s'agit d'un mode de partitionnement classique, le décodeur extrait du train binaire les informations de signalisation relatives à ce partitionnement et au mode de prédiction utilisé pour chacun des sous-blocs obtenus. Il décode de façon classique les sous-blocs obtenus.
S'il s'agit du mode de partitionnement selon l'invention, le décodeur répète les étapes déjà décrites, d'extraction du train binaire des informations de signalisation relatives au vecteur mouvement (réutilisé ou codé) et d'obtention du vecteur mouvement, d'obtention du partitionnement du sous-bloc de prédiction de l'image de référence, d'application de ce partitionnement au sous-bloc courant, puis de décodage des sous-blocs du sous-bloc courant redécoupé.
Selon un deuxième cas, la modification apportée au partitionnement initial est une fusion du sous-bloc courant avec un sous-bloc voisin déjà décodé. Le décodeur extrait du train binaire des informations de signalisation permettant d'identifier le sous-bloc voisin et il met à jour le partitionnement du bloc b' en remplaçant les sous-blocs fusionnés par le sous-bloc agrandi. On notera qu'il peut y avoir plus de deux sous-blocs voisins fusionnés en un seul sous-bloc agrandi. II lit ensuite dans le train binaire le mode de prédiction mis en œuvre pour le sous-bloc agrandi. Dans le cas d'un mode de prédiction Inter, il obtient le vecteur mouvement de base à appliquer au sous-bloc agrandi pour le compenser en mouvement par rapport à l'image de référence. Puis il décode le sous-bloc agrandi à partir des données codées extraites du train binaire. Une fois que tous les résidus des sous-blocs du bloc courant b' ont été décodés, le procédé de décodage reconstruit en T6 le résidu quantifié RQ' du bloc b' et le déquantifie. Cette dernière opération est réalisée par des moyens adaptés à la quantification utilisée lors du codage, par exemple une déquantification scalaire ou vectorielle...)- Ensuite il applique une transformation inverse du bloc courant déquantifié et reconstruit le bloc b' décodé par ajout du résidu à la prédiction Pr' du bloc courant b'.
Le bloc b' reconstruit est intégré à l'image en cours de décodage. On notera que l'invention qui vient d'être décrite, peut être mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, les termes « module » et « unité », utilisés dans ce document, peuvent correspondre soit à un composant logiciel, soit à un composant matériel, soit encore à un ensemble de composants matériels et/ou logiciels, aptes à mettre en œuvre la ou les fonctions décrites pour le module ou l'unité concerné(e).
En relation avec la figure 13, on présente maintenant un exemple de structure simplifiée d'un dispositif 100 de codage d'une image numérique selon l'invention. Le dispositif 100 met en œuvre le procédé de codage selon l'invention qui vient d'être décrit en relation avec les Figures 4 à 9.
Par exemple, le dispositif 100 comprend une unité de traitement 110, équipée d'un processeur μ ΐ, et pilotée par un programme d'ordinateur Pg l 120, stocké dans une mémoire 130 et mettant en œuvre le procédé de codage selon l'invention. A l'initialisation, les instructions de code du programme d'ordinateur Pgi 120 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 110. Le processeur de l'unité de traitement 110 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 120. Dans cet exemple de réalisation de l'invention, le dispositif 100 comprend au moins une unité GET MVb d'obtention d'un vecteur mouvement de base pour le bloc courant par rapport à une image de référence, une unité GET PART d'obtention d'un partitionnement du bloc de prédiction PU pointé par le vecteur mouvement de base estimé, une unité MAP PART d'application du partitionnement obtenu au bloc courant et une unité COD de codage des sous-blocs du bloc courant définis par le partitionnement appliqué.
Avantageusement, le dispositif 100 comprend en outre une unité MOD IP de modification du partitionnement obtenu pour le bloc (b') et une unité VALID MOD de validation de la modification.
Ces unités sont pilotées par le processeur μΐ de l'unité de traitement 110. De façon avantageuse, un tel dispositif 100 peut être intégré à un terminal d'utilisateur TU . Le dispositif 100 est alors agencé pour coopérer au moins un module E/R d'émission/réception de données du terminal d'utilisateur, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est transmis dans un réseau de télécommunications, par exemple un réseau filaire ou un réseau hertzien .
En relation avec la figure 13, on présente maintenant un exemple de structure simplifiée d'un dispositif 200 de décodage d'une image numérique selon l'invention . Le dispositif 200 met en œuvre le procédé de décodage selon l'invention qui vient d'être décrit en relation avec la Figure 11.
Par exemple, le dispositif 200 comprend une unité de traitement 210, équipée d'un processeur μ2, et pilotée par un programme d'ordinateur Pg2 220, stocké dans une mémoire 230 et mettant en œuvre le procédé de décodage selon l'invention .
A l'initialisation, les instructions de code du programme d'ordinateur Pg2 220 sont par exemple chargées dans une mémoire RAM avant d'être exécutées par le processeur de l'unité de traitement 210. Le processeur de l'unité de traitement 210 met en œuvre les étapes du procédé décrit précédemment, selon les instructions du programme d'ordinateur 220.
Dans cet exemple de réalisation de l'invention, le dispositif 200 comprend au moins une unité GET MVb' d'obtention d'un vecteur mouvement de base MVb' entre le bloc courant et une image de référence précédemment décodée, une unité GET PART d'obtention d'un partitionnement de la zone pointée dans l'image de référence (b'), une unité MAP PART d'application du partitionnement obtenu au bloc courant (b) et une unité DEC de parcours des sous-blocs du bloc courant (b) selon un ordre de parcours prédéterminé et de décodage des données codées lues dans le train binaire pour les sous-blocs parcourus.
Avantageusement, le dispositif 200 comprend en outre une unité MOD IP de modification du partitionnement obtenu pour le bloc (b') à partir de données codées lues dans le train binaire TB.
Ces unités sont pilotées par le processeur μ2 de l'unité de traitement 210. De façon avantageuse, un tel dispositif 200 peut être intégré à un terminal d'utilisateur TU'. Le dispositif 200 est alors agencé pour coopérer au moins avec le module suivant du terminal TU :
Un module E/R d'émission/réception de données, par l'intermédiaire duquel le train binaire TB ou le fichier compressé FC est reçu d'un réseau de télécommunications ;
Un dispositif DISP de restitution d'images, par exemple un écran de terminal, par l'intermédiaire duquel l'image numérique décodée ou la suite d'images décodées est restituée à un utilisateur. De façon avantageuse, un terminal d'utilisateur TU, TU' peut intégrer à la fois un dispositif de codage et un dispositif de décodage selon l'invention.
Il va de soi que les modes de réalisation qui ont été décrits ci-dessus ont été donnés à titre purement indicatif et nullement limitatif, et que de nombreuses modifications peuvent être facilement apportées par l'homme de l'art sans pour autant sortir du cadre de l'invention.

Claims

REVENDICATIONS
1. Procédé de codage d'une image numérique, ladite image (Im) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, caractérisé en ce que ledit procédé comprend les étapes suivantes, mises en œuvre pour un bloc courant (b) : a) Obtention d'un vecteur mouvement, dit vecteur mouvement de base (MVb) du bloc courant (b) par rapport à une image de référence précédemment décodée; b) Obtention d'un partitionnement (IP) en sous-blocs de la zone (Zb) pointée dans l'image de référence par le vecteur mouvement de base (MVb) et application au bloc courant (b); c) Parcours des sous-blocs du bloc courant (b) selon un ordre de parcours prédéterminé et codage des sous-blocs parcourus, ledit codage comprenant une étape de modification du partitionnement du bloc courant en sous- blocs selon des règles prédéterminées, une étape de codage des sous-blocs du partitionnement modifié comprenant le codage d'informations de signalisation de la modification du partitionnement et une étape de validation du partitionnement modifié par application d'un critère débit- distorsion aux sous-blocs codés du partitionnement modifié.
2. Procédé de codage d'une image numérique selon la revendication 1, caractérisé en ce que l'étape d'obtention du vecteur mouvement de base comprend une estimation de mouvement du bloc courant (b) par rapport à l'image de référence précédemment décodée selon un critère de minimisation d'erreur.
3. Procédé de codage d'une image numérique selon l'une des revendications 1 ou 2, caractérisé en ce que la modification comprend une fusion d'un sous bloc du partitionnement courant codé avec au moins un sous bloc voisin déjà codé. Procédé de codage d'une image numérique selon les revendications 1 à 3, caractérisé en ce que la modification du partitionnement courant comprend en outre un découpage d'au moins un sous-bloc en au moins deux sous-blocs.
Procédé de codage d'une image numérique selon la revendication 4, caractérisé en ce que l'étape de découpage dudit au moins un sous-bloc en au moins deux sous-blocs, dits sous-blocs découpés, comprend la mise en œuvre des étapes a) et b) pour le au moins un sous-bloc courant.
Dispositif (100) de codage d'une image numérique, ladite image (Im) étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, caractérisé en ce que ledit dispositif est apte à mettre en œuvre les unités suivantes, pour un bloc courant (b) :
Obtention (GET MVb) d'un vecteur mouvement, dit vecteur mouvement de base (MVb) du bloc courant (b) par rapport à une image de référence précédemment décodée;
Obtention (MAP IP) d'un partitionnement (IP) en sous-blocs de la zone (Zb) pointée dans l'image de référence par le vecteur mouvement de base (MVb) et application au bloc courant (b);
Parcours des sous-blocs du bloc courant (b) selon un ordre de parcours prédéterminé et codage (COD) des sous-blocs parcourus, ledit codage comprenant une. modification du partitionnement du bloc courant en sous- blocs selon des règles prédéterminées, un codage des sous-blocs du partitionnement modifié comprenant le codage d'informations de signalisation de la modification du partitionnement et une validation du partitionnement modifié par application d'un critère débit-distorsion aux sous-blocs codés du partitionnement modifié.
Procédé de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant : a') Obtention d'un vecteur mouvement de base (MVb) entre le bloc courant et une image de référence précédemment décodée, ledit vecteur mouvement pointant sur une zone de l'image de référence (Zb), de même taille que celle du bloc courant;
b') Obtention d'un partitionnement en sous-blocs de la zone pointée dans l'image de référence par le vecteur mouvement de base (MVb) et application du partitionnement obtenu au bloc courant (b); c') Parcours des sous-blocs du bloc courant (b) selon un ordre de parcours prédéterminé et décodage des données codées lues dans le train binaire pour les sous-blocs parcourus, ledit décodage comprenant une modification du partitionnement, obtenu pour le bloc courant en fonction de données codées représentatives d'une signalisation de la modification du partitionnement et le décodage du partitionnement modifié.
Procédé de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image selon la revendication 7, caractérisé en ce que, lorsque les données codées signalent une fusion, l'étape de modification du partitionnement initial remplace les au moins deux sous-blocs voisins du partitionnement initial par un sous-bloc dans le partitionnement modifié et l'étape de décodage comprend le décodage du sous- bloc.
Procédé de décodage d'une image numérique à partir d'un train binaire comprenant des données codées représentatives de ladite image selon l'une des revendications 7 et 8, caractérisé en ce que, lorsque les données codées signalent un découpage d'un sous-bloc du partitionnement courant en au moins deux sous- blocs, l'étape de mod ification du partitionnement applique le découpage signalé au sous-bloc courant et l'étape de décodage décode les sous-blocs obtenus selon un ordre de parcours prédéterminé.
0. Procédé de décodage d'une image numérique à partir d'un train binaire comprenant des données codées selon la revendication 11, caractérisé en ce que l'étape de découpage du sous-bloc en au moins deux sous-blocs met en œuvre les étapes a'), b'), c') pour le sous-bloc courant.
1. Dispositif (200) de décodage d'une image numérique (ID) à partir d'un train binaire (TB) comprenant des données codées représentatives de ladite image, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, ledit dispositif comprenant les unités suivantes, aptes à être mises en œuvre pour un bloc, dit bloc courant (b') :
Obtention (GET MVb') d'un vecteur mouvement de base (MVb') entre le bloc courant et une image de référence précédemment décodée, ledit vecteur mouvement pointant sur une zone de l'image de référence (zb), de même taille que celle du bloc courant;
Obtention d'un partitionnement (ΙΡ') en sous-blocs de la zone (Zb') pointée dans l'image de référence par le vecteur mouvement de base (MVb) et application (MAP IP') du partitionnement obtenu au bloc courant (b); Parcours des sous-blocs du bloc courant (b') selon un ordre de parcours prédéterminé et décodage des données codées lues dans le train binaire pour les sous-blocs parcourus, ledit décodage comprenant une modification du partitionnement initial, obtenu pour le bloc courant en fonction de données codées représentatives d'une signalisation de la modification du partitionnement et le décodage du partitionnement modifié.
2. Sig nal portant un train binaire (TB) comprenant des données codées représentatives d'une image numérique, ladite image numérique étant divisée en blocs de pixels traités dans un ordre défini, caractérisé en ce que, pour un bloc courant, lesdites données codées comprennent un champ représentatif d'un vecteur mouvement de base du bloc courant par rapport à une image de référence, un champ représentatif d'un mode de codage par application du partitionnement de la zone de même taille que le bloc courant, pointée par le vecteur mouvement de base dans l'image de référence, dit partitionnement initial, et des données codées représentatives d'une signalisation de la modification du partitionnement initial.
13. Terminal d'utilisateur (TU, TU') caractérisé en ce qu'il comprend un dispositif de codage d'une image numérique selon la revendication 6 et un dispositif de décodage d'une image numérique selon la revendication 11.
14. Programme d'ordinateur comprenant des instructions pour la mise en œuvre du procédé de codage d'une image numérique selon l'une des revendications 1 à 5, lorsqu'il est exécuté par un processeur.
15. Programme d'ordinateur comprenant des instructions pour la mise en œuvre du procédé de décodage d'une image numérique selon l'une des revendications 7 à 10, lorsqu'il est exécuté par un processeur.
EP15823644.8A 2014-12-22 2015-12-14 Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes Withdrawn EP3238449A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1463137A FR3030976B1 (fr) 2014-12-22 2014-12-22 Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
PCT/FR2015/053471 WO2016102804A1 (fr) 2014-12-22 2015-12-14 Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes

Publications (1)

Publication Number Publication Date
EP3238449A1 true EP3238449A1 (fr) 2017-11-01

Family

ID=53177571

Family Applications (1)

Application Number Title Priority Date Filing Date
EP15823644.8A Withdrawn EP3238449A1 (fr) 2014-12-22 2015-12-14 Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes

Country Status (4)

Country Link
US (1) US20170353722A1 (fr)
EP (1) EP3238449A1 (fr)
FR (1) FR3030976B1 (fr)
WO (1) WO2016102804A1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116193110A (zh) * 2017-01-16 2023-05-30 世宗大学校产学协力团 影像编码/解码方法
KR102479492B1 (ko) * 2018-01-08 2022-12-20 삼성전자주식회사 차량 주변의 이미지를 제공하는 전자 장치 및 방법
GB2584723A (en) * 2019-06-13 2020-12-16 Canon Kk Method, device, and computer program for coding and decoding a picture

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633611B2 (en) * 1997-04-24 2003-10-14 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for region-based moving image encoding and decoding
KR20080107965A (ko) * 2007-06-08 2008-12-11 삼성전자주식회사 객체 경계 기반 파티션을 이용한 영상의 부호화, 복호화방법 및 장치
US8885711B2 (en) * 2009-12-17 2014-11-11 Sk Telecom Co., Ltd. Image encoding/decoding method and device
KR101584480B1 (ko) 2010-04-13 2016-01-14 지이 비디오 컴프레션, 엘엘씨 평면 간 예측

Non-Patent Citations (2)

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

Also Published As

Publication number Publication date
WO2016102804A1 (fr) 2016-06-30
FR3030976B1 (fr) 2018-02-02
US20170353722A1 (en) 2017-12-07
FR3030976A1 (fr) 2016-06-24

Similar Documents

Publication Publication Date Title
EP2446628B1 (fr) Procédé de décodage d'images, dispositifs de décodage et programme d'ordinateur correspondants
EP3675491B1 (fr) Procédé de décodage d'images
WO2015197945A1 (fr) Procédé de codage d'une image numérique, procédé de décodage, dispositifs, et programmes d'ordinateurs associés
EP3061246B1 (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
FR2933565A1 (fr) Procede et dispositif de codage d'une sequence d'images mettant en oeuvre une prediction temporelle, signal, support de donnees, procede et dispositif de decodage, et produit programme d'ordinateur correspondants
FR3038196A1 (fr) Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
EP2932714B1 (fr) Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants
FR3008840A1 (fr) Procede et dispositif de decodage d'un train scalable representatif d'une sequence d'images et procede et dispositif de codage correspondants
WO2016102804A1 (fr) Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
EP2377323A2 (fr) Prédiction d'images par repartionnement d'une portion de zone causale de référence, codage et decodage utilisant une telle prédiction
EP3649778B1 (fr) Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants
EP3398330A1 (fr) Procédé de codage d'une image numérique, procédé de décodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associés
EP3529987A1 (fr) Procédé de codage et de décodage de paramètres d'image, dispositif de codage et de décodage de paramètres d'image et programmes d'ordinateur correspondants
WO2019008253A1 (fr) Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants
WO2010086562A1 (fr) Procede et dispositif de codage d'images mettant en oeuvre des modes de codage distincts, procede et dispositif de decodage, et programmes d'ordinateur correspondants
EP3272122A1 (fr) Codage d'images par quantification vectorielle
FR3033115A1 (fr) Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
WO2018065698A1 (fr) Procédé de codage d'une image numérique, procédé de décodage, dispositifs, équipement terminal et programmes d'ordinateurs associés
EP3596923A1 (fr) Procédé de codage et décodage d'images, dispositif de codage et décodage et programmes d'ordinateur correspondants

Legal Events

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

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20170530

AK Designated contracting states

Kind code of ref document: A1

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

AX Request for extension of the european patent

Extension state: BA ME

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: B COM

17Q First examination report despatched

Effective date: 20190807

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

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20191218