Image decoding procedure, image decoding device, and corresponding software

ES3073685T3Undetermined Publication Date: 2026-07-14DOLBY INTERNATIONAL AB (100 00)

Patent Information

Authority / Receiving Office
ES · ES
Patent Type
Patents
Current Assignee / Owner
DOLBY INTERNATIONAL AB (100 00)
Filing Date
2012-11-06
Publication Date
2026-07-14

AI Technical Summary

Technical Problem

Current video encoding techniques, such as H.264, inefficiently encode motion vector predictor information, leading to suboptimal data reduction and compression efficiency due to non-optimal handling of parity-based encoding and modification of residual blocks, causing signal disturbances and increased data transmission.

Method used

A method for encoding and decoding digital images that avoids encoding the sign of specific data points or coefficients, utilizing parity-based conventions to embed motion vector predictor information without explicit signaling, optimizing entropy coding by modifying coefficients to maintain signal integrity and reduce data transmission.

Benefits of technology

Enhances video compression efficiency by reducing data transmission overhead and maintaining signal integrity, improving the overall performance of video encoding and decoding processes.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000018_0000
    Figure 00000018_0000
  • Figure 00000018_0001
    Figure 00000018_0001
  • Figure 00000019_0000
    Figure 00000019_0000
Patent Text Reader

Abstract

The invention relates to a method for encoding at least one partitioned image, a current partition to be encoded containing data, assigning a sign to at least one piece of data. [0002] Said encoding method is characterized in that it implements, for said current partition, the following steps: - calculation (S3) of the value of a function representing the data of said current partition excluding said sign, - comparison (S4) of said calculated value with a predetermined value of said sign, - depending on the result of said comparison, modification (S5) or not of at least one of the data of the current partition, - in case of modification, encoding (S20) of said at least one piece of data modified.
Need to check novelty before this filing date? Find Prior Art

Description

Domaine de l'invention

[0001] The present invention relates generally to the field of image processing, and more specifically to the encoding and decoding of digital images and sequences of digital images.

[0002] The invention can thus, in particular, be applied to video coding implemented in current (MPEG, H.264, etc.) or future (ITU-T / VCEG (H.265) or ISO / MPEG (HEVC) video encoders). Arrière-plan de l'invention

[0003] Current video encoders (MPEG, H.264, etc.) use a block representation of the video sequence. Images are divided into macroblocks, each macroblock is further divided into blocks, and each block, or macroblock, is encoded by intra-frame or inter-frame prediction. Thus, some images are encoded by spatial prediction (intra-frame prediction), while other images are encoded by temporal prediction (inter-frame prediction) relative to one or more encoded-decoded reference images, using motion compensation known to those skilled in the art.

[0004] For each block, a residual block, also called the prediction residual, is encoded. This residual block corresponds to the original block minus one prediction. The residual blocks are transformed using a discrete cosine transform (DCT) and then quantized using a scalar quantization method. The quantization step yields coefficients, some positive and some negative. These coefficients are then processed in a generally zigzag reading order (as in the JPEG standard), which allows the large number of zero coefficients at high frequencies to be exploited. After this processing, a one-dimensional list of coefficients is obtained, which is called the "quantized residual." The coefficients in this list are then encoded using entropy coding.

[0005] Entropy coding (e.g., arithmetic coding or Huffman coding) is performed as follows: Information is entropically coded to indicate the location of the last non-zero coefficient in the list; for each coefficient located before the last non-zero coefficient, information is entropically coded to indicate whether the coefficient is zero or not; for each non-zero coefficient not equal to one located before the last non-zero coefficient, amplitude information (absolute value of the coefficient minus two) is entropically coded; for each non-zero coefficient, the sign assigned to it is coded by a '0' (for the + sign) or a '1' (for the - sign).

