RU2808075C1 - Method for image coding and decoding, coding and decoding device and corresponding computer programs - Google Patents
Method for image coding and decoding, coding and decoding device and corresponding computer programs Download PDFInfo
- Publication number
- RU2808075C1 RU2808075C1 RU2022125804A RU2022125804A RU2808075C1 RU 2808075 C1 RU2808075 C1 RU 2808075C1 RU 2022125804 A RU2022125804 A RU 2022125804A RU 2022125804 A RU2022125804 A RU 2022125804A RU 2808075 C1 RU2808075 C1 RU 2808075C1
- Authority
- RU
- Russia
- Prior art keywords
- coefficients
- sign
- sum
- coefficient
- sublist
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004590 computer program Methods 0.000 title description 4
- 230000004048 modification Effects 0.000 claims description 31
- 238000012986 modification Methods 0.000 claims description 31
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 8
- 238000004377 microelectronic Methods 0.000 claims description 2
- 238000004364 calculation method Methods 0.000 abstract description 2
- 239000000126 substance Substances 0.000 abstract 1
- 230000006870 function Effects 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 9
- 238000013139 quantization Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 238000007906 compression Methods 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 101100322581 Caenorhabditis elegans add-1 gene Proteins 0.000 description 1
- OTMSDBZUPAUEDD-UHFFFAOYSA-N Ethane Chemical compound CC OTMSDBZUPAUEDD-UHFFFAOYSA-N 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Abstract
Description
Область техники, к которой относится изобретениеField of technology to which the invention relates
Настоящее изобретение в целом относится к области обработки изображений, и более конкретно, к кодированию и декодированию цифровых изображений и последовательностей цифровых изображений.The present invention relates generally to the field of image processing, and more particularly to the encoding and decoding of digital images and sequences of digital images.
Изобретение, таким образом, в частности, предназначено для кодирования видеоданных, воплощенного в современных (MPEG, Н.264 и т.д.) или будущих кодерах видеоданных (ITU-T/VCEG (Н.265) или ISO/MPEG (HEVC)).The invention is thus particularly intended for encoding video data embodied in current (MPEG, H.264, etc.) or future video encoders (ITU-T/VCEG (H.265) or ISO/MPEG (HEVC) ).
Уровень техникиState of the art
В современных кодерах видеоданных (MPEG, Н.264 и т.д.) используется представление в виде блоков видеопоследовательности. Изображения разделяют на макроблоки, причем каждый макроблок сам разделен на блоки, и каждый блок или макроблок кодируют, используя прогнозирование внутри изображения или между изображениями. Таким образом, некоторые изображения кодируют, используя пространственное прогнозирование (внутрикадровое прогнозирование), в то время как другие изображения кодируют, используя временное прогнозирование (межкадровое прогнозирование) в отношении одного или более опорных кодируемых - декодируемых изображений, используя компенсацию движения, как известно для специалиста в данной области техники.Modern video encoders (MPEG, H.264, etc.) use a representation in the form of video sequence blocks. The images are divided into macroblocks, each macroblock itself being divided into blocks, and each block or macroblock is encoded using intra-image or inter-image prediction. Thus, some images are encoded using spatial prediction (intra prediction) while other images are encoded using temporal prediction (inter prediction) with respect to one or more reference encoded-decodable images using motion compensation, as is known to one skilled in the art. this field of technology.
Для каждого блока кодируют остаточный блок, также называемый остатком прогнозирования, соответствующий оригинальному блоку, уменьшенному в ходе прогнозирования. Остаточные блоки преобразуют, используя преобразование типа дискретного косинусного преобразования (DCT), затем квантуют, используя, например, квантование скалярного типа. В конце этапа квантования получают коэффициенты, некоторые из которых являются положительными, а другие отрицательными. Затем их пробегают, обычно в зигзагообразном порядке считывания (как в стандарте JPEG), обеспечивая, таким образом, возможность использования существенного количества нулевых коэффициентов при высоких частотах. В конце упомянутого выше пробегания получают одномерный список коэффициентов, который можно назвать "квантованным остатком". Коэффициенты из этого списка затем кодируют, используя энтропийное кодирование.For each block, a residual block, also called prediction residual, corresponding to the original block reduced during prediction, is encoded. The residual blocks are transformed using a discrete cosine transform (DCT) type transform, then quantized using, for example, a scalar type quantization. At the end of the quantization step, coefficients are obtained, some of which are positive and others negative. They are then run through, usually in a zigzag reading order (as in the JPEG standard), thus allowing a significant number of zero coefficients to be used at high frequencies. At the end of the above-mentioned run, a one-dimensional list of coefficients is obtained, which can be called the “quantized remainder”. The coefficients from this list are then encoded using entropy coding.
Энтропийное кодирование (например, арифметическое кодирование или кодирование типа Хаффмана) выполняют следующим образом:Entropy coding (for example, arithmetic or Huffman-type coding) is performed as follows:
- элемент информации подвергают энтропийному кодирования для указания положения последнего ненулевого коэффициента в списке,- the information element is subjected to entropy encoding to indicate the position of the last non-zero coefficient in the list,
- для каждого коэффициента, расположенного перед последним ненулевым коэффициентом, элемент информации энтропийно кодируют для указания, равен или нет этот коэффициент нулю,- for each coefficient located before the last non-zero coefficient, an element of information is entropy encoded to indicate whether this coefficient is equal to zero or not,
- для каждого ненулевого коэффициента, указанного ранее, энтропийно кодируют элемент информации для указания, равен или нет этот коэффициент единице,- for each non-zero coefficient specified previously, entropy encode an element of information to indicate whether this coefficient is equal to one or not,
- для каждого коэффициента, который не равен нулю и не ранен единице и который был расположен перед последним ненулевым коэффициентом, энтропийно кодируют элемент информации амплитуды (абсолютное значение коэффициента, значение которого было уменьшено вдвое),- for each coefficient that is not zero and not equal to one and which was located before the last non-zero coefficient, entropy encode the amplitude information element (the absolute value of the coefficient whose value was halved),
- для каждого ненулевого коэффициента назначенный для него знак кодируют как "0" (для знака "+") или как "1" (для знака "-").- for each non-zero coefficient, the sign assigned to it is coded as “0” (for the “+” sign) or as “1” (for the “-” sign).
В соответствии с технологией Н.264, например, когда макроблок разделяют на блоки, сигнал данных, соответствующий каждому блоку, передают в декодер. Такой сигнал содержит:According to H.264 technology, for example, when a macroblock is divided into blocks, a data signal corresponding to each block is transmitted to a decoder. This signal contains:
- квантованные остатки, содержащиеся в упомянутом выше списке,- quantized balances contained in the list mentioned above,
- элементы информации, представляющие используемый режим кодирования, в частности:- elements of information representing the encoding mode used, in particular:
• режим прогнозирования (внутрикадровое прогнозирование, межкадровое прогнозирование, принятое по умолчанию прогнозирование, с помощью которого получают прогнозирование, для которого не передают информацию в декодер (называется "пропуском");• prediction mode (intra-frame prediction, inter-frame prediction, default prediction, which produces a prediction for which information is not passed to the decoder (called "skip");
• информация, устанавливающая тип прогнозирования (ориентация, опорное изображение и т.д.);• information specifying the type of prediction (orientation, reference image, etc.);
• тип разделения на участки;• type of division into sections;
• тип преобразования, например, 4×4 DCT, 8×8 DCT и т.д.;• conversion type, for example, 4×4 DCT, 8×8 DCT, etc.;
• информация о движении, в случае необходимости;• traffic information, if necessary;
• и т.д.• etc.
Декодирование выполняют изображение за изображением, и для каждого изображения макроблок за макроблоком. Для каждого участка макроблока считывают соответствующие элементы потока. Обратное квантование и обратное преобразование коэффициентов блоков выполняют для получения декодированного остатка прогнозирования. Затем рассчитывают прогнозирование участка, и участок восстанавливают путем добавления прогнозирования к декодированному остатку прогнозирования.Decoding is performed picture by picture, and for each picture macroblock by macroblock. For each section of the macroblock, the corresponding flow elements are read. Inverse quantization and inverse transformation of the block coefficients are performed to obtain the decoded prediction residual. The prediction of the portion is then calculated, and the portion is reconstructed by adding the prediction to the decoded prediction remainder.
Кодирование внутри кадра или между кадрами, в результате конкуренции друг с другом, как воплощено в стандарте Н.264, таким образом, основано на размещении различных элементов информации кодирования, таких как упомянутые выше, так, чтобы они конкурировали с целью выбора лучшего режима, то есть, режима, который оптимизирует кодирование рассматриваемого участка, в соответствии с заданным критерием рабочих характеристик, например, стоимостью случайного искажения, как хорошо известно специалисту в данной области техники.Encoding within a frame or between frames, as a result of competition with each other, as embodied in the H.264 standard, is therefore based on arranging various elements of encoding information, such as those mentioned above, so that they compete to select the best mode, then is, a mode that optimizes the encoding of the region in question, in accordance with a given performance criterion, for example, the cost of random distortion, as is well known to one skilled in the art.
Элементы информации, представляющие выбранный режим кодирования, содержатся в сигнале данных, передаваемом кодером в декодер. Декодер, таким образом, выполнен с возможностью идентификации режима кодирования, выбранного в кодере, с последующим применением прогнозирования, которое соответствует этому режиму.Information elements representing the selected encoding mode are contained in the data signal transmitted by the encoder to the decoder. The decoder is thus configured to identify a coding mode selected in the encoder and then apply a prediction that corresponds to that mode.
В документе "Data Hiding of Motion Information in Chroma and Luma Samples for Video Compression", J.-M. Thicssc, J. Jung and M. Antonini, International workshop on multimedia signal processing, 2011 представлен способ сокрытия данных, который воплощается во время сжатия видеоданных.In "Data Hiding of Motion Information in Chroma and Luma Samples for Video Compression", J.-M. Thicssc, J. Jung and M. Antonini, International workshop on multimedia signal processing, 2011 presents a data hiding method that is implemented during video data compression.
Более конкретно, предложено избегать включения в сигнал, предназначенный для передачи в декодер по меньшей мере одного индекса конкуренции, вырабатываемого из множества индексов конкуренции, предназначенных для передачи. Такой индекс представляет собой, например, индекс MVComp, который представляет элемент информации, для идентификации предиктора вектора движения, используемого для блока, межкадрового прогнозирования. Такой индекс, который может принимать значение 0 или 1, не включают непосредственно в сигнал кодированных элементов данных, но передают посредством четности суммы коэффициентов квантованного остатка. Формируется связь между четностью квантованного остатка и индексом MVComp. В качестве примера, четное значение квантованного остатка ассоциируют со значением 0 индекса MVComp, в то время как нечетное значение квантованного остатка ассоциируют с индексом MVComp со значением 1. При этом могут возникнуть два случая. В первом случае, если четность квантованного остатка уже соответствует четности индекса MVComp, который требуется передать, квантованный остаток кодируют обычным образом. Во втором случае, если четность квантованного остатка отличается от четности индекса MVComp, который требуется передать, квантованный остаток модифицируют таким образом, чтобы его четность была такой же, как у индекса MVComp.Такая модификация включает в себя постепенное увеличение или уменьшение одного или больше коэффициентов квантованного остатка на нечетное значение (например, +1, -1, +3, -3, +5, -5 и т.д.) и поддержание только модификации, которая оптимизирует заданный критерий, в данном случае, ранее упомянутую стоимость случайного искажения.More specifically, it is proposed to avoid including in a signal to be transmitted to a decoder at least one contention index generated from a plurality of contention indices to be transmitted. Such an index is, for example, an MVComp index that represents an information element for identifying a motion vector predictor used for an inter-frame prediction block. Such an index, which can take the value 0 or 1, is not included directly in the coded data element signal, but is transmitted by means of the parity of the sum of the quantized remainder coefficients. A connection is formed between the parity of the quantized remainder and the MVComp index. As an example, an even quantized remainder value is associated with an MVComp index value of 0, while an odd quantized remainder value is associated with an MVComp index value of 1. Two cases may arise. In the first case, if the parity of the quantized remainder already matches the parity of the MVComp index to be transmitted, the quantized remainder is encoded in the usual way. In the second case, if the parity of the quantized remainder differs from the parity of the MVComp index to be transmitted, the quantized remainder is modified so that its parity is the same as that of the MVComp index. Such modification involves gradually increasing or decreasing one or more coefficients of the quantized remainder by an odd value (e.g. +1, -1, +3, -3, +5, -5, etc.) and maintaining only the modification that optimizes the given criterion, in this case, the previously mentioned random distortion cost.
В декодере индекс MVComp не считывают в сигнале. Декодер довольствуется просто обычным определением остатка. Если значение такого остатка будет четным, индекс MVComp устанавливают равным 0. Если значение этого остатка будет нечетным, индекс MVComp устанавливают в 1.In the decoder, the MVComp index is not read into the signal. The decoder is content with simply the usual definition of the remainder. If the value of such remainder is even, the MVComp index is set to 0. If the value of this remainder is odd, the MVComp index is set to 1.
В соответствии с технологией, которая была представлена выше, коэффициенты, которые подвергаются модификации, не всегда выбираются оптимально, так, что применяемая модификация приводит к нарушениям сигнала, передаваемого в декодер. Такие нарушения неизбежно оказывают отрицательное влияние на эффективность сжатия видеоданных.In accordance with the technology that was presented above, the coefficients that are modified are not always chosen optimally, so that the applied modification leads to disturbances in the signal transmitted to the decoder. Such violations inevitably have a negative impact on the efficiency of video data compression.
Раскрытие изобретенияDisclosure of the Invention
Одна из целей изобретения состоит в том, чтобы устранить недостатки упомянутого выше предшествующего уровня техники.One of the objects of the invention is to overcome the disadvantages of the prior art mentioned above.
Таким образом, цель настоящего изобретения относится к способу кодирования по меньшей мере одного изображения, разделенного на участки, такой способ реализует следующие этапы:Thus, the object of the present invention relates to a method for encoding at least one image divided into sections, such a method implements the following steps:
- выполняют прогнозирование элементов данных текущего участка как функцию по меньшей мере одного опорного участка, уже кодированного, а затем декодированного, выводя прогнозируемый участок;- predicting data elements of the current section as a function of at least one reference section already encoded and then decoded, outputting the predicted section;
- определяют набор остаточных элементов данных путем сравнения элементов данных, относящихся к текущему участку и прогнозируемому участку, причем остаточные элементы данных соответственно связаны с различными элементами цифровой информации, для которых требуется выполнить энтропийное кодирование,- determining a set of residual data elements by comparing data elements related to the current site and the predicted site, and the residual data elements are respectively associated with various digital information elements for which entropy coding is required,
- генерируют сигнал, содержащий кодированные элементы информации.- generate a signal containing encoded elements of information.
Способ, в соответствии с изобретением, характеризуется тем, что реализует, перед этапом генерирования сигнала, следующие этапы:The method according to the invention is characterized in that it implements, before the signal generation step, the following steps:
- определяют из определенного набора остаточных элементов данных ноднабор, содержащий элементы остаточных данных, пригодных для модификации,- determine from a certain set of residual data elements a nodeset containing residual data elements suitable for modification,
- рассчитывают значение функции, представляющей элементы остаточных данных упомянутого определенного поднабора,- calculating the value of a function representing the residual data elements of said specific subset,
- сравнивают рассчитанное значение со значением по меньшей мере одного из элементов цифровой информации,- compare the calculated value with the value of at least one of the elements of digital information,
- в зависимости от результата сравнения выполняют модификацию или не выполняют модификацию по меньшей мере одного из элементов остаточных данных в поднаборе,- depending on the result of the comparison, modifying or not modifying at least one of the residual data elements in the subset is performed,
- в случае модификации, выполняют энтропийное кодирование упомянутого по меньшей мере одного элемента модифицированных остаточных данных.- in case of modification, entropy coding of said at least one element of the modified residual data is performed.
Такая последовательность обеспечивает возможность применения технологии скрытия данных в уменьшенном наборе элементов остаточных данных, и в этом наборе элементы остаточных данных пригодны для их модификации.This sequence allows the data hiding technology to be applied to a reduced set of residual data elements, and within this set of residual data elements are suitable for modification.
В соответствии с изобретением, следует понимать, что выражение "элементы остаточных данных" означает элементы данных, для которых применение модификации не приводит к десинхронизации между кодером и декодером.In accordance with the invention, it should be understood that the expression "residual data elements" means data elements for which the application of modification does not result in desynchronization between the encoder and the decoder.
Таким образом, в соответствии с изобретением, элементы остаточных данных, которые предназначены для их модификации, выбирают намного более надежно, чем в ранее процитированном предшествующем уровне техники, обеспечивая, таким образом, возможность получения лучшего качества восстановления изображения в декодере.Thus, in accordance with the invention, the residual data elements that are intended to be modified are selected much more reliably than in the previously cited prior art, thereby allowing better image reconstruction quality to be obtained in the decoder.
Кроме того, возможность модификации уменьшенного количества элементов остаточных данных обеспечивает возможность ускорения кодирования.In addition, the ability to modify a reduced number of residual data elements allows for faster encoding.
В конкретном варианте осуществления этапы, которые следуют за этаном определения поднабора элементов остаточных данных воплощают только, если удовлетворяется заданный критерий, зависящий от элементов остаточных данных, пригодных для их модификации.In a particular embodiment, the steps that follow the step of determining a subset of residual data elements are implemented only if a given criterion is satisfied depending on the residual data elements suitable for modification.
Такая последовательность дополнительно обеспечивает для кодера возможность рационального определения, следует или нет применять в отношении данных технологию скрытия. Такой этап определения имеет преимущество его применения только для ограниченного набора элементов остаточных данных, пригодных для их модификации. Таким образом, обеспечивается то, что технология скрытия данных применяется намного более соответствующим образом, чем в ранее процитированном предшествующем уровне техники, в частности, для наилучшего выбранного количества элементов остаточных данных, для которых точно определили, что после модификации этих элементов данных нарушение сигнала, генерируемого в результате такой модификации, не будет оказывать отрицательное влияние на качество восстановления изображения в декодере.This sequence further allows the encoder to rationally determine whether or not to apply hiding technology to the data. This definition step has the advantage of being applied only to a limited set of residual data elements suitable for modification. Thus, it is ensured that the data hiding technology is applied in a much more appropriate manner than in the previously cited prior art, in particular, for the best selected number of residual data elements for which it is precisely determined that, after modification of these data elements, a violation of the signal generated as a result of such modification, will not have a negative impact on the quality of image reconstruction in the decoder.
В другом частном варианте осуществления заданный критерий определения зависит от результата сравнения между числом элементов остаточных данных, пригодных для их модификации, и заданным числом.In another particular embodiment, a given determination criterion depends on the result of a comparison between the number of residual data elements suitable for modification and a given number.
Такая последовательность обеспечивает улучшение характеристик сжатия арифметического кодера при эффективном уменьшении затрат на передачу сигналов. В частности, такая последовательность обеспечивает возможность точного детектирования числа элементов остаточных данных, из которых было бы целесообразно применить технологию скрытия данных так, чтобы последняя не приводила к высоким уровням нарушений в сигнале, предназначенном для передачи в декодер.This sequence improves the compression performance of the arithmetic encoder while effectively reducing signaling costs. In particular, such a sequence makes it possible to accurately detect the number of residual data elements from which it would be appropriate to apply data hiding technology so that the latter does not lead to high levels of disturbance in the signal intended for transmission to the decoder.
В еще одном частном варианте осуществления, если множество элементов цифровой информации рассматривают во время этапа сравнения, последний приводит к сравнению рассчитанного значения функции, представляющей элементы остаточных данных определенного поднабора, со значением функции, представляющей множество элементов цифровой информации.In yet another particular embodiment, if a plurality of digital information items are considered during the comparison step, the latter results in comparing the calculated value of a function representing the residual data items of a particular subset with the value of a function representing the plurality of digital information items.
Такая последовательность обеспечивает оптимизацию рабочих характеристик арифметического кодера при оптимизации уменьшения затрат на передачу сигналов, поскольку она обеспечивает скрытие нескольких элементов цифровой информации в сигнале, предназначенном для передачи в декодер.This sequence optimizes the performance of the arithmetic encoder while optimizing the reduction of signaling costs, since it ensures that several elements of digital information are hidden in the signal intended for transmission to the decoder.
В еще одном частном варианте осуществления по меньшей мере один элемент цифровой информации соответствует знаку остаточного элемента данных.In yet another particular embodiment, at least one digital information element corresponds to the sign of the residual data element.
Знак представляет собой особенно ценный элемент информации, который требуется скрыть, вследствие того факта, что вероятность появления положительного или отрицательного знака является равновероятной. Также, учитывая, что знак обязательно кодирован в одном бите, таким образом, становится возможным, путем скрытия этой информации, сэкономить один бит в сигнале для передачи в декодер, существенно уменьшая, таким образом, стоимость передачи сигналов. Уменьшение такой стоимости будет тем более высоким, когда возможно, в соответствии с изобретением, скрыть множество знаков, и, поэтому, множество битов.A sign is a particularly valuable piece of information that needs to be hidden due to the fact that the occurrence of a positive or negative sign is equally likely. Also, given that the character is necessarily encoded in one bit, it thus becomes possible, by hiding this information, to save one bit in the signal for transmission to the decoder, thereby significantly reducing the cost of signaling. The reduction in such cost will be all the greater when it is possible, according to the invention, to hide a plurality of characters, and therefore a plurality of bits.
Соответственно, изобретение относится также к устройству кодирования по меньшей мере одного изображения, разделенного на участки, такое устройство, содержит:Accordingly, the invention also relates to a device for encoding at least one image divided into sections, such a device comprising:
- средство прогнозирования элементов данных текущего участка как функции по меньшей мере одного опорного участка, уже кодированного с последующим декодированием с предоставлением прогнозируемого участка,means for predicting data elements of the current portion as a function of at least one reference portion already encoded, followed by decoding to provide the predicted portion,
- средство определения набора остаточных элементов данных, пригодных для сравнения элементов данных, относящихся к текущему участку и прогнозированному участку, элементы остаточных данных связаны, соответственно, с различными элементами цифровой информации, для которых требуется выполнить энтропийное кодирование,- means for determining a set of residual data elements suitable for comparing data elements related to the current section and the predicted section, the residual data elements being associated, respectively, with various digital information elements for which entropy coding is required,
- средство генерирования сигнала, содержащего элементы кодированной информации.- a means of generating a signal containing elements of encoded information.
Такое устройство кодирования характеризуется тем, что оно содержит, перед средством генерирования, средство обработки, которое выполнено с возможностью:Such an encoding device is characterized in that it contains, before the generation means, processing means, which is configured to:
- определять, из определенного набора элементов остаточных данных, поднабор, содержащий элементы остаточных данных, пригодных для их модификации,- determine, from a certain set of residual data elements, a subset containing residual data elements suitable for their modification,
- рассчитывать значение функции, представляющей элементы остаточных данных определенного поднабора,- calculate the value of a function representing elements of the residual data of a certain subset,
- сравнивать рассчитанное значение со значением по меньшей мере одного из элементов цифровой информации,- compare the calculated value with the value of at least one of the elements of digital information,
- модифицировать или не модифицировать упомянутый по меньшей мере один из элементов остаточных данных определенного поднабора в зависимости от результата модификации,- modify or not modify said at least one of the residual data elements of a certain subset depending on the result of the modification,
а также средство энтропийного кодирования по меньшей мере одного элемента модифицированных остаточных данных в случае модификации средством обработки.and means for entropy encoding at least one element of the modified residual data in the event of modification by the processing means.
Соответствующим образом изобретение относится также к способу декодирования сигнала данных, представляющего по меньшей мере одно изображение, разделенное на участки, которое было ранее кодировано, содержащему этап получения путем энтропийного декодирования данных сигнала, элементов цифровых данных, связанных с элементами остаточных данных, которые относятся по меньшей мере к одному ранее кодированному участку.Accordingly, the invention also relates to a method for decoding a data signal representing at least one partitioned image that has been previously encoded, comprising the step of obtaining, by entropy decoding of the signal data, digital data elements associated with residual data elements that are related to at least to at least one previously encoded area.
Такой способ декодирования характеризуется тем, что он содержит следующие этапы:This decoding method is characterized by the fact that it contains the following steps:
- определяют, из элементов остаточных данных, поднабор, содержащий элементы остаточных данных, выполненных с возможностью их модификации во время предыдущего кодирования,- determine, from the residual data elements, a subset containing residual data elements configured to be modified during previous encoding,
- рассчитывают значение функции, представляющей элементы остаточных данных, упомянутого определенного поднабора,- calculating the value of a function representing elements of the residual data of said specific subset,
- из рассчитанного значения определяют значение но меньшей мере одного элемента цифровой информации, которое отличается от тех, которые были получены путем энтропийного декодирования.- from the calculated value, the value of at least one element of digital information is determined, which differs from those obtained by entropy decoding.
В частном варианте осуществления этапы, которые следуют после этапа определения поднабора элементов остаточных данных, реализуют только, если удовлетворяется заданный критерий, зависящий от элементов остаточных данных, подлежащих модификации.In a particular embodiment, the steps that follow the step of determining a subset of residual data elements are implemented only if a given criterion is satisfied depending on the residual data elements to be modified.
В другом частном варианте осуществления заданный критерий определения зависит от результата сравнения между числом элементов остаточных данных, которые могли быть модифицированы, и заданным числом.In another particular embodiment, a predetermined determination criterion depends on the result of a comparison between the number of residual data elements that could be modified and a predetermined number.
В еще одном частном варианте осуществления множество значений, связанных, соответственно, с множеством элементов цифровых данных, которые отличаются от полученных в результате энтропийного декодирования, получают из упомянутого рассчитанного значения.In yet another particular embodiment, a plurality of values associated, respectively, with a plurality of digital data elements that differ from those obtained as a result of entropy decoding are obtained from said calculated value.
В еще одном частном варианте осуществления упомянутый по меньшей мере один элемент цифровой информации соответствует знаку элемента остаточных данных.In yet another particular embodiment, said at least one digital information element corresponds to the sign of the residual data element.
Соответственно изобретение также относится к устройству декодирования сигнала данных, представляющего по меньшей мере одно разделение изображения на участки, которые были ранее кодированы, содержащее средство получения, путем энтропийного декодирования элементов данных сигнала, элементов цифровой информации, связанных с остаточными элементами данных, в отношении по меньшей мере одного ранее кодированного участка.Accordingly, the invention also relates to a data signal decoding apparatus representing at least one division of an image into portions that have been previously encoded, comprising means for obtaining, by entropy decoding of signal data elements, digital information elements associated with residual data elements, with respect to at least at least one previously encoded section.
Такое устройство декодирования отличается тем, что оно содержит средство обработки, которое выполнено с возможностью:Such a decoding device is characterized in that it contains processing means that are configured to:
- определять, из упомянутых остаточных элементов данных, поднабор, содержащий остаточные элементы данных, которые могли быть модифицированы во время предыдущего кодирования,- determine, from said residual data elements, a subset containing residual data elements that may have been modified during the previous encoding,
- рассчитывать значение функции, представляющей элементы остаточных данных определенного поднабора,- calculate the value of a function representing elements of the residual data of a certain subset,
- из рассчитанного значения получать значение по меньшей мерс одного элемента цифровой информации, который отличается от полученных в результате энтропийного декодирования.- from the calculated value, obtain the value of at least one element of digital information, which differs from those obtained as a result of entropy decoding.
Изобретение также относится к компьютерной программе, включающей в себя команды для исполнения этапов представленного выше способа кодирования или декодирования, когда программа исполняется компьютером.The invention also relates to a computer program including instructions for executing steps of the encoding or decoding method presented above when the program is executed by a computer.
В такой программе может использоваться любой язык программирования, и она может быть представлена в форме исходного кода, объектного кода или кода, промежуточного между исходным кодом и объектным кодом, например, в частично компилированной форме или в любой другой требуемой форме.Such a program may use any programming language and may be in the form of source code, object code, or code intermediate between source code and object code, such as partially compiled form or any other desired form.
Еще один другой объект изобретения представляет собой считываемый компьютером носитель записи, включающий в себя команды компьютерной программы, как упомянуто выше.Yet another aspect of the invention is a computer readable recording medium including computer program instructions as mentioned above.
Носитель записи может представлять собой любой объект или устройство, выполненное с возможностью сохранения программы. Например, такой носитель может включать в себя средство сохранения, такое как ROM, например, CD-ROM или ROM в микроэлектронных цепях, или средство магнитной записи, например, гибкий диск или жесткий диск.The recording medium may be any object or device capable of storing a program. For example, such a medium may include storage media such as ROM, such as a CD-ROM or microelectronic ROM, or magnetic recording media, such as a floppy disk or hard disk.
С другой стороны, такой носитель записи может представлять собой среду передачи, такую как электрический или оптический сигнал, который может быть передан через электрический или оптический кабель, через радиоканал или через другое средство. Программа, в соответствии с изобретением, в частности, может быть загружена через сеть типа Интернет.Alternatively, such a recording medium may be a transmission medium such as an electrical or optical signal, which may be transmitted via an electrical or optical cable, a radio link, or other means. The program according to the invention can in particular be downloaded via a network such as the Internet.
В качестве альтернативы, такой носитель записи может представлять собой интегральную схему, в которую встроена программа, схема выполнена с возможностью исполнения рассматриваемого способа или может использоваться при исполнении последнего.Alternatively, such a recording medium may be an integrated circuit in which a program is embedded, a circuit capable of executing the method in question or being used in executing the latter.
Устройство кодирования, способ декодирования, устройство декодирования и компьютерные программы, упомянутые выше, проявляют по меньшей мере те же преимущества, что и те, которые предоставляются способом кодирования, в соответствии с настоящим изобретением.The encoding apparatus, decoding method, decoding apparatus and computer programs mentioned above exhibit at least the same advantages as those provided by the encoding method according to the present invention.
Краткое описание чертежейBrief description of drawings
Другие свойства и преимущества будут понятны при чтении двух предпочтительных вариантов осуществления, описанных со ссылкой на чертежи, на которых:Other features and advantages will become apparent from reading the two preferred embodiments described with reference to the drawings, in which:
на фиг. 1 представлены основные этапы способа кодирования, в соответствии с изобретением,in fig. 1 shows the main steps of the encoding method in accordance with the invention,
на фиг. 2 представлен вариант осуществления устройства декодирования в соответствии с изобретением,in fig. 2 shows an embodiment of a decoding device in accordance with the invention,
на фиг. 3 представлены основные этапы способа декодирования в соответствии с изобретением,in fig. 3 shows the main steps of the decoding method in accordance with the invention,
на фиг. 4 представлен вариант осуществления устройства декодирования в соответствии с изобретением.in fig. 4 shows an embodiment of a decoding device in accordance with the invention.
Подробное описание кодирующей частиDetailed description of the coding part
Ниже будет описан вариант осуществления изобретения, в котором используется способ кодирования, в соответствии с изобретением, для кодирования последовательности изображений в соответствии с двоичным потоком, близко к тому, что получают путем кодирования в соответствии со стандартом H.264/MPEG-4 AVG В этом варианте осуществления способ кодирования, в соответствии с изобретением, например, воплощен в виде программных средств или в форме аппаратных средств путем модификаций кодера, первоначально соответствующего стандарту Н. 264/MPBG-4 AVC. Способ кодирования, в соответствии с изобретением, представлен в форме алгоритма, включающего в себя этапы от С1 до С40, представленные на фиг. 1.An embodiment of the invention will be described below in which the encoding method according to the invention is used to encode a sequence of images in accordance with a bit stream close to that obtained by encoding in accordance with the H.264/MPEG-4 AVG standard. In this In an embodiment, the encoding method according to the invention is, for example, implemented in software form or in hardware form by modifications to an encoder originally compliant with the H.264/MPBG-4 AVC standard. The encoding method according to the invention is presented in the form of an algorithm including steps C1 to C40 shown in FIG. 1.
В соответствии с вариантом осуществления изобретения, способ кодирования, в соответствии с изобретением, воплощен в устройстве кодирования или в кодере СО, вариант осуществления которого представлен на фиг. 2.According to an embodiment of the invention, the encoding method according to the invention is embodied in an encoding device or CO encoder, an embodiment of which is shown in FIG. 2.
В соответствии с изобретением, перед фактическим этапом кодирования, изображение IE последовательности изображений, предназначенное для кодирования в заданном порядке, разделяют на множество Z участков В1, В2, …, Bi, … Bz, как представлено на фиг. 2.According to the invention, before the actual encoding step, the image sequence image IE to be encoded in a given order is divided into a plurality of Z portions B 1 , B 2 , ..., B i , ... B z , as shown in FIG. 2.
Следует отметить, что в смысле изобретения, термин "участок" означает модуль кодирования. Такая последняя терминология, в частности, используется в стандарте HEVC/H.265, черновик которого, например, представлен в документе, доступном по следующему адресу в Интернет:It should be noted that in the sense of the invention, the term "section" means an encoding module. This latter terminology is particularly used in the HEVC/H.265 standard, a draft of which, for example, is presented in a document available at the following Internet address:
<http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=3286><http://phenix.int-evry.fr/jct/doc_end_user/current_document.php?id=3286>
В частности, такие группы модулей кодирования вместе устанавливают пиксели прямоугольной или квадратной формы, также называемые блоками, макроблоками или наборами пикселей, которые имеют другие геометрические формы.In particular, such groups of encoding modules together establish rectangular or square shaped pixels, also called blocks, macroblocks or sets of pixels, which have other geometric shapes.
В примере, представленном на фиг. 2, упомянутые участки представляют собой блоки, которые имеют квадратную форму, и все из которых имеют одинаковый размер. В зависимости от размера изображения, который не обязательно составляет кратное размера блока, последние блоки слева и последние блоки снизу не обязательно должны быть квадратной формы. В альтернативном варианте осуществления блоки могут, например, иметь прямоугольную форму и/или могут не быть выровнены друг с другом.In the example shown in FIG. 2, the sections mentioned are blocks that are square in shape and all of which are the same size. Depending on the image size, which is not necessarily a multiple of the block size, the last blocks on the left and the last blocks on the bottom do not need to be square. In an alternative embodiment, the blocks may, for example, be rectangular in shape and/or may not be aligned with each other.
Каждый блок или макроблок, кроме того, может быть сам разделен на подблоки, которые сами после этого могут быть подразделены.Each block or macroblock can, in addition, itself be divided into subblocks, which themselves can then be subdivided.
Такое разделение выполняют с помощью модуля РСО разделения, представленного на фиг. 2, в котором используется, например, алгоритм разделения, хорошо известный сам по себе.This separation is performed using the PSO separation module shown in FIG. 2, which uses, for example, a division algorithm that is well known in itself.
После упомянутого этапа разделения, кодируют каждый из текущих участков Bi (где i представляет собой целое число, такое, как 1≤i≤Z) упомянутого изображения IE.After said division step, each of the current portions B i (where i is an integer such as 1≤i≤Z) of said image IE is encoded.
В примере, представленном на фиг. 2, такое кодирование применяют последовательно для каждого из блоков В1 - BZ текущего изображения IE. Блоки кодируют, например, в соответствии с разверткой, такой как растровая развертка, которая известна специалисту в данной области техники.In the example shown in FIG. 2, such encoding is applied sequentially for each of the blocks B 1 - B Z of the current image IE. The blocks are encoded, for example, according to a scan, such as a raster scan, which is known to one skilled in the art.
Кодирование, в соответствии с изобретением, воплощают в программном модуле МС_СО кодирования кодера СО, как представлено на фиг. 2.The encoding according to the invention is implemented in the encoding software module MS_CO of the CO encoder, as shown in FIG. 2.
Во время этапа С1, представленного на фиг. 1, модуль МС_СО кодирования по фиг. 2 выбирает, в качестве текущего блока В1, первый блок В1, предназначенный для кодирования текущего изображения IE. Как представлено на фиг. 2, он представляет собой первый блок слева от изображения IE.During step C1 shown in FIG. 1, the MS_CO encoding module according to FIG. 2 selects, as the current block B 1 , the first block B 1 intended for encoding the current image IE. As shown in FIG. 2, it is the first block to the left of the IE image.
Во время этапа С2, представленного на фиг. 1, выполняют кодирование с прогнозированием текущего блока В1, используя известные технологии внутрикадрового и/или межкадрового прогнозирования, в течение которого выполняют прогнозирование, используя кодирование с прогнозированием блока В1 в отношении по меньшей мере одном ранее кодированного и декодированного блока. Такое прогнозирование выполняют, используя модуль программного обеспечения прогнозирования FRED СО, как представлено на фиг. 2.During step C2 shown in FIG. 1, perform predictive coding of the current block B 1 using known intra- and/or inter-frame prediction technologies, during which prediction is performed using predictive coding of block B 1 with respect to at least one previously encoded and decoded block. Such prediction is performed using the FRED CO prediction software module, as shown in FIG. 2.
Само собой разумеется, возможны другие режимы внутрикадрового прогнозирования, предложенные в стандарте Н.264.It goes without saying that other intra-prediction modes proposed in the H.264 standard are possible.
Для текущего блока В1 также можно выполнять кодирование с прогнозированием в межкадровом режиме, в течение которого текущий блок прогнозируют в отношении блока из ранее кодированного и декодированного изображения. Другие типы прогнозирования также могут быть предусмотрены. Среди вариантов прогнозирования, возможных для текущего блока, выбирают оптимальное прогнозирование в соответствии с критериями случайного искажения, которые известны специалисту в данной области техники.For the current block B 1 , it is also possible to perform inter-frame predictive coding, during which the current block is predicted with respect to a block from a previously encoded and decoded image. Other types of forecasting may also be provided. Among the prediction options available for the current block, the optimal prediction is selected in accordance with random distortion criteria known to one skilled in the art.
Упомянутый этап кодирования с прогнозированием обеспечивает возможность кодирования с прогнозированием блока Bp1, который представляет собой аппроксимацию текущего блока В1. Элементы информации, относящиеся к такому кодированию с прогнозированием, будут включены в сигнал, для передачи в декодер. Такие элементы информации содержат, в частности, тип прогнозирования (межкадровый или внутрикадровый), и, в случае необходимости, режим внутрикадрового прогнозирования, типы разделения блока или макроблоков, если последние были подразделены, индекс опорного изображения и вектор движения, которые использовали в режиме межкадрового прогнозирования. Такие элементы информации сжимают с помощью кодера СО.Said predictive encoding step enables predictive encoding of a block Bp 1 that is an approximation of the current block B 1 . Information elements related to such predictive coding will be included in the signal for transmission to the decoder. Such information elements include, in particular, the type of prediction (inter- or intra-frame), and, if necessary, the intra-prediction mode, the block or macroblock division types if the latter have been subdivided, the reference image index and the motion vector used in the inter-prediction mode . Such information elements are compressed using a CO encoder.
Во время следующего этапа С3, представленного на фиг. 1, модуль PRED_СО прогнозирования сравнивает элементы данных, относящиеся к текущему блоку B1, с элементами данных прогнозируемого блока Вр1. Более конкретно, во время этого этапа, обычно блок Bp; прогнозирования вычитают из текущего блока В1 для получения остаточного блока Br1.During the next step C3, shown in FIG. 1, the prediction module PRED_CO compares the data elements related to the current block B 1 with the data elements of the predicted block Bp 1 . More specifically, during this stage, usually a Bp block; predictions are subtracted from the current block B 1 to obtain the residual block Br 1 .
В течение следующего этапа С4, представленного на фиг. 1, остаточный блок Br1 преобразуют в соответствии с обычной операцией прямого преобразования, такой, как, например, тип дискретного косинусного преобразования DCT, для получения преобразованного блока Bt1. Такая операция выполняется программным модулем МТ_СО преобразования, как представлено на фиг. 2.During the next step C4, shown in FIG. 1, the residual block Br 1 is transformed in accordance with a conventional direct transform operation, such as, for example, the discrete cosine transform type DCT, to obtain the transformed block Bt 1 . This operation is performed by the conversion software module MT_CO, as shown in FIG. 2.
Во время следующего этапа С5, представленного на фиг. 1, преобразованный блок Bt1 квантуют в соответствии с обычной операцией квантования, такой как, например, скалярное квантование. Затем получают блок Bq1 квантованных коэффициентов. Такой этап выполняют, используя программный модуль MQ_СО квантования, как представлено на фиг. 2.During the next step C5 shown in FIG. 1, the transformed block Bt 1 is quantized in accordance with a conventional quantization operation such as, for example, scalar quantization. A block Bq 1 of quantized coefficients is then obtained. This step is performed using the quantization software module MQ_CO, as shown in FIG. 2.
Во время следующего этапа С6, представленного на фиг. 1, для квантованных коэффициентов блока Bq1 выполняют развертку в заданном порядке. В представленном примере такая развертка представляет собой обычную зигзагообразную развертку. Этот этап выполняют, используя программный модуль ML_CO считывания, как представлено на фиг. 2. В конце этапа С6 получают одномерный список E1=(ε1, ε2, …, εL) коэффициентов, обычно известный, как "квантованный остаток", где L представляет собой целое число, большее чем или равное 1. Каждый из коэффициентов в списке Е1 взаимосвязан с различными элементами цифровой информации, для которых предполагается выполнить энтропийное кодирование. Такие элементы цифровой информации описаны ниже в качестве примера.During the next step C6 shown in FIG. 1, the quantized coefficients of block Bq 1 are scanned in a given order. In the example presented, such a sweep is a regular zigzag sweep. This step is performed using the readout software module ML_CO as shown in FIG. 2. At the end of step C6, a one-dimensional list E 1 =(ε1, ε2, ..., εL) of coefficients is obtained, usually known as the “quantized remainder”, where L is an integer greater than or equal to 1. Each of the coefficients in the list E 1 is interconnected with various elements of digital information for which entropy coding is supposed to be performed. Such digital information elements are described below by way of example.
Предположим, что в представленном примере, L=16, и что список Е1 содержит следующие шестнадцать коэффициентов: E1=(0, +9, -7, 0, 0, +1, 0, -1, +2, 0, 0, +1, 0, 0, 0, 0).Suppose that in the presented example, L = 16, and that the list E 1 contains the following sixteen coefficients: E 1 = (0, +9, -7, 0, 0, +1, 0, -1, +2, 0, 0, +1, 0, 0, 0, 0).
В данном случае:In this case:
- для каждого коэффициента, расположенного перед последним ненулевым коэффициентом в списке E1, элемент цифровой информации, такой как бит, должен быть энтропийно кодирован для обозначения, равен или нет этот коэффициент нулю: если этот коэффициент равен нулю, будет кодирован, например, бит со значением 0, в то время как, если коэффициент не равен нулю, будет кодирован бит со значением 1;- for each coefficient located before the last non-zero coefficient in the list E 1 , an element of digital information, such as a bit, must be entropy encoded to indicate whether that coefficient is zero or not: if this coefficient is zero, a bit will be encoded, for example value 0, while if the coefficient is not zero, the bit will be encoded with the value 1;
- для каждого ненулевого коэффициента +9, -7, +1, -1, +2, +1, элемент цифровой информации, такой как бит, должен быть подвергнут энтропийному кодированию для обозначения, равно или нет абсолютное значение коэффициента единице: если оно равно 1, тогда будет кодировано, например, значении бита с величиной 1, в то время как, если оно не равно 1, будет кодирован бит со значением 0;- for each non-zero coefficient +9, -7, +1, -1, +2, +1, an element of digital information, such as a bit, must be entropy encoded to indicate whether the absolute value of the coefficient is equal to one: if it is equal to 1, then, for example, a bit value with a value of 1 will be encoded, while if it is not 1, a bit with a value of 0 will be encoded;
- для каждого ненулевого коэффициента и для которого абсолютное значение не равно единице, и который расположен перед последним ненулевым коэффициентом, таким, как коэффициенты со значениями +9, -7, +2, элемент информации амплитуды (абсолютное значение коэффициента, из которого вычли значение два) подвергают энтропийному кодированию;- for each non-zero coefficient and for which the absolute value is not equal to one, and which is located before the last non-zero coefficient, such as coefficients with values +9, -7, +2, an amplitude information element (the absolute value of the coefficient from which the value two has been subtracted ) are subjected to entropy coding;
- для каждого ненулевого коэффициента знак, назначенный ему, кодируют, используя элемент цифровой информации, такой как бит, например, устанавливают в '0' (для знака "+") или устанавливают в '1' (для знака "-").- for each non-zero coefficient, the sign assigned to it is encoded using a digital information element such as a bit, for example set to '0' (for a "+" sign) or set to '1' (for a "-" sign).
Ниже, со ссылкой на фиг. 1, будут описаны конкретные этапы кодирования, в соответствии с изобретением.Below, with reference to FIG. 1, specific encoding steps in accordance with the invention will be described.
В соответствии с изобретением определяют, что следует исключить энтропийное кодирование по меньшей мере одного из упомянутых выше элементов информации. По причинам, которые пояснялись выше в описании, в предпочтительном варианте воплощения, определяют, что не следует выполнять энтропийное кодирование по меньшей мере для одного знака одного из упомянутых коэффициентов в списке Е1.In accordance with the invention, it is determined that entropy coding of at least one of the above-mentioned information elements should be eliminated. For reasons explained above in the description, in a preferred embodiment, it is determined that entropy encoding should not be performed on at least one sign of one of said coefficients in the list E 1 .
В качестве альтернативного примера, в частности, можно было бы определить необходимость энтропийного кодирования по меньшей мере младшего значащего бита двоичного представления амплитуды первого ненулевого коэффициента в упомянутом списке Е1.As an alternative example, in particular, it would be possible to determine the need for entropy encoding of at least the least significant bit of the binary representation of the amplitude of the first non-zero coefficient in said list E 1 .
С этой целью, во время этапа С7, представленного на фиг. 1, выбирают количество знаков, которое требуется скрыть при выполнении более позднего этапа энтропийного кодирования. Такой этап выполняется, используя программный модуль MTR_CO обработки, как представлено на фиг. 2.To this end, during step C7 shown in FIG. 1, select the number of characters to be hidden when performing a later entropy encoding step. Such a step is performed using the MTR_CO processing software module as shown in FIG. 2.
В предпочтительном варианте осуществления количество знаков, которые требуется скрыть, равно одному или нулю. Кроме того, в соответствии с упомянутым предпочтительным вариантом осуществления, предполагается скрыть знак первого ненулевого коэффициента, который предназначен быть скрытым. Поэтому, в представленном примере, скрыт знак коэффициента ε2=+9.In a preferred embodiment, the number of characters to be hidden is one or zero. Moreover, according to said preferred embodiment, it is intended to hide the sign of the first non-zero coefficient that is intended to be hidden. Therefore, in the presented example, the sign of the coefficient ε2=+9 is hidden.
В альтернативном варианте осуществления количество знаков, которые должны быть скрыты, равно либо нулю, единице, двум, трем или больше.In an alternative embodiment, the number of characters that must be hidden is either zero, one, two, three, or more.
В соответствии с предпочтительным вариантом осуществления, на этане С7, во время первого подэтапа С71, представленного на фиг. 1, подсписок SE1, содержащий коэффициенты, пригодные для их модификации, ε'1, ε'2, …, ε'M, где М<L, определяют из упомянутого списка Е1. Такие коэффициенты будут называться ниже в описании модифицируемыми коэффициентами.According to a preferred embodiment, in stage C7, during the first sub-step C71 shown in FIG. 1, sublist SE 1 containing coefficients suitable for their modification, ε'1, ε'2, ..., ε'M, where M<L, are determined from the mentioned list E 1 . Such coefficients will be referred to below in the description as modified coefficients.
В соответствии с изобретением, коэффициент является модифицируемым, если модификация его квантованного значения не приводит к десинхронизации в декодере при обработке этого модифицированного коэффициента декодером. Таким образом, модуль MTR_CO обработки изначально конфигурируют так, чтобы он не выполнял модификацию:In accordance with the invention, a coefficient is modifiable if modification of its quantized value does not lead to desynchronization in the decoder when processing this modified coefficient by the decoder. Thus, the MTR_CO processing module is initially configured so that it does not perform modification:
- нулевого коэффициента или коэффициентов, расположенных перед первым списком из ненулевых коэффициентов таким образом, что декодер не влияет на значение скрытого знака в этом или в этих нулевых коэффициентах,- a zero coefficient or coefficients located before the first list of non-zero coefficients in such a way that the decoder does not affect the value of the hidden sign in this or these zero coefficients,
- и по причинам вычислительной сложности, нулевого коэффициента или коэффициентов, расположенных после последнего ненулевого коэффициента.- and for reasons of computational complexity, zero coefficient or coefficients located after the last non-zero coefficient.
В представленном примере, в конце подэтапа С71, получают подсписок SE1 таким образом, что SE1=(9, -7, 0, 0, 1, 0, -1, 2, 0, 0, 1). Следовательно, получают одиннадцать модифицированных коэффициентов.In the example presented, at the end of substep C71, a sublist SE 1 is obtained such that SE 1 =(9, -7, 0, 0, 1, 0, -1, 2, 0, 0, 1). Consequently, eleven modified coefficients are obtained.
Во время следующего подэтапа С72, представленного на фиг. 1, модуль MTR_СО обработки переходит к сравнению количества модифицированных коэффициентов с заданным пороговым значением TSIG. В предпочтительном варианте осуществления TSIG имеет значение 4.During the next sub-step C72 shown in FIG. 1, the MTR_CO processing module proceeds to compare the number of modified coefficients with the specified threshold value TSIG. In a preferred embodiment, TSIG has a value of 4.
Если количество модифицированных коэффициентов меньше, чем пороговое значение TSIG, то во время этапа С20, представленного на фиг. 1, выполняют обычное энтропийное кодирование коэффициентов в списке Е1, такое, как выполняют, например, в кодере САВАС, обозначенном ссылкой СЕ_СО на фиг. 2. С этой целью, знак каждого ненулевого коэффициента в списке Е1 подвергают энтропийному кодированию.If the number of modified coefficients is less than the threshold value TSIG, then during step C20 shown in FIG. 1, a conventional entropy encoding of the coefficients in the list E 1 is performed, such as is performed, for example, in the CAVAC encoder indicated by the reference CE_CO in FIG. 2. For this purpose, the sign of each non-zero coefficient in the list E 1 is subjected to entropy coding.
Если количество модифицированных коэффициентов больше, чем пороговое значение TSIG, тогда во время этапа С8, представленного на фиг. 1, модуль MTR_CO обработки рассчитывает значение функции f, которое представляет коэффициенты в подсписке SE1.If the number of modified coefficients is greater than the threshold TSIG, then during step C8 shown in FIG. 1, the MTR_CO processing module calculates a function value f that represents the coefficients in the sublist SE 1 .
В предпочтительном варианте осуществления, в котором предполагается скрывать только один знак в сигнале, предназначенном для декодера, функция f представляет собой четность суммы коэффициентов в подсписке SE1.In the preferred embodiment, in which it is intended to hide only one character in the signal destined for the decoder, the function f represents the parity of the sum of the coefficients in the sublist SE 1 .
Во время этапа С9, представленного на фиг. 1, модуль MTR_CO обработки проверяет, соответствует ли четность значения знака, который должен быть скрыт, четности суммы коэффициентов в подсписке SE1, в соответствии с установленным заранее определенным в кодере СО условием.During step C9 shown in FIG. 1, the MTR_CO processing module checks whether the parity of the value of the sign to be hidden matches the parity of the sum of the coefficients in the sublist SE 1 , in accordance with a predetermined condition in the CO encoder.
В предложенном примере упомянутое соглашение является таким, что положительный знак ассоциируют с битом со значением равным нулю, в то время, как отрицательный знак ассоциирован с битом со значением равным единице.In the proposed example, said convention is such that a positive sign is associated with a bit with a value of zero, while a negative sign is associated with a bit with a value of one.
Вели, в соответствии с условием, принятым в кодере СО, в соответствии с изобретением, знак является положительным, что соответствует значению бита кодирования равного нулю, и если сумма коэффициентов в подсписке SE] является четной, тогда выполняют этап С20 для энтропийного кодирования коэффициентов в упомянутом выше списке Е[, за исключением знака коэффициента ε2.Therefore, according to the condition adopted in the CO encoder according to the invention, the sign is positive, which corresponds to the value of the encoding bit equal to zero, and if the sum of the coefficients in the sublist SE] is even, then step C20 is performed to entropy encode the coefficients in the said above list E[, except for the sign of the coefficient ε2.
Если, все еще, в соответствии с соглашением, принятым в кодере СО, в соответствии с изобретением, знак будет отрицательным, что соответствует значению бита кодирования, равному единице, и если сумма коэффициентов в подсписке SE1 нечетная, тогда также выполняют этап С20 для энтропийного кодирования коэффициентов в упомянутом выше списке Е1, за исключением знака коэффициента ε2.If, still in accordance with the convention adopted in the CO encoder according to the invention, the sign is negative, corresponding to an encoding bit value of one, and if the sum of the coefficients in the sublist SE 1 is odd, then step C20 is also performed for the entropy coding the coefficients in the above-mentioned list E 1 , with the exception of the sign of the coefficient ε2.
Если, в соответствии с соглашением, принятым в кодере СО, в соответствии с изобретением, знак будет положительным, что соответствует значению бита кодирования, равным нулю, и если сумма коэффициентов в подсписке SE1 будет нечетной, то во время этапа С10, представленного на фиг. 1, модифицируют по меньшей мере один модифицируемый коэффициент в подсписке SE1.If, according to the convention adopted in the CO encoder according to the invention, the sign is positive, which corresponds to an encoding bit value of zero, and if the sum of the coefficients in the sublist SE 1 is odd, then during step C10 of FIG. . 1, at least one modified coefficient in the sublist SE 1 is modified.
Если, все еще в соответствии с соглашением, принятым в кодере СО, в соответствии с изобретением, знак будет отрицательным, что соответствует значению бита кодирования, равному единице, и если сумма коэффициентов в подсписке SE1 четная, тогда также на этапе С10 модифицируют по меньшей мере один модифицируемый коэффициент в подсписке SE1.If, still in accordance with the convention adopted in the CO encoder according to the invention, the sign is negative, corresponding to an encoding bit value of one, and if the sum of the coefficients in the sublist SE 1 is even, then also in step C10 modify at least at least one modified coefficient in sublist SE 1 .
Такую операцию модификации выполняют с помощью модуля MTR_СО обработки по фиг. 2.Such a modification operation is performed using the MTR_CO processing module of FIG. 2.
В примерном варианте осуществления, в котором SE1=(+9, -7, 0, 0, +1, 0, -1, +2, 0, 0, +1), общая сумма f коэффициентов равна 5, и, поэтому, она нечетная. Для того, чтобы декодер мог реконструировать положительный знак, назначенный для первого ненулевого коэффициента ε2=+9, без кодера СО, чтобы передать этот коэффициент в декодер, четность суммы должна стать четной. Следовательно, модуль MTR СО обработки тестирует, во время упомянутого этана С10, различные модификации коэффициентов в подсписке SE1, все с целью изменения четности суммы коэффициентов. В предпочтительном варианте осуществления добавляют +1 или -1 к каждому модифицированному коэффициенту, и модификацию выбирают среди этих полученных модификаций.In an exemplary embodiment in which SE 1 =(+9, -7, 0, 0, +1, 0, -1, +2, 0, 0, +1), the total sum of f coefficients is 5, and therefore , she's odd. In order for the decoder to be able to reconstruct the positive sign assigned to the first non-zero coefficient ε2=+9, without the CO encoder passing this coefficient to the decoder, the parity of the sum must become even. Consequently, the MTR CO processing module tests, during said ethane C10, various modifications of the coefficients in the sublist SE 1 , all with the aim of changing the parity of the sum of the coefficients. In a preferred embodiment, +1 or -1 is added to each modified coefficient, and a modification is selected from among these resulting modifications.
В предпочтительном варианте осуществления в результате такого выбора формируется оптимальное прогнозирование, в соответствии с критерием рабочих характеристик, который, например, представляет собой критерий случайного искажения, как хорошо известно специалисту в данной области техники. Такой критерий выражается уравнением (1), представленным ниже:In a preferred embodiment, this selection results in an optimal prediction, in accordance with a performance criterion, which, for example, is a random distortion criterion, as is well known to one skilled in the art. This criterion is expressed by equation (1), presented below:
(1) J=D+λR(1) J=D+λR
где D представляет собой искажение между оригинальным макроблоком и реконструированным макроблоком, R представляет стоимость кодирования в битах элементов информации кодирования, и λ представляет множитель Лагранжа, значение которого может быть фиксировано перед кодированием.where D represents the distortion between the original macroblock and the reconstructed macroblock, R represents the encoding cost in bits of encoding information elements, and λ represents the Lagrange multiplier, the value of which may be fixed before encoding.
В предложенном примере модификация, которая приводит к оптимальному прогнозированию, в соответствии с упомянутым выше критерием случайного искажения, представляет собой добавление значения 1 ко второму коэффициенту -7 в подсписке SE1.In the proposed example, the modification that results in optimal prediction, according to the random distortion criterion mentioned above, is adding the value 1 to the second coefficient -7 in the sublist SE 1 .
Следовательно, в конце этапа С10 модифицируемый подсписок получает модифицированный подсписок SEm1=(+9, -6, 0, 0, +1, 0, -1, +2, 0, 0, +1).Therefore, at the end of step C10, the modified sublist receives the modified sublist SEm 1 =(+9, -6, 0, 0, +1, 0, -1, +2, 0, 0, +1).
Следует отметить, что во время этого этапа, определенные модификации запрещены. Таким образом, если бы первый ненулевой коэффициент ε2 имел значение +1, было бы невозможно добавить к нему -1, поскольку он при этом слал бы равным нулю, и таким образом, потерял бы свою характеристику первого ненулевого коэффициента в списке F1. Декодер при этом должен связать декодируемый знак (путем расчета четности суммы коэффициентов) с другим коэффициентом, и при этом возникла бы ошибка декодирования.It should be noted that during this stage, certain modifications are prohibited. Thus, if the first non-zero coefficient ε2 had a value of +1, it would be impossible to add -1 to it, since it would still be equal to zero, and thus would lose its characteristic of being the first non-zero coefficient in the list F 1 . The decoder must then associate the decoded sign (by calculating the parity of the sum of the coefficients) with another coefficient, and a decoding error would occur.
Во время этапа С11, представленного на фиг. 1, модуль MTR_CO обработки выполняет соответствующую модификацию в списке E1. Затем получают следующий модифицированный список Em1=(0, +9, -6, 0, 0, +1, 0, -1, +2, 0, 0, +1, 0, 0, 0, 0).During step C11 shown in FIG. 1, the processing module MTR_CO performs the corresponding modification in the list E 1 . Then the following modified list Em 1 =(0, +9, -6, 0, 0, +1, 0, -1, +2, 0, 0, +1, 0, 0, 0, 0) is obtained.
Затем, на этапе С20, для энтропийного кодирования коэффициентов в упомянутом выше списке, выполняют Em1, за исключением знака коэффициента ε2, который представляет собой знак "+" коэффициента 9 в представленном примере, и этот знак скрыт в четности суммы коэффициентов.Then, in step C20, to entropy encode the coefficients in the above list, Em 1 is performed except for the sign of the coefficient ε2, which is the "+" sign of the coefficient 9 in the present example, and this sign is hidden in the parity of the sum of the coefficients.
Следует отметить, что набор амплитуд коэффициентов в списке Е1, или в модифицированном списке Em1 кодируют перед набором знаков, за исключением знака первого ненулевого коэффициента ε2, который не кодируют, как пояснялось выше.It should be noted that the set of coefficient amplitudes in the list E 1 , or in the modified list Em 1 , is encoded before the set of characters, with the exception of the sign of the first non-zero coefficient ε2, which is not encoded, as explained above.
Во время следующего этапа С30, представленного на фиг. 1, модуль МС_СО кодирования на фиг. 2 тестирует, является ли текущий блок кодирования последним блоком изображения IB.During the next step C30 shown in FIG. 1, the MC_CO encoding module in FIG. 2 tests whether the current encoding block is the last IB image block.
Если текущий блок представляет собой последний блок изображения IE, тогда во время этапа С40, представленного на фиг. 1, способ кодирования заканчивается.If the current block is the last image block IE, then during step C40 shown in FIG. 1, the encoding method ends.
Если это не так, выбирают следующий блок Bi, который затем кодируют в соответствии с порядком ранее упомянутой растровой развертки, путем повторения этапов от С1 до С20, для 1≤i≤Z.If this is not the case, the next block Bi is selected, which is then encoded in accordance with the previously mentioned raster scan order by repeating steps C1 to C20, for 1≤i≤Z.
После выполнения энтропийного кодирования всех блоков В1-BZ, конструируют сигнал F, представляющий, в двоичной форме, упомянутые кодированные блоки.After performing entropy encoding of all blocks B 1 -B Z , a signal F is constructed representing, in binary form, the encoded blocks.
Построение двоичного сигнала F воплощено в программном модуле CF построения потока, как представлено на фиг. 2.The construction of the binary signal F is implemented in the stream construction software module CF, as shown in FIG. 2.
Поток F затем передают через сеть передачи данных (не показана) в удаленный терминал. Последний включает в себя декодер, который будет более подробно описан ниже в этом описании.Stream F is then transmitted via a data network (not shown) to the remote terminal. The latter includes a decoder, which will be described in more detail later in this description.
Далее, в основном, со ссылкой на фиг. 1, будет описан другой вариант осуществления изобретения.Next, referring generally to FIG. 1, another embodiment of the invention will be described.
Этот другой вариант осуществления отличается от предыдущего только количеством коэффициентов, которые должны быть скрыты, которое равно либо 0, или N, где N представляет собой целое число, такое, как N≥2.This other embodiment differs from the previous one only in the number of coefficients to be hidden, which is either 0 or N, where N is an integer such as N≥2.
С этой целью, упомянутый выше подэтап С72 сравнения заменяют подэтапом С72а, представленным пунктирной линией на фиг. 1, во время которого множество модифицируемых коэффициентов сравнивают с несколькими заданными пороговыми значениями 0<TSIG_1<TSIG_2<TSIG_3 …, таким образом, что, если множество модифицированных коэффициентов находится между TSIG_N и TSIG_N+1, предполагается скрыть N знаков.To this end, the comparison sub-step C72 mentioned above is replaced by the comparison sub-step C72a represented by the dotted line in FIG. 1, during which the set of modified coefficients is compared with several predetermined threshold values 0<TSIG_1<TSIG_2<TSIG_3..., such that if the set of modified coefficients is between TSIG_N and TSIG_N+1, N characters are expected to be hidden.
Если множество модифицируемых коэффициентов меньше, чем первое пороговое значение TSIG_1, тогда во время упомянутого выше этапа С20 выполняют обычное энтропийное кодирование коэффициентов в списке Е1. С этой целью знак каждого ненулевого коэффициента в списке E1 подвергают энтропийному кодированию.If the set of modified coefficients is smaller than the first threshold value TSIG_1, then during the above-mentioned step C20, normal entropy encoding of the coefficients in the list E 1 is performed. For this purpose, the sign of each non-zero coefficient in the list E 1 is entropy encoded.
Если множество модифицированных коэффициентов находится между порогами TSIG_N и TSIG_N+1, тогда во время этапа С8, представленного на фиг. 1, модуль MTR_CO обработки рассчитывает значение функции f, которое представляет коэффициенты в подсписке Е1.If the set of modified coefficients is between thresholds TSIG_N and TSIG_N+1, then during step C8 of FIG. 1, the MTR_CO processing module calculates a function value f that represents the coefficients in the sublist E 1 .
В этом другом варианте осуществления, поскольку решение в кодере состоит в том, чтобы скрыть N знаков, функция f представляет собой остаток от модуля 2N суммы коэффициентов в подсписке SE1. Предполагается, в предложенном примере, что N=2, два знака, которые должны быть скрыты, представляют собой два первых знака двух первых ненулевых коэффициентов, соответственно, то есть, ε2 и ε3.In this other embodiment, since the decision at the encoder is to hide N characters, the function f represents the modulo 2 N sum of the coefficients in the sublist SE 1 . It is assumed, in the proposed example, that N=2, the two signs to be hidden are the first two signs of the first two non-zero coefficients, respectively, that is, ε2 and ε3.
Во время следующего этапа С9, представленного на фиг. 1, модуль MTR_CO обработки проверяет, соответствует ли конфигурация из N знаков, то есть, 2N возможных конфигураций, значению остатка модуля 2N суммы коэффициентов в подсписке SE1.During the next step C9, shown in FIG. 1, the processing module MTR_CO checks whether a configuration of N characters, that is, 2 N possible configurations, matches the remainder value of module 2 N of the sum of the coefficients in the sublist SE 1 .
В предложенном примере, где N=2, существуют 22=4 разных конфигураций знаков.In the proposed example, where N=2, there are 2 2 =4 different sign configurations.
Эти четыре конфигурации соответствуют соглашению в кодере СО, причем это соглашение определено, например, следующим образом:These four configurations correspond to a convention in the CO encoder, which convention is defined, for example, as follows:
- остаток, равный нулю, соответствует двум последовательным положительным знакам: +, +;- a remainder equal to zero corresponds to two consecutive positive signs: +, +;
- остаток, равный единице, соответствует последовательным положительному знаку и отрицательному знаку: +, -;- a remainder equal to one corresponds to successive positive signs and negative signs: +, -;
- остаток, равный двум, соответствует последовательным отрицательному знаку и положительному знаку: -, +;- a remainder equal to two corresponds to successive negative signs and positive signs: -, +;
- остаток, равный трем, соответствует двум последовательным отрицательным знакам:- a remainder equal to three corresponds to two consecutive negative signs:
Если конфигурация из N знаков соответствует значению остатка по модулю 2N от суммы коэффициентов в подсписке SE1, то этап С20 для энтропийного кодирования коэффициентов в упомянутом выше списке Е1 выполняется, за исключением знаков коэффициента ε2 и коэффициента ε3, причем эти знаки скрыты в четности суммы модуля 2N коэффициентов.If the configuration of N characters corresponds to the value of the modulo 2 N of the sum of the coefficients in the sublist SE 1 , then step C20 for entropy encoding the coefficients in the above-mentioned list E 1 is performed, with the exception of the signs of the coefficient ε2 and coefficient ε3, and these signs are hidden in the parity modulus sum 2 N coefficients.
Если это не так, тогда выполняют этап С10 для модификации по меньшей мере одного модифицированного коэффициента в подсписке SE1. Такую модификацию выполняют с помощью модуля MTR_CO обработки на фиг. 2 таким образом, что модуль остатка 2N суммы модифицированных коэффициентов в подсписке SE1 достигает значения каждого из двух знаков, которые должны быть скрыты.If this is not the case, then step C10 is performed to modify the at least one modified coefficient in the sublist SE 1 . Such modification is performed using the MTR_CO processing module in FIG. 2 in such a way that the modulus of the remainder 2 N of the sum of the modified coefficients in the sublist SE 1 reaches the value of each of the two signs that must be hidden.
Во время ранее упомянутого этапа С11 модуль MTR_CO обработки выполняет соответствующую модификацию списка Е1. Таким образом, получают модифицированный список Em1.During the previously mentioned step C11, the processing module MTR_CO performs a corresponding modification of the list E 1 . Thus, a modified list Em 1 is obtained.
Затем выполняют этап С20 для энтропийного кодирования коэффициентов в упомянутом выше списке Em1, за исключением знака коэффициента ε2 и знака коэффициента ε3, и эти знаки скрыты в четности суммы модуля 2N коэффициентов.Next, step C20 is performed to entropy encode the coefficients in the above-mentioned list Em 1 except for the sign of the coefficient ε2 and the sign of the coefficient ε3, and these signs are hidden in the parity of the modulus 2 sum of the N coefficients.
Подробное описание декодирующей частиDetailed description of the decoding part
Вариант осуществления способа декодирования, в соответствии с изобретением, будет описан ниже, в котором способ декодирования воплощен в виде программных средств или в форме аппаратных средств, путем модификации декодера, который первоначально соответствует стандарту H.264/MPEG-4 AVC.An embodiment of the decoding method according to the invention will be described below, in which the decoding method is implemented in software form or in hardware form by modifying a decoder that originally complies with the H.264/MPEG-4 AVC standard.
Способ декодирования, в соответствии с изобретением, представлен в форме алгоритма, включающего в себя этапы D1-D12, представленные на фиг. 3.The decoding method according to the invention is presented in the form of an algorithm including steps D1 to D12 shown in FIG. 3.
В соответствии с вариантом осуществления изобретения способ декодирования, в соответствии с изобретением, воплощен в устройстве декодирования или в декодере DO, как представлено на фиг. 4.According to an embodiment of the invention, the decoding method according to the invention is implemented in a decoding device or a DO decoder, as shown in FIG. 4.
Во время предварительного этапа, который не представлен на фиг. 3, в принятом сигнале F данных, идентифицируют участки В1 - BZ, которые были кодированы ранее кодером СО. В предпочтительном варианте осуществления, упомянутые участки представляют собой блоки, которые имеют квадратную форму, и все имеют одинаковый размер. В зависимости от размера изображения, который не обязательно должен составлять целочисленное кратное размера блоков, последние блоки слева и последние блоки снизу не обязательно должны иметь квадратную форму. В альтернативном варианте осуществления блоки могут быть, например, прямоугольными и/или могут не быть выровнены друг с другом.During the preliminary stage, which is not shown in FIG. 3, in the received data signal F, sections B 1 - B Z are identified, which were previously encoded by the CO encoder. In a preferred embodiment, said sections are blocks that are square in shape and all have the same size. Depending on the size of the image, which does not need to be an integer multiple of the size of the blocks, the last blocks on the left and the last blocks on the bottom do not need to be square. In an alternative embodiment, the blocks may be, for example, rectangular and/or may not be aligned with each other.
Каждый блок или макроблок, кроме того, сам по себе может быть разделен на подблоки, которые сами по себе могут быть подразделены.Each block or macroblock can furthermore itself be divided into subblocks, which themselves can be subdivided.
Такая идентификация выполняется с помощью программного модуля EX_DO анализа потока, как представлено на фиг. 4.This identification is performed using the flow analysis software module EX_DO, as shown in FIG. 4.
Во время этапа D1, представленного на фиг. 3, модуль EX_DO на фиг. 4 выбирают в качестве текущего блока В1, первый блок В1 предназначен для декодирования. Такой выбор состоит, например, в размещении указателя считывания в сигнале F, в начале элементов данных первого блока В1.During step D1 shown in FIG. 3, EX_DO module in FIG. 4 is selected as the current block B 1 , the first block B 1 is for decoding. This choice consists, for example, of placing the read pointer in the signal F, at the beginning of the data elements of the first block B 1 .
Затем выполняют декодирование каждого из выбранных блоков кодирования.Decoding is then performed on each of the selected encoding blocks.
В примере, представленном на фиг. 3, такое декодирование применяют последовательно к каждому из кодированных блоков от В1 до BZ. Блоки декодируют, например, в соответствии с растровой разверткой, как хорошо известно специалисту в данной области техники.In the example shown in FIG. 3, such decoding is applied sequentially to each of the coded blocks B 1 to B Z . The blocks are decoded, for example, in accordance with the raster scan, as is well known to one skilled in the art.
Декодирование, в соответствии с изобретением, воплощают в программном модуле MD_DO декодирования декодера DO, как представлено на фиг. 4.The decoding according to the invention is implemented in the decoding software module MD_DO of the DO decoder, as shown in FIG. 4.
Во время этапа D2, представленного на фиг. 3, выполняют первое энтропийное декодирование первого выбранного текущего блока В1. Такую операцию выполняют с помощью модуля DE_DO энтропийного декодирования, представленного на фиг. 4, например, типа САВАС. Во время этого этапа модуль DE_DO выполняет энтропийное декодирование элементов цифровой информации, соответствующих амплитуде каждого из кодированных коэффициентов в списке Е1 или в модифицированном списке Em1. На данном этапе не декодируют только знаки коэффициентов в списке Е1 или в модифицированном списке Em1.During step D2 shown in FIG. 3, perform first entropy decoding of the first selected current block B 1 . This operation is performed using the entropy decoding module DE_DO shown in FIG. 4, for example, type SAVAS. During this step, the DE_DO module performs entropy decoding of digital information elements corresponding to the amplitude of each of the encoded coefficients in the E 1 list or the modified Em 1 list. At this stage, only the signs of the coefficients in the list E 1 or in the modified list Em 1 are not decoded.
Во время этапа D3, представленного на фиг. 3, определяют множество знаков, для которых возможно их скрытие во время предыдущего этапа С20 энтропийного кодирования. Такой этап D3 выполняют с помощью программного модуля MTR_DO обработки, как представлено на фиг. 4. Этап D3 аналогичен упомянутому выше этапу С7 для определения количества знаков, которые должны быть скрыты.During step D3 shown in FIG. 3, define a plurality of characters for which it is possible to hide them during the previous entropy encoding step C20. Such step D3 is performed by the processing software module MTR_DO, as shown in FIG. 4. Step D3 is similar to step C7 mentioned above to determine the number of characters to be hidden.
В предпочтительном варианте осуществления количество скрытых знаков равно единице или нулю. Кроме того, в соответствии с упомянутым предпочтительным вариантом осуществления, скрытым является знак первого ненулевого коэффициента. В представленном примере, поэтому, он представляет собой положительный знак коэффициента ε2=+9.In a preferred embodiment, the number of hidden characters is one or zero. Moreover, according to the mentioned preferred embodiment, the sign of the first non-zero coefficient is hidden. In the example presented, therefore, it represents the positive sign of the coefficient ε2=+9.
В альтернативном варианте осуществления количество скрытых знаков равно нулю, одному, двум, трем или больше.In an alternative embodiment, the number of hidden characters is zero, one, two, three, or more.
В соответствии с предпочтительным вариантом осуществления этапа D3, во время первого подэтапа D31, представленного на фиг. 3, подсписок, содержащий коэффициенты ε'1, ε'2, ε'М, где М<L, которые позволяют выполнять их модификацию при кодировании, определяют из упомянутого списка Е1 или из модифицированного списка Em1.According to a preferred embodiment of step D3, during the first sub-step D31 shown in FIG. 3, a sublist containing the coefficients ε'1, ε'2, ε'M, where M<L, which allow their modification during encoding, are determined from the mentioned list E 1 or from the modified list Em 1 .
Такое определение выполняют так же, как и на упомянутом выше этапе С7 кодирования.This determination is made in the same way as in the above-mentioned encoding step C7.
Аналогично упомянутому выше модулю MTR_CO обработки, модуль MTR_DO обработки первоначально конфигурируют, так, чтобы модифицировать:Similar to the MTR_CO processing module mentioned above, the MTR_DO processing module is initially configured to modify:
- нулевой коэффициент или коэффициенты, расположенные перед первым ненулевым коэффициентом,- zero coefficient or coefficients located before the first non-zero coefficient,
- и по причинам сложности расчетов, нулевой коэффициент или коэффициенты, расположенные после последнего ненулевого коэффициента.- and for reasons of calculation complexity, a zero coefficient or coefficients located after the last non-zero coefficient.
В представленном примере, в конце подэтапа D31, находится подсписок SEm1 такой, как SEm1=(9, -6, 0, 0, 1, 0, -1, 2, 0, 0, 1). Следовательно, получают одиннадцать коэффициентов, которые могли бы быть модифицированы.In the example presented, at the end of substep D31, there is a sublist SEm 1 such as SEm 1 =(9, -6, 0, 0, 1, 0, -1, 2, 0, 0, 1). Consequently, eleven coefficients are obtained that could be modified.
Во время следующего подэтапа D32, представленного на фиг. 3, модуль MTR_DO обработки переходит к сравнению количества коэффициентов, которые могли бы быть модифицированы с заданным пороговым значением TSIG. В предпочтительном варианте осуществления TSIG имеет значение 4.During the next sub-step D32 shown in FIG. 3, the MTR_DO processing module proceeds to compare the number of coefficients that could be modified with a given threshold value TSIG. In a preferred embodiment, TSIG has a value of 4.
Если количество коэффициентов, которые могли быть модифицированы, меньше, чем пороговое значение TSIG, тогда во время этапа D4, представленного на фиг. 3, выполняют обычное энтропийное декодирование для всех знаков коэффициентов в списке Е1. Такое декодирование выполняют с помощью декодера CABAC, обозначенного опорным значением DE_DO на фиг. 4. С этой целью, знак каждого ненулевого коэффициента в списке Е1 подвергают энтропийному декодированию.If the number of coefficients that could be modified is less than the threshold TSIG, then during step D4 shown in FIG. 3, perform the usual entropy decoding for all signs of the coefficients in the list E 1 . Such decoding is performed using a CABAC decoder, indicated by reference value DE_DO in FIG. 4. For this purpose, the sign of each non-zero coefficient in the list E 1 is subjected to entropy decoding.
Если количество коэффициентов, которое может быть модифицировано, больше, чем пороговое значение TSIG, тогда во время упомянутого этапа D4 выполняют обычное энтропийное декодирование всех знаков коэффициентов в списке Em1, за исключением знака первого ненулевого коэффициента ε2.If the number of coefficients that can be modified is greater than the threshold TSIG, then during said step D4, normal entropy decoding is performed on all the signs of the coefficients in the list Em 1 except for the sign of the first non-zero coefficient ε2.
Во время этапа D5, представленного на фиг.3, модуль MTR_DO обработки рассчитывает значение функции f, которое представляет коэффициенты в подсписке SEm, для определения, является ли рассчитанное значение четным или нечетным.During step D5 shown in FIG. 3, the processing unit MTR_DO calculates a function value f that represents the coefficients in the sublist SEm to determine whether the calculated value is even or odd.
В предпочтительном варианте осуществления, где скрыт только один знак в сигнале F, функция f представляет собой четность суммы коэффициентов в подсписке SEm1.In the preferred embodiment, where only one sign is hidden in the signal F, the function f represents the parity of the sum of the coefficients in the sublist SEm 1 .
В соответствии с соглашением, используемым в кодере СО, который является таким же, как и в декодере DO, четное значение суммы коэффициентов в подсписке SEm1 означает, что знак первого ненулевого коэффициента в модифицированном списке Em1 является положительным, в то время, как нечетное значение суммы коэффициентов в подсписке SEm1 означает, что знак первого ненулевого коэффициента в модифицированном списке Em1 является отрицательным.According to the convention used in the CO encoder, which is the same as in the DO decoder, an even value of the sum of coefficients in the sublist SEm 1 means that the sign of the first non-zero coefficient in the modified list Em 1 is positive, while an odd one the value of the sum of coefficients in the sublist SEm 1 means that the sign of the first non-zero coefficient in the modified list Em 1 is negative.
В примерном варианте осуществления, в котором SEm1=(+9, -6, 0, 0, +1, 0, -1, +2, 0, 0, +1), общая сумма коэффициентов равна 6, и, поэтому, является четной. Следовательно, в конце этапа D5, модуль MTR_DO обработки выводит из него, что скрытый знак первого ненулевого коэффициента ε2 является положительным.In an exemplary embodiment in which SEm 1 =(+9, -6, 0, 0, +1, 0, -1, +2, 0, 0, +1), the total sum of the coefficients is 6, and therefore, is even. Therefore, at the end of step D5, the MTR_DO processing module deduces from it that the hidden sign of the first non-zero coefficient ε2 is positive.
Во время этапа D6, представленного на фиг. 3, и с помощью всех реконструированных элементов цифровой информации во время этапов D2, D4 и D5, квантованные коэффициенты блока Bq1 реконструируют в заданном порядке. В представленном примере он представляет собой обратную зигзагообразную развертку в отношении зигзагообразной развертки, выполненной во время упомянутого выше этапа С6 кодирования. Такой этап выполняют с помощью программного модуля ML_DO считывания, как представлено на фиг. 4. Более конкретно, модуль ML_DO продолжает обработку, так, чтобы включить коэффициенты списка Е1 (одномерный) в блок Bq1 (двумерный), используя упомянутый порядок обратной зигзагообразной развертки.During step D6 shown in FIG. 3, and using all the reconstructed digital information elements during steps D2, D4 and D5, the quantized coefficients of block Bq 1 are reconstructed in a given order. In the present example, it is a reverse zigzag scan with respect to the zigzag scan performed during the above-mentioned encoding step C6. This step is performed using the readout software module ML_DO, as shown in FIG. 4. More specifically, the ML_DO module continues processing so as to include the coefficients of the list E 1 (one-dimensional) in the block Bq 1 (two-dimensional), using the above-mentioned reverse zigzag scanning order.
Во время этапа D7, представленного на фиг. 3, квантованный остаточный блок Bq1 подвергают обратному квантованию, в соответствии с обычной операцией обратного квантования, которая представляет собой обратную операцию квантовании, выполненную на упомянутом выше этапе С5 кодирования, для получения декодированного деквантованного блока BDq1. Такой этап исполняют с помощью программного модуля MDQ_DO обратного квантования, как представлено на фиг. 4.During step D7 shown in FIG. 3, the quantized residual block Bq 1 is subjected to inverse quantization according to a conventional inverse quantization operation, which is the inverse quantization operation performed in the above-mentioned encoding step C5, to obtain the decoded dequantized block BDq 1 . This step is performed using the inverse quantization software module MDQ_DO, as shown in FIG. 4.
Во время этапа D8, представленного на фиг. 3, выполняют обратное преобразование деквантованного блока BDq1, которое представляет собой операцию, обратную для прямого преобразования, выполненного при кодировании на упомянутом выше этапе С4. Таким образом, получают декодированный остаточный блок BDr1. Такую операцию выполняют с помощью программного модуля MTI_DO обратного преобразования, как представлено на фиг. 4.During step D8 shown in FIG. 3, inverse transform is performed on the dequantized block BDq 1 , which is the inverse operation of the forward transform performed in encoding in the above-mentioned step C4. Thus, a decoded residual block BDr 1 is obtained. This operation is performed using the inverse transform software module MTI_DO, as shown in FIG. 4.
Во время этапа D9, представленного на фиг. 3, выполняют декодирование с прогнозированием текущего блока В1. Такое декодирование с прогнозированием обычно выполняют, используя известные технологии внутрикадрового и/или межкадрового прогнозирования, во время которых блок В1 прогпозируют в отношении по меньшей мере одного ранее декодированного блока. Такую операцию выполняют с помощью модуля PRED_DO декодирования с прогнозированием, как представлено на фиг. 4.During step D9 shown in FIG. 3, predictive decoding of the current block B 1 is performed. Such predictive decoding is typically performed using known intra- and/or inter-frame prediction techniques, during which block B 1 is predicted with respect to at least one previously decoded block. Such an operation is performed using the predictive decoding module PRED_DO, as shown in FIG. 4.
Само собой разумеется, что возможны другие режимы внутрикадрового прогнозирования, как предложено в стандарте Н.264.It goes without saying that other intra-prediction modes are possible, as proposed in the H.264 standard.
Во время этого этапа выполняют прогнозирование декодирования, используя декодированные элементы синтаксиса на предыдущем этапе, и, в частности, содержащем тин прогнозирования (межкадровое или внутрикадровое), и, в случае необходимости, режим внутрикадрового прогнозирования, тип разделения блока или макроблока, если последний был разделен, индекс опорного изображения и вектор движения, которые используются в режиме межкадровою прогнозирования.During this step, decoding prediction is performed using the decoded syntax elements in the previous step, and in particular containing the type of prediction (inter-frame or intra-frame), and, if necessary, the mode of intra-frame prediction, the type of block division or macroblock, if the latter has been divided , reference image index and motion vector, which are used in inter-prediction mode.
Упомянутый выше этап декодирования с прогнозированием обеспечивает построение прогнозируемого блока Вр1.The above-mentioned predictive decoding step produces a predicted block BP 1 .
Во время этапа D10, представленного на фиг. 3, декодированный блок BD1 строят путем добавления декодированного остаточного блока BDr1 к прогнозируемому блоку Вр1. Такую операцию исполняют с помощью программного модуля MR_DO реконструкции, представленного на фиг. 4.During step D10 shown in FIG. 3, the decoded block BD 1 is constructed by adding the decoded residual block BDr 1 to the prediction block BP 1 . This operation is performed using the reconstruction software module MR_DO shown in FIG. 4.
Во время этапа D11, представленного на фиг. 3, модуль MD_DO декодирования проверяет, является ли текущий декодированный блок последним блоком, идентифицированным в сигнале F.During step D11 shown in FIG. 3, the MD_DO decoding module checks whether the current decoded block is the last block identified in the F signal.
Если текущий блок представляет собой последний блок в сигнале F, тогда во время этапа D12, представленного на фиг. 3, способ декодирования заканчивается.If the current block is the last block in signal F, then during step D12 shown in FIG. 3, the decoding method ends.
Если это не так, выбирают следующий блок В1, как блок, который должен быть декодирован, в соответствии с порядком упомянутой выше растровой развертки, путем повторения этапов D1 - D10, для 1≤i≤Z.If this is not the case, select the next block B 1 as the block to be decoded, in accordance with the raster scan order mentioned above, by repeating steps D1 to D10, for 1≤i≤Z.
Далее, со ссылкой на фиг. 3, будет описан другой вариант осуществления изобретения.Next, with reference to FIG. 3, another embodiment of the invention will be described.
Этот другой вариант осуществления отличается от предыдущего только количеством скрытых коэффициентов, которое не является равным ни 0, ни N, где N представляет собой целое число такое, как N≥2.This other embodiment differs from the previous one only in the number of hidden coefficients, which is neither 0 nor N, where N is an integer such as N≥2.
С этой целью, ранее упомянутый подэтап D32 сравнения заменяют подэтапом D32a, представленным пунктирной линией на фиг. 3, во время которого количество коэффициентов, которые могли бы быть модифицированными, сравнивают с несколькими заданными пороговыми значениями 0<TSIG_1<TSIG 2<TSIG3 …, таким образом, что если множество упомянутых коэффициентов находится в пределах от TSIG_N до TSIG_N+1, могут быть скрыты N знаков.To this end, the previously mentioned comparison sub-step D32 is replaced by the sub-step D32a represented by the dotted line in FIG. 3, during which the number of coefficients that could be modified is compared with several specified threshold values 0<TSIG_1<TSIG 2<TSIG3 ..., such that if the set of said coefficients is in the range from TSIG_N to TSIG_N+1, there may be N characters are hidden.
Если количество упомянутых коэффициентов меньше, чем первое пороговое значение TSIG_1, тогда во время ранее упомянутого этапа D4 выполняют обычное энтропийное декодирование всех знаков коэффициентов в списке E1. С этой целью, знак каждого ненулевого коэффициента в списке Е1 подвергают энтропийному декодированию.If the number of said coefficients is less than the first threshold value TSIG_1, then during the previously mentioned step D4, normal entropy decoding of all coefficient signs in the list E 1 is performed. For this purpose, the sign of each non-zero coefficient in the list E 1 is subjected to entropy decoding.
Если количество упомянутых коэффициентов находится между порогом TSIG_N и TSIG_N+1, тогда во время ранее упомянутого этапа D4, выполняют обычное энтропийное декодирование всех знаков коэффициентов в списке Е1, за исключением N соответствующих знаков первых ненулевых коэффициентов в упомянутом модифицированном списке Em1, упомянутые N знаков скрывают.If the number of said coefficients is between the threshold TSIG_N and TSIG_N+1, then during the previously mentioned step D4, normal entropy decoding of all coefficient signs in the list E 1 is performed, except for the N corresponding signs of the first non-zero coefficients in said modified list Em 1 , said N the signs are hidden.
В другом варианте осуществления модуль MTR_DO обработки рассчитывает, во время этапа D5, значение функции f, которое представляет собой остаток модуля 2N суммы коэффициентов в подсписке SEm1. В предложенном примере это N=2.In another embodiment, the processing module MTR_DO calculates, during step D5, a function value f that represents the modulo 2 N remainder of the sum of the coefficients in the sublist SEm 1 . In the proposed example it is N=2.
MTR_DO модуля обработки, следовательно, выводит из него конфигурацию двух скрытых знаков, которые назначены для каждого из двух первых ненулевых коэффициентов ε2 и ε3, соответственно, в соответствии с соглашением, используемым при кодировании.The MTR_DO of the processing module therefore outputs from it a configuration of two hidden characters that are assigned to each of the first two non-zero coefficients ε2 and ε3, respectively, in accordance with the convention used in the encoding.
После реконструкции этих двух знаков, выполняют этапы D6 - D12, описанные выше.After reconstructing these two signs, perform steps D6 - D12 described above.
Само собой разумеется, что варианты осуществления, которые были описаны выше, были представлены исключительно в качестве показателя, а не для ограничения, и что специалист в данной области техники может легко разработать множество модификаций без выхода, таким образом, за пределы объема изобретения.It goes without saying that the embodiments that have been described above have been presented solely by way of example and not by way of limitation, and that many modifications can easily be made by one skilled in the art without thereby departing from the scope of the invention.
Таким образом, например, в соответствии с упрощенным вариантом осуществления в отношении того, что представлено на фиг. 1, кодер СО мог бы быть сконфигурирован так, чтобы он скрывал по меньшей мере N' заданных знаков, где N'>1, вместо либо нуля, одного или N заданных знаков. В этом случае этап С72 или С72а сравнения можно было бы исключить. Соответствующим образом, в соответствии с упрощенным вариантом осуществления в отношении того, что представлено на фиг. 3, декодер DO мог бы быть сконфигурирован так, чтобы он реконструировал N' заданных знаков вместо либо нуля, одного или N заданных знаков. В этом случае, можно было бы устранить этап D32 или D32a сравнения.Thus, for example, according to a simplified embodiment with respect to that shown in FIG. 1, the CO encoder could be configured to hide at least N' given characters, where N'>1, instead of either zero, one or N given characters. In this case, comparison step C72 or C72a could be omitted. Accordingly, according to a simplified embodiment with respect to that shown in FIG. 3, the DO decoder could be configured to reconstruct N' given characters instead of either zero, one, or N given characters. In this case, comparison step D32 or D32a could be eliminated.
Кроме того, критерий определения, применяемый на этапе С72 кодировании или на этапе D32 декодирования, может быть заменен другим типом критерия. С этой целью, вместо сравнения множества модифицированных коэффициентов или множества коэффициентов, которые были модифицированы с пороговым значением, модуль MTR_CO или MTR_DO обработки мог бы применять критерий выбора, который представляет собой функцию суммы амплитуд коэффициентов, которые являются модифицированными или могли бы быть модифицированы, соответственно, или количества нулей, присутствующих среди коэффициентов, которые являются модифицированными и которые могли быть модифицированными, соответственно.In addition, the determination criterion applied in the encoding step C72 or in the decoding step D32 may be replaced by another type of criterion. To this end, instead of comparing a set of modified coefficients or a set of coefficients that have been modified with a threshold value, the MTR_CO or MTR_DO processing module could apply a selection criterion that is a function of the sum of the amplitudes of the coefficients that are modified or could be modified, respectively. or the number of zeros present among the coefficients that are modified and that may have been modified, respectively.
Claims (13)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1160109 | 2011-11-07 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020136236A Division RU2782400C2 (en) | 2011-11-07 | 2020-11-05 | Method of encoding and decoding images, device for encoding and decoding and corresponding software |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2808075C1 true RU2808075C1 (en) | 2023-11-23 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2371881C1 (en) * | 2005-07-08 | 2009-10-27 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Method of modelling video signal coding information for information compression/decompression |
WO2011051596A1 (en) * | 2009-10-27 | 2011-05-05 | France Telecom | Methods and devices for image encoding and decoding, and corresponding computer programs |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2371881C1 (en) * | 2005-07-08 | 2009-10-27 | ЭлДжи ЭЛЕКТРОНИКС ИНК. | Method of modelling video signal coding information for information compression/decompression |
WO2011051596A1 (en) * | 2009-10-27 | 2011-05-05 | France Telecom | Methods and devices for image encoding and decoding, and corresponding computer programs |
Non-Patent Citations (1)
Title |
---|
EAN-MARC THIESSE et al. Rate Distortion Data Hiding of Motion Vector Competition Information in Chroma and Luma Samples for Video Compression, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, IEEE, vol. 21, no. 6, June 2011. SUNG MIN KIM et al. Data Hiding on H.264/AVC Compressed Video, IMAGE ANALYSIS AND RECOGNITION, LECTURE NOTES IN COMPUTER SCIENCE, Springer-Verlag Berlin Heidelberg 2007. XIAOJING MA et al., A Data Hiding Algorithm for H.264/AVC VideoStreams Without Intra-Frame Distortion Drift, IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, vol.20, n.10, October 2010. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2736421C1 (en) | Method of encoding and decoding images and encoding and decoding device | |
RU2751082C1 (en) | Method for coding and decoding of images, coding and decoding device and corresponding computer programs | |
RU2808075C1 (en) | Method for image coding and decoding, coding and decoding device and corresponding computer programs | |
RU2782400C2 (en) | Method of encoding and decoding images, device for encoding and decoding and corresponding software |