WO2016097556A1 - Method for encoding a digital image, decoding method, devices, user terminal and computer programs for same - Google Patents
Method for encoding a digital image, decoding method, devices, user terminal and computer programs for same Download PDFInfo
- Publication number
- WO2016097556A1 WO2016097556A1 PCT/FR2015/053470 FR2015053470W WO2016097556A1 WO 2016097556 A1 WO2016097556 A1 WO 2016097556A1 FR 2015053470 W FR2015053470 W FR 2015053470W WO 2016097556 A1 WO2016097556 A1 WO 2016097556A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- subset
- description
- elements
- prediction
- description elements
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/105—Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/46—Embedding additional information in the video signal during the compression process
- H04N19/463—Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/33—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Definitions
- the field of the invention is that of signal compression, in particular of a digital image or of a sequence of digital images, in which a prediction of a portion of the signal to be coded is made from a portion of the already coded signal.
- 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 is predicted from a previously coded decoded block.
- a residual block is obtained by subtracting the original values from the predicted values. It is then transformed using a DCT type transformation (for "Discrete Cosine Transform", in English) or wavelets.
- the transformed coefficients are quantized and their amplitudes are subjected to entropic coding of the Huffmann or arithmetic type.
- Such coding obtains effective performances because, because of the transformation, the values of the amplitudes to be coded are for the most part zero.
- it does not apply to the values of the signs of the coefficients, whose + and - values are generally associated with equivalent appearance probabilities.
- the signs of the coefficients are coded by a bit 0 or 1.
- An advantage of such a selection is to predict the value of a sign with a correct prediction probability greater than 50%, thus to allow the application of entropic coding to the values of the prediction indicators.
- This entropic coding encodes the sign information with an average bit rate less than one bit per sign, and thus makes it possible to increase the compression ratio.
- the invention particularly aims to overcome these disadvantages of the prior art.
- an object of the invention is to propose a solution that more effectively selects the signs to be predicted.
- Another objective of the invention is to propose a solution that is more efficient in compression.
- Yet another object of the invention is to propose a solution that applies to any type of description element of a block of pixels used for coding a digital image.
- a method of coding a digital image said image being divided into a plurality of blocks of pixels processed in a defined order, said method comprising the following steps, implemented for a current block:
- said method is particular in that the selection step searches, for a subset of the set of description elements, of a search order of the description elements of the subset for which an element current is predicted with the same value for all possible values of the remaining subset elements to be scanned and selects the subset, when a browse order has been found.
- the invention generalizes the fact of selecting the signs to be predicted for any type of description element of the data to be encoded for the current block. Unlike the prior art, which, in order to select the signs to be predicted, jointly evaluates the prediction of a set of signs, the invention seeks to determine a subset of this set for which it is possible to predict each of the elements independently. values of others. To do this, it seeks to determine a sequence of the description elements of this subset that allows to achieve this.
- the invention is based on an entirely new and inventive approach that exploits the fact that the best prediction of a description element is the one knowing the values of all other elements and selects the subset of elements. description whose prediction individually maximizes a likelihood criterion. In this way, for the same number of predicted description elements as in the prior art, that is to say for the same processing complexity, the performances are improved.
- the selection step comprises at least one iteration of a sequence of substeps implemented for a subset of the set of description elements of the current block and comprising:
- the substep sequence being iterated for the updated subset, as long as the substep of identification has identified at least one description item.
- the value or values of the identified sign (s) are set to their predicted value and used to identify other subset signs, knowing these values. If the final sequence has as many elements as the initial subset, it is because we have found a way to individually predict each element of the subset.
- the selection step further comprises a substep of defining an initial subset of the set of description elements, a description element being integrated into the subset according to a predetermined score associated with a coding context of the description element, said score being representative of a reliability level of the prediction of the description element, and in that the first iteration of the sub-elements previous steps is implemented for the initial subset.
- One advantage is to take as a starting point to construct the ordered sequence, a subset of descriptive elements that are associated with a level of high prediction reliability, which guarantees a high compression ratio for the entropic coding of the prediction residuals of the selected description elements.
- the selection step further comprises a sub-step of restricting the subset by deleting at least one description element, depending on a predetermined score associated with a coding context of the description element, said score being representative of a level predictability of the description element, and that the next iteration of the substep sequence is applied to the restricted subset.
- the invention seeks to integrate all the description elements of the subset in the sequence of description elements. If this is not possible with the initial subset, it is restricted, for example, by keeping only the elements associated with the highest scores, until a sequence comprising all the elements of the subset can be built.
- the substep of identifying at least one description element calculates the predicted value for the at least one description element and stores it in memory and in that the prediction step includes reading the stored value.
- One advantage is that the prediction step does not need to recalculate this value.
- the computational load is optimized.
- a coding device of a digital image according to the invention comprising the following units, which can be implemented for a current block: Processing of the current block intended to provide a set of data description elements to be encoded for the processed block;
- the coding device is particular in that the selection unit is able to search, for a subset of the set of description elements, of a search order of the description elements of the sub-set. set for which a current element is predicted with the same value for all possible values of the remaining subset elements to be scanned and, when a browse order has been found, to select the subset.
- the invention also relates to a method of decoding a digital image from a bit stream, said image being divided into a plurality of blocks processed in a defined order, the bit stream comprising coded data representative of elements description of the blocks of the image, said method comprising the following steps, implemented for a block, called current block:
- Prediction of the values of the description elements of the selected subset Decoding prediction indicator values of the selected description elements from coded data extracted from the bit stream, the indicator being adapted to take a value in a group comprising:
- said method is particular in that, for the selected subset, the selection step searches, for a subset of the set of description elements, a search order of the description elements. of the subset for which a current element is predicted with the same value for all possible values of the remaining subset elements to be scanned and selects the subset, when a browse order has been found.
- the decoding method according to the invention exploits the coded data extracted from the bitstream to reproduce the step of selecting the description elements to be predicted in the current block, implemented by the coding method.
- the selection step comprises at least one iteration of a sequence of substeps, implemented for a subset of the set of description elements of the current block and comprising, for an iteration:
- said step of selecting a subset of description elements comprises a sub-step of defining an initial subset of the set of description elements, a a description element being integrated into the initial subset based on a predetermined score associated with a coding context of the description element, said score being representative of a reliability level of the prediction of the description element, and in that the first iteration of the substeps is implemented for the initial subset.
- the selection step further comprises a sub-step of restricting the initial subset by deleting at least one description element, depending on a predetermined score associated with a coding context of the description element, said score being representative of a reliability level of the description element prediction, a decoding sub-step of the deleted description element using coded data extracted from the bitstream, and that the iterative sequence of substeps is applied to the initial restricted subset.
- a data description element of the block belongs to a group comprising:
- the selected subset may comprise description elements of various types.
- the method which has just been described in its different embodiments is advantageously implemented by a device 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 according to the invention.
- Such a device comprises the following units, able to be implemented for a block, called current block:
- IP Decoding prediction indicator
- said device is particular in that, for the selected subset, the selection unit is able to search, for a subset of the set of description elements, of a travel order of description elements of the subset for which a current element is predicted with the same value for all possible values of the other elements of the subset that remain to be browsed and, when a browse order has been found, to select the sub-set -together.
- the invention also relates to a signal carrying a bit stream comprising coded data representative of elements of description of blocks of pixels of a digital image, said pixel blocks being processed in a defined order.
- the signal according to the invention is particular characterized in that said data encoded in the bit stream are obtained according to the coding method according to the invention.
- the invention also relates to a user terminal comprising 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 coding device of a digital image and with the device for decoding 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.
- FIG. 1 schematically illustrates a sequence of digital images to be encoded and the division into blocks of these images according to the prior art, as shown in FIG.
- FIG. 2 schematically shows the steps of a method of encoding a digital image according to a first embodiment of the invention
- FIG. 3 details the processing step of a block implemented in the coding method according to the invention
- FIG. 4 details the step of selecting a subset of description elements to be predicted, implemented by the coding method according to a second embodiment of the invention
- Figure 5 schematically shows an embodiment of the selection step of the invention
- Figure 6 schematically shows a decoded current block of a decoded digital image
- FIG. 1 schematically illustrates a sequence of digital images to be encoded and the division into blocks of these images according to the prior art, as shown in FIG.
- FIG. 2 schematically shows the steps of a method of encoding a digital image according to a first embodiment of the invention
- FIG. 3 details the processing step of a block implemented in the coding method according to
- FIG. 7 schematically shows the steps of a method of decoding a digital image according to a first embodiment of the invention
- FIG. 8 details the step of selecting a subset of description elements to be predicted, implemented by the decoding method according to a second embodiment of the invention
- FIG. 9 shows an example of a simplified structure of a device for encoding a digital image and a device for decoding a digital image according to one embodiment of the invention.
- the general principle of the invention is based on the selection of a subset of data description elements to be encoded for a current block of a digital image, for which a sequence of the description elements can be defined according to wherein the prediction of the current description element is independent of the values of description elements that remain to be scanned.
- an original video consisting of a sequence of M images II, 12,... IM, with M nonzero integer is considered.
- 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.
- each block C will undergo an encoding or decoding operation consisting of a series of operations, including in a non-exhaustive manner a prediction, a residual calculation of the current block, a transformation of the pixels of the current block into coefficients, a quantization of the coefficients and entropy coding of the quantized coefficients. This sequence of operations will be detailed later.
- a current block C is selected as current block C. For example, this is the first block (in lexicographic order). This block has NxN pixels.
- a current block C is processed by implementing a coding scheme, for example as specified in the HEVC standard, in the document "ISO / IEC 23008-2: 2013 - High efficiency coding and media delivery in heterogeneous environments - Part 2: High efficiency video coding ", International Organization for Standardization, published November 2013.
- This processing step is intended to provide a set of ED elements for describing the data to be encoded for the current block C
- These description elements may be of various types, but not limited to: information relating to coding choices of the current block C, for example a mode of coding of the current block, such as the INTRA mode, INTER or SKIP, a mode of prediction of the current block, among the 35 modes of prediction of a block
- the decoded current picture is designated ID.
- ID image is (re) constructed in the encoder so that it can be used to predict the other pixels in the image sequence.
- a prediction P of the original block C is determined. It is a prediction block constructed by known means, typically by motion compensation (block from a reference image previously decoded) in the case of a so-called INTER prediction, or INTRA prediction (block constructed from the decoded pixels immediately adjacent to the current block in the ID image).
- the prediction information related to P is encoded in the bit stream TB or compressed file FC. It is assumed here that there are K possible prediction modes m1, m2, ..., mK, with K nonzero integer, and that the prediction mode chosen for block C is the mode mk.
- 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 vector one-dimensional RQ [i], where the index i varies from 0 to N 2 -l. 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 by a Huffman coding or arithmetic coding technique.
- amplitude is meant here the absolute value of the coefficient.
- Amplitude coding means are for example described in the HEVC standard and in the article by Sole et al, entitled “Transform Coefficient Coding in HEVC", published in the journal IEEE Transactions on Circuits and Systems for Video Technology, Volume 22, Issue: 12, pp. 1765 - 1777, December 2012.
- one or more information relating to the amplitude is encoded.
- CA amplitudes are obtained.
- the current block C has a set of data description elements ED to be encoded, among which are the quantized transformed residual coefficients RQ [i].
- a subset SE of this set comprising the description elements to be predicted PED for the block C, is selected.
- this subset is defined in a particular way, since it comprises only description elements which, when they are processed according to a particular travel order, can be predicted independently of the real values of the others. description elements of the set.
- description elements of a particular type are considered, for example signs of transformed and quantized coefficients of the current block RQ.
- the invention is not limited to this type of element and applies to any description element of the current block.
- a context Cxj associated with each coefficient among a plurality J of predetermined contexts with J nonzero integer and j integer between 1 and J.
- Such a context is defined by at least one characteristic of coding of the coefficient or block from which it is derived.
- the size of the quantized residue block RQ is considered: the size of the quantized residue block RQ,
- the prediction of the sign is all the more reliable as the amplitude is high. Similarly, it was found that when the block is larger in size, the frequency of the coefficient lower, the prediction is more reliable. Finally, it has been found that the prediction is more reliable when the current block is associated with intra prediction of a certain type.
- the type of image in which the current block is located for example of the Intra or Inter type, known from the HEVC standard, as a function of the energy of the predictor P, or depending on the total number of non-zero coefficients in the current block.
- step E21 the signs of the coefficients of the block RQ to be selected, according to a predetermined score Sj, for the context Cxj associated with the coefficient RQ [i] considered, are selected.
- Such a score Sj is representative of a reliability level of the prediction of the sign of the coefficient RQ [i].
- the score Sj takes values in a predetermined set, for example from 0 to 10.
- the score is a simple binary indication, one of which indicates that the sign can be predicted, and the other that the sign can not be predicted.
- the scores Sj correspond to probabilities known a priori, dependent on the context Cxj associated with the coefficient RQ [i].
- a set of probabilities of correct detection of the signs of the coefficients RQ is stored in memory.
- the signs to be predicted are selected by thresholding the scores with which they are associated.
- the sign is predicted if and only if Sj > Th, where Th is a predetermined threshold, for example equal to 0.7.
- Th is known from the encoder and the decoder.
- the threshold Th may be chosen during encoding and written in the compressed file or in the bit stream comprising the coded data representative of the digital image Im. For example, if the unit that performs the encoding does not have enough computing resources at a given time, it is possible to increase this threshold Th so as to predict fewer signs, and therefore implement fewer calculations. It would also be possible to vary the threshold Th according to the content of the images to be encoded: an image containing a lot of content, such as large luminosity variations or large movements would use a high threshold, and an image containing little content such as that low luminosity variations or few movements, would use a lower threshold Th, so as to smooth the complexity or the memory necessary for the coding of each image. In relation to FIG.
- FIG. 5 a diagram is presented showing probability values of correct detection of description elements of a particular type, for example 10 signs of quantized coefficients RQ [i].
- An EED set of description elements comprising ten elements of this type is considered. They are initially ordered according to the sequence order of the coefficients of the block implemented during the processing step El previously described. Th Threshold is used to select the initial SEI subset. In the example of FIG. 5, only the 4 index elements 1, 4, 5 and 8, whose correct prediction probability is greater than Th, are selected to form SEI. It is understood that the description elements of FIG. EED set that do not belong to the initial SEI subset, will not be predicted. They form a first NPED1 subset of unpredicted elements.
- this step consists in producing all the possible combinatorics for these other elements, then in observing what value of current Tc element is produced to predict this element, for each of these combinatorics.
- the prediction of the sign of the first coefficient 8 is first determined by setting the other three signs of SEI to a first value, for example ⁇ +, +, + ⁇ ⁇
- RQV0 ⁇ +8, +7, 0, +6, + 3.0.0, + 2, -l, 0 ⁇
- RQV1 ⁇ -8, +7, 0, +6, +3,0,0, + 2, -l, 0 ⁇
- the blocks RQV0 and RQV1 are then decoded with conventional dequantization and inverse transforming means, the predicted block P is added to them to produce two virtual decoded blocks BDVO and BDV1.
- the likelihood of these blocks is tested with a likelihood criterion.
- the combination of signs corresponding to the virtual decoded block that maximizes the likelihood criterion is retained.
- the likelihood criterion used is the minimization of the quadratic error along the boundary between the virtual decoded block and the previously decoded pixels.
- FIG. 6 there is shown a decoded picture ID and DVs virtual decoded block of size NxN pixels of the image, where DVs (n, m) is the value of DVs pixel of the block located on the n 'th row and m th column of the block.
- the broken line F represents the boundary between the decoded virtual block and the rest of the image (previously decoded).
- ID (k, l) is the value of the ID pixel located on the k th line and the i th column of the image, and (lin, col) are the coordinates of the DVs block (coordinates of the pixel at the top left of DVS) in the image ID.
- DV opt argmin SM DVs (ID, DV s ) where ID represents the reconstructed image after decoding.
- the likelihood criterion used is the minimization of the error with the predictor P. This consists in selecting the virtual decoded block which minimizes the error with the predictor P. The virtual residue associated with the optimal virtual decoded block is thus identified.
- RQV3 ⁇ -8, +7, 0, +6, + 3.0.0, -2, -1.0 ⁇ and it is verified that the combination RQV2 is more likely than the combination RQV3.
- the current subset SEI is updated by deleting the identified element from the initial subset SEI0. For the rest of the selection, the identified element is fixed at its predicted value.
- the process is iterated by repeating steps E22 to E25 as long as the subset SE comprises more than one element and as long as it is possible to identify a new ED element whose prediction is always the same, regardless of the value assigned. other elements of SE description.
- step E22 If the process stops because step E22 has not identified a new description element while the subset SE is not empty, the sequence Seq constructed in E24 is incomplete because it does not include all elements of the initial subset. This is the case for the first sequence Seq 1 obtained in the example of FIG. initial subset SEI0 with 4 elements. It includes only two elements of indices 1 and 8.
- the process is restarted to try to construct another ordered sequence Seq from the subset SEI0, by identifying another element ED in the first position of the sequence. If the process ends, while this other sequence is not complete, then the process is restarted at E27, until all the possible sequences for the initial SEIO subset have been tested.
- the initial SEIO subset is restricted during a step E29.
- the element ED which is associated with the lowest score Sj is deleted and a new initial subset SEI1 is obtained.
- index 5 is removed and the selection process of a subset of elements to be predicted SEI1 reduced to 3 index elements is iterated. , 4 and 8.
- SEI1 is further restricted to SEI2. Note in this respect that when SEI is reduced to one element, the algorithm stops, since the prediction of this element is necessarily independent of the others.
- all ED elements in this set can be predicted independently of each other in the order of the order of the elements of the found sequence.
- the predicted values are memorized for each of the elements of the Seq sequence. found. Thus, they can be reused during the actual prediction stage.
- sequence Seq2 found in the example of FIG. 5. It comprises in the order the three elements ED, of indices 8.1 and 4. The other 7 elements of the set EED belong to the SENP subset of unpredicted elements.
- the original SEI0 description elements that have been removed from the final SE SEI1 subset form a second subset of NPED2 elements that will not be predicted. In another embodiment, description elements are selected to predict of another type.
- the description element M indicative of the INTRA / INTER prediction mode is considered (in the HEVC standard, such a description element is called “pred_mode_flag")
- the description element A indicative of the amplitude of the first quantized residual coefficient for the current block in the HEVC standard, such a description element is called “coeff_abs_level_remaining”
- the description element T indicates the use or not of an inverse transform (in the HEVC standard, such a description element is called "transform_skip_flag”).
- the starting set consists of the description elements ⁇ M, A, T ⁇ .
- step E21 SEI0 is therefore ⁇ M, A ⁇ .
- step E22 SEI is searched for whether there is a description element whose prediction is independent of the values of the other syntax elements.
- the sequence Seq is therefore composed of the elements M, A in this order.
- the selection step E2 which has just been described can advantageously be implemented in the form of a recursive function f (C, LP), where C denotes the current block to be coded and LP the n-tuple of the descriptive elements. of the initial subset SEI, with n integer between 1 and N, with N not zero.
- An example of a pseudo code of this function f is given in the appendix.
- a step E3 the description elements of the first and second subsets NPED1 and NPED2 of the set EED which do not belong to the selected subset SE are conventionally encoded.
- This step implements coding techniques known to those skilled in the art.
- the signs of the coefficients RQ [i] for example, it is known in particular of the HEVC standard, in particular of the article by Sole et al., already mentioned, the fact of transmitting each sign in the form of a binary element 0 or 1, with a convention associating one with the plus sign and the other with the minus sign.
- the ED elements of the subset SE obtained are predicted. This is done simply by calling the predicted value stored during the step E2 of selecting the signs to be predicted.
- step E5 for each description element to be predicted PED, an information representative of the difference between the prediction of the description element and the real value of this element, called the IP prediction indicator or the residual of PED, is calculated. the PED description element.
- the prediction of the elements of indices 8, 1, 4 of the sequence Seq2 of FIG. 5 is ⁇ -, -, + ⁇ while the true signs are ⁇ +, -, + ⁇ .
- the prediction indicator IP is set to 1 when the prediction is correct and to 0 when the prediction is incorrect, so we obtain ⁇ 0, 1, 1 ⁇ .
- the values of the IP prediction indicator for each PED element to be predicted are coded by a known entropy coding technique, such as for example a Huffman coding, arithmetic coding or CABAC coding such as 'used in the HEVC standard.
- a known entropy coding technique such as for example a Huffman coding, arithmetic coding or CABAC coding such as 'used in the HEVC standard.
- a CIP value of the coded prediction indicator is obtained.
- the prediction indicator since only the description elements which are associated with a representative score of a sufficient level of reliability are predicted, the prediction indicator more often takes the value 1 than the value 0. This is set to profit by entropic coding to reduce the size of the compressed signal.
- the entropy coding takes into account the score Sj associated with the predicted sign for coding the IP indicator.
- the score has a value between 0 (low reliability of the prediction) and 10 (high reliability of the prediction)
- the entropic coding of the indicators is parameterized taking into account the score, so as to exploit the more or less uniform distribution of the indicators.
- CABAC-type entrapic coding known from the HEVC standard, is used by initializing the probabilities used in CABAC based on the predetermined scores.
- the decoded block BD corresponding to the quantized residual block RQ is constructed by applying to it the dequantization and inverse transforming steps known to those skilled in the art.
- a decoded residue block RD is obtained.
- the predictor block P is added to RD to obtain the decoded block D.
- the decoded block D to the reconstructed image ID.
- This decoded version is used in particular during the step of constructing a prediction of the signs selected to be predicted.
- the coded data that is to say the indicators of the predicted description elements PED and the unpredicted description elements NPED are inserted in the bit stream TB or in the compressed file FC.
- E9 is tested whether the current block C is the last block to be processed by the coding unit, taking into account the coding run order defined above. If yes, the coding unit has finished processing. If not, the next step is the step of selecting the next block E0. This block becomes the current block to be processed, and the next step is the step E1 of processing the current block, already described.
- the context Cxj associated with a score Sj for a sign-type description element depends on the size of blocks I (out of 4 possible sizes, as previously described), the prediction mode intra mk among 35 possible prediction modes (as described in the HEVC standard mentioned above), the frequency i (among 16, 64, 256 or 1024 possible frequencies, depending on the size of the blocks), and Tamplitude
- a preliminary examination on typical image sequences makes it possible to calculate a probability of correct detection of the sign for each of the contexts Cxj.
- This probability is the score Sj associated with each context Cxj, which makes it possible to select the signs to be predicted from a Th threshold of 0.7, as previously described.
- Th threshold of 0.7
- the TB bitstream is intended to be presented at the input of a decoder, local or remote.
- a signal carrying the bit stream is transmitted to the decoder via a communication network.
- the method reads in the bit stream TB the coded data relating to the description elements of the unpredicted current block belonging to the subassembly NPED1 and decodes them. At the end of this step, it knows the decoded values of the description elements of the block that have not been predicted because they were associated with a score Sj less than a predetermined Th threshold.
- step D2 it implements the step of selecting the description elements to be predicted, already described in detail for the coding method in relation with FIGS. 3 and 4.
- an initial subset SEI SEI0, which initially contains all the description elements that have not been decoded in the previous step, then we search in this subset for a traversal order of the elements, according to which the prediction of the current element takes the same value for all the possible values of the elements of the subset that remain to be scanned. It can therefore be predicted independently of the value of others.
- the substeps D22 to D25 are iterated for the subset SE obtained to identify a second element, then a third, etc., for the sequence Seq, as long as the subset SE has more than one element.
- the subset SEI is restricted to D29, deleting a description element, for example that which is associated with the lowest score. If the new subset SEI obtained comprises at least two elements (test in D210), it serves as a basis for a new iteration of substeps D22 to D211 which have just been described in order to construct an ordered sequence for this new subset.
- the description element deleted in D29 was therefore not predicted by the coder. It belongs to a second subset NPED2 of unpredicted description elements. It is therefore decoded, in D211, from coded data extracted from the TB bitstream. Indeed, its decoded value will be exploited by the next iteration of the identification sub-step D22 to predict the current description element knowing the values of all the other description elements of the current block.
- the process is repeated until a complete Seq sequence has been found for an initial SEI subassembly or the restricted SEI subset contains more than one element. Indeed, only one element may need to be predicted independently of the others.
- step D2 an ordered sequence of PED description elements to be predicted in a subset SEI comprising at least one element has therefore been determined.
- the original UTE description elements that have been removed from the final UTE form a second subset of NPED2 elements that will not be predicted.
- the Seq2 sequence found for the subset SEI comprises in the order the three elements ED, with indices 8.1 and 4.
- the first set NPED1 comprises the 6 index elements 2 , 3, 6, 7, 9 and 10.
- the second subset NPED2 includes the element of index 5.
- the PED description elements of the sequence Seq found are predicted.
- the method will simply seek in memory the values predicted during the previous step D3.
- the method reads in the bit stream TB the coded data relating to the prediction residuals of the predicted values for the description elements of the Seq sequence.
- this residue is an information representative of the difference between the description element prediction and the real value of this element, called the IP prediction indicator.
- the CIP coded data read in the bitstream corresponds to the coded values of this prediction indicator and must first be the subject of an entropy decoding corresponding to the inverse operation of that performed by the coding method.
- the prediction of the index elements 8, 1, 4 of the sequence Seq2 of FIG. 5 is ⁇ -, -, + ⁇ is corrected by the decoded IP indicators ⁇ incorrect, correct, correct ⁇ to obtain the true signs ⁇ +, -, + ⁇
- the calculated values of the predicted and unpredicted description elements are used to reconstruct the current block C. Notably, this step implements techniques known at night. :
- dequantization of the current block RQ 'to obtain a dequantized block. This is done by means adapted to the quantization used during the coding (scalar dequantization, vector dequantization ...);
- the reconstructed block C is integrated with the image being decoded.
- step D7 it comes to test whether the current block is the last block to process the decoder, given the order of travel defined above. If so, the decoding process has finished processing. If no, the next step is the step of selecting the next block D0 and the decoding steps D1 to D7 previously described are repeated for the next block selected.
- module and “unit” used in this document may correspond to either a software component, a hardware component, or a set of hardware and / or software components, able to implement the function (s) described for the module or unit concerned.
- FIG. 9 an example of a simplified structure of a device 100 for encoding a digital image and a device 200 for decoding a bit stream 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 with FIG. 2.
- 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 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 processing unit PROC of a current block intended to provide a set description elements of the current block, a SEL unit for selecting a subset of elements to be predicted from the set provided for the current block, an NPED COD unit for encoding unselected elements, a PRED unit of elements of the selected subset, a CALC unit for calculating a correct prediction indicator of a description element and a COD unit for encoding the calculated indicator values for the elements predicted ents.
- PROC of a current block intended to provide a set description elements of the current block
- a SEL unit for selecting a subset of elements to be predicted from the set provided for the current block
- an NPED COD unit for encoding unselected elements
- PRED unit of elements of the selected subset for encoding unselected elements
- CALC unit for calculating a correct prediction indicator of a description element
- COD unit for encoding the calculated indicator values for the elements predicted ents.
- the device 100 further comprises a unit M 1 for storing the coding contexts of the coefficients, predetermined scores associated with each of these contexts, and predicted values for the selected description elements.
- These units are driven by the ⁇ processor of the processing unit 110.
- such a device 100 can be integrated with a user terminal TU.
- the device 100 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 transmitted in a telecommunications network, for example a wired network or a radio network.
- a telecommunications network for example a wired network or a radio network.
- the decoding device 200 implements the decoding method according to the invention which has just been described in relation to FIG. 7.
- 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 method according to the invention.
- the code Pg 2220 computer program instructions are loaded for example in a RAM memory before being executed by the processor of the processing unit 210.
- the processor of the processing unit 210 implements the steps of the method described above, according to the instructions of the computer program 220.
- the device 200 comprises at least one DEC NPED unit for decoding the unpredicted description elements of a current block C from the coded data extracted from the bit stream, a selection unit SEL '. of a subset of description elements to be predicted in the set provided, a prediction unit PRED 'for predicting the values of the description elements of the selected subset, a DEC decoding unit of prediction indicator values description elements selected from coded data extracted from the bit stream, a CALC PED unit for calculating the decoded values of the description elements of the subset selected from the decoded prediction indicator values and their predictions and a unit RECONST of reconstruction of the current block C.
- the device 200 further comprises a unit M2 for storing the coding contexts of the coefficients, predetermined scores associated with each of these contexts, and predicted values for the PED description elements selected for a block C. These units are driven by the processor ⁇ 2 of the processing unit 210.
- a device 200 may 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 the network. telecommunications.
- the syntax element spk is set to its real value.
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
The invention relates to a method for encoding a digital image, said image being divided into a plurality of blocks of pixels processed in a predefined order, said method including the following steps, performed for a current block (C): processing (E1) the current block intended to provide a set of description elements of the processed block; selecting (E2) a subset of description elements to be predicted from the provided set; predicting (E4) description elements of the selected subset; encoding (E3) values of the non-predicted description elements; calculating (E5) a prediction indicator (IP) for the description elements selected from predictions of the selected description elements and the original values thereof; encoding (E6) the resulting values of indicators for the predicted description elements. The method is characterized in that the selection step (E2) seeks, for a subset of the set of description elements, an order for scanning the description elements of the subset for which a prediction of the current element adopts the same value for all the possible values of the other elements of the subset that remain to be scanned and selects the subset, when a scanning order has been found.
Description
Procédé de codage d'une image numérique, procédé de décodage, dispositifs, terminal d'utilisateur et programmes d'ordinateurs associés Method of encoding a digital image, decoding method, devices, user terminal and associated computer programs
1. Domaine de l'invention 1. Field of the 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, dans lequel une prédiction d'une portion du signal à coder est réalisée à partir d'une portion du signal déjà codée. The field of the invention is that of signal compression, in particular of a digital image or of a sequence of digital images, in which a prediction of a portion of the signal to be coded is made from a portion of the already coded signal.
Le codage/décodage d'images numériques s'applique notamment à des images issues d'au moins une séquence vidéo comprenant : The encoding / decoding of digital images applies in particular to images from at least one video sequence comprising:
- des images issues d'une même caméra et se succédant temporellement (codage/décodage de type 2D), images coming from the same camera and succeeding each other temporally (coding / decoding of 2D type),
- des images issues de différentes caméras orientées selon des vues différentes (codage/décodage de type 3D), images from different cameras oriented according to different views (coding / decoding of 3D type),
- des composantes de texture et de profondeur correspondantes (codage/décodage de type 3D), corresponding texture and depth components (3D type coding / decoding),
- etc. - etc.
La présente invention s'applique de manière similaire au codage/décodage d'images de type 2D ou 3D. The present invention applies similarly to the coding / decoding of 2D or 3D type images.
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. 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.
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. 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.
2. Présentation de l'art antérieur 2. Presentation of the prior art
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 est prédit à partir d'un bloc précédemment codé décodé. Un bloc résidu est obtenu par soustraction des valeurs originales aux valeurs prédites. Il est ensuite transformé à l'aide d'une transformation de type DCT (pour « Discrète Cosinus Transform », en anglais) ou
ondelettes. Les coefficients transformés sont quantifiés puis leurs amplitudes sont soumises à un codage entropique de type Huffmann ou arithmétique. Un tel codage obtient des performances efficaces, car, du fait de la transformation, les valeurs des amplitudes à coder sont en grande majorité nulles. En revanche, il ne s'applique pas aux valeurs des signes des coefficients, dont les valeurs + et - sont généralement associées à des probabilités d'apparition équivalentes. Ainsi, les signes des coefficients sont codés par un bit 0 ou 1. We consider a conventional compression scheme of a digital image, according to which the image is divided into blocks of pixels. A current block to be coded is predicted from a previously coded decoded block. A residual block is obtained by subtracting the original values from the predicted values. It is then transformed using a DCT type transformation (for "Discrete Cosine Transform", in English) or wavelets. The transformed coefficients are quantized and their amplitudes are subjected to entropic coding of the Huffmann or arithmetic type. Such coding obtains effective performances because, because of the transformation, the values of the amplitudes to be coded are for the most part zero. On the other hand, it does not apply to the values of the signs of the coefficients, whose + and - values are generally associated with equivalent appearance probabilities. Thus, the signs of the coefficients are coded by a bit 0 or 1.
On connaît de l'article de Koyama, J. et al, intitulé « Coefficient sign bit compression in video coding », et publié dans les proceedings de la conférence «Picture Coding Symposium (PCS) », en mai 2012, une méthode de sélection de signes de coefficients d'un bloc résidu à prédire. La sélection proposée est basée sur un nombre de coefficients prédéterminé en fonction de leur amplitude et de la taille du bloc dont ils sont issus. Les signes sélectionnés sont prédits en testant toutes les combinatoires possibles des valeurs de ces signes pour le bloc et en choisissant celle qui maximise un critère de vraisemblance prédéterminé Les prédictions obtenues sont comparées aux valeurs originales des signes pour déterminer la valeur d'un indicateur de prédiction, appelé aussi résidu d'un signe prédit. Cet indicateur peut prendre deux valeurs, qui sont une première valeur représentative d'une prédiction correcte et une deuxième valeur représentative d'une prédiction incorrecte. Le reste des signes est codé de façon explicite, sans prédiction. The article by Koyama, J. et al, titled "Coefficient signal bit compression in video coding", and published in the proceedings of the "Picture Coding Symposium (PCS)" conference in May 2012, is known from a selection method. of coefficient signs of a residual block to predict. The proposed selection is based on a predetermined number of coefficients as a function of their amplitude and the size of the block from which they come. The selected signs are predicted by testing all the possible combinations of the values of these signs for the block and choosing the one that maximizes a predetermined likelihood criterion. The predictions obtained are compared with the original values of the signs to determine the value of a prediction indicator. , also called residue of a predicted sign. This indicator can take two values, which are a first value representative of a correct prediction and a second value representative of an incorrect prediction. The rest of the signs are coded explicitly, without prediction.
Un avantage d'une telle sélection est de prédire la valeur d'un signe avec une probabilité de prédiction correcte supérieure à 50%, donc de permettre l'application d'un codage entropique aux valeurs des indicateurs de prédiction. Ce codage entropique code l'information de signe avec un débit moyen inférieur à un bit par signe, et permet ainsi d'augmenter le taux de compression. An advantage of such a selection is to predict the value of a sign with a correct prediction probability greater than 50%, thus to allow the application of entropic coding to the values of the prediction indicators. This entropic coding encodes the sign information with an average bit rate less than one bit per sign, and thus makes it possible to increase the compression ratio.
3. Inconvénients de l'art antérieur 3. Disadvantages of prior art
Néanmoins, cette technique présente au moins deux inconvénients majeurs : Nevertheless, this technique has at least two major disadvantages:
- Certains signes dont la probabilité de prédiction correcte est proche de 50 % entrent dans la sélection de coefficients à prédire. Si ceci n'a pas d'impact sur la performance de compression (pas de gain), il y a une augmentation inutile du nombre de calculs à effectuer ;
- Certains coefficients dont la probabilité de prédiction correcte est élevée (supérieure à 50%) ne sont pas retenus dans la sélection de coefficients à prédire. Il y a alors une perte d'efficacité de compression, car ces coefficients pourraient être utilisés pour diminuer encore la taille du signal codé. - Some signs whose correct prediction probability is close to 50% enter the selection of coefficients to predict. If this has no impact on the compression performance (no gain), there is an unnecessary increase in the number of calculations to be performed; - Some coefficients whose probability of correct prediction is high (greater than 50%) are not retained in the selection of coefficients to be predicted. There is then a loss of compression efficiency, because these coefficients could be used to further reduce the size of the coded signal.
4. Objectifs de l'invention 4. Objectives of the invention
L'invention a notamment pour objectif de pallier ces inconvénients de l'art antérieur. The invention particularly aims to overcome these disadvantages of the prior art.
Plus précisément, un objectif de l'invention est de proposer une solution qui sélectionne plus efficacement les signes à prédire. More specifically, an object of the invention is to propose a solution that more effectively selects the signs to be predicted.
Un autre objectif de l'invention est de proposer une solution qui soit plus performante en compression. Another objective of the invention is to propose a solution that is more efficient in compression.
Encore un autre objectif de l'invention est de proposer une solution qui s'applique à tout type d'élément de description d'un bloc de pixels mis en œuvre pour le codage d'une image numérique. Yet another object of the invention is to propose a solution that applies to any type of description element of a block of pixels used for coding a digital image.
5. Exposé de l'invention 5. Presentation of the 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 étant divisée en une pluralité de blocs de pixels traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc courant : These objectives, as well as others that will appear later, are achieved by a method of coding a digital image, said image being divided into a plurality of blocks of pixels processed in a defined order, said method comprising the following steps, implemented for a current block:
- Traitement du bloc courant destiné à fournir un ensemble d'éléments de description du bloc traité ; - Processing of the current block for providing a set of description elements of the processed block;
Sélection d'un sous-ensemble d'éléments de description à prédire dans l'ensemble fourni; Selecting a subset of description elements to be predicted from the provided set;
Prédiction des éléments de description du sous-ensemble sélectionné; Prediction of the description elements of the selected subset;
Codage des valeurs des éléments de description non prédits ; Coding of the values of the unpredicted description elements;
Calcul d'un indicateur de prédiction des éléments de description sélectionnés à partir des prédictions des éléments de description sélectionnés et de leurs valeurs
originales, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : Calculation of a prediction indicator of the selected description elements from the predictions of the selected description elements and their values original, the indicator being intended to take a value in a group comprising:
o une première valeur représentative d'une prédiction correcte ; a first value representative of a correct prediction;
o une deuxième valeur représentative d'une prédiction incorrecte ; a second value representative of an incorrect prediction;
- Codage des valeurs d'indicateurs obtenues pour les éléments de description prédits; - Coding of the indicator values obtained for the predicted elements of description;
Selon l'invention, ledit procédé est particulier en ce que l'étape de sélection recherche, pour un sous-ensemble de l'ensemble d'éléments de description, un ordre de parcours des éléments de description du sous-ensemble pour lequel un élément courant est prédit avec la même valeur pour toutes les valeur possibles des autres éléments du sous-ensemble qui restent à parcourir et sélectionne le sous-ensemble, lorsqu'un ordre de parcours a été trouvé. According to the invention, said method is particular in that the selection step searches, for a subset of the set of description elements, of a search order of the description elements of the subset for which an element current is predicted with the same value for all possible values of the remaining subset elements to be scanned and selects the subset, when a browse order has been found.
L'invention généralise le fait de sélectionner les signes à prédire à tout type d'élément de description des données à coder pour le bloc courant. Contrairement à l'art antérieur, qui pour sélectionner les signes à prédire, évalue conjointement la prédiction d'un ensemble de signes, l'invention cherche à déterminer un sous-ensemble de cet ensemble pour lequel il est possible de prédire chacun des éléments indépendamment des valeurs des autres. Pour ce faire, elle cherche à déterminer un ordre de parcours des éléments de description de ce sous-ensemble qui permette d'y parvenir. L'invention s'appuie sur une approche tout-à-fait nouvelle et inventive qui exploite le fait que la meilleure prédiction d'un élément de description est celle sachant les valeurs de tous les autres éléments et sélectionne le sous-ensemble d'éléments de description dont la prédiction maximise individuellement un critère de vraisemblance. De cette manière, pour un même nombre d'éléments de description prédits que dans l'art antérieur, c'est-à-dire pour une même complexité de traitement, les performances sont améliorées. The invention generalizes the fact of selecting the signs to be predicted for any type of description element of the data to be encoded for the current block. Unlike the prior art, which, in order to select the signs to be predicted, jointly evaluates the prediction of a set of signs, the invention seeks to determine a subset of this set for which it is possible to predict each of the elements independently. values of others. To do this, it seeks to determine a sequence of the description elements of this subset that allows to achieve this. The invention is based on an entirely new and inventive approach that exploits the fact that the best prediction of a description element is the one knowing the values of all other elements and selects the subset of elements. description whose prediction individually maximizes a likelihood criterion. In this way, for the same number of predicted description elements as in the prior art, that is to say for the same processing complexity, the performances are improved.
Malgré le fait qu'on ne connaisse pas les autres éléments, on prédit l'élément identifié avec la même probabilité de prédiction correcte que si on connaissait la vraie valeur de tous les autres éléments de description.
Selon un autre aspect de l'invention, l'étape de sélection comprend au moins une itération d'une séquence de sous-étapes mise en œuvre pour un sous-ensemble de l'ensemble d'éléments de description du bloc courant et comprenant: Despite the fact that we do not know the other elements, we predict the identified element with the same probability of correct prediction as if we knew the true value of all the other elements of description. According to another aspect of the invention, the selection step comprises at least one iteration of a sequence of substeps implemented for a subset of the set of description elements of the current block and comprising:
Identification d'un élément de description dans le sous-ensemble, tel que la valeur de prédiction est indépendante des valeurs des autres éléments de description du sous-ensemble ; Identifying a description element in the subset, such that the prediction value is independent of the values of the other description elements of the subset;
Construction d'une séquence d'éléments de description par concaténation de l'élément de description identifié à la fin de la séquence; Constructing a sequence of description elements by concatenating the identified description element at the end of the sequence;
Mise à jour du sous-ensemble par suppression de l'élément de description identifié ; Updating the subset by deleting the identified description element;
La séquence de sous-étapes étant itérée pour le sous-ensemble mis à jour, tant que la sous-étape d'identification a identifié au moins un élément de description. The substep sequence being iterated for the updated subset, as long as the substep of identification has identified at least one description item.
Avantageusement, on construit itérativement la séquence ordonnée de éléments sélectionnées la plus longue possible à partir du sous-ensemble initial. Suite à une itération, la ou les valeurs du ou des signes identifiés sont fixées à leur valeur prédite et utilisées pour identifier d'autres signes du sous-ensemble, sachant ces valeurs. Si la séquence finale compte autant d'éléments que le sous-ensemble initial, c'est qu'on a trouvé un cheminement permettant de prédire individuellement chacun des éléments du sous ensemble. Advantageously, it is iteratively constructed the ordered sequence of selected elements as long as possible from the initial subset. Following an iteration, the value or values of the identified sign (s) are set to their predicted value and used to identify other subset signs, knowing these values. If the final sequence has as many elements as the initial subset, it is because we have found a way to individually predict each element of the subset.
Selon un autre aspect de l'invention, l'étape de sélection comprend en outre une sous-étape de définition d'un sous-ensemble initial de l'ensemble d'éléments de description, un élément de description étant intégré au sous-ensemble en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que la première itération des sous-étapes précédentes est mise en œuvre pour le sous-ensemble initial. According to another aspect of the invention, the selection step further comprises a substep of defining an initial subset of the set of description elements, a description element being integrated into the subset according to a predetermined score associated with a coding context of the description element, said score being representative of a reliability level of the prediction of the description element, and in that the first iteration of the sub-elements previous steps is implemented for the initial subset.
Un avantage est de prendre comme point de départ pour construire la séquence ordonnée, un sous-ensemble d'éléments de description auxquels on associe un niveau de
fiabilité de prédiction élevée, ce qui garantit un taux de compression élevé pour le codage entropique des résidus de prédiction des éléments de description sélectionnés. One advantage is to take as a starting point to construct the ordered sequence, a subset of descriptive elements that are associated with a level of high prediction reliability, which guarantees a high compression ratio for the entropic coding of the prediction residuals of the selected description elements.
Selon un autre aspect de l'invention, lorsqu'à la suite de la dernière itération de la séquence de sous-étapes, la séquence construite ne comprend pas tous les éléments du sous-ensemble initial, l'étape de sélection comprend en outre une sous-étape de restriction du sous-ensemble par suppression d'au moins un élément de description, en fonction en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que l'itération suivante de la séquence de sous-étapes est appliquée au sous-ensemble restreint. According to another aspect of the invention, when following the last iteration of the substep sequence, the constructed sequence does not include all the elements of the initial subset, the selection step further comprises a sub-step of restricting the subset by deleting at least one description element, depending on a predetermined score associated with a coding context of the description element, said score being representative of a level predictability of the description element, and that the next iteration of the substep sequence is applied to the restricted subset.
L'invention cherche à intégrer tous les éléments de description du sous-ensemble dans la séquence d'éléments de description. Si ce n'est pas possible avec le sous-ensemble initial, il est restreint par exemple en ne gardant que les éléments associés aux scores les plus élevés, jusqu'à ce qu'une séquence comprenant tous les éléments du sous-ensemble puisse être construite. The invention seeks to integrate all the description elements of the subset in the sequence of description elements. If this is not possible with the initial subset, it is restricted, for example, by keeping only the elements associated with the highest scores, until a sequence comprising all the elements of the subset can be built.
Selon un autre aspect de l'invention, la sous-étape d'identification d'au moins un élément de description calcule la valeur prédite pour ledit au moins un élément de description et la stocke en mémoire et en ce que l'étape de prédiction comprend la lecture de la valeur stockée. According to another aspect of the invention, the substep of identifying at least one description element calculates the predicted value for the at least one description element and stores it in memory and in that the prediction step includes reading the stored value.
Un avantage est que l'étape de prédiction n'a pas besoin de recalculer cette valeur. La charge de calcul est optimisée. One advantage is that the prediction step does not need to recalculate this value. The computational load is optimized.
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, comprenant les unités suivantes, aptes à être mises en œuvre pour un bloc courant :
- Traitement du bloc courant destiné à fournir un ensemble d'éléments de description des données à coder pour le bloc traité ; The method which has just been described in its different embodiments is advantageously implemented by a coding device of a digital image according to the invention, comprising the following units, which can be implemented for a current block: Processing of the current block intended to provide a set of data description elements to be encoded for the processed block;
Sélection d'un sous-ensemble d'éléments de description à prédire dans l'ensemble fourni; Selecting a subset of description elements to be predicted from the provided set;
- Prédiction des éléments de description du sous-ensemble sélectionné; - Prediction of the description elements of the selected subset;
Codage des valeurs des éléments de description non prédits ; Coding of the values of the unpredicted description elements;
Calcul d'un indicateur de prédiction des éléments de description sélectionnés à partir des prédictions des éléments de description sélectionnés et de leurs valeurs originales, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : Calculating a prediction indicator of the selected description elements from the predictions of the selected description elements and their original values, the indicator being intended to take a value in a group comprising:
o une première valeur représentative d'une prédiction correcte ; a first value representative of a correct prediction;
o une deuxième valeur représentative d'une prédiction incorrecte ; a second value representative of an incorrect prediction;
Codage des valeurs d'indicateurs obtenues pour les éléments de description prédits; Coding of the indicator values obtained for the predicted description elements;
Selon l'invention, le dispositif de codage est particulier en ce que l'unité de sélection est apte à rechercher, pour un sous-ensemble de l'ensemble d'éléments de description, un ordre de parcours des éléments de description du sous-ensemble pour lequel un élément courant est prédit avec la même valeur pour toutes les valeur possibles des autres éléments du sous-ensemble qui restent à parcourir et, lorsqu'un ordre de parcours a été trouvé, à sélectionner le sous-ensemble. According to the invention, the coding device is particular in that the selection unit is able to search, for a subset of the set of description elements, of a search order of the description elements of the sub-set. set for which a current element is predicted with the same value for all possible values of the remaining subset elements to be scanned and, when a browse order has been found, to select the subset.
Corrélativement, l'invention concerne aussi un procédé de décodage d'une image numérique à partir d'un train binaire, ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, le train binaire comprenant des données codées représentatives d'éléments de description des blocs de l'image, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc, dit bloc courant : Correlatively, the invention also relates to a method of decoding a digital image from a bit stream, said image being divided into a plurality of blocks processed in a defined order, the bit stream comprising coded data representative of elements description of the blocks of the image, said method comprising the following steps, implemented for a block, called current block:
- Sélection d'un sous-ensemble d'éléments de description du bloc courant à prédire parmi un ensemble d'éléments de description du bloc ; Selecting a subset of description elements of the current block to be predicted from among a set of description elements of the block;
- Décodage des éléments de description non sélectionnés du bloc courant à partir de données codées extraites du train binaire; Decoding the non-selected description elements of the current block from coded data extracted from the bitstream;
- Prédiction des valeurs des éléments de description du sous-ensemble sélectionné;
- Décodage de valeurs d'indicateurs de prédiction des éléments de description sélectionnés à partir de données codées extraites du train binaire, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : Prediction of the values of the description elements of the selected subset; Decoding prediction indicator values of the selected description elements from coded data extracted from the bit stream, the indicator being adapted to take a value in a group comprising:
o une première valeur représentative d'une prédiction correcte ; a first value representative of a correct prediction;
o une deuxième valeur représentative d'une prédiction incorrecte ; a second value representative of an incorrect prediction;
- Calcul des valeurs décodées des éléments de description du sous-ensemble sélectionné à partir des valeurs prédites et des valeurs d'indicateurs de prédiction décodées ; Calculating the decoded values of the description elements of the selected subset from the predicted values and the decoded prediction indicator values;
Reconstruction du bloc courant à partir des valeurs décodées de l'ensemble des éléments de description ; Reconstruction of the current block from the decoded values of all the description elements;
Selon l'invention, ledit procédé est particulier en ce que, pour le sous-ensemble sélectionné, l'étape de sélection recherche, pour un sous-ensemble de l'ensemble d'éléments de description, un ordre de parcours des éléments de description du sous- ensemble pour lequel un élément courant est prédit avec la même valeur pour toutes les valeur possibles des autres éléments du sous-ensemble qui restent à parcourir et sélectionne le sous-ensemble, lorsqu'un ordre de parcours a été trouvé. .Avantageusement, le procédé de décodage selon l'invention exploite les données codées extraites du train binaire pour reproduire l'étape de sélection des éléments de description à prédire dans le bloc courant, mise en œuvre par le procédé de codage Selon un autre aspect de l'invention, l'étape de sélection comprend au moins une itération d'une séquence de sous-étapes, mise en œuvre pour un sous-ensemble de l'ensemble d'éléments de description du bloc courant et comprenant, pour une itération : According to the invention, said method is particular in that, for the selected subset, the selection step searches, for a subset of the set of description elements, a search order of the description elements. of the subset for which a current element is predicted with the same value for all possible values of the remaining subset elements to be scanned and selects the subset, when a browse order has been found. Advantageously, the decoding method according to the invention exploits the coded data extracted from the bitstream to reproduce the step of selecting the description elements to be predicted in the current block, implemented by the coding method. the invention, the selection step comprises at least one iteration of a sequence of substeps, implemented for a subset of the set of description elements of the current block and comprising, for an iteration:
- Identification d'un élément de description dans le sous-ensemble, tel que la valeur de prédiction est indépendante des valeurs des autres éléments de description du sous-ensemble ; - Identification of a description element in the subset, such that the prediction value is independent of the values of the other description elements of the subset;
Construction d'une séquence d'éléments de description par concaténation de l'élément de description identifié à la fin de la séquence; Constructing a sequence of description elements by concatenating the identified description element at the end of the sequence;
Mise à jour du sous-ensemble par suppression de l'élément de description identifié ;
La séquence de sous-étapes étant itérée pour le sous-ensemble mis à jour, tant que la sous-étape d'identification de l'itération courante a identifié au moins un élément de description. Selon encore un autre aspect de l'invention, ladite étape de sélection d'un sous- ensemble d'éléments de description comprend une sous-étape de définition d'un sous- ensemble initial de l'ensemble d'éléments de description, un élément de description étant intégré au sous-ensemble initial en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que la première itération des sous-étapes est mise en œuvre pour le sous-ensemble initial. Updating the subset by deleting the identified description element; The sequence of substeps is iterated for the updated subset, as long as the substep of identifying the current iteration has identified at least one description element. According to yet another aspect of the invention, said step of selecting a subset of description elements comprises a sub-step of defining an initial subset of the set of description elements, a a description element being integrated into the initial subset based on a predetermined score associated with a coding context of the description element, said score being representative of a reliability level of the prediction of the description element, and in that the first iteration of the substeps is implemented for the initial subset.
Selon encore un autre aspect de l'invention, lorsqu'à la suite de la dernière itération de la séquence de sous-étapes, la séquence construite ne comprend pas tous les éléments du sous-ensemble initial, l'étape de sélection comprend en outre une sous- étape de restriction du sous-ensemble initial par suppression d'au moins un élément de description, en fonction en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, une sous-étape de décodage de l'élément de description supprimé à l'aide de données codées extraites du train binaire et en ce que la séquence itérative de sous-étapes est appliquée au sous-ensemble initial restreint. According to yet another aspect of the invention, when following the last iteration of the substep sequence, the constructed sequence does not include all the elements of the initial subset, the selection step further comprises a sub-step of restricting the initial subset by deleting at least one description element, depending on a predetermined score associated with a coding context of the description element, said score being representative of a reliability level of the description element prediction, a decoding sub-step of the deleted description element using coded data extracted from the bitstream, and that the iterative sequence of substeps is applied to the initial restricted subset.
Selon encore un autre aspect de l'invention, un élément de description des données du bloc appartient à un groupe comprenant : According to yet another aspect of the invention, a data description element of the block belongs to a group comprising:
- Un mode de prédiction du bloc courant ; - A prediction mode of the current block;
- Un mode de prédiction du vecteur mouvement estimé pour le bloc courant ; A mode of prediction of the motion vector estimated for the current block;
Un mode de codage du bloc courant ; A coding mode of the current block;
Une valeur d'un coefficient d'un résidu du bloc courant ; A value of a coefficient of a residual of the current block;
Une information représentative d'une signifiance de la valeur du coefficient ; et Un signe du coefficient. Information representative of a significance of the value of the coefficient; and a sign of the coefficient.
Avantageusement, le sous-ensemble sélectionné peut comprendre des éléments de description de types variés.
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 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, selon l'invention. Advantageously, the selected subset may comprise description elements of various types. The method which has just been described in its different embodiments is advantageously implemented by a device 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 according to the invention.
Un tel dispositif comprend les unités suivantes, aptes à être mises en œuvre pour un bloc, dit bloc courant : Such a device comprises the following units, able to be implemented for a block, called current block:
- Sélection d'un sous-ensemble d'éléments de description du bloc courant à prédire parmi un ensemble d'éléments de description du bloc ; Selecting a subset of description elements of the current block to be predicted from among a set of description elements of the block;
- Décodage des éléments de description non sélectionnés du bloc courant à partir de données codées extraites du train binaire; Decoding the non-selected description elements of the current block from coded data extracted from the bitstream;
- Prédiction des valeurs des éléments de description du sous-ensemble sélectionné; Prediction of the values of the description elements of the selected subset;
- Décodage de valeurs d'indicateurs de prédiction (IP) des éléments de description sélectionnés à partir de données codées extraites du train binaire, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : Decoding prediction indicator (IP) values of the selected description elements from coded data extracted from the bit stream, the indicator being adapted to take a value in a group comprising:
o une première valeur représentative d'une prédiction correcte ; a first value representative of a correct prediction;
o une deuxième valeur représentative d'une prédiction incorrecte ; a second value representative of an incorrect prediction;
- Calcul des valeurs décodées des éléments de description du sous-ensemble sélectionné à partir des valeurs prédites et des valeurs d'indicateurs de prédiction décodées ; Calculating the decoded values of the description elements of the selected subset from the predicted values and the decoded prediction indicator values;
Reconstruction du bloc courant à partir des valeurs décodées de l'ensemble des éléments de description. Reconstruction of the current block from the decoded values of all the description elements.
Selon l'invention, ledit dispositif est particulier en ce que, pour le sous-ensemble sélectionné, l'unité de sélection est apte à rechercher, pour un sous-ensemble de l'ensemble d'éléments de description, un ordre de parcours des éléments de description du sous-ensemble pour lequel un élément courant est prédit avec la même valeur pour toutes les valeur possibles des autres éléments du sous-ensemble qui restent à parcourir et, lorsqu'un ordre de parcours a été trouvé, à sélectionner le sous-ensemble. According to the invention, said device is particular in that, for the selected subset, the selection unit is able to search, for a subset of the set of description elements, of a travel order of description elements of the subset for which a current element is predicted with the same value for all possible values of the other elements of the subset that remain to be browsed and, when a browse order has been found, to select the sub-set -together.
Corrélativement, l'invention concerne également un signal portant un train binaire comprenant des données codées représentatives d'éléments de description de blocs de
pixels d'une image numérique, lesdits blocs de pixels étant traités dans un ordre défini. Correlatively, the invention also relates to a signal carrying a bit stream comprising coded data representative of elements of description of blocks of pixels of a digital image, said pixel blocks being processed in a defined order.
Le signal selon l'invention est particulier caractérisé en ce que lesdites données codées dans le train binaire sont obtenues conformément au procédé de codage selon l'invention. Corrélativement, l'invention concerne aussi un terminal d'utilisateur comprenant un dispositif de codage d'une image numérique et un dispositif de décodage d'une image numérique selon l'invention. The signal according to the invention is particular characterized in that said data encoded in the bit stream are obtained according to the coding method according to the invention. Correlatively, the invention also relates to a user terminal comprising a device for encoding a digital image and a device for decoding a digital image according to the 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. 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.
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. 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.
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. These programs can use any programming language. They can be downloaded from a communication network and / or recorded on a computer-readable medium.
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 amovibles, 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. The invention finally relates to recording media, readable by a processor, integrated or not integrated with the coding device of a digital image and with the device for decoding 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.
6. Liste des figures 6. List of 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 : la figure 1 illustre de façon schématique une séquence d'images numériques à coder et le découpage en blocs de ces images selon l'art antérieur ; - la figure 2 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 3 détaille l'étape de traitement d'un bloc mise en œuvre dans le procédé de codage selon l'invention ; la figure 4 détaille l'étape de sélection d'un sous-ensemble d'éléments de description à prédire, mise en œuvre par le procédé de codage selon un deuxième mode de réalisation de l'invention ; la figure 5 présente de façon schématique un exemple de réalisation de l'étape de sélection de l'invention ; la figure 6 présente de façon schématique un bloc courant décodé d'une image numérique décodée; la figure 7 présente de façon schématique les étapes d'un procédé de décodage d'une image numérique selon un premier mode de réalisation de l'invention ; la figure 8 détaille l'étape de sélection d'un sous-ensemble d'éléments de description à prédire, mise en œuvre par le procédé de décodage selon un deuxième mode de réalisation de l'invention ; et la figure 9 présente un exemple de structure simplifiée d'un dispositif de codage d'une image numérique et d'un dispositif de décodage d'une image numérique selon un mode de réalisation de l'invention. Other advantages and characteristics of the invention will emerge more clearly on reading the following description of a particular embodiment of the invention, FIG. 1 schematically illustrates a sequence of digital images to be encoded and the division into blocks of these images according to the prior art, as shown in FIG. FIG. 2 schematically shows the steps of a method of encoding a digital image according to a first embodiment of the invention; FIG. 3 details the processing step of a block implemented in the coding method according to the invention; FIG. 4 details the step of selecting a subset of description elements to be predicted, implemented by the coding method according to a second embodiment of the invention; Figure 5 schematically shows an embodiment of the selection step of the invention; Figure 6 schematically shows a decoded current block of a decoded digital image; FIG. 7 schematically shows the steps of a method of decoding a digital image according to a first embodiment of the invention; FIG. 8 details the step of selecting a subset of description elements to be predicted, implemented by the decoding method according to a second embodiment of the invention; and FIG. 9 shows an example of a simplified structure of a device for encoding a digital image and a device for decoding a digital image according to one embodiment of the invention.
7. Description d'un mode de réalisation particulier de l'invention 7. Description of a particular embodiment of the invention
Le principe général de l'invention repose sur la sélection d'un sous-ensemble d'éléments de description de données à coder pour un bloc courant d'une image numérique, pour lequel on peut définir un ordre de parcours des éléments de description selon lequel la prédiction de l'élément de description courant est indépendante des valeurs de éléments de description qui restent à parcourir.
En relation avec la Figure 1, 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. The general principle of the invention is based on the selection of a subset of data description elements to be encoded for a current block of a digital image, for which a sequence of the description elements can be defined according to wherein the prediction of the current description element is independent of the values of description elements that remain to be scanned. In relation to FIG. 1, an original video consisting of a sequence of M images II, 12,... IM, with M nonzero integer is considered. 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.
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 qui peuvent à leur tour être subdivisés en blocs plus petits. Chaque bloc C 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 du bloc courant, une transformation des pixels du bloc courant en coefficients, une quantification des coefficients et un codage entropique des coefficients quantifiés. Cette suite d'opérations sera détaillée par la suite. When encoding an image Im, with m integer between 1 and M, it is subdivided into blocks of maximum size which can in turn be subdivided into smaller blocks. Each block C will undergo an encoding or decoding operation consisting of a series of operations, including in a non-exhaustive manner a prediction, a residual calculation of the current block, a transformation of the pixels of the current block into coefficients, a quantization of the coefficients and entropy coding of the quantized coefficients. This sequence of operations will be detailed later.
Les étapes du procédé de codage d'une image Im selon l'invention vont maintenant être décrites en relation avec la Figure 2. The steps of the method of coding an image Im according to the invention will now be described in relation to FIG. 2.
En E0, on commence par sélectionner comme bloc courant C le premier bloc à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte NxN pixels. Au cours d'une étape El, on traite un bloc C courant en mettant en œuvre un schéma de codage, par exemple tel que spécifié dans la norme HEVC, 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. Cette étape de traitement est destinée à fournir un ensemble d'éléments ED de description des données à coder pour le bloc courant C. Ces éléments de description peuvent être de types variés. De façon non exhaustive, ils comprennent notamment : les informations relatives à des choix de codage du bloc courant C, par exemple un mode de codage du bloc courant, tel que le mode INTRA, INTER ou SKIP, un mode de prédiction du bloc courant, parmi les 35 modes de prédiction d'un bloc In E0, we begin by selecting as current block C the first block to be processed. For example, this is the first block (in lexicographic order). This block has NxN pixels. During a step E1, a current block C is processed by implementing a coding scheme, for example as specified in the HEVC standard, in the document "ISO / IEC 23008-2: 2013 - High efficiency coding and media delivery in heterogeneous environments - Part 2: High efficiency video coding ", International Organization for Standardization, published November 2013. This processing step is intended to provide a set of ED elements for describing the data to be encoded for the current block C These description elements may be of various types, but not limited to: information relating to coding choices of the current block C, for example a mode of coding of the current block, such as the INTRA mode, INTER or SKIP, a mode of prediction of the current block, among the 35 modes of prediction of a block
INTRA, un mode de prédiction d'un vecteur mouvement estimé pour le bloc
courant, ou encore la signifiance d'une amplitude d'un coefficient , connus en soi dans HEVC; les valeurs de données à coder, telles que les composantes d'un vecteur mouvement, l'amplitude ou le signe d'un coefficient ; - etc INTRA, a prediction mode of an estimated motion vector for the block current, or the significance of an amplitude of a coefficient, known per se in HEVC; the data values to be encoded, such as the components of a motion vector, the amplitude or the sign of a coefficient; - etc
On suppose qu'il existe L découpes en blocs possibles numérotées de 1 à L, et que la découpe utilisée sur le bloc C est la découpe numéro I. Par exemple, il peut y avoir 4 découpes possibles, en blocs de taille 4x4, 8x8, 16x16, et 32x32. It is assumed that there are L cuts in possible blocks numbered from 1 to L, and that the cut used on the block C is the cut number I. For example, there may be 4 possible cuts, in blocks of size 4x4, 8x8 , 16x16, and 32x32.
En relation avec la Figure 6, l'image courante décodée est désignée par ID. On notera que, dans un codeur vidéo, l'image ID est (re)construite dans le codeur de façon à pouvoir servir pour prédire les autres pixels de la séquence d'images. In relation to Figure 6, the decoded current picture is designated ID. 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 in the image sequence.
En relation avec la Figure 3, on détaille un exemple de sous-étapes mises en œuvre par ce traitement El du bloc courant C sélectionné, conformément à la norme HEVC. In relation with FIG. 3, an example of sub-steps implemented by this processing E1 of the current block C selected in accordance with the HEVC standard is detailed.
Au cours d'une étape El i, on détermine une prédiction P du bloc original C. 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) dans le cas d'une prédiction dite INTER, 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, m2,..., mK, avec K entier non nul, et que le mode de prédiction choisi pour le bloc C est le mode mk. During a step El i, a prediction P of the original block C is determined. It is a prediction block constructed by known means, typically by motion compensation (block from a reference image previously decoded) in the case of a so-called INTER prediction, or INTRA prediction (block constructed from the decoded pixels immediately adjacent to the current block in the ID image). The prediction information related to P is encoded in the bit stream TB or compressed file FC. It is assumed here that there are K possible prediction modes m1, m2, ..., mK, with K nonzero integer, and that the prediction mode chosen for block C is the mode mk.
Au cours d'une étape E12, un résidu original R est formé, par soustraction R = C-P de la prédiction P du bloc courant C au bloc courant C. During a step E12, an original residue R is formed, by subtraction R = C-P from the prediction P of the current block C to the current block C.
Au cours d'une étape E13, 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. During a step E13, 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.
En E14, 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 E15, 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. Des moyens de codage des amplitudes sont par exemple décrits dans la norme HEVC et dans l'article de Sole et al, intitulé « Transform Coefficient Coding in HEVC », publié dans la revue IEEE Transactions on Circuits and Systems for Video Technology, Volume 22, Issue: 12, pp. 1765 - 1777, en décembre 2012. 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. A l'issue de l'étape El, on dispose donc pour le bloc courant C d'un ensemble d'éléments ED de description de données à coder, parmi lesquels on compte les coefficients résidus transformés quantifiés RQ[i] . In E14, 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 vector one-dimensional RQ [i], where the index i varies from 0 to N 2 -l. The index i is called the frequency of the coefficient RQ [i]. Classically, these coefficients are scanned in increasing frequency order, for example along a zigzag path, which is known from the JPEG fixed image coding standard. During a step E15, the amplitude information of the coefficients of the residual block RQ is encoded by entropy coding, for example by a Huffman coding or arithmetic coding technique. By amplitude is meant here the absolute value of the coefficient. Amplitude coding means are for example described in the HEVC standard and in the article by Sole et al, entitled "Transform Coefficient Coding in HEVC", published in the journal IEEE Transactions on Circuits and Systems for Video Technology, Volume 22, Issue: 12, pp. 1765 - 1777, December 2012. Classically, we can code for each coefficient representative information because the coefficient is non-zero. Then, for each nonzero coefficient, one or more information relating to the amplitude is encoded. CA amplitudes are obtained. At the end of step E1, the current block C has a set of data description elements ED to be encoded, among which are the quantized transformed residual coefficients RQ [i].
En relation avec la Figure 2, on sélectionne au cours d'une étape E2, un sous- ensemble SE de cet ensemble, comprenant les éléments de description à prédire PED pour le bloc C. In relation with FIG. 2, during a step E2, a subset SE of this set, comprising the description elements to be predicted PED for the block C, is selected.
Selon l'invention, ce sous-ensemble est défini de façon particulière, puisqu'il ne comprend que des éléments de description qui, lorsqu'ils sont traités selon un ordre de parcours particulier, peuvent être prédits de façon indépendante des valeurs réelles des autres éléments de description de l'ensemble. According to the invention, this subset is defined in a particular way, since it comprises only description elements which, when they are processed according to a particular travel order, can be predicted independently of the real values of the others. description elements of the set.
En relation avec la Figure 4, on détaille maintenant l'étape de sélection E2 d'un sous-ensemble SE d'éléments de description à prédire selon un mode de réalisation de l'invention. In relation with FIG. 4, the selection step E2 of a subset SE of description elements to be predicted according to one embodiment of the invention is now described.
Dans cet exemple, on considère des éléments de description d'un type particulier, par exemple des signes de coefficients transformés et quantifiés du bloc courant RQ. Bien sûr, l'invention n'est pas limitée à ce type d'éléments et s'applique à tout élément de description du bloc courant.
Au cours d'une première sous-étape E21 on définit un sous-ensemble initial SEI d'éléments de description à prédire. In this example, description elements of a particular type are considered, for example signs of transformed and quantized coefficients of the current block RQ. Of course, the invention is not limited to this type of element and applies to any description element of the current block. During a first substep E21 we define an initial subset SEI description elements to predict.
De façon avantageuse, on exploite la connaissance d'un contexte Cxj associé à chaque coefficient parmi une pluralité J de contextes prédéterminés, avec J entier non nul et j entier compris entre 1 et J. Un tel contexte est défini par au moins une caractéristique de codage du coefficient ou du bloc dont il est issu. Advantageously, one exploits the knowledge of a context Cxj associated with each coefficient among a plurality J of predetermined contexts, with J nonzero integer and j integer between 1 and J. Such a context is defined by at least one characteristic of coding of the coefficient or block from which it is derived.
De façon avantageuse, on considère les caractéristiques suivantes : la taille du bloc résidu quantifié RQ, Advantageously, the following characteristics are considered: the size of the quantized residue block RQ,
l'amplitude du coefficient quantifié RQ[i], the amplitude of the quantized coefficient RQ [i],
- la fréquence du coefficient ou indice i dans le bloc RQ, the frequency of the coefficient or index i in the block RQ,
le mode de prédiction du bloc courant mk parmi les K modes possibles. the mode of prediction of the current block mk among the K possible modes.
En effet, la prédiction du signe est d'autant plus fiable que l'amplitude est élevée. De même, il a été constaté que lorsque le bloc est de taille plus grande, la fréquence du coefficient plus faible, la prédiction est plus fiable. Enfin, il a été constaté que la prédiction est plus fiable lorsque le bloc courant est associé à une prédiction intra d'un certain type. Indeed, the prediction of the sign is all the more reliable as the amplitude is high. Similarly, it was found that when the block is larger in size, the frequency of the coefficient lower, the prediction is more reliable. Finally, it has been found that the prediction is more reliable when the current block is associated with intra prediction of a certain type.
De façon alternative, d'autres contextes sont envisageables. Ainsi, il est possible de tenir compte du type d'image dans lequel se trouve le bloc courant, par exemple du type Intra ou Inter, connu de la norme HEVC, en fonction de l'énergie du prédicteur P, ou encore en fonction du nombre total de coefficients non nuls dans le bloc courant. Alternatively, other contexts are conceivable. Thus, it is possible to take into account the type of image in which the current block is located, for example of the Intra or Inter type, known from the HEVC standard, as a function of the energy of the predictor P, or depending on the total number of non-zero coefficients in the current block.
Au cours de l'étape E21, on sélectionne les signes des coefficients du bloc RQ à prédire, en fonction d'un score prédéterminé Sj, pour le contexte Cxj associé au coefficient RQ[i] considéré. During step E21, the signs of the coefficients of the block RQ to be selected, according to a predetermined score Sj, for the context Cxj associated with the coefficient RQ [i] considered, are selected.
Un tel score Sj est représentatif d'un niveau de fiabilité de la prédiction du signe du coefficient RQ[i] . Such a score Sj is representative of a reliability level of the prediction of the sign of the coefficient RQ [i].
Par exemple, le score Sj prend des valeurs dans un ensemble prédéterminé, par exemple de 0 à 10.
Selon une variante, le score est une simple indication binaire, dont l'une des deux valeurs indique que le signe peut être prédit, et l'autre que le signe ne peut pas être prédit. For example, the score Sj takes values in a predetermined set, for example from 0 to 10. Alternatively, the score is a simple binary indication, one of which indicates that the sign can be predicted, and the other that the sign can not be predicted.
Selon une autre variante, les scores Sj correspondent à des probabilités connues a priori, dépendantes du contexte Cxj associé au coefficient RQ[i] . On dispose, dans l'encodeur, d'un ensemble de probabilités de détection correcte des signes des coefficients RQ. Par exemple cet ensemble de probabilités est stocké en mémoire. According to another variant, the scores Sj correspond to probabilities known a priori, dependent on the context Cxj associated with the coefficient RQ [i]. We have, in the encoder, a set of probabilities of correct detection of the signs of the coefficients RQ. For example, this set of probabilities is stored in memory.
Ces probabilités ont été construites avant l'encodage et le décodage, soit par accumulation statistique sur un ensemble de signaux représentatifs des signaux à coder, soit par calcul mathématique à partir d'hypothèses sur la distribution des signes des coefficients. Pour un coefficient RQ[i] associé au contexte Cxj, on peut donc obtenir le score Sj[i] en calculant la probabilité p[l] [mk] [i] [ | RQ[i] | ] de prédiction correcte du signe du coefficient RQ[i] . These probabilities were constructed before encoding and decoding, either by statistical accumulation on a set of signals representative of the signals to be coded, or by mathematical calculation from hypotheses on the distribution of the signs of the coefficients. For a coefficient RQ [i] associated with the context Cxj, we can thus obtain the score Sj [i] by calculating the probability p [l] [mk] [i] [| RQ [i] | ] correct prediction of the sign of the coefficient RQ [i].
Avantageusement, les signes à prédire sont sélectionnés par seuillage des scores auxquels ils sont associés. Ainsi, pour chaque coefficient RQ[i] qui a un signe (c'est-à- dire, qui n'est pas nul) et qui est associé à un contexte Cxj de score Sj, on prédit le signe si et seulement si Sj>Th, où Th est un seuil prédéterminé, par exemple égal à 0,7. Par exemple, le seuil Th est connu du codeur et du décodeur. Advantageously, the signs to be predicted are selected by thresholding the scores with which they are associated. Thus, for each coefficient RQ [i] which has a sign (that is to say, which is not zero) and which is associated with a context Cxj of score Sj, the sign is predicted if and only if Sj > Th, where Th is a predetermined threshold, for example equal to 0.7. For example, the threshold Th is known from the encoder and the decoder.
Selon une variante, le seuil Th peut être choisi en cours de codage et inscrit dans le fichier compressé ou dans le train binaire comprenant les données codées représentatives de l'image numérique Im. Par exemple, si l'unité qui effectue l'encodage ne dispose pas d'assez de ressources de calcul à un moment donné, il lui est possible d'augmenter ce seuil Th de façon à prédire moins de signes, et donc mettre en œuvre moins de calculs. II serait également possible de faire varier le seuil Th en fonction du contenu des images à coder : une image comportant beaucoup de contenu, tel que des variations de luminosité importantes ou des mouvements nombreux utiliserait un seuil élevé, et une image comportant peu de contenu tel que des variations de luminosité faibles ou mouvements peu nombreux, utiliserait un seuil Th plus bas, de façon à lisser la complexité ou la mémoire nécessaire au codage de chaque image.
En relation avec la Figure 5, on considère un diagramme présentant des valeurs de probabilité de détection correcte d'éléments de description d'un type particulier, par exemple 10 signes de coefficients quantifiés RQ[i] . On considère un ensemble EED d'éléments de description comprenant dix éléments de ce type. Ils sont initialement ordonnés selon Tordre de parcours des coefficients du bloc mis en œuvre au cours de l'étape de traitement El précédemment décrite. Le seuil Th est utilisé pour sélectionner le sous-ensemble initial SEI. Dans l'exemple de la Figure 5, ne sont retenus pour former SEI que les 4 éléments d'indices 1, 4, 5 et 8, dont la probabilité de prédiction correcte est supérieure à Th. On comprend que les éléments de description de l'ensemble EED qui n'appartiennent pas au sous-ensemble initial SEI, ne seront pas prédits. Ils forment un premier sous-ensemble NPED1 d'éléments non prédits. According to one variant, the threshold Th may be chosen during encoding and written in the compressed file or in the bit stream comprising the coded data representative of the digital image Im. For example, if the unit that performs the encoding does not have enough computing resources at a given time, it is possible to increase this threshold Th so as to predict fewer signs, and therefore implement fewer calculations. It would also be possible to vary the threshold Th according to the content of the images to be encoded: an image containing a lot of content, such as large luminosity variations or large movements would use a high threshold, and an image containing little content such as that low luminosity variations or few movements, would use a lower threshold Th, so as to smooth the complexity or the memory necessary for the coding of each image. In relation to FIG. 5, a diagram is presented showing probability values of correct detection of description elements of a particular type, for example 10 signs of quantized coefficients RQ [i]. An EED set of description elements comprising ten elements of this type is considered. They are initially ordered according to the sequence order of the coefficients of the block implemented during the processing step El previously described. Th Threshold is used to select the initial SEI subset. In the example of FIG. 5, only the 4 index elements 1, 4, 5 and 8, whose correct prediction probability is greater than Th, are selected to form SEI. It is understood that the description elements of FIG. EED set that do not belong to the initial SEI subset, will not be predicted. They form a first NPED1 subset of unpredicted elements.
Au cours d'une sous-étape E22, on recherche s'il existe, dans SEI, un élément de description ED dont la prédiction est toujours la même, quelle que soit la valeur attribuée aux autres éléments de description de SEI. Concrètement, cette étape consiste à produire toutes les combinatoires possibles pour ces autres éléments, puis à observer quelle valeur de Télément courant est produite pour prédire cet élément, pour chacune de ces combinatoires. During a substep E22, it is sought if there exists, in SEI, a description element ED whose prediction is always the same, regardless of the value assigned to the other description elements of SEI. Concretely, this step consists in producing all the possible combinatorics for these other elements, then in observing what value of current Tc element is produced to predict this element, for each of these combinatorics.
A titre d'exemple, on considère un ensemble EED comprenant 10 coefficients du bloc résidu quantifié RQ, parmi lesquels 4 signes sont à prédire. Par exemple, supposons que le bloc RQ soit égal à { +8, +7, 0, -6, -3,0,0,2,-1,0}. Supposons également que les signes du sous-ensemble initial SEI soient ceux des 1er, 4eme' 5eme et 8eme coefficients (d'amplitudes 8, 6, 3 et 2 respectivement). Selon l'invention, on commence par déterminer la prédiction du signe du premier coefficient 8 en fixant les trois autres signes de SEI à une première valeur, par exemple {+, +, +}■ By way of example, consider an EED set comprising 10 coefficients of the quantized residual block RQ, among which 4 signs are to be predicted. For example, suppose the RQ block equals {+8, +7, 0, -6, -3,0,0,2, -1,0}. Suppose also that the signs of the initial subset SEI are those of the 1 st , 4 th , 5 th and 8 th coefficients (of amplitudes 8, 6, 3 and 2 respectively). According to the invention, the prediction of the sign of the first coefficient 8 is first determined by setting the other three signs of SEI to a first value, for example {+, +, +} ■
Par exemple, on définit la combinatoire RQV0 : For example, we define the combinatorial RQV0:
RQV0 = { +8, +7, 0, +6, +3,0,0,+2,-l,0} RQV1 = { -8, +7, 0, +6, +3,0,0,+2,-l,0} RQV0 = {+8, +7, 0, +6, + 3.0.0, + 2, -l, 0} RQV1 = {-8, +7, 0, +6, +3,0,0, + 2, -l, 0}
On décode ensuite les blocs RQV0 et RQV1 avec les moyens classiques de déquantification et de transformée inverse, leur ajoute le bloc prédit P, pour produire
deux blocs décodés virtuels BDVO et BDV1. La vraisemblance de ces blocs est testée avec un critère de vraisemblance. Est retenue la combinaison de signes correspondant au bloc décodé virtuel qui maximise le critère de vraisemblance. The blocks RQV0 and RQV1 are then decoded with conventional dequantization and inverse transforming means, the predicted block P is added to them to produce two virtual decoded blocks BDVO and BDV1. The likelihood of these blocks is tested with a likelihood criterion. The combination of signs corresponding to the virtual decoded block that maximizes the likelihood criterion is retained.
Avantageusement, le critère de vraisemblance utilisé est la minimisation de l'erreur quadratique le long de la frontière entre le bloc décodé virtuel et les pixels précédemment décodés. Advantageously, the likelihood criterion used is the minimization of the quadratic error along the boundary between the virtual decoded block and the previously decoded pixels.
En relation avec la Figure 6, on a représenté une image décodée ID et un bloc décodé virtuel DVs de taille NxN pixels de cette image, où DVs(n,m) est la valeur du pixel du bloc DVs situé sur la n'eme ligne et la mieme colonne du bloc. La ligne brisée F représente la frontière entre le bloc virtuel décodée et le reste de l'image (précédemment décodé). ID(k,l) est la valeur du pixel de ID situé sur la keme ligne et la ieme colonne de l'image, et (lin, col) sont les coordonnées du bloc DVs (coordonnées du pixel en haut à gauche de DVS) dans l'image ID. On considère un opérateur « Side Matching » SM(3, B)), avec 3 image courante et B bloc courant, défini comme suit : In relation to Figure 6, there is shown a decoded picture ID and DVs virtual decoded block of size NxN pixels of the image, where DVs (n, m) is the value of DVs pixel of the block located on the n 'th row and m th column of the block. The broken line F represents the boundary between the decoded virtual block and the rest of the image (previously decoded). ID (k, l) is the value of the ID pixel located on the k th line and the i th column of the image, and (lin, col) are the coordinates of the DVs block (coordinates of the pixel at the top left of DVS) in the image ID. We consider a "Side Matching" operator SM (3, B)), with 3 current image and B current block, defined as follows:
N-l N-l N-1 N-1
SM(3, B) = ^ (B(0, a) - 3(Zin - 1, col + à)f + ^ (B(a, 0) - 3(Zin + a, col - l))2 MS (3, B) = ((B (0, a) - 3 (Zin - 1, col + to) f + ((B (a, O) - 3 (Zin + a, col - 1)) 2
a=0 a=0 a = 0 a = 0
Sur la figure 6, ceci revient à former la somme (xl-yl)2+ (x2-y2)2+ (x3-y3)2+ (x4- y4)2+ (x5-y4)2+ (x6-y5)2+ (x7-y6)2+ (x8-y7)2. On détermine le bloc décodé virtuel optimal DVopt qui minimise cette mesure : In FIG. 6, this amounts to forming the sum (xl-yl) 2 + (x2-y2) 2 + (x3-y3) 2 + (x4-y4) 2 + (x5-y4) 2 + (x6-y5) ) 2 + (x7-y6) 2 + (x8-y7) 2 . The optimal virtual decoded block DVopt is determined which minimizes this measurement:
DVopt = argminDVsSM(ID, DVs) où ID représente l'image reconstruite après décodage. DV opt = argmin SM DVs (ID, DV s ) where ID represents the reconstructed image after decoding.
Alternativement, le critère de vraisemblance utilisé est la minimisation de l'erreur avec le prédicteur P. Cela consiste à sélectionner le bloc décodé virtuel qui minimise l'erreur avec le prédicteur P. Le résidu virtuel associé au bloc décodé virtuel optimal est ainsi identifié. Alternatively, the likelihood criterion used is the minimization of the error with the predictor P. This consists in selecting the virtual decoded block which minimizes the error with the predictor P. The virtual residue associated with the optimal virtual decoded block is thus identified.
Supposons qu'il s'agisse de RQV0. On obtient alors comme prédiction un signe + pour le premier coefficient, lorsque les trois autres signes de SEI sont à {+, +, +}.
Selon l'invention, on teste ensuite toutes les autres combinaisons possibles des valeurs de signes des trois coefficients et à chaque fois, on calcule la prédiction du signe + du 1er coefficient Suppose it is RQV0. We then obtain as a prediction a sign + for the first coefficient, when the other three signs of SEI are at {+, +, +}. According to the invention then tests all other possible combinations of the three values and signs of coefficients each time the sign of the prediction is calculated + 1 coefficient
Il s'agit de comparer les valeurs de vraisemblance obtenues pour les combinaisons des valeurs des coefficients d'indices 4,5 et 8 sachant + pour le coefficient d'indice 1 avec celles obtenues respectivement avec les mêmes valeurs des coefficients d'indice 4, 5 et 8 sachant - pour le 1er coefficient. It is a question of comparing the values of likelihood obtained for the combinations of the values of the coefficients of indices 4,5 and 8 knowing + for the coefficient of index 1 with those obtained respectively with the same values of the coefficients of index 4, 5 and 8 knowing - for the 1st coefficient.
Par exemple, pour la nouvelle combinaison {+, +, -} des trois autres signes de SEI, on compare les vraisemblances des combinaisons : RQV2 = { +8, +7, 0, +6, +3,0,0,-2,-1,0} For example, for the new combination {+, +, -} of the other three signs of SEI, we compare the likelihoods of the combinations: RQV2 = {+8, +7, 0, +6, + 3,0,0, - 2, -1,0}
RQV3 = { -8, +7, 0, +6, +3,0,0,-2,-1,0} et on vérifie que la combinaison RQV2 est plus vraisemblable que la combinaison RQV3. RQV3 = {-8, +7, 0, +6, + 3.0.0, -2, -1.0} and it is verified that the combination RQV2 is more likely than the combination RQV3.
Si la vraisemblance est maximale pour toutes les combinaisons possibles des coefficients 4,5 et 8 alors que le signe du 1er coefficient est prédit avec le signe +, alors on a identifié le 1er coefficient comme prédictible indépendamment des valeurs attribuées aux autres. If the likelihood is maximum for all possible combinations of the coefficients 4.5 and 8 while the sign of the 1st coefficient is predicted with the + sign, then was identified by 1 coefficient as predictable regardless of the values assigned to the other.
Autrement dit, si la valeur prédite pour l'élément courant est toujours la même, alors on considère en E23 que l'élément courant est identifié comme premier élément d'une séquence Seq que l'on construit en E24. En E23, on a préalablement vérifié que la séquence en cours de construction n'avait pas déjà été testée. In other words, if the predicted value for the current element is always the same, then we consider in E23 that the current element is identified as the first element of a Seq sequence that is built in E24. In E23, it was previously verified that the sequence under construction had not already been tested.
En E25, on met à jour le sous-ensemble courant SEI en supprimant l'élément identifié du sous-ensemble initial SEI0. Pour la suite de la sélection, l'élément identifié est fixé à sa valeur prédite. In E25, the current subset SEI is updated by deleting the identified element from the initial subset SEI0. For the rest of the selection, the identified element is fixed at its predicted value.
On itère le processus en répétant les étapes E22 à E25 tant que le sous-ensemble SE comprend plus d'un élément et tant qu'on réussit à identifier un nouvel élément ED dont la prédiction est toujours la même, quelle que soit la valeur attribuée aux autres éléments de description de SE. The process is iterated by repeating steps E22 to E25 as long as the subset SE comprises more than one element and as long as it is possible to identify a new ED element whose prediction is always the same, regardless of the value assigned. other elements of SE description.
Si le processus s'arrête parce que l'étape E22 n'a pas identifié de nouvel élément de description alors que le sous-ensemble SE n'est pas vide, la séquence Seq construite en E24 est incomplète, car elle n'inclut pas tous les éléments du sous-ensemble initial. C'est le cas pour la première séquence Seq l obtenue dans l'exemple de la Figure 5 à partir du
sous-ensemble initial SEI0 comptant 4 éléments. Elle ne comprend que deux éléments d'indices 1 et 8. If the process stops because step E22 has not identified a new description element while the subset SE is not empty, the sequence Seq constructed in E24 is incomplete because it does not include all elements of the initial subset. This is the case for the first sequence Seq 1 obtained in the example of FIG. initial subset SEI0 with 4 elements. It includes only two elements of indices 1 and 8.
Avantageusement, on recommence le processus pour essayer de construire une autre séquence ordonnée Seq à partir du sous-ensemble SEI0, en identifiant un autre élément ED en première position de la séquence. Si le processus se termine, alors que cette autre séquence n'est pas complète, alors on relance le processus en E27, tant qu'on n'a pas testé toutes les séquences possibles pour le sous ensemble initial SEIO. Advantageously, the process is restarted to try to construct another ordered sequence Seq from the subset SEI0, by identifying another element ED in the first position of the sequence. If the process ends, while this other sequence is not complete, then the process is restarted at E27, until all the possible sequences for the initial SEIO subset have been tested.
On réinitialise la séquence Seq en E28. Seq is reset to E28.
Si toutes les séquences ordonnées ont été testées pour un SEI donné sans obtenir aucune séquence complète, on considère que le processus de sélection a échoué, au sens où il n'a pas trouvé d'ordre de parcours des éléments ED dans SEI permettant de les prédire individuellement. If all the ordered sequences have been tested for a given SEI without obtaining any complete sequence, it is considered that the selection process failed, in the sense that it did not find any order of the ED elements in SEI allowing them to be processed. predict individually.
On restreint le sous ensemble initial SEIO au cours d'une étape E29. Avantageusement, on supprime l'élément ED qui est associé au score Sj le plus faible et on obtient un nouveau sous-ensemble initial SEI1 The initial SEIO subset is restricted during a step E29. Advantageously, the element ED which is associated with the lowest score Sj is deleted and a new initial subset SEI1 is obtained.
Le processus est répété pour le nouveau sous ensemble initial SEI1. The process is repeated for the new SEI1 initial subassembly.
C'est le cas dans l'exemple de la Figure 5. On supprime l'élément d'indice 5 et on itère le processus de sélection d'un sous-ensemble d'éléments à prédire SEI1 réduit à 3 éléments d'indices 1,4 et 8. This is the case in the example of FIG. 5. The element of index 5 is removed and the selection process of a subset of elements to be predicted SEI1 reduced to 3 index elements is iterated. , 4 and 8.
S'il n'est toujours pas possible d'obtenir une séquence complète pour le nouvel SEI1, on restreint encore SEI1 en SEI2. On notera à cet égard que lorsque SEI est réduit à un élément, l'algorithme s'arrête, puisque la prédiction de cet élément est forcément indépendante des autres. If it is still not possible to obtain a complete sequence for the new SEI1, SEI1 is further restricted to SEI2. Note in this respect that when SEI is reduced to one element, the algorithm stops, since the prediction of this element is necessarily independent of the others.
Si une séquence Seq complète a été trouvée pour un sous-ensemble SEI, alors tous les éléments ED de cet ensemble peuvent être prédits indépendamment les uns des autres dans l'ordre de parcours correspondant à l'ordre des éléments de la séquence trouvée. Avantageusement, on mémorise les valeurs prédites pour chacun des éléments de la séquence Seq. trouvée. Ainsi, elles pourront être réutilisées lors de l'étape de prédiction proprement dite. If a complete Seq sequence has been found for an SEI subset, then all ED elements in this set can be predicted independently of each other in the order of the order of the elements of the found sequence. Advantageously, the predicted values are memorized for each of the elements of the Seq sequence. found. Thus, they can be reused during the actual prediction stage.
C'est le cas de la séquence Seq2 trouvée dans l'exemple de la Figure 5. Elle comprend dans l'ordre les trois éléments ED, d'indices 8,1 et 4. Les 7 autres éléments de l'ensemble EED appartiennent au sous-ensemble SENP des éléments non prédits.
Les éléments de description du SEI0 de départ qui ont été supprimés du sous-ensemble SE =SEI1 final forment un deuxième sous-ensemble NPED2 d'éléments qui ne seront pas prédits. Dans un autre mode de réalisation, on sélectionne des éléments de description à prédire d'un autre type. On considère en particulier l'élément de description M indicatif du mode de prédiction INTRA/INTER (dans la norme HEVC, un tel élément de description porte le nom « pred_mode_flag »), l'élément de description A indicatif de l'amplitude du premier coefficient résidu quantifié pour le bloc courant (dans la norme HEVC, un tel élément de description porte le nom « coeff_abs_level_remaining ») et l'élément de description T indicateur de l'utilisation ou non d'une transformée inverse (dans la norme HEVC, un tel élément de description porte le nom « transform_skip_flag »). This is the case of the sequence Seq2 found in the example of FIG. 5. It comprises in the order the three elements ED, of indices 8.1 and 4. The other 7 elements of the set EED belong to the SENP subset of unpredicted elements. The original SEI0 description elements that have been removed from the final SE = SEI1 subset form a second subset of NPED2 elements that will not be predicted. In another embodiment, description elements are selected to predict of another type. In particular, the description element M indicative of the INTRA / INTER prediction mode is considered (in the HEVC standard, such a description element is called "pred_mode_flag"), the description element A indicative of the amplitude of the first quantized residual coefficient for the current block (in the HEVC standard, such a description element is called "coeff_abs_level_remaining") and the description element T indicates the use or not of an inverse transform (in the HEVC standard, such a description element is called "transform_skip_flag").
Pour le bloc courant, l'ensemble de départ est constitué des éléments de description {M, A,T}. For the current block, the starting set consists of the description elements {M, A, T}.
On considère dans cet exemple que, pour le bloc courant C, et en fonction des informations contextuelles, il est trouvé lors de l'étape E21 que le score de T est inférieur au seuil nécessaire Th, tandis que M et A ont un score supérieur. Le sous-ensemble initial SEI = SEI0 est donc {M,A}. Au cours de l'étape E22, on cherche, dans l'ensemble SEI, s'il existe un élément de description dont la prédiction est indépendante des valeurs des autres éléments de syntaxe. It is considered in this example that, for the current block C, and depending on the contextual information, it is found in step E21 that the score of T is less than the necessary threshold Th, while M and A have a higher score. . The initial subset SEI = SEI0 is therefore {M, A}. In the course of step E22, SEI is searched for whether there is a description element whose prediction is independent of the values of the other syntax elements.
Dans un premier temps, on examine si la prédiction de l'amplitude A est différente suivant que le mode de prédiction M est INTER ou INTRA. Supposons que l'on trouve que l'amplitude est différente dans les deux cas. Alors, ceci signifie qu'une séquence Seq (dont chacun des éléments a une prédiction indépendante des éléments suivants de la série) commençant par A n'existe pas dans SEI. On va alors tester s'il est possible de trouver une telle séquence commençant par M. On va donc déterminer si la prédiction du mode INTER ou INTRA est la même quelle que soit la valeur de l'amplitude A. Supposons que, pour le bloc courant considéré, le mode de prédiction prédit est toujours le mode INTRA, quelle que soit la valeur de l'amplitude A. On peut alors choisir l'élément de description M comme premier élément de la série Seq. Du plus, il ne reste qu'un seul élément de description dans SEI, l'élément A. On sait qu'on pourra également prédire la valeur de A indépendamment des éléments de description restants -puisqu'il n'y en a plus. La séquence Seq est donc constituée des éléments M, A dans cet ordre.
L'étape de sélection E2 qui vient d'être décrite peut avantageusement être mise en œuvre sous la forme d'une fonction récursive f(C, LP), où C désigne le bloc courant à coder et LP le n-uplet des éléments descriptifs du sous-ensemble initial SEI, avec n entier compris entre 1 et N, avec N non nul. Un exemple de pseudo code de cette fonction f est donné en annexe. First, we examine whether the prediction of the amplitude A is different according to whether the prediction mode M is INTER or INTRA. Suppose we find that the amplitude is different in both cases. So, this means that a sequence Seq (each element of which has a prediction independent of the following elements of the series) starting with A does not exist in SEI. We will then test if it is possible to find such a sequence starting with M. We will therefore determine if the prediction mode INTER or INTRA is the same regardless of the value of the amplitude A. Suppose that for the block current considered, the predicted prediction mode is always the INTRA mode, regardless of the value of the amplitude A. We can then choose the description element M as the first element of the Seq series. In addition, there remains only one element of description in SEI, the element A. We know that we can also predict the value of A independently of the remaining description elements - since there are more. The sequence Seq is therefore composed of the elements M, A in this order. The selection step E2 which has just been described can advantageously be implemented in the form of a recursive function f (C, LP), where C denotes the current block to be coded and LP the n-tuple of the descriptive elements. of the initial subset SEI, with n integer between 1 and N, with N not zero. An example of a pseudo code of this function f is given in the appendix.
A l'issue de cette étape, on a donc construit une séquence ordonnée Seq d'éléments de description à prédire de longueur égale à celle du sous-ensemble SE défini par l'étape de sélection E2. At the end of this step, we have therefore constructed an ordered sequence Seq of description elements to predict of length equal to that of the subset SE defined by the selection step E2.
Au cours d'une étape E3, on encode de façon classique les éléments de description des premier et deuxième sous-ensembles NPED1 et NPED2 de l'ensemble EED qui n'appartiennent pas au sous-ensemble SE sélectionné. Cette étape met en œuvre des techniques de codage connues de l'homme de métier. Pour les signes des coefficients RQ[i] par exemple, il est connu notamment de la norme HEVC, en particulier de l'article de Sole et al., déjà cité, le fait de transmettre chaque signe sous forme d'un élément binaire 0 ou 1, avec une convention associant l'un au signe plus et l'autre au signe moins. During a step E3, the description elements of the first and second subsets NPED1 and NPED2 of the set EED which do not belong to the selected subset SE are conventionally encoded. This step implements coding techniques known to those skilled in the art. For the signs of the coefficients RQ [i] for example, it is known in particular of the HEVC standard, in particular of the article by Sole et al., Already mentioned, the fact of transmitting each sign in the form of a binary element 0 or 1, with a convention associating one with the plus sign and the other with the minus sign.
Au cours d'une étape E4, on prédit les éléments ED du sous-ensemble SE obtenu. Ceci est effectué par simple appel à la valeur prédite mémorisée lors de l'étape E2 de sélection des signes à prédire. During a step E4, the ED elements of the subset SE obtained are predicted. This is done simply by calling the predicted value stored during the step E2 of selecting the signs to be predicted.
Au cours d'une étape E5, on calcule pour chaque élément de description à prédire PED, une information représentative de la différence entre la prédiction de l'élément de description et la valeur réelle de cet élément, appelée indicateur de prédiction IP ou résidu de l'élément de description PED.
During a step E5, for each description element to be predicted PED, an information representative of the difference between the prediction of the description element and the real value of this element, called the IP prediction indicator or the residual of PED, is calculated. the PED description element.
Ainsi, si on reprend l'exemple de la Figure 5, en considérant que les éléments ED sont des signes, la prédiction des éléments d'indices 8, 1, 4 de la séquence Seq2 de la Figure 5, est {-,-,+} tandis que les vrais signes sont {+,-,+}. Par convention, l'indicateur de prédiction IP est mis à 1 lorsque la prédiction est correcte et à 0 lorsque la prédiction est incorrecte, on obtient donc {0, 1, 1}. Thus, taking the example of FIG. 5, considering that the elements ED are signs, the prediction of the elements of indices 8, 1, 4 of the sequence Seq2 of FIG. 5 is {-, -, +} while the true signs are {+, -, +}. By convention, the prediction indicator IP is set to 1 when the prediction is correct and to 0 when the prediction is incorrect, so we obtain {0, 1, 1}.
Au cours d'une étape E6, les valeurs de l'indicateur de prédiction IP pour chaque élément PED à prédire sont codées par une technique de codage entropique connue, telle que par exemple un codage de Huffman, codage arithmétique ou encore codage CABAC tel qu'utilisé dans la norme HEVC. On obtient une valeur CIP de l'indicateur de prédiction codé. During a step E6, the values of the IP prediction indicator for each PED element to be predicted are coded by a known entropy coding technique, such as for example a Huffman coding, arithmetic coding or CABAC coding such as 'used in the HEVC standard. A CIP value of the coded prediction indicator is obtained.
Selon l'invention, du fait que seuls sont prédits les éléments de description qui sont associés à un score représentatif d'un niveau de fiabilité suffisant, l'indicateur de prédiction prend plus souvent la valeur 1 que la valeur 0. Ceci est mis à profit par le codage entropique pour réduire la taille du signal compressé. According to the invention, since only the description elements which are associated with a representative score of a sufficient level of reliability are predicted, the prediction indicator more often takes the value 1 than the value 0. This is set to profit by entropic coding to reduce the size of the compressed signal.
Avantageusement, le codage entropique tient compte du score Sj associé au signe prédit pour coder l'indicateur IP. Par exemple, dans le mode de réalisation de l'invention selon lequel le score a une valeur comprise entre 0 (faible fiabilité de la prédiction) et 10 (haute fiabilité de la prédiction), le codage entropique des indicateurs est paramétré en tenant compte du score, de façon à exploiter la répartition plus ou moins uniforme des indicateurs. Par exemple, on utilise un codage entropique de type CABAC, connu de la norme HEVC, en initialisant les probabilités utilisées dans CABAC en fonction des scores prédéterminés. Advantageously, the entropy coding takes into account the score Sj associated with the predicted sign for coding the IP indicator. For example, in the embodiment of the invention in which the score has a value between 0 (low reliability of the prediction) and 10 (high reliability of the prediction), the entropic coding of the indicators is parameterized taking into account the score, so as to exploit the more or less uniform distribution of the indicators. For example, CABAC-type entrapic coding, known from the HEVC standard, is used by initializing the probabilities used in CABAC based on the predetermined scores.
Au cours d'une étape E7, illustrée par les Figures 2 et 3, on construit le bloc décodé BD correspondant au bloc résidu quantifié RQ, en lui appliquant les étapes de déquantification et de transformée inverse connues de l'homme de métier. On obtient un bloc résidu décodé RD. On ajoute à RD le bloc prédicteur P pour obtenir le bloc décodé D. During a step E7, illustrated by FIGS. 2 and 3, the decoded block BD corresponding to the quantized residual block RQ is constructed by applying to it the dequantization and inverse transforming steps known to those skilled in the art. A decoded residue block RD is obtained. The predictor block P is added to RD to obtain the decoded block D.
Au cours de cette étape on vient également ajouter le bloc décodé D à l'image reconstruite ID. Ceci permet de disposer dans le codeur d'une version décodée de l'image courante. Cette version décodée est utilisée dans notamment au cours de l'étape de construction d'une prédiction des signes sélectionnés pour être prédits.
Au cours d'une étape E8, les données codées, c'est-à-dire les indicateurs des éléments de description prédits PED et les éléments de description non prédits NPED sont insérés dans le train binaire TB ou dans le fichier compressé FC. During this step we also add the decoded block D to the reconstructed image ID. This makes it possible to have in the encoder a decoded version of the current image. This decoded version is used in particular during the step of constructing a prediction of the signs selected to be predicted. During a step E8, the coded data, that is to say the indicators of the predicted description elements PED and the unpredicted description elements NPED are inserted in the bit stream TB or in the compressed file FC.
A l'issue du traitement du bloc courant C, on vient tester en E9 si le bloc courant C est le dernier bloc à traiter par l'unité de codage, compte tenu de l'ordre de parcours de codage défini précédemment. Si oui, l'unité de codage a terminé son traitement. Si non, l'étape suivante est l'étape de sélection du bloc suivant E0. Ce bloc devient le bloc courant à traiter, et l'étape suivante est l'étape El de traitement du bloc courant, déjà décrite. Dans un exemple de réalisation de l'invention, le contexte Cxj auquel est associé un score Sj pour un élément de description de type signe, dépend de la taille de blocs I (parmi 4 tailles possibles, comme décrit précédemment), du mode de prédiction intra mk parmi 35 modes de prédiction possibles (tels que décrits dans la norme HEVC évoquée précédemment), de la fréquence i (parmi 16, 64, 256 ou 1024 fréquences possibles, en fonction de la taille des blocs), et de Tamplitude | RQ[i] | (qui peut prendre 256 valeurs possibles lorsqu'elle elle est codée sur 8 bits). Dans cet exemple, le nombre J de contextes utilisés est égal à 35x(16+64+256+ 1024)x256 = 12185600. At the end of the processing of the current block C, E9 is tested whether the current block C is the last block to be processed by the coding unit, taking into account the coding run order defined above. If yes, the coding unit has finished processing. If not, the next step is the step of selecting the next block E0. This block becomes the current block to be processed, and the next step is the step E1 of processing the current block, already described. In an exemplary embodiment of the invention, the context Cxj associated with a score Sj for a sign-type description element, depends on the size of blocks I (out of 4 possible sizes, as previously described), the prediction mode intra mk among 35 possible prediction modes (as described in the HEVC standard mentioned above), the frequency i (among 16, 64, 256 or 1024 possible frequencies, depending on the size of the blocks), and Tamplitude | RQ [i] | (which can take 256 possible values when encoded on 8 bits). In this example, the number J of contexts used is equal to 35x (16 + 64 + 256 + 1024) x256 = 12185600.
Un examen préalable sur des séquences d'images typiques permet de calculer une probabilité de détection correcte du signe pour chacun des contextes Cxj. Cette probabilité est le score Sj associé à chaque contexte Cxj, ce qui permet de sélectionner les signes à prédire à partir d'un seuil Th de 0.7, comme décrit précédemment. Ainsi, un gain en compression de 1 à 2 % est observé par rapport à l'état de l'art. A preliminary examination on typical image sequences makes it possible to calculate a probability of correct detection of the sign for each of the contexts Cxj. This probability is the score Sj associated with each context Cxj, which makes it possible to select the signs to be predicted from a Th threshold of 0.7, as previously described. Thus, a compression gain of 1 to 2% is observed compared to the state of the art.
Le train binaire TB est destiné à être présenté en entrée d'un décodeur, local ou distant. Par exemple, un signal portant le train binaire est transmis au décodeur par l'intermédiaire d'un réseau de communication. The TB bitstream is intended to be presented at the input of a decoder, local or remote. For example, a signal carrying the bit stream is transmitted to the decoder via a communication network.
En relation avec la Figure 7, on présente maintenant les étapes du procédé de décodage d'une image numérique codée selon un exemple de réalisation de l'invention. On suppose qu'un train binaire TB a été reçu par un dispositif de décodage mettant en œuvre le procédé de décodage selon l'invention.
En DO, on commence par sélectionner comme bloc courant C le premier bloc à traiter. Par exemple, il s'agit du premier bloc (dans l'ordre lexicographique). Ce bloc comporte NxN pixels. In relation to FIG. 7, the steps of the method for decoding a coded digital image according to an exemplary embodiment of the invention are now presented. It is assumed that a bit stream TB has been received by a decoding device implementing the decoding method according to the invention. In DO, we begin by selecting as current block C the first block to be processed. For example, this is the first block (in lexicographic order). This block has NxN pixels.
Au cours d'une étape Dl, le procédé lit dans le train binaire TB les données codées relatives aux éléments de description du bloc courant non prédits appartenant au sous- ensemble NPED1 et les décode. A l'issue de cette étape, il connaît les valeurs décodées des éléments de description du bloc qui n'ont pas été prédits parce qu'ils étaient associés à un score Sj inférieur à un seuil Th prédéterminé. During a step D1, the method reads in the bit stream TB the coded data relating to the description elements of the unpredicted current block belonging to the subassembly NPED1 and decodes them. At the end of this step, it knows the decoded values of the description elements of the block that have not been predicted because they were associated with a score Sj less than a predetermined Th threshold.
Au cours d'une étape D2, il met en œuvre l'étape de sélection des éléments de description à prédire, déjà décrite en détails pour le procédé de codage en relation avec les Figures 3 et 4. During a step D2, it implements the step of selecting the description elements to be predicted, already described in detail for the coding method in relation with FIGS. 3 and 4.
En relation avec la Figure 8, on présente un mode de réalisation particulier de cette étape de sélection. In relation to FIG. 8, a particular embodiment of this selection step is presented.
En D21, on définit un sous-ensemble initial SEI=SEI0, qui contient initialement tous les éléments de description qui n'ont pas été décodés dans l'étape précédente, puis on recherche dans ce sous-ensemble un ordre de parcours des éléments, selon lequel la prédiction de l'élément courant prend la même valeur pour toutes les valeurs possibles des éléments du sous-ensemble qui restent à parcourir. Il peut donc être prédit indépendamment de la valeur des autres. En D22, on cherche à identifier un premier élément de description du sous-ensemble SEI, qui peut être prédit indépendamment de la valeur des autres. Si un élément est identifié (D23), sa valeur prédite est stockée en mémoire. Cet élément est placé en première position d'une séquence Seq (D25), il est supprimé du sous-ensemble SEI initial et il est fixé à la valeur prédite. Les sous-étapes D22 à D25 sont itérées pour le sous-ensemble SE obtenu afin d'identifier un deuxième élément, puis un troisième, etc, pour la séquence Seq, tant que le sous-ensemble SE compte plus d'un élément. In D21, we define an initial subset SEI = SEI0, which initially contains all the description elements that have not been decoded in the previous step, then we search in this subset for a traversal order of the elements, according to which the prediction of the current element takes the same value for all the possible values of the elements of the subset that remain to be scanned. It can therefore be predicted independently of the value of others. In D22, it is sought to identify a first description element of the subset SEI, which can be predicted independently of the value of the others. If an element is identified (D23), its predicted value is stored in memory. This element is placed in the first position of a sequence Seq (D25), it is removed from the initial SEI subset and it is fixed at the predicted value. The substeps D22 to D25 are iterated for the subset SE obtained to identify a second element, then a third, etc., for the sequence Seq, as long as the subset SE has more than one element.
Si à l'issue de cette boucle, la séquence Seq inclut tous les éléments du sous- ensemble, l'étape de sélection D22 a réussi. Tous les éléments du sous-ensemble SEI=SEI0 seront prédits en D3 selon l'ordre trouvé. If at the end of this loop, the sequence Seq includes all the elements of the subset, the selection step D22 was successful. All elements of the subset SEI = SEI0 will be predicted in D3 according to the order found.
Sinon, le sous-ensemble SEI est restreint en D29, en supprimant un élément de description, par exemple celui qui est associé au score le plus faible. Si le nouveau sous- ensemble SEI obtenu comprend au moins deux éléments (test en D210), il sert de base à
une nouvelle itération des sous-étapes D22 à D211 qui viennent d'être décrites dans le but de construire une séquence ordonnée pour ce nouveau sous-ensemble. Otherwise, the subset SEI is restricted to D29, deleting a description element, for example that which is associated with the lowest score. If the new subset SEI obtained comprises at least two elements (test in D210), it serves as a basis for a new iteration of substeps D22 to D211 which have just been described in order to construct an ordered sequence for this new subset.
L'élément de description supprimé en D29 n'a donc pas été prédit par le codeur. Il appartient à un deuxième sous-ensemble NPED2 d'éléments de description non prédits. Il est donc décodé, en D211 à partir de données codées extraites du train binaire TB. En effet, sa valeur décodée sera exploitée par la prochaine itération de la sous-étape D22 d'identification pour prédire Télément de description courant connaissant les valeurs de tous les autres éléments de description du bloc courant. The description element deleted in D29 was therefore not predicted by the coder. It belongs to a second subset NPED2 of unpredicted description elements. It is therefore decoded, in D211, from coded data extracted from the TB bitstream. Indeed, its decoded value will be exploited by the next iteration of the identification sub-step D22 to predict the current description element knowing the values of all the other description elements of the current block.
Le processus est répété tant qu'une séquence Seq complète n'a pas été trouvée pour un sous ensemble initial SEI ou que le sous-ensemble SEI restreint contient plus d'un élément. En effet, un seul élément peut nécessaire être prédit indépendamment des autres. The process is repeated until a complete Seq sequence has been found for an initial SEI subassembly or the restricted SEI subset contains more than one element. Indeed, only one element may need to be predicted independently of the others.
A l'issue de l'étape D2, on a donc déterminé une séquence ordonnée d'éléments de description PED à prédire dans un sous-ensemble SEI comprenant au moins un élément. Les éléments de description du SEI de départ qui ont été supprimés du SEI final forment un deuxième sous-ensemble NPED2 d'éléments qui ne seront pas prédits. At the end of step D2, an ordered sequence of PED description elements to be predicted in a subset SEI comprising at least one element has therefore been determined. The original UTE description elements that have been removed from the final UTE form a second subset of NPED2 elements that will not be predicted.
Si on reprend l'exemple de la Figure 5, la séquence Seq2 trouvée pour le sous- ensemble SEI comprend dans Tordre les trois éléments ED, d'indices 8,1 et 4. Le premier ensemble NPED1 comprend les 6 éléments d'indices 2, 3, 6, 7, 9 et 10. Le deuxième sous-ensemble NPED2 comprend Télément d'indice 5. Taking the example of FIG. 5, the Seq2 sequence found for the subset SEI comprises in the order the three elements ED, with indices 8.1 and 4. The first set NPED1 comprises the 6 index elements 2 , 3, 6, 7, 9 and 10. The second subset NPED2 includes the element of index 5.
En D3, les éléments de description PED de la séquence Seq trouvée sont prédits. Avantageusement, le procédé va simplement chercher en mémoire les valeurs prédites au cours de l'étape précédente D3. En D4, le procédé lit dans le train binaire TB les données codées relatives aux résidus de prédiction des valeurs prédites pour les éléments de description de la séquence Seq. Comme précédemment décrit pour le procédé de codage, ce résidu est une information représentative de la différence entre la prédiction de Télément de description et la valeur réelle de cet élément, appelée indicateur de prédiction IP. Les données codées CIP lues dans le train binaire correspondent aux valeurs codées de cet indicateur de prédiction et doivent d'abord faire l'objet d'un décodage entropique correspondant à l'opération inverse de celle effectuée par le procédé de codage.
Ainsi, si on reprend l'exemple de la Figure 5, en considérant que les éléments ED sont des signes, les données décodées lues dans le train binaire sont {0, 1, 1}, ce qui indique que la prédiction du premier signe de la séquence est incorrecte et que celles des deux signes suivant sont correctes. En D5, le procédé calcule les valeurs réelles des éléments de description préditsIn D3, the PED description elements of the sequence Seq found are predicted. Advantageously, the method will simply seek in memory the values predicted during the previous step D3. In D4, the method reads in the bit stream TB the coded data relating to the prediction residuals of the predicted values for the description elements of the Seq sequence. As previously described for the coding method, this residue is an information representative of the difference between the description element prediction and the real value of this element, called the IP prediction indicator. The CIP coded data read in the bitstream corresponds to the coded values of this prediction indicator and must first be the subject of an entropy decoding corresponding to the inverse operation of that performed by the coding method. Thus, if we take again the example of Figure 5, considering that the elements ED are signs, the decoded data read in the bitstream are {0, 1, 1}, which indicates that the prediction of the first sign of the sequence is incorrect and those of the two following signs are correct. In D5, the method calculates the actual values of the predicted description elements
PED à partir de leurs prédictions et des indicateurs IP décodés. PED from their predictions and decoded IP indicators.
Dans l'exemple de la Figure 5, la prédiction des éléments d'indices 8, 1, 4 de la séquence Seq2 de la Figure 5, est {-,-,+} est corrigée par les indicateurs IP décodés {incorrecte, correcte, correcte} pour obtenir les vrais signes {+,-,+} En D6, on exploite les valeurs calculées des éléments de description prédits et non prédits pour reconstruire le bloc courant C. Notamment, cette étape met en œuvre des techniques connues en soir de : In the example of FIG. 5, the prediction of the index elements 8, 1, 4 of the sequence Seq2 of FIG. 5 is {-, -, +} is corrected by the decoded IP indicators {incorrect, correct, correct} to obtain the true signs {+, -, +} In D6, the calculated values of the predicted and unpredicted description elements are used to reconstruct the current block C. Notably, this step implements techniques known at night. :
déquantification du bloc courant RQ' pour obtenir un bloc déquantifié. Ceci est réalisé par des moyens adaptés à la quantification utilisée lors du codage (déquantification scalaire,déquantification vectorielle...) ; dequantization of the current block RQ 'to obtain a dequantized block. This is done by means adapted to the quantization used during the coding (scalar dequantization, vector dequantization ...);
De tranformation inverse du bloc courant déquantifié RT' ; et Inverse transformation of the dequantized current block RT '; and
De construction du bloc décodé par ajout du résidu R' à la prédiction P du bloc courant C. Construction of the decoded block by adding the residue R 'to the prediction P of the current block C.
Le bloc C reconstruit est intégré à l'image en cours de décodage. The reconstructed block C is integrated with the image being decoded.
Au cours d'une étape D7, on vient tester si le bloc courant est le dernier bloc à traiter le décodeur, compte tenu de l'ordre de parcours défini précédemment. Si oui, le procédé de décodage a terminé son traitement. Si non, l'étape suivante est l'étape de sélection du bloc suivant D0 et les étapes de décodage Dl à D7 précédemment décrites sont répétées pour le bloc suivant sélectionné. During a step D7, it comes to test whether the current block is the last block to process the decoder, given the order of travel defined above. If so, the decoding process has finished processing. If no, the next step is the step of selecting the next block D0 and the decoding steps D1 to D7 previously described are repeated for the next block selected.
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). It will be noted that the invention which has just been described can be implemented by means of software and / or hardware components. With this in mind, the terms "module" and "unit" used in this document may correspond to either a software component, a hardware component, or a set of hardware and / or software components, able to implement the function (s) described for the module or unit concerned.
En relation avec la figure 9, on présente maintenant un exemple de structure simplifiée d'un dispositif 100 de codage d'une image numérique et d'un dispositif 200 de décodage d'un train binaire 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 la Figure 2. With reference to FIG. 9, an example of a simplified structure of a device 100 for encoding a digital image and a device 200 for decoding a bit stream 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 with FIG. 2.
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 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é PROC de traitement d'un bloc courant destinée à fournir un ensemble d'éléments de description du bloc courant, une unité SEL de sélection d'un sous ensemble d'éléments à prédire dans l'ensemble fourni pour le bloc courant, une unité COD NPED de codage des éléments non sélectionnés, une unité de PRED des éléments du sous-ensemble sélectionné, une unité CALC de calcul d'un indicateur de prédiction correcte d'un élément de description et une unité COD de codage des valeurs d'indicateurs calculées pour les éléments prédits. For example, 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 method according to the invention. At initialization, 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. In this exemplary embodiment of the invention, the device 100 comprises at least one processing unit PROC of a current block intended to provide a set description elements of the current block, a SEL unit for selecting a subset of elements to be predicted from the set provided for the current block, an NPED COD unit for encoding unselected elements, a PRED unit of elements of the selected subset, a CALC unit for calculating a correct prediction indicator of a description element and a COD unit for encoding the calculated indicator values for the elements predicted ents.
Le dispositif 100 comprend en outre une unité M l de stockage des contextes de codage des coefficients, des scores prédéterminés associés à chacun de ces contextes, et des valeurs prédites pour les éléments de description sélectionnés. The device 100 further comprises a unit M 1 for storing the coding contexts of the coefficients, predetermined scores associated with each of these contexts, and predicted values for the selected description elements.
Ces unités sont pilotées par le processeur μΐ de l'unité de traitement 110. These units are driven by the μΐ processor of the processing unit 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 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 transmis dans un réseau de télécommunications, par exemple un réseau filaire ou un réseau hertzien. Advantageously, such a device 100 can be integrated with a user terminal TU. The device 100 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 transmitted in a telecommunications network, for example a wired network or a radio network.
Le dispositif de décodage 200 met en œuvre le procédé de décodage selon l'invention qui vient d'être décrit en relation avec la Figure 7. The decoding device 200 implements the decoding method according to the invention which has just been described in relation to FIG. 7.
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 selon l'invention. For example, 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 method according to the 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. At initialization, the code Pg 2220 computer program instructions are loaded for example in a RAM memory before being executed by the processor of the processing unit 210. The processor of the processing unit 210 implements the steps of the method described above, according to the instructions of the computer program 220.
Dans cet exemple de réalisation de l'invention, le dispositif 200 comprend au moins une unité DEC NPED de décodage des éléments de description non prédits d'un bloc courant C à partir des données codées extraites du train binaire, une unité SEL' de sélection d'un sous-ensemble d'éléments de description à prédire dans l'ensemble fourni, une unité PRED' de prédiction des valeurs des éléments de description du sous-ensemble sélectionné, une unité DEC IP de décodage de valeurs d'indicateurs de prédiction des éléments de description sélectionnés à partir de données codées extraites du train binaire, une unité CALC PED de calcul des valeurs décodées des éléments de description du sous-ensemble sélectionné à partir des valeurs d'indicateurs de prédiction décodées et de leurs prédictions et une unité RECONST de reconstruction du bloc courant C. Le dispositif 200 comprend en outre une unité M2 de stockage des contextes de codage des coefficients, des scores prédéterminés associés à chacun de ces contextes, et des valeurs prédites pour les éléments de description PED sélectionnés pour un bloc C. 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 du réseau de télécommunications. In this exemplary embodiment of the invention, the device 200 comprises at least one DEC NPED unit for decoding the unpredicted description elements of a current block C from the coded data extracted from the bit stream, a selection unit SEL '. of a subset of description elements to be predicted in the set provided, a prediction unit PRED 'for predicting the values of the description elements of the selected subset, a DEC decoding unit of prediction indicator values description elements selected from coded data extracted from the bit stream, a CALC PED unit for calculating the decoded values of the description elements of the subset selected from the decoded prediction indicator values and their predictions and a unit RECONST of reconstruction of the current block C. The device 200 further comprises a unit M2 for storing the coding contexts of the coefficients, predetermined scores associated with each of these contexts, and predicted values for the PED description elements selected for a block C. These units are driven by the processor μ2 of the processing unit 210. Advantageously, such a device 200 may 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 the network. telecommunications.
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.
It goes without saying that the embodiments which have been described above have been given for purely indicative and non-limiting purposes, and that many modifications can easily be made by those skilled in the art without departing from the scope. of the invention.
ANNEXE ANNEX
fonction récursive f( C, LP) recursive function f (C, LP)
{ {
si LP est vide, retourner vrai. if LP is empty, return true.
sinon if not
pour chaque élément EDk de LP for each EDk element of LP
{ {
la prédiction de EDk est-elle constante quelle que soit la valeur des autres éléments ED de LP ? is the prediction of EDK constant regardless of the value of the other ED elements of LP?
Si non, retourner faux If not, return false
si oui if yes
{ {
On retire de LP l'élément de syntaxe spk Remove the spk syntax element from LP
On mémorise la prédiction de spk. We memorize the prediction of spk.
Dans le bloc C, l'élément de syntaxe spk est fixé à sa valeur réelle. In block C, the syntax element spk is set to its real value.
Retourner f(C, LP) Return f (C, LP)
} }
} }
} }
Début beginning
Liste Lfinal = LP Lfinal list = LP
Tant que Lfinal n'est pas vide As long as Lfinal is not empty
{ {
si f( Lfinal) fin ; if f (Lfinal) end;
sinon if not
{ {
Retirer de Lfinal l'élément s qui a la plus faible probabiltié p(s) de prédiction correcte Remove from Lfinal the element that has the lowest probabilty p (s) of correct prediction
} }
} }
Fin
End
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 (C) traités dans un ordre défini, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc courant : A method of coding a digital image, said image (Im) being divided into a plurality of blocks of pixels (C) processed in a defined order, said method comprising the following steps, implemented for a current block:
- Traitement (El) du bloc courant destiné à fournir un ensemble d'éléments de description du bloc traité ; - Processing (El) of the current block for providing a set of description elements of the processed block;
Sélection (E2) d'un sous-ensemble d'éléments de description à prédire dans l'ensemble fourni; Selecting (E2) a subset of description elements to be predicted from the provided set;
Prédiction (E4) des éléments de description du sous-ensemble sélectionné; Prediction (E4) of the description elements of the selected subset;
Codage (E3) des valeurs des éléments de description non prédits ; Coding (E3) of the values of the unpredicted description elements;
Calcul (E5) d'un indicateur de prédiction (IP) des éléments de description sélectionnés à partir des prédictions des éléments de description sélectionnés et de leurs valeurs originales, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : Calculating (E5) a prediction indicator (IP) of the selected description elements from the predictions of the selected description elements and their original values, the indicator being intended to take a value in a group comprising:
o une première valeur représentative d'une prédiction correcte ; a first value representative of a correct prediction;
o une deuxième valeur représentative d'une prédiction incorrecte ; a second value representative of an incorrect prediction;
Codage (E6) des valeurs d'indicateurs obtenues pour les éléments de description prédits; Coding (E6) of the indicator values obtained for the predicted description elements;
ledit procédé étant caractérisé en ce que l'étape de sélection (E2) recherche, pour un sous-ensemble de l'ensemble d'éléments de description, un ordre de parcours des éléments de description du sous-ensemble pour lequel une prédiction de l'élément courant prend la même valeur pour toutes les valeurs possibles des autres éléments du sous-ensemble qui restent à parcourir et sélectionne le sous-ensemble, lorsqu' un ordre de parcours a été trouvé. said method being characterized in that the selecting step (E2) searches, for a subset of the set of description elements, a browse order of the subset description elements for which a prediction of the subset current element takes the same value for all the possible values of the other elements of the subset that remain to be browsed and selects the subset, when a browse order has been found.
2. Procédé de codage d'une image numérique selon la revendication 1, caractérisé en ce que l'étape de sélection comprend au moins une itération d'une séquence de sous-étapes comprenant, pour une itération, mise en œuvre pour un sous-ensemble de l'ensemble d'éléments de description du bloc courant:
Identification (E22) d'un élément de description dans le sous-ensemble, tel que la valeur de prédiction est indépendante des valeurs des autres éléments de description du sous-ensemble ; 2. A method of coding a digital image according to claim 1, characterized in that the selection step comprises at least one iteration of a sequence of substeps comprising, for an iteration, implemented for a sub-step. set of description elements of the current block: Identifying (E22) a description element in the subset, such that the prediction value is independent of the values of the other description elements of the subset;
Construction (E24) d'une séquence d'éléments de description par concaténation de l'élément de description identifié à la fin de la séquence; Constructing (E24) a sequence of description elements by concatenating the identified description element at the end of the sequence;
Mise à jour (E25) du sous-ensemble par suppression de l'élément de description identifié ; Update (E25) of the subset by deleting the identified description element;
La séquence de sous-étapes étant itérée pour le sous-ensemble mis à jour, tant que la sous-étape d'identification a identifié au moins un élément de description. The substep sequence being iterated for the updated subset, as long as the substep of identification has identified at least one description item.
Procédé de codage d'une image numérique selon la revendication 2, caractérisé en ce que l'étape de sélection (E2) comprend en outre une sous-étape (E21) de définition d'un sous-ensemble initial (SEI) de l'ensemble d'éléments de description, un élément de description étant intégré au sous-ensemble en fonction d'un score (Sj) prédéterminé associé à un contexte de codage (Cxj) de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que la première itération des sous-étapes précédentes est mise en œuvre pour le sous-ensemble initial. A method of coding a digital image according to claim 2, characterized in that the selecting step (E2) further comprises a sub-step (E21) for defining an initial subset (SEI) of the set of description elements, a description element being integrated in the subset according to a predetermined score (Sj) associated with a coding context (Cxj) of the description element, said score being representative of a reliability level of the prediction of the description element, and in that the first iteration of the preceding substeps is implemented for the initial subset.
Procédé de codage d'une image numérique selon l'une des revendications 2 et 3, caractérisé en ce que, lorsqu'à la suite de la dernière itération de la séquence de sous-étapes, la séquence construite ne comprend pas tous les éléments du sous- ensemble initial, l'étape de sélection (E2) comprend en outre une sous-étape (E29) de restriction du sous-ensemble par suppression d'au moins un élément de description, en fonction en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que l'itération suivante de la séquence de sous-étapes est appliquée au sous-ensemble restreint. A method of coding a digital image according to one of claims 2 and 3, characterized in that, when following the last iteration of the substep sequence, the constructed sequence does not include all the elements of the initial subset, the selection step (E2) further comprises a sub-step (E29) for restricting the subset by deleting at least one description element, depending on a predetermined predetermined score to a coding context of the description element, said score being representative of a reliability level of the prediction of the description element, and in that the next iteration of the sequence of substeps is applied to the restricted subset.
Procédé de codage d'une image numérique, selon l'une des revendications 2 à 4, caractérisé en ce que la sous-étape d'identification d'au moins un élément de
description calcule la valeur prédite pour ledit au moins un élément de description et la stocke en mémoire et en ce que l'étape de prédiction (E4) comprend la lecture de la valeur stockée. Method for coding a digital image, according to one of Claims 2 to 4, characterized in that the sub-step of identifying at least one element of description computes the predicted value for the at least one description element and stores it in memory and in that the prediction step (E4) comprises reading the stored value.
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, ledit dispositif comprenant les unités suivantes, aptes à être mises en œuvre pour un bloc courant (C) : A device (100) for encoding a digital image, said image (Im) being divided into a plurality of blocks of pixels processed in a defined order, said device comprising the following units, which can be implemented for a current block ( VS) :
Traitement (PROC) du bloc courant destiné à fournir un ensemble (EED) d'éléments de description du bloc traité ; Processing (PROC) of the current block for providing a set (EED) of description elements of the processed block;
Sélection (SEL) d'un sous-ensemble (SE) d'éléments de description à prédire dans l'ensemble fourni; Selection (SEL) of a subset (SE) of description elements to be predicted from the provided set;
Prédiction (PRED) des éléments de description du sous-ensemble sélectionné; Codage (COD NPED) des valeurs des éléments de description non prédits ; Calcul (CALC IP) d'un indicateur de prédiction (IP) des éléments de description sélectionnés à partir des prédictions des éléments de description sélectionnés et de leurs valeurs originales, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : Prediction (PRED) of the description elements of the selected subset; Coding (COD NPED) of the values of the unpredicted description elements; Calculation (IP CALC) of a prediction indicator (IP) of the selected description elements from the predictions of the selected description elements and their original values, the indicator being intended to take a value in a group comprising:
o une première valeur représentative d'une prédiction correcte ; a first value representative of a correct prediction;
o une deuxième valeur représentative d'une prédiction incorrecte ; a second value representative of an incorrect prediction;
Codage (COD IP) des valeurs d'indicateurs obtenues pour les éléments de description prédits; Coding (COD IP) of the indicator values obtained for the predicted elements of description;
ledit dispositif étant caractérisé en ce que l'unité de sélection est apte à rechercher, pour un sous-ensemble de l'ensemble d'éléments de description, un ordre de parcours des éléments de description du sous-ensemble pour lequel une prédiction d'un élément courant prend la même valeur pour toutes les valeurs possibles des autres éléments du sous-ensemble qui restent à parcourir et, lorsqu'un ordre de parcours a été trouvé, à sélectionner le sous-ensemble. said device being characterized in that the selection unit is able to search, for a subset of the set of description elements, a travel order of the description elements of the subset for which a prediction of a current element takes the same value for all the possible values of the other elements of the subset that remain to be scanned and, when a browse order has been found, to select the subset.
Procédé de décodage d'une image numérique (Im) à partir d'un train binaire (TB),
ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, le train binaire comprenant des données codées représentatives d'éléments de description des blocs de l'image, ledit procédé comprenant les étapes suivantes, mises en œuvre pour un bloc (C), dit bloc courant : Method for decoding a digital image (Im) from a bit stream (TB), said image being divided into a plurality of processed blocks in a defined order, the bit stream including coded data representative of picture block description elements, said method comprising the following steps implemented for a block (C ), said current block:
Sélection (D2) d'un sous-ensemble (SE) d'éléments de description du bloc courant à prédire (PED) parmi un ensemble d'éléments de description du bloc ; Décodage (Dl) des éléments de description non sélectionnés du bloc courant à partir de données codées extraites du train binaire; Selection (D2) of a subset (SE) of description elements of the current block to be predicted (PED) from among a set of description elements of the block; Decoding (D1) of the unselected description elements of the current block from encoded data extracted from the bit stream;
Prédiction (D3) des valeurs des éléments de description du sous-ensemble sélectionné; Prediction (D3) of the values of the description elements of the selected subset;
Décodage (D4) de valeurs d'indicateurs de prédiction (IP) des éléments de description sélectionnés à partir de données codées extraites du train binaire, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : Decoding (D4) prediction indicator (IP) values of the selected description elements from encoded data extracted from the bit stream, the flag being for taking a value in a group comprising:
a. une première valeur représentative d'une prédiction correcte ; at. a first value representative of a correct prediction;
b. une deuxième valeur représentative d'une prédiction incorrecte ; b. a second value representative of an incorrect prediction;
- Calcul (D5) des valeurs décodées des éléments de description du sous-ensemble sélectionné à partir des valeurs d'indicateurs de prédiction décodées ; Calculating (D5) the decoded values of the description elements of the subset selected from the decoded prediction indicator values;
Reconstruction (D6) du bloc courant à partir des valeurs décodées de l'ensemble des éléments de description ; ledit procédé étant caractérisé en ce que l'étape de sélection (D2) recherche, pour un sous-ensemble de l'ensemble d'éléments de description, un ordre de parcours des éléments de description du sous-ensemble pour lequel une prédiction d'un élément courant prend la même valeur pour toutes les valeurs possibles des autres éléments du sous-ensemble qui restent à parcourir et sélectionne le sous- ensemble, lorsqu'un ordre de parcours a été trouvé. Reconstruction (D6) of the current block from the decoded values of the set of description elements; said method being characterized in that the selection step (D2) searches, for a subset of the set of description elements, a browse order of the description elements of the subset for which a prediction of a current element takes the same value for all the possible values of the other elements of the subset that remain to be browsed and selects the subset, when a browse order has been found.
Procédé de décodage d'une image numérique selon la revendication 7, caractérisé en ce que l'étape de sélection (D2) comprend au moins une itération d'une séquence de sous-étapes comprenant, pour une itération :
Identification (D22) d'un élément de description dans le sous-ensemble, tel que la valeur de prédiction est indépendante des valeurs des autres éléments de description du sous-ensemble ; Method for decoding a digital image according to claim 7, characterized in that the selection step (D2) comprises at least one iteration of a sequence of substeps comprising, for an iteration: Identifying (D22) a description element in the subset, such that the prediction value is independent of the values of the other description elements of the subset;
Construction (D24) d'une séquence (Seq) d'éléments de description par concaténation de l'élément de description identifié à la fin de la séquence; Constructing (D24) a sequence (Seq) of description elements by concatenating the description element identified at the end of the sequence;
Mise à jour (D25) du sous-ensemble par suppression de l'élément de description identifié ; Updating (D25) the subset by deleting the identified description element;
La séquence de sous-étapes étant itérée pour le sous-ensemble mis à jour, tant que la sous-étape d'identification mise en œuvre au cours de l'itération courante a identifié au moins un élément de description. The sequence of substeps is iterated for the updated subset, as long as the identification substep implemented during the current iteration has identified at least one description element.
Procédé de décodage d'une image numérique (Im) à partir d'un train binaire (TB) comprenant des données codées représentatives de ladite image selon la revendication 8, caractérisé en ce que ladite étape (D2) de sélection d'un sous- ensemble d'éléments de description comprend une sous-étape (D21) de définition d'un sous-ensemble initial (SEI) de l'ensemble d'éléments de description, un élément de description étant intégré au sous-ensemble initial, en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, et en ce que la première itération des sous-étapes est mise en œuvre pour le sous-ensemble initial (SEI). A method of decoding a digital image (Im) from a bit stream (TB) comprising encoded data representative of said image according to claim 8, characterized in that said step (D2) of selecting a sub-frame set of description elements includes a subset (D21) of initial subset definition (SEI) of the set of description elements, a description element being integrated with the initial subset, based on a predetermined score associated with a coding context of the description element, said score being representative of a reliability level of the prediction of the description element, and in that the first iteration of the substeps is implementation for the initial subset (SEI).
10. Procédé de décodage d'une image numérique selon l'une des revendications 8 ou 9, caractérisé en ce que, lorsqu'à la suite de la dernière itération de la séquence de sous-étapes, la séquence (Seq) construite ne comprend pas tous les éléments du sous-ensemble initial, l'étape de sélection (D2) comprend en outre une sous-étape (D29) de restriction du sous-ensemble initial par suppression d'au moins un élément de description, en fonction en fonction d'un score prédéterminé associé à un contexte de codage de l'élément de description, ledit score étant représentatif d'un niveau de fiabilité de la prédiction de l'élément de description, une sous-étape (D211) de décodage de l'élément de description supprimé à l'aide de données codées extraites
du train binaire et en ce que l'itération suivante de la séquence de sous-étapes est appliquée au sous-ensemble initial restreint. 10. The method of decoding a digital image according to one of claims 8 or 9, characterized in that, after the last iteration of the sequence of substeps, the sequence (Seq) constructed does not include not all the elements of the initial subset, the selection step (D2) further comprises a sub-step (D29) for restricting the initial subset by deleting at least one description element, depending on a predetermined score associated with a coding context of the description element, said score being representative of a reliability level of the prediction of the description element, a substep (D211) for decoding the description element, deleted description element using extracted coded data of the bit stream and that the next iteration of the substep sequence is applied to the restricted initial subset.
11. Procédé de décodage d'une image numérique selon l'une des revendications 7 à 9, caractérisé en ce qu'un élément de description des données du bloc appartient à un groupe comprenant au moins : 11. The method of decoding a digital image according to one of claims 7 to 9, characterized in that a data description element of the block belongs to a group comprising at least:
- Un mode de prédiction du bloc courant ; - A prediction mode of the current block;
- Un mode de prédiction du vecteur mouvement estimé pour le bloc courant ; A mode of prediction of the motion vector estimated for the current block;
- Un mode de codage du bloc courant ; - A coding mode of the current block;
- Une valeur d'un coefficient d'un résidu du bloc courant ; A value of a coefficient of a residual of the current block;
- Une information représentative d'une signifiance de la valeur du coefficient ; et - information representative of a significance of the value of the coefficient; and
- Un signe du coefficient. - A sign of the coefficient.
12. Dispositif (200) de décodage d'une image numérique (ID) à partir d'un train binaire (TB), ladite image étant divisée en une pluralité de blocs traités dans un ordre défini, le train binaire comprenant des données codées représentatives d'éléments de description des blocs de l'image, ledit dispositif comprenant les unités suivantes, aptes à être mises en œuvre pour un bloc (C), dit bloc courant : A device (200) for decoding a digital image (ID) from a bit stream (TB), said image being divided into a plurality of processed blocks in a defined order, the bit stream comprising representative encoded data elements of description of the blocks of the image, said device comprising the following units, which can be implemented for a block (C), called current block:
Sélection (SEL') d'un sous-ensemble (SE) d'éléments de description du bloc courant à prédire (PED) parmi un ensemble d'éléments de description du bloc ; - Décodage (DEC NPED) des éléments de description non sélectionnés du bloc courant à partir de données codées extraites du train binaire; Selection (SEL ') of a subset (SE) of description elements of the current block to be predicted (PED) from among a set of description elements of the block; Decoding (DEC NPED) the non-selected description elements of the current block from coded data extracted from the bit stream;
Prédiction (PRED') des valeurs des éléments de description du sous-ensemble sélectionné; Prediction (PRED ') of the values of the description elements of the selected subset;
Décodage (DEC IP) de valeurs d'indicateurs de prédiction (IP) des éléments de description sélectionnés à partir de données codées extraites du train binaire, l'indicateur étant destiné à prendre une valeur dans un groupe comprenant : Decoding (DEC IP) of prediction indicator (IP) values of the selected description elements from encoded data extracted from the bit stream, the flag being for taking a value in a group comprising:
c. une première valeur représentative d'une prédiction correcte ; vs. a first value representative of a correct prediction;
d. une deuxième valeur représentative d'une prédiction incorrecte ; d. a second value representative of an incorrect prediction;
- Calcul (CALC ED') des valeurs décodées des éléments de description du sous- ensemble sélectionné à partir des valeurs prédites des éléments de description et des valeurs d'indicateurs de prédiction décodées ;
Reconstruction (RECONST) du bloc courant à partir des valeurs décodées de l'ensemble des éléments de description ; ledit dispositif étant caractérisé en ce que l'unité de sélection (SEL') est apte à rechercher, pour un sous-ensemble de l'ensemble d'éléments de description, un ordre de parcours des éléments de description du sous-ensemble pour lequel une prédiction d'un élément courant prend la même valeur pour toutes les valeurs possibles des autres éléments du sous-ensemble qui restent à parcourir et, lorsqu'un ordre de parcours a été trouvé, à sélectionner le sous-ensemble. Calculating (CALC ED ') the decoded values of the description elements of the selected subset from the predicted values of the description elements and the decoded prediction indicator values; Reconstruction (RECONST) of the current block from the decoded values of all the description elements; said device being characterized in that the selection unit (SEL ') is able to search, for a subset of the set of description elements, a running order of the description elements of the subset for which a prediction of a current element takes the same value for all the possible values of the other elements of the subset that remain to be scanned and, when a browse order has been found, to select the subset.
13. Signal portant un train binaire (TB) comprenant des données codées représentatives d'éléments de description de blocs de pixels d'une image numérique, lesdits blocs de pixels étant traités dans un ordre défini, caractérisé en ce que lesdites données codées sont obtenues conformément au procédé de codage selon l'une des revendications 1 à 5. A signal carrying a bit stream (TB) comprising encoded data representative of pixel block description elements of a digital image, said pixel blocks being processed in a defined order, characterized in that said encoded data is obtained according to the coding method according to one of claims 1 to 5.
14. Terminal d'utilisateur (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 12. 14. User terminal (TU) characterized in that it comprises a coding device of a digital image according to claim 6 and a device for decoding a digital image according to claim 12.
15. 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. Computer program comprising instructions for implementing the method of coding a digital image according to one of claims 1 to 5, when executed by a processor.
16. 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 à 11, lorsqu'il est exécuté par un processeur.
16. A computer program comprising instructions for implementing the method of decoding a digital image according to one of claims 7 to 11, when executed by a processor.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1462889A FR3030975B1 (en) | 2014-12-19 | 2014-12-19 | DIGITAL IMAGE ENCODING METHOD, DECODING METHOD, DEVICES, USER TERMINAL, AND ASSOCIATED COMPUTER PROGRAMS |
FR1462889 | 2014-12-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2016097556A1 true WO2016097556A1 (en) | 2016-06-23 |
Family
ID=53059199
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2015/053470 WO2016097556A1 (en) | 2014-12-19 | 2015-12-14 | Method for encoding a digital image, decoding method, devices, user terminal and computer programs for same |
Country Status (2)
Country | Link |
---|---|
FR (1) | FR3030975B1 (en) |
WO (1) | WO2016097556A1 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0790742A2 (en) * | 1996-02-19 | 1997-08-20 | Fuji Xerox Co., Ltd. | Predictive image coding and decoding system |
US20090097558A1 (en) * | 2007-10-15 | 2009-04-16 | Qualcomm Incorporated | Scalable video coding techniques for scalable bitdepths |
EP2290990A1 (en) * | 2002-05-28 | 2011-03-02 | Sharp Kabushiki Kaisha | Method and systems for image intra-prediction mode estimation, communication, and organization |
WO2011150128A1 (en) * | 2010-05-25 | 2011-12-01 | Vidyo, Inc. | Systems and methods for scalable video communication using multiple cameras and multiple monitors |
US20130044808A1 (en) * | 2010-02-12 | 2013-02-21 | Fujitsu Limited | Image encoding device and image decoding device |
-
2014
- 2014-12-19 FR FR1462889A patent/FR3030975B1/en not_active Expired - Fee Related
-
2015
- 2015-12-14 WO PCT/FR2015/053470 patent/WO2016097556A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0790742A2 (en) * | 1996-02-19 | 1997-08-20 | Fuji Xerox Co., Ltd. | Predictive image coding and decoding system |
EP2290990A1 (en) * | 2002-05-28 | 2011-03-02 | Sharp Kabushiki Kaisha | Method and systems for image intra-prediction mode estimation, communication, and organization |
US20090097558A1 (en) * | 2007-10-15 | 2009-04-16 | Qualcomm Incorporated | Scalable video coding techniques for scalable bitdepths |
US20130044808A1 (en) * | 2010-02-12 | 2013-02-21 | Fujitsu Limited | Image encoding device and image decoding device |
WO2011150128A1 (en) * | 2010-05-25 | 2011-12-01 | Vidyo, Inc. | Systems and methods for scalable video communication using multiple cameras and multiple monitors |
Non-Patent Citations (6)
Title |
---|
ISO/IEC 23008-2:2013 - HIGH EFFICIENCY CODING AND MEDIA DELIVERY IN HETEROGENEOUS ENVIRONMENTS -- PART 2: HIGH EFFICIENCY VIDEO CODING, November 2013 (2013-11-01) |
KAZUI (FUJITSU) K ET AL: "Video coding technology proposal by Fujitsu", 1. JCT-VC MEETING; 15-4-2010 - 23-4-2010; DRESDEN; (JOINTCOLLABORATIVE TEAM ON VIDEO CODING OF ISO/IEC JTC1/SC29/WG11 AND ITU-TSG.16 ); URL: HTTP://WFTP3.ITU.INT/AV-ARCH/JCTVC-SITE/,, no. JCTVC-A115, 12 April 2010 (2010-04-12), XP030007555, ISSN: 0000-0049 * |
KOYAMA J ET AL: "Coefficient sign bit compression in video coding", 2012 PICTURE CODING SYMPOSIUM (PCS 2012) : KRAKOW, POLAND, 7 - 9 MAY 2012 ; [PROCEEDINGS], IEEE, PISCATAWAY, NJ, 7 May 2012 (2012-05-07), pages 385 - 388, XP032449909, ISBN: 978-1-4577-2047-5, DOI: 10.1109/PCS.2012.6213370 * |
KOYAMA, J ET AL.: "Coefficient sign bit compression in video coding", PICTURE CODING SYMPOSIUM (PCS, May 2012 (2012-05-01) |
MINGJING AI ET AL: "<title>A novel intra prediction framework for H.264/AVC using macroblock-groups with optimized prediction order</title>", PROCEEDINGS OF SPIE, vol. 7497, 30 October 2009 (2009-10-30), pages 74970Q - 74970Q-7, XP055088078, ISSN: 0277-786X, DOI: 10.1117/12.832929 * |
SOLE ET AL.: "Transform Coefficient Coding in HEVC", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, vol. 22, no. 12, December 2012 (2012-12-01), pages 1765 - 1777 |
Also Published As
Publication number | Publication date |
---|---|
FR3030975B1 (en) | 2018-03-09 |
FR3030975A1 (en) | 2016-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3183879A1 (en) | Method for encoding a digital image, and associated decoding method, devices and computer programmes | |
EP2985998B1 (en) | Recording medium storing coded image data | |
EP3716623A1 (en) | Method of decoding images | |
EP2932714B1 (en) | Method of coding and decoding images, device for coding and decoding and computer programs corresponding thereto | |
WO2017115028A1 (en) | Method for encoding a digital image and associated decoding method, devices, user terminal and computer programs | |
FR3040578A1 (en) | IMAGE ENCODING AND DECODING METHOD, IMAGE ENCODING AND DECODING DEVICE AND CORRESPONDING COMPUTER PROGRAMS | |
EP3646597B1 (en) | Method for decoding an image, coding method, devices, terminal equipment and computer programs associated therewith | |
EP3632103B1 (en) | Methods and devices for coding and decoding a data stream representative of at least one image | |
EP3520416B1 (en) | Method for encoding an image and associated decoding method, devices, terminal equipment and computer programs | |
WO2016097556A1 (en) | Method for encoding a digital image, decoding method, devices, user terminal and computer programs for same | |
EP3409016A1 (en) | Method for encoding and decoding data, device for encoding and decoding data, and corresponding computer programs | |
WO2018020100A1 (en) | Method for decoding an image, and associated coding method, devices, terminal unit and computer programs | |
EP3456045B1 (en) | Methods and devices for coding and decoding a data stream representative of at least one image | |
WO2024121109A1 (en) | Method and device for coding and decoding images | |
WO2013007920A1 (en) | Method of coding and decoding images, device for coding and decoding and computer programs corresponding thereto |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 15823643 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 15823643 Country of ref document: EP Kind code of ref document: A1 |