RU2487489C2 - Method of searching for displacement vectors in dynamic images - Google Patents

Method of searching for displacement vectors in dynamic images Download PDF

Info

Publication number
RU2487489C2
RU2487489C2 RU2011141947/07A RU2011141947A RU2487489C2 RU 2487489 C2 RU2487489 C2 RU 2487489C2 RU 2011141947/07 A RU2011141947/07 A RU 2011141947/07A RU 2011141947 A RU2011141947 A RU 2011141947A RU 2487489 C2 RU2487489 C2 RU 2487489C2
Authority
RU
Russia
Prior art keywords
vectors
displacement
layer
search
vector
Prior art date
Application number
RU2011141947/07A
Other languages
Russian (ru)
Other versions
RU2011141947A (en
Inventor
Сергей Владимирович Умняшкин
Александр Евгеньевич Табориский
Андрей Александрович Александров
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 RU2011141947/07A priority Critical patent/RU2487489C2/en
Publication of RU2011141947A publication Critical patent/RU2011141947A/en
Application granted granted Critical
Publication of RU2487489C2 publication Critical patent/RU2487489C2/en

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: displacement vectors are searched for by searching for global displacement, breaking up the image into multiple layers of blocks, successive processing of the layers using various search schemes, using displacement vector prediction, as well as selecting displacement vectors based on efficiency of their further entropy coding.
EFFECT: quality improvement of efficiency of a video compressing system, especially at low bit losses, high output thereof.
2 cl, 8 dwg

Description

Настоящее изобретение относится к области видеокомпрессии, в частности к области поиска векторов перемещений блоков изображения и способу кодирования векторов перемещений. Изобретение может найти применение при разработке цифровых кодирующих устройств для видеотелефонии, видеоконференцсвязи, записи и передачи видеосигнала на портативных устройствах связи и других областях, требующих сжатия видеосигнала в реальном времени. Вместе с тем, изобретение обеспечивает адаптивную степень сжатия видеоданных, принимая во внимание ширину канала передачи данных.The present invention relates to the field of video compression, in particular to the field of searching motion vectors of image blocks and a method for encoding motion vectors. The invention may find application in the development of digital encoding devices for video telephony, video conferencing, recording and transmitting video signals on portable communication devices and other areas requiring real-time video compression. However, the invention provides an adaptive compression ratio of video data, taking into account the width of the data channel.

Для многих технологий видеосжатия поиск векторов перемещения является ключевой технологией [1]. В классической реализации поиска векторов перемещения используется следующее: на вход процедуры поиска векторов перемещений поступают два кадра видеопоследовательности: предыдущий декодированный кадр и текущий кодируемый кадр. Каждый кадр представляет собой двумерный массив чисел, являющихся величиной яркости пикселей изображения. Кодируемый кадр разбивается на квадратные группы пикселей фиксированного размера - блоки. В современных системах видеокодирования принят размер блока, равный 8×8 или 16×16 пикселей. Для каждого блока кодируемого кадра по определенному алгоритму находится участок предыдущего декодированного кадра, который хорошо приближает обрабатываемый блок.For many video compression technologies, the search for displacement vectors is a key technology [1]. In the classical implementation of the search for motion vectors, the following is used: two frames of a video sequence are received at the input of the search procedure for motion vectors: the previous decoded frame and the current encoded frame. Each frame is a two-dimensional array of numbers, which are the magnitude of the brightness of the image pixels. The encoded frame is divided into square groups of pixels of a fixed size - blocks. In modern video coding systems, a block size of 8 × 8 or 16 × 16 pixels is adopted. For each block of the encoded frame, according to a certain algorithm, there is a section of the previous decoded frame that approximates the processed block well.

Результатом является вектор перемещения, характеризующий относительное положение обрабатываемого блока пикселей и найденного участка предыдущего кадра.The result is a displacement vector characterizing the relative position of the processed block of pixels and the found portion of the previous frame.

Чтобы проверить, насколько хорошо участок приближает обрабатываемый блок, вычисляется сумма абсолютных разностей величин яркости пикселейTo check how well the plot approximates the block being processed, the sum of the absolute differences of the pixel brightness values is calculated

D ( V x , V y ) = y = 1 S x = 1 S | F ( x , y ) F ' ( x V x , y V y ) | , ( 1 )

Figure 00000001
D ( V x , V y ) = y = one S x = one S | F ( x , y ) - F '' ( x - V x , y - V y ) | , ( one )
Figure 00000001

где S - размер блока, F(x, y) - величина яркости пикселя с координатами (х, y) кодируемого кадра, F'(x, y) - величина яркости пикселя предыдущего декодированного кадра, V=(Vx, Vy) - проверяемый вектор перемещения.where S is the block size, F (x, y) is the pixel brightness with the coordinates (x, y) of the encoded frame, F '(x, y) is the pixel brightness of the previous decoded frame, V = (V x , V y ) - the checked displacement vector.

Такая операция является вычислительно сложной и в целях увеличения быстродействия должна быть выполнена как можно меньшее количество раз. Наиболее точный результат будет получен, если все возможные участки пикселей будут проверены. На практике такой подход невозможен в силу своей вычислительной сложности, поэтому проверяется только часть участков. Для этого может быть использовано ограничение максимальной длины вектора перемещения, иерархический и итеративный подходы, зональный поиск и другие методы. Отметим, что подход на основе полного перебора остается эталоном эффективности сжатия, с которым сравниваются другие подходы.Such an operation is computationally complex and should be performed as few times as possible in order to increase performance. The most accurate result will be obtained if all possible pixel sections are checked. In practice, this approach is impossible due to its computational complexity, therefore, only part of the sites are checked. For this, a restriction on the maximum length of the displacement vector, hierarchical and iterative approaches, zone search, and other methods can be used. Note that the exhaustive search approach remains the benchmark for compression efficiency with which other approaches are compared.

Наиболее близкой к настоящему изобретению является оценка движения на основе быстрого поиска прогнозируемого движения, когда для вычисления вектора перемещения предлагается получить множество параметров прогнозирования вектора движения [2]. При этом параметры прогнозирования вектора движения представляют приближения возможных векторов движения для текущего блока, определяют схему поиска вектора движения и осуществляют поиск вокруг каждого параметра прогнозирования вектора движения из множества параметров прогнозирования вектора движения с использованием схемы поиска, по результату которого определяют окончательный вектор движения. Таким образом, при таком поиске используется несколько прогнозов для текущего вектора перемещения, поиск глобального перемещения, выбор схемы поиска и иерархический поиск векторов.Closest to the present invention is the motion estimation based on a quick search for the predicted motion, when it is proposed to obtain a set of motion vector prediction parameters to calculate the displacement vector [2]. In this case, the motion vector prediction parameters represent approximations of possible motion vectors for the current block, determine the motion vector search scheme, and search around each motion vector prediction parameter from the set of motion vector prediction parameters using the search circuit, the result of which determines the final motion vector. Thus, in such a search, several forecasts are used for the current displacement vector, global displacement search, selection of the search scheme and hierarchical search of vectors.

Задача, решаемая данным изобретением, - качественное увеличение эффективности работы системы видеосжатия, особенно при низких битовых затратах, а также повышение ее производительности по сравнению с [2].The problem solved by this invention is a qualitative increase in the efficiency of the video compression system, especially at low bit costs, as well as an increase in its performance compared to [2].

В настоящем изобретении предлагается способ поиска векторов перемещений в динамических изображениях, включающий преобразование последовательности кадров в цифровую форму, запоминание дискретных отсчетов яркости текущего и опорного кадров, разбиение текущего кадра на макроблоки и поиск вектора движения для каждого из макроблоков текущего кадра относительно предыдущего кадра посредством минимизации по рассматриваемому множеству векторов движения контрольной суммы данного макроблока, которая является суммой норм попиксельной разности уровней в текущем и опорном кадре, а также использование векторов перемещений, полученных ранее, для построения прогноза последующих векторов перемещений, учет эффективности сжатия вектора перемещения для макроблока при его выборе путем добавления к контрольной сумме данного макроблока количества бит на сжатие данного вектора, помноженного на фиксированный коэффициент.The present invention provides a method for searching motion vectors in dynamic images, including converting a sequence of frames into digital form, storing discrete samples of brightness of the current and reference frames, dividing the current frame into macroblocks, and searching for a motion vector for each of the macroblocks of the current frame relative to the previous frame by minimizing the set of motion vectors of the checksum of the given macroblock, which is the sum of the norms of the pixel-by-pixel different between the levels in the current and reference frame, as well as using the displacement vectors obtained earlier to forecast the subsequent displacement vectors, taking into account the compression efficiency of the displacement vector for the macroblock when it is selected by adding to the checksum of this macroblock the number of bits per compression of this vector multiplied by fixed ratio.

В настоящем изобретении проводится распределение всех макроблоков по трем слоям, обрабатываемым поочередно. При этом векторы перемещений более поздних слоев выбираются из меньшей зоны, окружающей прогнозный вектор. Перед обработкой макроблоков первого слоя проводится поиск глобального перемещения путем покоординатной медианной фильтрации прореженных векторов макроблоков первого слоя. Оно используется далее в качестве прогноза для векторов других макроблоков первого слоя. Для поиска векторов макроблоков первого и второго слоев используется схема поиска, в которой степень прореживания проверяемых векторов увеличивается по мере удаления от прогнозного вектора. Также для первого и второго слоев используется двухступенчатая схема поиска, первая ступень которой представляет собой поиск по шаблону слоя, а вторая - дополнительную проверку пропущенных на первом шаге окружающих возможных значений, не вошедших в шаблон слоя.In the present invention, all macroblocks are distributed over three layers processed alternately. Moreover, the displacement vectors of the later layers are selected from the smaller zone surrounding the forecast vector. Before processing the macroblocks of the first layer, a global displacement is searched by coordinatewise median filtering of the thinned out macroblock vectors of the first layer. It is further used as a forecast for vectors of other macroblocks of the first layer. To search for macroblock vectors of the first and second layers, a search scheme is used in which the degree of thinning of the vectors being tested increases with distance from the predicted vector. Also, for the first and second layers, a two-stage search scheme is used, the first step of which is a search by the layer template, and the second is an additional check of the surrounding possible values that were not included in the layer template that were missing at the first step.

Вместе с тем в отличие от [2] настоящее изобретение позволяет использовать найденные при поиске глобального перемещения векторы как векторы перемещений для части макроблоков первого слоя без повторной обработки. Также осуществляется использование прогноза вектора перемещения, полученного при обработке предыдущих слоев блоков, для поиска векторов перемещений в последующих слоях блоков. Помимо этого настоящее изобретение позволяет использовать дробнопиксельное уточнение после нахождения целочисленного прогноза вектора и осуществлять досрочное прекращение передачи данных после обработки очередного слоя макроблоков.However, unlike [2], the present invention allows the use of vectors found in the search for global displacement as displacement vectors for part of the macroblocks of the first layer without reprocessing. Also used is the prediction of the displacement vector obtained by processing previous layers of blocks to search for displacement vectors in subsequent layers of blocks. In addition, the present invention allows the use of fractional pixel refinement after finding an integer vector prediction and early termination of data transfer after processing another layer of macroblocks.

В видеокодеке на основе заявленного способа временная избыточность между кадрами устраняется путем применения блочной компенсации движения в пространственной области. Ее суть состоит в том, что по предыдущему (опорному) кадру строится прогноз для текущего (обрабатываемого) кадра. Для этого опорный кадр разбивается на квадратные блоки 8×8 пикселей, которые затем перемещаются так, чтобы полученный прогнозный кадр был наиболее близок к обрабатываемому в некоторой метрике. Прогнозный кадр полностью определяется предыдущим кадром и рассчитанным набором векторов движения блоков. При построении прогнозного изображения для устранения блочных искажений используется блочная компенсация движения с перекрытием. Разностное изображение, полученное путем вычитания прогнозного кадра из обрабатываемого, подвергается непосредственному кодированию с помощью алгоритма сжатия статических изображений. Набор векторов движения блоков кодируется отдельно.In a video codec based on the claimed method, temporary redundancy between frames is eliminated by applying block motion compensation in the spatial domain. Its essence lies in the fact that the forecast for the current (processed) frame is constructed from the previous (reference) frame. To do this, the reference frame is divided into square blocks of 8 × 8 pixels, which are then moved so that the resulting forecast frame is closest to the processed in some metric. The forecast frame is completely determined by the previous frame and the calculated set of block motion vectors. When constructing a forecast image, block compensation of movement with overlap is used to eliminate block distortions. The differential image obtained by subtracting the predicted frame from the processed one is subjected to direct encoding using the compression algorithm for static images. A set of block motion vectors is encoded separately.

Используемая в видеокодеке блочная компенсация движения на основе заявленного способа позволяет генерировать вложенный битовый код, состоящий из нескольких групп блоков-слоев. Каждый следующий слой является уточнением предыдущего и позволяет уменьшить ошибку предсказания при построении прогнозного кадра. Количество слоев, являющееся оптимальным для текущего кадра при использовании заданной полосы пропускания, определяется непосредственно во время кодирования.The block motion compensation used in the video codec based on the claimed method allows generating an embedded bit code consisting of several groups of block layers. Each next layer is a refinement of the previous one and allows to reduce the prediction error when constructing a forecast frame. The number of layers, which is optimal for the current frame when using a given bandwidth, is determined directly during encoding.

Улучшением предлагаемого изобретения является использование дробнопиксельного уточнения векторов перемещений. В этом случае после нахождения целочисленного вектора перемещения проверяются прилегающие полупиксельные, а затем четвертьпиксельные векторы перемещений. В случае более точного совпадения восстановленного и разностного изображения именно эти векторы передаются в выходной поток.An improvement of the invention is the use of fractional pixel refinement of displacement vectors. In this case, after finding the integer displacement vector, the adjacent half-pixel and then quarter-pixel displacement vectors are checked. In the case of a more exact match between the reconstructed and the difference image, it is these vectors that are transmitted to the output stream.

Общая схема способа видеокодирования приведена на фиг.1, где 1 - вход схемы сжатия, 2 - модуль сжатия изображений, 3 - мультиплексор потоков данных, 4 - модуль декодирования изображений, 5 - модуль поиска векторов перемещений, 6 - модуль вычисления разностного изображения, 7 - модуль сжатия векторов перемещений, 8 - выход схемы сжатия. На фиг.2 указана схема модуля поиска векторов перемещений, где 10 - вход модуля поиска векторов перемещений, 11 - модуль общей обработки входного кадра, 12 - модуль поиска глобального перемещения, 13 - выход модуля поиска векторов перемещений, 14 - модуль обработки блоков первого слоя, 15 - модуль обработки блоков второго слоя, 16 - модуль обработки блоков третьего слоя. На фиг.3 отражено разбиение опорного изображения на слои и распределение блоков изображения по слоям. На фиг.4 в зависимости от номера слоя показано расположение блоков, чьи векторы движения участвуют в построении прогноза вектора перемещения обрабатываемого блока. На фиг.5, 6, 7 указаны схемы поиска векторов перемещения для первого, второго и третьего слоев соответственно. На фиг.8 приведен пример весовой функции окна, применяемой при использовании блочной компенсации движения с перекрытием.The general scheme of the video coding method is shown in FIG. 1, where 1 is the input to the compression scheme, 2 is the image compression module, 3 is the data stream multiplexer, 4 is the image decoding module, 5 is the motion vector search module, 6 is the difference image calculation module, 7 - compression module of displacement vectors, 8 - output of the compression scheme. Figure 2 shows the diagram of the displacement vector search module, where 10 is the input of the displacement vector search module, 11 is the input processing general processing module, 12 is the global displacement search module, 13 is the output of the displacement vector search module, 14 is the block processing module of the first layer , 15 - block processing module of the second layer, 16 - block processing module of the third layer. Figure 3 shows the partitioning of the reference image into layers and the distribution of image blocks in layers. Figure 4, depending on the number of the layer shows the location of the blocks, whose motion vectors are involved in the construction of the forecast of the displacement vector of the processed block. Figure 5, 6, 7 shows the search scheme of the displacement vectors for the first, second and third layers, respectively. On Fig shows an example of the weight function of the window, used when using block motion compensation with overlap.

Способ поиска векторов перемещения осуществляется следующим образом. Видеокадр, для которого не нужно проводить поиск векторов перемещений (например, самый первый кадр видеопоследовательности), поступает на вход схемы сжатия 1, и далее на модуль сжатия изображений 2. Сжатое изображение поступает в мультиплексор 3 для формирования выходного потока сжатых данных, а также на декодирующий модуль 4 для получения опорного кадра. Очередной видеокадр, для которого необходимо провести поиск векторов перемещений, поступает на вход схемы сжатия 1 и оттуда на модуль поиска векторов перемещений 5, а также на модуль вычисления разностного изображения 6. На модули 5 и 6 также поступает опорный кадр, полученный от декодирующего модуля 4. Модуль поиска векторов перемещений 5 запрашивает у модуля сжатия векторов перемещений 7 статистику сжатия, необходимую ему для более точного выбора векторов перемещения. Найденные векторы перемещения поступают в модуль сжатия векторов перемещений 7 и далее в сжатом в виде в мультиплексор 3. Кроме того, найденные векторы перемещений вместе с опорным кадром поступают в модуль вычисления разностного изображения 6. Полученное разностное изображение поступает в модуль сжатия изображений 2. Сжатое разностное изображение вместе с закодированными векторами перемещений поступают в декодирующий модуль 4 для получения нового опорного кадра. Выходной поток сжатых данных выводится на выход схемы сжатия 8.The method of searching for motion vectors is as follows. A video frame for which it is not necessary to search for displacement vectors (for example, the very first frame of a video sequence) is input to compression circuit 1, and then to image compression module 2. The compressed image is sent to multiplexer 3 to form the output stream of compressed data, as well as decoding module 4 to obtain a reference frame. The next video frame, for which it is necessary to search for displacement vectors, is fed to the input of the compression circuit 1 and from there to the displacement vector search module 5, as well as to the differential image computation module 6. The reference frame received from decoding module 4 also arrives at modules 5 and 6 The displacement vector search module 5 asks the displacement vector compression module 7 for compression statistics necessary for it to more accurately select displacement vectors. The found displacement vectors are supplied to the displacement vector compression module 7 and then compressed in the form to the multiplexer 3. In addition, the displacement vectors found, together with the reference frame, are sent to the differential image calculation module 6. The resulting differential image is sent to the image compression module 2. The compressed differential the image, together with the encoded motion vectors, enter the decoding module 4 to obtain a new reference frame. The output stream of compressed data is output to the output of compression scheme 8.

Таким образом, модуль поиска векторов перемещений 5, рассматриваемый подробно в данном изобретении, работает со следующими входными данными: очередной видеокадр со входа 1, опорный видеокадр от декодирующего модуля 4 и данными об эффективности сжатия различных векторов от модуля сжатия векторов перемещений 7. Модуль поиска векторов перемещений работает в соответствии с алгоритмом, показанным на фиг.2. При этом реализуются все приемы, описываемые в данном изобретении. Однако возможна также реализация предлагаемого способа частично, путем опускания отдельных шагов алгоритма.Thus, the motion vector search module 5, considered in detail in this invention, works with the following input data: the next video frame from input 1, the reference video frame from the decoding module 4, and data on the compression efficiency of various vectors from the motion vector compression module 7. Vector search module displacement works in accordance with the algorithm shown in figure 2. In this case, all the techniques described in this invention are implemented. However, it is also possible to implement the proposed method partially, by omitting the individual steps of the algorithm.

Для поиска векторов перемещений последовательно проводятся следующие действия. Очередной видеокадр поступает на вход модуля поиска векторов перемещений 10 и далее в модуль общей обработки 11, где разбивается на блоки фиксированного размера 8×8 пикселей, которые классифицируются по слоям в соответствии со схемой, показанной на фиг.3. Таким образом, на первом слое оказывается лишь четверть всех блоков, еще четверть оказывается на втором слое. Оставшаяся половина относится к третьему слою. Из блоков первого слоя путем прореживания в 4 раза отбирается часть блоков и отдается модулю поиска глобального перемещения 12. Результатом работы модуля поиска глобального перемещения является единственный вектор глобального перемещения, который отправляется на выход 13 модуля поиска векторов, а также на модуль обработки блоков первого слоя 14, где используется в качестве прогноза. Каждый прогнозный вектор задает положение центра шаблона поиска вектора движения обрабатываемого блока. Также для повышения производительности все найденные векторы перемещений передаются в модуль 14, чтобы сократить количество операций поиска. Далее на модуль обработки блоков первого слоя 14 поступают поочередно блоки этого слоя. Результатом работы является вектор перемещения для каждого из поступающих блоков. Полученные векторы перемещений для блоков первого слоя поступают на выход модуля 13, а также на модули обработки блоков второго слоя (15) и третьего слоя (16), где используются для построения прогноза. После этого блоки второго слоя поступают на модуль обработки блоков второго слоя 15. Результирующие векторы перемещений блоков второго слоя поступают на выход модуля 13, а также на модуль обработки блоков третьего слоя 16, где используются для построения прогноза. На заключительном этапе поиска векторов перемещений блоки третьего слоя поступают на модуль обработки блоков третьего слоя 16, результатом работы которого являются векторы перемещений, которые отправляются на выход модуля 13. Кроме того, необходимо отметить, что во все четыре модуля обработки 12, 14, 15 и 16 поступает опорный кадр, а в модули обработки 14, 15 и 16 поступает информация об эффективности сжатия отдельных векторов перемещений.To search for displacement vectors, the following actions are performed sequentially. The next video frame is input to the displacement vector search module 10 and then to the general processing module 11, where it is divided into blocks of a fixed size of 8 × 8 pixels, which are classified into layers in accordance with the scheme shown in Fig. 3. Thus, only a quarter of all blocks are on the first layer, another quarter is on the second layer. The remaining half belongs to the third layer. Of the blocks of the first layer, 4 times thinning is taken out of the blocks and given to the global displacement search module 12. The result of the global displacement search module is the only global displacement vector that is sent to the output 13 of the vector search module, as well as to the block processing module of the first layer 14 where used as a forecast. Each forecast vector sets the position of the center of the search pattern of the motion vector of the processed block. Also, to increase productivity, all found displacement vectors are transferred to module 14 to reduce the number of search operations. Next, the block processing module of the first layer 14 receives blocks of this layer in turn. The result of the work is a displacement vector for each of the incoming blocks. The obtained displacement vectors for the blocks of the first layer are sent to the output of module 13, as well as to the processing modules of the blocks of the second layer (15) and the third layer (16), where they are used to make a forecast. After that, the blocks of the second layer are sent to the block processing module of the second layer 15. The resulting displacement vectors of the blocks of the second layer are sent to the output of module 13, as well as to the block processing module of the third layer 16, where they are used to make a forecast. At the final stage of the search for displacement vectors, the blocks of the third layer go to the block processing module of the third layer 16, the result of which are displacement vectors that are sent to the output of module 13. In addition, it should be noted that in all four processing modules 12, 14, 15 and 16, the reference frame arrives, and the processing modules 14, 15, and 16 receive information on the compression efficiency of individual displacement vectors.

Одним из возможных вариантов работы системы сжатия является отключение более поздних блоков обработки и использование не вычисленных, а прогнозных векторов перемещения. Например, могут быть отключены блоки 15 и 16. Это ухудшает качество восстановленного кадра, однако позволяет передавать меньшее количество векторов в выходной поток, что приводит к улучшению характеристик кодека при крайне низких битовых затратах.One of the possible options for the operation of the compression system is to disable later processing units and use not calculated, but predicted displacement vectors. For example, blocks 15 and 16 may be disabled. This degrades the quality of the reconstructed frame, but allows fewer vectors to be transmitted to the output stream, which leads to improved codec performance at extremely low bit costs.

При поиске векторов перемещений степень отклонения компенсированного блока от искомого находится как S(Vx, Vy)=D(Vx, Vy)+λ*R(Vx, Vy), где D(Vx, Vy) - сумма абсолютных разностей (1) (т.е. ошибка, вносимая при перемещении блока), R(Vx, Vy) - количество бит, затрачиваемых на кодирование вектора перемещения (Vx, Vy), λ - варьируемый параметр.When searching for displacement vectors, the degree of deviation of the compensated block from the desired one is found as S (V x , V y ) = D (V x , V y ) + λ * R (V x , V y ), where D (V x , V y ) is the sum of the absolute differences (1) (i.e., the error introduced when moving the block), R (V x , V y ) is the number of bits spent coding the displacement vector (V x , V y ), λ is a variable parameter.

Искомым считается вектор, дающий минимум функции S. Таким образом, для оценки того, насколько хорош выбранный вектор, применяется RD-критерий, использующий информацию об эффективности сжатия получаемых векторов.The vector that gives the minimum of the function S is considered to be sought. Thus, to assess how good the selected vector is, an RD criterion is used that uses information about the compression efficiency of the resulting vectors.

Вектор глобального перемещения рассчитывается по четверти равноудаленно расположенных друг от друга блоков первого слоя. Для каждого из этих блоков ищется его вектор перемещения на основе D-критерия S=D. Результирующий глобальный вектор определяется как покоординатная медианная фильтрация всех полученных векторов движения. Данный вектор является прогнозным вектором для всех блоков первого слоя. Прогнозный вектор перемещения для блоков второго слоя строится путем покоординатной медианной фильтрации четырех ближайших векторов блоков первого слоя. Прогнозный вектор перемещения для блоков третьего слоя строится путем покоординатной медианной фильтрации двух ближайших векторов первого слоя, двух ближайших векторов второго слоя и двух ранее найденных ближайших векторов третьего слоя. Так как прогноз для векторов перемещения блоков, обрабатываемых на более поздних этапах (слоях), оказывается более точным, шаблоны поиска для таких блоков используются меньшего размера, чем на предыдущих слоях. Схема расположения блоков, используемых для построения прогнозных векторов перемещения, показана на фиг.4.The global displacement vector is calculated by a quarter of equally spaced blocks of the first layer. For each of these blocks, its displacement vector is searched for based on the D-criterion S = D. The resulting global vector is defined as the coordinate median filtering of all the resulting motion vectors. This vector is a forecast vector for all blocks of the first layer. The predicted displacement vector for the blocks of the second layer is constructed by coordinate median filtering of the four nearest block vectors of the first layer. The predicted displacement vector for blocks of the third layer is constructed by coordinate median filtering of two nearest vectors of the first layer, two nearest vectors of the second layer and two previously found nearest vectors of the third layer. Since the forecast for the motion vectors of blocks processed at later stages (layers) is more accurate, the search patterns for such blocks are used in a smaller size than in previous layers. An arrangement of blocks used to construct predicted displacement vectors is shown in FIG. 4.

На фиг.5 показан шаблон поиска векторов перемещений для блоков первого слоя. Для наиболее удаленных от центра шаблона векторов перемещения (зона 3) проверяется только каждый четвертый вариант вектора перемещения. Для наилучшего в терминах RD-критерия из найденных векторов дополнительно проверяются пропущенные окружающие 8 вариантов. Для векторов перемещений, находящихся в зоне 2, проверяется уже каждый второй вариант, и для наилучшего вектора производится дополнительная проверка оставшихся пропущенных четырех окружающих. Для наименьших векторов перемещения (зона 1) проверяется каждый из вариантов.Figure 5 shows the pattern of the search for displacement vectors for blocks of the first layer. For the displacement vectors that are farthest from the center of the template (zone 3), only every fourth variant of the displacement vector is checked. For the best in terms of the RD-criterion from the found vectors, the missing 8 options are additionally checked. For the displacement vectors located in zone 2, every second option is checked, and for the best vector, an additional check is made of the remaining missing four surrounding. For the smallest displacement vectors (zone 1), each option is checked.

Описанная дополнительная проверка пропущенных вариантов векторов перемещения и представляет собой вторую ступень двухступенчатой схемы поиска вектора перемещения.The described additional verification of the missed variants of the displacement vectors is the second stage of the two-stage displacement vector search scheme.

Для поиска вектора глобального перемещения используется шаблон поиска векторов для первого слоя, показанный на фиг.4, однако битовые затраты на кодирование вектора при этом не учитываются. Для увеличения быстродействия найденные таким образом векторы перемещений для четверти блоков первого слоя затем не ищутся повторно при последующей обработке (поиске перемещений блоков и кодировании соответствующих векторов) первого слоя.To search for the global displacement vector, the vector search template for the first layer, shown in Fig. 4, is used, however, the bit costs of coding the vector are not taken into account. To increase performance, the displacement vectors found in this way for a quarter of the blocks of the first layer are then not repeatedly searched for in the subsequent processing (searching for the displacements of the blocks and encoding the corresponding vectors) of the first layer.

На фиг.6 показан шаблон поиска векторов для блоков второго слоя. Поиск проводится так же, как и для первого слоя, однако общий размер шаблона поиска меньше. На фиг.7 показан шаблон поиска векторов для блоков третьего слоя. В этой схеме поиска используется перебор 21 вектора наименьшей длины.6 shows a vector search pattern for blocks of the second layer. The search is carried out in the same way as for the first layer, but the overall size of the search template is smaller. 7 shows a vector search pattern for blocks of the third layer. This search scheme uses enumeration 21 of the smallest vector.

Разностное изображение имеет блочную структуру, поскольку является результатом применения алгоритма компенсации движения. На границах блоков перепады яркости соседних пикселей могут достигать существенных значений, что при использовании для последующего кодирования частотных преобразований приводит к высокочастотному «всплеску» коэффициентов преобразования и, как следствие, неэффективному сжатию изображения. Для устранения данного недостатка в предлагаемом изобретении при вычислении разностного кадра используется блочная компенсация движения с перекрытием. Ее применение позволяет сгладить резкие перепады яркости и повысить качество сжатия. Суть метода состоит в том, что после нахождения вектора движения блока 8×8 пикселей с помощью стандартной компенсации движения перемещению подвергается блок 16×16 пикселей с центром в обрабатываемом блоке. Перемещаемые пиксели интерполируются с пикселями других перемещенных блоков путем использования весовой функции окна. В качестве весовой функции окна может быть выбрана, например, функция w ( x , y ) = w x * w y , w u = { 1 / 8 * ( u + 1 / 2 ) , u = 0, , 7 w 15 u , u = 8 15

Figure 00000002
, график которой показан на фиг.8.The differential image has a block structure, since it is the result of applying the motion compensation algorithm. At the boundaries of the blocks, the brightness differences of neighboring pixels can reach significant values, which, when used for subsequent coding of frequency transforms, leads to a high-frequency “surge” of conversion coefficients and, as a result, inefficient image compression. To eliminate this drawback in the present invention, when calculating a difference frame, block compensation of movement with overlap is used. Its application allows you to smooth out sharp changes in brightness and improve compression quality. The essence of the method is that after finding the motion vector of a block of 8 × 8 pixels using standard motion compensation, a 16 × 16 pixel block centered in the block being processed is subjected to movement. Movable pixels are interpolated with the pixels of other moved blocks by using the weight function of the window. As the weight function of the window, for example, the function w ( x , y ) = w x * w y , w u = { one / 8 * ( u + one / 2 ) , u = 0 ... , 7 w fifteen - u , u = 8 ... fifteen
Figure 00000002
, a graph of which is shown in Fig. 8.

Использование настоящего изобретения имеет смысл в системах видеосжатия как на основе дискретных косинусных преобразований, так и на основе дискретных вейвлет преобразований. Для сжатия векторов перемещений может использоваться любой энтропийный кодек, позволяющий оценивать размер сжатого символа до его кодирования, например, арифметический кодек.The use of the present invention makes sense in video compression systems based on both discrete cosine transforms and discrete wavelet transforms. Any entropy codec can be used to compress displacement vectors, which allows one to estimate the size of a compressed symbol before encoding it, for example, an arithmetic codec.

Способ поиска векторов перемещений в динамических изображениях по настоящему изобретению может выполняться как на компьютере общего назначения, так и на программируемом процессоре, компьютере специального назначения, программируемом микроконтроллере на интегральных схемах, специализированных интегральных схемах или на других аппаратных средствах.The method of searching for motion vectors in dynamic images of the present invention can be performed both on a general-purpose computer and on a programmable processor, a special-purpose computer, a programmable microcontroller on integrated circuits, specialized integrated circuits, or other hardware.

Раскрытое изобретение может обеспечить высокую эффективность сжатия при низком уровне вычислительных затрат. При сравнении со стандартным алгоритмом полного перебора возможных векторов перемещений настоящее изобретение достигает приблизительно на 2.1% лучшую эффективность сжатия при том же качестве видеосигнала в терминах соотношения сигнал-шум, при этом в разы превосходя его по скорости работы. Кроме того, сложность алгоритмов настоящего изобретения оказывается аналогичной сложности алгоритмов оценки движения на основе быстрого поиска прогнозируемого движения [2] при более высокой эффективности сжатия. Изобретение может быть использовано в портативных устройствах, где ширина полосы типично ограничена 200-300 кбит/с, а типичный размер видеокадра составляет QCIF или CIF.The disclosed invention can provide high compression efficiency at a low computing cost. Compared with the standard algorithm for exhaustive search of possible motion vectors, the present invention achieves approximately 2.1% better compression efficiency with the same video signal quality in terms of the signal-to-noise ratio, while being several times faster than it. In addition, the complexity of the algorithms of the present invention is similar to the complexity of motion estimation algorithms based on a quick search for predicted motion [2] at a higher compression efficiency. The invention can be used in portable devices where the bandwidth is typically limited to 200-300 kbit / s and a typical video frame size is QCIF or CIF.

Источники информацииInformation sources

1. Ричардсон Я. Видеокодирование. Н.264 и MPEG-4 - стандарты нового поколения // Издательство «Техносфера», 2005 г., 368 с.1. Richardson I. Video coding. H.264 and MPEG-4 - the standards of a new generation // Publishing house "Technosphere", 2005, 368 S.

2. Патент РФ №2323541 - прототип.2. RF patent No. 2323541 - prototype.

Claims (2)

1. Способ поиска векторов перемещений в динамических изображениях, включающий преобразование последовательности кадров в цифровую форму, запоминание дискретных отсчетов яркости текущего и опорного кадров, разбиение текущего кадра на макроблоки и поиск вектора движения для каждого из макроблоков текущего кадра относительно предыдущего кадра посредством минимизации по рассматриваемому множеству векторов движения контрольной суммы данного макроблока, являющейся суммой норм попиксельной разности уровней в текущем и опорном кадре, использование векторов перемещений, полученных ранее, для построения прогноза последующих векторов перемещений, учет эффективности сжатия вектора перемещения для макроблока при его выборе путем добавления к контрольной сумме данного макроблока количества бит на сжатие данного вектора, помноженного на фиксированный коэффициент, отличающийся тем, что проводится распределение всех макроблоков по трем слоям, обрабатываемым поочередно, векторы перемещений более поздних слоев выбираются из меньшей зоны, окружающей прогнозный вектор, перед обработкой макроблоков первого слоя проводится поиск глобального перемещения путем покоординатной медианной фильтрации прореженных векторов макроблоков первого слоя, причем глобальное перемещение используется далее в качестве прогноза для векторов других макроблоков первого слоя, для поиска векторов макроблоков первого и второго слоев используется схема поиска, в которой степень прореживания проверяемых векторов увеличивается по мере удаления от прогнозного вектора, для первого и второго слоев используется двухступенчатая схема поиска, первая ступень которой представляет собой поиск по шаблону слоя, а вторая - дополнительную проверку пропущенных на первом шаге окружающих возможных значений, не вошедших в шаблон слоя, для векторов макроблоков третьего слоя используется одноступенчатая схема поиска, представляющая собой перебор по шаблону слоя.1. A method of searching for motion vectors in dynamic images, including converting a sequence of frames into digital form, storing discrete samples of brightness of the current and reference frames, dividing the current frame into macroblocks, and searching for a motion vector for each of the macroblocks of the current frame relative to the previous frame by minimizing the set under consideration motion vectors of the checksum of a given macroblock, which is the sum of the norms of the pixel-by-pixel level difference in the current and reference frame, using the displacement vectors obtained earlier to forecast the subsequent displacement vectors, taking into account the compression efficiency of the displacement vector for the macroblock when choosing it by adding to the checksum of this macroblock the number of bits to compress this vector, multiplied by a fixed coefficient, characterized in that all macroblocks in three layers processed in turn, the displacement vectors of the later layers are selected from the smaller zone surrounding the forecast vector, before by processing the macroblocks of the first layer, a global displacement is searched by coordinatewise median filtering of thinned vectors of macroblocks of the first layer, and the global displacement is used below as a forecast for vectors of other macroblocks of the first layer, a search scheme is used to search for macroblock vectors of the first and second layers, in which the degree of thinning of the checked of vectors increases with distance from the predicted vector; a two-stage scheme is used for the first and second layers search, the first step of which is a search by a layer template, and the second is an additional check of the surrounding possible values that were not included in the layer template that were missing at the first step, for the macroblock vectors of the third layer, a one-stage search scheme is used, which is enumeration by the layer template. 2. Способ поиска векторов перемещений в динамических изображениях по п.1, отличающийся тем, что найденные при поиске глобального перемещения векторы используются как векторы перемещений для части макроблоков первого слоя без их повторного вычисления по схеме поиска векторов первого слоя. 2. The method of searching for displacement vectors in dynamic images according to claim 1, characterized in that the vectors found in the search for global displacement are used as displacement vectors for a part of the macroblocks of the first layer without their repeated calculation according to the search scheme of vectors of the first layer.
RU2011141947/07A 2011-10-18 2011-10-18 Method of searching for displacement vectors in dynamic images RU2487489C2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2011141947/07A RU2487489C2 (en) 2011-10-18 2011-10-18 Method of searching for displacement vectors in dynamic images

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2011141947/07A RU2487489C2 (en) 2011-10-18 2011-10-18 Method of searching for displacement vectors in dynamic images

Publications (2)

Publication Number Publication Date
RU2011141947A RU2011141947A (en) 2013-05-20
RU2487489C2 true RU2487489C2 (en) 2013-07-10

Family

ID=48788447

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011141947/07A RU2487489C2 (en) 2011-10-18 2011-10-18 Method of searching for displacement vectors in dynamic images

Country Status (1)

Country Link
RU (1) RU2487489C2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2679349C1 (en) * 2014-01-08 2019-02-07 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Video encoding of screen content data
US10587891B2 (en) 2014-01-08 2020-03-10 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US10681356B2 (en) 2014-01-08 2020-06-09 Microsoft Technology Licensing, Llc Selection of motion vector precision
US10701388B2 (en) 2017-04-21 2020-06-30 Zenimax Media Inc. System and methods for game-generated motion vectors
US11991351B2 (en) 2018-03-30 2024-05-21 Vid Scale Inc. Template-based inter prediction techniques based on encoding and decoding latency reduction

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2251820C2 (en) * 1998-02-20 2005-05-10 Томсон Лайсенсинг С.А. Extrapolation of movement vector for video sequence code conversion
US20050163221A1 (en) * 2004-01-14 2005-07-28 Matsushita Electric Industrial Co., Ltd. Motion vector detecting device
RU2323541C2 (en) * 2002-08-06 2008-04-27 Моторола, Инк. Method and device for conducting high quality fast search for predicted movement
RU2335096C1 (en) * 2004-07-21 2008-09-27 Квэлкомм Инкорпорейтед Method and device for assignment of motion vectors
US7580456B2 (en) * 2005-03-01 2009-08-25 Microsoft Corporation Prediction-based directional fractional pixel motion estimation for video coding

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2251820C2 (en) * 1998-02-20 2005-05-10 Томсон Лайсенсинг С.А. Extrapolation of movement vector for video sequence code conversion
RU2323541C2 (en) * 2002-08-06 2008-04-27 Моторола, Инк. Method and device for conducting high quality fast search for predicted movement
US20050163221A1 (en) * 2004-01-14 2005-07-28 Matsushita Electric Industrial Co., Ltd. Motion vector detecting device
RU2335096C1 (en) * 2004-07-21 2008-09-27 Квэлкомм Инкорпорейтед Method and device for assignment of motion vectors
US7580456B2 (en) * 2005-03-01 2009-08-25 Microsoft Corporation Prediction-based directional fractional pixel motion estimation for video coding

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
FANG-HSUAN CHENG et al. Transactions Letters New Fast and Efficient Two-Step Search Algorithm for Block Motion Estimation, IEEE Transactions on Circuits and Systems for Video Technology, v.9, No..7, October 1999. *
M.EZHILARASAN et al. Simplified Block Matching Algorithm for Fast Motion Estimation in Video Compression, Journal of Computer Science, Science Publications, No.4, 2008, c.282-289. *
M.EZHILARASAN et al. Simplified Block Matching Algorithm for Fast Motion Estimation in Video Compression, Journal of Computer Science, Science Publications, №4, 2008, c.282-289. FANG-HSUAN CHENG et al. Transactions Letters New Fast and Efficient Two-Step Search Algorithm for Block Motion Estimation, IEEE Transactions on Circuits and Systems for Video Technology, v.9, №.7, October 1999. *
КОПЛОВИЧ Е.А. и др. Алгоритм видеокомпрессии на основе дискретного вейвлет-преобразования с трехслойной схемой кодирования векторов движения. Известия Высших учебных заведений. Электропика, No.5, 2008. *
КОПЛОВИЧ Е.А. и др. Алгоритм видеокомпрессии на основе дискретного вейвлет-преобразования с трехслойной схемой кодирования векторов движения. Известия Высших учебных заведений. Электропика, №5, 2008. *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2679349C1 (en) * 2014-01-08 2019-02-07 МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи Video encoding of screen content data
US10587891B2 (en) 2014-01-08 2020-03-10 Microsoft Technology Licensing, Llc Representing motion vectors in an encoded bitstream
US10681356B2 (en) 2014-01-08 2020-06-09 Microsoft Technology Licensing, Llc Selection of motion vector precision
US10701388B2 (en) 2017-04-21 2020-06-30 Zenimax Media Inc. System and methods for game-generated motion vectors
RU2735241C1 (en) * 2017-04-21 2020-10-29 Зенимакс Медиа Инк. Systems and methods for motion vectors generated during game
RU2760974C2 (en) * 2017-04-21 2021-12-02 Зенимакс Медиа Инк. Systems and methods for motion vectors generated during the game
US11381835B2 (en) 2017-04-21 2022-07-05 Zenimax Media Inc. Systems and methods for game-generated motion vectors
US11503326B2 (en) 2017-04-21 2022-11-15 Zenimax Media Inc. Systems and methods for game-generated motion vectors
US11991351B2 (en) 2018-03-30 2024-05-21 Vid Scale Inc. Template-based inter prediction techniques based on encoding and decoding latency reduction

Also Published As

Publication number Publication date
RU2011141947A (en) 2013-05-20

Similar Documents

Publication Publication Date Title
JP5785285B2 (en) Dynamic selection of motion prediction search range and extended motion vector range
US8964829B2 (en) Techniques to perform fast motion estimation
US7889933B2 (en) Data compression using matching pursuits
JP3655651B2 (en) Data processing device
US20150172687A1 (en) Multiple-candidate motion estimation with advanced spatial filtering of differential motion vectors
JP2000508127A (en) Video encoder and decoder using motion-based segmentation and merging
CN118055253A (en) Optical flow estimation for motion compensated prediction in video coding
RU2487489C2 (en) Method of searching for displacement vectors in dynamic images
JP2011114572A (en) Image encoding apparatus, image decoding apparatus, image encoding method, and image decoding method
KR100235064B1 (en) Apparatus for coding objects using block based coding technique
KR100212559B1 (en) The contour coding system and motion prediction method for object
KR101192060B1 (en) Method and device for choosing a motion vector for the coding of a set of blocks
Zan et al. New techniques for multi-resolution motion estimation
US11528485B2 (en) Encoding apparatus and program
KR100837722B1 (en) Method for concealment based pocs in multi-layered video coding
TW201406166A (en) Method and device for encoding video
Zheng et al. A new compressed sensing based terminal-to-cloud video transmission system
KR100859073B1 (en) Motion estimation method
Marzougui et al. Preliminary study of block matching algorithms for wavelet-based t+ 2D video coding
Mishra et al. Comparative study of motion estimation techniques in video
KR100440567B1 (en) A method for forming binary plane for motion search and a motion estimating apparatus using the same
KR101356821B1 (en) A motion estimation method
Anandan et al. VIDEO COMPRESSION USING ARPS AND FAST DISCRETE CURVELET TRANSFORM FOR MOBILE DEVICES
JP2000102015A (en) Motion vector detector and motion vector detection method
Banitalebi et al. A perceptual based motion compensation technique for video coding

Legal Events

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

Effective date: 20171019