RU2420021C2 - Method to compress images and video sequences - Google Patents

Method to compress images and video sequences Download PDF

Info

Publication number
RU2420021C2
RU2420021C2 RU2009110512/09A RU2009110512A RU2420021C2 RU 2420021 C2 RU2420021 C2 RU 2420021C2 RU 2009110512/09 A RU2009110512/09 A RU 2009110512/09A RU 2009110512 A RU2009110512 A RU 2009110512A RU 2420021 C2 RU2420021 C2 RU 2420021C2
Authority
RU
Russia
Prior art keywords
bits
block
color
bit
values
Prior art date
Application number
RU2009110512/09A
Other languages
Russian (ru)
Other versions
RU2009110512A (en
Inventor
Михаил Наумович Мишуровский (RU)
Михаил Наумович Мишуровский
Оксана Васильевна ДЖОСАН (RU)
Оксана Васильевна ДЖОСАН
Михаил Николаевич Рычагов (RU)
Михаил Николаевич Рычагов
Олег Сергеевич Рыбаков (KR)
Олег Сергеевич Рыбаков
Сан-Су ЛИ (KR)
Сан-Су ЛИ
Original Assignee
Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд."
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд." filed Critical Корпорация "САМСУНГ ЭЛЕКТРОНИКС Ко., Лтд."
Priority to RU2009110512/09A priority Critical patent/RU2420021C2/en
Publication of RU2009110512A publication Critical patent/RU2009110512A/en
Application granted granted Critical
Publication of RU2420021C2 publication Critical patent/RU2420021C2/en

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Color Television Systems (AREA)

Abstract

FIELD: information technologies.
SUBSTANCE: it is proposed to represent each colour pixel with three colour components, every of which is initially coded with ten bits. Coding is carried out by breaking the initial colour video frame into non-covering space units, and subsequent separation of a bit representation of each colour component of a pixel into a senior part, made of more than one senior bit, and a junior part made of at least one junior bit, then separate coding of the senior and junior parts, besides, coding of the senior part is carried out by application of more than one coding method, every of which takes into account pixel-to-pixel connections only within the limits of the processed space unit, estimation of a coding error, selection of a coding method, giving the smallest error, sending data on the method of coding by means of a prefix code transfer, coding of the junior part, which is carried out by averaging of more than one value, included into the junior part, besides, dimensions of the averaging areas within the limits of the junior part, a number of bits, fixed in advance, is set as required for a compact representation of initial space colour unit.
EFFECT: efficient compression of a colour high-quality image without visible visual distortions.
25 cl, 29 dwg, 13 tbl

Description

Заявляемое изобретение касается способов обработки видеоданных и, в частности, способа сжатия видеопоследовательностей.The invention relates to methods for processing video data and, in particular, to a method for compressing video sequences.

Как известно, эффективность обмена информацией повышается, если удается снизить избыточность передаваемого сообщения, например, удалив несущественные части, а точнее, такие элементы, которые достаточно легко поддаются восстановлению на принимающей стороне. Если при передаче письменных сообщений целые фразы можно заменить условными символами, например математическими, или аббревиатурами, то при передаче изображений, а тем более видеозаписей, приходится применять более сложные методы, удаляя из передаваемых изображений несущественную информацию о точках (пикселях) по специально разработанной методике и затем восстанавливая эти точки при воспроизведении изображений. При этом степень сжатия и корректность восстановления изображения зависят от применяемого алгоритма, а сложные, детально проработанные алгоритмы требуют наличия значительных вычислительных ресурсов.As you know, the efficiency of information exchange is improved if it is possible to reduce the redundancy of the transmitted message, for example, by removing non-essential parts, or rather, such elements that are quite easy to recover on the receiving side. If, when transmitting written messages, whole phrases can be replaced by conventional symbols, for example, mathematical, or abbreviations, then when transmitting images, and even more so videos, you have to use more complex methods, removing from the transmitted images irrelevant information about points (pixels) according to a specially developed technique and then restoring these points when playing back images. At the same time, the degree of compression and the correctness of image recovery depend on the algorithm used, and complex, detailed algorithms require significant computing resources.

Из уровня техники известны разные подходы и алгоритмы, используемые для сжатия изображений и видеопоследовательностей, в частности, следует упомянуть решение, описанное в выложенной заявке на патент США №2008/0019598 [1]. В описанном способе и устройстве обработке подвергают довольно крупные блоки размером 4×4 пикселя, что подразумевает буферизацию четырех строк (линий) во входящем потоке. При этом формируются четыре цвета и соответствующее растровое отображение (битовая карта). Такой подход обеспечивает сжатие без визуальных потерь только сигналов с высокой степенью стационарности, т.е. пригоден для сжатия ограниченного набора естественных изображений.Various approaches and algorithms are known in the art for compressing images and video sequences, in particular, the solution described in US Patent Application Laid-Open No. 2008/0019598 [1] should be mentioned. In the described method and device, rather large blocks of 4x4 pixels are subjected to processing, which implies buffering of four lines (lines) in the input stream. In this case, four colors and the corresponding raster display (bitmap) are formed. This approach provides compression without visual loss of only signals with a high degree of stationarity, i.e. Suitable for compressing a limited set of natural images.

В патентах США №7239743 [2] и №7082217 [3] также делается попытка решить проблему сжатия с фиксированным коэффициентом сжатия на основе кодирования изображения блоками размером 4×4 пикселя. В обоих патентах предусмотрено формирование цветовой палитры с построением и кодированием битовой карты. Основной недостаток этих решений заключается в том, что они ориентированы на работу с относительно крупным блоком (4×4) и неспособны эффективно обрабатывать участки нестандартного характера, например резкие непредсказуемые контуры (переходы) внутри изображения. Несколько лучше работает способ, описанный в публикации "Graphics for the Masses - A Hardware Rasterization Architechture for Moible Phones" Tomas Akenine-Moller and Jacob Strom ACM Transactions on Graphics, vol.22, no.3, Proceedings of the ACM SIGGRAPH 2003, p.801-808, July [4]. В этом способе используется алгоритм сжатия текстуры, основанный на обработке изображения блоками фиксированного размера, например 4×4, 2×4, 8×8, с последующим вычислением средних значений этих блоков и вычислением в каждом пикселе разности между индивидуальным значением его яркости и средним значением и кодированием этих разностей с помощью набора фиксированных квантователей. Этот способ также оказался неэффективным для обработки резких по цвету и яркости контуров.In US patent No. 7239743 [2] and No. 7082217 [3] also an attempt is made to solve the compression problem with a fixed compression ratio based on the encoding of the image blocks of 4 × 4 pixels. Both patents provide for the formation of a color palette with the construction and encoding of a bitmap. The main disadvantage of these solutions is that they are focused on working with a relatively large block (4 × 4) and are unable to efficiently process non-standard areas, for example, sharp unpredictable contours (transitions) inside the image. The method described in "Graphics for the Masses - A Hardware Rasterization Architechture for Moible Phones" by Tomas Akenine-Moller and Jacob Strom ACM Transactions on Graphics, vol.22, no.3, Proceedings of the ACM SIGGRAPH 2003, p works slightly better. .801-808, July [4]. This method uses a texture compression algorithm based on processing the image with blocks of a fixed size, for example 4 × 4, 2 × 4, 8 × 8, followed by calculating the average values of these blocks and calculating in each pixel the difference between the individual value of its brightness and the average value and encoding these differences using a set of fixed quantizers. This method also proved to be ineffective for processing sharp color and brightness contours.

Наиболее близким к заявляемому изобретению является решение, описанное в выложенной заявке на патент США №2007/0253483 [5]. В этом решении тоже используют блоки размером 4×4 и применяют пространственное прогнозирование значений блока на основе различных пространственных направлений (вертикаль, горизонталь, диагонали) и помимо этого вводят так называемую пространственную фильтрацию обрабатываемого пикселя (имеется в виду устранение корреляции в одном из пространственных направлений), определяют режим прогнозирования и кодирования. Кроме того, отфильтрованные значения пикселей подвергаются различным блочным преобразованиям и кодированию. Этот подход использует несколько режимов кодирования, однако он не гарантирует фиксированную скорость передачи битов, а блок обработки имеет сравнительно большой размер (4×4). Помимо этого в данном подходе используется буферная строка для хранения ранее закодированных данных, что не позволяет осуществлять независимое кодирование блоков изображения, т.е. степень устойчивости алгоритма к помехам невысока.Closest to the claimed invention is the solution described in the laid out application for US patent No. 2007/0253483 [5]. This solution also uses 4 × 4 blocks and uses spatial prediction of block values based on various spatial directions (vertical, horizontal, diagonals) and in addition introduces the so-called spatial filtering of the processed pixel (meaning the elimination of correlation in one of the spatial directions) , determine the prediction mode and coding. In addition, the filtered pixel values undergo various block transforms and coding. This approach uses several encoding modes, but it does not guarantee a fixed bit rate, and the processing unit has a relatively large size (4 × 4). In addition, this approach uses a buffer string to store previously encoded data, which does not allow independent coding of image blocks, i.e. the degree of stability of the algorithm to interference is low.

Задача, на решение которой направлено заявляемое изобретение, заключается в разработке эффективного способа сжатия цветного высококачественного изображения без видимых визуальных искажений и передачи закодированных видеоданных с фиксированным коэффициентом сжатия для фиксированного наперед малого участка изображения при использовании ограниченных вычислительных ресурсов.The problem to which the claimed invention is directed is to develop an effective method for compressing high-quality color images without visible visual distortion and transmitting encoded video data with a fixed compression ratio for a fixed small portion of the image in advance using limited computing resources.

Технический результат достигнут за счет разработки усовершенствованного способа кодирования высококачественной видеопоследовательности, основанного на принципах кодирования для блоков размером 2×4 пикселя и предусматривающего кодирование кадров фото- или видеоизображений с разрешением 10 битов на каждую цветовую компоненту при сохранении фиксированной скорости передачи битов и фиксированной степени сжатия, причем два нижних бита и восемь верхних битов кодируют раздельно, группируя разделенные таким образом биты в блоки, применяя для каждого подобного блока более одного способа кодирования, с последующей оценкой ошибки кодирования и с выбором способа, обеспечившего минимальную ошибку, при этом сообщение о выбранном способе кодирования блока передают в виде закодированного префикса переменной длины.The technical result is achieved by developing an improved method for encoding a high-quality video sequence based on the encoding principles for blocks of 2 × 4 pixels and encoding frames of photo or video images with a resolution of 10 bits per color component while maintaining a fixed bit rate and a fixed compression ratio, moreover, the two lower bits and the eight upper bits are encoded separately, grouping the bits thus separated into blocks, using d For each similar block, there is more than one encoding method, with the subsequent estimation of the encoding error and with the choice of the method that ensures the minimum error, while the message about the chosen encoding method of the block is transmitted in the form of a variable length encoded prefix.

При этом для эффективного применения способа предпочтительно, чтобы видеопоследовательность была представлена в виде набора кадров, причем каждый кадр рекомендуется обрабатывать как изображение, а каждое изображение должно быть представлено в виде набора неперекрывающихся блоков размером 2×4 пикселя при условии, что степень сжатия равняется 2,4.Moreover, for the effective application of the method, it is preferable that the video sequence was presented as a set of frames, each frame being recommended to be processed as an image, and each image should be represented as a set of non-overlapping blocks of 2 × 4 pixels, provided that the compression ratio is 2, four.

Целесообразно также рассматривать верхние восемь битов изображения в виде блоков размером 2×4 пикселя, при этом каждый такой блок обрабатывают как единый блок размером 2×4 (далее будут рассмотрены способы такой обработки, это, в частности, способы, идентифицируемые как F-, O-, D-, L-, U-, H- и M-способы) или как два блока размером 2×2 пикселя (здесь применяют методы N, Р, S, C и E).It is also advisable to consider the upper eight bits of the image in the form of blocks of 2 × 4 pixels, each such block being treated as a single block of 2 × 4 in size (hereinafter, methods of such processing will be discussed, in particular, methods identified as F-, O -, D-, L-, U-, H- and M-methods) or as two blocks of 2 × 2 pixels in size (N, P, S, C and E methods are used here).

В качестве основных преимуществ заявляемого способа перед известными аналогами можно назвать следующие:As the main advantages of the proposed method over the known analogues can be called the following:

- сжатие цветного цифрового изображения и видеопоследовательности без визуально различимых искажений при фиксированной скорости передачи данных (fixed bitrate);- compression of a color digital image and video sequence without visually distinguishable distortions at a fixed data rate (fixed bitrate);

- кодирование и декодирование с фиксированной степенью сжатия в 2,4 раза для цветных изображений с 10-битной глубиной по каждой компоненте цвета при малых вычислительных ресурсах с сохранением высокого качества;- encoding and decoding with a fixed compression ratio of 2.4 times for color images with 10-bit depth for each color component with small computing resources while maintaining high quality;

- использование лишь одной буферной строки, что гарантирует малую задержку сигнала и экономный режим использования памяти.- the use of only one buffer line, which guarantees a low signal delay and an economical mode of memory use.

Заявляемый способ ориентирован на работу с небольшими блоками размером 2×4 пикселей и обеспечивает их независимое кодирование. Он обеспечивает устойчивость сжатого битового потока к помехам и произвольный доступ к любой части обрабатываемого изображения без декодирования пикселей из ранее закодированных блоков.The inventive method is oriented to work with small blocks of 2 × 4 pixels and provides for their independent coding. It ensures the stability of the compressed bit stream to interference and random access to any part of the processed image without decoding pixels from previously encoded blocks.

Способ включает в себя множество методов сжатия, каждый из которых соответствует определенным характеристикам обрабатываемого изображения; при этом выбор метода кодирования основан на оценке погрешности кодирования данного блока всеми возможными методами и выборе метода, обеспечивающего наименьшую погрешность; при декодировании для определения метода, который использован при кодировании данного блока, анализируется особый признак, передаваемый префиксами переменной длины.The method includes many compression methods, each of which corresponds to certain characteristics of the processed image; the choice of coding method is based on the estimation of the coding error of a given block by all possible methods and the choice of a method that provides the smallest error; when decoding, to determine the method used in encoding this block, a special feature is analyzed, transmitted by variable-length prefixes.

Эффективное кодирование исходного цветного изображения с глубиной цвета 10 битов на компоненту обеспечивается за счет разделения его на две части; визуально важный сигнал (восемь верхних битов, формирующих изображение) и несущественный сигнал (нижние два бита). Такое разделение позволяет вводить различные степени (уровни) точности кодирования при сохранении достоверного представления основной визуальной информации.Effective coding of the original color image with a color depth of 10 bits per component is ensured by dividing it into two parts; visually important signal (eight upper bits that form the image) and non-essential signal (lower two bits). This separation allows you to enter various degrees (levels) of coding accuracy while maintaining a reliable representation of the main visual information.

Более детально заявляемый способ может быть представлен следующим образом.In more detail, the claimed method can be represented as follows.

Способ основан на блочном кодировании, при этом он ориентирован на обработку входных блоков размером 2×4 пикселя по трем цветовым каналам одновременно. Данный блок изначально требует для хранения 240 битов. После выполнения сжатия для хранения такого блока требуется 100 битов, которые в совокупности составляют следующие четыре элемента:The method is based on block coding, while it is focused on processing input blocks of 2 × 4 pixels in three color channels at the same time. This block initially requires 240 bits to store. After compression is completed, 100 bits are required to store such a block, which together comprise the following four elements:

- Заголовок, указывающий на то, какой способ сжатия используется.- A heading indicating which compression method is used.

В результате экспериментов установлено, что оптимальным вариантом будет использование заголовка переменной длины (Variable Length Encoding Header - VLEH), Размер заголовка зависит от применяемого способа и может варьироваться от 1 бита до 10 битов.As a result of the experiments, it was found that the best option would be to use a Variable Length Encoding Header (VLEH). The size of the header depends on the method used and can vary from 1 bit to 10 bits.

- Данные о компактном представлении младших разрядов блока (Least Significant Bits Data - LSBD). В сжатом блоке размером 2×4 эти данные, как правило, зависят от выбранного способа кодирования и занимают от трех до шести битов на блок.- Data on the compact representation of the least significant bits of the block (Least Significant Bits Data - LSBD). In a compressed 2 × 4 block, this data, as a rule, depends on the chosen encoding method and takes from three to six bits per block.

- Сжатый битовый поток. Он представляет в компактном виде верхние восемь наиболее существенных битов для всех пикселей в пределах блока размером 2×4.- Compressed bitstream. It represents in a compact form the top eight most significant bits for all pixels within a 2 × 4 block.

- Дополнительная часть. Это дополняющие биты в пределах пакета, которые вводят, чтобы обеспечить фиксированную скорость передачи битов. По своему характеру эта часть является опционной и применяется лишь в случае необходимости.- Additional part. These are complementary bits within a packet that are introduced to provide a fixed bit rate. By its nature, this part is optional and is used only if necessary.

Из-за ограничений, связанных с возможностями перераспределения числа битов между различными участками изображения, эффективное использование традиционного статистического кодирования, совмещенного с декоррелирующим преобразованием весьма затруднено, как показывают результаты соответствующих исследований. Кроме того, из-за отсутствия возможности эффективной декорреляции в вертикальном направлении (ограниченные объемы внутренней памяти), универсальные и сравнительно эффективные традиционные способы кодирования микроизображений в данных условиях непригодны.Due to the limitations associated with the possibilities of redistributing the number of bits between different parts of the image, the efficient use of traditional statistical coding combined with decorrelation conversion is very difficult, as the results of relevant studies show. In addition, due to the lack of the possibility of effective decorrelation in the vertical direction (limited amounts of internal memory), universal and relatively effective traditional methods of encoding micro images in these conditions are unsuitable.

Именно поэтому, чтобы сжать десять битов изображения, по каждому цветовому каналу предлагается применить два раздельных способа сжатия: один для верхних восьми битов, а другой для младших двух битов.That is why, in order to compress ten bits of the image, it is proposed to apply two separate compression methods for each color channel: one for the upper eight bits, and the other for the lower two bits.

При этом старшие восемь разрядов исходного блока размером 2×4 пикселя, составляющие в совокупности также блок 2×4 8-битных значений, кодируют всеми возможными способами, а затем выбирают способ, обеспечивающий наименьшую погрешность. Предложенные в изобретении способы исходя из размера обрабатываемого блока можно разделить на две группы. Способы первой группы предназначены для обработки блока 2×4 целиком. Способы (методы) второй группы предназначены для обработки блока 2×4 в виде двух подблоков размером 2×2, при этом для каждого такого подблока размером 2×2 выбирают оптимальный способ (метод). В данном изобретении предложено использование семи способов первой группы, а именно:In this case, the senior eight bits of the source block of 2 × 4 pixels in size, which together also comprise a block of 2 × 4 8-bit values, are encoded in all possible ways, and then the method that provides the smallest error is selected. Proposed in the invention methods based on the size of the processed block can be divided into two groups. The methods of the first group are designed to process the entire 2 × 4 block. The methods (methods) of the second group are intended for processing a 2 × 4 block in the form of two 2 × 2 subunits, and for each such 2 × 2 subunit the optimal method (method) is selected. The present invention proposes the use of seven methods of the first group, namely:

D-Способ. Предназначен для кодирования блоков, включающих в себя сложные участки изображения и участки с явно выраженными диагональными границами.D-Way. Designed for coding blocks, which include complex sections of the image and sections with pronounced diagonal boundaries.

F-Способ. Оптимизирован для эффективной передачи изображений, которые содержат участки с выраженным градиентом. Метод допускается применять как в отношении одного цветового канала, так и для одновременной обработки всех трех цветовых каналов.F-Way. Optimized for efficient transfer of images that contain areas with a pronounced gradient. The method can be applied both in relation to one color channel, and for simultaneous processing of all three color channels.

M-Способ. Предназначен для обработки контрольных изображений, с помощью которых проверяют разрешающую способность выходного устройства, настраивают телевизионные приемники и т.п. Подобные изображения состоят, в основном, из кривых с различной амплитудой, направлениями и изменяющимися частотными характеристиками.M-Way. Designed for processing control images, with which they check the resolution of the output device, set up television receivers, etc. Similar images consist mainly of curves with different amplitudes, directions and changing frequency characteristics.

O-Способ. Используют тогда, когда один цветовой канал по своим энергетическим характеристикам в целом существенно превосходит другие каналы внутри обрабатываемого блока 2×4. При этом рассматриваются четыре возможные ситуации, когда доминирует канал яркости, каналы R, G или B.O-Way. Use when one color channel in its energy characteristics as a whole significantly surpasses other channels inside the processed 2 × 4 block. In this case, four possible situations are considered when the luminance channel, the channels R, G or B dominates

L-Способ. Применяют к блоку размером 2×4 во всех трех каналах одновременно. Для обеспечения эффективного представления внутренней структуры изображения для каждого подблока размером 2×2 формируют собственную палитру. Затем используется один из трёх режимов: режим межблочного дифференциального кодирования палитр для двух соседних подблоков 2×2, режим дифференциального кодирования цветов внутри каждого подблока и режим прямого квантования цветов палитры.L-Way. Applied to a 2 × 4 block in all three channels simultaneously. To ensure an effective representation of the internal structure of the image, for each 2 × 2 subblock an own palette is formed. Then one of three modes is used: the mode of inter-block differential coding of palettes for two adjacent 2 × 2 sub-blocks, the mode of differential coding of colors inside each sub-block and the mode of direct quantization of colors of the palette.

U-Способ. Предназначен для таких участков изображения, которые представляют собой сочетание структурно-сложных и равномерных областей; при этом равномерные области кодируются средним значением, в то время как структурно-сложные участки передаются более эффективными методами.U-Way. Designed for such areas of the image, which are a combination of structurally complex and uniform areas; in this case, uniform regions are encoded by an average value, while structurally complex regions are transmitted by more efficient methods.

H-Способ. Способ предназначен для кодирования участков натуральных изображений, в которых присутствуют плавные переходные области, без ярко выраженных диагонально-ориентированных границ. Способ обрабатывает блок 2×4, рассматривая его как совокупность двух блоков 2×2, использует дискретное косинусное преобразование 2×2. Кодирование коэффициентов основано на применении набора фиксированных квантователей.H-Way. The method is intended for encoding portions of natural images in which there are smooth transition regions, without pronounced diagonal-oriented borders. The method processes a 2 × 4 block, considering it as a combination of two 2 × 2 blocks, uses a discrete 2 × 2 cosine transform. The coding of coefficients is based on the use of a set of fixed quantizers.

Для подблоков размером 2×2 были разработаны пять других способов (для отличия от ранее описанных способов далее будем называть их «методами»), входящих во вторую группу. Эти методы независимо применяются к обоим подблокам 2×2, а затем для каждого исходного блока выбирается сочетание методов, обеспечивающее минимальную погрешность. К методам второй группы относятся следующие:Five other methods were developed for 2 × 2 subunits (to distinguish them from the previously described methods, we will call them “methods” below) included in the second group. These methods are independently applied to both 2 × 2 subblocks, and then for each source block a combination of methods is selected that provides the minimum error. The methods of the second group include the following:

N-метод. Метод предназначен для кодирования областей натуральных изображений, основан на новом преобразовании блока пикселей, называемом NSW-преобразованием и процедуре фиксированного квантования разностных составляющих. NSW-преобразование является простым двумерным преобразованием на основе комбинации предикативного кодирования, одномерного вейвлет-преобразования Хаара, лифтинг-схемы. В результате применения указанного преобразования к значениям пикселей вычисляются разностные значения, которые затем подвергаются фиксированному квантованию на основе набора нелинейных фиксированных квантователей.N-method. The method is intended for encoding regions of natural images, based on a new transformation of a block of pixels called the NSW transform and the procedure for fixed quantization of difference components. NSW transformation is a simple two-dimensional transformation based on a combination of predicative coding, one-dimensional Haar wavelet transform, lifting scheme. As a result of applying this transformation to the pixel values, difference values are calculated, which are then subjected to fixed quantization based on a set of nonlinear fixed quantizers.

P-метод. Метод является модификацией N метода и обеспечивает кодирование подблока 2×2 с использованием вертикальных/горизонтальных/диагональных преимущественных направлений, а также кодирования на основе среднего значения.P-method. The method is a modification of the N method and provides coding of the 2 × 2 subblock using vertical / horizontal / diagonal preferred directions, as well as coding based on the average value.

C-метод. Метод основан на NSW-преобразовании и заключается в его применении ко всем цветовым каналам одновременно с последующим групповым кодированием разностных величин из трех цветовых каналов совместно. За счет этого, в случае если разностные величины NSW-преобразования по трем цветовым каналам в достаточной мере сходны, достигается повышение точности кодирования (квантования) путем увеличения динамического диапазона квантователя и устранения независимости выбора квантователя от цветового канала.C method. The method is based on the NSW transformation and consists in its application to all color channels simultaneously with subsequent group coding of difference values from three color channels together. Due to this, if the difference values of the NSW transform over the three color channels are sufficiently similar, an increase in the accuracy of coding (quantization) is achieved by increasing the dynamic range of the quantizer and eliminating the independence of the choice of the quantizer from the color channel.

E-метод. Метод применяется для повышения точности передачи цветовых переходов, возникающих на границе двух чистых цветов.E-method. The method is used to increase the accuracy of color transitions occurring at the border of two pure colors.

S-метод. Этот метод весьма схож с N методом и отличается модифицированной процедурой кодирования, которая адаптирована для передачи участков изображений, на которых разностные величины принимают сравнительно малые значения по всем трём цветовым каналам в пределах подблока 2×2.S method. This method is very similar to the N method and has a modified encoding procedure, which is adapted to transmit portions of images in which difference values take relatively small values for all three color channels within the 2 × 2 subunit.

Выбор метода и способа кодирования определяется тем, какой из примененных методов и способов сжатия цветного блока 2×4 обеспечивает наименьшую величину ошибки.The choice of coding method and method is determined by which of the applied methods and compression methods of the 2 × 4 color block provides the smallest error value.

Выбор метода осуществляется поэтапно.The choice of method is carried out in stages.

Этап 1. Левые и правые подблоки 2×2, входящие в обрабатываемый блок 2×4, подвергают сжатию пятью методами: N, Р, C, S и E. B результате этого формируют набор погрешностей (ошибок) и промежуточных битовых потоков.Stage 1. The left and right 2 × 2 subblocks included in the processed 2 × 4 block are subjected to compression by five methods: N, P, C, S, and E. As a result, a set of errors (errors) and intermediate bit streams are formed.

Этап 2. Для каждого подблока выбирают наилучший метод. Выбор основан на поиске наименьшей величины погрешности среди всех рассчитанных.Step 2. For each subblock, select the best method. The choice is based on the search for the smallest error among all calculated.

Этап 3. Определяют наилучшую комбинацию методов для блока 2×4 на основе методов N, Р, C, S и E, примененных к левому и правому подблокам, а также вычисляют комбинационную погрешность.Step 3. Determine the best combination of methods for the 2 × 4 block based on the N, P, C, S, and E methods applied to the left and right subblocks, and also calculate the combination error.

Этап 4. Блок 2×4 обрабатывают семью способами: D, O, M, F, L, U, H. При этом рассчитывают погрешности кодирования текущего блока каждым из указанных семи способов.Step 4. The 2 × 4 block is processed in seven ways: D, O, M, F, L, U, H. In this case, the coding errors of the current block are calculated by each of the seven methods indicated.

Этап 5. Определяют минимальную погрешность, сравнивая комбинационную погрешность и погрешности, вызванные применением способов D, O, M, F, L, U, H. В результате выбирают наилучший способ.Step 5. The minimum error is determined by comparing the combination error and the errors caused by the application of methods D, O, M, F, L, U, H. As a result, the best method is selected.

Этап 6. В выходной буфер заносят VLEH, соответствующий выбранному способу сжатия.Step 6. VLEH corresponding to the selected compression method is entered into the output buffer.

Этап 7. В выходной буфер заносят также сжатый битовый поток.Step 7. A compressed bit stream is also entered into the output buffer.

Этап 8. На основе выбранного способа сжатия выполняют соответствующее кодирование младших разрядов (LSB) и результаты кодирования также включают в исходящий поток.Step 8. Based on the selected compression method, the corresponding LSB coding is performed and the coding results are also included in the outgoing stream.

Этап 9. В случае необходимости добавляют дополняющие биты для обеспечения фиксированной скорости передачи обрабатываемого блока 2×4.Step 9. If necessary, add complementary bits to ensure a fixed transmission rate of the processed block 2 × 4.

Фиг.1 - основные этапы способа кодирования.Figure 1 - the main steps of the encoding method.

Фиг.2 - вид 2.1 - исходный подблок 2×2; вид 2.2 - направления разностей NSW-преобразования; вид 2.3 - блок-схема N-метода.Figure 2 - view 2.1 - the original subunit 2 × 2; view 2.2 — directions of differences of the NSW transform; view 2.3 is a block diagram of the N-method.

Фиг.3 - виды 3.1-3.4 - преимущественные способы кодирования P-метода; вид 3.5 - блок-схема P-метода.Figure 3 - views 3.1-3.4 - the preferred methods of encoding the P-method; view 3.5 is a block diagram of the P-method.

Фиг.4 - вид 4.1 - схема оценки дополнительных свободных битов для P-метода; вид 4.2 - последовательность битового потока с дополнительными свободными битами.4 is a view 4.1 - a scheme for evaluating additional free bits for the P-method; view 4.2 is a sequence of bit stream with additional free bits.

Фиг.5 - вид 5.1 - упрощенная последовательность действий E-метода; вид 5.2 - графическое представление структуры блока 2×4 и ее интерпретация в E-методе.Figure 5 - view 5.1 is a simplified sequence of actions of the E-method; view 5.2 is a graphical representation of the structure of a 2 × 4 block and its interpretation in the E-method.

Фиг.6 - детальная схема способа кодирования отдельного цветового перехода.6 is a detailed diagram of a method for encoding a single color transition.

Фиг.7 - вид 7.1 - иллюстрация разделения блока 2×4 на левый и правый подблоки 2×2; вид 7.2 - блок-схема D-способа.7 is a view 7.1 - illustration of the separation of the block 2 × 4 into the left and right sub-blocks 2 × 2; view 7.2 is a block diagram of the D-method.

Фиг.8 - вид 8.1 - иллюстрация положения опорных точек и отдельных производных в F-способе; вид 8.2 - блок-схема F-способа.8 is a view 8.1 is an illustration of the position of reference points and individual derivatives in the F-method; view 8.2 is a block diagram of the F-method.

Фиг.9 - блок-схема O-способа.Fig.9 is a block diagram of an O-method.

Фиг.10 - блок-схема L-способа.Figure 10 is a block diagram of the L-method.

Фиг.11 - блок-схема способа определения цветов палитры блока 2×2.11 is a flowchart of a method for determining the colors of a palette of a 2 × 2 block.

Фиг.12 - общая блок-схема U-способа.12 is a general block diagram of a U-method.

Фиг.13 - вид 13.1 - блок-схема первого способа кодирования, входящего в U-способ; вид 13.2 - логическая схема кодирования среднего значения «гладкого» цвета в первом способе кодирования, входящего в U-способ.13 is a view 13.1 is a flowchart of a first encoding method included in a U-method; view 13.2 is a logical coding scheme for the average value of the “smooth” color in the first coding method included in the U-method.

Фиг.14 - общая блок-схема второго способа кодирования, входящего в U-способ.Fig. 14 is a general block diagram of a second encoding method included in the U-method.

Фиг.15 - детальная блок-схема кодирования одного цвета в пределах блока 2×4 в соответствии со вторым способом кодирования, входящего в U-способ.FIG. 15 is a detailed block diagram of a single color encoding within a 2x4 block in accordance with a second encoding method included in the U-method.

Фиг.16 - условные обозначения цветовых компонент пикселей в пределах блока 2×4, используемые при расчете ошибки кодирования.Fig - conventions of the color components of the pixels within the 2 × 4 block used in the calculation of the encoding error.

Фиг.17 - вид 17.1 - способ разделения битов в пределах пространственного блока 2×4 на существенную и несущественную части; - вид 17.2 - способ частичной группировки младших битов при кодировании младших разрядов.17 is a view 17.1 - a method of dividing bits within a spatial block 2 × 4 into essential and non-essential parts; - view 17.2 - a method of partial grouping of the least significant bits when encoding the least significant bits.

Основные этапы разработанной методики кодирования показаны на Фиг.1. Каждый кадр видеопоследовательности рассматривается в виде независимого цветного изображения. Каждое изображение представляется в виде множества неперекрывающихся блоков размером 2×4. Этап 100 заключается во вводе изображения, представлении его в виде блоков и их кодировании возможными способами. При этом изначально 10-битные данные разделяются на существенную и несущественную части. Далее, существенная часть, образующая блок 2×4 из 8-битных значений обрабатывается на этапах 101…121, в то время как младшая часть, образующая блок 2×4 из 2-битных значений, обрабатывается на этапе 123. Каждый непересекающийся блок 2×4 исходного изображения разделяется на левый подблок размером 2×2 (три канала), правый подблок размером 2×2 (три канала), а также рассматривается как целый блок размером 2×4 (три канала). Левый подблок обрабатывают на этапах 101, 103, 105, 107, 109. Правый подблок обрабатывают на этапах 102, 104, 106, 108, 110. Целый блок обрабатывают на этапах 111-117.The main stages of the developed coding methodology are shown in Fig.1. Each frame of a video sequence is considered as an independent color image. Each image is represented as a set of non-overlapping 2 × 4 blocks. Step 100 is to enter an image, present it in blocks and encode them in possible ways. In this case, initially 10-bit data is divided into essential and non-essential parts. Further, the essential part forming a 2 × 4 block of 8-bit values is processed in steps 101 ... 121, while the minor part forming a 2 × 4 block of 2-bit values is processed in step 123. Each non-intersecting 2 × block 4 of the original image is divided into a left 2 × 2 subblock (three channels), a 2 × 2 right subblock (three channels), and is also considered as a whole 2 × 4 block (three channels). The left sub-block is processed in steps 101, 103, 105, 107, 109. The right sub-block is processed in steps 102, 104, 106, 108, 110. The whole block is processed in steps 111-117.

После того как каждый блок подвергнется кодированию всеми доступными в конкретном случае способами, определяют погрешности кодирования и выбирают способ, дающий наименьшую погрешность для каждого блока (этапы 118-120). На этапе 121 определяют погрешность кодирования, вызванную раздельным кодированием левого и правого подблоков на этапах 101, 103, 105, 107, 109 и 102, 104, 106, 108, 110 соответственно. На этапе 122 выбирают оптимальный способ (среди способов, выбранных на этапах 118-120).After each block is subjected to coding by all methods available in a particular case, coding errors are determined and a method is selected that gives the smallest error for each block (steps 118-120). At 121, a coding error caused by separate coding of the left and right subblocks at steps 101, 103, 105, 107, 109 and 102, 104, 106, 108, 110, respectively, is determined. At step 122, the optimal method is selected (among the methods selected at steps 118-120).

На этапе 123 кодируют данные младших разрядов (LSBD Least Significant Bits Data). Число битов при кодировании LSBD зависит от выбранного способа кодирования.At step 123, the LSBD Least Significant Bits Data is encoded. The number of bits in LSBD encoding depends on the encoding method selected.

На этапе 124 формируют выходной битовый поток, который состоит из заголовка, указывающего на то, какой способ использован. Размер заголовка зависит от конкретного способа и может занимать от одного до десяти битов. Затем в поток вносят данные о младших разрядах (LSBD) блока 2×4 в сжатом виде. В зависимости от выбранного способа эти данные могут занимать от трех до шести битов на блок 2×4. В случае необходимости поток пополняется дополняющими битами, которые предназначены для обеспечения фиксированной скорости битового потока. Подблок размером 2×2 кодируется набором методов. Первый из таких методов основан на NSW-преобразовании и называется N-метод. Этот метод применяют на этапах 101, 102. Преобразование NSW является новым двумерным преобразованием, разработанным на основе комбинации предикативного кодирования, одномерного вейвлет-преобразования Хаара, лифтинг-схемы.At step 124, an output bitstream is formed, which consists of a header indicating which method is used. The size of the header depends on the particular method and can take from one to ten bits. Then the data on the least significant bits (LSBD) of the 2 × 4 block in compressed form is entered into the stream. Depending on the method selected, this data may take from three to six bits per 2 × 4 block. If necessary, the stream is replenished with complementary bits, which are designed to provide a fixed bit rate. A 2 × 2 subblock is encoded by a set of methods. The first of these methods is based on the NSW transform and is called the N-method. This method is applied at steps 101, 102. The NSW transform is a new two-dimensional transform developed based on a combination of predicative coding, a one-dimensional Haar wavelet transform, and a lifting scheme.

Будем рассматривать блок размером 2×2 в любом цветовом канале как набор из четырех значений A, B, C, D (Фиг.2.1). Набор из четырех исходных значений A, B, C, D преобразуют в четыре значения: {A, B, C, D}→{s, h, v, d} согласно следующим формулам:We will consider a 2 × 2 block in any color channel as a set of four values A, B, C, D (Figure 2.1). The set of four initial values A, B, C, D is converted into four values: {A, B, C, D} → {s, h, v, d} according to the following formulas:

h=A-Bh = A-B

Figure 00000001
Figure 00000001
ν=A-Cν = A-C B=A-hB = A-h d=A-Dd = A-D C=A-νC = A-ν
Figure 00000002
Figure 00000002
D=A-dD = A-d

где s - означает среднее значение четырех пикселей, h, v, d - простейшие градиенты в направлениях: горизонталь, вертикаль, диагональ (Фиг.2.2). Блок-схему N-метода иллюстрирует Фиг.2.3. На этапе 200 выполняют преобразование NSW, получая значения s, h, v, d. Первоначально для хранения s требуется восемь битов, h, v, d занимают по девять битов на каждое значение: 1-разряд для хранения знака+8-разрядная величина. Для компактного представления этих данных используются определенные процедуры. N-метод применяют к подблоку 2×2, который входит в состав блока размером 2×4 для трех цветовых каналов. Очевидно, что каждый подблок 2×2 должен кодироваться в среднем не более чем 90:6=15 битами. Эти пятнадцать битов должны представлять s, h, v, d с достаточной точностью. В целях обеспечения надежности и простоты кодирования кодирование величины s осуществляется с использованием простого равномерного квантования. Точность в шесть битов является достаточной для представления среднего значения для естественных частей изображений - этап 201. Квантование набора разностных величин {h, v, d} основано на построении набора фиксированных квантователей, подобного оптимальному фиксированному квантованию Ллойда-Макса - этапы 202…208 (см. "Quantizers for symmetric gamma distributions" in Proc. IEEE Globecom Conf, p.214-118, 1983; "The enhanced LBG algorithm" // Giuseppe Patane, Marco Russo) - [6]. При этом каждый квантователь относится к изображению с определенной структурой и состоит из более чем одного значения, являющегося уровнем восстановления квантованного значения. Процесс квантования заключается в выявлении подходящего квантователя среди набора квантователей для {h, v, d} (этап 209 после этапов 202…208) для одного цвета, а затем нахождении для каждой разности соответствующего уровня восстановления (этап 210). Из-за ограниченного битового бюджета налагаются следующие ограничения: набор квантователей состоит из восьми отдельных квантователей, каждый из которых имеет четыре значения: два положительных и симметрично два отрицательных (эти значения здесь и далее называются уровнями восстановления). Обычно значения уровней восстановления заключены в диапазоне [-255…255]. При этом модули значений уровней восстановления одного квантователя представляют собой монотонно возрастающую дискретную функцию. Таблица с предпочтительными уровнями восстановления приведена ниже:where s is the average value of four pixels, h, v, d are the simplest gradients in the directions: horizontal, vertical, diagonal (Figure 2.2). The block diagram of the N-method is illustrated in Figure 2.3. At step 200, the NSW transform is performed to obtain the values s, h, v, d. Initially, storing s requires eight bits, h, v, d occupy nine bits for each value: 1-bit for character storage + 8-bit value. Certain procedures are used to present this data compactly. The N-method is applied to the 2 × 2 subunit, which is part of a 2 × 4 block for three color channels. Obviously, each 2 × 2 sub-block should be encoded on average no more than 90: 6 = 15 bits. These fifteen bits should represent s, h, v, d with sufficient accuracy. In order to ensure reliability and ease of coding, the coding of the quantity s is carried out using simple uniform quantization. An accuracy of six bits is sufficient to represent the average value for the natural parts of the images - step 201. The quantization of the set of difference values {h, v, d} is based on the construction of a set of fixed quantizers similar to Lloyd-Max optimal fixed quantization - steps 202 ... 208 (see . "Quantizers for symmetric gamma distributions" in Proc. IEEE Globecom Conf, p.214-118, 1983; "The enhanced LBG algorithm" // Giuseppe Patane, Marco Russo) - [6]. Moreover, each quantizer refers to an image with a certain structure and consists of more than one value, which is the recovery level of the quantized value. The quantization process consists in identifying a suitable quantizer among the set of quantizers for {h, v, d} (step 209 after steps 202 ... 208) for one color, and then finding the corresponding recovery level for each difference (step 210). Due to the limited bit budget, the following restrictions are imposed: the set of quantizers consists of eight separate quantizers, each of which has four values: two positive and symmetrically two negative (these values are hereinafter referred to as recovery levels). Typically, recovery levels are in the range [-255 ... 255]. Moreover, the moduli of the values of the recovery levels of one quantizer are a monotonically increasing discrete function. A table with preferred recovery levels is shown below:

Таблица 1Table 1 Таблица квантованияQuantization table Номер квантователяQuantizer number Id×0Id × 0 Id×1Id × 1 Id×2Id × 2 Id×3Id × 3 00 -220-220 -80-80 8080 220220 1one -23-23 -4-four 4four 2323 22 -200-200 -10-10 1010 200200 33 -80-80 -40-40 4040 8080 4four -138-138 -50-fifty 50fifty 138138 55 -63-63 -18-eighteen 18eighteen 6363 66 -42-42 -12-12 1212 4242 77 -104-104 -28-28 2828 104104

Процесс кодирования разностных величин {h, v, d} включает в себя следующее:The coding process of difference values {h, v, d} includes the following:

- определение номера квантователя N из набора квантователей, три величины которого являются наилучшим приближением для {h, v, d};- determination of the quantizer number N from the set of quantizers, three values of which are the best approximation for {h, v, d};

- определение индексов уровней восстановления для {h, v, d} в квантователе с номером N.- determination of recovery level indices for {h, v, d} in quantizer number N.

Описанный процесс кодирования разностных величин здесь и далее обозначается процессом фиксированного квантования по таблице (FQvT). Для большего обобщения имеет смысл сформулировать FQvT в общих математических терминах. Набор квантователей может быть описан в виде двумерной матрицы Q (таблицы квантования), включающей QS строк (квантователей) и IX столбцов (уровней восстановления или квантования). Допустим, что требуется выполнить квантование набора разностных величин {d1…dK}. Определим общее выражение для вычисления погрешности Е приближения, которая вызвана квантованием исходного набора разностных величин {d1…dK}. Не ограничивая общности, положим, что она может зависеть от набора разностей {d1…dK}, выбранных уровней восстановления {Id1…IdK}, а также выбранного квантователя QI. Е=Е({d1…dK}, (Id1…IdK}, QI). Нахождение оптимального квантователя из набора квантователей заключается в определении аргумента выражения:The described process of encoding difference values is hereinafter denoted by the process of fixed quantization according to the table (FQvT). For more generalization, it makes sense to formulate FQvT in general mathematical terms. A set of quantizers can be described as a two-dimensional matrix Q (quantization tables), including QS rows (quantizers) and IX columns (recovery or quantization levels). Suppose that you want to quantize a set of difference values {d 1 ... d K }. We define a general expression for calculating the error E of the approximation, which is caused by quantization of the initial set of difference values {d 1 ... d K }. Without loss of generality, we assume that it can depend on the set of differences {d 1 ... d K }, the selected recovery levels {Id 1 ... Id K }, as well as the selected quantizer QI. E = E ({d 1 ... d K }, (Id 1 ... Id K }, QI). Finding the optimal quantizer from the set of quantizers consists in determining the argument of the expression:

Figure 00000003
Figure 00000003

Это выражение математически описывает этапы 202…208 и условный переход на Фиг.2.3. С технической точки зрения оно означает, что для каждого квантователя (QI) набор разностных величин {d1…dK} должен быть аппроксимирован наилучшими уровнями восстановления, которые однозначно идентифицируются индексами {IdQ11…IdQIK). Затем среди всех квантователей из набора квантователей должен быть выбран только один, и это должно обеспечить минимальную погрешность аппроксимации. Для данного квантователя QI и данной разностной величины dj наилучший уровень восстановления в общем случае определяется выражением:This expression mathematically describes steps 202 ... 208 and the conditional jump in Fig.2.3. From a technical point of view, it means that for each quantizer (QI) the set of difference values {d 1 ... d K } should be approximated by the best recovery levels that are uniquely identified by the indices {Id Q1 1 ... Id QI K ). Then, among all the quantizers from the set of quantizers, only one should be selected, and this should ensure a minimum approximation error. For a given quantizer QI and a given difference quantity d j, the best recovery level in the general case is determined by the expression:

Figure 00000004
Figure 00000004

Следует отметить, что другой способ определить наилучший уровень восстановления состоит в том, чтобы сравнить dj со средними точками между смежными уровнями восстановления. В этом случае требуется лишь выполнить операции "сравнения". Кроме того, легко заметить, что если таблица является симметричной (каждый квантователь включает в себя положительные и отрицательные величины), то во время квантования нужно рассмотреть лишь амплитуды разностных величин.It should be noted that another way to determine the best level of recovery is to compare d j with the midpoints between adjacent levels of recovery. In this case, it is only necessary to perform the operations of "comparison". In addition, it is easy to notice that if the table is symmetric (each quantizer includes positive and negative values), then during quantization it is only necessary to consider the amplitudes of the difference values.

Функция E({d1…dK}, {Id1…IdK), QI) может также включать дополнительные веса, которые позволят вычислять взвешенную погрешность (если, например, используются разностные величины из цветовых каналов с различной видимостью). Очевидно, что представленная таблица квантования не может идеально передать произвольную комбинацию {h, v, d}. Однако результаты проведенных экспериментов указывают на то, что для естественных изображений множество значений (h, v, d) локализовано в определенных подобластях. Исходя из этого таблица квантования оптимизирована именно для этих случаев.The function E ({d 1 ... d K }, {Id 1 ... Id K ), QI) may also include additional weights that allow us to calculate the weighted error (if, for example, difference values from color channels with different visibility are used). Obviously, the quantization table presented cannot ideally convey an arbitrary combination {h, v, d}. However, the results of the experiments indicate that for natural images, the set of values (h, v, d) is localized in certain subdomains. Based on this, the quantization table is optimized specifically for these cases.

Выбор оптимального квантователя (или строки в таблице 1) основан на вычислении погрешности аппроксимации подблока определенным набором {h', v', d'}. Рассмотрим процесс квантования разностных величин h, v, d как добавление аддитивного шума к исходным значениям:The choice of the optimal quantizer (or the row in Table 1) is based on the calculation of the error of approximating the subblock with a certain set of {h ', v', d '}. Consider the process of quantization of difference values h, v, d as adding additive noise to the initial values:

Figure 00000005
Figure 00000005

Тогда погрешность интенсивностей пикселей A, B, C, D может быть оценена следующим образом:Then the error in the intensities of pixels A, B, C, D can be estimated as follows:

Figure 00000006
Figure 00000006

Если среднее значение s подвергается квантованию, то соответствующая Δs должна прибавляться к ΔА для того, чтобы корректно оценить оставшиеся пиксельные погрешности.If the average value of s is quantized, then the corresponding Δs must be added to ΔA in order to correctly estimate the remaining pixel errors.

На основе проведенных исследований приемлемые результаты могут быть достигнуты, если в качестве меры погрешности Е использовать сумму квадратов значений ΔA, ΔB, ΔC, ΔD (этап 207). Для каждой строки вычисляют эту величину и затем выбирают минимум. Следует отметить, что эта величина, по существу, является среднеквадратичным отклонением ошибки кодирования подблока (погрешность квантования, вызванная квантованием значения s, не рассматривается, но также может быть учтена).Based on the studies, acceptable results can be achieved if, as a measure of the error E, use the sum of the squares of the values ΔA, ΔB, ΔC, ΔD (step 207). For each row, this value is calculated and then a minimum is selected. It should be noted that this value is essentially the standard deviation of the coding error of the subblock (the quantization error caused by the quantization of the value of s is not considered, but can also be taken into account).

В тех или иных целях для оценки меры погрешности могут быть использованы и более простые функциональные зависимости. Например, значение максимального отклонения MAX(|Δh|, |Δv|, |Δd|) также рекомендовано к применению. Результаты экспериментов также подтверждают ее эффективность.For one purpose or another, simpler functional dependencies can be used to evaluate the measure of error. For example, the maximum deviation value MAX (| Δh |, | Δv |, | Δd |) is also recommended. The experimental results also confirm its effectiveness.

Второй метод обработки подблока размером 2×2 - это P-метод, который реализуется на этапах 103 и 104. Преобразование NSW эффективно используется при кодировании естественных частей изображений. Но некоторые из них могут состоять из одного вертикального/горизонтального элемента. В этом случае одна из разностей будет близка нулю и таблица квантования N-метода не будет столь эффективной. Для преодоления этой проблемы таблица квантования оптимизирована под указанные случаи. Кроме того, добавлены дополнительные подрежимы кодирования, обеспечивающие эффективную передачу подблоков с вертикальными/горизонтальными или диагональными преимущественными направлениями, а также однородными участками в пределах подблока размером 2×2. Способ кодирования определяется субпрефиксом переменной длины (VL), который указывает, какой тип кодирования используется. В P-методе используют семь подрежимов. Они представлены в Таблице 2. Обобщенная блок-схема Р-метода показана на Фиг.3.5.The second method for processing a 2 × 2 subblock is the P method, which is implemented in steps 103 and 104. The NSW transform is effectively used in encoding the natural parts of images. But some of them may consist of one vertical / horizontal element. In this case, one of the differences will be close to zero and the quantization table of the N-method will not be so effective. To overcome this problem, the quantization table is optimized for these cases. In addition, additional coding sub-modes have been added that provide efficient transmission of sub-blocks with vertical / horizontal or diagonal predominant directions, as well as homogeneous sections within a 2 × 2 sub-block. The encoding method is determined by a variable length sub-prefix (VL), which indicates what type of encoding is used. The P method uses seven submodes. They are presented in Table 2. A generalized block diagram of the P-method is shown in Figure 3.5.

Таблица 2table 2 Субпрефиксы VL для метода NSWPZVL Subprefixes for NSWPZ Method Субпрефикс (двоичное представление)Subprefix (binary representation) Название подрежимаSubmode Name 0000 Горизонтальное преимущественное направление (H структура)Horizontal preferred direction (H structure) 0101 Вертикальное преимущественное направление (V структура)Vertical preferred direction (V structure) 100one hundred h величина близка к 0h the value is close to 0 101101 v величина близка к 0v value is close to 0 110110 d величина близка к 0d value close to 0 11101110 Диагональное преимущественное направление (D структура)Diagonal preferential direction (D structure) 11111111 Среднее значениеAverage value

H структура означает, что для кодирования подблока 2×2 используются две "опорные точки" A, C (Фиг.3.1). Каждая из них кодируется семью битами (простое усечение младшего разряда). Усеченный младший разряд восстанавливается нулевым значением.The H structure means that two "reference points" A, C are used to encode the 2 × 2 sub-block (Figure 3.1). Each of them is encoded in seven bits (simple truncation of the least significant bit). The truncated low order is restored to zero.

V структура означает, что для кодирования подблока 2×2 используют две "опорные точки" A, B (Фиг.3.2). Каждая из них кодируется семью битами (простое усечение младшего разряда). Усеченный младший разряд восстанавливается нулевым значением.V structure means that for the coding of the 2 × 2 subblock, two “reference points” A, B are used (Fig. 3.2). Each of them is encoded in seven bits (simple truncation of the least significant bit). The truncated low order is restored to zero.

D структура означает, что для кодирования подблока 2×2 используют две "опорные точки" A, B (Фиг.3.3). Каждая из них кодируется шестью битами (простое усечение двух младших разрядов). Усеченные младшие разряды восстанавливаются бинарным значением 10b. По сравнению с режимом H/V-структур в этом случае опорные точки A, В используются для восстановления точек C, D следующим способом: D=A, C=B.D structure means that two "reference points" A, B are used to encode the 2 × 2 sub-block (Figure 3.3). Each of them is encoded with six bits (a simple truncation of the two least significant bits). Truncated low order bits are restored with a binary value of 10b. Compared with the mode of H / V structures, in this case, reference points A, B are used to restore points C, D in the following way: D = A, C = B.

Режим среднего значения используется для того, чтобы кодировать все пиксели A, B, C, D через среднее значение (однородный блок), а среднее значение занимает восемь битов.The average value mode is used to encode all pixels A, B, C, D through the average value (homogeneous block), and the average value takes eight bits.

Один из режимов "h/v/d величина близка к нулю" используется, если после NSW-преобразования одна из величин (h, v, d) близка к нулю. Префиксы выбраны на основе следующих соответствий:One of the modes “h / v / d value is close to zero” is used if, after the NSW transform, one of the values (h, v, d) is close to zero. Prefixes are selected based on the following matches:

100: |А-В |~0100: | AB | ~ 0

101: |А-С |~0101: | AC | ~ 0

110: |A-D |~0110: | A-D | ~ 0

В каждом случае только две разностные величины подвергаются квантованию:In each case, only two difference values are quantized:

h≡0; {v, d}→{Квантователь N, Iv, Id},h≡0; {v, d} → {Quantizer N, Iv, Id},

v≡0; {h, d}→{Квантователь N, Ih, Id},v≡0; {h, d} → {Quantizer N, Ih, Id},

d≡0; {h, v}→{Квантователь N, Ih, Iv}.d≡0; {h, v} → {Quantizer N, Ih, Iv}.

Предпочтительная таблица квантования, описывающая набор квантователей для метода NS WPZ, представлена ниже:A preferred quantization table describing a set of quantizers for the NS WPZ method is presented below:

Таблица 3Table 3 Таблица квантования. Р-методQuantization table. P-method Номер квантователяQuantizer number Id×0Id × 0 Id×1Id × 1 Id×2Id × 2 Id×3Id × 3 00 -250-250 -240-240 240240 250250 1one 00 00 -7-7 77 22 -224-224 -9-9 99 224224 33 -118-118 -66-66 6666 118118 4four -94-94 -19-19 1919 9494 55 -220-220 -125-125 125125 220220 66 -185-185 -52-52 5252 185185 77 -39-39 -12-12 1212 3939

Величина s первоначально кодируется шестью битами простым усечением двух младших разрядов, однако в ряде случаев точность представления может быть повышена за счет более эффективного кодирования разностных величин. Процесс кодирования включает в себя следующие этапы: на этапе 300 подблок размером 2×2 кодируют с помощью структуры H; на этапе 301 подблок размером 2×2 кодируют с помощью структуры V; на этапах 302 и 303 подблок размером 2×2 кодируют соответственно с помощью структуры D и среднего значения. После этого на этапе 304 вычисляют погрешности, вызванные соответствующими способами кодирования подблока. Затем выполняют NSW-преобразование (этап 305). Среди модулей разностных величин (h, v, d) определяют наименьшее значение - этап 306. Затем две ненулевые разностные величины кодируют методом FQvT с помощью Таблицы 3 и процесса квантования, описанного выше (этап 307). На этапе 308 определяют дополнительные свободные биты и исходя из этого величину s кодируют с точностью шесть, семь или восемь битов. Оценивают погрешность, вызванную кодированием блока 2×2 с помощью метода FQvT - этап 309. Среди полученных на этапе 310 пяти погрешностей выбирают наименьшую. Соответствующий субпрефикс из Таблицы 2 вводят в битовый поток перед сжатыми данными - этап 311.The value of s is initially encoded with six bits by simple truncation of the two least significant bits, however, in some cases, the accuracy of the representation can be improved due to more efficient coding of difference values. The encoding process includes the following steps: at step 300, a 2 × 2 subblock is encoded using structure H; in step 301, a 2 × 2 subblock is encoded using structure V; in steps 302 and 303, a 2 × 2 subunit is encoded using structure D and the average value, respectively. After that, in step 304, the errors caused by the corresponding sub block coding methods are calculated. Then, NSW conversion is performed (step 305). Among the modules of difference values (h, v, d), the smallest value is determined - step 306. Then, two nonzero difference values are encoded using the FQvT method using Table 3 and the quantization process described above (step 307). At step 308, additional free bits are determined, and based on this, the value s is encoded with an accuracy of six, seven, or eight bits. The error caused by the coding of the 2 × 2 block using the FQvT method is estimated — step 309. Among the five errors obtained in step 310, the smallest one is selected. The corresponding subprefix from Table 2 is injected into the bitstream before the compressed data - step 311.

В результате экспериментов установлено, что 6-битовая точность представления среднего значения в ряде случаев оказывается недостаточной для обеспечения визуальной идентичности некоторых участков изображения. В связи с этим предложено один из квантователей (Номер 1) использовать как индикатор. Он содержит как нулевые значения, так и ненулевые значения, которые кодируются префиксными кодами специального вида: Id×0→0b; Id×1→ запрещенное значение; Id×2→10b; Id×3→11b. Таблица с уровнями восстановления для этого квантователя приведена ниже:As a result of experiments, it was found that the 6-bit accuracy of the representation of the average value in some cases is insufficient to ensure the visual identity of some parts of the image. In this regard, it is proposed to use one of the quantizers (Number 1) as an indicator. It contains both zero values and non-zero values, which are encoded by prefix codes of a special form: Id × 0 → 0b; Id × 1 → forbidden value; Id × 2 → 10b; Id × 3 → 11b. A table with recovery levels for this quantizer is shown below:

Номер квантователяQuantizer number Id×0Id × 0 Id×1Id × 1 Id×2Id × 2 Id×3Id × 3 1one 00 0 запрещенное значение0 prohibited value -7-7 77

Алгоритм для выявления числа "Свободных Битов" показан на Фиг.4.1. Декодер может определить наличие свободных битов аналогичным образом, в силу чего когерентность кодера/декодера не нарушается. Соответствие числа свободных битов и точности представления среднего значения указано в Таблице 4:An algorithm for detecting the number of "Free Bits" is shown in Figure 4.1. The decoder can determine the presence of free bits in a similar way, whereby the coherence of the encoder / decoder is not violated. The correspondence of the number of free bits and the accuracy of the representation of the average value is shown in Table 4:

Таблица 4Table 4 Интерпретация свободных битовInterpretation of free bits Количество свободных битовNumber of free bits Точность представления "s" величиныRepresentation accuracy of the "s" value 00 66 1one 77 99 88

Для эффективного декодирования индексы, кодирующие разностные величины, должны быть включены в сжатый поток перед закодированной информацией о среднем значении. Рекомендованная структура показана на Фиг.4.2.For efficient decoding, indexes encoding difference values must be included in the compressed stream before the encoded mean value information. The recommended structure is shown in Figure 4.2.

Третий метод этой группы называется S-метод. Этот метод применяют на этапах 105, 106. Он разработан специально для воспроизведения участков со сравнительно малой интенсивностью (и, следовательно, с малыми разностными величинами) во всех трех цветовых каналах в пределах подблока 2×2 и является модификацией N-метода за счет применения иной таблицы квантования и иной процедуры кодирования среднего.The third method of this group is called the S-method. This method is used at steps 105, 106. It is specifically designed to reproduce areas with a relatively low intensity (and, therefore, with small difference values) in all three color channels within the 2 × 2 subunit and is a modification of the N-method due to the use of a different quantization tables and other mean coding procedures.

Величина s кодируется с использованием пять битов следующим образом:The value of s is encoded using five bits as follows:

- берут младшие шесть битов восьмибитового представления величины s;- take the lower six bits of the eight-bit representation of s;

- из них старшие пять битов рассматриваются как кодовое представление величины s. При декодировании младший разряд декодированной величины s восстанавливают нулевым значением.- of these, the high five bits are considered as a code representation of s. When decoding, the least significant bit of the decoded value s is restored to zero.

Таблица квантования обеспечивает передачу незначительных изменений интенсивностей:The quantization table provides the transmission of minor changes in intensities:

Таблица 5Table 5 Таблица квантования. Кодирование малых значенийQuantization table. Small value coding Номер квантователяQuantizer number Id×0Id × 0 Id×1Id × 1 Id×2Id × 2 Id×3Id × 3 00 -1-one -2-2 1one 22 1one -2-2 -6-6 22 66 22 -1-one -4-four 1one 4four 33 -4-four -10-10 4four 1010 4four -3-3 -8-8 33 88 55 -4-four -20-twenty 4four 20twenty 66 -8-8 -40-40 88 4040 77 -3-3 -15-fifteen 33 15fifteen

Процедура квантования разностных величин аналогична соответствующей процедуре N-метода.The procedure for quantizing difference values is similar to the corresponding procedure of the N-method.

Четвертый метод называется C-метод. Его применяют на этапах 107 и 108. Метод основан на применении NSW-преобразования и заключается в его применении ко всем цветовым каналам одновременно с последующим групповым кодированием разностных величин из трех цветовых каналов совместно. Эффективность данного метода для определенного класса изображений обуславливается высокой схожестью амплитуд разностных величин после NSW-преобразования всех трех каналов и их совокупным широким динамическим диапазоном, что является отличительной особенностью отдельных областей указанного класса изображений. За счет группового кодирования, увеличения динамического диапазона квантователя (до восьми уровней восстановления), а также устранения независимости выбора квантователя от цветового канала достигается повышение точности кодирования (квантования), в случае если разностные величины NSW-преобразования по трем цветовым каналам в достаточной мере сходны. Эти особенности могут быть рассмотрены как отличительные признаки заявляемого изобретения. Таблица 6 представляет рекомендованный оптимизированный набор квантователей.The fourth method is called the C-method. It is applied at steps 107 and 108. The method is based on the application of the NSW transform and consists in its application to all color channels simultaneously with subsequent group coding of difference values from three color channels together. The effectiveness of this method for a certain class of images is determined by the high similarity of the amplitudes of the difference values after the NSW conversion of all three channels and their combined wide dynamic range, which is a distinctive feature of individual regions of the specified class of images. Due to group coding, increasing the quantizer dynamic range (up to eight recovery levels), as well as eliminating the independence of the quantizer from the color channel, coding (quantization) accuracy is improved if the difference values of the NSW transform over the three color channels are sufficiently similar. These features can be considered as distinctive features of the claimed invention. Table 6 presents the recommended optimized set of quantizers.

Таблица 6Table 6 Таблица квантования. C-методQuantization table. C method Номер квантователяQuantizer number Id×0Id × 0 Id×1Id × 1 Id×2Id × 2 Id×3Id × 3 Id×4Id × 4 Id×5Id × 5 Id×6Id × 6 Id×7Id × 7 00 -128-128 -180-180 -213-213 -245-245 128128 180180 213213 245245 1one -3-3 -15-fifteen -30-thirty -50-fifty 33 15fifteen 30thirty 50fifty 22 -20-twenty -86-86 -160-160 -215-215 20twenty 8686 160160 215215 33 -50-fifty -82-82 -104-104 -130-130 50fifty 8282 104104 130130 4four -90-90 -145-145 -194-194 -240-240 9090 145145 194194 240240 55 -9-9 -40-40 -73-73 -106-106 99 4040 7373 106106 66 -163-163 -122-122 -66-66 -15-fifteen 15fifteen 6666 122122 163163 77 -180-180 -139-139 -63-63 -25-25 2525 6363 139139 180180

Процесс квантования весьма схож с процессом квантования, примененным в N-методе. Основное отличие состоит в том, что для всего набора разностных величин из подблока 2×2: {hR, hG, hB, vR, vG, vB, dR, dG, dB} выбирают один общий квантователь. Каждая из разностных величин кодируется посредством 3-битового значения. В целом девять разностей занимают: 9×3=27 битов. Индекс квантователя кодируется тремя битами, что в итоге дает (27+3)=30 битов. Каждая величина {sR, sG, sB} кодируется пятью битами путем усечения трех младших разрядов. Восстановление засеченных разрядов осуществляется через бинарное значение 100b. В целом, подблок 2×2 в трёх цветовых каналах кодируется использованием сорока пяти битов. Для определения оптимального квантователя применяется процедура, аналогичная процедуре, используемой в N-методе. Для обеспечения оптимального визуального качества суммарная погрешность приближения набора разностных величин во всех трех цветовых каналах должна учитывать различную цветовую чувствительность зрительной системы человека. В частности, в данном изобретении предложено использовать специально определенные веса, отражающие различное восприятие наблюдателем красного, зеленого и синего цветов. В этом случае погрешность Е, порожденную процедурой FQvT для {hR, hG, hB, vR, vG, vB, dR, dG, dB}, можно выразить следующим образом:The quantization process is very similar to the quantization process used in the N-method. The main difference is that for the whole set of difference values from the 2 × 2 subunit: {hR, hG, hB, vR, vG, vB, dR, dG, dB} one common quantizer is chosen. Each of the difference values is encoded by a 3-bit value. A total of nine differences occupy: 9 × 3 = 27 bits. The quantizer index is encoded in three bits, which ultimately gives (27 + 3) = 30 bits. Each value {sR, sG, sB} is encoded with five bits by truncating the three least significant bits. Shot discharges are restored through a binary value of 100b. In general, a 2 × 2 sub-block in three color channels is encoded using forty-five bits. To determine the optimal quantizer, a procedure similar to that used in the N-method is used. To ensure optimal visual quality, the total error of approximation of a set of difference values in all three color channels should take into account the different color sensitivity of the human visual system. In particular, the present invention proposes the use of specially defined weights that reflect the observer’s different perceptions of red, green, and blue. In this case, the error E generated by the FQvT procedure for {hR, hG, hB, vR, vG, vB, dR, dG, dB} can be expressed as follows:

Figure 00000007
Figure 00000007

Figure 00000008
Figure 00000008

Здесь ΔhC, ΔvC, ΔdC обозначают ошибку приближения h/v/d разностных величин после FQvT процедуры в цветовом канале C. Wc - весовые коэффициенты, отражающие относительную видимость каждого из цветовых каналов C для человека. Более простой способ оценки погрешности E заключается в расчете суммы взвешенных максимальных ошибок кодирования h/v/d разностных величин:Here ΔhC, ΔvC, ΔdC denote the error of approximation of h / v / d difference values after the FQvT procedure in color channel C. W c are weight coefficients reflecting the relative visibility of each of color channels C to humans. A simpler way of estimating the error E is to calculate the sum of the weighted maximum coding errors of h / v / d difference values:

Figure 00000009
Figure 00000009

Этот способ оценки погрешности обеспечивает адекватные результаты с точки зрения визуального качества закодированного изображения и рекомендован к применению в случае, если сложность реализации является критической.This method of estimating the error provides adequate results in terms of the visual quality of the encoded image and is recommended for use if the implementation complexity is critical.

Пятый метод обозначается как E-метод. Он выполняется на шагах 109 и 110. Известно, что на границах между двумя чистыми цветами стандартные методы кодирования могут вызывать видимые искажения. Ввиду этого предложено расщепить исходный блок 2×4 на четыре микроблока меньшего размера с размерами 1×2 пикселей - шаг 500 на Фиг.5.1. При этом каждый микроблок 1×2 состоит из двух пространственных пикселей, обозначенных A, B - Фиг.5.2. Каждый пространственный пиксель состоит из трех цветовых компонент R, G, B. Для каждого микроблока определяется доминирующий канал и затем осуществляется передача значений пикселей в доминирующем канале путем кодирования соответствующих значений в шесть битов; минорные (неосновные) каналы кодируются посредством передачи средних значений между двумя значениями для каждой пространственной позиции, при этом используется процедура квантования и ограничения - шаг 501. Блок-схема кодирования микроблока 1×2 показана на Фиг.6. На шаге 602 рассчитывается сумма интенсивностей пикселей по каждому цветовому каналу. Затем осуществляется последовательное сравнение рассчитанных сумм для того, чтобы определить основной (доминирующий) канал. Если сумма интенсивностей в пределах красного канала больше, чем соответствующие суммы в пределах зеленого и синего - шаг 603, то делается заключение о доминировании красного канала. Иначе, если сумма интенсивностей в пределах зеленого канала больше, чем сумма интенсивностей красного и синего - шаг 604, делается заключение о доминировании зеленого канала. Иначе, если сумма интенсивностей в пределах синего канала больше, чем сумма интенсивностей красного и зеленого - шаг 605, делается заключение о доминировании синего канала. В противном случае предполагается, что доминирующим каналом является яростный канал, а цветоразностные каналы являются минорными - шаг 606. Интенсивности пикселей доминирующего канала сохраняются во временных переменных D1/D2. В зависимости от того какие каналы признаны минорными, вычисляются определенные средние значения - шаги 608, или 609, или 610. Ключевой особенностью является способ расчета среднего: усреднение производится не в пределах каждого минорного канала, а между двумя минорными каналами в каждой пространственной позиции. Для примера рассмотрим шаг 608. Первое среднее значение рассчитывается в пространственной позиции A между красным и синим каналами. Второе среднее значение рассчитывается путем усреднения интенсивностей в пространственной позиции B в красном и синем каналах. После этого временные переменные, которые хранят значения доминантного канала, кодируются 6-битными значениями путем усечения двух младших разрядов - шаг 607. Восстановление усеченных разрядов осуществляется двоичным значением 10b. Усредненные значения минорных каналов вначале ограниваются по верхнему порогу, равному шестидесяти трем (если значение больше 63, оно устанавливается равным 63) - шаг 611. Затем ограниченные значения квантуются усечением трех младших разрядов - шаг 612. Восстановление усеченных разрядов осуществляется двоичным значением 100b. С каждым микроблоком 1×2 передается дополнительная информация, указывающая номер доминирующего канала (два бита).The fifth method is referred to as the E-method. It is performed in steps 109 and 110. It is known that at the boundaries between two clear colors, standard encoding methods can cause visible distortion. In view of this, it is proposed to split the initial 2 × 4 block into four smaller microblocks with sizes of 1 × 2 pixels — step 500 in FIG. 5.1. Moreover, each 1 × 2 microblock consists of two spatial pixels, designated A, B - Fig. 5.2. Each spatial pixel consists of three color components R, G, B. For each microblock, the dominant channel is determined and then the pixel values in the dominant channel are transmitted by encoding the corresponding values in six bits; minor (non-basic) channels are encoded by transmitting average values between two values for each spatial position, using the quantization and limitation procedure - step 501. A block diagram of the coding of the microblock 1 × 2 is shown in Fig.6. At step 602, the sum of the pixel intensities for each color channel is calculated. Then a sequential comparison of the calculated amounts is carried out in order to determine the main (dominant) channel. If the sum of intensities within the red channel is greater than the corresponding sums within the green and blue channels - step 603, then a conclusion is made about the dominance of the red channel. Otherwise, if the sum of the intensities within the green channel is greater than the sum of the intensities of red and blue - step 604, a conclusion is made about the dominance of the green channel. Otherwise, if the sum of the intensities within the blue channel is greater than the sum of the intensities of red and green - step 605, a conclusion is made about the dominance of the blue channel. Otherwise, it is assumed that the dominant channel is the violent channel, and the color difference channels are minor - step 606. The pixel intensities of the dominant channel are stored in temporary variables D1 / D2. Depending on which channels are recognized as minor, certain average values are calculated - steps 608, or 609, or 610. A key feature is the method of calculating the average: averaging is performed not within each minor channel, but between two minor channels in each spatial position. For example, consider step 608. The first average value is calculated in the spatial position A between the red and blue channels. The second average value is calculated by averaging the intensities in the spatial position B in the red and blue channels. After that, temporary variables that store the values of the dominant channel are encoded with 6-bit values by truncating the two least significant bits - step 607. The truncated bits are restored with the binary value 10b. The averaged values of the minor channels are initially limited to an upper threshold of sixty-three (if the value is greater than 63, it is set to 63) - step 611. Then, the bounded values are quantized by truncating the three least significant bits - step 612. The truncated bits are restored using the binary value 100b. Additional information indicating the number of the dominant channel (two bits) is transmitted with each 1 × 2 microblock.

В дополнение к описанным выше методам авторами разработаны семь способов кодирования, которые предназначены для кодирования блока 2×4. Данные способы дополняют комплект методов, описанных выше, и в определенных случаях обеспечивают более эффективную передачу внутренней структуры изображения.In addition to the methods described above, the authors developed seven encoding methods that are designed to encode a 2 × 4 block. These methods complement the set of methods described above, and in certain cases provide a more efficient transfer of the internal structure of the image.

Первый способ этой группы будем далее называть D-способом. Способ применяется на шаге 113. Он предназначен для тех участков изображения, в которых присутствует совокупность небольших областей с четко выраженной структурой (кроссдиагональные границы) и небольших натуральных областей. D-способ метод заключается в определении подблоков 2×2 в пределах блока 2×4, которые обладают регулярной (кроссдиагональной) и натуральной структурой. Подблок с регулярной структурой кодируется с использованием заранее заданного шаблона и шаблонных значений. Шаблон определяет пространственные позиции для каждого из шаблонных значений. Подблок с натуральной структурой кодируется посредством квантования значений пикселей, которое выражается в усечении младших двух битов.The first method of this group will be further called the D-method. The method is applied at step 113. It is intended for those areas of the image in which there is a combination of small areas with a clearly defined structure (cross-diagonal borders) and small natural areas. The D-way method is to determine 2 × 2 sub-blocks within a 2 × 4 block that have a regular (cross-diagonal) and natural structure. A sub-block with a regular structure is encoded using a predefined pattern and template values. The template defines spatial positions for each of the template values. A sub-block with a natural structure is encoded by quantizing the pixel values, which is expressed in the truncation of the lower two bits.

Процесс кодирования блока 2×4 D-способом раскрывается на Фиг.7.1, 7.2. На шаге 700 определяется подблок с регулярной (шаблонной) структурой. Для этого определяются шаблонные значения левого и правого подблоков 2×2, затем определяются ошибки приближения левого и правого подблоков 2×2 шаблонным кодированием. Исходя из сравнения вычисленных ошибок определяется подблок с наиболее выраженной регулярной структурой. Описанные действия выполняются на шагах 701, 702.The encoding process of a 2 × 4 block in a D-way is disclosed in Figs. 7.1, 7.2. At step 700, a subblock with a regular (patterned) structure is determined. For this, the template values of the left and right subblocks 2 × 2 are determined, then the errors of approximation of the left and right subblocks 2 × 2 by template coding are determined. Based on a comparison of the calculated errors, a subblock with the most pronounced regular structure is determined. The described actions are performed at steps 701, 702.

Шаблонные значения определяются в соответствии со следующими формулами:Template values are determined in accordance with the following formulas:

Figure 00000010
Figure 00000010

Figure 00000011
Figure 00000011

Здесь: C0, C1 - шаблонные значения, k - индекс подблока. k=0 - левый подблок, k=1 - правый подблок.Here: C 0 , C 1 - template values, k - subblock index. k = 0 is the left sub-block, k = 1 is the right sub-block.

Ошибка B1E(k) приближения подблока шаблонным кодированием вычисляется по формуле:Error B1E (k) for approximating the subblock by template coding is calculated by the formula:

Figure 00000012
Figure 00000012

После этого номер подблока, который будет закодирован с использованием шаблонного кодирования, помещают в исходящий сжатый поток.After that, the number of the sub-block to be encoded using template coding is placed in the outgoing compressed stream.

Второй способ далее будем называть F-способом. Он реализуется на шаге 111. Способ предназначен для эффективного представления блоков, состоящих их 2×4 пикселей с градиентной структурой. Способ может быть применен к каждому цветовому каналу индивидуально. Для обеспечения заданной скорости потока, а также поддержки высокой точности представления градиентных переходов в качестве элементов кодирования используются средние опорные точки, среднее значение модулей горизонтальных межпиксельных разностей, а также знаки каждой из разностей. Опорные точки, а также направления отдельных межпиксельных разностей показаны на Фиг.8.1. Блок-схема способа показана на Фиг.8.2. На шаге 800 вычисляются 6 разностных величин: D1, D2, D3, D4, D5, D6. На шаге 801 вычисляется среднее значение модулей величин D1…D6. На шаге 802 вычисляются знаки каждой из разностных величин. В качестве кодовой информации передается среднее значение модулей разностей, знаки разностей, а также две опорные точки - A2, B2 - шаг 803. Опорные точки передаются без потерь. Таким образом, F-способ может быть сформулирован следующим образом: кодирование блоков, содержащих градиентные участки, выполняют одновременно или отдельно по трем каналам, осуществляя следующие операции:The second method will be referred to below as the F-method. It is implemented at step 111. The method is intended for the effective representation of blocks consisting of 2 × 4 pixels with a gradient structure. The method can be applied to each color channel individually. To ensure a given flow rate, as well as to maintain high accuracy of the representation of gradient transitions, the average coding points, the average value of the modules of horizontal inter-pixel differences, and also the signs of each difference are used as coding elements. The reference points, as well as the directions of the individual inter-pixel differences are shown in Fig. 8.1. A flowchart is shown in FIG. 8.2. At step 800, 6 difference values are calculated: D1, D2, D3, D4, D5, D6. At step 801, the average value of the moduli of the quantities D1 ... D6 is calculated. At step 802, the signs of each of the difference values are calculated. The average value of the difference modules, the signs of the differences, and also two reference points - A2, B2 - step 803 are transmitted as code information. Reference points are transmitted without loss. Thus, the F-method can be formulated as follows: the coding of blocks containing gradient sections is performed simultaneously or separately on three channels, performing the following operations:

- вычисляют шесть разностных величин D1, D2, D3, D4, D5, D6 по формулам: D1=A1-A2; D2=A2-A3; D3=A3-A4; D4=B1-B2; D5=B2-B3; D6=B3-B4;- calculate six difference values D1, D2, D3, D4, D5, D6 according to the formulas: D1 = A1-A2; D2 = A2-A3; D3 = A3-A4; D4 = B1-B2; D5 = B2-B3; D6 = B3-B4;

- вычисляют среднее значение модулей разностных величин D1…D6;- calculate the average value of the modulus of the difference values D1 ... D6;

- вычисляют знаки каждой из разностных величин D1…D6;- calculate the signs of each of the difference values D1 ... D6;

- в качестве кодовой информации передают среднее значение модулей разностей, знаки разностей, а также две опорные точки - A2, B2.- as the code information transmit the average value of the modules of differences, signs of differences, as well as two reference points - A2, B2.

Третий способ предназначен для эффективного кодирования высокочастотных тестовых изображений и далее будет обозначаться как M-способ. Он применяется на шаге 117. Способ включает в себя три подспособа кодирования.The third method is intended for efficient coding of high-frequency test images and will hereinafter be referred to as the M-method. It is applied at step 117. The method includes three coding techniques.

Первый подспособ кодирования заключается в применении несимметричного равномерного квантования пикселей исходного блока. При этом каждый пиксель блока, а точнее, интенсивность по каждому цветовому каналу для каждого пикселя блока кодируется тремя или четырьмя битами. 3/4-битные коды, описывающие закодированные значения пикселей, вычисляются по следующим формулам (здесь индекс i обозначает ось ординат, j обозначает ось абсцисс):The first coding method is to apply asymmetric uniform quantization of the pixels of the source block. At the same time, each pixel of the block, or rather, the intensity of each color channel for each pixel of the block is encoded with three or four bits. The 3/4-bit codes describing the encoded pixel values are calculated using the following formulas (here, the index i denotes the ordinate axis, j denotes the abscissa axis):

Figure 00000013
Figure 00000013

Figure 00000014
Figure 00000014

Figure 00000015
Figure 00000015

где I - значение пикселя исходного блока; C - битовый код, который кодирует соответствующий пиксель. Процедура декодирования пикселей, закодированных таким образом, описывается следующими формулами (здесь D - декодированный пиксель):where I is the pixel value of the source block; C is the bit code that encodes the corresponding pixel. The procedure for decoding pixels encoded in this way is described by the following formulas (here D is a decoded pixel):

Figure 00000016
Figure 00000016

Figure 00000017
Figure 00000017

Figure 00000018
Figure 00000018

Второй подспособ кодирования основан на усреднении с частичным огрублением двух подблоков 2×2 в пределах блока 2×4. При этом кодовые величины вычисляются согласно следующим формулам:The second coding method is based on averaging with partial coarsening of two 2 × 2 subunits within a 2 × 4 block. In this case, the code values are calculated according to the following formulas:

Figure 00000019
Figure 00000019

Figure 00000020
Figure 00000020

Figure 00000021
Figure 00000021

Для этого подспособа процедура декодирования выполняется в соответствии со следующими формулами:For this capability, the decoding procedure is performed in accordance with the following formulas:

Figure 00000022
Figure 00000022

Figure 00000023
Figure 00000023

Figure 00000024
Figure 00000024

Третий подспособ кодирования основан на частичной реконструкции одного из цветовых каналов по двум другим, пиксели которых кодируются путем усечения нескольких младших разрядов. В частности, красный и зеленый канал кодируются согласно формулам:The third coding method is based on a partial reconstruction of one of the color channels along the other two, the pixels of which are encoded by truncating several least significant bits. In particular, the red and green channels are encoded according to the formulas:

Figure 00000025
Figure 00000025

Figure 00000026
Figure 00000026

в то время как два крайних пикселя синего канала, которые не могут быть реконструированы из красного и зеленого каналов, кодируются согласно следующим формулам:while the two extreme pixels of the blue channel, which cannot be reconstructed from the red and green channels, are encoded according to the following formulas:

Figure 00000027
,
Figure 00000028
Figure 00000027
,
Figure 00000028

Процедура декодирования в этом случае реализуется в соответствии с выражениями:The decoding procedure in this case is implemented in accordance with the expressions:

Figure 00000029
Figure 00000029

Figure 00000030
Figure 00000030

Figure 00000031
Figure 00000031

Figure 00000032
Figure 00000032

Figure 00000033
Figure 00000033

После применения к обрабатываемому блоку 2×4 описанных выше трех подспособов определяется подспособ, обеспечивающий минимальную ошибку. Его номер (один из трех) передается в первых двух битах сжатого потока.After applying to the processed block 2 × 4 of the above three sub-methods, the sub-method is determined that provides the minimum error. Its number (one of three) is transmitted in the first two bits of the compressed stream.

Четвертый способ, используемый при кодировании блока 2×4, будем определять как способ кодирования доминирующего цвета или O-способ. Он применяется на шаге 112. Способ является эффективным, если один цветовой канал по своим энергетическим характеристикам существенно превосходит другие цветовые каналы в пределах блока. В данном способе анализируется четыре ситуации: доминирующим является яростный канал, красный, зеленый или синий. Для указания номера доминирующего цвета используется 2-битный индекс. Значения пикселей доминирующего цвета передаются без искажений 8-битными значениями. Значения двух оставшихся каналов кодируются посредством усреднения в пределах каждого из каналов и передачи каждого такого среднего значения 8-битной величиной. Подробная блок-схема данного способа представлена на Фиг.9. На шаге 900 рассчитываются суммы интенсивностей пикселей по каждому из каналов красного, зеленого или синего. Затем на шагах 901, 902, 903 выполняется последовательное сравнение значений трех рассчитанных сумм с заданным наперед пороговым значением. Принятие решения о номере доминирующего канала осуществляется на шагах 904, 905, 906 в зависимости от результатов сравнения на шагах 901, 902, 903. Если ни одно сравнение не было успешным, предполагается, что доминирующим является яростный канал, а цветоразностные каналы являются минорными - шаг 907. Затем на шаге 908 вычисляются средние значения минорных каналов. Затем интенсивности пикселей доминирующего канала, а также средние значения минорных каналов кодируются без потерь - шаги 909, 910. Таким образом, сжатый поток состоит из 2-битного индекса доминирующего канала, восьми 8-битных значений пикселей доминирующего канала, а также двух 8-битных значений средних величин минорных каналов.The fourth method used when encoding a 2 × 4 block will be defined as the dominant color encoding method or the O-method. It is applied at step 112. The method is effective if one color channel in its energy characteristics substantially exceeds other color channels within the block. In this method, four situations are analyzed: the violent channel is dominant, red, green or blue. A 2-bit index is used to indicate the dominant color number. The pixel values of the dominant color are transmitted without distortion by 8-bit values. The values of the two remaining channels are encoded by averaging within each channel and transmitting each such average value with an 8-bit value. A detailed block diagram of this method is presented in Fig.9. At step 900, the sums of pixel intensities for each of the red, green, or blue channels are calculated. Then, in steps 901, 902, 903, the values of the three calculated sums are sequentially compared with the predetermined threshold value. The decision on the number of the dominant channel is made in steps 904, 905, 906, depending on the results of the comparison in steps 901, 902, 903. If no comparisons were successful, it is assumed that the violent channel is dominant and the color difference channels are minor - step 907. Then, at step 908, the average values of the minor channels are calculated. Then the pixel intensities of the dominant channel, as well as the average values of the minor channels, are losslessly encoded - steps 909, 910. Thus, the compressed stream consists of a 2-bit index of the dominant channel, eight 8-bit pixel values of the dominant channel, and two 8-bit values of average values of minor channels.

Пятый способ мы назвали L-способом. Способ применяется на шаге 114 к блоку 2×4 для всех трех цветовых каналов одновременно. При этом цветовые каналы обрабатываются независимо. В пределах блока 2×4 для каждого подблока 2×2 формируется своя двухцветная палитра. Затем используется один из трех режимов кодирования двух палитр: режим дифференциального кодирования палитр, режим дифференциального кодирования цветов в пределах палитры или явное квантование цветов. Использование дифференциального кодирования палитр или дифференциального кодирования цветов палитр обеспечивает в ряде случаев повышенную точность передачи. Кроме того, зачастую одна из палитр оказывается состоящей из равных цветов.The fifth method we called the L-mode. The method is applied in step 114 to a 2 × 4 block for all three color channels simultaneously. In this case, color channels are processed independently. Within the 2 × 4 block, for each 2 × 2 sub-block, its own two-color palette is formed. Then one of the three coding modes of the two palettes is used: the differential coding mode of the palettes, the differential coding mode of colors within the palette, or the explicit quantization of colors. The use of differential coding of palettes or differential coding of colors of palettes provides in some cases increased transmission accuracy. In addition, often one of the palettes turns out to be composed of equal colors.

Ввиду этого предложена дополнительная обработка цветов, которая может повысить вероятность использования режима дифференциального кодирования. Блок-схема способа представлена на Фиг.10. На шагах 1000 и 1001 выполняется определение двухцветных палитр для левого и правого подблоков 2×2. На шаге 1003 для оценки возможности использования режима дифференциального кодирования палитр выполняется проверка логического условия:In view of this, additional color processing is proposed that can increase the likelihood of using differential encoding mode. The flowchart of the method is presented in FIG. 10. At steps 1000 and 1001, two-color palettes are determined for the left and right 2 × 2 sub-blocks. At step 1003, to evaluate the possibility of using the differential encoding mode of the palettes, the logical condition is checked:

InterCondition≡(-2≤C00-C10<2)∧(-1≤C01-C11≤2),InterCondition≡ (-2≤C00-C10 <2) ∧ (-1≤C01-C11≤2),

Здесь: (C00, C01) цвета первой палитры (левый подблок 2×2), (C10, C11) цвета второй палитры (правый подблок 2×2). Если указанное условие верно, то цвета первой палитры передаются без потерь, в то время как цвета второй палитры кодируются как поправки к цветам из первой - шаг 1011. При этом выполняются следующие действия:Here: (C00, C01) the colors of the first palette (left 2 × 2 sub-block), (C10, C11) the colors of the second palette (right 2 × 2 sub-block). If this condition is true, then the colors of the first palette are transmitted without loss, while the colors of the second palette are encoded as corrections to the colors from the first - step 1011. The following actions are performed:

- вычисляются два индекса, значения которых преобразуются в числа больше либо равные нулю согласно выражениям:- two indexes are calculated, the values of which are converted to numbers greater than or equal to zero according to the expressions:

TIdx_y=C00-C10+2. Диапазон индекса: [0…3];TIdx_y = C00-C10 + 2. Index range: [0 ... 3];

TIdx_x=C01-C11+1. Диапазон индекса: [0…3];TIdx_x = C01-C11 + 1. Index range: [0 ... 3];

- рассчитанные индексы преобразуются в 4-битную величину CDVal (Cumulative Difference Value - обобщенная разностная величина) с использованием таблицы, описывающей совместное распределение индексов TIdx_x/TIdx_y:- the calculated indices are converted to a 4-bit CDVal (Cumulative Difference Value) using a table that describes the joint distribution of the TIdx_x / TIdx_y indices:

TIdx_x=0TIdx_x = 0 TIdx_x=1TIdx_x = 1 TIdx_x=2TIdx_x = 2 TIdx_x=3TIdx_x = 3 TIdx_y=0TIdx_y = 0 00 1one 22 33 TIdx_y=1TIdx_y = 1 4four 55 66 77 TIdx_y=2TIdx_y = 2 88 99 1010 11eleven TIdx_y=3TIdx_y = 3 1212 1313 14fourteen 15fifteen

Использование таблицы распределения индексов является дополнительным отличительным способом кодирования, поскольку совокупность величин индексов TIdx_x/TIdx_y уже сама по себе обеспечивает возможность кодирования разностной информации. Однако использование таблицы позволяет расширить диапазон возможных взаимных значений цветов палитр за счет потенциальной локализации и удаления редко встречающихся комбинаций, а также кодирования иных. Для декодирования индексов TIdx_x/TIdx_y используются две дополнительные таблицы:The use of the index distribution table is an additional distinctive coding method, since the set of index values TIdx_x / TIdx_y by itself provides the ability to encode difference information. However, the use of the table allows you to expand the range of possible mutual values of the colors of the palettes due to the potential localization and removal of rarely encountered combinations, as well as coding of others. Two additional tables are used to decode the TIdx_x / TIdx_y indices:

CDValCdval 00 1one 22 33 4four 55 66 77 88 99 1010 11eleven 1212 1313 14fourteen 15fifteen TIdx_yTIdx_y -2-2 -2-2 -2-2 -2-2 -1-one -1-one -1-one -1-one 00 00 00 00 1one 1one 1one 1one CDValCdval 00 1one 22 33 4four 55 66 77 88 99 1010 11eleven 1212 1313 14fourteen 15fifteen TIdx_xTIdx_x -1-one 00 1one 22 -1-one 00 1one 22 -1-one 00 1one 22 -1-one 00 1one 22

Они позволяют вычислить соответствующие индексы на основе четырехбитного значения CDVal. Восстановление значений разностей выполняется на основе формул:They allow you to calculate the corresponding indices based on the four-bit value of CDVal. The restoration of the difference values is performed based on the formulas:

C00-C10=TIdx_y-2. Новый диапазон: [-2…2]C00-C10 = TIdx_y-2. New range: [-2 ... 2]

C01-C11=TIdx_x-1. Новый диапазон: [-1…2]C01-C11 = TIdx_x-1. New range: [-1 ... 2]

Дополнительная обработка цветов палитр, увеличивающая вероятность использования дифференциального кодирования палитр, заключается в следующем.Additional processing of color palettes, increasing the likelihood of using differential coding palettes, is as follows.

- Детектирование факта равенства цветов в каждой палитре и установление флага равенства (FP) в 1 в случае равенства:- Detecting the fact of equal colors in each palette and setting the flag of equality (FP) to 1 in case of equality:

if(C00=C01)→FP1=1if (C00 = C01) → FP1 = 1

else→FP1=0else → FP1 = 0

if(C10=C11)→FP2=1if (C10 = C11) → FP2 = 1

else→FP2=0else → FP2 = 0

- Проверка того, что только одна палитра имеет равные цвета:- Checking that only one palette has equal colors:

FP1+FP2=1FP1 + FP2 = 1

- Предположим, что цвета первой палитры равны (C00=C01). Тогда в первую палитру должен быть «вставлен» цвет из второй палитры, который является наиболее удаленным от изначальных цветов первой палитры. Для этого осуществляется проверка условия |C00-C11|<|C00-C10| и выполняется вставка фиктивного цвета:- Suppose the colors of the first palette are equal (C00 = C01). Then the color from the second palette, which is the farthest from the original colors of the first palette, should be "inserted" into the first palette. To do this, check the condition | C00-C11 | <| C00-C10 | and the fictitious color is inserted:

If|С00-С11|<|С00-С10|→С00=С10If | C00-C11 | <| C00-C10 | → C00 = C10

Else С01=С11Else C01 = C11

- В случае если вставка фиктивного цвета была осуществлена, информация об этом должна быть сохранена в логической временной переменной для того, чтобы в случае, если режим дифференциального кодирования палитр, тем не менее, невозможно задействовать, восстановить измененный цвет.- If the insertion of a fictitious color has been carried out, information on this should be stored in a logical time variable so that if the differential encoding mode of the palettes is nevertheless impossible to use, restore the changed color.

Конечным шагом дифференциального режима кодирования палитр является генерация карты цветов, состоящей из четырех записей - шаг 1010. В случае если на шаге 1003 условие оказалось ложным, каждая палитра кодируется независимо в одном из двух возможных режимов: режиме дифференциального кодирования цветов палитры или режиме явного квантования. На шаге 1004 InterDifbit устанавливается в нулевое значение, чтобы обеспечить декодер информацией о невозможности использования режима дифференциального кодирования палитр. Затем цвета в каждой палитре переупорядочиваются таким образом, что первый по порядку следования цвет в каждой из палитр соответствует первому (левому - верхнему) пикселю в пределах соответствующего подблока 2×2. Затем на шаге 1005 осуществляется проверка условия для дифференциального кодирования цветов в пределах каждой из палитр. В целях упрощения на блок-схеме отражены шаги кодирования только для палитры, соответствующей левому блоку. Если условие верно, IntraDifBit устанавливается в единичное значение, первый цвет кодируется без потерь, второй цвет кодируется как 2-битная поправка к первому цвету - шаг 1007. Если на шаге 1006 условие оказалось ложным, каждый цвет кодируется путем усечения младших трех разрядов - шаг 1008. Восстановление усеченных битов осуществляется бинарным значением 100b. Аналогичные действия выполняются для второй (правой) палитры. В заключение на шаге 1009 формируется карта цветов, состоящая из трех записей. L-способ использует два вида карты цветов: карту цветов, состоящую из трех записей, и карту цветов, состоящую из четырех цветов. Карта цветов, состоящая из трех записей, означает, что первый пиксель в блоке всегда кодируется первым по порядку следования цветом палитры. Каждая запись в карте цветов является битовым кодом цвета, используемого для кодирования данного пикселя. Определение цвета, которым будет закодирован текущий пиксель, основано на переборе всех цветов палитры и выборе того, абсолютная разница между интенсивностью которого и исходным значением пикселя минимальна. Определение цветов палитры может быть реализовано с использованием различных математических и алгоритмических подходов, например на основе метода наименьших квадратов. Блок-схема способа определения двух цветов, предложенного в данном изобретении, представлена на Фиг.11. Этот способ представляет собой компромисс между сложностью и эффективностью и заключается в разделении исходных значений четырех пикселей на две группы и расчете средних значений в пределах каждой группы, которые затем рассматриваются как цвета палитры.The final step in the differential palette encoding mode is to generate a color map consisting of four records - step 1010. If the condition turned out to be false at step 1003, each palette is encoded independently in one of two possible modes: differential palette color encoding mode or explicit quantization mode. At 1004, InterDifbit is set to zero to provide the decoder with information about the impossibility of using the differential encoding mode of the palettes. Then the colors in each palette are reordered in such a way that the first color in each palette corresponds to the first (left - top) pixel within the corresponding 2 × 2 subunit. Then, at step 1005, a condition is checked for differential color coding within each of the palettes. For simplicity, the coding steps for the palette corresponding to the left block are shown in the flowchart only. If the condition is true, IntraDifBit is set to a single value, the first color is lossless encoded, the second color is encoded as a 2-bit correction to the first color - step 1007. If the condition turned out to be false in step 1006, each color is encoded by truncating the least three bits - step 1008 The recovery of the truncated bits is carried out with a binary value of 100b. Similar actions are performed for the second (right) palette. In conclusion, at step 1009, a color map is formed consisting of three entries. The L-method uses two types of color map: a color map, consisting of three entries, and a color map, consisting of four colors. A color map consisting of three entries means that the first pixel in the block is always encoded with the first color in the palette. Each entry in the color map is a color bit code used to encode a given pixel. The determination of the color by which the current pixel will be encoded is based on iterating over all the colors of the palette and choosing the one whose absolute difference between the intensity and the original pixel value is minimal. The determination of the colors of the palette can be implemented using various mathematical and algorithmic approaches, for example, based on the method of least squares. The flowchart of the method for determining two colors proposed in this invention is presented in Fig.11. This method is a compromise between complexity and efficiency and consists in dividing the initial values of four pixels into two groups and calculating the average values within each group, which are then considered as the colors of the palette.

Шестой способ называется U-способ и применяется на шаге 115. Способ предназначен для областей цветного изображения, в которых присутствует комбинация комплексных и относительно равномерных участков в пределах одного цветового канала или в пределах одного обрабатываемого подблока. Способ состоит из двух подспособов: U1 и U2, которые используются для компактного представления исходного блока 2×4 и оптимизированы под возможные комбинации комплексных и относительно равномерных участков изображения. На основе расчета ошибок приближения исходного блока обоими подспособами выбирается оптимальный, то есть обеспечивающий меньшую ошибку. Общая блока схема U-способа представлена на Фиг.12. Рассмотрим подспособ U1. Он применяется для подблока 2×2, входящего в состав исходного блока 2×4, и эффективен в случае, если один из трех цветовых каналов подблока 2×2 может быть закодирован средним значением, в то время как оставшиеся два канала (так называемые «активные цвета») кодируются с использованием NSW-преобразования и процедуры FQvT. Блок-схема подспособа представлена на Фиг.13.1 (в целях упрощения на блок-схеме показаны шаги только для одного подблока). На шаге 1300 рассчитываются средние значения mR, mG, mB по каждому цветовому каналу в пределах обрабатываемого подблока. Затем для каждого цветового канала рассчитывается сумма абсолютных разностей (SAD) - шаг 1301. В качестве примера ниже приведена формула расчета SAD для канала красного:The sixth method is called the U-method and is applied at step 115. The method is intended for areas of a color image in which there is a combination of complex and relatively uniform sections within a single color channel or within a single processed subunit. The method consists of two sub-methods: U1 and U2, which are used for compact representation of the initial 2 × 4 block and are optimized for possible combinations of complex and relatively uniform image sections. Based on the calculation of errors in the approximation of the source block by both methods, the optimal one is selected, that is, that provides a smaller error. The general block diagram of the U-method is presented in Fig. 12. Consider the sub-path U1. It is used for the 2 × 2 subblock, which is part of the original 2 × 4 block, and is effective if one of the three color channels of the 2 × 2 subblock can be encoded with an average value, while the remaining two channels (the so-called “active colors ”) are encoded using the NSW transform and the FQvT procedure. A block diagram of the method is shown in FIG. 13.1 (for simplicity, the block diagram shows the steps for only one sub block). At step 1300, the average values of mR, mG, mB are calculated for each color channel within the processed subunit. Then, for each color channel, the sum of the absolute differences (SAD) is calculated - step 1301. As an example, below is the formula for calculating the SAD for the red channel:

SADR=|AR-mR|+|BR-mR|+|CR-mR|+|DR-mR|SAD R = | A R -mR | + | B R -mR | + | C R -mR | + | D R -mR |

Затем определяется цветовой канал, который может быть оптимально передан средним значением: SAD значения цветовых каналов сравниваются с установленным наперед пороговым значением (SMOOTH_THRESHOLD) в фиксированном порядке: зеленый канал, затем красный канал, затем синий. Если все SAD больше порогового значения, выбирается тот цветовой канал, который обладает минимальным SAD - шаги 1302, 1303. Определяется, является ли среднее значение «равномерного» цветового канала малым или нет, путем сравнения с другим заданным наперед порогом, равным тридцати двум. Если среднее значение «равномерного» цветового канала мало, вместо явного указания номера этого цветового цвета 2-битным префиксом (номер цветового канала может принимать значение 0, 1 или 2) этот 2-битный префикс устанавливается равным трем и далее передается дополнительно 2-битное значение, явно указывающее номер «равномерного» цветового канала. Затем среднее значение «равномерного» цветового канала кодируют 3-битным значением путем усечения младших двух битов. В противном случае среднее значение кодируется 6-битным значением путем усечения младших двух разрядов - шаги 1304, 1305, 1306. Оставшиеся два цвета («активные цвета») в пределах подблока 2×2, обозначенные далее как первый и второй цвета, кодируются с использованием NSW-преобразования и FQvT следующим образом (шаги 1307, 1308):Then a color channel is determined, which can be optimally transmitted by an average value: SAD values of the color channels are compared with the threshold value set earlier (SMOOTH_THRESHOLD) in a fixed order: green channel, then red channel, then blue. If all SADs are greater than the threshold value, the color channel that has the minimum SAD is selected - steps 1302, 1303. It is determined whether the average value of the “uniform” color channel is small or not by comparison with another thirty-two threshold set in advance. If the average value of the “uniform” color channel is small, instead of explicitly specifying the number of this color color with a 2-bit prefix (the color channel number can be 0, 1 or 2), this 2-bit prefix is set to three and an additional 2-bit value is then transmitted explicitly indicating the number of the "uniform" color channel. Then, the average value of the “uniform” color channel is encoded with a 3-bit value by truncating the lower two bits. Otherwise, the average value is encoded with a 6-bit value by truncating the least significant two bits - steps 1304, 1305, 1306. The remaining two colors (“active colors”) within the 2 × 2 sub-block, designated below as the first and second colors, are encoded using NSW conversions and FQvT as follows (steps 1307, 1308):

- для пикселей в пределах первого и второго цвета в пределах данного подблока выполняется NSW-преобразование. В результате рассчитываются два набора значений: {s1, h1, v1, d1}, {s2, h2, v2, d2};- for pixels within the first and second colors within this sub-block, an NSW transform is performed. As a result, two sets of values are calculated: {s1, h1, v1, d1}, {s2, h2, v2, d2};

- {h1, v1, d1}, {h2, v2, d2} кодируются с использованием таблицы квантователей - Таблица 8. При этом каждый набор разностных величин {h1, v1, d1}, {h2, v2, d2} кодируется с использованием своего квантователя. Процедура квантования подобна FQvT квантованию, описанному выше. Оптимальный квантователь вычисляется исходя из определения квантователя среди восьми возможных так, что обеспечивается минимальная ошибка приближения каждого из наборов разностных величин {h1, v1, d1}, {h2, v2, d2};- {h1, v1, d1}, {h2, v2, d2} are encoded using the quantizer table - Table 8. Moreover, each set of difference values {h1, v1, d1}, {h2, v2, d2} is encoded using its own quantizer. The quantization procedure is similar to the FQvT quantization described above. The optimal quantizer is calculated based on the definition of a quantizer among eight possible ones so that a minimum approximation error is provided for each of the sets of difference values {h1, v1, d1}, {h2, v2, d2};

- Величины s1, s2 кодируются в одном из двух режимов:- The values s1, s2 are encoded in one of two modes:

- 6/6 битов: режим используется, если среднее значение «равномерного» цветового канала мало и битовый бюджет позволяет кодировать s1, s2 путем усечения младших двух разрядов;- 6/6 bits: the mode is used if the average value of the “uniform” color channel is small and the bit budget allows you to encode s1, s2 by truncating the lower two bits;

- дифференциальный режим используется, если режим «6/6 битов» не может быть применен, при этом выполняются следующие шаги:- differential mode is used if the 6/6 bit mode cannot be applied, and the following steps are taken:

- Оценивается ошибка, вызванная кодированием s1, s2 в 5/5 битов (усечение младших трех разрядов):- The error caused by the coding s1, s2 of 5/5 bits is evaluated (truncation of the least three bits):

ErrQuant=|s1-(s1&0×F8)|0×04|+|s2-(s2&0×F8)|0×04|ErrQuant = | s1- (s1 & 0 × F8) | 0 × 04 | + | s2- (s2 & 0 × F8) | 0 × 04 |

Оценивается ошибка, вызванная квантованием s1, s2 в 6/6 битов с последующим дифференциальным представлением s2 как 3-битной знаковой поправки к s1:The error caused by quantizing s1, s2 into 6/6 bits is estimated, followed by the differential representation of s2 as a 3-bit signed correction to s1:

- temp_s1=s1&0×FC; temp_s2=s21&0×FC;- temp_s1 = s1 & 0 × FC; temp_s2 = s21 & 0 × FC;

- temp_s2=temp_s2-temp_s0;- temp_s2 = temp_s2-temp_s0;

- clamp(temp_s2, -31, 31) - «ограничение по двум порогам»- clamp (temp_s2, -31, 31) - “restriction on two thresholds”

- temp_s2=temp_s2&0×FC- temp_s2 = temp_s2 & 0 × FC

- temp_s2=temp_s2+temp_sl- temp_s2 = temp_s2 + temp_sl

ErrDifQuant=|s1-temp_s1+s2-temp_s2;ErrDifQuant = | s1-temp_s1 + s2-temp_s2;

- Если (ErrQuant<ErrDifQuant), s1, s2 кодируются в режиме 5/5 битов путем усечения младших трех разрядов; иначе s1, s2 кодируются как: 6 битов (s1)+3 бита + знак (s2-s1).- If (ErrQuant <ErrDifQuant), s1, s2 are encoded in 5/5 bit mode by truncating the least three bits; otherwise s1, s2 are encoded as: 6 bits (s1) +3 bits + sign (s2-s1).

Формат сжатого потока является важным аспектом U1 подспособа:The compressed stream format is an important aspect of the U1 sub-method:

- Девятнадцать битов → сжатая информация о средних значениях (пояснено на Фиг.13.2);- Nineteen bits → compressed information about the average values (explained in Fig.13.2);

- Три бита → номер квантователя: для первого активного цветового канала;- Three bits → quantizer number: for the first active color channel;

- (3+3+3) бит → индексы уровней восстановления разностных значений {h, v, d} первого активного цветового канала;- (3 + 3 + 3) bits → indices of recovery levels of difference values {h, v, d} of the first active color channel;

- Три бита → номер квантователя для второго активного цветового канала;- Three bits → quantizer number for the second active color channel;

- (3+3+3) бит → индексы уровней восстановления разностных значений {h, v, d} второго активного цветового канала.- (3 + 3 + 3) bits → indices of recovery levels of difference values {h, v, d} of the second active color channel.

Таким образом, для кодирования одного подблока 2×2 требуется сорок три бита. Описанные выше шаги выполняются для обоих подблоков 2×2, входящих в состав обрабатываемого блока 2×4.Thus, forty-three bits are required to encode one 2 × 2 subblock. The steps described above are performed for both 2 × 2 subunits that are part of the processed 2 × 4 block.

Таблица 8Table 8 Таблица квантования. U1 подспособQuantization table. U1 way Quantize - Set NQuantize - Set N Id×0Id × 0 Id×1Id × 1 Id×2Id × 2 Id×3Id × 3 Id×4Id × 4 Id×5Id × 5 Id×6Id × 6 Id×7Id × 7 00 00 -18-eighteen -34-34 -45-45 00 18eighteen 3434 4545 1one -14-fourteen -60-60 -115-115 -160-160 14fourteen 6060 115115 160160 22 -6-6 -38-38 -62-62 -95-95 66 3838 6262 9595 33 -56-56 -77-77 -100-one hundred -112-112 5656 7777 100one hundred 112112 4four -70-70 -107-107 -142-142 -160-160 7070 107107 142142 160160 55 00 -17-17 -32-32 -130-130 00 1717 3232 130130 66 -53-53 -125-125 -196-196 -232-232 5353 125125 196196 232232 77 -16-16 -65-65 -100-one hundred -120-120 1616 6565 100one hundred 120120

В случае если в одном цветовом канале в пределах блока 2×4 пиксели одного подблока 2×2 образуют равномерную структуру, в то время как пиксели второго подблока 2×2 образуют неравномерную область, эффективным способом кодирования является U2 подспособ, блок-схема которого показана на Фиг.14; подробная блок-схема процесса кодирования отдельно взятого цветового канала в пределах блока 2×4 показана на Фиг.15. Каждый цветной блок 2×4 рассматривается как три независимых блока по трем цветовым каналам: красный блок 2×4, зеленый блок 2×4 и синий блок 2×4. Каждый из них расщепляется на два смежных подблока 2×2 - шаг 1500. Для каждого из них рассчитывается ошибка приближения средним значением - шаги 1501, 1502. В качестве ошибки, не снижая общности, выбрана SAD, описанная выше. Затем на шаге 1503 определяется равномерный подблок с последующим его кодированием - шаг 1504 или 1506. Второй подблок кодируется с использованием NSW-преобразования и процедуры FQvT - шаги 1505, 1507. Соответствующая таблица квантования представлена в таблице 9. Каждая разностная величина из {h, v, d} кодируется посредством 3-битного индекса, указывающего лучший уровень восстановления в пределах квантователя, номер которого также передается 3-битным значением, s-значение кодируется 7-битовым значением путем усечения младшего разряда, который восстанавливается нулевым значением. Для указания подблока, который является равномерным, используется 1-битный индекс. Таким образом, каждый цветовой канал в пределах блока 2×4 кодируется с использованием 7+(3+3+3+3)+1+8=28 битов, что составляет восемьдесят четыре бита на весь блок 2×4.If in the same color channel within the 2 × 4 block, the pixels of one 2 × 2 subunit form a uniform structure, while the pixels of the second 2 × 2 subunit form an uneven region, an effective coding method is the U2 sub-method, the block diagram of which is shown in Fig; a detailed flowchart of the coding process of a single color channel within a 2x4 block is shown in FIG. Each 2 × 4 color block is considered as three independent blocks in three color channels: a red 2 × 4 block, a green 2 × 4 block, and a blue 2 × 4 block. Each of them is split into two adjacent 2 × 2 subunits - step 1500. For each of them, the average approximation error is calculated - steps 1501, 1502. As an error, without loss of generality, the SAD described above was chosen. Then, at step 1503, a uniform subblock is determined with its subsequent encoding — step 1504 or 1506. The second subblock is encoded using the NSW transform and the FQvT procedure — steps 1505, 1507. The corresponding quantization table is presented in Table 9. Each difference value from {h, v , d} is encoded using a 3-bit index indicating the best recovery level within the quantizer, the number of which is also transmitted by a 3-bit value, the s-value is encoded by a 7-bit value by truncating the least significant bit, which restores etsya zero. A 1-bit index is used to indicate a subblock that is uniform. Thus, each color channel within a 2 × 4 block is encoded using 7+ (3 + 3 + 3 + 3) + 1 + 8 = 28 bits, which is eighty-four bits for the entire 2 × 4 block.

Таблица 9Table 9 Таблица квантования. U2 подспособQuantization table. U2 way Номер квантователяQuantizer number Id×0Id × 0 Id×1Id × 1 Id×2Id × 2 Id×3Id × 3 Id×4Id × 4 Id×5Id × 5 Id×6Id × 6 Id×7Id × 7 00 -60-60 -141-141 -178-178 -233-233 6060 141141 178178 233233 1one -2-2 -16-16 -28-28 -50-fifty 22 1616 2828 50fifty 22 -10-10 -76-76 -150-150 -190-190 1010 7676 150150 190190 33 -44-44 -80-80 -108-108 -129-129 4444 8080 108108 129129 4four -100-one hundred -150-150 -201-201 -227-227 100one hundred 150150 201201 227227 55 -1-one -2-2 -3-3 -5-5 1one 22 33 55 66 -8-8 -38-38 -65-65 -88-88 88 3838 6565 8888 77 -60-60 -110-110 -160-160 -170-170 6060 110110 160160 170170

Последний способ этой группы называется способом кодирования на основе преобразования Адамара (H-способ). Способ применяется на шаге 116. В H-способе исходный блок 2×4 рассматривается как совокупность двух подблоков 2×2, и применяется известное преобразование Адамара (иначе называемое целочисленное Дискретное Косинусное Преобразование 2×2 - см. "Multiresolution progressive image transmission using a 2×2 DCT", Seock Hoon Woo, Chee Sun Won // IEEE 07803-5123-1/99) [7] к каждому из них с последующей специально разработанной процедурой кодирования FQvT. Преобразование описывается следующими формулами:The last method of this group is called the Hadamard transform coding method (H-method). The method is applied at step 116. In the H method, the original 2 × 4 block is considered as a combination of two 2 × 2 subunits, and the well-known Hadamard transform (otherwise called the integer Discrete Cosine Transform 2 × 2 - see "Multiresolution progressive image transmission using a 2 × 2 DCT ", Seock Hoon Woo, Chee Sun Won // IEEE 07803-5123-1 / 99) [7] to each of them with the subsequent specially developed FQvT encoding procedure. The conversion is described by the following formulas:

Прямое преобразование:Direct conversion:

Figure 00000034
Figure 00000034

Обратное преобразование:Inverse Transformation:

Figure 00000035
Figure 00000035

Известно, что данное преобразование осуществляет разделение исходного сигнала на компоненты с различной визуальной значимостью для наблюдателя. Исходя из этого диагональная компонента преобразования - dD может быть установлена в нулевое значение без существенного ухудшения качества. Оставшиеся компоненты S, dH, dV кодируются следующим образом:It is known that this transformation carries out the separation of the source signal into components with different visual significance for the observer. Based on this, the diagonal component of the transformation, dD, can be set to zero without a significant deterioration in quality. The remaining components S, dH, dV are encoded as follows:

- S компонента кодируется 6-битным значением путем усечения двух младших разрядов. Восстановление осуществляется двоичным значением 10b;- The S component is encoded with a 6-bit value by truncating the two least significant bits. Recovery is carried out with a binary value of 10b;

- {dH, dV} компоненты квантуются путем поиска наилучшего квантователя и наилучшего уровня восстановления в пределах квантователя.- {dH, dV} components are quantized by searching for the best quantizer and the best recovery level within the quantizer.

Для каждого квантователя, входящего во множество из восьми квантователей, определяется наилучший уровень восстановления компонент {dH, dV} исходя из минимизации модуля разности между уровнем восстановления и значением соответствующей компоненты. Ошибка кодирования {dH, dV} компонент каким-либо квантователем рассчитывается путем суммирования модуля разницы соответствующего уровня восстановления и значения каждой из компонент, которая является минимальной среди всех возможных в пределах данного квантователя. Затем определяется квантователь, который обеспечивает минимальную ошибку кодирования. Таблица квантования, оптимизированная для квантования {dH, dV} компонент, представлена в Таблице 10.For each quantizer included in the set of eight quantizers, the best recovery level of the components {dH, dV} is determined based on minimizing the absolute value of the difference between the recovery level and the value of the corresponding component. The coding error of {dH, dV} components by any quantizer is calculated by summing the modulus of the difference of the corresponding recovery level and the value of each component, which is the smallest among all possible within the given quantizer. Then a quantizer is determined that provides the minimum coding error. A quantization table optimized for quantizing the {dH, dV} components is presented in Table 10.

Таблица 10Table 10 Таблица квантования {dH, dV} компонентQuantization Table {dH, dV} Component Номер квантователяQuantizer number Id×0Id × 0 Id×1Id × 1 Id×2Id × 2 Id×3Id × 3 Id×4Id × 4 Id×5Id × 5 Id×6Id × 6 Id×7Id × 7 00 -6-6 -47-47 -86-86 -106-106 66 4747 8686 106106 1one -20-twenty -30-thirty -41-41 -47-47 20twenty 30thirty 4141 4747 22 -1-one -20-twenty -38-38 -48-48 1one 20twenty 3838 4848 33 -3-3 -10-10 -16-16 -20-twenty 33 1010 1616 20twenty 4four -18-eighteen -40-40 -64-64 -75-75 18eighteen 4040 6464 7575 55 -6-6 -16-16 -26-26 -32-32 66 1616 2626 3232 66 -8-8 -40-40 -73-73 -89-89 88 4040 7373 8989 77 -9-9 -30-thirty -52-52 -63-63 99 30thirty 5252 6363

Каждый подблок 2×2 в пределах одного цветового канала кодируется с использованием шести битов для кодирования среднего, 3-битного номера квантователя и двух 3-битных индексов для кодирования оптимальных уровней восстановления dH, dV компонент.Each 2 × 2 subblock within one color channel is encoded using six bits to encode the average, 3-bit quantizer number and two 3-bit indices to encode the optimal recovery levels of the dH, dV components.

Выбор способа кодирования для текущего обрабатываемого блока 2×4 основан на определении способа кодирования среди всей совокупности способов, используемых в данном изобретении, обеспечивающего минимизацию ошибки кодирования. Исходя из общих рассуждений следует, что эффективность и адекватность меры оценки искажения (ошибки кодирования) может оказывать существенное влияние на визуальное качество сжатого изображения. На основе проведенного анализа различных способов оценки искажений, не ограничивая общности, в данном изобретении использованы два способа оценки искажений, подробное описание которых дано ниже.The choice of the encoding method for the current 2 × 4 block being processed is based on the determination of the encoding method among the entire set of methods used in this invention, which minimizes the encoding error. Based on general considerations, it follows that the effectiveness and adequacy of the measure of distortion (coding errors) can have a significant impact on the visual quality of a compressed image. Based on the analysis of various methods for assessing distortion, without limiting generality, in this invention, two methods for assessing distortion are used, a detailed description of which is given below.

Необходимо подчеркнуть, что описанные два способа не ограничивают применение иных способов оценки визуального качества, а лишь являются вариантами реализации. Рассмотрим блок пикселей 2×4 по всем трем цветовым каналам - Фиг.16. Первым способом оценки искажений является расчет Взвешенной Среднеквадратичной Ошибки (B-СКО, WMSE)It must be emphasized that the two methods described do not limit the use of other methods for assessing visual quality, but are only options for implementation. Consider a block of pixels 2 × 4 for all three color channels - Fig.16. The first way to estimate distortion is to calculate the Weighted Root Mean Square Error (B-MSE, WMSE)

Figure 00000036
Figure 00000036

Здесь символы A, B, C, D обозначают пиксели, расположенные в исходном блоке, как это показано на Фиг.16. Символы A, B, C, D с верхним подчеркиванием обозначают пиксели, расположенные в искаженном (закодированном) блоке. Wc являются весовыми коэффициентами, отражающими относительную значимость цветового канала. Экспериментально установлено, что приемлемые результаты с точки зрения визуального восприятия сжатого изображения могут быть получены со следующими значениями весовых коэффициентов:Here, the symbols A, B, C, D denote pixels located in the source block, as shown in FIG. 16. Symbols A, B, C, D with an underscore indicate pixels located in a distorted (encoded) block. Wc are weights reflecting the relative importance of the color channel. It was experimentally established that acceptable results from the point of view of the visual perception of a compressed image can be obtained with the following values of the weight coefficients:

Красный каналRed channel Зеленый каналGreen channel Синий каналBlue channel WC valueW c value 66 1616 4four

Второй способ оценки искажений, предложенный в данном изобретении, назван Взвешенный Квадратичный Макс-Макс Критерий (ВКММК, WSMMC). Рассмотрим подблок 2×2, входящий в блок 2×4 - Фиг.16. Для определенности рассмотрим первый подблок (A1, B1, C1, D1 пиксели). Расчет WSMMC состоит из следующих шагов:The second distortion estimation method proposed in this invention is called the Weighted Quadratic Max-Max Criterion (VKMMK, WSMMC). Consider a 2 × 2 subblock included in a 2 × 4 block — FIG. 16. For definiteness, consider the first sub-block (A1, B1, C1, D1 pixels). The WSMMC calculation consists of the following steps:

- Рассчитывают взвешенный квадрат максимума попиксельного отклонения между исходным и закодированным блоком по всем трем цветовым каналам:- Calculate the weighted square of the maximum pixel-by-pixel deviation between the original and encoded block over all three color channels:

Figure 00000037
Figure 00000037

- Рассчитывают сумму величин, определенных на первом шаге:- Calculate the sum of the values determined in the first step:

Figure 00000038
Figure 00000038

- Рассчитывают максимум среди величин, определенных на первом шаге:- Calculate the maximum among the values determined in the first step:

MMax=MAX[MaxSqR, MaxSqG, MaxSqB]MMax = MAX [MaxSq R , MaxSq G , MaxSq B ]

- Рассчитывают сумму величин, полученных на втором и третьем шагах:- Calculate the sum of the values obtained in the second and third steps:

WSMMC=SMax+MmaxWSMMC = SMax + Mmax

Чтобы рассчитать WSMMC для всего блока 2×4, необходимо сложить WSMMC-значения, рассчитанные для обоих подблоков 2×2.To calculate the WSMMC for the entire 2 × 4 block, you must add the WSMMC values calculated for both 2 × 2 subunits.

Выбор способа компрессии состоит из следующих пунктов:The choice of compression method consists of the following items:

- Левый и правый подблоки, входящие в состав одного блока 2×4, кодируются раздельно пятью известными методами: N, P, C, S, E-методами. После сжатия каждого подблока одним из пяти известных методов N, P, C, S, E выполняется расчет ошибки согласно одному из способов, описанных выше, а также осуществляется формирование промежуточных битовых потоков;- The left and right subblocks that are part of one 2 × 4 block are encoded separately by five well-known methods: N, P, C, S, E-methods. After compressing each subblock with one of the five known methods N, P, C, S, E, the error calculation is performed according to one of the methods described above, and the formation of intermediate bit streams is also carried out;

- Для каждого из двух подблоков определяется метод, дающий минимальную ошибку - шаги 118, 119;- For each of the two subunits, a method is determined that gives the minimum error - steps 118, 119;

- На основе результатов пункта 2 для блока 2×4, состоящего из двух подблоков 2×2, определяется наилучшая комбинация методов N, P, C, S, E, обеспечивающая минимальную комбинационную погрешность (ошибку) кодирования блока 2×4 в виде двух подблоков 2×2 - шаг 121;- Based on the results of paragraph 2, for the 2 × 4 block consisting of two 2 × 2 subunits, the best combination of N, P, C, S, E methods is determined that provides the minimum combination error (error) of encoding the 2 × 4 block in the form of two subunits 2 × 2 - step 121;

- Весь исходный блок 2×4 обрабатывается каждым из семи способов D, O, M, F, L, U, H, которые оптимизированы для сжатия блока 2×4. При этом после кодирования блока любым из указанных способов рассчитывается ошибка кодирования согласно одному из способов, описанных выше;- The entire 2 × 4 source block is processed by each of the seven methods D, O, M, F, L, U, H, which are optimized to compress the 2 × 4 block. In this case, after encoding the block by any of the indicated methods, the encoding error is calculated according to one of the methods described above;

- Вычисляется минимальная ошибка среди ошибок, вызванных применением семи известных способов D, O, M, F, L, U, H к исходному блоку 2×4 - шаг 120;- The minimum error is calculated among the errors caused by the application of seven known methods D, O, M, F, L, U, H to the original 2 × 4 block - step 120;

- Вычисляется минимальная ошибка. В результате определяется оптимальный способ кодирования, обеспечивающий минимальную ошибку - шаг 122.- The minimum error is calculated. As a result, the optimal encoding method is determined that provides the minimum error - step 122.

Каждый обрабатываемый блок 2×4 состоит из пикселей, каждый из которых представлен тремя цветовыми компонентами, каждая из которых изначально представлена 10-битным значением, в результате компрессии кодируется ровно 100 битами. Они представляют собой так называемый элементарный сжатый пакет, который состоит в свою очередь из VLEH, сжатых битов, битов, представляющих информацию о младших разрядах в компактном виде, и дополняющих битов (опционально).Each 2 × 4 block being processed consists of pixels, each of which is represented by three color components, each of which is initially represented by a 10-bit value, as a result of compression, it is encoded with exactly 100 bits. They are the so-called elementary compressed packet, which in turn consists of VLEH, compressed bits, bits representing information about low-order bits in a compact form, and complementary bits (optional).

Совокупность информации о возможных методах кодирования (исходя из всех возможных в рамках данного изобретения комбинаций), количестве сжатых битов, количестве битов, требуемых для кодирования младших разрядов, длине VLEH и значений битов, входящих в него, а также количестве дополняющих битов, представлена в таблице 11. Значения и длины VLEH и соответственно, количество битов, необходимых для кодирования младших разрядов, а также количество дополняющих битов зависят от реализации, однако общий принцип формирования выходного сжатого потока является одним из ключевых принципов, отличающих данное изобретение. В таблице имя метода включает одну-две буквы. В последнем случае расшифровка имени осуществляется следующим образом: первая буква соответствует методу, кодирующему левый подблок 2×2, вторая буква соответствует методу, кодирующему правый подблок 2×2.The set of information about the possible encoding methods (based on all possible combinations within the framework of this invention), the number of compressed bits, the number of bits required for encoding the least significant bits, the VLEH length and the values of the bits included in it, as well as the number of complementary bits are presented in the table 11. The values and lengths of VLEH and, accordingly, the number of bits required for the coding of the least significant bits, as well as the number of complementary bits, depend on the implementation, however, the general principle of generating the output compressed stream is It is one of the key principles that distinguish this invention. In the table, the method name includes one or two letters. In the latter case, the name is decrypted as follows: the first letter corresponds to the method encoding the left 2 × 2 subunit, the second letter corresponds to the method encoding the 2 × 2 right subunit.

Figure 00000039
Figure 00000039

Каждый заголовок может занимать от 1 до 10 битов; номер бита, указанный в таблице, означает порядок, в котором соответствующий бит помещается / извлекается из битового потока.Each header can take from 1 to 10 bits; the bit number indicated in the table means the order in which the corresponding bit is placed / retrieved from the bitstream.

Кодирование младших разрядов (LSB-кодирование) относится к эффективному методу представления двух младших разрядов исходных 10-битных значений пикселей в пределах обрабатываемого блока 2×4 по одному или нескольким цветовым каналам. В данном изобретении предложены четыре различные процедуры LSB кодирования.Low-order coding (LSB-coding) refers to an efficient method of representing the two least significant bits of the initial 10-bit pixel values within the processed 2 × 4 block through one or more color channels. The present invention provides four different LSB coding procedures.

3-битное кодирование3-bit encoding

Для каждого цвета выполняется расчет огрубленного среднего значения младших разрядов в пределах блока 2×4:For each color, the coarsened average value of the least significant bits is calculated within the 2 × 4 block:

Figure 00000040
Figure 00000040

Здесь: Ic (x, y) - исходное 10-битное значение пикселя в цветовом канале C в позиции (x, y). mLSBc состоит из одного бита, описывающего огрубленное среднее младших разрядов. Огрубленные средние по всем трем цветовым каналам в совокупности образуют 3-битное число, являющееся закодированной информацией о младших разрядах в пределах блока 2×4.Here: Ic (x, y) is the original 10-bit pixel value in color channel C at position (x, y). mLSBc consists of one bit describing the coarser average of the lower digits. The coarse averages over all three color channels together form a 3-bit number, which is encoded information about the least significant bits within a 2x4 block.

4-битное кодирование4-bit encoding

Этот способ кодирования младших разрядов аналогичен 3-битному LSB-кодированию для красного и синего цветовых каналов. Для зеленого канала используется более точное представление младших разрядов за счет раздельного кодирования младших битов левого и правого подблоков:This low-order coding method is similar to 3-bit LSB coding for red and blue color channels. For the green channel, a more accurate representation of the least significant bits is used due to the separate coding of the least significant bits of the left and right subblocks:

Figure 00000041
Figure 00000041

Figure 00000042
Figure 00000042

Огрубленные средние по красному и синему каналу в совокупности с двумя битами, описывающими огрубленные средние значения младших разрядов двух подблоков в зеленом канале, в совокупности составляют 4-битное значение, являющееся закодированной информацией о младших разрядах в пределах блока 2×4.The coarse averages of the red and blue channels, together with two bits describing the coarse averages of the least significant bits of two subunits in the green channel, together make up a 4-bit value, which is encoded information about the least significant bits within a 2 × 4 block.

5-битное кодирование5 bit encoding

Этот способ кодирования младших разрядов аналогичен 3-битному LSB-кодированию для синего цветового канала. Для красного и зеленого канала используется более точное представление младших разрядов за счет раздельного кодирования младших битов левого и правого подблоков:This low-order coding method is similar to 3-bit LSB coding for the blue color channel. For the red and green channels, a more accurate representation of the least significant bits is used due to the separate coding of the least significant bits of the left and right subblocks:

Figure 00000043
Figure 00000043

Figure 00000044
Figure 00000044

Figure 00000045
Figure 00000045

Figure 00000046
Figure 00000046

Огрубленное 1-битовое среднее по синему каналу в совокупности с двумя битами, описывающими огрубленные средние значения младших разрядов двух подблоков в красном канале и двух битов, описывающих огрубленные средние значения младших разрядов двух подблоков в зеленом канале, в совокупности составляют 5-битное значение, являющееся закодированной информацией о младших разрядах в пределах блока 2×4.The coarse 1-bit blue channel average, together with two bits describing the coarse average values of the least significant bits of two subunits in the red channel and two bits describing the coarser average values of the least significant bits of two subunits in the green channel, together constitute a 5-bit value, which is coded information about the least significant bits within the block 2 × 4.

6-битное кодирование6-bit encoding

Для каждого цветового канала используется два бита для представления огрубленной информации о средних значениях младших разрядов подблоков в пределах исходного блока 2×4:For each color channel, two bits are used to represent coarse information about the average values of the least significant bits of the subblocks within the original 2 × 4 block:

Figure 00000047
Figure 00000047

Figure 00000048
Figure 00000048

В этом методе 6-битное значение, являющееся закодированной информацией о младших разрядах в пределах блока 2×4, формируется путем объединения трех 2-битных значений, соответствующих огрубленной информации о среднем значении младших разрядов.In this method, a 6-bit value, which is encoded information about the least significant bits within a 2 × 4 block, is formed by combining three 2-bit values corresponding to coarsened information about the average value of the least significant bits.

Восстановление соответствующих частей двух младших битовых плоскостей основано на получении одного или двух битов по каждому цветовому каналу и формировании среднего значения для двух битовых плоскостей по всему блоку 2×4 или формировании двух средних значений для двух битовых плоскостей в пределах левого и правого подблоков 2×2. Среднее значение (Middle Value) рассчитывается согласно формуле:The restoration of the corresponding parts of the two least significant bit planes is based on the receipt of one or two bits for each color channel and the formation of an average value for two bit planes over the entire 2 × 4 block or the formation of two average values for two bit planes within the left and right subunits of 2 × 2 . The average value (Middle Value) is calculated according to the formula:

Figure 00000049
Figure 00000049

В иллюстративных целях на чертежах 17.1 и 17.2 показано расщепление исходных 10-битных значений в пределах блока 2×4 на две части: 8-битную и 2-битную, а также расщепление двух младших битовых плоскостей на две части: левую и правую.For illustrative purposes, figures 17.1 and 17.2 show the splitting of the original 10-bit values within a 2 × 4 block into two parts: 8-bit and 2-bit, as well as the splitting of the two least significant bit planes into two parts: left and right.

Заявляемое изобретение может быть использовано в различных промышленных изделиях, которые применяются для обработки высококачественных цветных изображений высокого разрешения. Основная область применения - ТВ-вещание и ТВ-воспроизведение высококачественного видеопотока. Применение данного изобретения в изделиях потребительской электроники может привести к существенному снижению требований к внутренним аппаратным ресурсам, таким как память, шины данных, без снижения качественных характеристик изделий, что в свою очередь позволит снизить сопутствующие издержки. Помимо этого в область применения может быть включено телевидение сверхвысокой четкости, а также дисплеи для мобильных устройств. Кроме того, заявляемое изобретение может быть использовано как часть сложной системы видеокодирования для промежуточного хранения обрабатываемых изображений без визуальных потерь с целью снижения объемов требуемой памяти.The invention can be used in various industrial products that are used for processing high-quality color images of high resolution. The main field of application is TV broadcasting and TV playback of high-quality video stream. The use of this invention in consumer electronics products can lead to a significant reduction in the requirements for internal hardware resources, such as memory, data buses, without reducing the quality characteristics of the products, which in turn will reduce associated costs. In addition, ultra-high-definition television, as well as displays for mobile devices, can be included in the scope. In addition, the claimed invention can be used as part of a complex video coding system for the intermediate storage of processed images without visual loss in order to reduce the amount of memory required.

Claims (25)

1. Способ компактного битового представления высококачественной цветной видеопоследовательности, заключающийся в блочном кодировании каждого цветного видеокадра видеопоследовательности, в котором каждый цветной пиксель представляют тремя цветовыми компонентами, каждую из которых изначально кодируют десятью битами, отличающийся тем, что кодирование осуществляют путем разбиения исходного цветного видеокадра на неперекрывающиеся пространственные блоки, состоящие из более чем одного пикселя по горизонтали и двух пикселей по вертикали, последующего разделения битового представления каждой из цветовых компонент пикселя на старшую часть, состоящую из более чем одного старшего бита, и младшую часть, состоящую из, по меньшей мере, одного младшего бита, в сумме образующих исходные десять битов, раздельного кодирования старшей и младшей частей, причем кодирование старшей части осуществляют путем применения более одного способа кодирования, каждый из которых учитывает межпиксельные связи только в пределах обрабатываемого пространственного блока и применяется для сокращения количества битов, необходимых для представления обрабатываемых данных, оценки погрешности кодирования, выбора способа кодирования, дающего наименьшую погрешность, пересылки данных о способе кодирования посредством передачи префиксного кода, кодировании младшей части, которое осуществляется путем усреднения более одного значения, входящего в младшую часть, причем размеры областей усреднения в пределах младшей части зависят от выбранного метода кодирования старшей части, и за счет выбора способа кодирования старшей части, обеспечивающего наименьшую погрешность, способа кодирования младшей части, размера префиксного кода, указывающего используемый способ кодирования, а также количества дополняющих неинформационных битов, устанавливают фиксированное наперед количество битов, необходимое для компактного представления исходного пространственного цветного блока.1. A method for compact bit representation of a high-quality color video sequence, which consists in block coding of each color video frame of a video sequence, in which each color pixel is represented by three color components, each of which is initially encoded with ten bits, characterized in that the encoding is carried out by breaking the original color video frame into non-overlapping spatial blocks of more than one horizontal pixel and two vertical pixels or, the subsequent division of the bit representation of each of the color components of the pixel into the most significant part, consisting of more than one high-order bit, and the low-order part, consisting of at least one low-order bit, in the sum forming the original ten bits, separate encoding of the high and low parts, and the coding of the older part is carried out by applying more than one coding method, each of which takes into account inter-pixel communications only within the processed spatial block and is used to reduce the number of bits required to represent the processed data, evaluate the encoding error, select the encoding method that gives the smallest error, send data on the encoding method by transmitting the prefix code, encode the younger part, which is done by averaging more than one value included in the younger part, the sizes of the averaging regions within the younger part depend on the selected encoding method of the senior part, and by choosing the encoding method of the senior part, Chiva smallest error, the encoding method minor portion size prefix code indicating the encoding method used, and the amount of complementary non-data bits is set beforehand fixed number of bits required for a compact representation of the original color space block. 2. Способ по п.1, отличающийся тем, что видеопоследовательность представляют в виде набора кадров, причем каждый кадр обрабатывают как изображение, а каждое изображение представляют в виде набора неперекрывающихся блоков размером 2×4 цветных пикселя, каждый из которых состоит из трех 10-битных значений, и при этом каждый такой блок в результате компрессии представляется битовым пакетом с наперед заданным фиксированным количеством бит, меньшим чем количество бит, необходимых для хранения исходного блока в несжатом виде.2. The method according to claim 1, characterized in that the video sequence is represented as a set of frames, each frame being processed as an image, and each image represented as a set of non-overlapping blocks of 2 × 4 color pixels, each of which consists of three 10- bit values, and each such block as a result of compression is represented by a bit packet with a predetermined fixed number of bits less than the number of bits required to store the original block in uncompressed form. 3. Способ по п.1, отличающийся тем, что старшие восемь битов каждой компоненты цветных пикселей обрабатываемого кадра рассматривают и обрабатывают как блоки размером 2×4 пикселя.3. The method according to claim 1, characterized in that the highest eight bits of each component of the color pixels of the processed frame are considered and processed as blocks of 2 × 4 pixels. 4. Способ по п.1, отличающийся тем, что старшие восемь битов каждой компоненты цветных пикселей обрабатываемого кадра рассматривают и обрабатывают как блоки размером 2×4 пикселя, каждый из которых в свою очередь представляется как два подблока размером 2×2 пикселя.4. The method according to claim 1, characterized in that the high eight bits of each component of the color pixels of the processed frame are considered and processed as blocks of 2 × 4 pixels, each of which in turn is represented as two subblocks of 2 × 2 pixels. 5. Способ по п.4, отличающийся тем, что обработку каждого из подблоков размером 2×2 пикселя осуществляют оптимальным методом, выбранным независимо из совокупности методов обработки подблока 2×2 по результатам оценки погрешности кодирования данного блока.5. The method according to claim 4, characterized in that the processing of each of the 2 × 2 pixel subunits is carried out by the optimal method selected independently from the set of processing methods of the 2 × 2 subunit based on the results of evaluating the coding error of this block. 6. Способ по п.3, отличающийся тем, что в процессе обработки каждого блока размером 2×4 пикселя осуществляют кодирование всеми доступными в конкретном случае способами и затем выбирают способ кодирования, дающий минимальную погрешность, причем выбор осуществляют путем сравнения погрешности кодирования оптимальным способом блока размером 2×4 пикселей с совокупной погрешностью этого блока, представленного как два подблока размером 2×2 пикселя.6. The method according to claim 3, characterized in that during the processing of each block with a size of 2 × 4 pixels, encoding is performed by all methods available in a particular case and then a coding method is selected that gives the minimum error, and the choice is made by comparing the encoding error in the optimal block method 2 × 4 pixels in size with the total error of this block represented as two subblocks of 2 × 2 pixels in size. 7. Способ по п.4, отличающийся тем, что в блоке 2×4 выявляют подблоки 2×2, которые соответствуют относительно регулярной структуре, т.е. принадлежащей преимущественно фону и нерегулярной структуре, т.е. принадлежащей преимущественно естественному изображению, причем операция выявления заключается в выполнении операций по следующим этапам:
- находят блок с регулярной структурой путем определения шаблонных значений для левого и правого подблока 2×2, определения ошибок, вызванных кодированием левого и правого подблока 2×2 с регулярной структурой, сравнения шаблонных значений и выбора блока с преимущественно регулярной структурой, при этом шаблонные значения структуры в двух цветах вычисляют по следующим формулам:
Figure 00000050

Figure 00000051

где C0(k), C1(k) - шаблонные значения для левого подблока 2×2 (k=0) и правого подблока (k=1);
- ошибки BlE(k), вызванные кодированием левого и правого подблоков 2×2 с регулярной структурой, вычисляют по формуле:
Figure 00000052

затем номер подблока, который будет закодирован с использованием шаблонного кодирования, помещают в исходящий сжатый поток с последующим сохранением шаблонных значений; значения пикселей незакодированного подблока кодируются посредством усечения младших двух битов.
7. The method according to claim 4, characterized in that in the 2 × 4 block, 2 × 2 subunits are identified that correspond to a relatively regular structure, i.e. belonging mainly to the background and irregular structure, i.e. belonging mainly to a natural image, and the detection operation consists in performing operations in the following steps:
- find a block with a regular structure by determining the template values for the left and right 2 × 2 subunit, determining errors caused by encoding the left and right 2 × 2 subunit with a regular structure, comparing the template values and choosing a block with a predominantly regular structure, while the template values structures in two colors are calculated by the following formulas:
Figure 00000050

Figure 00000051

where C 0 (k), C 1 (k) are the template values for the left sub-block 2 × 2 (k = 0) and the right sub-block (k = 1);
- BlE (k) errors caused by the coding of the left and right 2 × 2 subunits with a regular structure are calculated by the formula:
Figure 00000052

then the number of the sub-block to be encoded using template coding is placed in the outgoing compressed stream with the subsequent storage of template values; the pixel values of the unencoded subblock are encoded by truncating the lower two bits.
8. Способ по п.3, отличающийся тем, что кодирование блоков осуществляют параллельно тремя подспособами, а именно:
- подспособом, основанным на последовательном сдвиге цвета и состоящим из следующих этапов:
- интенсивность по каждому цветовому каналу для каждого пикселя блока кодируют тремя или четырьмя битами, вычисляемыми по следующим формулам:
Figure 00000053

Figure 00000054

Figure 00000055

где if обозначает условную операцию ЕСЛИ, else обозначает условную операцию ИНАЧЕ, которая логически связана с использованной выше операцией if, индекс i обозначает ось ординат, j обозначает ось абсцисс, I - значение пикселя исходного блока, С - битовый код, кодирующий соответствующий пиксель, при этом процедура декодирования пикселей, закодированных таким образом, описывается следующими формулами (здесь D - декодированный пиксель):
Figure 00000056

Figure 00000057

Figure 00000058

- подспособом кодирования, основанным на усреднении с частичным огрублением двух подблоков 2×2 в пределах блока 2×4, при котором кодовые величины вычисляют согласно следующим формулам:
Figure 00000059

Figure 00000060

Figure 00000061

при этом декодирование выполняют в соответствии со следующими формулами:
Figure 00000062

Figure 00000063

Figure 00000064

- подспособом кодирования, основанным на частичной реконструкции одного из цветовых каналов по двум другим, пиксели которых кодируют путем усечения нескольких младших битов; в частности красный и зеленый канал кодируют согласно формулам:
Figure 00000025

Figure 00000026

и два крайних пикселя синего канала, которые не могут быть реконструированы из красного и зеленого каналов, кодируют согласно следующим формулам:
Figure 00000027
,
Figure 00000028
,
причем процедура декодирования реализуется в соответствии с выражениями:
Figure 00000065

Figure 00000066

Figure 00000067

Figure 00000068

Figure 00000069

после применения к обрабатываемому блоку 2×4 описанных выше трех подспособов определяют подспособ, обеспечивающий минимальную ошибку, и его номер передают в первых двух битах сжатого потока.
8. The method according to claim 3, characterized in that the coding of the blocks is carried out in parallel with three sub-methods, namely:
- a method based on a sequential color shift and consisting of the following steps:
- the intensity for each color channel for each pixel of the block is encoded with three or four bits, calculated by the following formulas:
Figure 00000053

Figure 00000054

Figure 00000055

where if denotes the conditional operation IF, else denotes the conditional operation ELSE, which is logically related to the if operation used above, the index i denotes the ordinate axis, j denotes the abscissa axis, I is the pixel value of the original block, C is the bit code encoding the corresponding pixel, when the procedure for decoding pixels encoded in this way is described by the following formulas (here D is a decoded pixel):
Figure 00000056

Figure 00000057

Figure 00000058

- a coding method based on averaging with partial coarsening of two 2 × 2 subunits within a 2 × 4 block, in which the code values are calculated according to the following formulas:
Figure 00000059

Figure 00000060

Figure 00000061

while decoding is performed in accordance with the following formulas:
Figure 00000062

Figure 00000063

Figure 00000064

- an encoding method based on the partial reconstruction of one of the color channels along the other two, the pixels of which are encoded by truncating the few least significant bits; in particular, the red and green channels are encoded according to the formulas:
Figure 00000025

Figure 00000026

and the two extreme pixels of the blue channel, which cannot be reconstructed from the red and green channels, are encoded according to the following formulas:
Figure 00000027
,
Figure 00000028
,
moreover, the decoding procedure is implemented in accordance with the expressions:
Figure 00000065

Figure 00000066

Figure 00000067

Figure 00000068

Figure 00000069

after applying to the block being processed 2 × 4 of the three methods described above, the method providing the minimum error is determined and its number is transmitted in the first two bits of the compressed stream.
9. Способ по п.3, отличающийся тем, что при обработке блоков с неравномерной интегральной насыщенностью цветовых каналов используют метод доминирующего цвета, заключающийся в том, что выполняют анализ четырех ситуаций, а именно проверяют, какой из каналов является доминирующим: яркостный канал, красный канал, зеленый канал или синий канал, причем в качестве указателя номера доминирующего цвета используют 2-битный индекс, и значения пикселей доминирующего цвета передают без искажений 8-битными значениями, тогда как значения двух оставшихся каналов кодируют посредством усреднения в пределах каждого из каналов и передачи каждого такого среднего значения 8-битной величиной.9. The method according to claim 3, characterized in that when processing blocks with uneven integrated color channel saturation, the dominant color method is used, which consists in analyzing four situations, namely, checking which of the channels is dominant: luminance channel, red channel, green channel or blue channel, moreover, a 2-bit index is used as the index of the dominant color number, and the pixel values of the dominant color are transmitted without distortion by 8-bit values, while the values of the two remaining channels are encoded by averaging within each of the channels and transmitting each such average value with an 8-bit value. 10. Способ по п.3, отличающийся тем, что при обработке блоков 2×4 выполняют формирование цветовой палитры, причем все три цветовых канала обрабатывают одновременно и независимо, при этом для каждого подблока 2×2 формируют свою двухцветную палитру любым из известных способов, при этом предпочтительный способ заключается в разделении исходных значений четырех пикселей подблока 2×2 на две группы относительно среднего и расчете средних значений в пределах каждой группы, которые затем рассматриваются как цвета палитры, и применяют один из трех режимов кодирования, а именно режим дифференциального кодирования палитр, режим дифференциального кодирования цветов в пределах палитры или явное квантование цветов, для чего вначале оценивают возможность использования режима дифференциального кодирования палитр с помощью проверки первого логического условия:
InterCondition≡(-2≤C00-С10<2)∧(-1≤C01-С11≤2),
где (C00, C01) - цвета первой палитры, относящейся к левому подблоку 2×2, (С10, С11) - цвета второй палитры, относящейся к правому подблоку 2×2, с учетом того, что предпочтительно использовать предварительную обработку цветов каждой из палитр, которая заключается в проверке того, что только одна палитра из двух имеет равные цвета, и в этом случае замене одного из них на цвет из другой палитры, который является наиболее удаленным в смысле абсолютного значения от значений равных цветов, при этом, если первое логическое условие соблюдается, то цвета первой палитры передаются без потерь, в то время как цвета второй палитры кодируются как поправки к цветам из первой палитры, исходя из следующих действий:
- вычисляют два индекса, значения которых преобразуют в числа больше либо равные нулю согласно выражениям:
TIdx-y=С00-С10+2, где диапазон индекса: [0…3],
TIdx-x=C01-C11+1, где диапазон индекса: [0…3];
- преобразуют рассчитанные индексы в 4-битную обобщенную разностную величину (CDVal) с использованием таблицы, описывающей совместное распределение индексов TIdx-x/TIdx-y:
Figure 00000070

при этом последующее декодирование индексов TIdx-x/TIdx-y выполняют на основе двух дополнительных таблиц:
Figure 00000071

а восстановление значении разностей выполняют на основе формул:
C00-C10=TIdx-y-2 с новым диапазоном: [-2…2],
C01-C11=TIdx-x-1 с новым диапазоном: [-1…2];
в случае, если первое логическое условие не выполнено, производится отмена замены цветов, если оно было осуществлено, и затем цвета в каждой палитре переупорядочиваются таким образом, что первый по порядку следования цвет в каждой из палитр соответствует первому (левому-верхнему) пикселю в пределах соответствующего подблока 2×2, после чего осуществляется проверка второго логического условия дифференциального кодирования цветов для каждой из палитр, заключающаяся в анализе абсолютной разности значений цветов в каждой из палитр, и если условие для рассматриваемой палитры верно, кодировании первого цвета без потерь, а второго цвета в виде 2-битной поправки к первому цвету; в противном случае значение каждого цвета кодируется путем усечения младших трех разрядов, при этом восстановление усеченных бит осуществляется бинарным значением 100b; в заключении формируется карта цветов, которая может состоять из 3-х записей или 4-х записей, при этом карта цветов, состоящая из 3-х записей означает, что первый по порядку следования цвет соответствует первому пикселю в подблоке, при этом, в целях обеспечения заданного битового бюджета, карту цветов из 4-х записей предпочтительнее использовать для режима дифференциального кодирования палитр.
10. The method according to claim 3, characterized in that when processing 2 × 4 blocks, a color palette is formed, and all three color channels are processed simultaneously and independently, while for each 2 × 2 subunit they form their own two-color palette using any of the known methods, the preferred method consists in dividing the initial values of the four pixels of the 2 × 2 subunit into two groups relative to the average and calculating the average values within each group, which are then considered as the colors of the palette, and one of the three p presses coding, namely the differential encoding mode palette of colors of the differential encoding mode within a palette or explicit quantization of colors, which initially evaluate the possibility of using differential encoding palettes mode by checking the first logical condition:
InterCondition≡ (-2≤C00-С10 <2) ∧ (-1≤C01-С11≤2),
where (C00, C01) are the colors of the first palette related to the left sub-block 2 × 2, (C10, C11) are the colors of the second palette related to the right sub-block 2 × 2, taking into account the fact that it is preferable to use preliminary processing of colors of each palette , which consists in verifying that only one palette of the two has equal colors, in which case replacing one of them with a color from the other palette, which is the most distant in the sense of the absolute value of the values of equal colors, in this case, if the first logical the condition is met, then the colors first palette transmitted lossless, while the second color palette encoded as corrections to the colors of the first panel, proceeding from the following:
- calculate two indexes whose values are converted to numbers greater than or equal to zero according to the expressions:
TIdx-y = С00-С10 + 2, where the range of the index: [0 ... 3],
TIdx-x = C01-C11 + 1, where the range of the index: [0 ... 3];
- convert the calculated indices into a 4-bit generalized differential value (CDVal) using a table describing the joint distribution of the TIdx-x / TIdx-y indices:
Figure 00000070

further decoding of TIdx-x / TIdx-y indices is performed on the basis of two additional tables:
Figure 00000071

and the restoration of the value of the differences is performed based on the formulas:
C00-C10 = TIdx-y-2 with a new range: [-2 ... 2],
C01-C11 = TIdx-x-1 with a new range: [-1 ... 2];
if the first logical condition is not met, the color change is canceled if it has been implemented, and then the colors in each palette are reordered in such a way that the first color in each palette corresponds to the first (left-top) pixel within the corresponding 2 × 2 subunit, after which the second logical condition for differential color coding for each palette is checked, which consists in analyzing the absolute difference of the color values in each palette, and if the catch for the palette under consideration is true, the coding of the first color is lossless, and the second color is in the form of a 2-bit correction to the first color; otherwise, the value of each color is encoded by truncating the lower three digits, while the restoration of the truncated bits is carried out by a binary value 100b; in conclusion, a color map is formed, which can consist of 3 entries or 4 entries, while a color map consisting of 3 entries means that the first color in the sequence corresponds to the first pixel in the subblock, while to ensure a given bit budget, a color map of 4 entries is preferable to use for the differential encoding mode of the palettes.
11. Способ по п.3, отличающийся тем, что при обработке блоков для областей цветного изображения, в которых присутствует комбинация комплексных и относительно равномерных участков в пределах одного цветового канала, или в пределах одного обрабатываемого подблока, используют два подспособа: U1 и U2, обеспечивающие возможность компактного представления исходного блока 2×4 и оптимизированные под возможные комбинации комплексных и относительно равномерных участков изображения, при этом на основе расчета ошибок приближения исходного блока обоими подспособами выбирают оптимальный подспособ, обеспечивающий наименьшую ошибку, причем подспособ U1 применяют в отношении каждого подблока 2×2, входящего в состав исходного блока 2×4, в случае, когда один из трех цветовых каналов подблока 2×2 пригоден для кодирования средним значением, в то время как два оставшихся канала кодируют с использованием Non-Separable Wavelet (NSW) преобразования и процедуры Fixed Quantization via Table (FQvT); подспособ U2 применяют в отношении блока 2×4 в пределах одного цветового канала в случае, когда один подблок 2×2 в пределах рассматриваемого канала пригоден для кодирования средним, в то время как другой подблок 2×2 в пределах рассматриваемого канала может быть эффективно закодирован с использованием NSW преобразования и процедуры FQvT.11. The method according to claim 3, characterized in that when processing blocks for areas of a color image in which there is a combination of complex and relatively uniform sections within the same color channel, or within one processed sub-block, two methods are used: U1 and U2, providing the possibility of a compact representation of the initial 2 × 4 block and optimized for possible combinations of complex and relatively uniform sections of the image, while on the basis of calculating the approximation errors of the initial block, the wallpaper my sub-methods select the optimal sub-method that provides the smallest error, and sub-method U1 is applied to each 2 × 2 subblock that is part of the original 2 × 4 block in the case when one of the three color channels of the 2 × 2 subblock is suitable for encoding with an average value, while the two remaining channels are encoded using Non-Separable Wavelet (NSW) transforms and Fixed Quantization via Table (FQvT) procedures; sub-block U2 is applied to a 2 × 4 block within one color channel in the case when one 2 × 2 subblock within the channel in question is suitable for medium coding, while the other 2 × 2 subblock within the channel in question can be effectively encoded with using NSW conversion and FQvT procedures. 12. Способ по п.3, отличающийся тем, что при обработке блоков используют способ кодирования, заключающийся в том, что исходный блок 2×4 рассматривают как совокупность двух подблоков 2×2, каждый из которых рассматривают как набор из четырех значений А, В, С, D, и применяют преобразование Адамара к каждому из подблоков с последующей
процедурой кодирования FQvT, при этом преобразование описывается следующими формулами:
прямое преобразование:
Figure 00000072

обратное преобразование:
Figure 00000073

при этом оставшиеся компоненты S, dH, dV кодируют следующим образом:
- S компонента кодируют 6-битным значением путем усечения двух младших разрядов, а восстановление осуществляют двоичным значением 10b;
- {dH, dV} компоненты квантуют путем поиска наилучшего квантователя и наилучшего уровня восстановления в пределах квантователя,
причем для каждого квантователя, входящего во множество из восьми квантователей, определяют наилучший уровень восстановления компонент {dH, dV}, исходя из минимизации модуля разности между уровнем восстановления и значением соответствующей компоненты; ошибку кодирования {dH, dV} компонент каким-либо квантователем рассчитывают путем суммирования модуля разницы соответствующего уровня восстановления и значения каждой из компонент, которая является минимальной среди всех возможных в пределах данного квантователя; затем определяют квантователь, который обеспечивает минимальную ошибку кодирования, применяя нижеприведенную таблицу квантования, оптимизированную для квантования {dH, dV} компонент:
Figure 00000074

при этом каждый подблок 2×2 в пределах одного цветового канала кодируют с использованием шести битов для кодирования среднего, 3-битного номера квантователя и двух 3-битных индексов для кодирования оптимальных уровней восстановления dH, dV компонент.
12. The method according to claim 3, characterized in that when processing the blocks, an encoding method is used, which means that the original 2 × 4 block is considered as a combination of two 2 × 2 subunits, each of which is considered as a set of four values A, B , C, D, and the Hadamard transform is applied to each of the subunits, followed by
FQvT encoding procedure, while the conversion is described by the following formulas:
direct conversion:
Figure 00000072

inverse transformation:
Figure 00000073

while the remaining components S, dH, dV are encoded as follows:
- The S component is encoded with a 6-bit value by truncating the two least significant bits, and the restoration is performed with a binary value of 10b;
- {dH, dV} components are quantized by searching for the best quantizer and the best recovery level within the quantizer,
moreover, for each quantizer included in the set of eight quantizers, determine the best recovery level of the components {dH, dV}, based on minimizing the modulus of the difference between the recovery level and the value of the corresponding component; the coding error {dH, dV} of the components by any quantizer is calculated by summing the modulus of the difference of the corresponding recovery level and the value of each of the components, which is the smallest among all possible within the given quantizer; then determine the quantizer, which provides the minimum encoding error, using the following quantization table, optimized to quantize the {dH, dV} components:
Figure 00000074

wherein each 2 × 2 subblock within the same color channel is encoded using six bits for encoding the average, 3-bit quantizer number and two 3-bit indices for encoding the optimal recovery levels of the dH, dV components.
13. Способ по п.4, отличающийся тем, что при обработке каждый подблок 2×2 рассматривают как набор из четырех значений А, В, С, D, к которым применяют NSW-преобразование, получая четыре значения: {А, В, С, D}→{s, h, v, d} согласно следующим формулам:
h=A-B
Figure 00000075
v=A-C B=A-h d=A-D C=A-v
Figure 00000076
DA-d

где s означает среднее значение четырех пикселей, h, v, d - простейшие градиенты в направлениях: горизонталь, вертикаль, диагональ, при этом каждый подблок 2×2 кодируют в среднем 15 битами, причем кодирование величины s осуществляют с использованием простого равномерного квантования с точностью в среднем 6 битов; квантование набора разностных величин {h, v, d} осуществляют путем построения набора фиксированных квантователей, при этом каждый квантователь относится к изображению с определенной структурой и состоит из более чем одного значения, являющегося уровнем восстановления квантованного значения, а процесс квантования заключается в следующем: выявление подходящего квантователя среди набора квантователей для {h, v, d} для одного цвета, а затем нахождение для каждой разности соответствующего уровня восстановления, при этом налагаются следующие ограничения: набор квантователей состоит из восьми квантователей, каждый из которых имеет четыре значения: два положительных и симметрично два отрицательных, которые выполняют функции уровней восстановления в соответствии с таблицей:
Figure 00000077

при этом процесс кодирования разностных величин {h, v, d} включает в себя следующие операции:
- определение номера квантователя N из набора квантователей, три величины которого являются наилучшим приближением для {h, v, d};
- определение индексов уровней восстановления для {h, v, d} в квантователе с номером N.
13. The method according to claim 4, characterized in that during processing each 2 × 2 subunit is considered as a set of four values A, B, C, D, to which the NSW transform is applied, obtaining four values: {A, B, C , D} → {s, h, v, d} according to the following formulas:
h = AB
Figure 00000075
v = AC B = ah d = AD C = av
Figure 00000076
DA-d

where s is the average of four pixels, h, v, d are the simplest gradients in the directions: horizontal, vertical, diagonal, with each 2 × 2 sub-block being encoded on average with 15 bits, and the value of s is encoded using simple uniform quantization with accuracy an average of 6 bits; the quantization of the set of difference values {h, v, d} is carried out by constructing a set of fixed quantizers, each quantizer refers to an image with a certain structure and consists of more than one value, which is the recovery level of the quantized value, and the quantization process is as follows: a suitable quantizer among the set of quantizers for {h, v, d} for one color, and then finding for each difference the corresponding recovery level, the following boundedness: set of quantizers consists of eight quantizers, each having four values, two positive and two negative symmetrical, which operate recovery levels functions in accordance with the table:
Figure 00000077

the process of encoding difference values {h, v, d} includes the following operations:
- determination of the quantizer number N from the set of quantizers, three values of which are the best approximation for {h, v, d};
- determination of recovery level indices for {h, v, d} in quantizer number N.
14. Способ по п.4, отличающийся тем, что при обработке подблоков 2×2 применяют преобразование NSW и оптимизированную таблицу квантования
Figure 00000078

при этом используют дополнительные семь подрежимов кодирования в отношении подблоков с вертикальными/горизонтальными или диагональными преимущественными направлениями, а также однородными участками в пределах блока размером 2×2, причем способ кодирования определяется субпрефиксом переменной длины (VL), который указывает, какой тип кодирования используется
Figure 00000079

где Н структура означает, что для кодирования подблока 2×2 используют две "опорные точки" А, С, каждую из которых кодируют семью битами, выполняя простое усечение младшего разряда, причем усеченный младший разряд восстанавливают нулевым значением; V структура означает, что для кодирования подблока 2×2 используют две "опорные точки" А, В, каждую из которых кодируют семью битами, выполняя простое усечение младшего разряда, причем усеченный младший разряд восстанавливают нулевым значением; D структура означает, что для кодирования подблока 2×2 используют две "опорные точки" А, В, каждую из которых кодируют шестью битами, выполняя простое усечение двух младших разрядов, причем усеченные младшие разряды восстанавливают бинарным значением 10b, при этом младший из усеченных разрядов восстанавливается значением 0, в то время как старший усеченный разряд восстанавливается значением 1; опорные точки А, В используют для восстановления точек С, D следующим способом: D=A, C=B; режим среднего значения используют для кодирования всех пикселей А, В, С, D средним значением, получая однородный блок, а среднее значение занимает восемь битов; режим "h/v/d величина близка к нулю" используют, если после NSW преобразования одна из (h, v, d) близка к нулю, при этом префиксы выбирают на основе следующих соответствий: 100|А-В|~0; 101|А-С|~0; 110:|A-D\~0,
при этом в каждом случае только две разностные величины подвергают квантованию:
h=0; {v, d}→{Квантователь N, Iv, Id}
v=0; {h, d}→{Квантователь N, Ih, Id}
d=0; {h, v}→{Квантователь N, Ih, Iv}, а величина s кодируется 6, 7 или 8 битами; при этом процесс кодирования подблока включает в себя следующие этапы: подблок размером 2×2 кодируют с помощью структуры H; далее подблок размером 2×2 кодируют с помощью структуры V; затем подблок размером 2×2 кодируют соответственно с помощью структуры D и среднего значения с последующим вычислением погрешностей, вызванных соответствующими способами кодирования подблока, после чего выполняют NSW преобразование и среди модулей разностных величин (h, v, d) определяют наименьшее значение, затем две ненулевые разностные величины кодируют методом FQvT с помощью таблицы
Figure 00000080

и процесса квантования, описанного выше, затем определяют 20 количество свободных битов путем изначального задания количества свободных битов равным 0, анализа номера выбранного квантователя, и если он оказался равным 1, последовательного сравнения с 0 индексов уровней восстановления для каждой из двух ненулевых разностных величин и увеличения на 1 количества свободных битов в случае равенства индекса уровня восстановления в каждом из двух сравнений и, исходя из этого, кодирования величины s с точностью шесть, семь или восемь битов в соответствии с таблицей:
Figure 00000081

затем оценивают погрешность, вызванную кодированием подблока 2×2 с помощью метода FQvT, и среди полученных пяти погрешностей выбирают наименьшую, и соответствующий субпрефикс вводят в битовый поток перед сжатыми данными.
14. The method according to claim 4, characterized in that when processing the 2 × 2 subunits, the NSW transform and the optimized quantization table are used
Figure 00000078

in this case, an additional seven coding sub-modes are used for subblocks with vertical / horizontal or diagonal preferred directions, as well as homogeneous sections within a 2 × 2 block, the coding method being determined by a variable length subprefix (VL), which indicates what type of coding is used
Figure 00000079

where H structure means that to encode the 2 × 2 subblock, two "reference points" A, C are used, each of which is encoded with seven bits, performing a simple truncation of the least significant bit, the truncated least significant bit being restored to zero; The V structure means that two "reference points" A, B are used to encode the 2 × 2 subunit, each of which is encoded with seven bits, performing a simple truncation of the least significant bit, the truncated least significant bit being restored to zero; The D structure means that for encoding the 2 × 2 subblock, two “reference points” A, B are used, each of which is encoded with six bits, performing a simple truncation of the two least significant bits, and the truncated lower bits are restored with a binary value of 10b, while the lower of the truncated bits is restored with a value of 0, while the oldest truncated bit is restored with a value of 1; reference points A, B are used to restore points C, D in the following way: D = A, C = B; the average value mode is used to encode all pixels A, B, C, D with the average value, obtaining a uniform block, and the average value takes eight bits; the “h / v / d value is close to zero” mode is used if, after the NSW conversion, one of (h, v, d) is close to zero, and the prefixes are selected based on the following correspondences: 100 | AB | ~ 0; 101 | A-C | ~ 0; 110: | AD \ ~ 0,
in this case, in each case, only two difference values are quantized:
h is 0; {v, d} → {Quantizer N, Iv, Id}
v is 0; {h, d} → {Quantizer N, Ih, Id}
d is 0; {h, v} → {Quantizer N, Ih, Iv}, and s is encoded with 6, 7 or 8 bits; the encoding process of the subunit includes the following steps: a subunit of size 2 × 2 is encoded using the structure H; then a 2 × 2 subblock is encoded using structure V; then a 2 × 2 subblock is encoded, respectively, using the D structure and the average value, followed by calculation of errors caused by the corresponding subblock coding methods, after which the NSW conversion is performed and the smallest value is determined among the difference value modules (h, v, d), then two nonzero difference values are encoded using the FQvT method using the table
Figure 00000080

and the quantization process described above, then determine 20 the number of free bits by initially setting the number of free bits equal to 0, analyzing the number of the selected quantizer, and if it turned out to be 1, sequential comparison with 0 indexes of recovery levels for each of the two non-zero difference values and increase by 1 number of free bits in case of equality of the recovery level index in each of the two comparisons and, based on this, coding the quantity s with an accuracy of six, seven or eight bits, respectively obstacle to the table:
Figure 00000081

then, the error caused by the coding of the 2 × 2 sub-block is estimated using the FQvT method, and the smallest is selected from the five errors obtained, and the corresponding sub-prefix is introduced into the bitstream before the compressed data.
15. Способ по п.4, отличающийся тем, что при обработке блоков применяют преобразование NSW ко всем цветовым каналам одновременно с последующим групповым кодированием разностных величин из трех цветовых каналов совместно в соответствии с таблицей оптимизированного набора квантователей:
Figure 00000082

причем для всего набора разностных величин из подблока 2×2: {hR, hG, hB, vR, vG, vB, dR, dG, dB} выбирают один общий квантователь и каждую из разностных величин кодируют посредством 3-битового значения таким образом, что в целом девять разностей занимают: 9×3=27 битов, при этом индекс квантователя кодируют тремя битами, что в итоге дает (27+3)=30 битов, а каждую величину из {sR, sG, sB} кодируют в пять битов путем усечения трех младших разрядов, причем восстановление усеченных разрядов осуществляют через бинарное значение 100b таким образом, что два младших усеченных разряда восстанавливаются 0 значением, а старший из усеченных восстанавливается 1 значением, при этом оптимальное визуальное качество обеспечивают за счет использования заранее определенных весов, отражающих различное восприятие наблюдателем красного, зеленого и синего цветов, которые учитывают при вычислении погрешности Е, порожденной процедурой FQvT для {hR, hG, hB, vR, vG, vB, dR, dG, dB}, выражающейся следующим образом:
Figure 00000083
Figure 00000084

где ΔhC, ΔvC, ΔdC обозначают ошибку приближения h/v/d разностных величин после FQvT процедуры в цветовом канале С; Wc - весовые коэффициенты, отражающие относительную видимость каждого из цветовых каналов С∈{R, G, В} для человека.
15. The method according to claim 4, characterized in that when processing the blocks, the NSW transform is applied to all color channels simultaneously with the subsequent group coding of difference values from three color channels together in accordance with the table of an optimized set of quantizers:
Figure 00000082

moreover, for the whole set of difference values from the 2 × 2 subunit: {hR, hG, hB, vR, vG, vB, dR, dG, dB}, one common quantizer is selected and each of the difference values is encoded using a 3-bit value so that a total of nine differences occupy: 9 × 3 = 27 bits, while the quantizer index is encoded with three bits, which ultimately gives (27 + 3) = 30 bits, and each value from {sR, sG, sB} is encoded into five bits by truncation of the three least significant bits, and the restoration of the truncated bits is carried out through the binary value 100b so that the two least truncated the series are restored with 0 value, and the oldest of the truncated ones is restored with 1 value, while optimal visual quality is ensured by using predetermined weights that reflect different observer perceptions of red, green and blue colors, which are taken into account when calculating the error E generated by the FQvT procedure for {hR , hG, hB, vR, vG, vB, dR, dG, dB}, expressed as follows:
Figure 00000083
Figure 00000084

where ΔhC, ΔvC, ΔdC denote the error of approximation of h / v / d difference values after the FQvT procedure in the color channel C; W c - weighting coefficients reflecting the relative visibility of each of the color channels С∈ {R, G, В} for a person.
16. Способ по п.15, отличающийся тем, что оценку погрешности Е выполняют путем расчета суммы взвешенных максимальных ошибок кодирования h/v/d разностных величин:
Figure 00000085
16. The method according to clause 15, characterized in that the error E is estimated by calculating the sum of the weighted maximum coding errors h / v / d of the difference values:
Figure 00000085
17. Способ по п.3, отличающийся тем, что при обработке блоков расщепляют исходный блок 2×4 на 4 микроблока меньшего размера с размерами 1×2 пикселей, при этом каждый микроблок 1×2 состоит из двух пространственных пикселей А и В, каждый пространственный пиксель состоит из трех цветовых компонент R,G,B; для каждого микроблока определяют доминирующий канал и затем осуществляют передачу значений пикселей в доминирующем канале путем кодирования соответствующих значений в шесть битов; неосновные каналы кодируют посредством передачи средних значений между двумя значениями для каждой пространственной позиции, при этом используют процедуру квантования и ограничения, заключающуюся в том, что интенсивности пикселей доминирующего канала сохраняют во временных переменных D1/D2 и в зависимости от того, какие каналы признаны неосновными, вычисляют определенные средние значения, при этом усреднение производят между двумя неосновными каналами в каждой пространственной позиции, затем временные переменные, которые хранят значения доминантного канала, кодируют 6-битными значениями путем усечения двух младших разрядов, причем последующее восстановление усеченных разрядов осуществляют двоичным значением 10b; усредненные значения неосновных каналов сначала ограничивают по верхнему порогу, равному 63, затем ограниченные значения квантуют усечением трех младших разрядов, причем восстановление усеченных разрядов осуществляют двоичным значением 100b, и с каждым микроблоком 1×2 передают дополнительную информацию, указывающую 2-битный номер доминирующего канала.17. The method according to claim 3, characterized in that when processing the blocks, the original 2 × 4 block is split into 4 smaller microblocks with sizes of 1 × 2 pixels, each 1 × 2 microblock consisting of two spatial pixels A and B, each spatial pixel consists of three color components R, G, B; for each microblock, the dominant channel is determined and then the pixel values in the dominant channel are transmitted by encoding the corresponding values in six bits; minority channels are encoded by transmitting average values between two values for each spatial position, using the quantization and limitation procedure, namely, that the pixel intensities of the dominant channel are stored in temporary variables D1 / D2 and depending on which channels are recognized as minor, certain average values are calculated, and averaging is performed between two non-main channels in each spatial position, then temporary variables that store the values Nia dominant channel, 6-bit encoded values by truncating the two least significant bits, and subsequent recovery of truncated bits of binary value is performed 10b; the averaged values of non-primary channels are first limited by an upper threshold of 63, then the bounded values are quantized by truncating the three least significant bits, and the truncated bits are restored with a binary value of 100b, and additional information indicating the 2-bit number of the dominant channel is transmitted with each 1 × 2 microblock. 18. Способ по п.4, отличающийся тем, что при обработке подблока 2×2 для воспроизведения участков с малыми разностными величинами во всех трех цветовых каналах в пределах подблока 2×2 применяют альтернативную процедуру кодирования среднего, а именно: кодируют величину s с использованием пять битов следующим образом:
- берут младшие шесть битов восьмибитового представления величины s;
- из них старшие пять битов рассматривают как кодовое представление величины s;
при декодировании младший разряд декодированной величины s восстанавливают нулевым значением; при этом передачу незначительных изменений интенсивностей обеспечивают за счет применения следующей таблицы квантования:
Figure 00000086
18. The method according to claim 4, characterized in that when processing the 2 × 2 subblock to reproduce sections with small difference values in all three color channels within the 2 × 2 subblock, an alternative medium coding procedure is used, namely, the value s is encoded using five bits as follows:
- take the lower six bits of the eight-bit representation of s;
- of these, the high five bits are considered as a code representation of s;
when decoding, the least significant bit of the decoded value s is restored to zero; while the transmission of minor changes in intensities is ensured by applying the following quantization table:
Figure 00000086
19. Способ по п.3, отличающийся тем, что каждый обрабатываемый блок 2×4 рассматривают как составленный из пикселей, каждый из которых представлен тремя цветовыми компонентами, каждая из которых изначально представлена 10-битным значением, и в результате компрессии блок кодируют 100 битами, представляющими собой элементарный сжатый пакет, который состоит в свою очередь из Variable Length Encoding Header (VLEH), сжатых битов, битов, представляющих информацию о младших разрядах в компактном виде, и возможных дополняющих битов, при этом сводную информацию о возможных методах кодирования, о количестве сжатых битов, о количестве битов, требуемых для кодирования младших разрядов, о длине VLEH и значений битов, входящих в него, а также о количестве дополняющих битов, представляют в виде следующей таблицы:
Figure 00000087

где идентификацию использованного метода осуществляют одной или двумя буквами, причем в последнем случае расшифровка метода осуществляется следующим образом: первая буква соответствует методу, кодирующему левый подблок 2×2, вторая буква соответствует методу, кодирующему правый подблок 2×2, одна буква соответствует способу, кодирующему блок 2×4, при этом каждый заголовок VLEH занимает от 1 до 10 битов; номер бита, указанный в таблице, означает порядок, в котором соответствующий бит помещается/извлекается из битового потока.
19. The method according to claim 3, characterized in that each processed 2 × 4 block is considered to be composed of pixels, each of which is represented by three color components, each of which is initially represented by a 10-bit value, and as a result of compression, the block is encoded with 100 bits , which are an elementary compressed packet, which in turn consists of a Variable Length Encoding Header (VLEH), compressed bits, bits representing information about low-order bits in a compact form, and possible complementary bits, while the summary information about possible s coding methods, the number of compressed bits the number of bits required to encode the LSBs, and the length VLEH bit values included in it, and also on the number of complementary bits are in the following table:
Figure 00000087

where the identification of the method used is carried out in one or two letters, and in the latter case, the method is decrypted as follows: the first letter corresponds to the method encoding the left 2 × 2 subunit, the second letter corresponds to the method encoding the 2 × 2 right subunit, one letter corresponds to the encoding method a 2 × 4 block, with each VLEH header occupying from 1 to 10 bits; the bit number indicated in the table means the order in which the corresponding bit is placed / retrieved from the bitstream.
20. Способ по п.1, отличающийся тем, что при выборе оптимального метода кодирования для текущего обрабатываемого блока 2×4 осуществляют проверку эффективности способа оценки искажений, основанного на Взвешенном Квадратичном Макс-Макс Критерии (WSMMC) и заключающегося в следующем:
- рассчитывают взвешенный квадрат максимума попиксельного отклонения между исходным и закодированным блоком по всем трем цветовым каналам:
Figure 00000088

- рассчитывают сумму величин, определенных на первом шаге:
Figure 00000089

- рассчитывают максимум среди величин, определенных на первом шаге:
ММах=Max[MaxSqR, MaxSqG, MaxSqB]
- рассчитывают сумму величин, полученных на втором и третьем шагах: WSMMC=SMax + Mmax,
затем складывают WSMMC-значения, рассчитанные для обоих подблоков 2×2, при этом выбор оптимального метода кодирования сводят к выполнению следующих этапов:
- левый и правый подблоки, входящие в состав одного блока 2×4, кодируют раздельно пятью известными методами: N, Р, С, S, Е-методами и после сжатия каждого подблока одним из пяти известных методов N, Р, С, S, Е выполняют расчет ошибки согласно одному из заявляемых способов, а также осуществляют формирование промежуточных битовых потоков;
- для каждого из двух подблоков определяют метод, дающий минимальную ошибку;
- на основе результатов предыдущего этапа для блока 2×4, состоящего из двух подблоков 2×2, определяют наилучшую комбинацию методов N, Р, С, S, Е, обеспечивающую минимальную комбинационную ошибку кодирования блока 2×4 в виде двух подблоков 2×2;
- весь исходный блок 2×4 обрабатывают каждым из семи способов D, О, М, F, L, U, Н, которые оптимизированы для сжатия блока 2×4, при этом после кодирования блока любым из указанных способов рассчитывают ошибку кодирования согласно одному из заявляемых здесь способов;
- вычисляют минимальную ошибку среди ошибок, вызванных применением семи заявляемых здесь способов D, О, М, F, L, U, Н к исходному блоку 2×4;
- вычисляют минимальную ошибку, на основании чего определяют оптимальный способ кодирования, обеспечивающий минимальную ошибку.
20. The method according to claim 1, characterized in that when choosing the optimal encoding method for the current 2 × 4 block being processed, the effectiveness of the distortion estimation method is checked based on the Weighted Quadratic Max-Max Criteria (WSMMC) and consisting in the following:
- calculate the weighted square of the maximum pixel-by-pixel deviation between the original and encoded block over all three color channels:
Figure 00000088

- calculate the sum of the values determined in the first step:
Figure 00000089

- calculate the maximum among the values determined in the first step:
MMax = Max [MaxSq R , MaxSq G , MaxSq B ]
- calculate the sum of the values obtained in the second and third steps: WSMMC = SMax + Mmax,
Then, the WSMMC values calculated for both 2 × 2 subunits are added, and the choice of the optimal encoding method reduces to the following steps:
- the left and right subblocks, which are part of one 2 × 4 block, are encoded separately by five known methods: N, P, C, S, E-methods and after compressing each subblock with one of the five known methods N, P, C, S, E perform error calculation according to one of the claimed methods, and also carry out the formation of intermediate bit streams;
- for each of the two subunits determine the method that gives the minimum error;
- based on the results of the previous step, for the 2 × 4 block consisting of two 2 × 2 subunits, determine the best combination of N, P, C, S, E methods, which provides the minimum combination coding error of the 2 × 4 block in the form of two 2 × 2 subunits ;
- the entire 2 × 4 source block is processed by each of the seven methods D, O, M, F, L, U, H, which are optimized for compressing the 2 × 4 block, and after encoding the block using any of these methods, an encoding error is calculated according to one of the methods claimed herein;
- calculate the minimum error among the errors caused by the application of the seven methods D, O, M, F, L, U, H stated here to the original 2 × 4 block;
- calculate the minimum error, on the basis of which determine the optimal encoding method that provides the minimum error.
21. Способ по п.1, отличающийся тем, что применяют кодирование младших разрядов (LSB) в отношении двух младших разрядов исходных десятибитных значений пикселей в пределах обрабатываемого блока 2×4 по одному или нескольким цветовым каналам.21. The method according to claim 1, characterized in that the least significant bit coding (LSB) is applied to the two least significant bits of the initial ten-bit pixel values within the processed 2 × 4 block through one or more color channels. 22. Способ по п.21, отличающийся тем, что выполняют 3-битное кодирование, заключающееся в том, что для каждого цвета выполняют расчет огрубленного среднего значения младших разрядов в пределах блока 2×4:
Figure 00000090

где Ic(х, у) - исходное десятибитное значение пикселя в цветовом канале С в позиции (х, у); mLSBC состоит из одного бита, описывающего огрубленное среднее младших разрядов, при этом огрубленные средние по всем трем цветовым каналам в совокупности образуют 3-битное число, являющееся закодированной информацией о младших разрядах в пределах блока 2×4.
22. The method according to item 21, characterized in that perform 3-bit encoding, which consists in the fact that for each color they calculate the coarse average value of the least significant bits within a 2 × 4 block:
Figure 00000090

where Ic (x, y) is the initial ten-bit pixel value in the color channel C at position (x, y); mLSB C consists of one bit describing the coarse average of the least significant bits, while the coarse averages of all three color channels together form a 3-bit number, which is encoded information about the least significant bits within a 2 × 4 block.
23. Способ по п.21, отличающийся тем, что выполняют 4-битное кодирование, заключающееся в том, что для зеленого канала используют более точное представление младших разрядов за счет раздельного кодирования младших битов левого и правого подблоков:
Figure 00000041
Figure 00000091

при этом огрубленные средние по красному и синему каналу в совокупности с двумя битами, описывающими огрубленные средние значения младших разрядов двух подблоков, в зеленом канале в совокупности составляют четырехбитное значение, являющееся закодированной информацией о младших разрядах в пределах блока 2×4.
23. The method according to item 21, characterized in that perform 4-bit encoding, which consists in the fact that for the green channel use a more accurate representation of the least significant bits by separately encoding the least significant bits of the left and right subblocks:
Figure 00000041
Figure 00000091

while the coarse averages over the red and blue channels in conjunction with two bits describing the coarse averages of the least significant bits of two subunits, in the green channel together make up a four-bit value, which is encoded information about the least significant bits within a 2 × 4 block.
24. Способ по п.20, отличающийся тем, что выполняют 5-битное кодирование, заключающееся в том, что для красного и зеленого канала используют более точное представление младших разрядов за счет раздельного кодирования младших битов левого и правого подблоков:
Figure 00000043

Figure 00000044

Figure 00000045

Figure 00000092

при этом огрубленное однобитовое среднее по синему каналу в совокупности с двумя битами, описывающими огрубленные средние значения младших разрядов двух подблоков в красном канале и двух битов, описывающих огрубленные средние значения младших разрядов двух подблоков в зеленом канале в совокупности составляют 5-битное значение, являющееся закодированной информацией о младших разрядах в пределах блока 2×4.
24. The method according to claim 20, characterized in that 5-bit encoding is performed, namely, that for the red and green channels a more accurate representation of the least significant bits is used due to the separate encoding of the least significant bits of the left and right subblocks:
Figure 00000043

Figure 00000044

Figure 00000045

Figure 00000092

while the coarse one-bit average over the blue channel in conjunction with two bits describing the coarse average values of the least significant bits of two subunits in the red channel and two bits describing the coarsened average values of the least significant bits of two subunits in the green channel together make up a 5-bit value, which is encoded information about the least significant bits within the 2 × 4 block.
25. Способ по п.20, отличающийся тем, что выполняют 6-битное кодирование, заключающееся в том, что для каждого цветового канала используют два бита для представления огрубленной информации о средних значениях младших разрядов подблоков в пределах исходного блока 2×4:
Figure 00000047

Figure 00000093

при этом 6-битное значение, являющееся закодированной информацией о младших разрядах в пределах блока 2×4, формируют путем объединения трех двухбитных значений, соответствующих огрубленной информации о среднем значении младших разрядов, и восстановление соответствующих частей двух младших битовых плоскостей основано на получении одного или двух битов по каждому цветовому каналу и формировании среднего значения для двух битовых плоскостей по всему блоку 2×4 или формировании двух средних значений для двух битовых плоскостей в пределах левого и правого подблоков 2×2, причем среднее значение (Middle Value) рассчитывают согласно формуле:
Figure 00000094
25. The method according to claim 20, characterized in that 6-bit encoding is carried out, consisting in the fact that for each color channel two bits are used to represent coarse information about the average values of the least significant bits of the subunits within the original 2 × 4 block:
Figure 00000047

Figure 00000093

wherein a 6-bit value, which is encoded information about the least significant bits within the 2 × 4 block, is formed by combining three two-bit values corresponding to the coarsened information about the average value of the least significant bits, and the restoration of the corresponding parts of the two least significant bit planes is based on the receipt of one or two bits for each color channel and the formation of the average value for two bit planes throughout the block 2 × 4 or the formation of two average values for two bit planes within l second and right subblocks 2 × 2, and the average value (Middle Value) is calculated according to the formula:
Figure 00000094
RU2009110512/09A 2009-03-24 2009-03-24 Method to compress images and video sequences RU2420021C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2009110512/09A RU2420021C2 (en) 2009-03-24 2009-03-24 Method to compress images and video sequences

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2009110512/09A RU2420021C2 (en) 2009-03-24 2009-03-24 Method to compress images and video sequences

Publications (2)

Publication Number Publication Date
RU2009110512A RU2009110512A (en) 2010-09-27
RU2420021C2 true RU2420021C2 (en) 2011-05-27

Family

ID=42939932

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009110512/09A RU2420021C2 (en) 2009-03-24 2009-03-24 Method to compress images and video sequences

Country Status (1)

Country Link
RU (1) RU2420021C2 (en)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2488960C2 (en) * 2011-06-17 2013-07-27 Государственное образовательное учреждение высшего профессионального образования Самарский государственный технический университет Method for data compression-decompression and device for its realisation
RU2510079C2 (en) * 2011-02-25 2014-03-20 Сони Корпорейшн Method of compressing digital images using fixed number of bits per block
RU2530300C1 (en) * 2013-02-21 2014-10-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Тамбовский государственный технический университет" ФГБОУ ВПО ТГТУ Method of improving quality of structural image of biological object in optical coherence tomography
GB2516022A (en) * 2013-07-05 2015-01-14 Canon Kk Method, device, and computer program for processing high bit-depth content in video encoder and decoder
GB2516021A (en) * 2013-07-05 2015-01-14 Canon Kk Method, device, and computer program for pre-encoding and post-decoding high bit-depth content in video encoder and decoder
RU2567988C2 (en) * 2012-10-22 2015-11-10 Гурулоджик Микросистемс Ой Encoder, method of encoding data, decoder, method of decoding data, system for transmitting data, method of transmitting data and programme product
RU2607415C2 (en) * 2015-04-21 2017-01-10 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Method of identifying multimedia data stream frames basing on correlation analysis of frame images histograms
RU2641252C2 (en) * 2013-07-12 2018-01-16 Квэлкомм Инкорпорейтед Palettized prediction at encoding video based on palettes
RU2645358C2 (en) * 2013-12-10 2018-02-21 Кэнон Кабусики Кайся Method and device for coding or decoding pixel units
RU2665308C2 (en) * 2013-04-05 2018-08-28 Сони Корпорейшн Image processing apparatus and image processing method
RU2668723C2 (en) * 2014-03-17 2018-10-02 Нокиа Текнолоджиз Ой Method and equipment for coding and decoding video signals
RU2678490C2 (en) * 2014-03-26 2019-01-29 Квэлкомм Инкорпорейтед Determining palette size, palette entries and filtering of palette coded blocks in video coding
RU2679201C2 (en) * 2014-09-30 2019-02-06 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Rules for intra-picture prediction modes when wavefront parallel processing is enabled
RU2684202C2 (en) * 2014-10-06 2019-04-04 Кэнон Кабусики Кайся Improved encoding process using palette mode
RU2686559C2 (en) * 2015-01-29 2019-04-29 Кэнон Кабусики Кайся Performing indicator for paletraising during encoding or decoding of independent codorated structures
US10368091B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Block flipping and skip mode in intra block copy prediction
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
US10419774B2 (en) 2013-12-10 2019-09-17 Canon Kabushiki Kaisha Palette mode in HEVC
US10469863B2 (en) 2014-01-03 2019-11-05 Microsoft Technology Licensing, Llc Block vector prediction in video and image coding/decoding
US10506254B2 (en) 2013-10-14 2019-12-10 Microsoft Technology Licensing, Llc Features of base color index map mode for video and image coding and decoding
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
US10582213B2 (en) 2013-10-14 2020-03-03 Microsoft Technology Licensing, Llc Features of intra block copy prediction mode for video and image coding and decoding
US10659783B2 (en) 2015-06-09 2020-05-19 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
US10785486B2 (en) 2014-06-19 2020-09-22 Microsoft Technology Licensing, Llc Unified intra block copy and inter prediction modes
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction
US11109036B2 (en) 2013-10-14 2021-08-31 Microsoft Technology Licensing, Llc Encoder-side options for intra block copy prediction mode for video and image coding
US11259020B2 (en) 2013-04-05 2022-02-22 Qualcomm Incorporated Determining palettes in palette-based video coding
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
ЯНЕ Б. Цифровая обработка изображений. - М.: Техносфера, 2007. *

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2510079C2 (en) * 2011-02-25 2014-03-20 Сони Корпорейшн Method of compressing digital images using fixed number of bits per block
RU2488960C2 (en) * 2011-06-17 2013-07-27 Государственное образовательное учреждение высшего профессионального образования Самарский государственный технический университет Method for data compression-decompression and device for its realisation
RU2567988C2 (en) * 2012-10-22 2015-11-10 Гурулоджик Микросистемс Ой Encoder, method of encoding data, decoder, method of decoding data, system for transmitting data, method of transmitting data and programme product
RU2530300C1 (en) * 2013-02-21 2014-10-10 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Тамбовский государственный технический университет" ФГБОУ ВПО ТГТУ Method of improving quality of structural image of biological object in optical coherence tomography
US11259020B2 (en) 2013-04-05 2022-02-22 Qualcomm Incorporated Determining palettes in palette-based video coding
RU2665308C2 (en) * 2013-04-05 2018-08-28 Сони Корпорейшн Image processing apparatus and image processing method
GB2516022A (en) * 2013-07-05 2015-01-14 Canon Kk Method, device, and computer program for processing high bit-depth content in video encoder and decoder
GB2516021A (en) * 2013-07-05 2015-01-14 Canon Kk Method, device, and computer program for pre-encoding and post-decoding high bit-depth content in video encoder and decoder
RU2641252C2 (en) * 2013-07-12 2018-01-16 Квэлкомм Инкорпорейтед Palettized prediction at encoding video based on palettes
US10506254B2 (en) 2013-10-14 2019-12-10 Microsoft Technology Licensing, Llc Features of base color index map mode for video and image coding and decoding
US11109036B2 (en) 2013-10-14 2021-08-31 Microsoft Technology Licensing, Llc Encoder-side options for intra block copy prediction mode for video and image coding
US10582213B2 (en) 2013-10-14 2020-03-03 Microsoft Technology Licensing, Llc Features of intra block copy prediction mode for video and image coding and decoding
RU2645358C2 (en) * 2013-12-10 2018-02-21 Кэнон Кабусики Кайся Method and device for coding or decoding pixel units
RU2689189C2 (en) * 2013-12-10 2019-05-24 Кэнон Кабусики Кайся Method and apparatus for encoding or decoding a pixel unit
US10834412B2 (en) 2013-12-10 2020-11-10 Canon Kabushiki Kaisha Method and apparatus for encoding or decoding blocks of pixel
US10419774B2 (en) 2013-12-10 2019-09-17 Canon Kabushiki Kaisha Palette mode in HEVC
US10390034B2 (en) 2014-01-03 2019-08-20 Microsoft Technology Licensing, Llc Innovations in block vector prediction and estimation of reconstructed sample values within an overlap area
US10469863B2 (en) 2014-01-03 2019-11-05 Microsoft Technology Licensing, Llc Block vector prediction in video and image coding/decoding
US11284103B2 (en) 2014-01-17 2022-03-22 Microsoft Technology Licensing, Llc Intra block copy prediction with asymmetric partitions and encoder-side search patterns, search ranges and approaches to partitioning
US10542274B2 (en) 2014-02-21 2020-01-21 Microsoft Technology Licensing, Llc Dictionary encoding and decoding of screen content
US10368091B2 (en) 2014-03-04 2019-07-30 Microsoft Technology Licensing, Llc Block flipping and skip mode in intra block copy prediction
RU2668723C2 (en) * 2014-03-17 2018-10-02 Нокиа Текнолоджиз Ой Method and equipment for coding and decoding video signals
RU2678490C2 (en) * 2014-03-26 2019-01-29 Квэлкомм Инкорпорейтед Determining palette size, palette entries and filtering of palette coded blocks in video coding
US10785486B2 (en) 2014-06-19 2020-09-22 Microsoft Technology Licensing, Llc Unified intra block copy and inter prediction modes
RU2679201C2 (en) * 2014-09-30 2019-02-06 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US10812817B2 (en) 2014-09-30 2020-10-20 Microsoft Technology Licensing, Llc Rules for intra-picture prediction modes when wavefront parallel processing is enabled
US10491907B2 (en) 2014-10-06 2019-11-26 Canon Kabushiki Kaisha Encoding process using a palette mode
RU2684202C2 (en) * 2014-10-06 2019-04-04 Кэнон Кабусики Кайся Improved encoding process using palette mode
US10277894B2 (en) 2015-01-29 2019-04-30 Canon Kabushiki Kaisha Palette predictor initializer when encoding or decoding self-contained coding structures
RU2686559C2 (en) * 2015-01-29 2019-04-29 Кэнон Кабусики Кайся Performing indicator for paletraising during encoding or decoding of independent codorated structures
RU2607415C2 (en) * 2015-04-21 2017-01-10 Федеральное государственное казенное военное образовательное учреждение высшего образования "Академия Федеральной службы охраны Российской Федерации" (Академия ФСО России) Method of identifying multimedia data stream frames basing on correlation analysis of frame images histograms
US10659783B2 (en) 2015-06-09 2020-05-19 Microsoft Technology Licensing, Llc Robust encoding/decoding of escape-coded pixels in palette mode
US10986349B2 (en) 2017-12-29 2021-04-20 Microsoft Technology Licensing, Llc Constraints on locations of reference blocks for intra block copy prediction

Also Published As

Publication number Publication date
RU2009110512A (en) 2010-09-27

Similar Documents

Publication Publication Date Title
RU2420021C2 (en) Method to compress images and video sequences
CN110710217B (en) Method and apparatus for coding last significant coefficient flag
JP4927888B2 (en) Lossless intraframe coding using Golomb-Rice
KR100944282B1 (en) Dct compression using golomb-rice coding
US10735767B2 (en) Transform coefficient coding using level maps
US8285062B2 (en) Method for improving the performance of embedded graphics coding
US8634668B2 (en) Method of compression of digital images using a fixed number of bits per block
US20090097768A1 (en) Method and apparatus for encoding image by exponential golomb binarization using optimal threshold, and method and apparatus for decoding image by exponential golomb binarization using optimal threshold
EP2131594A1 (en) Method and device for image compression
KR101357388B1 (en) Embedded graphics coding: reordered bitstream for parallel decoding
EP0754329B1 (en) Vector transform coder with multi-layered codebooks and dynamic bit allocation
JP2003188733A (en) Encoding method and arrangement
Kabir et al. Edge-based transformation and entropy coding for lossless image compression
US20050123167A1 (en) Method and system for watermarking an electronically depicted image
Li et al. A high performance image compression technique for multimedia applications
Nazar et al. Implementation of JPEG-LS compression algorithm for real time applications
EP3673653B1 (en) Embedding information about token tree traversal
US20190089955A1 (en) Image encoding method, and image encoder and image decoder using same
US20220078464A1 (en) Method for concealing data in an image or a video stream inside a compression chain
Kale et al. Visually improved image compression by combining EZW encoding with texture modeling using Huffman Encoder
Gupta et al. Lossless compression based Kmp technique
Kang et al. An error resilient coding scheme for JPEG image transmission based on data embedding and side-match vector quantization
KR100501815B1 (en) Layered DCT coding method using bit plain
Esmaeilbeig et al. Compressed video watermarking for authentication and reconstruction of the audio part
Chang et al. An Indicator Elimination Method for Side-match Vector Quantization.

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20190325