[go: up one dir, main page]

HK40009225A - Method and recording medium storing coded image data - Google Patents

Method and recording medium storing coded image data Download PDF

Info

Publication number
HK40009225A
HK40009225A HK19132915.0A HK19132915A HK40009225A HK 40009225 A HK40009225 A HK 40009225A HK 19132915 A HK19132915 A HK 19132915A HK 40009225 A HK40009225 A HK 40009225A
Authority
HK
Hong Kong
Prior art keywords
residual data
coefficients
coding
decoding
value
Prior art date
Application number
HK19132915.0A
Other languages
French (fr)
Chinese (zh)
Other versions
HK40009225B (en
Inventor
Félix Henry
Gordon Clare
Original Assignee
Dolby International Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Dolby International Ab filed Critical Dolby International Ab
Publication of HK40009225A publication Critical patent/HK40009225A/en
Publication of HK40009225B publication Critical patent/HK40009225B/en

Links

Description

Field of invention
The present invention relates generally to the field of image processing, and more specifically to the coding and decoding of digital images and sequences of digital images.
The present invention may thus be used, inter alia, for video coding implemented in current (MPEG, H.264, etc.) or future (ITU-T/VCEG (H.265) or ISO/MPEG (HEVC) video encoders).
Background of the invention
Current video encoders (MPEG, H.264, ...) use a block representation of the video sequence. The images are cut into macro-blocks, each macro-block is itself cut into blocks, and each block, or macro-block, is encoded by intra-image or inter-image prediction. Thus, some images are encoded by spatial prediction (intra-prediction), while other images are encoded by temporal prediction (inter-prediction) relative to one or more frames of decoded-coded reference, using a moving compensation known to the man of art.
The residual blocks are transformed by a type transform transform into discrete cosine (DCT), and then quantified using a quantification e.g. scalar type. Coefficients, some of which are positive and others negative, are obtained at the end of the quantification step. They are then run in a reading order usually in zigzag (as in the JPEG standard), which allows to exploit the large number of zero coefficients in high frequencies.
Entropian coding (e.g. arithmetic or Huffman coding) is performed as follows: an information is entropically coded to indicate the location of the last non-zero coefficient in the list,for each coefficient before the last non-zero coefficient,an information is entropically coded to indicate whether the coefficient is zero or not,for each previously indicated non-zero coefficient,an information is entropically coded to indicate whether the coefficient is equal to one or not,for each non-zero coefficient and not equal to one before the last non-zero coefficient,an information of amplitude (absolute value of the coefficient minus two) is encoded entropically,for each non-zero coefficient,the sign affected by it is a '0' (for the + sign) or a '1' (for the - sign).
For example, in H.264 when a macroblock is broken into blocks, a data signal corresponding to each block is transmitted to the decoder. the quantified residues contained in the abovementioned list,information representative of the coding method used, in particular: the prediction mode (intra prediction, inter prediction, default prediction performing a prediction for which no information is transmitted to the decoder ( in English skip )) ;information specifying the type of prediction (orientation, reference image, etc.) ;the type of partitioning;the type of transform, e.g. DCT 4x4, DCT 8x8, etc...motion information if necessary;etc.
The decoding is done image by image, and for each image, macroblock by macroblock. For each partition of a macroblock, the corresponding elements of the stream are read. Reverse quantization and reverse transformation of the coefficients of the blocks are performed to produce the decoded prediction residue. Then, the prediction of the partition is calculated and the partition is reconstructed by adding the prediction to the decoded prediction residue.
Intra or inter-competition coding, as implemented in H.264, is thus based on competing different coding information, such as the above, with the aim of selecting the best mode, i.e. one that will optimise the coding of the given score according to a predetermined performance criterion, e.g. the cost of throughput/distortion well known to the professional.
The information representative of the selected coding mode is contained in the data signal transmitted from the encoder to the decoder, which is then able to identify the selected coding mode from the encoder and then apply the prediction according to that mode.
In the paper 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 is presented that is implemented during a video compression.
More specifically, it is proposed to avoid including in the signal to be transmitted to the decoder at least one competition index such as the output of a plurality of competition indices to be transmitted. Such an index is for example the MVComp index which represents information to identify the predictor of the motion vector used for a predicted block in Inter mode. Such an index which may be 0 or 1 is not directly recorded in the signal of coded data, but is carried by the parity of the sum of the coefficients of the quantified residue.For example, the even value of the quantified residue is associated with the MVComp index of value 0, while the odd value of the quantified residue is associated with the MVComp index of value 1. Two cases may arise. In the first case, if the parity of the quantified residue already corresponds to that of the MVComp index to be transmitted, the quantified residue is coded in a conventional way. In the second case, if the parity of the quantified residue is different from that of the MVComp index to be transmitted, the residue is modified so that its quantity is the same as that of the MVComp index.Such a modification consists of increasing or decreasing one or more coefficients of the quantified residual of an odd value (e.g. +1, -1, +3, -3, +5, -+5...) and retaining only the modification that optimizes a predetermined criterion, in this case the above-mentioned flow-distortion cost.
The decoder does not read the MVComp index from the signal. The decoder simply determines the residual as usual. If the value of this residual is even, the MVComp index is set to 0.
In accordance with the technique just presented, the coefficients being modified are not always optimally chosen, so that the modification applied causes disturbances in the signal transmitted to the decoder.
Subject matter and summary of the invention
One of the purposes of the invention is to remedy the disadvantages of the above-mentioned state of the art.
For this purpose, one object of the present invention concerns a process for coding at least one image cut into partitions, such a process implementing the steps of: prediction of data from a current partition based on at least one reference partition already coded and then decoded, yielding a predicted partition;determination of a residual data set by comparison of data from the current partition and the predicted partition, with the residual data respectively associated with different numerical information which is to undergo entropic coding;production of a signal containing the coded information.
The process according to the invention is remarkable in that it implements, prior to the signal-making stage, the following steps:determination, from the determined residual data set, of a subset containing residual data which can be modified,calculation of the value of a function representative of the residual data of the determined subset,comparison of the calculated value with a value of at least one of the numerical information,depending on the result of the comparison, modification or not of at least one of the residual data of the subset,if modified,copy coding of the input at least one modified residual data.
Such a provision allows a data masking technique to be applied to a small set of residual data, in which the residual data is amenable to modification.
The invention describes modifiable residual data as data for which the application of a modification does not result in a loss of synchrony between the encoder and the decoder.
Thus, in accordance with the invention, the residual data which are to be modified are selected much more reliably than in the above technique, which allows a better quality of reconstruction of the image in the decoder.
In addition, the possibility of changing a small number of residual data allows for faster encoding.
In a particular embodiment, steps following the step of determining the residual subset of data are implemented only if a predetermined criterion, a function of the residual data that can be modified, is met.
Such a provision also enables the coder to decide rationally whether or not to apply a data masking technique. The advantage of such a decision step is that it applies only to the reduced set of residual data that can be modified. This ensures that the data masking technique is applied much more appropriately than in the previous art, especially on a better chosen number of residual data, which, once these data have been modified, are certain that the signal disturbance caused by such modification will not have a negative impact on the quality of the image reconstruction to the decoder.
In another particular embodiment, the predetermined decision criterion is based on the result of a comparison between the number of residual data that can be changed and a predetermined number.
This arrangement increases the compression performance of the arithmetic encoder while effectively reducing the cost of signalling, as it allows the precise detection of the number of residual data from which it is advisable to apply the data masking technique without causing large disturbances in the signal to be transmitted to the decoder.
In another particular embodiment, where a plurality of digital information is considered during the comparison step, the comparison step consists of comparing the calculated value of a function representative of the residual data of the subset determined to the value of a function representative of the plurality of digital information.
This arrangement allows the compression performance of the arithmetic encoder to be optimized while reducing the cost of signalling, since it allows multiple digital information to be hidden in the signal to be transmitted to the decoder.
In another particular embodiment, the at least one digit corresponds to the sign of a residual data.
The sign is particularly relevant information to hide because the probability of a positive or negative sign occurring is equal to the probability of the other sign. Therefore, since a sign is necessarily encoded on a bit, it is possible, by hiding this information, to save a bit in the signal to be transmitted to the decoder, which significantly reduces the cost of signaling. The reduction of such a cost will be all the higher as it is possible according to the invention to hide a plurality of signs, and therefore a plurality of bits.
Correspondingly, the invention also concerns a device for encoding at least one image cut into partitions, such a device comprising: means of predicting the data of a current partition based on at least one reference partition already coded and then decoded, yielding a predicted partition,means of determining a residual data set capable of comparing data for the current partition and the predicted partition, the residual data being associated with different digital information that is to be entropy coded respectively,means of generating a signal containing the coded information.
Such a coding system is remarkable in that it includes upstream means of elaboration, means of processing which are capable of: determine from the determined residual data set a subset containing residual data that can be modified,calculate the value of a function representative of the residual data of the determined subset,compare the calculated value to a value of at least one of the numerical information,modify or not at least one of the residual data of the determined subset,depending on the result of the modification, The methodology for the determination of the entropy of the data is based on the following principles:
Correspondingly, the invention also relates to a process for decoding a data signal representative of at least one previously encoded partitioned image, including a step for obtaining, by entropic decoding of signal data, numerical information associated with residual data relating to at least one previously encoded partition.
Such a decoding process is remarkable in that it includes the following steps:determination from the residual data of a subset containing residual data which may have been modified during a previous coding,calculation of the value of a function representative of the residual data of that specified subset,obtaining the value of at least one numerical information different from those obtained by entropic decoding from the calculated value.
In a particular embodiment, steps following the step of determining the residual subset of data shall be implemented only if a predetermined criterion, based on the residual data that may have been modified, is met.
In another particular embodiment, the predetermined decision criterion is based on the result of a comparison between the number of residual data that can be changed and a predetermined number.
In yet another particular embodiment, a plurality of values associated with a plurality of numerical information different from that obtained by entropic decoding is obtained from the calculated value.
In another particular embodiment, the at least one digit corresponds to the sign of a residual data.
Correspondingly, the invention also relates to a device for decoding a data signal representative of at least one image cut into partitions which has been previously encoded, including means of obtaining, by entropic decoding of signal data, numerical information associated with residual data relating to at least one previously encoded partition.
Such a decoding device is remarkable in that it includes processing means which are capable of: determine from the residual data a subset containing residual data which may have been modified during a previous coding,calculate the value of a function representative of the residual data of the determined subset,obtain the value of at least one numerical information different from that obtained by entropy decoding from the calculated value.
The invention also relates to a computer program containing instructions for performing the steps of the above coding or decoding process when the program is executed by a computer.
Such a program can use any programming language, and be in the form of source code, object code, or code intermediate between source code and object code, such as in a partially compiled form, or in any other desirable form.
The object of the invention is also a computer-readable recording medium containing computer program instructions as described above.
The recording medium may be any entity or device capable of storing the program, for example, such a medium may include a storage medium, such as a ROM, such as a CD ROM or a microelectronic circuit ROM, or a magnetic recording medium, such as a floppy disk or hard disk.
On the other hand, such a recording medium may be a transmittable medium such as an electrical or optical signal, which may be transmitted by electrical or optical cable, by radio or by other means.
Alternatively, such a recording medium may be an integrated circuit into which the program is embedded, the circuit being adapted to perform the process in question or to be used in the execution of the process.
The above coding device, decoding process, decoding device and computer programs have at least the same advantages as the coding process of the present invention.
Brief description of the drawings
Other characteristics and advantages will be seen in the two preferred modes of implementation described by reference to the figures in which: Figure 1 represents the main steps of the coding process according to the invention,Figure 2 represents a method of making a coding device according to the invention,Figure 3 represents the main steps of the decoding process according to the invention,Figure 4 represents a method of making a decoding device according to the invention.
Detailed description of the coding part
An embodiment of the invention will now be described, in which the coding process according to the invention is used to encode a sequence of images according to a binary stream close to that obtained by coding according to the H.264/MPEG-4 AVC standard. In this embodiment, the coding process according to the invention is for example implemented in a software or hardware manner by modifications of an encoder initially compliant with the H.264/MPEG-4 AVC standard. The coding process according to the invention is represented as an algorithm with steps C1 to C40, as shown in Figure 1.
Depending on the embodiment, the coding process according to the invention is implemented in a coding device or CO encoder, one embodiment of which is shown in Figure 2.
In accordance with the invention, before the actual coding, a sequence of images to be coded in a predetermined order is cut out of an IE image into a plurality of partitions B1, B2,....,Bi,...., BZ, as shown in Figure 2.
It should be noted that in the sense of the invention, the term partition means coding unit (from English coding unit ). This latter terminology is used in particular in the HEVC/H.265 standard currently under development, for example in the document accessible at the following Internet address:
The Commission shall, by means of implementing acts, adopt implementing acts laying down the rules for the application of this Regulation.
In particular, such a coding unit may be a group of pixel sets of rectangular or square shape, also called blocks, macroblocks, or pixel sets of other geometric shapes.
In the example shown in Figure 2, the partitions are blocks that are square in shape and all the same size. Depending on the size of the image, which is not necessarily a multiple of the size of the blocks, the last blocks on the left and the last blocks at the bottom may not be square. In an alternative mode of execution, the blocks may be for example rectangular in size and/or not aligned with each other.
Each block or macroblock can also be itself divided into sub-blocks which are themselves subdivisible.
Such a breakdown is performed by a partitioning PCO module shown in Figure 2 which uses, for example, a well-known partitioning algorithm as such.
Following this cutting step, each of the current partitions Bi (i being an integer such as 1≤i≤Z) of the said IE image is coded.
In the example shown in Figure 2, such coding is applied successively to each of the B1 to BZ blocks of the current IE image.
The coding according to the invention is implemented in a coding software module MC_CO of the CO encoder, as shown in Figure 2.
During a step C1 as shown in Figure 1, the MC_CO coding module in Figure 2 selects as current block Bi the first block B1 to be encoded from the current IE image.
During a C2 step as shown in Figure 1, predictive coding of the current block B1 is performed by known intra and/or inter prediction techniques, in which the B1 block is predicted in relation to at least one previously coded and decoded block.
Of course, other intra-prediction modes such as those proposed in the H.264 standard are possible.
The current block B1 can also be subjected to predictive coding in inter mode, in which the current block is predicted in relation to a block from a previously coded and decoded image. Other types of prediction are of course possible.
The above-mentioned predictive coding step allows the construction of a predicted block Bp1 which is an approximation of the current block B1. The information relating to this predictive coding is intended to be entered into a signal to be transmitted to the decoder. Such information includes, inter alia, the type of prediction (inter or intra), and where applicable, the mode of prediction intra, 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 prediction mode. This information is compressed by the CO encoder.
In a subsequent step C3 shown in Figure 1, the PRED_CO prediction module compares the data for current block B1 with the data for predicted block Bp1.
In a subsequent step C4 shown in Figure 1, the residual block Br1 is transformed according to a conventional direct transformation operation such as a transformation into discrete cosine of type DCT, to produce a transformed block Bt1.
In a subsequent step C5 as shown in Figure 1, the transformed block Bt1 is quantified by a conventional quantification operation, such as scalar quantification, to obtain a block Bq1 of quantified coefficients.
In the following step C6 as shown in Figure 1, the quantized coefficients of the block Bq1 are run in a pre-defined order. In the example shown, this is a classic zigzag run. Such a step is performed by a ML_CO reading software module, as shown in Figure 2. At the end of step C6, a one-dimensional list of coefficients E1=(ε1, ε2,..., εL) is obtained, more commonly known as residue , where L is a quantized integer greater than or equal to 1. Each of the coefficients in the E1 list is associated with different numerical information that is intended to undergo decopial coding.
Suppose in the example shown, L=16 and that the list E1 contains the following sixteen coefficients: E1=(0, +9, -7, 0, 0, +1, 0, -1, +2, 0, 0, +1, 0, 0, 0, 0, 0).
In the present case: for each coefficient before the last non-zero coefficient in the list E1, a numerical information, such as a bit, is intended to be entropically encoded to indicate whether the coefficient is zero or not: if the coefficient is zero, for example, the value bit 0 will be encoded, while if the coefficient is non-zero, the value bit 1 will be encoded; for each non-zero coefficient +9, -7, +1, -1, +2, +1, a numerical information, such as a bit, is intended to be encoded entropically to indicate whether the absolute value of the coefficient is one or not: if it is equal to 1,For example, the value bit 1 will be coded, while if it is equal to 0, the value bit 0 will be coded; for each non-zero coefficient whose absolute value is not equal to one before the last non-zero coefficient, such as the value coefficients +9, -7, +2, an amplitude information (absolute value of the coefficient at which the value two is truncated) is encoded entropically, for each non-zero coefficient, the sign assigned to it is coded by a numerical information, such as a bit for example set to '0' (for the + sign) or '1' (for the - sign).
The specific coding steps according to the invention are now described in reference to Figure 1.
In accordance with the invention, it is decided not to encode entropically at least one of the above numerical information. For the reasons explained above in the description, in a preferred embodiment, it is decided not to encode entropically at least one sign of one of the said coefficients in list E1.
As an alternative example, it could be decided in particular to encode entropically the low-weight bit of the binary representation of the amplitude of the first non-zero coefficient of the above-mentioned list E1.
For this purpose, in step C7 as shown in Figure 1, the number of characters to be hidden in the subsequent entropy coding step is chosen by a processing software module MTR_CO as shown in Figure 2.
In the preferred embodiment, the number of signs to be hidden is one or zero. Furthermore, according to this preferred embodiment, it is the sign of the first non-zero coefficient that is intended to be hidden.
In an alternative embodiment, the number of signs to be hidden is either zero, one, two, three or more.
In accordance with the preferred method of implementation of step C7, a sub-list SE1 containing coefficients capable of being modified ε'1, ε'2,..., ε'M where M< L is determined from that list E1 in a first sub-step C71 as shown in Figure 1. Such coefficients will be referred to as modifiable coefficients in the following description.
According to the invention, a coefficient is modifiable if the change in its quantized value does not cause a desynchronization in the decoder once this modified coefficient is processed by the decoder. the zero coefficient (s) before the first non-zero coefficient, so that the decoder does not affect the value of the hidden sign at that zero coefficient (s), and for reasons of computational complexity, the zero coefficient (s) after the last non-zero coefficient.
In the example shown, at the end of sub-step C71, the resulting sub-list SE1 is such that SE1=(9,-7,0,0,1,0,-1,2,0,0,1).
In a subsequent sub-step C72 shown in Figure 1, the MTR_CO processing module compares the number of coefficients that can be modified with a predetermined TSIG threshold.
If the number of coefficients to be modified is below the GST threshold, a classical entropy coding of the coefficients in list E1, such as that carried out in a CABAC code, designated by the CE_CO reference in Figure 2, shall be carried out during step C20 as shown in Figure 1. For this purpose, the sign of each non-zero coefficient in list E1 shall be entropy coded.
If the number of coefficients modifiable is above the GST threshold, during a step C8 as shown in Figure 1, the MTR_CO processing module calculates the value of a function f that is representative of the coefficients in sublist SE1.
In the preferred embodiment where a single signal 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 sublist SE1.
During a step C9 as shown in Figure 1, the MTR_CO processing module checks whether the parity of the value of the hidden character corresponds to the parity of the sum of the coefficients of the sublist SE1 by a convention defined in advance by the CO code.
In the example given, the convention is that a positive sign is associated with a bit of value equal to zero, while a negative sign is associated with a bit of value equal to one.
If, according to the convention adopted in the CO encoder of the invention, the sign is positive, which corresponds to a zero coding bit value, and the sum of the coefficients of sublist SE1 is even, step C20 of entropic coding of the coefficients of the above-mentioned list E1 is carried out, except for the sign of the coefficient ε2.
If, again according to the convention adopted in the CO encoder of the invention, the sign is negative, which corresponds to a coding bit value of one, and the sum of the coefficients of the sublist SE1 is odd, step C20 of entropic coding of the coefficients of the above-mentioned list E1 is also carried out, except for the sign of the coefficient ε2.
If, according to the convention adopted in the CO encoder of the invention, the sign is positive, which corresponds to a zero coding bit value, and the sum of the coefficients of the sublist SE1 is odd, a change of at least one modifiable coefficient of the sublist SE1 shall be made in step C10 as shown in Figure 1.
If, again according to the convention adopted in the CO encoder of the invention, the sign is negative, which corresponds to a coding bit value of one, and the sum of the coefficients of sublist SE1 is even, at step C10 at least one modifiable coefficient of sublist SE1 is also changed.
The test shall be carried out in accordance with the requirements of paragraph 6.2.3.1.
In the embodiment example where SE1=(+9,-7,0,0,+1,0,-1+,2,0,0,+1), the total sum f 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 CO encoder having to transmit this coefficient to the decoder, the parity of the sum must become even. Consequently, the MTR_CO processing module tests, during the said step C10, all different changes of coefficients in the SE1 sublist, aiming to change the parity of the sum of the coefficients. In the preferred embodiment mode, it is added +1 or -1 to each modifiable coefficient and a selection is made from all those changes.
In the preferred mode of implementation, such selection constitutes the optimal prediction according to a performance criterion which is for example the well-known by the professional flow-distortion criterion. where D is the distortion between the original and reconstructed macroblock, R is the bit cost of coding the coding information and λ is a Lagrangian multiplier, the value of which can be set prior to coding.
In the proposed example, the change that results in an optimal prediction according to the flow-distortion criterion above is the addition of the value 1 to the second coefficient -7 of sublist SE1.
At the end of step C10, a modified sublist SEm1=(+9,+6,0,0,+1,0,-1+,2,0,0,+1) is obtained.
Note that during this step, some modifications are prohibited. Thus, in the case where the first non-zero coefficient ε2 had been +1, it would not have been possible to add to it -1, as it would have become zero, and it would then have lost its characteristic of first non-zero coefficient from the E1 list. The decoder would then later assign the decoded sign (by calculating the parity of the sum of the coefficients) to another coefficient, and there would then have been a decoding error.
During a step C11 as shown in Figure 1, the processing module MTR_CO makes a corresponding change to the E1 list. The following modified list Em1= (0,+9,-6,0,0,+1,0,-1+,2,0,0,+1,0,0,0,0,0) is then obtained.
Step C20 is then followed by entropic coding of the coefficients in the above-mentioned list Em1, except for the sign for the coefficient ε2, which is the + sign for the coefficient 9 in the example, which is hidden in the parity of the sum of the coefficients.
It should be noted that all amplitudes of the coefficients in list E1 or the amended list Em1 are coded before all signs, except for the sign of the first non-zero coefficient ε2 which is not coded as explained above.
In a subsequent step C30 shown in Figure 1, the MC_CO coding module in Figure 2 tests whether the current coded block is the last block in the IE image.
If the current block is the last block of the IE image, the coding process is terminated during a step C40 as shown in Figure 1.
If not, the next block Bi is selected and then coded according to the above raster scan path order by iteration of steps C1 to C20 for 1≤i≤Z.
Once the entropic coding of all B1 to BZ blocks has been completed, a signal F is constructed representing the coded blocks in binary form.
The binary signal F construction is implemented in a flow construction software module CF, as shown in Figure 2.
The F-flow is then transmitted via a communication network (not represented) to a remote terminal which has a decoder which will be described in more detail later in the description.
We shall now describe, mainly by reference to Figure 1, another way of carrying out the invention.
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.
For this purpose, the above comparison sub-step C72 is replaced by the sub-step C72a shown in dotted form in Figure 1, in which the number of coefficients to be modified is compared with several predetermined thresholds 0<TSIG_1<TSIG_2<TSIG_3..., so that if the number of coefficients to be modified is between TSIG_N and TSIG_N+1, N signs are intended to be hidden.
If the number of coefficients modifiable is below the first TSIG_1 threshold, the classical entropy coding of the coefficients in list E1 shall be carried out in step C20 above.
If the number of coefficients to be modified is between TSIG_N and TSIG_N+1, during a step C8 as shown in Figure 1, the MTR_CO processing module calculates the value of a function f that is representative of the coefficients in sublist E1.
In this other embodiment, the decision for the encoder to hide N signs, the function f is the remainder modulo 2N of the sum of the coefficients of the sublist SE1.
In the next step C9 shown in Figure 1, the MTR_CO processing module checks whether the configuration of the N signs, i.e. 2N possible configurations, corresponds to the value of the remainder modulo 2N of the sum of the coefficients of the sublist SE1.
In the proposed example where N=2, there are 22=4 different sign configurations.
These four configurations follow a convention to the CO code, which is for example determined 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: -, -.
If the configuration of the N signs corresponds to the value of the remainder modulo 2N of the sum of the coefficients of the sublist SE1, step C20 shall be used to enterophically encode the coefficients of the above-mentioned list E1, except for the sign for the coefficient ε2 and the coefficient ε3, which are hidden in the parity of the sum modulo 2N of the coefficients.
If not, at step C10 at least one modifiable coefficient of the sublist SE1 is modified. Such modification is performed by the processing module MTR_CO in Figure 2 in such a way that the remainder modulo 2N of the sum of the modifiable coefficients of the sublist SE1 reaches the value of each of the two hidden signs.
During the above step C11, the processing module MTR_CO makes a corresponding change to the E1 list.
Step C20 is then followed by entropic coding of the coefficients in the above-mentioned list Em1, except for the coefficient sign ε2 and the coefficient sign ε3, which are hidden in the parity of the sum modulo 2N of the coefficients.
Detailed description of the decoding part
A method of implementation of the decoding process according to the invention is now described, in which the decoding process is implemented in software or hardware by modification of a decoder initially compliant with the H.264/MPEG-4 AVC standard.
The decoding process according to the invention is represented as an algorithm with steps D1 to D12 as shown in Figure 3.
Depending on the embodiment, the decoding process according to the invention is implemented in a decoding device or DO decoder, as shown in Figure 4.
In a preliminary step not shown in Figure 3, partitions B1 to BZ are identified in the received data signal F which have been previously encoded by the CO encoder. In the preferred embodiment, these partitions are blocks which have a square shape and are all the same size. Depending on the size of the image 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 embodiment, the blocks may be, for example, rectangular in size and/or alternately misaligned with each other.
Each block or macroblock can also be itself divided into sub-blocks which are themselves subdivisible.
Such identification shall be performed by a flow analysis software module EX_DO, as shown in Figure 4.
During a D1 step as shown in Figure 3, the EX_DO module in Figure 4 selects as the current block Bi the first block B1 to be decoded, for example by placing a reading pointer in the F signal at the beginning of the data in the first block B1.
The decoding of each of the selected coded blocks is then carried out.
In the example shown in Figure 3, such decoding is applied successively to each of the B1 to BZ coded blocks. The blocks are decoded according to, for example, a route raster scan well known to the professional.
The decoding according to the invention is implemented in a software module for decoding MD_DO of the DO decoder, as shown in Figure 4.
During a step D2 as shown in Figure 3, the entropic decoding of the first current block B1 that has been selected is first performed. This is done by an entropic decoding module DE_DO as shown in Figure 4, e.g. CABAC. During this step, the DE_DO module entropically decodes the numerical information corresponding to the amplitude of each of the coded coefficients in the E1 list or the modified Em1 list. At this stage, only the signs of the coefficients in the E1 list or the modified Em1 list are not decoded.
In a step D3 shown in Figure 3, the number of signs likely to have been hidden during the previous entropy coding step C20 is determined. Such a step D3 is performed by a processing software module MTR_DO, as shown in Figure 4.
In the preferred embodiment, the number of hidden signs is one or zero. Furthermore, according to this preferred embodiment, it is the sign of the first non-zero coefficient that is hidden. In the example shown, it is therefore the positive sign of the coefficient ε2=+9.
In an alternative embodiment, the number of hidden signs is either zero, one, two, three or more.
In accordance with the preferred method of implementation of step D3, a sub-list containing coefficients ε'1, ε'2,..., ε'M where M<L may have been modified in the coding shall be determined from that list E1 or the modified list Em1 in a first sub-step D31 as shown in Figure 3.
Such determination shall be made in the same manner as in the above-mentioned C7 coding step.
Like the MTR_CO processing module above, the MTR_DO processing module is initially configured not to change: the zero coefficient (s) before the first non-zero coefficient and, for reasons of computational complexity, the zero coefficient (s) after the last non-zero coefficient.
In the example shown, at the end of sub-step D31, the sub-list SEm1 is given as SEm1 = (9, -6, 0, 0, 1, 0, -1, 2, 0, 0, 1).
In a subsequent sub-step D32 as shown in Figure 3, the MTR_DO processing module compares the number of coefficients that may have been changed with a predetermined TSIG threshold.
If the number of coefficients that may have been changed is below the GIS threshold, a classical entropy decoding of all the coefficient signs in list E1 shall be performed during step D4 as shown in Figure 3. This decoding shall be performed by the CABAC decoder, designated by the reference DE_DO in Figure 4.
If the number of coefficients that may have been changed is above the GST threshold, the classical entropy decoding of all the coefficient signs in the list Em1, except the sign for the first non-zero coefficient ε2, shall be performed in that step D4.
During a D5 step as shown in Figure 3, the MTR_DO processing module calculates the value of a function f that is representative of the coefficients in the sublist SEm1 to determine whether the calculated value is even or odd.
In the preferred embodiment mode 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 SEm1.
In accordance with the convention used for the CO encoder, which is the same as for the DO decoder, an even value of the sum of the coefficients of the sublist SEm1 means that the sign of the first non-zero coefficient of the modified list Em1 is positive, while an odd value of the sum of the coefficients of the sublist SEm1 means that the sign of the first non-zero coefficient of the modified list Em1 is negative.
In the embodiment example where SEm1=(+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_DO deducts that the hidden sign of the first non-zero coefficient ε2 is positive.
During a step D6 shown in Figure 3, and using all the numerical information reconstructed during steps D2, D4 and D5, the quantified coefficients of block Bq1 are reconstructed in a predefined order. In the example shown, this is a zigzag path in reverse to the zigzag path taken during the coding step C6 above. This is done by a ML_DO reader software module, as shown in Figure 4. More specifically, the ML_DO module enters the coefficients of the E1 (one-dimensional) list into block Bq1 (two-dimensional), using said zigzag path in reverse order.
During a step D7 as shown in Figure 3, the quantified residual block Bq1 is dequantified by a conventional dequantification operation which is the inverse of the quantification operation performed in the above-mentioned coding step C5 to produce a decodified dequantified block BDq1.
During a step D8 represented in Figure 3, the inverse transformation of the dequantified block BDq1 is performed, which is the inverse operation of the direct transformation performed in the coding at step C4 above. A decoded residual block BDr1 is then obtained. Such an operation is performed by an inverse transform software module MTI_DO as represented in Figure 4.
During a D9 step, as shown in Figure 3, predictive decoding of the current block B1 is performed. Such predictive decoding is typically performed by known intra and/or inter prediction techniques, in which the B1 block is predicted in relation to at least one previously decoded block.
Of course, other intra-prediction modes such as those proposed in the H.264 standard are possible.
During this step, predictive decoding is performed using the syntax elements decoded in the previous step, including the prediction type (inter or intra), and where applicable, the prediction mode intra, 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 prediction mode prohibition.
The above-mentioned predictive decoding step allows the construction of a predicted block Bp1.
In a step D10 shown in Figure 3, the decoded block BD1 is constructed by adding the decoded residual block BDr1 to the predicted block Bp1.
During a D11 step as shown in Figure 3, the MD_DO decoding module tests whether the current block decoded is the last block identified in the F signal.
If the current block is the last block of the signal F, the decoding process is terminated during a step D12 as shown in Figure 3.
If not, the next block Bi to be decoded is selected in accordance with the above raster scan path order by iteration of steps D1 to D10 for 1≤i≤Z.
We shall now describe, mainly by reference to Figure 3, another way of carrying out the invention.
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.
For this purpose, the above comparison sub-step D32 is replaced by the sub-step D32a shown in dotted form in Figure 3, in which the number of coefficients that may have been changed is compared with several predetermined thresholds 0<TSIG_1<TSIG_2<TSIG_3..., so that if the number of these coefficients is between TSIG_N and TSIG_N+1, N signs have been hidden.
If the number of these coefficients is below the first TSIG_1 threshold, the classical entropy decoding of all the coefficient signs in list E1 shall be carried out in step D4 above.
If the number of these coefficients is between the TSIG_N threshold and TSIG_N+1, the classical entropy decoding of all the coefficient signs in the E1 list shall be performed in step D4 above, except for the respective N signs of the first non-zero coefficients in the modified Em1 list, where these N signs are hidden.
In this other embodiment, the processing module MTR_DO calculates, during step D5, the value of the function f which is the remainder modulo 2N of the sum of the coefficients of the sublist SEm1.
The processing module MTR_DO then deducts the configuration of the two hidden signs which are assigned to each of the first two non-zero coefficients ε2 and ε3 respectively, according to the coding convention.
Once these two signs have been reconstructed, the steps D6 to D12 described above are carried out.
It is clear that the methods of production described above are given for guidance only and not as a limitation, and that many modifications can be easily made by the person skilled in the art without going beyond the scope of the invention.
For example, in a simplified embodiment compared to Figure 1, the CO encoder could be configured to hide at least N predetermined signs, with N ≥ 1, instead of either zero or one or N predetermined signs. In this case, the comparison step C72 or C72a would be removed. Correspondingly, in a simplified embodiment compared to Figure 3, the DO decoder would be configured to reconstruct N predetermined signs instead of either zero or one or N predetermined signs. In this case, the comparison step D32 or D32a would be removed.
In addition, the decision criterion applied at coding step C72 and decoding step D32 could be replaced by another type of criterion, for this purpose, instead of comparing the number of coefficients that can be modified or the number of coefficients that can be modified to a threshold, the processing module MTR_CO or MTR_DO could apply a decision criterion that is a function of the sum of the amplitudes of the coefficients that can be modified or that can be modified, or the number of zeros among the coefficients that can be modified or that can be modified.
Methods of implementation
Although the present invention is defined in the attached claims, it should be understood that the present invention may also (alternatively) be defined in accordance with the following embodiments: 1. A process for encoding at least one image cut into partitions, which involves the following steps: prediction (C2) of data from a current partition based on at least one reference partition already coded and then decoded, yielding a predicted partition;determination (C6) of a residual data set by comparison of data from the current partition and the predicted partition, with the said residual data respectively associated with different numerical information that is to undergo entropy coding,the development of a signal containing such coded information, the coding process being characterised by the following steps being implemented prior to the development of the signal:determination (C71) of a subset of residual data from the specified data set, which contains residual data capable of being modified,calculation (C8) of the value of a function representative of the residual data of the specified data set,comparison (C9) of that value calculated with a value of at least one of the numerical information,as a result of the said comparison,modification (C10) or not of at least one of the residual data of the specified data set,modification of the code,interchange (C20) of at least one of the specified residual data.2. Embodiment 1 coding process in which the said steps following the said step of determining the said residual subset of data are implemented only if a predetermined criterion, function of the modifiable residual data, is met.3. Embodiment 2 coding process in which the said predetermined decision criterion is based on the result of a comparison between the number of modifiable residual data and a predetermined number (TSIG).4. Embodiment 1 coding process in which, in the case where a plurality of digital information is considered during the said comparison step,The latter consists in comparing the calculated value of a function representative of the residual data of that subset determined with the value of a function representative of that plurality of digital information.5. Coding procedure according to embodiment 1, at least one digital information corresponding to the sign of a residual data.6. Coding device (CO) of at least one image cut into partitions, comprising: means (PRED_CO) to predict current partition data based on at least one reference partition already coded and then decoded, yielding a predicted partition,means (MT_CO, MQ_CO, ML_CO) to determine a residual data set suitable for comparison of current partition and predicted partition data,the residual data are associated with different digital information which is to be entropically coded,means (CF) for generating a signal containing the coded information, The coding device is characterised by the fact that it includes, in addition to the means of production, processing means (MTR_CO) capable of: determine from that determined residual data set a subset containing residual data that is amenable to modification,calculate the value of a function representative of the residual data of that determined subset,compare that calculated value with a value of at least one of the said numerical information,modify or not at least one of the residual data of that determined subset,Depending on the result of the change, and the means (CE_CO) of entropic encoding of at least one modified residual data, if modified by such processing means.7. Process for decoding a data signal (F) representative of at least one previously encoded partitioned image, including a step for obtaining (D2) by entropic decoding of that signal, digital information associated with residual data for at least one previously encoded partition, - What? The following steps are characteristic of the decoding process: determination (D31) from these residual data of a subset containing residual data which may have been modified during a previous coding,(D5) the value of a function representative of the residual data of the specified subset,obtaining the value of at least one numerical information different from that obtained by entropic decoding, from the calculated value.8. decoding procedure according to embodiment 7, whereby the said steps following the said step of determining the specified subset of residual data are implemented only if a predetermined criterion, the function of residual data that can be modified, is met.9. decoding procedure according to embodiment 8, whereby the said predetermined decision criterion is the result of a comparison between the number of residual data to be modified and a predetermined number.10. Embodiment 7 decoding process in which a plurality of values associated with a plurality of numerical information other than that obtained by entropic decoding is obtained from the calculated value.11. Embodiment 7 decoding process, in which at least one numerical information corresponding to the sign of a residual data is entered.12. Device (DO) for decoding a data signal representative of at least one partitioned image that has been previously encoded, including means (DE_DO) for obtaining, by entropic decoding of the data input of the signal, numerical information associated with residual data relating to at least one previously encoded partitioned image,- What? - What? The decoding device is characterised by the inclusion of processing means (MTR_DO) which are capable of: determine from the residual data a subset containing residual data which may have been modified during a previous coding,calculate the value of a function representative of the residual data of the specified subset,obtain the value of at least one numerical information different from that obtained by entropy decoding from the calculated value.13. computer program containing instructions for implementing the coding process in any of the embodiments 1 to 5 when the coding process is performed on a computer.14. Computer program containing instructions for implementing the decoding process in any of the modes 7 to 11 when the decoding process is executed on a computer.

Claims (4)

1. Device (DO) for decoding a data signal representative of at least one image cut into partitions that has been previously encoded, including means (DE_DO) for obtaining, by entropic decoding of data from that signal, numerical information associated with residual data relating to at least one previously encoded partition, the characteristic of such decoding device being that it includes processing means (MTR DO) that are capable of: - What?
- determine, from the said residual data, a subset containing residual data which may be changed during a previous coding, the subset is determined by a first non-zero coefficient and the last non-zero coefficient, in which the zero coefficients before the first non-zero coefficient and the zero coefficients after the last non-zero coefficient are not likely to be changed,
- calculate the value of a sum of the amplitudes of the residual data of that subset determined,
- obtain the value of at least one numerical information different from that obtained by entropic decoding, from the calculated value, in which the value obtained is the sign of the first non-zero coefficient.
Decoding device (DO) according to claim 1 in which N respective signs of the first non-zero coefficients of the subset are obtained Decoding device (DO) according to claim 1 in which the steps following the step of determining the subset of residual data are implemented only if a predetermined criterion, based on the residual data that can be modified, is met.
Decoding device (DO) according to claim 1, in which a plurality of values associated with a plurality of numerical information different from that obtained by entropic decoding is obtained from the calculated value.
Decoding device (DO) according to claim 1, at least one numerical information corresponding to the sign of a residual data.
HK19132915.0A 2011-11-07 2019-11-28 Method and recording medium storing coded image data HK40009225B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1160109 2011-11-07

Publications (2)

Publication Number Publication Date
HK40009225A true HK40009225A (en) 2020-06-19
HK40009225B HK40009225B (en) 2022-04-08

Family

ID=

Similar Documents

Publication Publication Date Title
US12519985B2 (en) Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
US11889098B2 (en) Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
HK40076028A (en) Method and recording medium storing coded image data
HK40009225A (en) Method and recording medium storing coded image data
HK1240002A1 (en) Method and recording medium storing coded image data
HK40076577A (en) Method for image decoding, device for image decoding, and corresponding computer program
HK1221837B (en) Recording medium storing coded image data
HK1222070B (en) Procedure for decoding of images
HK1240002B (en) Method and recording medium storing coded image data
US12542922B2 (en) Method of coding and decoding images, coding and decoding device and computer programs corresponding thereto
RU2782400C2 (en) Method of encoding and decoding images, device for encoding and decoding and corresponding software
RU2808075C1 (en) Method for image coding and decoding, coding and decoding device and corresponding computer programs
HK1202200B (en) Procedure for coding and decoding of images, apparatus for coding and decoding and corresponding computer programs
RU2850052C2 (en) Computer-readable medium for encoding and decoding images
HK40031869A (en) Method for image decoding
HK40031869B (en) Method for image decoding
HK1242881A1 (en) Recording medium storing coded image data
HK40003772A (en) Method for image decoding
HK40003772B (en) Method for image decoding
HK1217069B (en) Method for decoding images
HK1219192B (en) Recording medium storing coded image data
HK1202350B (en) Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs
HK1242881B (en) Recording medium storing coded image data
HK1201395B (en) Method for encoding and decoding images, encoding and decoding device