RU2487489C2 - Method of searching for displacement vectors in dynamic images - Google Patents
Method of searching for displacement vectors in dynamic images Download PDFInfo
- 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
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
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
где 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
Таким образом, модуль поиска векторов перемещений 5, рассматриваемый подробно в данном изобретении, работает со следующими входными данными: очередной видеокадр со входа 1, опорный видеокадр от декодирующего модуля 4 и данными об эффективности сжатия различных векторов от модуля сжатия векторов перемещений 7. Модуль поиска векторов перемещений работает в соответствии с алгоритмом, показанным на фиг.2. При этом реализуются все приемы, описываемые в данном изобретении. Однако возможна также реализация предлагаемого способа частично, путем опускания отдельных шагов алгоритма.Thus, the motion
Для поиска векторов перемещений последовательно проводятся следующие действия. Очередной видеокадр поступает на вход модуля поиска векторов перемещений 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
Одним из возможных вариантов работы системы сжатия является отключение более поздних блоков обработки и использование не вычисленных, а прогнозных векторов перемещения. Например, могут быть отключены блоки 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
Описанная дополнительная проверка пропущенных вариантов векторов перемещения и представляет собой вторую ступень двухступенчатой схемы поиска вектора перемещения.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 пикселей с центром в обрабатываемом блоке. Перемещаемые пиксели интерполируются с пикселями других перемещенных блоков путем использования весовой функции окна. В качестве весовой функции окна может быть выбрана, например, функция
Использование настоящего изобретения имеет смысл в системах видеосжатия как на основе дискретных косинусных преобразований, так и на основе дискретных вейвлет преобразований. Для сжатия векторов перемещений может использоваться любой энтропийный кодек, позволяющий оценивать размер сжатого символа до его кодирования, например, арифметический кодек.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)
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)
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)
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 |
-
2011
- 2011-10-18 RU RU2011141947/07A patent/RU2487489C2/en not_active IP Right Cessation
Patent Citations (5)
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)
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)
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 |