RU2782400C2 - Method of encoding and decoding images, device for encoding and decoding and corresponding software - Google Patents
Method of encoding and decoding images, device for encoding and decoding and corresponding software Download PDFInfo
- Publication number
- RU2782400C2 RU2782400C2 RU2020136236A RU2020136236A RU2782400C2 RU 2782400 C2 RU2782400 C2 RU 2782400C2 RU 2020136236 A RU2020136236 A RU 2020136236A RU 2020136236 A RU2020136236 A RU 2020136236A RU 2782400 C2 RU2782400 C2 RU 2782400C2
- Authority
- RU
- Russia
- Prior art keywords
- coefficients
- sign
- decoding
- encoding
- value
- Prior art date
Links
- 230000000875 corresponding Effects 0.000 title description 8
- 230000003044 adaptive Effects 0.000 claims abstract 2
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 230000004048 modification Effects 0.000 description 28
- 238000006011 modification reaction Methods 0.000 description 28
- 230000005540 biological transmission Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000001131 transforming Effects 0.000 description 5
- 238000007906 compression Methods 0.000 description 4
- 238000000034 method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 230000003287 optical Effects 0.000 description 2
- 101700024838 ADD1 Proteins 0.000 description 1
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- OTMSDBZUPAUEDD-UHFFFAOYSA-N ethane Chemical compound CC OTMSDBZUPAUEDD-UHFFFAOYSA-N 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000004377 microelectronic Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Abstract
Description
Область техники, к которой относится изобретениеThe technical field to which the invention belongs
Настоящее изобретение в целом относится к области обработки изображений, и более конкретно, к кодированию и декодированию цифровых изображений и последовательностей цифровых изображений.The present invention generally relates to the field of image processing, and more specifically 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 video coding as 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. Images are divided into macroblocks, each macroblock is itself divided into blocks, and each block or macroblock is encoded using intra-image or inter-image prediction. Thus, some pictures are encoded using spatial prediction (intra-picture prediction), while other pictures are encoded using temporal prediction (inter-picture prediction) on one or more reference coded-decoded pictures using motion compensation, as is known to those skilled in the art. this field of technology.
Для каждого блока кодируют остаточный блок, также называемый остатком прогнозирования, соответствующий оригинальному блоку, уменьшенному в ходе прогнозирования. Остаточные блоки преобразуют, используя преобразование типа дискретного косинусного преобразования (DCT), затем квантуют, используя, например, квантование скалярного типа. В конце этапа квантования получают коэффициенты, некоторые из которых являются положительными, а другие отрицательными. Затем их пробегают, обычно в зигзагообразном порядке считывания (как в стандарте JPEG), обеспечивая, таким образом, возможность использования существенного количества нулевых коэффициентов при высоких частотах. В конце упомянутого выше пробегания получают одномерный список коэффициентов, который можно назвать "квантованным остатком". Коэффициенты из этого списка затем кодируют, используя энтропийное кодирование.For each block, a residual block, also called a prediction residual, corresponding to the original block reduced during the prediction, is encoded. The residual blocks are transformed using a discrete cosine transform (DCT) type transform, then quantized using, for example, scalar type quantization. At the end of the quantization step, coefficients are obtained, some of which are positive and others are negative. They are then run through, usually in a zigzag reading order (as in the JPEG standard), thus making it possible to use a significant number of zero coefficients at high frequencies. At the end of the above run, a one-dimensional list of coefficients is obtained, which can be called the "quantized residual". The coefficients from this list are then encoded using entropy coding.
Энтропийное кодирование (например, арифметическое кодирование или кодирование типа Хаффмана) выполняют следующим образом:Entropy coding (for example, arithmetic coding 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, the information element is entropy encoded to indicate whether this coefficient is zero or not,
- для каждого ненулевого коэффициента, указанного ранее, энтропийно кодируют элемент информации для указания, равен или нет этот коэффициент единице,- for each non-zero coefficient specified earlier, an information element is entropy encoded to indicate whether this coefficient is equal to one or not,
- для каждого коэффициента, который не равен нулю и не равен единице и который был расположен перед последним ненулевым коэффициентом, энтропийно кодируют элемент информации амплитуды (абсолютное значение коэффициента, значение которого было уменьшено вдвое),- for each coefficient that is not equal to zero and not equal to one and which was located before the last non-zero coefficient, the amplitude information element (the absolute value of the coefficient whose value has been halved) is entropy encoded,
- для каждого ненулевого коэффициента назначенный для него знак кодируют как "0" (для знака "+") или как "1" (для знака "-").- for each non-zero coefficient, the sign assigned to it is encoded 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 residuals contained in the list mentioned above,
- элементы информации, представляющие используемый режим кодирования, в частности:- information elements representing the encoding mode used, in particular:
• режим прогнозирования (внутрикадровое прогнозирование, межкадровое прогнозирование, принятое по умолчанию прогнозирование, с помощью которого получают прогнозирование, для которого не передают информацию в декодер (называется "пропуском");• prediction mode (intra-frame prediction, inter-frame prediction, default prediction, which obtains a prediction for which no information is sent 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 и т.д.;• transformation type, eg 4x4 DCT, 8x8 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 elements of the stream are read. Dequantization and inverse transformation of the block coefficients are performed to obtain a decoded prediction residual. The segment prediction is then calculated, and the segment is reconstructed by adding the prediction to the decoded prediction residual.
Кодирование внутри кадра или между кадрами, в результате конкуренции друг с другом, как воплощено в стандарте Н.264, таким образом, основано на размещении различных элементов информации кодирования, таких как упомянутые выше, так, чтобы они конкурировали с целью выбора лучшего режима, то есть, режима, который оптимизирует кодирование рассматриваемого участка, в соответствии с заданным критерием рабочих характеристик, например, стоимостью случайного искажения, как хорошо известно специалисту в данной области техники.Encoding within a frame, or between frames, as a result of competition with each other, as embodied in the H.264 standard, is thus based on placing various coding information elements, such as those mentioned above, in such a way that they compete to select the best mode, then is, a mode that optimizes the coding of the area under consideration, in accordance with a given performance criterion, for example, the cost of random distortion, as is well known to a person skilled in the art.
Элементы информации, представляющие выбранный режим кодирования, содержатся в сигнале данных, передаваемом кодером в декодер. Декодер, таким образом, выполнен с возможностью идентификации режима кодирования, выбранного в кодере, с последующим применением прогнозирования, которое соответствует этому режиму.Information elements representing the selected coding mode are contained in the data signal transmitted from the encoder to the decoder. The decoder is thus configured to identify the coding mode selected in the encoder and then apply the prediction that corresponds to that mode.
В документе "Data Hiding of Motion Information in Chroma and Luma Samples for Video Compression", J.-M. Thiesse, J. Jung and M. Antonini, International workshop on multimedia signal processing, 2011 представлен способ сокрытия данных, который воплощается во время сжатия видеоданных.In "Data Hiding of Motion Information in Chroma and Luma Samples for Video Compression", J.-M. Thiesse, J. Jung and M. Antonini, International workshop on multimedia signal processing, 2011 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 prediction block. Such an index, which may take on the value of 0 or 1, is not included directly in the encoded cell signal, but is transmitted by the parity of the sum of the coefficients of the quantized residual. A relationship is formed between the parity of the quantized residual and the MVComp index. As an example, an even quantized residual value is associated with an MVComp index value of 0, while an odd quantized residual value is associated with an MVComp index with a value of 1. Two cases may arise. In the first case, if the parity of the quantized residue already matches the parity of the MVComp index to be transmitted, the quantized residue is encoded in the usual way. In the second case, if the parity of the quantized residual differs from that of the MVComp index to be transmitted, the quantized residual is modified so that its parity is the same as that of the MVComp index. remainder by an odd value (eg, +1, -1, +3, -3, +5, -5, etc.) and maintain only the modification that optimizes the given criterion, in this case, the previously mentioned cost of random distortion.
В декодере индекс MVComp не считывают в сигнале. Декодер довольствуется просто обычным определением остатка. Если значение такого остатка будет четным, индекс MVComp устанавливают равным 0. Если значение этого остатка будет нечетным, индекс MVComp устанавливают в 1.In the decoder, the MVComp index is not read in the signal. The decoder is content with just the usual definition of the remainder. If the value of such a 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 technique that has been presented above, the coefficients that are modified are not always chosen optimally, such that the modification applied results in disturbances in the signal transmitted to the decoder. Such violations inevitably have a negative impact on the efficiency of video data compression.
Раскрытие изобретенияDisclosure of invention
Одна из целей изобретения состоит в том, чтобы устранить недостатки упомянутого выше предшествующего уровня техники.One of the objectives of the invention is to overcome the disadvantages of the prior art mentioned above.
Таким образом, цель настоящего изобретения относится к способу кодирования по меньшей мере одного изображения, разделенного на участки, такой способ реализует следующие этапы:Thus, the purpose of the present invention relates to a method for encoding at least one image divided into sections, such a method implements the following steps:
- выполняют прогнозирование элементов данных текущего участка как функцию по меньшей мере одного опорного участка, уже кодированного, а затем декодированного, выводя прогнозируемый участок;- perform the prediction of the 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 different digital information elements for which it is required to perform entropy coding,
- генерируют сигнал, содержащий кодированные элементы информации. Способ, в соответствии с изобретением, характеризуется тем, что реализует, перед- generate a signal containing encoded information elements. The method according to the invention is characterized by the fact that it implements, before
этапом генерирования сигнала, следующие этапы:signal generation step, the following steps:
- определяют из определенного набора остаточных элементов данных поднабор, содержащий элементы остаточных данных, пригодных для модификации,- determine from a certain set of residual data elements a subset containing residual data elements suitable for modification,
- рассчитывают значение функции, представляющей элементы остаточных данных упомянутого определенного поднабора,- calculate the value of the function representing the elements of the residual data of the specified subset,
- сравнивают рассчитанное значение со значением по меньшей мере одного из элемен тов цифровой информации,- comparing the calculated value with the value of at least one of the digital information elements,
- в зависимости от результата сравнения выполняют модификацию или не выполняют модификацию по меньшей мере одного из элементов остаточных данных в поднаборе,- depending on the result of the comparison, at least one of the residual data elements in the subset is modified or not modified,
- в случае модификации, выполняют энтропийное кодирование упомянутого по меньшей мере одного элемента модифицированных остаточных данных.- in case of modification, entropy encoding of said at least one element of the modified residual data is performed.
Такая последовательность обеспечивает возможность применения технологии скрытия данных в уменьшенном наборе элементов остаточных данных, и в этом наборе элементы остаточных данных пригодны для их модификации.This sequence allows the data hiding technology to be applied in a reduced set of residual data elements, and in this set the residual data elements are suitable for their modification.
В соответствии с изобретением, следует понимать, что выражение "элементы остаточных данных" означает элементы данных, для которых применение модификации не приводит к десинхронизации между кодером и декодером.In accordance with the invention, it should be understood that the expression "residual data elements" means data elements for which the application of the modification does not lead to desynchronization between the encoder and decoder.
Таким образом, в соответствии с изобретением, элементы остаточных данных, которые предназначены для их модификации, выбирают намного более надежно, чем в ранее процитированном предшествующем уровне техники, обеспечивая, таким образом, возможность получения лучшего качества восстановления изображения в декодере.Thus, according to the invention, the residual data elements to be modified are much more reliably selected than in the previously cited prior art, thus allowing a better image reconstruction quality to be obtained in the decoder.
Кроме того, возможность модификации уменьшенного количества элементов остаточных данных обеспечивает возможность ускорения кодирования.In addition, the possibility of modifying a reduced number of residual data items enables faster coding.
В конкретном варианте осуществления этапы, которые следуют за этапом определения поднабора элементов остаточных данных воплощают только, если удовлетворяется заданный критерий, зависящий от элементов остаточных данных, пригодных для их модификации.In a specific embodiment, the steps that follow the step of determining a subset of residual data items are only implemented if a predetermined criterion is satisfied, depending on the residual data items suitable for modification.
Такая последовательность дополнительно обеспечивает для кодера возможность рационального определения, следует или нет применять в отношении данных технологию скрытия. Такой этап определения имеет преимущество его применения только для ограниченного набора элементов остаточных данных, пригодных для их модификации. Таким образом, обеспечивается то, что технология скрытия данных применяется намного более соответствующим образом, чем в ранее процитированном предшествующем уровне техники, в частности, для наилучшего выбранного количества элементов остаточных данных, для которых точно определили, что после модификации этих элементов данных нарушение сигнала, генерируемого в результате такой модификации, не будет оказывать отрицательное влияние на качество восстановления изображения в декодере.Such a sequence further enables the encoder to rationally determine whether or not to apply a hiding technique to the data. Such a determination step has the advantage of applying it only to a limited set of residual data elements suitable for their modification. Thus, it is ensured that the data hiding technology is applied much more appropriately than in the previously cited prior art, in particular for the best selected number of residual data items, for which it is precisely determined that after modifying these data items, the violation of the signal generated as a result of such a modification, will not adversely affect the quality of the image reconstruction in the decoder.
В другом частном варианте осуществления заданный критерий определения зависит от результата сравнения между числом элементов остаточных данных, пригодных для их модификации, и заданным числом.In another particular embodiment, the predetermined determination criterion depends on the result of the comparison between the number of residual data elements suitable for their modification and the predetermined number.
Такая последовательность обеспечивает улучшение характеристик сжатия арифметического кодера при эффективном уменьшении затрат на передачу сигналов. В частности, такая последовательность обеспечивает возможность точного детектирования числа элементов остаточных данных, из которых было бы целесообразно применить технологию скрытия данных так, чтобы последняя не приводила к высоким уровням нарушений в сигнале, предназначенном для передачи в декодер.Such a 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 advisable to apply the data hiding technology so that the latter does not lead to high levels of disturbances 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 a comparison of a calculated function value representing the residual data items of a particular subset with a function value representing the plurality of digital information items.
Такая последовательность обеспечивает оптимизацию рабочих характеристик арифметического кодера при оптимизации уменьшения затрат на передачу сигналов, поскольку она обеспечивает скрытие нескольких элементов цифровой информации в сигнале, предназначенном для передачи в декодер.Such a sequence optimizes the performance of the arithmetic encoder while optimizing the reduction of signaling costs, since it provides for the hiding of several elements of digital information in the signal intended for transmission to the decoder.
В еще одном частном варианте осуществления по меньшей мере один элемент цифровой информации соответствует знаку остаточного элемента данных.In another particular embodiment, at least one element of digital information corresponds to the sign of the residual data element.
Знак представляет собой особенно ценный элемент информации, который требуется скрыть, вследствие того факта, что вероятность появления положительного или отрицательного знака является равновероятной. Также, учитывая, что знак обязательно кодирован в одном бите, таким образом, становится возможным, путем скрытия этой информации, сэкономить один бит в сигнале для передачи в декодер, существенно уменьшая, таким образом, стоимость передачи сигналов. Уменьшение такой стоимости будет тем более высоким, когда возможно, в соответствии с изобретением, скрыть множество знаков, и, поэтому, множество битов.The sign is a particularly valuable piece of information that needs to be hidden due to the fact that the probability of a positive or negative sign is equally probable. Also, given that the sign 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, thus significantly reducing the signaling cost. 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 section as a function of at least one reference section already encoded with subsequent decoding to provide the predicted section,
- средство определения набора остаточных элементов данных, пригодных для сравнения элементов данных, относящихся к текущему участку и прогнозированному участку, элементы остаточных данных связаны, соответственно, с различными элементами цифровой информации, для которых требуется выполнить энтропийное кодирование,- means for determining a set of residual data elements suitable for comparing data elements relating to the current site and the predicted site, the residual data elements are associated, respectively, with different digital information elements for which entropy encoding is required,
- средство генерирования сигнала, содержащего элементы кодированной информации.- a means of generating a signal containing elements of encoded information.
Такое устройство кодирования характеризуется тем, что оно содержит, перед средством генерирования, средство обработки, которое выполнено с возможностью:Such an encoder is characterized in that it comprises, before the generating means, a processing means which is configured to:
- определять, из определенного набора элементов остаточных данных, поднабор, содержащий элементы остаточных данных, пригодных для их модификации,- to determine, from a certain set of residual data elements, a subset containing residual data elements suitable for their modification,
- рассчитывать значение функции, представляющей элементы остаточных данных определенного поднабора,- calculate the value of the function representing the elements of the residual data of a certain subset,
- сравнивать рассчитанное значение со значением по меньшей мере одного из элементов цифровой информации,- compare the calculated value with the value of at least one of the digital information elements,
- модифицировать или не модифицировать упомянутый по меньшей мере один из элементов остаточных данных определенного поднабора в зависимости от результата модификации,- 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 case of modification by the processing means.
Соответствующим образом изобретение относится также к способу декодирования сигнала данных, представляющего по меньшей мере одно изображение, разделенное на участки, которое было ранее кодировано, содержащему этап получения путем энтропийного декодирования данных сигнала, элементов цифровых данных, связанных с элементами остаточных данных, которые относятся по меньшей мере к одному ранее кодированному участку.Accordingly, the invention also relates to a method for decoding a data signal representing at least one image divided into regions that has been previously encoded, comprising the step of deriving, by entropy decoding of the signal data, digital data elements associated with residual data elements that are at least least to one previously encoded section.
Такой способ декодирования характеризуется тем, что он содержит следующиеThis decoding method is characterized by the fact that it contains the following
этапы:stages:
- определяют, из элементов остаточных данных, поднабор, содержащий элементы остаточных данных, выполненных с возможностью их модификации во время предыдущего кодирования,- determine, from the elements of the residual data, a subset containing the elements of the residual data, made with the possibility of modifying them during the previous encoding,
- рассчитывают значение функции, представляющей элементы остаточных данных, упомянутого определенного поднабора,- calculate the value of the function representing the elements of the residual data of the mentioned specific subset,
- из рассчитанного значения определяют значение по меньшей мере одного элемента цифровой информации, которое отличается от тех, которые были получены путем энтропийного декодирования.- from the calculated value determine the value of at least one element of digital information, 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 items are only implemented if a predetermined criterion is satisfied, depending on the residual data items to be modified.
В другом частном варианте осуществления заданный критерий определения зависит от результата сравнения между числом элементов остаточных данных, которые могли быть модифицированы, и заданным числом.In another particular embodiment, the predetermined determination criterion depends on the result of the comparison between the number of residual data items that could be modified and the 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 device for decoding a data signal representing at least one division of an image into areas that have been previously encoded, comprising means for obtaining, by entropy decoding of signal data elements, digital information elements associated with residual data elements, in relation to at least at least one previously coded section.
Такое устройство декодирования отличается тем, что оно содержит средство обработки, которое выполнено с возможностью:Such a decoding device is characterized in that it comprises a processing means which is configured to:
определять, из упомянутых остаточных элементов данных, поднабор, содержащий остаточные элементы данных, которые могли быть модифицированы во время предыдущего кодирования,determine, from said residual data elements, a subset containing residual data elements that may have been modified during previous encoding,
- рассчитывать значение функции, представляющей элементы остаточных данных определенного поднабора,- calculate the value of the function representing the elements of the residual data of a certain subset,
- из рассчитанного значения получать значение по меньшей мере одного элемента цифровой информации, который отличается от полученных в результате энтропийного декодирования.- from the calculated value to 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 the steps of the above encoding or decoding method 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 in partially compiled form or in any other form required.
Еще один другой объект изобретения представляет собой считываемый компьютером носитель записи, включающий в себя команды компьютерной программы, как упомянуто выше.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 the program. For example, such a medium may include a storage medium such as a ROM, such as a CD-ROM or ROM in microelectronic circuits, or a magnetic recording medium, such as a floppy disk or hard disk.
С другой стороны, такой носитель записи может представлять собой среду передачи, такую как электрический или оптический сигнал, который может быть передан через электрический или оптический кабель, через радиоканал или через другое средство. Программа, в соответствии с изобретением, в частности, может быть загружена через сеть типа Интернет.On the other hand, such a recording medium may be a transmission medium, such as an electrical or optical signal, which may be transmitted through an electrical or optical cable, through a radio channel, or through 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 the program is embedded, the circuit is capable of executing the method in question or can be used in executing the latter.
Устройство кодирования, способ декодирования, устройство декодирования и компьютерные программы, упомянутые выше, проявляют по меньшей мере те же преимущества, что и те, которые предоставляются способом кодирования, в соответствии с настоящим изобретением.The encoding device, decoding method, decoding device 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 the drawings
Другие свойства и преимущества будут понятны при чтении двух предпочтительных вариантов осуществления, описанных со ссылкой на чертежи, на которых:Other features and advantages will become apparent on 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 according to the invention,
на фиг. 2 представлен вариант осуществления устройства декодирования в соответствии с изобретением,in fig. 2 shows an embodiment of a decoding device according to the invention,
на фиг. 3 представлены основные этапы способа декодирования в соответствии с изобретением,in fig. 3 shows the main steps of the decoding method according to the invention,
на фиг. 4 представлен вариант осуществления устройства декодирования в соответствии с изобретением.in fig. 4 shows an embodiment of a decoding device according to the invention.
Подробное описание кодирующей частиDetailed description of the coding part
Ниже будет описан вариант осуществления изобретения, в котором используется способ кодирования, в соответствии с изобретением, для кодирования последовательности изображений в соответствии с двоичным потоком, близко к тому, что получают путем кодирования в соответствии со стандартом H.264/MPEG-4 AVC. В этом варианте осуществления способ кодирования, в соответствии с изобретением, например, воплощен в виде программных средств или в форме аппаратных средств путем модификаций кодера, первоначально соответствующего стандарту Н. 264/MPEG-4 AVC. Способ кодирования, в соответствии с изобретением, представлен в форме алгоритма, включающего в себя этапы от С1 до С40, представленные на фиг. 1.An embodiment of the invention will be described below in which an encoding method according to the invention is used to encode a sequence of images according to a bit stream close to that obtained by encoding according to the H.264/MPEG-4 AVC standard. In this embodiment, the coding method according to the invention is, for example, embodied in software or in hardware form by modifications to an encoder originally conforming to the H.264/MPEG-4 AVC standard. The encoding method according to the invention is in the form of an algorithm including steps C1 to C40 shown in FIG. one.
В соответствии с вариантом осуществления изобретения, способ кодирования, в соответствии с изобретением, воплощен в устройстве кодирования или в кодере СО, вариант осуществления которого представлен на фиг.2.According to an embodiment of the invention, the encoding method according to the invention is embodied in an encoder or CO encoder, an embodiment of which is shown in FIG.
В соответствии с изобретением, перед фактическим этапом кодирования, изображение IE последовательности изображений, предназначенное для кодирования в заданном порядке, разделяют на множество Ζ участков Β1, В2, …, Bi, …, Bz, как представлено на фиг. 2.According to the invention, before the actual encoding step, the image sequence IE to be encoded in a predetermined order is divided into a plurality Ζ of sections Β 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 "plot" means a coding unit. This latter terminology is in particular used in the HEVC/H.265 standard, a draft of which, for example, is provided 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 coding units together set up rectangular or square shaped pixels, also called blocks, macroblocks, or pixel sets, which have other geometric shapes.
В примере, представленном на фиг. 2, упомянутые участки представляют собой блоки, которые имеют квадратную форму, и все из которых имеют одинаковый размер. В зависимости от размера изображения, который не обязательно составляет кратное размера блока, последние блоки слева и последние блоки снизу не обязательно должны быть квадратной формы. В альтернативном варианте осуществления блоки могут, например, иметь прямоугольную форму и/или могут не быть выровнены друг с другом.In the example shown in FIG. 2, said areas are blocks which are square in shape and all of which are of the same size. Depending on the size of the image, which is not necessarily a multiple of the block size, the last blocks on the left and the last blocks on the bottom need not be square. In an alternative embodiment, the blocks may, for example, be rectangular and/or may not be aligned with each other.
Каждый блок или макроблок, кроме того, может быть сам разделен на подблоки, которые сами после этого могут быть подразделены.Each block or macroblock can furthermore be itself subdivided into subblocks, which themselves can then be subdivided.
Такое разделение выполняют с помощью модуля РСО разделения, представленного на фиг. 2, в котором используется, например, алгоритм разделения, хорошо известный сам по себе.This separation is performed using the separation module PCO shown in FIG. 2, which uses, for example, a partitioning algorithm well known per se.
После упомянутого этапа разделения, кодируют каждый из текущих участков Bi (где i представляет собой целое число, такое, как 1 ≤ i ≤ Ζ) упомянутого изображения IE.After said separation step, each of the current sections B is encodedi (where i is an integer such as 1 ≤ i ≤ Ζ) of said image IE.
В примере, представленном на фиг. 2, такое кодирование применяют последовательно для каждого из блоков Β1-BZ текущего изображения IE. Блоки кодируют, например, в соответствии с разверткой, такой как растровая развертка, которая известна специалисту в данной области техники.In the example shown in FIG. 2, such coding is applied sequentially for each of the blocks Β 1 -B Z of the current picture IE. The blocks are encoded, for example, in accordance with a scan, such as a raster scan, which is known to a person skilled in the art.
Кодирование, в соответствии с изобретением, воплощают в программном модуле МС_ СО кодирования кодера СО, как представлено на фиг. 2.The coding according to the invention is implemented in the MC_CO encoding software module 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 MC_CO encoding module of FIG. 2 selects, as the current block B 1 , the first block B 1 to encode the current picture IE. As shown in FIG. 2, it is the first block to the left of the IE image.
Во время этапа С2, представленного на фиг. 1, выполняют кодирование с прогнозированием текущего блока В1, используя известные технологии внутрикадрового и/или межкадрового прогнозирования, в течение которого выполняют прогнозирование, используя кодирование с прогнозированием блока Β1 в отношении по меньшей мере одного ранее кодированного и декодированного блока. Такое прогнозирование выполняют, используя модуль программного обеспечения прогнозирования PRED_ CO, как представлено па фиг. 2.During step C2 shown in FIG. 1, prediction encoding of the current block B 1 is performed using known intra-frame and/or inter-frame prediction techniques, during which prediction is performed using block prediction encoding Β 1 on at least one previously encoded and decoded block. Such prediction is performed using the prediction software module PRED_CO as shown in FIG. 2.
Само собой разумеется, возможны другие режимы внутрикадрового прогнозирования, предложенные в стандарте Н.264.Needless to say, other modes of intra-prediction proposed in the H.264 standard are possible.
Для текущего блока Β1 также можно выполнять кодирование с прогнозированием в межкадровом режиме, в течение которого текущий блок прогнозируют в отношении блока из ранее кодированного и декодированного изображения. Другие типы прогнозирования также могут быть предусмотрены. Среди вариантов прогнозирования, возможных для текущего блока, выбирают оптимальное прогнозирование в соответствии с критериями случайного искажения, которые известны специалисту в данной области техники.For the current block Β 1 , it is also possible to perform inter-frame prediction encoding, during which the current block is predicted with respect to a block from a previously encoded and decoded picture. Other types of prediction may also be provided. Among the prediction options possible for the current block, the optimal prediction is selected in accordance with random distortion criteria that are known to a person 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 contain, in particular, the type of prediction (inter-frame or intra-frame) and, if necessary, the intra-frame prediction mode, the types of division of the block or macroblocks, if the latter were divided, the reference picture index and the motion vector that was used in the inter-frame prediction mode. . Such information elements are compressed by the CO encoder.
Во время следующего этапа С3, представленного на фиг. 1, модуль PRED_CO прогнозирования сравнивает элементы данных, относящиеся к текущему блоку Β1, с элементами данных прогнозируемого блока Вр1. Более конкретно, во время этого этапа, обычно блок Βp1 прогнозирования вычитают из текущего блока В1 для получения остаточного блока Вr1.During the next step C3 shown in FIG. 1, the prediction module PRED_CO compares the data items related to the current block Β 1 with the data items of the prediction block Bp 1 . More specifically, during this step, usually the prediction block Βp 1 is subtracted from the current block B 1 to obtain a 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 according to a conventional direct transformation operation, such as, for example, the discrete cosine transform type DCT, to obtain the transformed block Bt 1 . Such an operation is performed by the conversion software module MT_CO as shown in FIG. 2.
Во время следующего этапа С5, представленного на фиг. 1, преобразованный блок Btj квантуют в соответствии с обычной операцией квантования, такой как, например, скалярное квантование. Затем получают блок Bq1 квантованных коэффициентов. Такой этап выполняют, используя программный модуль MQ_CO квантования, как представлено на фиг. 2.During the next step C5 shown in FIG. 1, the transformed block Btj is quantized according to a conventional quantization operation such as, for example, scalar quantization. Then a block Bq 1 of quantized coefficients is obtained. Such a step is performed using the quantization software module MQ_CO as shown in FIG. 2.
Во время следующего этапа Сб, представленного на фиг. В представленном примере такая развертка представляет собой обычную зигзагообразную развертку. Этот этап выполняют, используя программный модуль ML_CO считывания, как представлено на фиг. 2. В конце этапа С6 получают одномерный список Ε1=(ε1, ε2, …, εL) коэффициентов, обычно известный, как "квантованный остаток", где L представляет собой целое число, большее чем или равное 1. Каждый из коэффициентов в списке Ε1 взаимосвязан с различными элементами цифровой информации, для которых предполагается выполнить энтропийное кодирование. Такие элементы цифровой информации описаны ниже в качестве примера.During the next step Sb shown in FIG. In the example shown, such a sweep is a conventional zigzag sweep. This step is performed using the readout program module ML_CO as shown in FIG. 2. At the end of step C6, a one-dimensional list Ε 1 =(ε1, ε2, ..., εL) of coefficients is obtained, commonly known as the "quantized remainder", where L is an integer greater than or equal to 1. Each of the coefficients in the list Ε 1 is interconnected with various elements of digital information for which entropy coding is supposed to be performed. Such digital information items are described below by way of example.
Предположим, что в представленном примере, L=16, и что список E1 содержит следующие шестнадцать коэффициентов: Ε1=(0, +9, -7, 0, 0, +1, 0, -1, +2, 0, 0, +1, 0, 0, 0, 0).Assume that in the example shown, L=16, and that the list E 1 contains the following sixteen coefficients: Ε 1 =(0, +9, -7, 0, 0, +1, 0, -1, +2, 0, 0, +1, 0, 0, 0, 0).
В данном случае:In this case:
- для каждого коэффициента, расположенного перед последним ненулевым коэффициентом в списке Ε1, элемент цифровой информации, такой как бит, должен быть энтропийно кодирован для обозначения, равен или нет этот коэффициент нулю: если этот коэффициент равен нулю, будет кодирован, например, бит со значением 0, в то время как, если коэффициент не равен нулю, будет кодирован бит со значением 1;- for each coefficient before the last non-zero coefficient in the list Ε 1 , an element of digital information such as a bit must be entropy encoded to indicate whether this coefficient is zero or not: if this coefficient is zero, for example, a bit with the value 0, while if the coefficient is not equal to zero, the bit with the
- для каждого ненулевого коэффициента +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 or not: 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 equal to 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, the amplitude information element (the absolute value of the coefficient from which the value of two was subtracted ) is subjected to entropy encoding;
- для каждого ненулевого коэффициента знак, назначенный ему, кодируют, используя элемент цифровой информации, такой как бит, например, устанавливают в '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 will be described in accordance with the invention.
В соответствии с изобретением определяют, что следует исключить энтропийное кодирование по меньшей мере одного из упомянутых выше элементов информации. По причинам, которые пояснялись выше в описании, в предпочтительном варианте воплощения, определяют, что не следует выполнять энтропийное кодирование по меньшей мере для одного знака одного из упомянутых коэффициентов в списке Е1.In accordance with the invention, it is determined that entropy encoding of at least one of the above-mentioned information elements should be excluded. For the reasons explained above in the description, in the preferred embodiment, it is determined that entropy encoding should not be performed for at least one sign of one of the mentioned coefficients in the list E 1 .
В качестве альтернативного примера, в частности, можно было бы определить необходимость энтропийного кодирования по меньшей мере младшего значащего бита двоичного представления амплитуды первого ненулевого коэффициента в упомянутом списке Е1.As an alternative example, in particular, one could determine the need for entropy encoding 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 processing software module MTR_CO as shown in FIG. 2.
В предпочтительном варианте осуществления количество знаков, которые требуется скрыть, равно одному или нулю. Кроме того, в соответствии с упомянутым предпочтительным вариантом осуществления, предполагается скрыть знак первого ненулевого коэффициента, который предназначен быть скрытым. Поэтому, в представленном примере, скрыт знак коэффициента ε2= +9.In a preferred embodiment, the number of characters to be hidden is one or zero. In addition, according to the said preferred embodiment, it is intended to hide the sign of the first non-zero coefficient, which 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 to be hidden is either zero, one, two, three or more.
В соответствии с предпочтительным вариантом осуществления, на этапе С7, во время первого подэтапа С71, представленного на фиг.1, подсписок SE1, содержащий коэффициенты, пригодные для их модификации, ε'1, ε'2, …, ε'Μ, где Μ<L, определяют из упомянутого списка Е1. Такие коэффициенты будут называться ниже в описании модифицируемыми коэффициентами.According to a preferred embodiment, in step C7, during the first sub-step C71 shown in FIG. 1, the sublist SE 1 containing the coefficients suitable for their modification, ε'1, ε'2, ..., ε'M, where Μ<L, determined from the mentioned list E 1 . Such coefficients will be referred to below as modified coefficients.
В соответствии с изобретением, коэффициент является модифицируемым, если модификация его квантованного значения не приводит к десинхронизации в декодере при обработке этого модифицированного коэффициента декодером. Таким образом, модуль MTR_ СО обработки изначально конфигурируют так, чтобы он не выполнял модификацию:In accordance with the invention, a coefficient is modifiable if modification of its quantized value does not result in a desynchronization in the decoder when the modified coefficient is processed by the decoder. Thus, the processing module MTR_CO is initially configured not to perform the modification:
- нулевого коэффициента или коэффициентов, расположенных перед первым списком из ненулевых коэффициентов таким образом, что декодер не влияет на значение скрытого знака в этом или в этих нулевых коэффициентах,- a coefficient of zero or coefficients placed 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 in 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 shown, at the end of sub-step C71, a sublist of SE 1 is obtained such that SE 1 =(9, -7, 0, 0, 1, 0, -1, 2, 0, 0, 1). Therefore, eleven modified coefficients are obtained.
Во время следующего подэтапа С72, представленного на фиг. 1, модуль MTR_CO обработки переходит к сравнению количества модифицированных коэффициентов с заданным пороговым значением TSIG. В предпочтительном варианте осуществления TSIG имеет значение 4.During the next sub-step C72 shown in FIG. 1, the processing module MTR_CO proceeds to compare the number of modified coefficients with a predetermined threshold value TSIG. In the preferred embodiment, TSIG is 4.
Если количество модифицированных коэффициентов меньше, чем пороговое значение TSIG, то во время этапа С20, представленного на фиг.1, выполняют обычное энтропийное кодирование коэффициентов в списке Ε1, такое, как выполняют, например, в кодере САВАС, обозначенном ссылкой СЕ_СО на фиг. 2. С этой целью, знак каждого ненулевого коэффициента в списке Ε1 подвергают энтропийному кодированию.If the number of modified coefficients is less than the threshold value TSIG, then during step C20 of FIG. 1, conventional entropy coding of the coefficients in the list E 1 is performed, such as is performed, for example, in the CABAC encoder denoted by reference CE_CO in FIG. 2. For this purpose, the sign of each non-zero coefficient in the list E 1 is entropy encoded.
Если количество модифицированных коэффициентов больше, чем пороговое значение TSIG, тогда во время этапа С8, представленного на фиг. 1, модуль MTR_CO обработки рассчитывает значение функции f, которое представляет коэффициенты в подсписке SE1.If the number of modified coefficients is greater than the TSIG threshold, then during step C8 of FIG. 1, the processing module MTR_CO calculates a function value f that represents the coefficients in sublist SE 1 .
В предпочтительном варианте осуществления, в котором предполагается скрывать только один знак в сигнале, предназначенном для декодера, функция f представляет собой четность суммы коэффициентов в подсписке SE1.In the preferred embodiment, in which it is intended to hide only one character in the signal intended for the decoder, the function f is the parity of the sum of the coefficients in sublist SE 1 .
Во время этапа С9, представленного на фиг. 1, модуль MTR_CO обработки проверяет, соответствует ли четность значения знака, который должен быть скрыт, четности суммы коэффициентов в подсписке SE1, в соответствии с установленным заранее определенным в кодере СО условием.During step C9 shown in FIG. 1, the processing unit MTR_CO checks whether the parity of the sign value to be hidden matches the parity of the sum of the coefficients in the sublist SE 1 according to a predetermined condition set in the CO encoder.
В предложенном примере упомянутое соглашение является таким, что положительный знак ассоциируют с битом со значением равным нулю, в то время, как отрицательный знак ассоциирован с битом со значением равным единице.In the proposed example, the 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.
Если, в соответствии с условием, принятым в кодере СО, в соответствии с изобретением, знак является положительным, что соответствует значению бита кодирования равного нулю, и если сумма коэффициентов в подсписке SE1 является четной, тогда выполняют этап С20 для энтропийного кодирования коэффициентов в упомянутом выше списке Ε1, за исключением знака коэффициента ε2.If, according to the condition adopted in the CO encoder according to the invention, the sign is positive, which corresponds to the coding bit value of zero, and if the sum of the coefficients in sublist SE 1 is even, then step C20 is performed to entropy-code the coefficients in said above the list Ε 1 , except for the sign of the coefficient ε2.
Если, все еще, в соответствии с соглашением, принятым в кодере СО, в соответствии с изобретением, знак будет отрицательным, что соответствует значению бита кодирования, равному единице, и если сумма коэффициентов в подсписке SE1 нечетная, тогда гакже выполняют этап С20 для энтропийного кодирования коэффициентов в упомянутом выше списке Ε1, за исключением знака коэффициента ε2.If, still, according to the convention adopted in the encoder CO, in accordance with the invention, the sign is negative, which corresponds to the value of the encoding bit equal to one, and if the sum of the coefficients in sublist SE 1 is odd, then also perform step C20 for entropy the coding of the coefficients in the list Ε 1 mentioned above, except for the sign of the coefficient ε2.
Если, в соответствии с соглашением, принятым в кодере СО, в соответствии с изобретением, знак будет положительным, что соответствует значению бита кодирования, равным нулю, и если сумма коэффициентов в подсписке SE1 будет нечетной, то во время этапа С10, представленного на фиг.1, модифицируют по меньшей мере один модифицируемый коэффициент в подсписке SE1.If, in accordance with the convention adopted in the encoder CO, in accordance with 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 sublist SE 1 is odd, then during step C10 shown in FIG. .1 modify at least one modifiable coefficient in sublist SE 1 .
Если, все еще в соответствии с соглашением, принятым в кодере СО, в соответствии с изобретением, знак будет отрицательным, что соответствует значению бита кодирования, равному единице, и если сумма коэффициентов в подсписке SE1 четная, тогда также на этапе С10 модифицируют по меньшей мере один модифицируемый коэффициент в подсписке SE1.If, still in accordance with the convention adopted in the encoder CO, in accordance with the invention, the sign is negative, which corresponds to the value of the encoding bit equal to one, and if the sum of the coefficients in sublist SE 1 is even, then also at step C10 modify at least at least one modifiable factor in sublist SE 1 .
Такую операцию модификации выполняют с помощью модуля MTR_ CO обработки по фиг. 2.Such a modification operation is performed by the processing unit MTR_CO of FIG. 2.
В примерном варианте осуществления, в котором SE1=(+9, -7, 0, 0,+1, 0, -1, +2, 0, 0, +1), общая сумма f коэффициентов равна 5, и, поэтому, она нечетная. Для того, чтобы декодер мог реконструировать положительный знак, назначенный для первого ненулевого коэффициента ε2=+9, без кодера СО, чтобы передать этот коэффициент в декодер, четность суммы должна стать четной. Следовательно, модуль MTR_CO обработки тестирует, во время упомянутого этапа С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 f of the coefficients is 5, and therefore , it is 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 to pass this coefficient to the decoder, the parity of the sum must become even. Therefore, the processing module MTR_CO tests, during said step C10, various modifications of the coefficients in 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 the modification is selected from among these resulting modifications,
В предпочтительном варианте осуществления в результате такого выбора формируется оптимальное прогнозирование, в соответствии с критерием рабочих характеристик, который, например, представляет собой критерий случайного искажения, как хорошо известно специалисту в данной области техники. Такой критерий выражается уравнением (1), представленным ниже:In a preferred embodiment, this selection results in an optimal prediction according to a performance criterion, which is, for example, a random distortion criterion, as is well known to one skilled in the art. Such a criterion is expressed by equation (1) below:
(1) J=D+λR(1) J=D+λR
где D представляет собой искажение между оригинальным макроблоком и реконструированным макроблоком, R представляет стоимость кодирования в битах элементов информации кодирования, и λ представляет множитель Лагранжа, значение которого может быть фиксировано перед кодированием.where D is the distortion between the original macroblock and the reconstructed macroblock, R is the cost of encoding in bits of encoding information elements, and λ is the Lagrange multiplier, the value of which may be fixed before encoding.
В предложенном примере модификация, которая приводит к оптимальному прогнозированию, в соответствии с упомянутым выше критерием случайного искажения, представляет собой добавление значения 1 ко второму коэффициенту -7 в подсписке SE1.In the proposed example, the modification that leads to optimal prediction, in accordance with the random distortion criterion mentioned above, is the addition of the
Следовательно, в конце этапа С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, поскольку он при этом слал бы равным нулю, и таким образом, потерял бы свою характеристику первого ненулевого коэффициента в списке Е1. Декодер при этом должен связать декодируемый знак (путем расчета четности суммы коэффициентов) с другим коэффициентом, и при этом возникла бы ошибка декодирования.It should be noted that during this phase, 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 then be equal to zero, and thus lose its characteristic of the first non-zero coefficient in the list E 1 . The decoder must then associate the decoded sign (by calculating the parity of the sum of the coefficients) with another coefficient, and this would cause a decoding error.
Во время этана С11, представленного на фиг.1, модуль MTR_CO обработки выполняет соответствующую модификацию в списке Ε1. Затем получают следующий модифицированный список Em1=(0, +9, -6, 0, 0, +1, 0, -1, -+2, 0, 0, +1, 0, 0, 0, 0).During the ethane C11 shown in FIG. 1, the processing module MTR_CO performs the corresponding modification in the list Ε 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-code 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 evenness of the sum of the coefficients.
Следует отметить, что набор амплитуд коэффициентов в списке Ε1, или в модифицированном списке Εm1 кодируют перед набором знаков, за исключением знака первого ненулевого коэффициента ε2, который не кодируют, как пояснялось выше.It should be noted that the amplitude set of the coefficients in the list Ε 1 , or in the modified list Εm 1 , is encoded before the character set, except for the sign of the first non-zero coefficient ε2, which is not encoded as explained above.
Во время следующего этапа С30, представленного на фиг. 1, модуль МС_СО кодирования на фиг. 2 тестирует, является ли текущий блок кодирования последним блоком изображения IE.During the next step C30 shown in FIG. 1, the MC_CO encoding module of FIG. 2 tests whether the current encoding block is the last image block of the IE.
Если текущий блок представляет собой последний блок изображения 1Е, тогда во время этапа С40. представленного на фиг. 1, способ кодирования заканчивается.If the current block is the last block of the 1E image, then during step C40. shown in FIG. 1, the encoding method ends.
Если это не так, выбирают следующий блок Bi, который затем кодируют в соответствии с порядком ранее упомянутой растровой развертки, путем повторения этапов от С1 до С20, для 1 ≤ i ≤ Ζ.If this is not the case, the next block Bi is selected, which is then encoded according to the order of the previously mentioned bitmap by repeating steps C1 to C20, for 1 ≤ i ≤ Z.
После выполнения энтропийного кодирования всех блоков В1-ΒZ, конструируют сигнал F, представляющий, в двоичной форме, упомянутые кодированные блоки.After entropy coding of all B 1 -B Z blocks, a signal F is constructed representing, in binary form, said encoded blocks.
Построение двоичного сигнала F воплощено в программном модуле CF построения потока, как представлено на фиг. 2.The construction of the binary signal F is embodied 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≥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 sub-step C72a represented by the dotted line in FIG. 1, during which the modified coefficient set is compared with several predetermined thresholds 0<TSIG_1<TSIG_2<TSIG_3..., such that if the modified coefficient set is between TSIG_N and TSIG_N+1, N characters are supposed to be hidden.
Если множество модифицируемых коэффициентов меньше, чем первое пороговое значение TSIG_1, тогда во время упомянутого выше этапа С20 выполняют обычное энтропийное кодирование коэффициентов в списке Ε1. С этой целью знак каждого ненулевого коэффициента в списке Ε1 подвергают энтропийному кодированию.If the set of coefficients to be modified is less than the first threshold value TSIG_1, then during the above step C20, the 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 subjected to entropy coding.
Если множество модифицированных коэффициентов находится между порогами TSIG_N и TSIG_N+1, тогда во время этапа С8, представленного на фиг. 1, модуль MTR_CO обработки рассчитывает значение функции f, которое представляет коэффициенты в подсписке E1.If the modified coefficient set is between the thresholds TSIG_N and TSIG_N+1, then during step C8 shown in FIG. 1, the processing module MTR_CO calculates a function value f that represents the coefficients in sublist E 1 .
В этом другом варианте осуществления, поскольку решение в кодере состоит в том, чтобы скрыть N знаков, функция f представляет собой остаток от модуля 2N суммы коэффициентов в подсписке SE1. Предполагается, в предложенном примере, что N=2, два знака, которые должны быть скрыты, представляют собой два первых знака двух первых ненулевых коэффициентов, соответственно, то есть, ε2 и ε3.In this other embodiment, since the decision in the encoder is to hide N characters, the function f is the remainder of modulo 2 N of the sum of the coefficients in 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 the pattern of N characters, that is, 2 N possible patterns, corresponds to the remainder value of module 2 N of the sum of the coefficients in 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:
- остаток, равный нулю, соответствует двум последовательным положительным знакам :+, +;- the remainder equal to zero corresponds to two consecutive positive signs: +, +;
- остаток, равный единице, соответствует последовательным положительному знаку и отрицательному знаку:+, -;- the remainder equal to one corresponds to a consecutive positive sign and a negative sign: +, -;
- остаток, равный двум, соответствует последовательным отрицательному знаку и положительному знаку: -, +;- the remainder, equal to two, corresponds to a consecutive negative sign and a positive sign: -, +;
- остаток, равный трем, соответствует двум последовательным отрицательным знакам:- a remainder equal to three corresponds to two consecutive negative signs:
Если конфигурация из N знаков соответствует значению остатка по модулю 2N от суммы коэффициентов в подсписке SE1, то этап С20 для энтропийного кодирования коэффициентов в упомянутом выше списке Ε1 выполняется, за исключением знаков коэффициента ε2 и коэффициента ε3, причем эти знаки скрыты в четности суммы модуля 2Ν коэффициентов.If the pattern of N characters corresponds to the value modulo 2 N of the sum of the coefficients in the sublist SE 1 , then step C20 for entropy encoding the coefficients in the list Ε 1 mentioned above is performed, except for the signs of the coefficient ε2 and the coefficient ε3, these signs being hidden in parity sums modulo 2 N coefficients.
Если это не так, тогда выполняют этап С10 для модификации по меньшей мере одного модифицированного коэффициента в подсписке SE1. Такую модификацию выполняют с помощью модуля MTR_CO обработки на фиг. 2 таким образом, что модуль остатка 2N суммы модифицированных коэффициентов в подсписке SE1 достигает значения каждого из двух знаков, которые должны быть скрыты.If not, then step C10 is performed to modify at least one modified coefficient in sublist SE 1 . Such modification is performed by the processing unit MTR_CO in FIG. 2 such that the modulus of the remainder 2 N of the sum of the modified coefficients in sublist SE 1 reaches the value of each of the two characters to 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 Ε 1 . Thus, a modified list Em 1 is obtained.
Затем выполняют этап С20 для энтропийного кодирования коэффициентов в упомянутом выше списке Em1, за исключением знака коэффициента ε2 и знака коэффициента ε3, и эти знаки скрыты в четности суммы модуля 2Ν коэффициентов.Then step C20 is performed to entropy-code the coefficients in the above 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 evenness of the modulo 2 N sum of the 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 or hardware 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 in the form of an algorithm including steps D1-D12 shown in FIG. 3.
В соответствии с вариантом осуществления изобретения способ декодирования, в соответствии с изобретением, воплощен в устройстве декодирования или в декодере DO, как представлено на фиг. 4.According to an embodiment of the invention, the decoding method according to the invention is embodied in a decoding apparatus or a DO decoder as shown in FIG. four.
Во время предварительного этапа, который не представлен на фиг. 3, в принятом сигнале F данных, идентифицируют участки Β1-BZ, которые были кодированы ранее кодером СО. В предпочтительном варианте осуществления, упомянутые участки представляют собой блоки, которые имеют квадратную форму, и все имеют одинаковый размер. В зависимости от размера изображения, который не обязательно должен составлять целочисленное кратное размера блоков, последние блоки слева и последние блоки снизу не обязательно должны иметь квадратную форму. В альтернативном варианте осуществления блоки могут быть, например, прямоугольными и/или могут не быть выровнены друг с другом.During the preliminary step, which is not shown in FIG. 3, in the received data signal F, sections Β 1 -B Z are identified that were previously encoded by the CO encoder. In a preferred embodiment, said areas are blocks that are square in shape and all have the same size. Depending on the size of the image, which need not be an integer multiple of the size of the blocks, the last blocks on the left and the last blocks on the bottom need not 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, furthermore, may itself be divided into sub-blocks, which may themselves be subdivided.
Такая идентификация выполняется с помощью программного модуля EX_DO анализа потока, как представлено на фиг. 4.This identification is performed by the flow analysis software module EX_DO, as shown in FIG. four.
Во время этапа D1, представленного на фиг.3, модуль EX_DO на фиг. 4 выбирают в качестве текущего блока Β1 первый блок В1 предназначен для декодирования. Такой выбор состоит, например, в размещении указателя считывания в сигнале F, в начале элементов данных первого блока В1.During step D1 shown in FIG. 3, the EX_DO module in FIG. 4 select as the current block B 1 the first block B 1 is to be decoded. Such a choice consists, for example, in placing the read pointer in signal F, at the beginning of the data elements of the first block B 1 .
Затем выполняют декодирование каждого из выбранных блоков кодирования.Then, each of the selected coding blocks is decoded.
В примере, представленном на фиг. 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 a raster scan, as is well known to a person 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. four.
Во время этапа D2, представленного на фиг. 3, выполняют первое энтропийное декодирование первого выбранного текущего блока Β1. Такую операцию выполняют с помощью модуля DE_DO энтропийного декодирования, представленного на фиг. 4, например, типа САВАС. Во время этого этапа модуль DE_DO выполняет энтропийное декодирование элементов цифровой информации, соответствующих амплитуде каждого из кодированных коэффициентов в списке Е1 или в модифицированном списке Еm1. На данном этапе не декодируют только знаки коэффициентов в списке Ε1 или в модифицированном списке Еm1.During step D2 shown in FIG. 3, the first entropy decoding of the first selected current block Β 1 is performed. Such an operation is performed by the entropy decoding unit DE_DO shown in FIG. 4, for example, of the CABAS type. During this step, the DE_DO module performs entropy decoding of digital information items corresponding to the amplitude of each of the coded coefficients in list E 1 or modified list Em 1 . 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 set of characters that can be hidden 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 for determining the number of characters to be hidden.
В предпочтительном варианте осуществления количество скрытых знаков равно единице или нулю. Кроме того, в соответствии с упомянутым предпочтительным вариантом осуществления, скрытым является знак первого ненулевого коэффициента. В представленном примере, поэтому, он представляет собой положительный знак коэффициента ε2=+9.In a preferred embodiment, the number of hidden characters is one or zero. In addition, according to the preferred embodiment mentioned, the sign of the first non-zero coefficient is hidden. In the presented example, 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 или из модифицированного списка Εm1.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 Μ<L, which allow their modification when coding is determined from the mentioned list Ε 1 or from the modified list Εm 1 .
Такое определение выполняют так же, как и на упомянутом выше этапе С7 кодирования.Such a determination is performed in the same way as in the above-mentioned encoding step C7.
Аналогично упомянутому выше модулю MTR_CO обработки, модуль MTR_DO обработки первоначально конфигурируют, так, чтобы модифицировать:Similar to the processing module MTR_CO mentioned above, the processing module MTR_DO 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 shown, at the end of sub-step D31, there is a sublist SEm 1 such as SEm 1 =(9, -6, 0, 0, 1, 0, -1, 2, 0, 0, 1). Therefore, 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 processing module MTR_DO proceeds to compare the number of coefficients that could be modified with a given threshold value TSIG. In the preferred embodiment, TSIG is 4.
Если количество коэффициентов, которые могли быть модифицированы, меньше, чем пороговое значение TSIG, тогда во время этапа D4, представленного на фиг. 3, выполняют обычное энтропийное декодирование для всех знаков коэффициентов в списке Е1. Такое декодирование выполняют с помощью декодера САВАС, обозначенного опорным значением DE_ DO на фиг. 4. С этой целью, знак каждого ненулевого коэффициента в списке Ε1 подвергают энтропийному декодированию.If the number of coefficients that could be modified is less than the TSIG threshold, then during step D4 shown in FIG. 3 perform normal entropy decoding on all signs of the coefficients in list E 1 . Such decoding is performed by the CABAC decoder, denoted by the reference value DE_DO in FIG. 4. To this end, the sign of each non-zero coefficient in the list E 1 is subjected to entropy decoding.
Если количество коэффициентов, которое может быть модифицировано, больше, чем пороговое значение TSIG, тогда во время упомянутого этапа D4 выполняют обычное энтропийное декодирование всех знаков коэффициентов в списке Εm1, за исключением знака первого ненулевого коэффициента ε2.If the number of coefficients that can be modified is greater than the threshold value TSIG, then during said step D4 a normal entropy decoding is performed on all signs of the coefficients in the list Εm 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 character is hidden in signal F, the function f is 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 the 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 value 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 processing unit MTR_DO 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 with all the reconstructed digital information elements during steps D2, D4 and D5, the quantized coefficients of block Bq 1 are reconstructed in the given order. In the example shown, it is a reverse zigzag scan with respect to the zigzag scan performed during the encoding step C6 mentioned above. Such a step is performed by the read program 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 reverse zigzag sweep order mentioned.
Во время этапа D7, представленного на фиг. 3, квантованный остаточный блок Bq1 подвергают обратному квантованию, в соответствии с обычной операцией обратного квантования, которая представляет собой обратную операцию квантования, выполненную на упомянутом выше этапе С5 кодирования, для получения декодированного деквантованного блока BDq1. Такой этап исполняют с помощью программного модуля MDQ_DO обратного квантования, как представлено на фиг. 4.During step D7 shown in FIG. 3, the quantized residual block Bq 1 is dequantized according to the conventional inverse quantization operation, which is the inverse quantization operation performed in the above encoding step C5, to obtain a decoded dequantized block BDq 1 . Such a step is executed by the inverse quantization software module MDQ_DO as shown in FIG. four.
Во время этапа D8, представленного на фиг. 3, выполняют обратное преобразование деквантованного блока BDq1, которое представляет собой операцию, обратную для прямого преобразования, выполненного при кодировании на упомянутом выше этапе С4. Таким образом, получают декодированный остаточный блок BDr1. Такую операцию выполняют с помощью программного модуля MTI_DO обратного преобразования, как представлено на фиг. 4.During step D8 shown in FIG. 3, an inverse transformation of the dequantized BDq 1 block is performed, which is the inverse operation of the forward transformation performed in the encoding in step C4 mentioned above. Thus, a decoded residual block BDr 1 is obtained. Such an operation is performed by the MTI_DO inverse transform software module as shown in FIG. four.
Во время этапа D9, представленного на фиг. 3, выполняют декодирование с прогнозированием текущего блока В1. Такое декодирование с прогнозированием обычно выполняют, используя известные технологии внутрикадрового и/или межкадрового прогнозирования, во время которых блок В1 прогнозируют в отношении по меньшей мере одного ранее декодированного блока. Такую операцию выполняют с помощью модуля PRED_DO декодирования с прогнозированием, как представлено на фиг. 4.During step D9 shown in FIG. 3 perform predictive decoding of the current block B 1 . Such predictive decoding is typically performed using known intra-frame 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 by the predictive decoding unit PRED_DO as shown in FIG. four.
Само собой разумеется, что возможны другие режимы впутрикадрового прогнозирования, как предложено в стандарте Н.264.It goes without saying that other intraframe 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 (interframe or intraframe), and, if necessary, the mode of intra frame prediction, the type of division of the block or macroblock, if the latter was divided , reference picture index, and motion vector, which are used in the inter prediction mode.
Упомянутый выше этап декодирования с прогнозированием обеспечивает построение прогнозируемого блока Bp1.The predictive decoding step mentioned above generates a predictive block Bp 1 .
Во время этапа D10, представленного на фиг. 3, декодированный блок BD1 строят путем добавления декодированного остаточного блока BDr1 к прогнозируемому блоку Bp1. Такую операцию исполняют с помощью программного модуля MR_DO реконструкции, представленного на фиг. 4.During step D10 shown in FIG. 3, a decoded block BD 1 is constructed by adding the decoded residual block BDr 1 to the predicted block Bp 1 . Such an operation is performed by the reconstruction software module MR_DO shown in FIG. four.
Во время этапа D11, представленного на фиг.3, модуль MD_DO декодирования проверяет, является ли текущий декодированный блок последним блоком, идентифицированным в сигнале F.During step D11 shown in FIG. 3, the decoding module MD_DO checks whether the current decoded block is the last block identified in signal F.
Если текущий блок представляет собой последний блок в сигнале 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 ≤Ζ.If it is not, the next block B 1 is selected as the block to be decoded, according to the order of the above raster scan, by repeating steps D1-D10, for 1 ≤ i ≤ Z.
Далее, со ссылкой на фиг. 3, будет описан другой вариант осуществления изобретения.Next, with reference to FIG. 3, another embodiment of the invention will be described.
Этот другой вариант осуществления отличается от предыдущего только количеством скрытых коэффициентов, которое не является равным ни 0, ни Ν, где N представляет собой целое число такое, как N≥2.This other embodiment differs from the previous one only in the number of latent coefficients, which is neither 0 nor N, where N is an integer such as N≥2.
С этой целью, ранее упомянутый подэтап D32 сравнения заменяют подэтапом D32a, представленным пунктирной линией на фиг. 3, во время которого количество коэффициентов, которые могли бы быть модифицированными, сравнивают с несколькими заданными пороговыми значениями 0<TSIG_l<TSIG_2<TSIG_3 таким образом, что если множество упомянутых коэффициентов находится в пределах от 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 predetermined threshold values 0<TSIG_l<TSIG_2<TSIG_3, so that if the plurality of said coefficients is in the range from TSIG_N to
Если количество упомянутых коэффициентов меньше, чем первое пороговое значение TSIG_1, тогда во время ранее упомянутого этапа D4 выполняют обычное энтропийное декодирование всех знаков коэффициентов в списке Е1. С этой целью, знак каждого ненулевого коэффициента в списке Ε1 подвергают энтропийному декодированию.If the number of said coefficients is less than the first threshold value TSIG_1, then during the previously mentioned step D4, a normal entropy decoding of all signs of the coefficients in the list E 1 is performed. To this end, 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 соответствующих знаков первых ненулевых коэффициентов в упомянутом модифицированном списке Еm1ь упомянутые N знаков скрывают.If the number of said coefficients is between the threshold TSIG_N and TSIG_N+1, then during the previously mentioned step D4, a normal entropy decoding of all the signs of the coefficients in the list E 1 is performed, except for the N corresponding signs of the first non-zero coefficients in the said modified list Em 1b the mentioned N signs hide.
В другом варианте осуществления модуль MTR_DO обработки рассчитывает, во время этапа D5, значение функции f, которое представляет собой остаток модуля 2N суммы коэффициентов в подсписке SEm1. В предложенном примере это N=2.In another embodiment, the processing module MTR_DO calculates, during step D5, the value of the function f, which is the remainder of module 2 N of the sum of the coefficients in the sublist SEm 1 . In the proposed example, this is N=2.
MTR_DO модуля обработки, следовательно, выводит из него конфигурацию двух скрытых знаков, которые назначены для каждого из двух первых ненулевых коэффициентов ε2 и ε3, соответственно, в соответствии с соглашением, используемым при кодировании.The MTR_DO of the processing module therefore outputs from it the configuration of the 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 encoding.
После реконструкции этих двух знаков, выполняют этапы D6 - D12, описанные выше.After the reconstruction of 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 as an indication and not limitation, and that a person skilled in the art can easily develop many modifications without thereby departing from the scope of the invention.
Таким образом, например, в соответствии с упрощенным вариантом осуществления в отношении того, что представлено на фиг.1, кодер СО мог бы быть сконфигурирован так, чтобы он скрывал по меньшей мере N' заданных знаков, где Ν'≥1, вместо либо нуля, одного или N заданных знаков. В этом случае этап С72 или С72а сравнения можно было бы исключить. Соответствующим образом, в соответствии с упрощенным вариантом осуществления в отношении того, что представлено на фиг. 3, декодер DO мог бы быть сконфигурирован так, чтобы он реконструировал N' заданных знаков вместо либо нуля, одного или N заданных знаков. В этом случае, можно было бы устранить этап D32 или D32a сравнения.Thus, for example, in accordance with a simplified embodiment with respect to what is presented 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 specified characters. In this case, the comparison step C72 or C72a could be omitted. Accordingly, in accordance with a simplified embodiment of what is 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, the 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 the decoding step D32 may be replaced by another type of criterion. To this end, instead of comparing the set of modified coefficients or the 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 or could be modified, respectively. , or the number of zeros present among the coefficients that are modified and that could be modified, respectively.
Claims (10)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1160109A FR2982447A1 (en) | 2011-11-07 | 2011-11-07 | METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS |
FR1160109 | 2011-11-07 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2020113611A Division RU2736421C1 (en) | 2011-11-07 | 2020-04-16 | Method of encoding and decoding images and encoding and decoding device |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2022125804A Division RU2808075C1 (en) | 2011-11-07 | 2022-10-03 | Method for image coding and decoding, coding and decoding device and corresponding computer programs |
Publications (3)
Publication Number | Publication Date |
---|---|
RU2020136236A RU2020136236A (en) | 2022-05-05 |
RU2020136236A3 RU2020136236A3 (en) | 2022-05-05 |
RU2782400C2 true RU2782400C2 (en) | 2022-10-26 |
Family
ID=
Citations (1)
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 |
Patent Citations (1)
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 |
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 | |
RU2782400C2 (en) | Method of encoding and decoding images, device for encoding and decoding and corresponding software | |
RU2808075C1 (en) | Method for image coding and decoding, coding and decoding device and corresponding computer programs |