[0006] According to the H.264 technique, for example, when a macroblock is divided into blocks, a data signal corresponding to each block is transmitted to the decoder. Such a signal includes: the quantified residuals contained in the aforementioned list, information representative of the coding mode used, in particular: the prediction mode (intra-prediction, inter-prediction, default prediction making a prediction for which no information is transmitted to the decoder ("in English "skip")); information specifying the type of prediction (orientation, reference image, ...); the type of partitioning; the type of transform, for example DCT 4x4, DCT 8x8, etc... motion information if necessary; etc.

[0007] Decoding is performed frame by frame, and for each frame, macroblock by macroblock. For each partition of a macroblock, the corresponding elements of the stream are read. Inverse quantization and inverse transformation of the block coefficients are performed to produce the decoded prediction residual. Then, the partition prediction is calculated, and the partition is reconstructed by adding the prediction to the decoded prediction residual.

[0008] Intra- or inter-competitive coding, as implemented in the H.264 standard, is based on the competition of different coding information such as those mentioned above, in order to select the best mode, that is to say the one which will optimize the coding of the partition considered according to a predetermined performance criterion, for example the well-known bit rate / distortion cost to the person skilled in the art.

[0009] Information representing the selected encoding mode is contained in the data signal transmitted by the encoder to the decoder. The decoder is thus able to identify the encoding mode selected by the encoder, and then apply the prediction corresponding to that mode.

[0010] In the document "Data Hiding of Motion Information in Chroma and Luma Samples for Video Compression", J.-M. Thiesse, J. Jung and M. Antonini, International workshop on multimedia signal processing, 2011, a data hiding process (English translation of "Data Hiding") implemented during video compression is presented.

[0011] More specifically, it is proposed to avoid including in the signal transmitted to the decoder at least one competition index resulting from a plurality of competition indices to be transmitted. Such an index is, for example, the MVComp index, which represents information allowing the identification of the motion vector predictor used for a block predicted in Inter mode. This index, which can be 0 or 1, is not directly embedded in the encoded data signal, but is carried by the parity of the sum of the coefficients of the quantized residual. An association is created between the parity of the quantized residual and the MVComp index. For example, an even value of the quantized residual is associated with an MVComp index of 0, while an odd value of the quantized residual is associated with an MVComp index of 1. Two cases can arise.In the first case, if the parity of the quantized residual already matches that of the MVComp index to be transmitted, the quantized residual is coded conventionally. In the second case, if the parity of the quantized residual differs from that of the MVComp index to be transmitted, the quantized residual is modified so that its parity matches that of the MVComp index. This modification involves incrementing or decrementing one or more coefficients of the quantized residual by an odd value (e.g., +1, -1, +3, -3, +5, -+5, etc.) and retaining only the modification that optimizes a predetermined criterion, in this case, the aforementioned throughput-distortion cost.

[0012] At the decoder, the MVComp index is not read from the signal. The decoder simply determines the residual in the usual way. If the value of this residual is even, the MVComp index is set to 0. If the value of this residual is odd, the MVComp index is set to 1.

[0013] In accordance with the technique just described, the coefficients that undergo modification are not always optimally chosen, so the applied modification causes disturbances in the signal transmitted to the decoder. Such disturbances inevitably impair the efficiency of the video compression.

[0014] Furthermore, the MVComp index is not the most valuable information to hide because the probabilities of this index being equal to 0 or 1 are not equal. Consequently, if this index is encoded conventionally using entropy coding, it will be represented in the compressed file sent to the decoder by less than one bit of data per transmitted MVComp index. Therefore, if the MVComp index is transmitted at the parity of the quantized residual, the amount of data thus saved is less than one bit per MVComp index, whereas the parity of the residual could allow for the transmission of one bit of information per index.

[0015] Therefore, the reduction in signaling cost, as well as the efficiency of compression, are not optimal. Obiet et résumé de l'invention

[0016] One of the aims of the invention is to remedy some of the drawbacks of the aforementioned prior art.

[0017] For this purpose, an object of the present invention relates to a device for decoding a data signal according to claim 1.

[0018] Correspondingly, the invention relates to a method for decoding a data signal according to claim 5.

[0019] The invention also relates to a computer program comprising instructions for executing the steps of the decoding process according to claim 5-8. Brève description des dessins

[0020] Other features and advantages will become apparent upon reading two preferred embodiments described with reference to the figures in which: there figure 1 represents the general steps of the coding process according to the invention, the figure 2 represents a coding device according to the invention which is capable of performing the steps of the coding process of the figure 1 , there figure 3 represents a particular embodiment of the coding process according to the invention, the figure 4 represents a particular embodiment of a coding device according to the invention, the figure 5 represents the general steps of the decoding process according to the invention, the figure 6 represents a decoding device according to the invention which is capable of performing the steps of the decoding process of the figure 5 , there figure 7 represents a particular embodiment of the decoding process according to the invention, the figure 8 represents a particular embodiment of a decoding device according to the invention. Description détaillée de la partie codage

[0021] A general embodiment of the invention will now be described, in which the coding method according to the invention is used to encode a sequence of images according to a bitstream close to that obtained by encoding according to the H.264 / MPEG-4 AVC standard. In this embodiment, the coding method according to the invention is, for example, implemented in software or hardware by modifying an encoder initially conforming to the H.264 / MPEG-4 AVC standard.

[0022] The coding method according to the invention is represented in the form of an algorithm comprising steps S1 to S40, shown in the figure 1 .

[0023] According to the embodiment of the invention, the coding method according to the invention is implemented in a coding device or CO encoder, one embodiment of which is shown in the figure 2 .

[0024] According to the invention, prior to the actual coding, an image IE of a sequence of images to be coded in a predetermined order is partitioned into a plurality Z of partitions B1, B2, ..., Bi, ..., BZ, as shown in the figure 2 .

[0025] It should be noted that, for the purposes of this invention, the term "partition" means coding unit. This terminology is notably used in the HEVC / H.265 standard currently under development, for example in the document accessible at the following internet address: http: / / phenix.int-evry.fr / ict / doc end user / current document.php?id=3286

[0026] In particular, such a coding unit groups together sets of pixels of rectangular or square shape, also called blocks, macroblocks, or sets of pixels with other geometric shapes.

[0027] In the example shown on the figure 2 ,These partitions are blocks that are square in shape and all the same size. Depending on the image size, which is not necessarily a multiple of the block size, the last blocks on the left and the last blocks at the bottom may not be square. In an alternative embodiment, the blocks may, for example, be rectangular and / or not aligned with each other.

[0028] Each block or macroblock can also be divided into sub-blocks which are themselves subdivisible.

[0029] Such partitioning is performed by a PCO partitioning module represented at the figure 2 which uses, for example, a partitioning algorithm that is well known as such.

[0030] Following the aforementioned cutting step, each of the current partitions B i (i being an integer such that 1≤i≤Z) of said IE image is encoded.

[0031] In the example shown on the figure 2 Such coding is applied successively to each of the blocks B1 to BZ of the current IE image. The blocks are coded according to, for example, a path such as the "raster scan" path well known to those skilled in the art.

[0032] The coding according to the invention is implemented in a software module MC_CO coding of the CO encoder, as shown in the figure 2 .

[0033] During a step S1 represented at the figure 1 , the MC_CO coding module of the figure 2 selects as current block B i the first block B 1 to be encoded in the current image IE. As shown in the figure 2 , This is the first block on the left of the IE image.

[0034] During a step S2 represented at the figure 1 ,Data is extracted from the current block B1 in the form of a list D1 = (a1, a2, ..., aP). This extraction is performed by a software module of EX_CO as shown in the diagram. figure 2 . Such data includes, for example, pixel data, with each non-zero pixel data being assigned either a positive sign or a negative sign.

[0035] Each data item in list D1 is associated with different numerical information intended to undergo entropy coding. Such numerical information is described below as an example. for each data point located before the last non-zero data point in the list D 1 , a digital piece of information, such as a bit, is intended to be entropically encoded to indicate whether the data point is zero or not: if the data point is zero, for example the bit with the value 0 will be encoded, while if the data point is non-zero, the bit with the value 1 will be encoded; for each non-zero data point, a digital piece of information, such as a bit, is intended to be entropically encoded to indicate whether the absolute value of the data point is equal to one or not: if it is equal to 1, for example the bit with the value 1 will be encoded, while if it is equal to 0, the bit with the value 0 will be encoded;For each non-zero data point whose absolute value is not equal to one and which is located before the last non-zero data point, an amplitude information is entropically coded; for each non-zero data point, the sign assigned to it is coded by a numerical information, such as a bit set to '0' (for the + sign) or to '1' (for the - sign).

[0036] We will now describe, with reference to the figure 1 , the specific coding steps according to the invention.

[0037] In accordance with the invention, it is decided to avoid entropically coding at least one sign of one of the said data from list D 1.

[0038] According to the preferred embodiment, it is the sign of the first non-zero data point that is intended to be hidden. Such a sign is, for example, positive and assigned to the first non-zero data point, such as the data point a 2.

[0039] During an S3 step represented at the figure 1 , The MTR_CO processing module calculates the value of a function f which is representative of the data in list D 1.

[0040] In the preferred embodiment where only one sign is intended to be hidden in the signal to be transmitted to the decoder, the function f is the parity of the sum of the data in list D 1.

[0041] During an S4 step represented at the figure 1 , The MTR_CO processing module checks if the parity of the value of the sign to be hidden corresponds to the parity of the sum of the data in list D 1, according to a convention defined beforehand in the CO encoder.

[0042] In the example given, the said convention is such that a positive sign is associated with a bit with a value equal to zero, while a negative sign is associated with a bit with a value equal to one.

[0043] If, according to the convention adopted in the CO encoder according to the invention, the sign is positive, which corresponds to a zero encoding bit value, and the sum of the data in list D1 is even, an entropic encoding step S20 is performed on the data in the aforementioned list D1, with the exception of the sign of the first non-zero data element a2. Such a step S20 is represented in the figure 1 .

[0044] If, according to the convention adopted in the CO encoder according to the invention, the sign is negative, which corresponds to a coding bit value of one, and the sum of the data in list D 1 is odd, the entropic coding of the data in the aforementioned list D 1 is also carried out in step S20, with the exception of the sign of the first non-zero data a 2.

[0045] If, according to the convention adopted in the CO encoder according to the invention, the sign is positive, which corresponds to a coding bit value of zero, and the sum of the data in list D1 is odd, it is carried out, during a step S5 represented on the figure 1 , to a modification of at least one modifiable data item from list D 1.

[0046] If, according to the convention adopted in the CO encoder according to the invention, the sign is negative, which corresponds to a coding bit value of one, and the sum of the data in list D 1 is even, it is also carried out in step S5 to modify at least one modifiable data in list D 1.

[0047] According to the invention, data is modifiable if changing its value does not cause desynchronization in the decoder, once the modified data has been processed by the decoder. Thus, the MTR_CO processing module is initially configured not to modify: the null data point(s) located before the first non-zero data point, so that the decoder does not affect the value of the hidden sign to this or these null data point(s), and for reasons of computational complexity, the null data point(s) located after the last non-zero data point.

[0048] Such a modification operation is performed by the MTR_CO processing module of the figure 2 .

[0049] In the proposed example, the total sum of the data in list D1 is assumed to be 5, and is therefore odd. In order for the decoder to reconstruct the positive sign assigned to the first non-zero data element, a2, without the CO encoder having to transmit this data to the decoder, the parity of the sum must become even. Consequently, the MTR_CO processing module tests, during step S5, various modifications to the data in list D1, all aimed at changing the parity of the sum. In the preferred embodiment, each modifiable data element is incremented by +1 or -1, and a modification is selected from among all those made, according to a predetermined criterion.

[0050] At the end of step S5, a modified list Dm 1 =(a' 1 , a' 2 ,..., a' P is then obtained.

[0051] It should be noted that during this step, certain modifications are prohibited. For example, if the first non-zero data point is +1, it would not be possible to add -1 to it, as this would make it zero and thus lose its characteristic as the first non-zero data point in the list D1. The decoder would then subsequently assign the decoded sign (by calculating the parity of the sum of the data points) to another data point, resulting in a decoding error.

[0052] Next, the S20 step of entropy coding of the data from the aforementioned list Dm 1 is carried out, with the exception of the positive sign of the first non-zero data a 2, which sign is hidden in the parity of the sum of the data.

[0053] It should be noted that the set of amplitudes of the data in the list D 1 or the modified list Dm 1 is coded before the set of signs, excluding the sign of the first non-zero data which is not coded as explained above.

[0054] During a subsequent step S30 represented on the figure 1 , the MC_CO coding module of the figure 2 tests if the current coded block is the last block in the IE image.

[0055] If the current block is the last block of the IE image, during an S40 step represented at the figure 1 , The coding process is terminated.

[0056] If this is not the case, the next block B i is selected and then coded according to the aforementioned raster scan traversal order, by iterating steps S1 to S20, for 1≤i≤Z.

[0057] Once the entropic coding of all blocks B 1 to BZ has been carried out, a signal F is constructed representing, in binary form, the said coded blocks.

[0058] The construction of the binary signal F is implemented in a CF flux construction software module, as shown in the figure 2 .

[0059] The F stream is then transmitted via a communication network (not shown) to a remote terminal. This terminal contains a decoder, which will be described in more detail later.

[0060] We will now describe, primarily with reference to the figure 1 , another embodiment of the invention.

[0061] This other embodiment differs from the previous one only in the number of signs to be hidden, which is N, N being an integer such that N≥2.

[0062] For this purpose, the function f is the remainder modulo 2 N< of the sum of the data in the list D 1 . We assume that in the example given, N=2, the two signs to hide being the first two signs of the first two non-zero data in the list D 1 , for example a 2 and a 3 .

[0063] During step S4, represented in the figure 1 , The MTR_CO processing module checks if the configuration of the N signs, i.e. 2 N< possible configurations, corresponds to the value of the remainder modulo 2 N< of the sum of the data in list D 1.

[0064] In the example given where N=2, there are 2 2< =4 different sign configurations.

[0065] These four configurations follow a convention in the CO encoder, which is determined, for example, in the following way: a remainder equal to zero corresponds to two consecutive positive signs: +, + ; a remainder equal to one corresponds to a consecutive positive sign and a consecutive negative sign: +, - ; a remainder equal to two corresponds to a consecutive negative sign and a consecutive positive sign: -, + ; a remainder equal to three corresponds to two consecutive negative signs: -, -.

[0066] If the configuration of the N signs corresponds to the value of the remainder modulo 2 N< of the sum of the data in list D 1, the entropy coding of the data in the aforementioned list D 1 is carried out in step S20, with the exception of the respective sign of the first two non-zero data a 2 and a 3, which signs are hidden in the parity of the sum modulo 2 N< of the data in list D 1.

[0067] If this is not the case, step S5 is performed to modify at least one modifiable data item from list D1. This modification is carried out by the MTR_CO processing module of the figure 2 in such a way that the remainder modulo 2 N< of the sum of the modifiable data of the list D 1 reaches the value of each of the two signs to be hidden.

[0068] A modified list Dm 1 =(a' 1 , a' 2 ,..., a' P ) is then obtained.

[0069] Next, the S20 step of entropic coding of the data from the aforementioned list Dm 1 is carried out, with the exception of the sign of the first non-zero data a 2 and the sign of the second non-zero data a 3, which signs are hidden in the parity of the sum modulo 2 N< of the data.

[0070] A particular embodiment of the invention will now be described, in which the coding method according to the invention is always used to encode a sequence of images according to a bitstream close to that obtained by encoding according to the H.264 / MPEG-4 AVC standard. In this embodiment, the coding method according to the invention is, for example, implemented in software or hardware by modifying an encoder initially conforming to the H.264 / MPEG-4 AVC standard.

[0071] The coding method according to the invention is represented in the form of an algorithm comprising steps C1 to C40, as shown in the figure 3 .

[0072] According to the embodiment of the invention, the coding process is implemented in a coding device or CO1 encoder, one embodiment of which is shown in the figure 4 .

[0073] In accordance with the invention, and as described in the preceding examples, prior to the actual coding, an image IE of a sequence of images to be coded in a predetermined order is partitioned into a plurality Z of partitions B'1, B'2, ..., B'i, ..., B'Z, as shown in the figure 4 .

[0074] In the example shown on the figure 4 , These partitions are blocks that are square in shape and all the same size. Depending on the image size, which is not necessarily a multiple of the block size, the last blocks on the left and the last blocks at the bottom may not be square. In an alternative embodiment, the blocks may, for example, be rectangular and / or not aligned with each other.

[0075] Each block or macroblock can also be divided into sub-blocks which are themselves subdivisible.

[0076] Such partitioning is performed by a PCO1 partitioning software module represented at the figure 4 which is identical to the PCO partitioning module shown in the figure 2 .

[0077] Following the said slicing step, each of the current partitions B' i (i being an integer such that 1≤i≤Z) of said IE image is encoded.

[0078] In the example shown on the figure 4 , Such coding is applied successively to each of the blocks B' 1 to B' Z of the current IE image. The blocks are coded according to a path such as, for example, the "raster scan" path well known to those skilled in the art.

[0079] The coding according to the invention is implemented in a software coding module MC_CO1 of the CO1 encoder, as shown in the figure 4 .

[0080] During a C1 step represented at the figure 3 , the MC_CO1 coding module of the figure 4 selects as current block B' i the first block B' 1 to be encoded from the current image IE. As shown in the figure 4 , This is the first block on the left of the IE image.

[0081] During a C2 step represented at the figure 3 , Predictive coding of the current block B'1 is performed using known intra- and / or inter-prediction techniques, during which block B'1 is predicted with respect to at least one previously coded and decoded block. Such prediction is performed by a PRED_CO1 prediction software module as shown in the diagram. figure 4 .

[0082] It goes without saying that other intra-prediction modes such as those proposed in the H.264 standard are possible.

[0083] The current block B' 1 can also be subjected to predictive coding in inter-mode, during which the current block is predicted relative to a block from a previously encoded and decoded image. Other types of prediction are, of course, possible. Among the possible predictions for a current block, the optimal prediction is chosen according to a data rate-distortion criterion well known to those skilled in the art.

[0084] The aforementioned predictive coding step constructs a predicted block B'p 1, which is an approximation of the current block B' 1. The information related to this predictive coding is intended to be embedded in a signal to be transmitted to the decoder. This information includes, in particular, the type of prediction (inter- or intra-block), and, where applicable, the intra-block prediction mode, the type of partitioning of a block or macroblock if it has been subdivided, the reference image index, and the displacement vector used in the inter-block prediction mode. This information is compressed by the CO1 encoder.

[0085] During a subsequent step C3 represented at the figure 3 ,The PRED_CO1 prediction module compares the data relating to the current block B' 1 with the data of the predicted block B'p 1. More precisely, during this step, the predicted block B'p 1 is classically subtracted from the current block B' 1 to produce a residual block B'r 1.

[0086] During a subsequent step C4 represented at the figure 3 , The residual block B'r 1 is transformed using a standard direct transformation operation, such as a discrete cosine transformation (DCT), to produce a transformed block B't 1. This operation is performed by a software transformation module MT_CO1, as shown. figure 4 .

[0087] During a subsequent step C5 represented at the figure 3 ,The transformed block B't 1 is quantized using a conventional quantization operation, such as scalar quantization. This yields a block B'q 1 of quantized coefficients. This step is performed using a quantization software module MQ_CO1, as shown in the diagram. figure 4 .

[0088] During a subsequent step C6 represented at the figure 3 , The quantified coefficients of block B'q 1 are traversed in a predefined order. In the example shown, this is a classic zigzag traversal. This step is performed by a software reading module ML_CO1, as shown in the... figure 4 .At the end of step C6, a one-dimensional list E1 = (ε1, ε2, ..., εL) of coefficients is obtained, more commonly known as the "quantized residual," where L is an integer greater than or equal to 1. Each coefficient in the list E1 is associated with different numerical information intended for entropy coding. Such numerical information is described below as an example.

[0089] Suppose that in the example shown, L=16 and that the list E 1 contains the following sixteen coefficients: E 1 =(0, +9, -7, 0, 0, +1, 0, -1, +2, 0, 0, +1, 0, 0, 0, 0).

[0090] In this case: For each coefficient located before the last non-zero coefficient in list E 1, a digital piece of information, such as a bit, is intended to be entropically coded to indicate whether the coefficient is zero or not: if the coefficient is zero, for example, the bit with the value 0 will be coded, while if the coefficient is non-zero, the bit with the value 1 will be coded; for each non-zero coefficient +9, -7, +1, -1, +2, +1, a digital piece of information, such as a bit, is intended to be entropically coded to indicate whether the absolute value of the coefficient is equal to one or not: if it is equal to 1, for example, the bit with the value 1 will be coded, while if it is equal to 0, the bit with the value 0 will be coded;For each non-zero coefficient whose absolute value is not equal to one and which is located before the last non-zero coefficient, such as the coefficients with values ​​of +9, -7, +2, an amplitude information (absolute value of the coefficient from which the value two is subtracted) is entropically coded; for each non-zero coefficient, the sign assigned to it is coded by a digital information, such as a bit set to '0' (for the + sign) or to '1' (for the - sign).

[0091] We will now describe, with reference to the figure 3 , the specific coding steps according to the invention.

[0092] In accordance with the invention, it is decided to avoid entropically encoding at least one of the aforementioned numerical information, which is at least a sign of one of the said coefficients from list E 1.

[0093] To this end, during a step C7 represented at the figure 3 ,The number of symbols to be hidden is selected during the subsequent entropy coding step. This step is performed by an MTR_CO1 processing software module, as shown in the diagram. figure 4 .

[0094] In the preferred embodiment, the number of signs to be hidden is one or zero. Furthermore, according to said preferred embodiment, it is the sign of the first non-zero coefficient that is intended to be hidden. In the example shown, this means hiding the sign of the coefficient ε2=+9.

[0095] In an alternative embodiment, the number of signs to be hidden is either zero, one, two, three, or more.

[0096] In accordance with the preferred embodiment of step C7, it is carried out, during a first substep C71 represented in the figure 3 ,to the determination, from said list E 1, of a sublist SE 1 containing coefficients capable of being modified ε'1, ε'2,..., ε'M where M <L. De tels coefficients seront appelés coefficients modifiables dans la suite de la description.

[0097] According to the invention, a coefficient is modifiable if changing its quantified value does not cause desynchronization in the decoder, once the modified coefficient has been processed by the decoder. Thus, the MTR_CO1 processing module is initially configured not to modify: the zero coefficient(s) located before the first non-zero coefficient, so that the decoder does not affect the value of the hidden sign to this or these zero coefficient(s), and for reasons of computational complexity, the zero coefficient(s) located after the last non-zero coefficient.

[0098] In the example shown, at the end of substep C71, the resulting sublist SE 1 is such that SE 1 = (9,-7,0,0,1,0,-1,2,0,0,1). Consequently, eleven modifiable coefficients are obtained.

[0099] During a subsequent substep C72 represented at the figure 3 , The MTR_CO1 processing module compares the number of modifiable coefficients with a predetermined threshold TSIG. In the preferred embodiment, TSIG is 4.

[0100] If the number of modifiable coefficients is less than the TSIG threshold, a step C20, represented in the figure 3 , to a classic entropic coding of the coefficients of list E 1, such as that carried out for example in a CABAC encoder, designated by the reference CE_CO1 on the figure 4 . For this purpose, the sign of each non-zero coefficient in list E 1 is entropically coded.

[0101] If the number of modifiable coefficients exceeds the TSIG threshold, during a C8 step represented in the figure 3 , The MTR_CO1 processing module calculates the value of a function f which is representative of the coefficients of the sublist SE 1.

[0102] In the preferred embodiment where only one sign is intended to be hidden in the signal to be transmitted to the decoder, the function f is the parity of the sum of the coefficients of the sublist SE 1.

[0103] During a C9 step represented at the figure 3 , The MTR_CO1 processing module checks if the parity of the value of the sign to be hidden corresponds to the parity of the sum of the coefficients of the sublist SE 1, according to a convention defined beforehand in the CO1 encoder.

[0104] In the example given, the said convention is such that a positive sign is associated with a bit with a value equal to zero, while a negative sign is associated with a bit with a value equal to one.

[0105] If, according to the convention adopted in the CO1 encoder according to the invention, the sign is positive, which corresponds to a coding bit value of zero, and the sum of the coefficients of the sublist SE 1 is even, the entropic coding of the coefficients of the aforementioned list E 1 is carried out in step C20, with the exception of the sign of the coefficient ε2.

[0106] If, according to the convention adopted in the CO1 encoder according to the invention, the sign is negative, which corresponds to a coding bit value of one, and the sum of the coefficients of the sublist SE 1 is odd, the entropic coding of the coefficients of the aforementioned list E 1 is also carried out in step C20, with the exception of the sign of the coefficient ε2.

[0107] If, according to the convention adopted in the CO1 encoder according to the invention, the sign is positive, which corresponds to a coding bit value of zero, and the sum of the coefficients of sublist SE 1 is odd, it is carried out, during a step C10 represented on the figure 3 , to a modification of at least one modifiable coefficient of sublist SE 1.

[0108] If, according to the convention adopted in the CO1 encoder according to the invention, the sign is negative, which corresponds to a coding bit value of one, and the sum of the coefficients of the sublist SE 1 is even, it is also carried out in step C10 to modify at least one modifiable coefficient of the sublist SE 1.

[0109] Such a modification operation is performed by the MTR_CO1 processing module of the figure 4 .

[0110] In the example embodiment where SE1 = (+9, -7, 0, 0, +1, 0, -1, +2, 0, 0, +1), the total sum of the coefficients is equal to 5, and is therefore odd. In order for the decoder to reconstruct the positive sign assigned to the first non-zero coefficient, ε2 = +9, without the CO1 encoder having to transmit this coefficient to the decoder, the parity of the sum must become even. Consequently, the MTR_CO1 processing module tests, during step C10, various modifications to the coefficients in the SE1 sublist, all aimed at changing the parity of the sum of the coefficients. In the preferred embodiment, +1 or -1 is added to each modifiable coefficient, and one modification is selected from among all those performed.

[0111] In the preferred embodiment, such a selection constitutes the optimal prediction according to a performance criterion, which is, for example, the well-known throughput-distortion criterion. Such a criterion is expressed by equation (1) below: J = D + λ R where D represents the distortion between the original macroblock and the reconstructed macroblock, R represents the bit cost of encoding the coding information and λ represents a Lagrange multiplier, the value of which can be fixed prior to encoding.

[0112] In the example provided, the modification that results in an optimal prediction according to the aforementioned rate-distortion criterion is the addition of the value 1 to the second coefficient -7 of the sublist SE 1.

[0113] At the end of step C10, a modified sublist SEm 1 =(+9,+6,0,0,+1,0,-1,+2,0,0,+1) is obtained.

[0114] It should be noted that during this step, certain modifications are prohibited. Thus, if the first non-zero coefficient ε2 had been +1, it would not have been possible to add -1 to it, because it would have become zero, and it would have lost its characteristic as the first non-zero coefficient of the list E1. The decoder would then have subsequently assigned the decoded sign (by calculating the parity of the sum of the coefficients) to another coefficient, and there would have been a decoding error.

[0115] During a C11 step represented at the figure 3 , The MTR_CO1 processing module makes a corresponding modification of the list E 1. The following modified list Em 1 = (0,+9,-6,0,0,+1,0,-1,+2,0,0,+1,0,0,0,0) is then obtained.

[0116] Next, step C20 is carried out, entropic coding of the coefficients of the aforementioned list Em 1, with the exception of the sign of the coefficient ε2, which is the + sign of the coefficient 9 in the example given, which sign is hidden in the parity of the sum of the coefficients.

[0117] It should be noted that the set of amplitudes of the coefficients of the list E 1 or of the modified list Em 1 is coded before the set of signs, excluding the sign of the first non-zero coefficient ε2 which is not coded, as explained above.

[0118] During a subsequent step C30 represented at the figure 3 , the MC_CO1 coding module of the figure 4 tests if the current coded block is the last block in the IE image.

[0119] If the current block is the last block of the IE image, during a C40 step represented at the figure 3 , The coding process is terminated.

[0120] If this is not the case, the next block B' i is selected and then coded according to the aforementioned raster scan traversal order, by iterating steps C1 to C20, for 1≤i≤Z.

[0121] Once the entropic coding of all blocks B' 1 to B' Z has been carried out, a signal F' is constructed representing, in binary form, the said coded blocks.

[0122] The construction of the binary signal F' is implemented in a CF1 flux construction software module, as shown in the figure 4 .

[0123] The F' stream is then transmitted via a communication network (not shown) to a remote terminal. This terminal contains a decoder, which will be described in more detail later.

[0124] We will now describe, primarily with reference to the figure 3 , another embodiment of the invention.

[0125] This other embodiment differs from the previous one only in the number of coefficients to be hidden, which is either 0 or N, N being an integer such that N≥2.

[0126] For this purpose, the aforementioned comparison substep C72 is replaced by substep C72a, shown in dotted lines on the figure 3 , during which the number of modifiable coefficients is compared with several predetermined thresholds 0 <TSIG_1<TSIG_2<TSIG_3..., de telle façon que si le nombre de coefficients modifiables est compris entre TSIG_N et TSIG_N+1, N signes sont destinés à être cachés.

[0127] If the number of modifiable coefficients is less than the first threshold TSIG_1, the classical entropic coding of the coefficients in list E 1 is carried out during the aforementioned step C20. For this purpose, the sign of each non-zero coefficient in list E 1 is entropically coded.

[0128] If the number of modifiable coefficients is between the TSIG_N and TSIG_N+1 thresholds, during a C8 step represented in the figure 3 , The MTR_CO1 processing module calculates the value of a function f which is representative of the coefficients of the sublist SE 1.

[0129] In this other embodiment, the coder's decision being to hide N signs, the function f is the remainder modulo 2 N< of the sum of the coefficients of the sublist SE 1 . We assume that in the given example, N=2, the two signs to be hidden being the first two signs of the first two non-zero coefficients respectively, namely ε2 and ε3.

[0130] During the next step C9 represented at the figure 3 , The MTR_CO1 processing module checks if the configuration of the N signs, i.e. 2 N< possible configurations, corresponds to the value of the remainder modulo 2 N< of the sum of the coefficients of the sublist SE 1.

[0131] In the example given where N=2, there are 2 2< =4 different sign configurations.

[0132] These four configurations follow a convention in the CO1 encoder, which is determined, for example, as follows: a remainder equal to zero corresponds to two consecutive positive signs: +, + ; a remainder equal to one corresponds to a consecutive positive sign and a consecutive negative sign: +, - ; a remainder equal to two corresponds to a consecutive negative sign and a consecutive positive sign: -, + ; a remainder equal to three corresponds to two consecutive negative signs: -, -.

[0133] If the configuration of the N signs corresponds to the value of the remainder modulo 2 N< of the sum of the coefficients of the sublist SE 1, the entropic coding of the coefficients of the aforementioned list E 1 is carried out in step C20, with the exception of the sign of the coefficient ε2 and the coefficient ε3, which signs are hidden in the parity of the sum modulo 2 N< of the coefficients.

[0134] If this is not the case, step C10 is used to modify at least one modifiable coefficient of sublist SE 1. This modification is performed by the MTR_CO1 processing module of the figure 4 , in such a way that the remainder modulo 2 N< of the sum of the modifiable coefficients of the sublist SE 1 reaches the value of each of the two signs to be hidden.

[0135] During the aforementioned step C11, the MTR_CO1 processing module makes a corresponding modification to the list E 1. A modified list Em 1 is then obtained.

[0136] Next, step C20 is carried out, entropic coding of the coefficients of the aforementioned list Em 1, with the exception of the sign of the coefficient ε2 and the sign of the coefficient ε3, which signs are hidden in the parity of the sum modulo 2 N< of the coefficients. Description détaillée de la partie décodage

[0137] A general embodiment of the decoding process according to the invention will now be described, in which the decoding process is implemented in software or hardware by modifications to a decoder initially conforming to the H.264 / MPEG-4 AVC standard.

[0138] The decoding process according to the invention is represented in the form of an algorithm comprising steps SD1 to SD7 shown in the figure 5 .

[0139] According to the general embodiment of the invention, the decoding process according to the invention is implemented in a decoding device or DO decoder, as shown in the figure 6 , which is adapted to receive the F stream delivered by the CO encoder of the figure 2 .

[0140] During a preliminary stage not shown on the figure 5 ,The partitions B1 to BZ, previously encoded by the CO encoder, are identified in the received data signal F. In the preferred embodiment, these partitions are square blocks of the same size. Depending on the image size, which is not necessarily a multiple of the block size, the last blocks on the left and the last blocks at the bottom may not be square. In an alternative embodiment, the blocks may, for example, be rectangular and / or not aligned with each other.

[0141] Each block or macroblock can also be divided into sub-blocks which are themselves subdivisible.

[0142] Such identification is performed by an EX_DO flow analysis software module, as shown in the figure 6 .

[0143] During an SD1 step represented at the figure 5 ,the EX_DO module of the figure 6 selects as current block B i the first block B 1 to be decoded. Such a selection consists for example of placing a read pointer in the signal F at the beginning of the data of the first block B 1.

[0144] Next, each of the selected coded blocks is decoded.

[0145] In the example shown on the figure 5 , Such decoding is applied successively to each of the coded blocks B1 to BZ. The blocks are decoded according to, for example, a "raster scan" path well known to those skilled in the art.

[0146] The decoding according to the invention is implemented in an MD_DO decoding software module of the DO decoder, as shown in the figure 6 .

[0147] During an SD2 step represented at the figure 5 ,First, the first current block B1 that was selected is entropically decoded. This operation is performed by an entropic decoding module DE_DO, represented on the figure 6 , for example of the CABAC type. During this step, the DE_DO module performs an entropic decoding of the digital information corresponding to the amplitude of each of the coded data in the list D 1 or the modified list Dm 1. At this stage, only the signs of the data in the list D 1 or the modified list Dm 1 are not decoded.

[0148] In the case where the MTR_DO processing module receives the list D 1 = (a 1 , a 2 ,..., a P ), it proceeds, during a step SD3 represented in the figure 5 , to a classical entropic decoding of all the signs of the data in list D 1. Such decoding is performed by the CABAC decoder, designated by the reference DE_DO on the figure 6 .To this end, the sign of each non-zero data item in list D 1 is entropically decoded.

[0149] In the case where the MTR_DO processing module receives the modified list Dm 1 =(a' 1 , a' 2 ,...,a' P ), during said step SD3, the classic entropic decoding of all the signs of the data in the list Dm 1 is carried out, with the exception of the sign of the first non-zero data a2.

[0150] During an SD4 step represented at the figure 5 , The MTR_DO processing module calculates the value of a function f which is representative of the data in the list Dm 1, in order to determine whether the calculated value is even or odd.

[0151] In the preferred embodiment where only one sign is hidden in the signal F, the function f is the parity of the sum of the data in the list Dm 1.

[0152] According to the convention used in the CO encoder, which is the same in the DO decoder, an even value of the sum of the data in the list Dm 1 means that the sign of the first non-zero data in the modified list Dm 1 is positive, while an odd value of the sum of the data in the list Dm 1 means that the sign of the first non-zero data in the modified list Dm 1 is negative.

[0153] In the example implementation, the total sum of the data is even. Consequently, at the end of step SD4, the MTR_DO processing module deduces that the hidden sign of the first non-zero data point a2 is positive.

[0154] During an SD5 step represented at the figure 5 , The decoded block BD 1 is constructed. This operation is performed by a reconstruction software module MR_DO, represented in the figure 6 .

[0155] During an SD6 step represented at the figure 5 , The MD_DO decoding module tests whether the current decoded block is the last block identified in the F signal.

[0156] If the current block is the last block of signal F, during an SD7 step represented at the figure 5 , The decoding process is terminated.

[0157] If this is not the case, the next block B i to be decoded is selected, in accordance with the aforementioned raster scan traversal order, by iterating through steps SD1 to SD5, for 1≤i≤Z.

[0158] We will now describe, primarily with reference to the figure 5 , another embodiment of the invention.

[0159] This other embodiment differs from the previous one only in the number of hidden signs which is now equal to N, N being an integer such that N≥2.

[0160] To this end, during the aforementioned SD3 step, classical entropic decoding is carried out on all the signs of the data in the list Dm 1, with the exception of the N respective signs of the first non-zero data of said modified list Dm 1, said N signs being hidden.

[0161] In this alternative embodiment, the MTR_DO processing module calculates, during step SD4, the value of the function f which is the remainder modulo 2 N< of the sum of the data in the list Dm 1. It is assumed that in the example given, N=2.

[0162] The MTR_DO processing module then deduces the configuration of the two hidden signs which are assigned respectively to each of the first two non-zero data a2 and a3, according to the convention used in the encoding.

[0163] Once these two signs have been reconstructed, steps SD5 to SD7 described above are implemented.

[0164] A particular embodiment of the decoding process according to the invention will now be described, in which the decoding process is implemented in software or hardware by modifications to a decoder initially conforming to the H.264 / MPEG-4 AVC standard.

[0165] The decoding process according to the invention is represented in the form of an algorithm comprising steps D1 to D12 shown in the figure 7 .

[0166] According to the embodiment of the invention, the decoding process according to the invention is implemented in a decoding device or decoder DO1, as shown in the figure 8 , which is capable of processing the signal F' delivered by the CO1 encoder of the figure 4 .

[0167] During a preliminary stage not shown on the figure 7 ,The partitions B'1 to B'Z, previously encoded by the CO1 encoder, are identified in the received data signal F'. In the preferred embodiment, these partitions are square blocks of the same size. Depending on the image size, which is not necessarily a multiple of the block size, the last blocks on the left and the last blocks at the bottom may not be square. In an alternative embodiment, the blocks may, for example, be rectangular and / or not aligned with each other.

[0168] Each block or macroblock can also be divided into sub-blocks which are themselves subdivisible.

[0169] Such identification is performed by an EX_DO1 flow analysis software module, as shown in the figure 8 .

[0170] During a D1 stage represented at the figure 7 ,the EX_DO1 module of the figure 8 selects as current block B' i the first block B' 1 to be decoded. Such a selection consists, for example, of placing a read pointer in the signal F' at the beginning of the data of the first block B' 1.

[0171] Next, each of the selected coded blocks is decoded.

[0172] In the example shown on the figure 7 , Such decoding is applied successively to each of the coded blocks B' 1 to B' Z. The blocks are decoded according to, for example, a "raster scan" path well known to those skilled in the art.

[0173] The decoding according to the invention is implemented in a software module MD_DO1 for decoding the DO1 decoder, as shown in the figure 8 .

[0174] During a D2 stage represented at the figure 7 ,First, the entropic decoding of the first current block B'1 that was selected is performed. This operation is carried out by an entropic decoding module DE_DO1 represented on the figure 8 , for example of the CABAC type. During this step, the DE_DO1 module performs an entropic decoding of the digital information corresponding to the amplitude of each of the coded coefficients of the list E 1 or the modified list Em 1. At this stage, only the signs of the coefficients of the list E 1 or the modified list Em 1 are not decoded.

[0175] During a D3 step represented at the figure 7 , The number of signs that may have been hidden during the previous entropy coding step C20 is determined. This step D3 is performed by a software processing module MTR_DO1, as shown in the diagram. figure 8 .Step D3 is similar to the aforementioned step C7 of determining the number of signs to hide.

[0176] In the preferred embodiment, the number of hidden signs is one or zero. Furthermore, according to said preferred embodiment, it is the sign of the first non-zero coefficient that is hidden. In the example shown, this is therefore the positive sign of the coefficient ε2=+9.

[0177] In an alternative embodiment, the number of hidden signs is either zero, one, two, three, or more.

[0178] In accordance with the preferred embodiment of step D3, it is carried out, during a first sub-step D31 represented in the figure 7 , to the determination, from said list E 1 or the modified list Em 1, of a sublist containing coefficients ε'1, ε'2,..., ε'M where M <L susceptibles d'avoir été modifiés au codage.

[0179] Such a determination is carried out in the same way as in the aforementioned C7 coding step.

[0180] Like the aforementioned MTR_CO1 processing module, the MTR_DO1 processing module is initially configured not to modify: the zero coefficient(s) located before the first non-zero coefficient, and for reasons of calculation complexity, the zero coefficient(s) located after the last non-zero coefficient.

[0181] In the example shown, at the end of sub-step D31, the sub-list SEm 1 is such that SEm 1 = (9, -6, 0, 0, 1, 0, -1, 2, 0, 0, 1). Consequently, eleven coefficients that may have been modified are obtained.

[0182] During a subsequent substep D32 represented in the figure 7 ,The MTR_DO1 processing module compares the number of coefficients that may have been modified with a predetermined threshold TSIG. In the preferred embodiment, TSIG is 4.

[0183] If the number of coefficients likely to have been modified is less than the TSIG threshold, a step D4, represented in the..., is carried out. figure 7 , to a classical entropic decoding of all the signs of the coefficients in list E 1. Such a decoding is performed by the CABAC decoder, designated by the reference DE_DO1 on the figure 8 . For this purpose, the sign of each non-zero coefficient in list E 1 is decoded entropically.

[0184] If the number of coefficients that may have been modified is greater than the TSIG threshold, during said step D4, classical entropic decoding of all the signs of the coefficients in the list Em 1 is carried out, with the exception of the sign of the first non-zero coefficient ε2.

[0185] During a D5 step represented at the figure 7 , The MTR_DO1 processing module calculates the value of a function f which is representative of the coefficients of the sublist SEm 1 in order to determine whether the calculated value is even or odd.

[0186] In the preferred embodiment where only one sign is hidden in the signal F', the function f is the parity of the sum of the coefficients of the sublist SEm 1.

[0187] In accordance with the convention used in the CO1 encoder, which is the same in the DO1 decoder, an even value of the sum of the coefficients of the sublist SEm 1 means that the sign of the first non-zero coefficient of the modified list Em 1 is positive, while an odd value of the sum of the coefficients of the sublist SEm 1 means that the sign of the first non-zero coefficient of the modified list Em 1 is negative.

[0188] In the example implementation where SEm 1 =(+9,-6,0,0,+1,0,-1,+2,0,0,+1), the total sum of the coefficients is equal to 6, and is therefore even. Consequently, at the end of step D5, the processing module MTR_DO1 deduces that the hidden sign of the first non-zero coefficient ε2 is positive.

[0189] During a D6 stage represented at the figure 7 ,Using all the numerical information reconstructed during steps D2, D4, and D5, the quantized coefficients of block B'q 1 are reconstructed in a predefined order. In the example shown, this is a reverse zigzag path to the zigzag path performed during the aforementioned coding step C6. Such a step is performed by a software reading module ML_DO1, as shown in the... figure 8 . More specifically, the ML_DO1 module writes the coefficients from the list E 1 (one-dimensional) into the block B'q 1 (two-dimensional), using the said reverse zigzag traversal order.

[0190] During a D7 step represented at the figure 7 ,The quantized residual block B'q 1 is dequantized using a conventional dequantization operation, which is the inverse of the quantization performed during encoding in the aforementioned step C5, to produce a decoded dequantized block BD'q 1. This step is performed using a dequantization software module MDQ_DO1, as shown in the diagram. figure 8 .

[0191] During a D8 stage represented at the figure 7 , The inverse transformation of the dequantized block BD'q 1 is performed; this is the inverse operation of the direct transformation carried out during encoding in the aforementioned step C4. A decoded residual block BD'r 1 is then obtained. This operation is performed by an inverse transform software module, MTI_DO1, as shown. figure 8 .

[0192] During a D9 step represented at the figure 7 ,Predictive decoding of the current block B'1 is performed. Such predictive decoding is conventionally carried out using known intra- and / or inter-prediction techniques, during which block B'1 is predicted with respect to at least one previously decoded block. This operation is performed by a predictive decoding module PRED_DO1 as shown. figure 8 .

[0193] It goes without saying that other intra-prediction modes such as those proposed in the H.264 standard are possible.

[0194] During this step, predictive decoding is performed using the syntax elements decoded in the previous step, including the type of prediction (inter or intra), and where applicable, the intra prediction mode, the type of partitioning of a block or macroblock if the latter has been subdivided, the reference image index and the displacement vector used in the inter prediction mode.

[0195] The aforementioned predictive decoding step allows us to construct a predicted block B'p 1.

[0196] During a D10 step represented at the figure 7 , The decoded block BD'1 is constructed by adding the decoded residual block BD'r1 to the predicted block B'p1. This operation is performed by a reconstruction software module MR_DO1, shown in the diagram. figure 8 .

[0197] During a D11 stage represented at the figure 7 , The MD_DO1 decoding module tests whether the current decoded block is the last identified block in the signal F'.

[0198] If the current block is the last block of the signal F', during a step D12 represented in the figure 7 , The decoding process is terminated.

[0199] If this is not the case, the next block B' i to be decoded is selected in accordance with the aforementioned raster scan traversal order, by iterating steps D1 to D10, for 1≤i≤Z.

[0200] We will now describe, primarily with reference to the figure 7 , another embodiment of the invention.

[0201] This other embodiment differs from the previous one only in the number of hidden coefficients, which is either 0 or N, N being an integer such that N≥2.

[0202] For this purpose, the aforementioned comparison substep D32 is replaced by substep D32a, shown in dotted lines on the figure 7 , during which the number of coefficients likely to have been modified is compared with several predetermined thresholds 0 <TSIG_1<TSIG_2<TSIG_3..., de telle façon que si le nombre desdits coefficients est compris entre TSIG_N et TSIG_N+1, N signes ont été cachés.

[0203] If the number of said coefficients is less than the first threshold TSIG_1, during the aforementioned step D4, the classical entropic decoding of all the signs of the coefficients in list E 1 is carried out. For this purpose, the sign of each non-zero coefficient in list E 1 is entropically decoded.

[0204] If the number of said coefficients is between the threshold TSIG_N and TSIG_N+1, during the aforementioned step D4, the classical entropic decoding of all the signs of the coefficients of the list E 1 is carried out, with the exception of the N respective signs of the first non-zero coefficients of the said modified list Em 1, the said N signs being hidden.

[0205] In this alternative embodiment, the processing module MTR_DO1 calculates, during step D5, the value of the function f which is the remainder modulo 2 N< of the sum of the coefficients of the sublist SEm 1. It is assumed that in the example given, N=2.

[0206] The MTR_DO1 processing module then deduces the configuration of the two hidden signs which are assigned respectively to each of the first two non-zero coefficients ε2 and ε3, according to the convention used in the coding.

[0207] Once these two signs have been reconstructed, steps D6 to D12 described above are carried out.

[0208] It goes without saying that the embodiments described above have been given for purely indicative purposes.

[0209] The invention is defined by the attached claims.

[0210] Thus, for example, according to a simplified embodiment compared to that represented in the figure 4 ,The CO1 encoder could be configured to hide at least N' predetermined characters, with N' ≥ 1, instead of either zero, one, or N predetermined characters. In this case, the comparison step C72 or C72a would be omitted. Correspondingly, according to a simplified embodiment compared to that shown in the figure 8 ,The DO1 decoder would be configured to reconstruct N' predetermined signs instead of either zero, one, or N predetermined signs. In this case, the comparison step D32 or D32a would be eliminated. Furthermore, the decision criterion applied to the C72 encoding step and the D32 decoding step could be replaced by another type of criterion. To this end, instead of comparing the number of modifiable coefficients or the number of coefficients likely to have been modified to a threshold, the MTR_CO1 or MTR_DO1 processing module could apply a decision criterion that is respectively a function of the sum of the amplitudes of the modifiable or potentially modified coefficients, or of the number of zeros present among the modifiable or potentially modified coefficients.

Claims

1. Device (DO) for decoding a data signal representative of at least one image divided into partitions that has been previously encoded, a current partition (Bi) to be decoded comprising amplitudes and signs of the coefficients of a direct transform of the current partition (Bi), the coefficients being quantized and representing residual data of a prediction of the current partition with respect to a previously decoded partition, said decoding device being characterized in that it comprises, for said current partition (Bi) to be decoded, processing means (MTR_DO) that are configured to: - decode the amplitudes of the coefficients of said current partition (Bi); - determine whether the sign of the first non-zero coefficient of a list of coefficients, which contains the coefficients of the current partition in a predetermined order, is hidden by determining whether a number of coefficients of a subset consisting of the coefficients from the first non-zero coefficient to the last non-zero coefficient of said list is greater than a predetermined threshold (TSIG); - if said number of coefficients of the subset is not greater than the threshold (TSIG), determine that the sign of the first non-zero coefficient of the list is not hidden and decode the signs of all non-zero coefficients of the partition, or - if said number of coefficients of the subset is greater than the threshold (TSIG), (i) determine that the sign of the first non-zero coefficient of the list is hidden and decode the signs of the non-zero coefficients of the partition with the exception of the sign of the first non-zero coefficient of the list, (ii) compute a parity value of a sum of the coefficients of the subset and obtain, from said parity value, the value of the sign of the first non-zero coefficient of the list.

2. Device (DO) according to claim 1, wherein the sign of the first non-zero coefficient of the list is positive if the parity has a first value and the sign of the first non-zero coefficient of the list is negative if the parity has a second value.

3. Device (DO) according to claim 1 or 2, wherein the sign of the first non-zero coefficient of the list is positive if the parity is even and the sign of the first non-zero coefficient of the list is negative if the parity is odd.

4. Device (DO) according to any of the preceding claims, wherein the predetermined threshold is equal to 4.

5. Method for decoding a data signal representative of at least one image divided into partitions that has been previously encoded, a current partition (Bi) to be decoded comprising amplitudes and signs of the coefficients of a direct transform of the current partition (Bi), the coefficients being quantized and representing residual data of a prediction of the current partition with respect to a previously decoded partition, said decoding method being characterized in that it comprises, for said current partition (Bi) to be decoded, the following steps: - decoding (SD2, SD3) the amplitudes of the coefficients of said current partition; - determining whether the sign of the first non-zero coefficient of a list of coefficients, which contains the coefficients of the current partition in a predetermined order, is hidden by determining whether a number of coefficients of a subset consisting of the coefficients from the first non-zero coefficient to the last non-zero coefficient of said list is greater than a predetermined threshold (TSIG); - if said number of coefficients of the subset is not greater than the threshold (TSIG), determining that the sign of the first non-zero coefficient of the list is not hidden and decoding the signs of all non-zero coefficients of the partition, - if said number of coefficients of the subset is greater than the threshold (TSIG), (i) determining that the sign of the first non-zero coefficient of the list is hidden and decoding the signs of the non-zero coefficients of the partition with the exception of the sign of the first non-zero coefficient of the list, (ii) computing a parity value of a sum of the coefficients of the subset and obtaining, from said parity value, the value of the sign of the first non-zero coefficient of the list.

6. Method according to claim 5, wherein the sign of the first non-zero coefficient of the list is positive if the parity has a first value and the sign of the first non-zero coefficient of the list is negative if the parity has a second value.

7. Method according to claim 5 or 6, wherein the sign of the first non-zero coefficient of the list is positive if the parity is even and the sign of the first non-zero coefficient of the list is negative if the parity is odd.

8. Method according to any of the claims 5-7, wherein the predetermined threshold is equal to 4.

9. Computer program comprising instructions for implementing the decoding method according to any of claims 5-8, when said decoding method is executed on a computer.