[go: up one dir, main page]

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

Method and recording medium storing coded image data Download PDF

Info

Publication number
HK1240002B
HK1240002B HK17113419.7A HK17113419A HK1240002B HK 1240002 B HK1240002 B HK 1240002B HK 17113419 A HK17113419 A HK 17113419A HK 1240002 B HK1240002 B HK 1240002B
Authority
HK
Hong Kong
Prior art keywords
coefficients
list
sign
coefficient
sum
Prior art date
Application number
HK17113419.7A
Other languages
German (de)
French (fr)
Chinese (zh)
Other versions
HK1240002A1 (en
Inventor
Felix 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 HK1240002A1 publication Critical patent/HK1240002A1/en
Publication of HK1240002B publication Critical patent/HK1240002B/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 encoded-decoded reference frames, 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 through in a reading order usually in zigzag (as in the JPEG standard), which allows to exploit the significant 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 entropically coded,for each non-zero coefficient,the sign that is assigned to 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-competitive 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 coded data signal 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 flow-distortion cost mentioned above.
The decoder does not read the MVComp index from the signal. The decoder simply determines the residual in a conventional way. 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, which inevitably affect the efficiency of video compression.
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 of the objects of the present invention is a process for encoding 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 of 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,opic coding of the input of 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 residual data capable of being modified 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 are 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 yet 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 yet another particular embodiment, the at least one digit information 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 is amenable to modification,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 following data are used for the determination of the entropy of the data:
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 that 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 yet another particular embodiment, the at least one digit information 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 previously coded partitioned image, including means for obtaining, by entropic decoding of signal data, numerical information associated with residual data relating to at least one previously coded 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 features 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 of the invention, 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 is cut out of an IE image in a predetermined order into a plurality of partitions B1 and 2, B2 and, ... , BI, ... , BZ, as shown in Figure 2.
It should be noted that, for the purposes 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: - What? 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.
After this cutting step, each of the B-current partitions is coded.I(i being an integer such that 1≤i≤Z) of the above figure IE.
In the example shown in Figure 2, such a coding is applied successively to each of the B-blocks1 and 2to BZThe blocks are coded according to, for example, a path such as the path raster scan well known to the professional.
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 BIfirst block B1 and 2As shown in Figure 2, this is the first block on the left of the IE image.
During a step C2 shown in Figure 1, predictive coding of current block B is carried out.1 and 2by known intra and/or inter prediction techniques, during which block B1 and 2is predicted against at least one previously coded and decoded block. Such prediction is performed by a PRED_CO prediction software module as shown in Figure 2.
Of course, other intra-prediction modes such as those proposed in the H.264 standard are possible.
Current block B1 and 2The predictive code of 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. Among the possible predictions for a current block, the optimal prediction is chosen according to a well-known flow rate distortion criterion.
The above predictive coding step allows the construction of a predicted block Bp1 and 2which is an approximation of the current block B1 and 2. Information on this predictive coding is intended to be recorded in 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 mode of prediction prohibit. 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 and 2to the predicted block Bp data1 and 2In particular, during this step, the usual procedure is to subtract the predicted block Bp from the1 and 2of current block B1 and 2to produce a residual block Br1 and 2- I 'm not .
In a subsequent step C4 shown in Figure 1, the residual block Br is transformed into a solid.1 and 2according to a conventional direct transformation operation such as a DCT-type discrete cosine transformation to produce a transformed block Bt1 and 2Such an operation is performed by a MT_CO software module of transformation, as shown in Figure 2.
In a subsequent step C5 shown in Figure 1, the processed block Bt is quantified.1 and 2The block Bq is a block of the same size as the block Bq.1 and 2This step is performed by means of a software module for quantification MQ_CO as shown in Figure 2.
In a subsequent step C6 shown in Figure 1, the quantified coefficients of block Bq are run through in a pre-defined order.1 and 2In the example shown, this is a classic zigzag path. Such a step is performed by a ML_CO reading software module, as shown in Figure 2.1 and 2=(ε1, ε2,..., εL) of coefficients is obtained, better known as quantified residue , where L is an integer greater than or equal to 1.1 and 2is associated with various digital information that is intended to undergo entropic coding.
Suppose in the example shown, L=16 and the list E1 and 2contains the following 16 coefficients:1 and 2The number of units of the test chemical is given by the following formula:
In the present case: for each coefficient before the last non-zero coefficient in list E1 and 2, a numerical information, such as a bit, is intended to be encoded entropically to indicate whether the coefficient is zero or not: if the coefficient is zero, it is for example the bit of value 0 that will be encoded, while if the coefficient is non-zero, it is the bit of value 1 that 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 equal to one or not: if it is equal to 1, it is for example the value of the bit of 1 that will be encoded,whereas if it is equal to 0, the bit of value 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 coefficients in list E.1 and 2- I 'm not .
As an alternative example, it might 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 and 2- I 'm not .
To this end, 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, the determination is made from the above list E during a first sub-step C71 shown in Figure 1.1 and 2, of a sub-list SE1 and 2containing coefficients capable of being modified ε'1, ε'2,..., ε'M where M< L. 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 SE sub-list1 and 2The result obtained is such that1 and 2=(9,-7,0,0,1,0,-1,2,0,0,1). As a result, eleven modifiable coefficients are obtained.
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 E shall be carried out in step C20 as shown in Figure 1.1 and 2, such as that used for example in a CABAC code, designated by the reference CE_CO in Figure 2.1 and 2is entropically encoded.
If the number of coefficients modifiable is above the TSIG 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 the SE sublist1 and 2- I 'm not .
In the preferred embodiment where a single 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 SE1 and 2- I 'm not .
During a step C9 as shown in Figure 1, the processing module MTR_CO checks whether the parity of the value of the hidden sign corresponds to the parity of the sum of the coefficients of the sublist SE1 and 2under a convention defined in advance at 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 according to the invention, the sign is positive, which corresponds to a zero coding bit value, and the sum of the coefficients of the sublist SE1 and 2is even, step C20 of entropic coding of the coefficients in list E is carried out1 and 2The coefficient of variation is given by the following equation:
If, again by 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 coefficients of the sublist SE1 and 2is odd, the entropic coding of the coefficients in list E is also carried out at step C20.1 and 2The coefficient of variation is given by the following equation:
If, according to the convention adopted in the CO encoder according to the invention, the sign is positive, which corresponds to a zero coding bit value, and the sum of the coefficients of the sublist SE1 and 2is odd, a change of at least one modifiable coefficient of the SE sub-list shall be made during step C10 as shown in Figure 1.1 and 2- I 'm not .
If, again by 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 coefficients of the sublist SE1 and 2is even, at step C10 at least one modifiable coefficient of the SE sub-list is also modified1 and 2- I 'm not .
Such a modification operation shall be performed by the MTR_CO processing module in Figure 2.
In the example of implementation where SE1 and 2=(+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.1 and 2In the preferred method of implementation, +1 or -1 is added to each modifiable coefficient and one modification is selected from all those made.
In the preferred mode of manufacture, 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 is it? - What? 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 above flow-distortion criterion is the addition of the value 1 to the second coefficient -7 of the SE sublist1 and 2- I 'm not .
At the end of step C10, a modified sub-list SEm is then obtained.1 and 2The number of units of the test vehicle shall be the same as the number of units of the test vehicle. - What? It should be noted that during this step, some changes 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, because it would have become zero, and it would then have lost its characteristic of the first non-zero coefficient of the list E.1 and 2The 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 be a decoding error.
During a step C11 as shown in Figure 1, the MTR_CO processing module shall make a corresponding change to the list E1 and 2The following amended list Em1 and 2= (0,+9,-6,0,0,+1,0,-1+,2,0,0,+1,0,0,0,0) is then obtained.
The entropy coding step C20 of the coefficients in the list Em is then carried out.1 and 2The coefficient is the sum of the coefficients of the two sets of values, 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 the amplitudes of the coefficients in list E1 and 2or from the amended list Em1 and 2is coded before all the 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 this is not the case, the following block B is selectedIwhich is 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 B-blocks is completed1 and 2to BZ, a signal F is constructed representing the coded blocks in binary form.
The construction of the binary signal F 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 hidden coefficients 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 to be modified is below the first TSIG_1 threshold, the classical entropy coding of the coefficients in list E shall be carried out in the above step C20.1 and 2For this purpose, the sign of each non-zero coefficient in list E1 and 2is entropically encoded.
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 and 2- I 'm not .
In this other embodiment, the decision to hide N signs being the coder's, the function f is the remainder modulo 2Nof the sum of the coefficients in sub-list SE1 and 2It is assumed that in the proposed example, N=2, the two signs to be hidden are the first two signs of the first two non-zero coefficients respectively, namely ε2 and ε3.
In the next step C9 shown in Figure 1, the MTR_CO processing module checks whether the N sign configuration, or 2Npossible configurations, corresponds to the value of the remainder modulo 2Nof the sum of the coefficients in sub-list SE1 and 2- I 'm not .
In the proposed example where N=2, there are 22 and=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 two consecutive positive signs: +, -;a remainder equal to two corresponds to one consecutive negative sign and one 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 2Nof the sum of the coefficients in sub-list SE1 and 2, entropic coding of the coefficients in list E is carried out at step C201 and 2The above, except for the sign of the coefficient ε2 and the coefficient ε3, which signs are hidden in the parity of the sum modulo 2NThe coefficients.
If this is not the case, at step C10 at least one modifiable coefficient of the SE sub-list shall be modified.1 and 2Such a change is made by the MTR_CO processing module in Figure 2 in such a way that the remaining modulo 2Nof the sum of the coefficients to be modified in sub-list SE1 and 2reaches the value of each of the two hidden signs.
During the above step C11, the processing module MTR_CO shall make a corresponding change to the list E.1 and 2A modified list .1 and 2is then obtained.
The entropy coding step C20 of the coefficients in the list Em is then carried out.1 and 2The following are the symbols of the sum modulo 2 parity, except for the sign for the coefficient ε2 and the sign for the coefficient ε3NThe coefficients.
Detailed description of the decoding part
A method of implementation of the decoding process of the invention is now described, in which the decoding process is implemented in software or hardware by modification of a decoder originally 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 B are identified in the received data signal F.1 and 2to BZIn the preferred embodiment mode, the said partitions are blocks that 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 alternative embodiment mode, 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 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 current block BIfirst block B1 and 2Such selection consists, for example, of placing a reading pointer in the F signal at the beginning of the data in the first block B1 and 2- I 'm not .
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 B-coded blocks1 and 2to BZThe 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 shown in Figure 3, the entropic decoding of the first current block B is first carried out.1 and 2This is done by an entropic decoding module DE_DO as shown in Figure 4, e.g. CABAC type. During this step, the DE_DO module entropically decodes the numerical information corresponding to the amplitude of each of the coded coefficients in list E1 and 2or from the amended list Em1 and 2At this stage, only the signs of the coefficients in list E are available.1 and 2or from the amended list Em1 and 2are 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, the determination is made from the above list E during a first sub-step D31 shown in Figure 3.1 and 2or from the amended list Em1 and 2, of a sublist containing coefficients ε'1, ε'2,..., ε'M where M<L may have been modified in the coding.
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, this is the sub-list SEm1 and 2such as SEm1 and 2The result is that eleven coefficients may have been changed.
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 GST threshold, a classical entropy decoding of all the coefficient signs in list E shall be performed in step D4 as shown in Figure 3.1 and 2Such decoding is performed by the CABAC decoder, designated by the reference DE_DO in Figure 4.1 and 2is entropically decoded.
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 Em shall be carried out at that stage D4.1 and 2, except for the sign of the first non-zero coefficient ε2.
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 and 2to 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 and 2- I 'm not .
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 and 2means that the sign of the first non-zero coefficient in the modified list Em1 and 2is positive, while an odd value of the sum of the coefficients of the sublist SEm1 and 2means that the sign of the first non-zero coefficient in the modified list Em1 and 2is negative.
In the example of implementation where SEm1 and 2=(+9,-6,0,0,+1,0,-1+,2,0,0,+1), the 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 as shown in Figure 3, and using all the numerical information reconstructed during steps D2, D4 and D5, the quantified coefficients of block Bq are reconstructed.1 and 2In the example shown, this is a zigzag path in reverse to the zigzag path performed during the above-mentioned C6 coding step. Such a step is performed by a ML_DO reader software module, as shown in Figure 4. More specifically, the ML_DO module enters the coefficients from the E list1 and 2(single dimension) in block Bq1 and 2(two-dimensional), using the said reverse zigzag sequence.
During a step D7 shown in Figure 3, the residual block Bq is de-quantified.1 and 2according to a conventional de-quantification operation which is the inverse operation of the quantification performed at the above-mentioned coding step C5, to produce a decoded de-quantified block BDq1 and 2Such a step is performed by means of a dequantification software module MDQ_DO as shown in Figure 4.
In a step D8 shown in Figure 3, the inverse transformation of the de-quantified block BDq is carried out.1 and 2which is the inverse of the direct transformation carried out at the above-mentioned C4 coding step.1 and 2This is done by an inverse transform MTI_DO software module as shown in Figure 4.
During a D9 step as shown in Figure 3, predictive decoding of current block B is performed.1 and 2Such predictive decoding is typically performed by known intra and/or inter prediction techniques, in which the B block is1 and 2is predicted with respect to at least one previously decoded block. Such an operation is performed by a predictive decoding module PRED_DO as shown in Figure 4.
Of course, other intra-prediction modes such as those proposed in H.264 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 partition type of a block or macroblock if it has been subdivided, the reference image index and the displacement vector used in the prediction mode prohibit.
The above-mentioned predictive decoding step allows the construction of a predicted block Bp1 and 2- I 'm not .
In a step D10 shown in Figure 3, the decoded block BD is constructed.1 and 2adding to the predicted block Bp1 and 2the remaining block decoded BDr1 and 2This operation is performed by a reconstruction software module MR_DO shown in Figure 4.
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 this is not the case, the following block B is selectedIto be decoded 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 are 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 E shall be carried out in step D4 above.1 and 2For this purpose, the sign of each non-zero coefficient in list E1 and 2is entropically decoded.
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 list E shall be carried out in step D4 above.1 and 2, except for the respective N signs of the first non-zero coefficients of the said amended list Em1 and 2, the 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 2Nof the sum of the coefficients in the sub-list SEm1 and 2We assume that in the example, N = 2.
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.

Claims (5)

  1. Encoding method, comprising:
    determining a sub-list from a list of coefficients of a quantized residual block, the sub-list containing coefficients that are liable to be modified by identifying a first non-zero coefficient and the last non-zero coefficient, wherein the zero coefficients located before the first non-zero coefficient and the zero coefficients located after the last non-zero coefficient are liable to be modified;
    comparing a number of modifiable coefficients with a predetermined threshold of four;
    if the number of modifiable coefficients is lower than or equal to the threshold of four, the coefficients of the list are encoded, the entropy encoding comprising a sign of each non-zero coefficient in the list;
    if the number of modifiable coefficients is higher than the threshold of four, a value of the parity of the sum of the coefficients in the sub-list is calculated;
    verifying whether a single sign that is intended to be hidden corresponds to the parity of the sum of the coefficients in the sub-list according to a convention, wherein:
    if the sign is positive and the sum of the coefficients in the sub-list is even, the coefficients in the list are encoded with the exception of the sign of the coefficient which is hidden in the parity of the sum of the coefficients;
    if the sign is negative and if the sum of the coefficients in the sub-list is odd, the coefficients in the list are encoded with the exception of the sign of the coefficient which is hidden in the parity of the sum of the coefficients;
    if the sign is positive and the sum of the coefficients in the sub-list is odd, at least one modifiable coefficient in the sub-list is modified and the coefficients in the list are encoded with the exception of the sign of the coefficient which is hidden in the parity of the sum of the coefficients; and
    if the sign is negative and the sum of the coefficients in the sub-list is even, at least one modifiable coefficient in the sub-list is modified and the coefficients in the list are encoded with the exception of the sign of the coefficient which is hidden in the parity of the sum of the coefficients,
    and wherein the sign of the first non-zero coefficient is intended to be hidden.
  2. Computer-readable recording medium including a data stream representing at least one image split up into partitions, which image has previously been coded, the data stream comprising:
    - coefficients of a partition (Bi) of at least one coded image, said coefficients being coded by means of CABAC (context-based adaptive binary arithmetic coding)-type coding;
    - said coefficients representing a block of residual data of the partition, the first non-zero coefficient including no sign value;
    the data stream being characterized by:
    - the number of coefficients from the first non-zero coefficient to the last non-zero coefficient, including the first and the last non-zero coefficient, is higher than four;
    - the parity of the sum of said coefficients from the first non-zero coefficient to the last non-zero coefficient determines the sign of the first non-zero coefficient;
    - the sign of the first non-zero coefficient is positive when said sum of the coefficients is an even value, whereas the sign of the first non-zero coefficient is negative when said sum of the coefficients is an odd value.
  3. Medium according to Claim 2, characterized in that the computer-readable recording medium may be an entity or device capable of storage.
  4. Medium according to Claim 3, characterized in that such a medium may include a storage means, such as a ROM, a CD ROM, a microelectronic circuit ROM or a magnetic recording means such as a floppy disk or a hard disk.
  5. Medium according to Claim 4, characterized in that such a recording medium is an integrated circuit.
HK17113419.7A 2011-11-07 2017-12-18 Method and recording medium storing coded image data HK1240002B (en)

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
HK1240002A1 HK1240002A1 (en) 2018-05-11
HK1240002B true HK1240002B (en) 2019-09-13

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
HK1240002B (en) Method and recording medium storing coded image data
HK40009225A (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
HK40076577A (en) Method for image decoding, device for image decoding, and corresponding computer program
KR101366088B1 (en) Method and apparatus for encoding and decoding based on intra prediction
HK1240002A1 (en) Method and recording medium storing coded image data
HK1221837B (en) Recording medium storing coded image data
HK1222070B (en) Procedure for decoding of images
HK40031869B (en) Method for image decoding
HK40031869A (en) Method for image decoding
HK1202200B (en) Procedure for coding and decoding of images, apparatus for coding and decoding and corresponding computer programs
HK1242881A1 (en) Recording medium storing coded image data
HK40003772B (en) Method for image decoding
HK40003772A (en) Method for image decoding
HK1217069B (en) Method for decoding images
HK1202350B (en) Method for encoding and decoding images, encoding and decoding device, and corresponding computer programs
HK1219192B (en) Recording medium storing coded image data
HK1242881B (en) Recording medium storing coded image data