+

RU2656785C1 - Motion estimation through three-dimensional recursive search (3drs) in real time for frame conversion (frc) - Google Patents

Motion estimation through three-dimensional recursive search (3drs) in real time for frame conversion (frc) Download PDF

Info

Publication number
RU2656785C1
RU2656785C1 RU2017127691A RU2017127691A RU2656785C1 RU 2656785 C1 RU2656785 C1 RU 2656785C1 RU 2017127691 A RU2017127691 A RU 2017127691A RU 2017127691 A RU2017127691 A RU 2017127691A RU 2656785 C1 RU2656785 C1 RU 2656785C1
Authority
RU
Russia
Prior art keywords
block
motion
frame
current
candidate
Prior art date
Application number
RU2017127691A
Other languages
Russian (ru)
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 RU2017127691A priority Critical patent/RU2656785C1/en
Application granted granted Critical
Publication of RU2656785C1 publication Critical patent/RU2656785C1/en
Priority to KR1020180088654A priority patent/KR102496619B1/en
Priority to US16/053,233 priority patent/US10523961B2/en
Priority to EP18840249.9A priority patent/EP3596698B1/en
Priority to PCT/KR2018/008825 priority patent/WO2019027280A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a search
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/223Analysis of motion using block-matching
    • G06T7/238Analysis of motion using block-matching using non-full search, e.g. three-step search
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/521Processing of motion vectors for estimating the reliability of the determined motion vectors or motion vector field, e.g. for smoothing the motion vector field or for correcting motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/587Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal sub-sampling or interpolation, e.g. decimation or subsequent interpolation of pictures in a video sequence

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

FIELD: computer engineering.
SUBSTANCE: invention relates to computer engineering. Method for motion estimation in video data comprising a plurality of frames, which comprises determining that the current unit of the frame, for which the motion estimation must be performed, is a double block, wherein the double block being a set of two neighboring frame blocks for which motion estimation has not yet been performed; and estimating the motion vector for the double block, the motion vector estimation step comprises the stages, at which a set containing spatial, temporal and random candidate vectors corresponding to the current double block is obtained, for each candidate vector the value of the trust function is calculated separately for each block of the pair and candidate vectors with the lowest value of the trust function are selected as the estimated motion vectors for the separate blocks of the current double block; and then the next frame unit is estimated; and a set of candidate vectors corresponding to one block from the current double block is used as a set of candidate vectors corresponding to the current double block.
EFFECT: technical result is frame conversion in real time on a mobile device with an improved combination of power consumption, quality and performance.
14 cl, 17 dwg, 1 tbl

Description

Область техники, к которой относится изобретениеFIELD OF THE INVENTION

Настоящее изобретение относится к обработке видео, и, более конкретно, к оценке движения для целей преобразования частоты кадров видео.The present invention relates to video processing, and more specifically to motion estimation for the purpose of converting a video frame rate.

Уровень техникиState of the art

Оценка движения является важной частью многих алгоритмов, применяемых при кодировании видео, преобразовании частоты кадров (frame rate conversion, FRC) видео и создании структуры из движущегося изображения (structure from motion, SfM). При этом алгоритмы оценки движения сильно зависят от поставленных задач, поэтому не существует единого, универсального алгоритма, который был бы одинаково приемлемым для любых применений. Например, при реализации оценки движения для FRC для воспроизведения видео в мобильных устройствах существуют некоторые особенности и сложности:Motion estimation is an important part of many algorithms used in video encoding, frame rate conversion (FRC) of video and creating a structure from a moving image (SfM). At the same time, motion estimation algorithms are highly dependent on the tasks assigned, therefore there is no single, universal algorithm that would be equally acceptable for any application. For example, when implementing motion estimation for FRC for video playback on mobile devices, there are some features and difficulties:

- ограничения по производительности (работа в реальном времени),- performance limits (real-time operation),

- ограничения по энергопотреблению (чтобы избежать значительного уменьшения продолжительности работы батареи),- power consumption restrictions (to avoid a significant reduction in battery life),

- зашумленное видео,- noisy video

- сложное движение,- complex movement

- артефакты движения,- artifacts of movement,

- «дергающееся» (скачкообразное, не плавное) движение.- “twitching” (spasmodic, not smooth) movement.

В то же время, требования к оценке движения для FRC постоянно повышаются как с целью улучшения производительности, так и с целью удовлетворения возрастающих потребностей пользователей и улучшения восприятия видео. В мобильных устройствах часто используется видеоконтент, имеющий малую частоту кадров - например, в целях сбережения объема памяти, снижения требуемой пропускной способности канала Интернет-трафика или снижения требований к камере. Воспроизведение такого видеоконтента самого по себе, без дополнительной обработки, не всегда является приемлемым для пользователя, потому что может содержать видимые рывки и неплавность движения. Таким образом, для повышения плавности движения в воспроизводимом видео необходимо увеличение частоты кадров. При этом необходимо, чтобы алгоритм FRC удовлетворял следующим требованиям:At the same time, the requirements for motion estimation for FRC are constantly increasing, both in order to improve performance and to meet the increasing needs of users and improve the perception of video. Mobile devices often use video content with a low frame rate - for example, to save memory, reduce the required bandwidth of the Internet traffic channel, or reduce the requirements for the camera. The reproduction of such video content by itself, without additional processing, is not always acceptable for the user, because it may contain visible jerks and smooth movement. Thus, to increase the smoothness of motion in the reproduced video, an increase in the frame rate is necessary. At the same time, the FRC algorithm must satisfy the following requirements:

- устойчивость к шуму,- noise resistance

- высокое быстродействие,- high speed

- приближенность к реальному движению,- proximity to the real movement,

- многопотоковость,- multithreading,

- мобильность,- mobility,

- работа в реальном времени,- work in real time,

- низкое энергопотребление.- low power consumption.

В свете вышеперечисленных сложностей и требований, хорошие результаты для FRC демонстрирует подход трехмерного рекурсивного поиска (3D recursive search, 3DRS), описанный в патенте US 8,009,174 B2 (30.08.2011, Koninklijke Philips Electronics NV), согласно которому оценка движения 3DRS делается с использованием порядка сканирования (104), называемого «меандровым» в силу сходства траектории сканирования блоков кадра с меандром (Фиг. 1). Результаты поиска помещаются в память кольцевого буфера с блоком управления, адаптированным к меандровому порядку сканирования при приеме вектора движения и растровому порядку сканирования (106) при выдаче вектора движения для блока компенсации движения (MC). Кольцевой буфер поддерживает необходимый объем памяти. Однако, данное решение не обеспечивает повышение производительности в широко используемых в настоящее время многоядерных системах.In light of the above difficulties and requirements, good results for FRC are demonstrated by the 3D recursive search (3DRS) approach described in US Pat. scanning (104), called "meander" due to the similarity of the scanning path of the blocks of the frame with the meander (Fig. 1). The search results are stored in the ring buffer memory with a control unit adapted to the meander scan order when receiving the motion vector and the scan raster order (106) when the motion vector is output for the motion compensation unit (MC). The ring buffer supports the required amount of memory. However, this solution does not provide increased performance in the currently widely used multi-core systems.

В несколько более позднем решении, которое описано в патенте US 8,265,160 B2 (11.09.2012, NXP BV), меандровый порядок сканирования 3DRS-поиска разделен на отдельные части для отдельных потоков обработки, таким образом, что вместе эти части образуют меандр (Фиг. 2). Оценка движения (ME) выполняется для каждой из отдельных частей одновременно. Несколько параллельных потоков повышают производительность вычислений при оценке движения в многоядерных системах. Тем не менее, в данном подходе также существует ряд недостатков. Во-первых, тот факт, что направление сканирования блоков в соседних частях является противоположным, влечет за собой нелокальность доступа к памяти, что приводит к снижению производительности. Во-вторых, движение нечетных и четных линий блоков распространяется с разных направлений, что может вызвать «чересстрочный» эффект на границах объектов. В-третьих, лишь в одном потоке (поток ME1 и блок A на Фиг. 2) основой для оценки движения являются блоки, смежные с текущим блоком, тогда как в остальных потоках (потоки ME2-ME4 и блоки B, C, D на Фиг. 2) вместо некоторых смежных блоков для оценки используются блоки, отстоящие от текущего блока на некоторое расстояние, что неизменно приводит к появлению ошибок. В-четвертых, оценка движения в некоторых потоках (потоки ME2-ME4 на Фиг. 2) происходит на основе оценки, уже сделанной в других потоках, откуда следует необходимость строгой синхронизации потоков между собой и невозможность сделать их обработку полностью независимой, из-за чего производительность также снижается.In a slightly later solution, which is described in US Pat. No. 8,265,160 B2 (September 11, 2012, NXP BV), the meander scan order of the 3DRS search is divided into separate parts for individual processing streams, so that together these parts form a meander (Fig. 2 ) Motion estimation (ME) is performed for each of the individual parts at the same time. Several parallel threads increase computational performance when evaluating motion in multi-core systems. However, there are also a number of disadvantages to this approach. Firstly, the fact that the direction of scanning blocks in neighboring parts is opposite, leads to non-local access to memory, which leads to reduced performance. Secondly, the movement of odd and even block lines spreads from different directions, which can cause an “interlaced” effect at the boundaries of objects. Thirdly, in only one stream (stream ME1 and block A in Fig. 2), the basis for evaluating the movement are blocks adjacent to the current block, while in the remaining streams (streams ME2-ME4 and blocks B, C, D in FIG. . 2) instead of some adjacent blocks, blocks that are some distance from the current block are used for evaluation, which invariably leads to errors. Fourthly, motion estimation in some flows (ME2-ME4 flows in Fig. 2) is based on an assessment already made in other flows, which implies the need for strict synchronization of flows among themselves and the inability to make their processing completely independent, which is why performance is also declining.

Существует также решение, описанное в патенте US 6,996,177 B1 (07.02.2006, Koninklijke Philips Electronics NV), которое несколько иначе подходит к решению поставленных задач и в котором 3DRS оценка движения выполняется с использованием поблочной оценки движения (BME) и оценки глобального движения (GME) (Фиг. 3). GME использует статистику векторов движения из BME и выдает вектора-кандидаты глобального движения для BME. Однако в этом решении для оценки глобального движения используется слишком простая статистика (берутся первый и второй наиболее часто используемые векторы движения, полученные с помощью BME), которой недостаточно, чтобы получать качественный результат. Кроме того, в этом решении результат GME применяется ко всему кадру, тогда как часто бывают случаи, когда один или два вектора глобального движения не подходят для разных частей кадра, вследствие чего возникают артефакты во время преобразования частоты кадров, так как полученные поля движения не соответствуют реальным полям движения.There is also a solution described in US Pat. No. 6,996,177 B1 (02/07/2006, Koninklijke Philips Electronics NV), which approaches the objectives in a slightly different way and in which 3DRS motion estimation is performed using block motion estimation (BME) and global motion estimation (GME ) (Fig. 3). The GME uses motion vector statistics from the BME and provides candidate global motion vectors for the BME. However, this solution uses too simple statistics to estimate global movement (the first and second most frequently used motion vectors obtained using BME are taken), which is not enough to obtain a qualitative result. In addition, in this solution, the GME result is applied to the entire frame, while there are often cases when one or two global motion vectors are not suitable for different parts of the frame, as a result of which artifacts occur during the frame rate conversion, since the obtained motion fields do not correspond real fields of motion.

Таким образом, в области 3DRS оценки движения для целей FRC в мобильных устройствах имеются следующие технические проблемы: относительно высокая вычислительная сложность, неэффективная схема доступа к памяти, проблематичное или невозможное распараллеливание, недостаточно детальное обнаружение глобального движения и медленное его распространение.Thus, in the field of 3DRS motion estimation for FRC purposes in mobile devices, there are the following technical problems: relatively high computational complexity, inefficient memory access scheme, problematic or impossible parallelization, insufficiently detailed detection of global motion and its slow propagation.

Сущность изобретенияSUMMARY OF THE INVENTION

С целью устранения или смягчения по меньшей мере некоторых из вышеупомянутых недостатков предшествующего уровня техники, настоящее изобретение направлено на создание способов оценки движения путем трехмерного рекурсивного поиска (3DRS) в реальном времени для преобразования частоты кадров (FRC) и устройств, реализующих эти способы.In order to eliminate or mitigate at least some of the aforementioned disadvantages of the prior art, the present invention is directed to the creation of real-time three-dimensional recursive search (3DRS) motion estimation methods for frame rate conversion (FRC) and devices implementing these methods.

В одном аспекте настоящего изобретения раскрывается способ оценки движения в видеоданных, содержащих множество кадров, содержащий этапы, на которых: определяют, что текущей единицей кадра, для которой должна быть выполнена оценка движения, является двойной блок, причем двойной блок представляет собой набор из двух соседних блоков кадра, для которых оценка движения еще не выполнялась; и оценивают вектор движения для двойного блока, причем этап оценки вектора движения содержит этапы, на которых: получают набор, содержащий пространственные, временные и случайные векторы-кандидаты, соответствующие текущему двойному блоку, вычисляют для каждого вектора-кандидата значение функции доверия отдельно для каждого блока пары, и выбирают в качестве оцененных векторов движения для отдельных блоков текущего двойного блока векторы-кандидаты с наименьшим значением функции доверия; и переходят к следующей единице кадра; причем в качестве набора векторов-кандидатов, соответствующих текущему двойному блоку, используют набор векторов-кандидатов, соответствующий одному блоку из текущего двойного блока.In one aspect of the present invention, there is disclosed a motion estimation method in video data containing a plurality of frames, comprising the steps of: determining that the current unit of the frame for which the motion estimation is to be performed is a double block, the double block being a set of two adjacent frame blocks for which motion estimation has not yet been performed; and evaluating the motion vector for the double block, the step of estimating the motion vector comprises the steps of: obtaining a set containing spatial, temporal and random candidate vectors corresponding to the current double block, calculating the value of the confidence function for each block separately for each block pairs, and candidate vectors with the lowest confidence function value are selected as estimated motion vectors for individual blocks of the current double block; and move on to the next unit of the frame; moreover, as a set of candidate vectors corresponding to the current double block, use a set of candidate vectors corresponding to one block from the current double block.

В одном из вариантов осуществления способ дополнительно содержит этапы, на которых: анализируют значения функции доверия выбранных векторов движения обоих блоков в двойном блоке; принимают решение, требуется ли производить оценку вектора движения другого одиночного блока из пары блоков отдельно, на основе выполненного анализа; если принято решение, что не требуется обрабатывать второй блок текущей единицы отдельно, то назначают лучшие векторы-кандидаты как оцененные векторы движения для блоков текущего двойного блока; и переходят к следующей единице кадра.In one embodiment, the method further comprises the steps of: analyzing the values of the confidence function of the selected motion vectors of both blocks in a double block; decide whether it is required to evaluate the motion vector of another single block from a pair of blocks separately, based on the analysis; if it is decided that it is not necessary to process the second block of the current unit separately, then the best candidate vectors are assigned as estimated motion vectors for blocks of the current double block; and move on to the next unit of the frame.

В одном из вариантов осуществления, если принято решение, что требуется обрабатывать второй блок текущей единицы как отдельный одиночный блок, то лучший вектор-кандидат для первого блока назначают как оцененный вектор движения для первого блока; оценивают вектор движения для другого блока из текущего двойного блока отдельно; и переходят к следующей единице кадра.In one embodiment, if a decision is made that it is necessary to process the second block of the current unit as a separate single block, then the best candidate vector for the first block is assigned as the estimated motion vector for the first block; evaluate the motion vector for another block from the current double block separately; and move on to the next unit of the frame.

В одном из вариантов осуществления оценка вектора движения для упомянутого другого блока из текущего двойного блока содержит этапы, на которых: получают набор, содержащий пространственные, временные и случайные векторы-кандидаты, соответствующие упомянутому другому блоку из текущего двойного блока, вычисляют для каждого вектора-кандидата значение функции доверия, и выбирают в качестве оцененного вектора движения для упомянутого другого блока из текущего двойного блока вектор-кандидат с наименьшим значением функции доверия.In one embodiment, the motion vector estimate for said other block from the current double block comprises the steps of: obtaining a set containing spatial, temporal, and random candidate vectors corresponding to said other block from the current double block, calculating for each candidate vector the value of the confidence function, and the candidate vector with the smallest value of the confidence function is selected as the estimated motion vector for said other block from the current double block.

В одном из вариантов осуществления анализ значений функции доверия содержит этапы, на которых: вычисляют модуль разности между значением функции доверия для упомянутого одного блока из текущего двойного блока и значением функции доверия для другого блока из текущего двойного блока; и сравнивают вычисленный модуль разность с предварительно заданным первым пороговым значением.In one embodiment, the analysis of the values of the confidence function comprises the steps of: calculating a modulus of the difference between the value of the confidence function for said one block from the current double block and the value of the confidence function for another block from the current double block; and comparing the calculated modulus difference with a predetermined first threshold value.

В одном из вариантов осуществления принимают решение, что требуется обрабатывать другой блок текущей единицы отдельно, если вычисленный модуль разность выше или равен первому пороговому значению.In one embodiment, a decision is made that it is necessary to process another block of the current unit separately if the computed module has a difference greater than or equal to the first threshold value.

В одном из вариантов осуществления анализ значений функции доверия содержит этап, на котором: сравнивают значение функции доверия для другого блока из текущего двойного блока с предварительно заданным вторым пороговым значением.In one embodiment, the analysis of the values of the confidence function comprises the step of: comparing the value of the confidence function for another block from the current double block with a predetermined second threshold value.

В одном из вариантов осуществления принимают решение, что требуется обрабатывать другой блок текущей единицы отдельно, если значение функции доверия для другого блока из текущего двойного блока выше или равно второму пороговому значению.In one embodiment, a decision is made that it is necessary to process another block of the current unit separately if the value of the trust function for another block from the current double block is higher or equal to the second threshold value.

В одном из вариантов осуществления выборку временных векторов-кандидатов при оценке поля движения вперед для текущего кадра производят из инвертированного поля движения назад, оцененного для предыдущей пары кадров, выборку временных векторов-кандидатов при оценке поля движения назад для текущего кадра производят из инвертированного проецированного поля движения вперед, оцененного для текущей пары кадров.In one embodiment, the selection of temporary candidate vectors when evaluating the forward motion field for the current frame is made from the inverted backward motion field estimated for the previous pair of frames, the selection of temporary candidate vectors when evaluating the backward motion field for the current frame is made from the inverted projected motion field forward rated for the current pair of frames.

В одном из вариантов осуществления этап проецирования поля движения содержит этапы, на которых: выбирают вектор движения для текущего блока проецируемого поля движения, записывают значение выбранного вектора движения в блок проецированного поля движения, при этом координаты этого блока являются ближайшими к сумме координат текущего блока проецируемого поля движения и выбранного вектора движения.In one embodiment, the motion field projection step comprises the steps of: selecting a motion vector for the current block of the projected motion field, writing the value of the selected motion vector to the block of the projected motion field, while the coordinates of this block are closest to the sum of the coordinates of the current block of the projected field motion and selected motion vector.

В другом аспекте настоящего изобретения раскрывается способ оценки движения в видеоданных, содержащих множество кадров, содержащий этапы, на которых: определяют текущую единицу кадра, для которой должна быть выполнена оценка движения; оценивают вектор движения для текущей единицы кадра, причем этап оценки вектора движения содержит этапы, на которых: получают набор, содержащий пространственные, временные и случайные векторы-кандидаты, соответствующие текущей единице кадра, вычисляют для каждого вектора-кандидата значение функции доверия, и выбирают в качестве оцененных векторов движения для текущей единицы кадра векторы-кандидаты с наименьшим значением функции доверия; и переходят к следующей единице кадра; причем оценку движения выполняют в отношении укрупненных единиц кадра, представляющих собой набор соседних единиц в строке, причем обход укрупненных единиц кадра выполняют по диагонали, начиная с одного из углов кадра, причем оценку движения выполняют одновременно в двух или более потоках обработки, в каждом из которых обрабатывается отдельная укрупненная единица кадра.In another aspect of the present invention, there is disclosed a motion estimation method in video data containing a plurality of frames, comprising the steps of: determining a current unit of a frame for which a motion estimation should be performed; evaluating the motion vector for the current unit of the frame, and the step of evaluating the motion vector contains the stages in which: receive a set containing spatial, temporal and random candidate vectors corresponding to the current unit of the frame, calculate the value of the confidence function for each candidate vector, and select as estimated motion vectors for the current unit of the frame, candidate vectors with the lowest confidence function value; and move on to the next unit of the frame; moreover, the motion estimation is performed in relation to enlarged units of the frame, representing a set of neighboring units in a row, and the bypass of enlarged units of the frame is performed diagonally, starting from one of the corners of the frame, and the motion estimation is performed simultaneously in two or more processing streams, in each of which a single enlarged unit of the frame is processed.

В другом аспекте настоящего изобретения раскрывается способ оценки движения в видеоданных, содержащих множество кадров, содержащий этапы, на которых: анализируют двумерную гистограмму ранее оцененного поля движения; выбирают SGMV-векторы (векторы-кандидаты на основе полуглобального движения) из упомянутой гистограммы; составляют относительно текущего кадра для каждого выбранного SGMV-вектора маску, активную в тех частях кадра, где присутствует движение с выбранным SGMV-вектором; определяют текущую единицу кадра, для которой должна быть выполнена оценка движения; оценивают вектор движения для текущей единицы кадра, причем этап оценки вектора движения содержит этапы, на которых: получают набор векторов-кандидатов, соответствующих текущей единице кадра, вычисляют для каждого вектора-кандидата значение функции доверия, и выбирают в качестве оцененных векторов движения для текущей единицы кадра векторы-кандидаты с наименьшим значением функции доверия; и переходят к следующей единице кадра; причем этап получения набора векторов-кандидатов содержит этапы, на которых: получают пространственные векторы-кандидаты, соответствующие текущей единице кадра, получают временные векторы-кандидаты, соответствующие текущей единице кадра, получают случайные векторы-кандидаты на основе нулевого вектора движения и/или лучшего на данный момент вектора-кандидата, соответствующие текущей единице кадра, и получают случайные SGMV-векторы-кандидаты, соответствующие текущей единице кадра и составленной маске.In another aspect of the present invention, there is disclosed a method for estimating motion in video data containing a plurality of frames, comprising the steps of: analyzing a two-dimensional histogram of a previously estimated motion field; selecting SGMV vectors (candidate vectors based on semi-global motion) from said histogram; relative to the current frame, for each selected SGMV vector, a mask active in those parts of the frame where there is movement with the selected SGMV vector; determine the current unit of the frame for which the motion estimation should be performed; evaluating the motion vector for the current unit of the frame, and the step of evaluating the motion vector contains the steps in which: receive a set of candidate vectors corresponding to the current unit of the frame, calculate the value of the confidence function for each candidate vector, and select the estimated motion vectors for the current unit frame candidate vectors with the lowest value of the confidence function; and move on to the next unit of the frame; moreover, the step of obtaining a set of candidate vectors contains stages in which: spatial candidate vectors corresponding to the current unit of the frame are obtained, temporary candidate vectors corresponding to the current frame unit are obtained, random candidate vectors are obtained based on a zero motion vector and / or better on at this moment, candidate vectors corresponding to the current unit of the frame and random SGMV candidate vectors corresponding to the current unit of the frame and the composed mask are received.

В одном из вариантов осуществления этап получения случайных SGMV-векторов содержит этап, на котором: добавляют в набор векторов-кандидатов для текущей единицы по меньшей мере один случайный вектор-кандидат, полученный путем прибавления случайного смещения к SGMV-вектору, маска которого активна в текущей единице.In one embodiment, the step of obtaining random SGMV vectors comprises the step of: adding at least one random candidate vector to the set of candidate vectors for the current unit, obtained by adding a random offset to the SGMV vector whose mask is active in the current unit.

В одном из вариантов осуществления вычисление функции доверия содержит этапы, на которых: вычисляют MAD (среднюю абсолютную разность) векторов-кандидатов между текущим блоком и блоком, на который указывает вектор-кандидат, вычисляют итоговую штрафную функцию, причем итоговой штрафной функцией является минимальная из штрафных функций для всех SGMV-векторов, причем штрафные функции зависят от расстояния между вектором-кандидатом и рассматриваемым SGMV-вектором, причем штрафная функция является возрастающей функцией, ограниченной сверху, и вычисляют значение функции доверия посредством сложения MAD и значения итоговой штрафной функции.In one embodiment, the calculation of the confidence function comprises the steps of: calculating the MAD (average absolute difference) of the candidate vectors between the current block and the block pointed to by the candidate vector, calculating the final penalty function, and the final penalty function is the minimum of the penalty functions for all SGMV vectors, and the penalty functions depend on the distance between the candidate vector and the SGMV vector under consideration, and the penalty function is an increasing function bounded above, and you calculate the value of the confidence function by adding the MAD and the value of the total penalty function.

Настоящее изобретение обеспечивает программное преобразование частоты кадров в реальном времени на мобильном устройстве, обладающее более эффективным по сравнению с уровнем техники сочетанием энергопотребления, качества и производительности.The present invention provides software for real-time frame rate conversion on a mobile device, which has a more efficient combination of power consumption, quality and performance compared to the prior art.

Повышение эффективности достигается за счет трех ключевых факторов:Improving efficiency is achieved through three key factors:

1) выполнение обработки двойными блоками, то есть сразу по два блока, что позволяет уменьшить вычислительную сложность 3DRS и улучшить шаблон доступа к памяти,1) the processing is carried out in double blocks, that is, two blocks at once, which reduces the computational complexity of 3DRS and improves the memory access pattern,

2) выполнение обработки по укрупненному волновому фронту, что позволяет обеспечить сравнительно высокую степень параллелизации (вплоть до десятков потоков), и улучшает шаблон доступа к памяти,2) execution of processing along the enlarged wavefront, which allows for a relatively high degree of parallelization (up to dozens of threads), and improves the memory access pattern,

3) выбор кандидатов на основе полуглобального движения, что позволяет обеспечить быстрый захват нескольких крупных объектов с отличающимся движением и тем самым повысить качество оценки движения.3) the selection of candidates on the basis of semi-global movement, which allows for quick capture of several large objects with different movement and thereby improve the quality of the motion assessment.

Краткое описание чертежейBrief Description of the Drawings

Фиг. 1-3 - известные из уровня техники решения в области 3DRS оценки движения.FIG. 1-3 are solutions known in the art for 3DRS motion estimation.

Фиг. 4 - Соседние блоки, содержащие векторы-кандидаты, используемые для формирования набора векторов-кандидатов, для каждого из двух соседних блоков в отдельности (базовый 3DRS)FIG. 4 - Neighboring blocks containing candidate vectors used to form a set of candidate vectors for each of two neighboring blocks separately (basic 3DRS)

Фиг. 5 - схема использования ранее оцененных полей движения при оценке очередных полей движения.FIG. 5 is a diagram of the use of previously estimated motion fields when evaluating next motion fields.

Фиг. 6 - блоки, содержащие векторы-кандидаты, рассматриваемые для двойного блока (расширенный 3DRS)FIG. 6 - blocks containing candidate vectors considered for a double block (advanced 3DRS)

Фиг. 7 - блок-схема варианта осуществления 3DRS-поиска согласно настоящему изобретению.FIG. 7 is a block diagram of an embodiment of a 3DRS search according to the present invention.

Фиг. 8 - традиционный 3DRS с полнокадровым меандровым порядком сканирования.FIG. 8 is a traditional 3DRS with a full-frame meander scan order.

Фиг. 9-3DRS с порядком сканирования, известным как обработка по волновому фронту (или гиперплоскостями).FIG. 9-3DRS with a scan order known as wavefront (or hyperplane) processing.

Фиг. 10-3DRS с порядком сканирования согласно настоящему изобретению.FIG. 10-3DRS with scan order according to the present invention.

Фиг. 11 - Пример порядка сканирования с укрупненной единицей из трех двойных блоков.FIG. 11 - An example of a scan order with an enlarged unit of three double blocks.

Фиг. 12 - обратный порядок сканирования кадра.FIG. 12 - reverse order of frame scan.

Фиг. 13 - еще один вариант порядка сканирования кадра.FIG. 13 is another embodiment of a frame scan order.

Фиг. 14-3DRS с использованием дополнительных векторов-кандидатов полуглобального движения.FIG. 14-3DRS using additional semi-global candidate candidate vectors.

Фиг. 15A-15C - пример применения полуглобального движения.FIG. 15A-15C is an example of a semi-global motion application.

Подробное описаниеDetailed description

В основе настоящего изобретения лежит алгоритм 3D-рекурсивного поиска (3DRS). Алгоритм ищет блочное поле движения, используя последовательные итерации по паре кадров видеопоследовательности.The present invention is based on a 3D recursive search (3DRS) algorithm. The algorithm searches for a block field of motion using sequential iterations over a pair of frames of a video sequence.

Следует понимать, что полем движения называется набор векторов движения, где каждый из векторов движения поставлен в соответствие либо каждому пикселю (dense motion field - плотное поле движения), либо блоку пикселей (обычно квадрат или прямоугольник рядом лежащих пикселей) текущего кадра. В настоящем изобретении используются векторы движения, принадлежащие блокам, и соответственно, используются блочные поля движения.It should be understood that a motion field is a set of motion vectors, where each of the motion vectors is mapped to either each pixel (dense motion field) or a block of pixels (usually a square or rectangle of adjacent pixels) of the current frame. In the present invention, motion vectors belonging to the blocks are used, and accordingly, block motion fields are used.

Вектором движения является смещение (две координаты) между блоками текущего и другого кадра. Это смещение может иметь как пиксельную точность, так и дробно-пиксельную точность. Таким образом, каждый вектор движения всегда указывает в какой-либо другой кадр. Соответственно, поле движения всегда подразумевает наличие двух кадров - текущего и какого-либо другого (например, следующего по времени или предыдущего по времени).The motion vector is the offset (two coordinates) between the blocks of the current and another frame. This offset can have both pixel accuracy and fractional pixel accuracy. Thus, each motion vector always points to some other frame. Accordingly, the motion field always implies the presence of two frames - the current and some other (for example, the next in time or the previous in time).

При оценке движения для каждого блока проверяется несколько векторов-кандидатов, то есть возможных векторов, которые могут послужить основой для результирующей оценки. Тот вектор-кандидат, который имеет наилучшую оценку, становится вектором движения для текущего блока. Самый простой набор кандидатов - это все возможные смещения, имеющиеся в кадре, однако такой набор имеет слишком большой размер (если точность вектора движения составляет один пиксель, то полный набор кандидатов будет равен количеству пикселей в кадре). В подходе «3DRS 1993», описанном в статье deHaan G., Biezen P, Huijgen H., Ojo O.A. True-Motion Estimation with 3-D Recursive Search Block Matching. IEEE Transactions on Curcuits and Systems for Video Technology Vol. 3, No. 5 (1993), был предложен такой принцип формирования набора кандидатов, при котором мощность набора обычно не превышает десятка векторов-кандидатов.When evaluating the movement for each block, several candidate vectors are checked, that is, possible vectors that can serve as the basis for the resulting assessment. The candidate vector that has the best rating becomes the motion vector for the current block. The simplest set of candidates is all possible offsets available in the frame, but such a set is too large (if the accuracy of the motion vector is one pixel, then the full set of candidates will be equal to the number of pixels in the frame). In the 3DRS 1993 approach described in deHaan G., Biezen P, Huijgen H., Ojo O.A. True-Motion Estimation with 3-D Recursive Search Block Matching. IEEE Transactions on Curcuits and Systems for Video Technology Vol. 3, No. 5 (1993), a principle was proposed for the formation of a set of candidates in which the power of the set usually does not exceed a dozen candidate vectors.

При составлении набора векторов-кандидатов для текущего блока используются как уже ранее оцененные векторы движения из соседних блоков текущего поля движения (так называемые пространственные векторы-кандидаты), так и векторы движения, принадлежащие какому-либо ранее целиком вычисленному полю движения (так называемые временные векторы-кандидаты). Кроме того, могут быть использованы случайные смещения относительно нулевого смещения и случайные смещения относительно какого-либо другого вектора-кандидата (так называемые случайные векторы-кандидаты). Также, в набор кандидатов могут включаться векторы глобального движения, если используется оценка глобального движения (их можно назвать глобальные векторы-кандидаты). К глобальным векторам-кандидатам тоже можно прибавлять случайные смещения, получая случайные векторы-кандидаты.When compiling a set of candidate vectors for the current block, we use both previously estimated motion vectors from neighboring blocks of the current motion field (the so-called spatial candidate vectors) and motion vectors belonging to some previously entirely calculated motion field (the so-called time vectors candidates). In addition, random offsets relative to the zero offset and random offsets relative to some other candidate vector (the so-called random candidate vectors) can be used. Also, global motion vectors can be included in the candidate set if global motion estimation is used (they can be called global candidate vectors). Random biases can also be added to global candidate vectors to obtain random candidate vectors.

Традиционный (базовый) подход 3DRS более наглядно изображен на Фиг. 4. Как видно из примера на Фиг. 4, набор векторов-кандидатов формируется для каждого блока отдельно. Например, для блока A (10) пространственные векторы-кандидаты выбираются из блоков 1, 3, 5, 7, 9 в текущем поле движения, а временные векторы-кандидаты выбираются из блоков A (10), B (11), 13, 15 в ранее целиком вычисленном поле движения, то есть в сумме 9 векторов-кандидатов. В свою очередь, для блока B (11) пространственные векторы-кандидаты выбираются из блоков 2, 4, 6, 8, A (10) в текущем поле движения, а временные векторы-кандидаты выбираются из блоков B (11), 12, 14, 16 в ранее целиком вычисленном поле движения, то есть в сумме тоже 9 векторов-кандидатов.The traditional (basic) 3DRS approach is more clearly shown in FIG. 4. As can be seen from the example in FIG. 4, a set of candidate vectors is generated for each block separately. For example, for block A (10), spatial candidate vectors are selected from blocks 1, 3, 5, 7, 9 in the current field of motion, and temporary candidate vectors are selected from blocks A (10), B (11), 13, 15 in the previously entirely computed motion field, that is, a total of 9 candidate vectors. In turn, for block B (11), spatial candidate vectors are selected from blocks 2, 4, 6, 8, A (10) in the current motion field, and temporary candidate vectors are selected from blocks B (11), 12, 14 , 16 in the previously entirely calculated motion field, that is, in total, there are also 9 candidate vectors.

Определение блоков, из которых будут выбираться векторы-кандидаты, выполняется по следующим правилам.The definition of blocks from which candidate vectors will be selected is performed according to the following rules.

1. Форма (шаблон) расположения блоков должен быть таким, чтобы уже оцененное движение поступало в текущий блок с разных направлений, что (при определенных условиях) обеспечивает наиболее быструю сходимость оценки вектора движения к реальному движению. Это основной принцип 3DRS. На данный момент специалистам в данной области известно множество разных шаблонов, удовлетворяющих этому принципу. Для целей настоящего изобретения может быть выбран любой подходящий шаблон.1. The shape (pattern) of the arrangement of blocks must be such that the already estimated movement arrives at the current block from different directions, which (under certain conditions) provides the fastest convergence of the motion vector estimate to the real movement. This is the basic principle of 3DRS. At the moment, specialists in this field know many different patterns that satisfy this principle. For the purposes of the present invention, any suitable template may be selected.

2. Блоки, из которых выбираются временные векторы-кандидаты, расположены в той части текущего поля движения, где векторы движения еще не оценены. Поэтому используется предыдущее поле движения.2. The blocks from which the candidate temporary vectors are selected are located in that part of the current motion field where the motion vectors have not yet been estimated. Therefore, the previous motion field is used.

На Фиг. 5 показано более подробно, какие ранее оцененные и текущие поля движения используются в настоящем изобретении для выборки временных векторов-кандидатов. In FIG. 5 shows in more detail which previously estimated and current motion fields are used in the present invention to sample candidate temporal vectors.

Согласно настоящему изобретению, для каждой пары кадров оценивается поле движения вперед (FW) и поле движения назад (BW). Полем движения вперед (FW<N>) является набор векторов движения для текущего кадра N, которые указывают в последующий кадр N+1. Полем движения назад (BW<N-1>) является набор векторов движения для текущего кадра N, которые указывают в предыдущий кадр N-1. При оценке поля движения вперед FW<N> выборка временных кандидатов производится из инвертированного (то есть взятого с обратным знаком) поля движения назад BW<N-1>, оцененного для предыдущей пары кадров (N-1, N). При оценке поля движения назад BW<N> выборка временных кандидатов производится из инвертированного проецированного поля движения вперед FW<N>, оцененного для текущей пары кадров (N, N+1).According to the present invention, a forward motion field (FW) and a backward motion field (BW) are estimated for each pair of frames. A forward field (FW <N>) is a set of motion vectors for the current frame N, which are indicated in the next frame N + 1. The backward field (BW <N-1>) is a set of motion vectors for the current frame N, which indicate the previous frame N-1. When evaluating the forward motion field FW <N>, the selection of temporary candidates is made from the inverted (that is, taken with the opposite sign) backward motion field BW <N-1>, estimated for the previous pair of frames (N-1, N). When evaluating the backward motion field BW <N>, the selection of temporary candidates is made from the inverted projected forward motion field FW <N> estimated for the current pair of frames (N, N + 1).

Процесс проецирования поля движения содержит следующие этапы: выбор вектора движения для текущего блока проецируемого поля движения и запись значения выбранного вектора движения в блок проецированного поля движения, при этом координаты этого блока являются ближайшими к сумме координат текущего блока проецируемого поля движения и выбранного вектора движения.The process of projecting a motion field contains the following steps: selecting a motion vector for the current block of the projected motion field and writing the value of the selected motion vector to the block of the projected motion field, the coordinates of this block being closest to the sum of the coordinates of the current block of the projected motion field and the selected motion vector.

Для оценки векторов поля движения назад BW<N> в настоящем изобретении используются полуглобальные векторы-кандидаты, оцененные с помощью поля движения вперед FW<N>. Подробнее об этом будет упомянуто в третьем аспекте изобретения.To evaluate the backward field vectors BW <N> in the present invention, semi-global candidate vectors evaluated using the forward forward field FW <N> are used. More about this will be mentioned in the third aspect of the invention.

Первый аспект изобретенияThe first aspect of the invention

В отличие от традиционного подхода, обрабатываемой единицей в способе согласно настоящему изобретению является двойной блок. Двойной блок представляет собой пару соседних блоков, которые обрабатываются вместе. Только один набор векторов-кандидатов используется для двойного блока, а каждый вектор-кандидат оценивается в одной итерации цикла обхода векторов-кандидатов для обоих блоков пары одновременно, что позволяет уменьшить вычислительные издержки. В частности, в примере на Фиг. 6 блок A и блок B рассматриваются одновременно в рамках двойного блока AB. Для двойного блока AB пространственные векторы-кандидаты выбираются из блоков 1, 3, 5, 7, 9, а временные вектора-кандидаты выбираются из блоков А(10), B (11), 13, 15, то есть в сумме 9 блоков-кандидатов. В сущности, это те самые 9 блоков-кандидатов, которые рассматривались бы в традиционном подходе для одиночного блока A. Таким образом, количество источников пространственных и временных кандидатов в показанном примере в два раза меньше, чем в случае с одиночными блоками, обработка которых показана на Фиг. 4. Как будет пояснено далее, рассмотрение дополнительных кандидатов для второго блока из пары (кандидатов блока B) происходит только в том случае, если значения функций доверия ФД(MVcand, блок) для пары блоков двойного блока соответствуют определенным условиям (при подозрении на границу движения).Unlike the traditional approach, the unit being processed in the method according to the present invention is a double block. A double block is a pair of neighboring blocks that are processed together. Only one set of candidate vectors is used for a double block, and each candidate vector is evaluated in one iteration of the cycle of traversing candidate vectors for both blocks of a pair at a time, which reduces computational overhead. In particular, in the example of FIG. 6, block A and block B are considered simultaneously in the framework of double block AB. For the double block AB, spatial candidate vectors are selected from blocks 1, 3, 5, 7, 9, and temporary candidate vectors are selected from blocks A (10), B (11), 13, 15, that is, a total of 9 blocks candidates. In essence, these are the same 9 candidate blocks that would have been considered in the traditional approach for a single block A. Thus, the number of sources of spatial and temporal candidates in the example shown is two times less than in the case of single blocks, the processing of which is shown in FIG. 4. As will be explained below, consideration of additional candidates for the second block of a pair (block B candidates) occurs only if the values of the PD confidence functions (MVcand, block) for a pair of blocks of a double block correspond to certain conditions (if there is a suspicion of a border )

Следует также отметить, что в части определения блоков, из которых будут выбираться пространственные векторы-кандидаты, в настоящем изобретении должно выполняться условие невыхода самого правого блока на и за границу фронта волны (так как на фронте волны и за фронтом волны векторы в текущем поле движения еще не оценены).It should also be noted that in terms of determining the blocks from which the spatial candidate vectors will be selected, in the present invention, the condition for the rightmost block to be absent at and beyond the wave front should be satisfied (since at the wave front and behind the wave front the vectors in the current field of motion not yet rated).

На Фиг. 7 изображена блок-схема варианта осуществления способа оценки движения на основе 3DRS-поиска согласно настоящему изобретению.In FIG. 7 is a flowchart of an embodiment of a 3DRS search motion estimation method according to the present invention.

На этапе 100 происходит формирование набора векторов-кандидатов с помощью задания набора правил получения, с тем чтобы в дальнейшем было возможным получение очередного вектора-кандидата для текущей (рассматриваемой) единицы кадра. За исключением некоторых случаев, которые будут пояснены ниже, такой единицей является двойной блок. Например, как было показано на Фиг. 6, для рассматриваемого двойного блока AB сначала выбирают вектор-кандидат из блока 1. Упомянутые правила получения одинаковы для всех единиц кадра и могут быть различны для поля движения назад и поля движения вперед.At step 100, a set of candidate vectors is generated by setting a set of retrieval rules so that it is subsequently possible to obtain another candidate vector for the current (considered) unit of the frame. Except in some cases, which will be explained below, such a unit is a double block. For example, as shown in FIG. 6, for the double block AB under consideration, the candidate vector from block 1 is first selected. The mentioned receipt rules are the same for all units of the frame and can be different for the backward and forward fields.

Существует много различных вариантов формирования набора правил получения. Примером простого правила получения может быть следующее: взять в качестве вектора-кандидата ранее оцененный вектор из соседнего блока кадра. При этом для точной идентификации соседнего блока необходимо указать сдвиг в блочных координатах относительно текущего блока. Примером более сложного правила может быть следующее: взять в качестве вектора-кандидата случайные смещения в диапазоне [-3..3] по координате x и в диапазоне [-2..2] по координате y.There are many different options for creating a set of retrieval rules. An example of a simple retrieval rule may be the following: take as a candidate vector a previously estimated vector from an adjacent block of the frame. In order to accurately identify the neighboring block, it is necessary to indicate the shift in block coordinates relative to the current block. An example of a more complex rule can be the following: take random displacements in the range [-3..3] along the x coordinate and in the range [-2..2] along the y coordinate as a candidate vector.

Более подробно, набор правил может содержать одно или более из следующих правил (подразумевается порядок сканирования слева направо, сверху вниз):In more detail, a rule set can contain one or more of the following rules (the scanning order is meant from left to right, from top to bottom):

1) Взять оцененный вектор движения из блока предыдущего поля движения, координаты которого равны координатам текущей единицы.1) Take the estimated motion vector from the block of the previous motion field, the coordinates of which are equal to the coordinates of the current unit.

2) Взять оцененный вектор движения из блока оцениваемого поля движения, координаты которого равны координатам текущей единицы плюс смещение влево на один блок.2) Take the estimated motion vector from the block of the estimated motion field, the coordinates of which are equal to the coordinates of the current unit plus an offset to the left by one block.

3) Взять оцененный вектор движения из блока оцениваемого поля движения, координаты которого равны координатам текущей единицы плюс смещение вверх на один блок.3) Take the estimated motion vector from the block of the estimated motion field, the coordinates of which are equal to the coordinates of the current unit plus an upward shift by one block.

4) Взять оцененный вектор движения из блока предыдущего поля движения, координаты которого равны координатам текущей единицы плюс смещение вправо на один блок.4) Take the estimated motion vector from the block of the previous motion field, the coordinates of which are equal to the coordinates of the current unit plus an offset to the right by one block.

5) Взять оцененный вектор движения из блока предыдущего поля движения, координаты которого равны координатам текущей единицы плюс смещение вниз на один блок.5) Take the estimated motion vector from the block of the previous motion field, the coordinates of which are equal to the coordinates of the current unit plus an offset down one block.

6) Взять случайное смещение в диапазоне XY: [-3..3][-2..2]6) Take a random offset in the XY range: [-3..3] [- 2..2]

7) Взять лучший вектор-кандидат из ранее оцененных и прибавить к нему случайное смещение в диапазоне XY: [-3..3][-2..2].7) Take the best candidate vector from previously estimated and add to it a random offset in the XY range: [-3..3] [- 2..2].

В приведенном списке содержится 7 правил, соответственно для каждой единицы кадра будет рассмотрено максимум 7 векторов-кандидатов (минимум 1, если значения всех векторов-кандидатов окажутся равны, так как не имеет смысла оценивать несколько раз одно и тоже смещение). Следует понимать, что настоящее изобретение не ограничено вышеуказанными конкретными правилами получения, и специалист в данной области сможет составить иные правила получения, не отступая от сущности изобретения.The above list contains 7 rules; accordingly, for each unit of the frame, a maximum of 7 candidate vectors will be considered (at least 1 if the values of all candidate vectors are equal, since it makes no sense to evaluate the same offset several times). It should be understood that the present invention is not limited to the above specific rules for obtaining, and the specialist in this field will be able to draw up other rules for obtaining, without departing from the essence of the invention.

В результате выполнения этих правил получения и оценки полученных по этим правилам векторов-кандидатов будет получен набор векторов-кандидатов. Правило 7 не позволяет полностью сформировать набор векторов-кандидатов до обработки текущей единицы, так как заранее неизвестно, какой из векторов-кандидатов будет лучшим, и это станет понятно только после вычисления функции доверия, которая будет пояснена ниже. As a result of the implementation of these rules for obtaining and evaluating candidate vectors obtained by these rules, a set of candidate vectors will be obtained. Rule 7 does not allow the complete formation of a set of candidate vectors before processing the current unit, since it is not known in advance which of the candidate vectors will be the best, and this will become clear only after calculating the confidence function, which will be explained below.

Далее в настоящем раскрытии не будет описываться отдельно формирование списка правил, а и при описании набора векторов-кандидатов будет подразумеваться, что он полностью известен заранее.Further, in the present disclosure, the formation of a list of rules will not be described separately, and when describing a set of candidate vectors, it will be assumed that it is fully known in advance.

На этапе 101 выполняется формирование очередного вектора-кандидата для текущей единицы кадра из сформированного на этапе 100 набора векторов-кандидатов на основе заданного списка правил получения.At step 101, the next candidate vector is generated for the current unit of the frame from the set of candidate vectors generated at step 100 based on a given list of receiving rules.

Далее на этапе 102 происходит вычисление ФД(MVcand, блок) для каждого из блоков рассматриваемой единицы (ФД(MVcand,A), ФД(MVcand,B)), если рассматриваемой единицей является двойной блок, или для данного одиночного блока, если рассматриваемой единицей является одиночный блок.Next, at step 102, the PD is calculated (MVcand, block) for each of the blocks of the unit in question (PD (MVcand, A), PD (MVcand, B)) if the unit in question is a double block, or for a given single block if the unit in question is a single block.

Функция доверия ФД(MVcand, блок)=MAD(MVcand,блок)+f(Prior,MVcand), гдеTrust function FD (MVcand, block) = MAD (MVcand, block) + f (Prior, MVcand), where

MAD - это средняя абсолютная разность:MAD is the average absolute difference:

Figure 00000001
Figure 00000001

f(Prior,MVcand) -штрафная функция, которая использует ранее вычисленную информацию (Prior) и используется для дополнительной регуляризации поля движения. В качестве такой ранее вычисленной информации может служить информация о глобальном или полуглобальном движении.f (Prior, MVcand) is a penalty function that uses previously calculated information (Prior) and is used for additional regularization of the motion field. As such previously calculated information, information on global or semi-global movement can serve.

MVcand - рассматриваемый вектор-кандидат.MVcand is the candidate vector in question.

(блок) -координаты или позиция блока (текущего блока) в текущем кадре.(block) - the coordinates or position of the block (current block) in the current frame.

Чем больше значение ФД(), тем меньше доверия к данному вектору-кандидату. Меньшее значение ФД() обозначает большее доверие вектору-кандидату в данном блоке.The higher the value of the PD (), the less confidence in this candidate vector. A lower FD () value means greater confidence in the candidate vector in this block.

На этапе 103 вектор-кандидат для каждого блока из двойного блока сохраняется в памяти как лучший, если ФД(MVcand,блок) приняла меньшее значение по сравнению с ранее рассмотренными векторами-кандидатами для текущего блока. При этом, если для рассматриваемой единицы в памяти еще не сохранен наилучший вектор-кандидат, то текущий вектор-кандидат записывается как наилучший. При обработке последующих векторов-кандидатов, когда в памяти уже имеется сохраненный наилучший вектор-кандидат, выполняется сравнение ФД(MVcand,блок) текущего вектора-кандидата и ФД(MVcand,блок) сохраненного наилучшего вектора-кандидата, и в качестве наилучшего вектора-кандидата сохраняется тот вектор-кандидат, у которого значение ФД(MVcand,блок) является меньшим. Например, если в памяти в качестве наилучшего уже сохранен вектор-кандидат 1, а у текущего вектора-кандидата 3 значение ФД(MVcand,блок) является меньшим - тогда наилучший вектор-кандидат в памяти перезаписывается.At step 103, the candidate vector for each block from the double block is stored in memory as the best if the PD (MVcand, block) has taken a lower value compared to the previously considered candidate vectors for the current block. Moreover, if the best candidate vector has not yet been stored in memory for the unit under consideration, then the current candidate vector is written as the best. When processing subsequent candidate vectors, when the memory contains the best candidate vector, the PD (MVcand, block) of the current candidate vector and the PD (MVcand, block) of the stored best candidate vector are compared with the best candidate vector the candidate vector is retained for which the value of the PD (MVcand, block) is lower. For example, if the candidate vector 1 is already stored in the memory as the best, and the current candidate vector 3 has a smaller PD value (MVcand, block), then the best candidate vector in the memory is overwritten.

На этапе 104 проверяется, был ли полученный вектор-кандидат последним для текущей единицы (то есть последним в заданном наборе векторов-кандидатов). Если нет, то способ возвращается к этапу 101, и на рассмотрение берется следующий вектор-кандидат. Если да, то способ переходит к следующему этапу, 105. В конечном счете, после проверки всех векторов-кандидатов для текущей единицы в памяти остается сохраненным вектор-кандидат с минимальным значением ФД(MVcand,блок).At step 104, it is checked whether the obtained candidate vector was the last for the current unit (i.e., the last in a given set of candidate vectors). If not, the method returns to step 101, and the next candidate vector is taken into consideration. If yes, then the method proceeds to the next step, 105. Ultimately, after checking all the candidate vectors for the current unit, the candidate vector with the minimum value of the PD remains in memory (MVcand, block).

На этапе 105 выполняется анализ пары значений ФД(MVcand,блок) для каждого из блоков текущего двойного блока. При этом, вычисляется разность d(ВA) между ФД(MVcand best B,B) для второго одиночного блока из текущей единицы и ФД(MVcand best A,A) для первого одиночного блока из текущей единицы. Вычисленная разность d(ВA) сравнивается с предварительно заданным разностным пороговым значением Тразн. Превышение порога Тразн показывает, что разница между значениями ФД(MVcand best B,B) и ФД(MVcand best A,A) велика, и это может означать, что блок A и блок B находятся на границе движения (принадлежат объектам с разным движением). Кроме того, на этапе 105 значение ФД(MVcand best B,B) для второго одиночного блока из текущей единицы сравнивается с предварительно заданным абсолютным пороговым значением Tабс, которое показывает, что является ли значение ФД(MVcand best B,B) слишком большим.At step 105, an analysis of a pair of PD values (MVcand, block) is performed for each of the blocks of the current double block. In this case, the difference d (BA) between the PD (MVcand best B, B) for the second single block from the current unit and the PD (MVcand best A, A) for the first single block from the current unit is calculated. The calculated difference d (BA) is compared with a predetermined difference threshold value T diff . Exceeding the threshold T differently shows that the difference between the values of PD (MVcand best B, B) and PD (MVcand best A, A) is large, and this may mean that block A and block B are on the border of movement (belong to objects with different movements ) In addition, in step 105, the PD value (MVcand best B, B) for the second single block from the current unit is compared with a predetermined absolute threshold value T abs , which indicates whether the PD value (MVcand best B, B) is too large.

Следует отметить, что когда рассматривается конкретный вектор-кандидат, то значение ФД(MVcand,блок) вычисляется для каждого блока пары отдельно. Возможны случаи, когда для одного блока пары это значение ФД(MVcand,блок1) окажется меньше, чем для всех предыдущих векторов-кандидатов, примененных к данному блоку пары (блок1), и тогда текущий вектор-кандидат станет лучшим для этого блока пары, и в тоже время для другого блока пары (блок2) значение ФД(MVcand,блок2) окажется больше, чем значение ФД(MVcand best2,блок2) для какого-то ранее рассмотренного вектора-кандидата MVcand best2. Таким образом, каждый из блоков пары блоков может содержать разные лучшие вектора и значения функции доверия.It should be noted that when a particular candidate vector is considered, the value of the PD (MVcand, block) is calculated separately for each block of the pair. There are cases when for one block of a pair this value of the PD (MVcand, block1) will be less than for all previous candidate vectors applied to this block of the pair (block1), and then the current candidate vector will become the best for this block of the pair, and at the same time, for the other block of the pair (block2), the value of the PD (MVcand, block2) will be greater than the value of the PD (MVcand best2, block2) for some previously considered candidate vector MVcand best2. Thus, each of the blocks of a pair of blocks may contain different best vectors and values of the confidence function.

На этапе 106 на основе анализа, сделанного на этапе 105, принимается решение, требуется ли рассматривать текущую единицу как два отдельных одиночных блока, или использование двойного блока является приемлемым для текущего применения. В частности, принятие решения о том, что необходимо рассматривать два одиночных блока по отдельности, происходит в случае, когда значение d(ВA) больше, чем значение Тразн, а также в случае, когда значение ФД(MVcand best B,B) больше, чем значение Tабс. Предварительно задаваемые значения Тразн и Табс позволяют соблюдать компромисс между качеством поля движения (в смысле его близости к реальному полю движения) и скоростью выполнения способа. То есть, если задать относительно высокие значения Тразн и Табс, то рассмотрение дополнительных кандидатов будет происходить реже, и скорость выполнения способа возрастет, но качество поля движения при этом может несколько снизиться, и наоборот, если задать значения Тразн и Табс относительно низкими, то рассмотрение дополнительных кандидатов будет происходить чаще, и скорость выполнения способа упадет, тогда как качество поля движения может улучшиться.At step 106, based on the analysis made at step 105, a decision is made whether to consider the current unit as two separate single blocks, or whether the use of a double block is acceptable for the current application. In particular, the decision that it is necessary to consider two single blocks separately occurs when the value of d (BA) is greater than the value of T different , and also when the value of the PD (MVcand best B, B) is greater than the value of T abs . Pre-set values of T different and T abs allow you to observe a compromise between the quality of the motion field (in the sense of its proximity to the real motion field) and the speed of the method. That is, if you set relatively high values of T different and T abs , then the consideration of additional candidates will occur less frequently, and the speed of the method will increase, but the quality of the motion field may decrease somewhat, and vice versa, if you set the values of T different and T abs relative to low, then the consideration of additional candidates will occur more often, and the speed of the method will drop, while the quality of the field of motion can improve.

Если на этапе 106 было принято решение, что использование двойного блока является приемлемым, то способ переходит к этапу 108, на котором осуществляется переход к следующей единице (в данном случае двойной блок, расположенный вслед за текущей единицей (двойным блоком AB) по порядку сканирования), и в ее отношении выполняются все вышеописанные этапы способа, то есть ее рассмотрение начинается вновь с этапа 101.If at step 106 it was decided that the use of the double block is acceptable, the method proceeds to step 108, where the next unit is transferred (in this case, the double block located next to the current unit (double AB block) in the scanning order) , and in its relation all the above steps of the method are performed, that is, its consideration starts again from step 101.

Если же на этапе 106 было принято решение, что требуется рассмотрение двух отдельных одиночных блоков, то способ переходит к этапу 107, на котором выполняется формирование набора векторов кандидатов для одиночного блока B, вычисление значений ФД(MVcand B,B) для каждого вектора-кандидата и выбор лучшего из них, то есть того, у которого значение ФД(MVcand B,B) минимально. После этого способ переходит к ранее описанному этапу 108.If, at step 106, it was decided that consideration of two separate single blocks is required, the method proceeds to step 107, where a set of candidate vectors is generated for a single block B, calculation of PD values (MVcand B, B) for each candidate vector and choosing the best of them, that is, one that has a PD value (MVcand B, B) is minimal. After that, the method proceeds to the previously described step 108.

В предложенном способе два соседних блока (A и B) на этапах 101-104 используют набор векторов-кандидатов для блока А (это также было показано выше в отношении Фиг. 6). Это уменьшает число векторов-кандидатов и, тем самым, требует меньше вычислений ФД(), что повышает скорость обработки. Кроме того, улучшается шаблон доступа к памяти. Снижение вычислительной сложности и улучшение шаблона доступа к памяти приводит также к снижению энергопотребления.In the proposed method, two neighboring blocks (A and B) at steps 101-104 use a set of candidate vectors for block A (this was also shown above with respect to Fig. 6). This reduces the number of candidate vectors and, therefore, requires fewer PD calculations (), which increases the processing speed. In addition, the memory access pattern is improved. Reducing computational complexity and improving the memory access pattern also leads to lower power consumption.

Второй аспект изобретенияThe second aspect of the invention

На Фиг. 8 изображена схема порядка сканирования поделенного на двойные блоки кадра согласно традиционному 3DRS-поиску с полнокадровым меандровым порядком сканирования. Обычный меандровый порядок сканирования представляет собой порядок, в котором изображение разделено на строки из блоков, и сканирование производится построчно - сначала полностью первая строка в одном направлении, затем полностью вторая строка в другом направлении и т.д. Такой подход делает распараллеливание невозможным, так как все предыдущие блоки находятся в дереве зависимостей. Например, на Фиг. 8 стрелки из текущей обрабатываемой единицы показывают, из каких блоков берутся векторы-кандидаты для текущей единицы. Таким образом, появляются зависимости, которые показывают, какие блоки в кадре уже должны быть обработаны на момент обработки текущей единицы. В случае традиционного 3DRS-поиска, все единицы, следующие за текущей единицей (они показаны светлым цветом) зависят от нее, а все единицы, предшествующие текущей, должны быть обработаны ранее.In FIG. 8 is a diagram of a scan order divided into double blocks of a frame according to a conventional 3DRS search with a full-frame meander scan order. The usual meander scan order is the order in which the image is divided into lines of blocks, and scanning is done line by line - first the first line in one direction, then the second line in the other direction, etc. This approach makes parallelization impossible, since all previous blocks are in the dependency tree. For example, in FIG. 8 arrows from the current processing unit show which blocks the candidate vectors for the current unit are taken from. Thus, dependencies appear that show which blocks in the frame should already be processed at the time of processing the current unit. In the case of the traditional 3DRS search, all units following the current unit (they are shown in light color) depend on it, and all units preceding the current one must be processed earlier.

На Фиг. 9 изображен порядок сканирования поделенного на двойные блоки кадра согласно известной из уровня техники модификации 3DRS-поиска, в котором элементом порядка сканирования является группа блоков, похожая на накатывающиеся волны - в ней блоки обрабатываются не построчно, а подиагонально, при этом блоки в каждой диагонали располагаются (и сканируются) в порядке справа сверху - влево вниз.In FIG. Figure 9 shows the scanning order of a frame divided into double blocks according to a modification of the 3DRS search known in the prior art, in which the scanning order element is a group of blocks similar to rolling waves - in it the blocks are processed line-by-line, and diagonally, with the blocks in each diagonal being located (and scanned) in the order from right to top - left down.

В частности, сначала обрабатывается верхняя левая единица (первая диагональ), затем соседняя к верхней левой правая единица (то есть вторая единица в верхней строке), затем соседняя к верхней левой нижняя единица (то есть вторая единица в левом столбце), за счет чего получается вторая диагональ. Далее выполняется переход к третьей единице в верхней строке, а от нее вновь по диагонали влево вниз вплоть до третьей единицы в левом столбце, за счет чего получается третья диагональ. Все последующие единицы обрабатываются аналогичным образом, диагональ за диагональю. Зависимость обработки в данном случае позволяет выполнять параллельную обработку. Например, как показано на Фиг. 9, единицы в диагонали, выделенной жирными линиями, не зависят друг от друга, и поэтому могут обрабатываться параллельно. Однако, порядок обрабатываемых единиц при этом таков, что доступ к памяти выполняется очень разрозненно, что неизбежно приводит к существенной потере производительности относительно меандрового или растрового порядка сканирования.In particular, the upper left unit (the first diagonal) is processed first, then the right unit adjacent to the upper left (that is, the second unit in the upper row), then the lower unit adjacent to the upper left (that is, the second unit in the left column), due to which it turns out the second diagonal. Next, go to the third unit in the top row, and from it again diagonally left down to the third unit in the left column, resulting in the third diagonal. All subsequent units are processed in the same way, diagonal by diagonal. The processing dependency in this case allows parallel processing. For example, as shown in FIG. 9, the units in the diagonal in bold lines are independent of each other, and therefore can be processed in parallel. However, the order of the processed units is such that the memory access is very fragmented, which inevitably leads to a significant loss in performance relative to the meander or raster scan order.

На Фиг. 10 изображен порядок сканирования поделенного на двойные блоки кадра согласно настоящему изобретению. В предложенной схеме кадр условно делится на укрупненные единицы обработки, представляющие собой набор соседних единиц (например, двойных блоков) в строке. Порядок сканирования таких укрупненных единиц может быть таким же, как в вышеописанном способе обработки по волновому фронту, то есть сначала обрабатывается верхняя левая укрупненная единица (первая диагональ), затем соседняя к верхней левой правая укрупненная единица (то есть вторая укрупненная единица в верхней строке), затем соседняя к верхней левой нижняя укрупненная единица (то есть вторая укрупненная единица в левом столбце), за счет чего получается вторая диагональ из укрупненных единиц, и так далее. Зависимость обработки в данном случае также позволяет выполнять параллельную обработку. Например, как показано на Фиг. 10, укрупненные единицы в диагонали, выделенной жирными линиями, не зависят друг от друга, и поэтому могут обрабатываться параллельно. При этом, по сравнению с вышеописанным известным способом обработки по волновому фронту, данный способ позволяет в рамках одного потока использовать элемент растрового порядка сканирования, то есть выполнять последовательную обработку нескольких единиц в строке слева направо, что улучшает шаблон обращения к памяти, за счет чего общая производительность способа возрастает, при этом требуются меньшие затраты на синхронизацию потоков, а качество поля движения не ухудшается. Следует отметить также, что доступ к памяти имеет решающее значение для эффективности кэша процессора.In FIG. 10 illustrates a scanning order of a double block frame according to the present invention. In the proposed scheme, the frame is conditionally divided into enlarged processing units, which are a set of neighboring units (for example, double blocks) in a row. The scanning order of such enlarged units can be the same as in the above-described wavefront processing method, i.e., the upper left enlarged unit (the first diagonal) is processed first, then the right enlarged unit adjacent to the upper left (that is, the second enlarged unit in the top row) , then the lower enlarged unit adjacent to the upper left (that is, the second enlarged unit in the left column), whereby a second diagonal of enlarged units is obtained, and so on. The processing dependency in this case also allows parallel processing. For example, as shown in FIG. 10, the enlarged units in the diagonal highlighted in bold lines are independent of each other, and therefore can be processed in parallel. At the same time, in comparison with the above-described known wavefront processing method, this method allows using a raster scan order element within a single stream, that is, sequentially processes several units in a row from left to right, which improves the memory access pattern, due to which the general the productivity of the method increases, while lower costs for synchronization of flows are required, and the quality of the motion field does not deteriorate. It should also be noted that memory access is critical to the effectiveness of the processor cache.

На Фиг. 11 показан пример порядка сканирования с укрупненной единицей из трех двойных блоков. Так, имеется три потока обработки, в укрупненной единице имеется набор из трех двойных блоков в одной строке. В рамках каждой укрупненной единицы в каждом потоке двойные блоки обрабатываются последовательно, то есть доступ к памяти выполняется последовательно, более локализовано. Это повышает производительность вычислений и снижает энергопотребление. При этом для большой части изображения (диагональ из укрупненных единиц) допускается независимая параллельная обработка.In FIG. 11 shows an example of a scan order with an enlarged unit of three double blocks. So, there are three processing streams, in the enlarged unit there is a set of three double blocks in one line. Within each enlarged unit in each thread, double blocks are processed sequentially, that is, access to memory is performed sequentially, more localized. This improves computing performance and reduces power consumption. Moreover, for a large part of the image (diagonal of enlarged units) independent parallel processing is allowed.

Выше в отношении Фиг. 8-11 описывалось, что рассматриваемой единицей является двойной блок, однако следует понимать, что рассматриваемой единицей может также быть и одиночный блок.In relation to FIG. 8-11, it was described that the unit in question is a double block, however, it should be understood that the unit in question may also be a single block.

Также возможны другие варианты сканирования кадра в способе обработки по волновому фронту с укрупненной единицей обработки. Например, на Фиг. 12 изображена схема обхода, в которой сканирование начинается не с левой верхней укрупненной единицы, а с правой нижней, то есть сканирование осуществляется в обратном порядке. Это позволяет чередовать от кадра к кадру порядок сканирования (для одного поля движения - сначала сверху слева, для следующего поля движения - сначала снизу справа, и так далее), и тем самым улучшить оцененное поле движения (то есть оно становится более похожим на реальное поле движения). Так как каждое поле движения зависит от ранее оцененного поля движения, а значит вообще от всех ранее оцененных полей движения, то чередование порядков сканирования улучшает все поля движения, кроме самого первого оцененного.Other scanning options for the frame in the wavefront processing method with an enlarged processing unit are also possible. For example, in FIG. 12 shows a bypass scheme in which scanning does not start from the upper left enlarged unit, but from the lower right, that is, scanning is performed in the reverse order. This allows you to alternate the scan order from frame to frame (for one motion field - first from the top left, for the next motion field - first from the bottom right, and so on), and thereby improve the estimated motion field (that is, it becomes more like a real field movement). Since each motion field depends on a previously estimated motion field, and therefore generally on all previously estimated motion fields, the alternation of scan orders improves all motion fields except the very first one evaluated.

Далее на Фиг. 13 изображен порядок сканирования, в котором, как и на Фиг. 10-11, сначала обрабатывается верхняя левая укрупненная единица (первая диагональ), затем соседняя к верхней левой правая укрупненная единица (то есть вторая укрупненная единица в верхней строке), затем соседняя к верхней левой нижняя укрупненная единица (то есть вторая укрупненная единица в левом столбце), за счет чего получается вторая диагональ из укрупненных единиц. Затем, в отличие от варианта, показанного на Фиг. 10-11, происходит переход не к третьей укрупненной единице в верхней строке, а к третьей укрупненной единице в левом столбце, то есть непосредственно к соседней нижней укрупненной единице по отношению к последней обработанной единице. Вслед за ней по порядку вправо вверх обрабатываются укрупненные единицы в третьей укрупненной диагонали. Далее, аналогичным образом, после обработки последней единицы в третьей укрупненной диагонали происходит переход непосредственно к соседней укрупненной единице, которая одновременно является крайней единицей в следующей, четвертой укрупненной диагонали. Такой вариант обхода кадра предусматривает еще меньше скачкообразных переходов в пределах кадра, что позволяет еще лучше локализовать доступ к памяти и повысить производительность способа.Further in FIG. 13 shows a scan order in which, as in FIG. 10-11, the upper left enlarged unit is processed first (the first diagonal), then the right enlarged unit adjacent to the upper left (that is, the second enlarged unit in the top row), then the lower enlarged unit adjacent to the upper left (that is, the second enlarged unit in the left column), whereby a second diagonal of enlarged units is obtained. Then, in contrast to the embodiment shown in FIG. 10-11, there is a transition not to the third enlarged unit in the upper row, but to the third enlarged unit in the left column, that is, directly to the neighboring lower enlarged unit with respect to the last processed unit. Following it, the units in the third enlarged diagonal are processed in order from right to top. Further, in a similar way, after processing the last unit in the third enlarged diagonal, a transition occurs directly to the neighboring enlarged unit, which is at the same time an extreme unit in the next, fourth enlarged diagonal. This version of the frame bypass provides even fewer hopping transitions within the frame, which allows even better to localize access to memory and improve the performance of the method.

Третий аспект изобретенияThe third aspect of the invention

На Фиг. 14 показан еще один вариант осуществления настоящего изобретения, в котором в алгоритме 3DRS используются дополнительные векторы-кандидаты полуглобального движения. В частности, в набор векторов кандидатов, помимо пространственных векторов-кандидатов из текущего поля движения и временных векторов-кандидатов из предыдущего поля движения, включаются дополнительные векторы-кандидаты, полученные на основе оцененного полуглобального движения в предыдущем поле движения.In FIG. 14 shows yet another embodiment of the present invention in which additional semi-global motion candidate vectors are used in the 3DRS algorithm. In particular, in the set of candidate vectors, in addition to spatial candidate vectors from the current motion field and temporary candidate vectors from the previous motion field, additional candidate vectors obtained based on the estimated semi-global motion in the previous motion field are included.

Для получения дополнительных векторов-кандидатов анализируется двумерная гистограмма поля предыдущего движения, и из нее извлекаются SGMV-векторы (векторы полуглобального движения) -этап 109. Например, в качестве таких векторов могут быть выбраны координаты нескольких пиков двухмерной гистограммы. Для каждого SGMV-вектора строится маска применимости, показывающая, в каких частях кадра может присутствовать движение с таким вектором. В рамках настоящего изобретения считается, что маска для данного SGMV-вектора активна в данной единице, если решено, что в данной единице может присутствовать движение, соответствующее SGMV-вектору.To obtain additional candidate vectors, a two-dimensional histogram of the field of the previous movement is analyzed, and SGMV vectors (semi-global motion vectors) are extracted from it, step 109. For example, the coordinates of several peaks of a two-dimensional histogram can be selected as such vectors. An applicability mask is constructed for each SGMV vector, showing in which parts of the frame movement with such a vector can be present. In the framework of the present invention, it is considered that the mask for a given SGMV vector is active in a given unit if it is decided that movement corresponding to the SGMV vector may be present in this unit.

В дальнейшем, при прохождении цикла этапов 101-104, если текущая единица (блок или двойной блок) попала в область маски применимости того или иного SGMV-вектора, то этот SGMV-вектор служит основой для дополнительного случайного вектора-кандидата, который включается в набор кандидатов для данной единицы. В таком случае к SGMV-вектору добавляется случайное смещение, и полученный случайный вектор-кандидат добавляется в набор векторов кандидатов. Это выполняется для каждого SGMV-вектора, маска применимости которого указывает на возможное присутствие этого полуглобального вектора движения в текущей единице.Further, during the passage of the cycle of steps 101-104, if the current unit (block or double block) falls into the region of the applicability mask of one or another SGMV vector, then this SGMV vector serves as the basis for an additional random candidate vector, which is included in the set candidates for this unit. In this case, a random offset is added to the SGMV vector, and the resulting random candidate vector is added to the set of candidate vectors. This is done for each SGMV vector whose applicability mask indicates the possible presence of this semi-global motion vector in the current unit.

Для векторов-кандидатов, далеких (в смысле расстояния между векторами, вычисленным любым удобным способом) от самого близкого найденного SGMV-кандидата, на этапе 103 дается дополнительный штраф.For candidate vectors that are far (in the sense of the distance between the vectors calculated by any convenient method) from the nearest SGMV candidate found, an additional penalty is given at step 103.

Для этих целей используется некоторая разумная монотонная функция штрафа, ограниченная сверху (VPмакс), которая уменьшается при уменьшении дистанции между текущим вектором-кандидатом и ближайшим к нему SGMV-вектором, достигая нуля, если маска ближайшего SGMV-вектора активна, и некоего значения (VPмин) больше нуля, но меньше максимального значения этой функции, если маска ближайшего SGMV-вектора не активна.For these purposes, some reasonable monotone penalty function is used, bounded above (VPmax), which decreases as the distance between the current candidate vector and the nearest SGMV vector decreases, reaching zero if the mask of the nearest SGMV vector is active, and some value (VPmin ) is greater than zero, but less than the maximum value of this function, if the mask of the nearest SGMV-vector is not active.

Это действует как регуляризация поля движения. В отличие от вышеупомянутого известного из уровня техники глобального движения, в котором все найденные векторы глобального движения рассматриваются как дополнительные векторы-кандидаты для всех рассматриваемых единиц, в настоящем изобретении в качестве основы для дополнительных векторов-кандидатов выбираются лишь те, маска применимости которых совпадает с местоположением текущей единицы (то есть маска активна). Поэтому движение в настоящем изобретении названо полуглобальным.This acts as a regularization of the field of motion. In contrast to the aforementioned global motion known from the prior art, in which all the found global motion vectors are considered as additional candidate vectors for all units under consideration, in the present invention, only those whose applicability mask coincides with the location are selected as the basis for the additional candidate vectors current unit (i.e. the mask is active). Therefore, the movement in the present invention is called semi-global.

В качестве итоговой штрафной функции может выбираться минимальная из штрафных функций для всех SGMV-векторов. В конечном счете значение функции доверия может вычисляться посредством сложения MAD и значения итоговой штрафной функции.As the final penalty function, the minimum of the penalty functions for all SGMV vectors can be selected. Ultimately, the value of the confidence function can be calculated by adding the MAD and the value of the resulting penalty function.

На Фиг. 15A-15C показан пример применения полуглобального движения. В частности, на Фиг. 15A показан кадр, в котором для каждой рассматриваемой единицы показаны оцененные векторы предыдущего поля движения. За счет того, что камера движется наравне со всадником (следит за ним), сам всадник и лошадь в кадре остаются практически неподвижными, и их движению в целом соответствует вектор SGMV2=(1,1) (то есть один пиксель вправо, один пиксель вниз), тогда как фон движется быстро, и ему в целом соответствует вектор SGMV1=(8,1). Для каждого из векторов SGMV1 и SGMV2 строится маска применимости, как показано наложением белого цвета на Фиг. 15B и 15C, соответственно.In FIG. 15A-15C show an example of a semi-global motion application. In particular, in FIG. 15A shows a frame in which the estimated vectors of a previous motion field are shown for each unit in question. Due to the fact that the camera moves along with the rider (watching him), the rider and the horse in the frame remain almost motionless, and their movement as a whole corresponds to the vector SGMV2 = (1,1) (i.e. one pixel to the right, one pixel down ), while the background moves fast, and it generally corresponds to the vector SGMV1 = (8.1). An applicability mask is constructed for each of the vectors SGMV1 and SGMV2, as shown by the overlay of white in FIG. 15B and 15C, respectively.

Использование ФД с регуляризатором на основе полуглобального движения позволяет избежать серьезных ошибок при оценке движения. Например, в случаях, когда в кадре есть несколько объектов, движущихся по-разному, и когда в пределах одной отдельно взятой маски присутствуют блоки, которым с равным успехом (то есть MAD для этих блоков одинаков) могут быть поставлены в соответствие несколько блоков с разным смещением из другого кадра (например, блоки без текстур, которые могут ошибочно оцениваться как движущиеся иным образом по сравнению с окружающими блоками), использование ФД приведет к выбору вектора-кандидата, равного одному из SGMV, имеющих активную маску в этом блоке.The use of a PD with a regularizer based on semi-global movement avoids serious errors in the estimation of movement. For example, in cases where there are several objects in the frame moving in different ways, and when within a single mask there are blocks that, with equal success (that is, the MAD for these blocks are the same), several blocks with different shifting from another frame (for example, blocks without textures, which may be erroneously estimated as moving in a different way compared to the surrounding blocks), the use of a PD will lead to the selection of a candidate vector equal to one of the SGMVs that have an active mask in this block.

Комплексный подходA complex approach

Следует отметить, что в одном из вариантов осуществления настоящего изобретения может использоваться комплексная блок-схема 3DRS с обработкой кадра двойными блоками по укрупненному волновому фронту и с применением полуглобального движения.It should be noted that in one embodiment of the present invention, a complex 3DRS block diagram can be used with double block processing of the frame along the enlarged wavefront and using semi-global motion.

Так, на этапе 109 выполняется извлечение полуглобального движения из предыдущего поля движения, и для каждого SGMV-вектора строится маска применимости. Затем на этапе 100 выполняется формирование набора векторов-кандидатов для текущей единицы на основе правил получения. После этого выполняется цикл этапов 101-104 с учетом дополнительных SGMV-векторов, соответствующих построенным маскам применимости, и с применением штрафных функций для регуляризации поля движения. Когда для текущей единицы будут рассмотрены все векторы-кандидаты, способ переходит к этапу 105, на котором выполняется анализ пары значений функции доверия для каждого из блоков текущей единицы. На основе этого анализа на этапе 106 определяется, необходима ли обработка для одиночного блока. Если такая обработка не требуется, то выполняется этап 108, на котором происходит переход к следующей единице. Если обработка для одиночного блока необходима, то она выполняется на этапе 107, после чего тоже выполняется этап 108. Этапы 100-108 выполняются параллельно в несколько потоков, где в каждом из потоков обрабатывается отдельная укрупненная единица. Обход укрупненных единиц происходит по диагонали, начиная с одного из углов кадра.So, in step 109, semi-global motion is extracted from the previous motion field, and an applicability mask is constructed for each SGMV vector. Then, at step 100, a set of candidate vectors for the current unit is generated based on the acquisition rules. After that, the cycle of steps 101-104 is carried out taking into account additional SGMV vectors corresponding to the constructed applicability masks, and using penalty functions to regularize the field of motion. When all candidate vectors are considered for the current unit, the method proceeds to step 105, where the pair of values of the confidence function is analyzed for each of the blocks of the current unit. Based on this analysis, at step 106, it is determined whether processing is necessary for a single block. If such processing is not required, then step 108 is performed, in which the transition to the next unit occurs. If processing for a single block is necessary, then it is performed at step 107, after which step 108 is also performed. Steps 100-108 are executed in parallel in several threads, where a separate enlarged unit is processed in each thread. The enlarged units are circumvented diagonally, starting from one of the corners of the frame.

Комплексный подход позволяет использовать все преимущества предложенных трех аспектов настоящего изобретения и обеспечивает существенное ускорение оценки движения для FRC без потери качества.An integrated approach allows you to take full advantage of the proposed three aspects of the present invention and provides a significant acceleration of motion estimation for FRC without loss of quality.

ПрименениеApplication

Способ оценки движения согласно настоящему изобретению является программно-реализуемым и может работать в реальном времени на мобильном устройстве для целей преобразования частоты кадров с низким энергопотреблением. Время автономной работы мобильного устройства повышается, тогда как качество воспроизводимого видео не ухудшается.The motion estimation method of the present invention is software implemented and can be operated in real time on a mobile device for the purpose of converting low-power frame rate. The battery life of a mobile device increases, while the quality of the video being played does not deteriorate.

Примерами использования могут быть, в том числе, воспроизведение контента FHD, FHD+ и WQHD, требующего преобразование из 15 в 30 или из 30 в 60 кадров в секунду; видеосвязь, вебинары, использование FRC для восстановления частоты кадров при потерях в канале передачи; использование замедленного воспроизведения - например, при 4-кратном увеличении частоты кадров (например, из 240 в 960) или плавном воспроизведении с 32-кратным замедлением.Examples of use may include, but not limited to, playback of FHD, FHD +, and WQHD content that requires conversion from 15 to 30 or from 30 to 60 frames per second; video communications, webinars, the use of FRC to restore the frame rate in case of losses in the transmission channel; use of slow motion playback - for example, with a 4-fold increase in the frame rate (for example, from 240 to 960) or smooth playback with a 32-fold slowdown.

При этом, если рассматривать каждый аспект настоящего изобретения по отдельности по сравнению с известной из уровня техники базовой реализацией 3DRS с обработкой одиночными блоками по обычному волновому фронту, можно получить следующие результаты на устройстве Galaxy™ S8 с частотой процессора, установленной на 1,1 ГГц:Moreover, if we consider each aspect of the present invention separately in comparison with the prior art basic implementation of 3DRS with processing by single blocks at a conventional wavefront, you can get the following results on the Galaxy ™ S8 device with a processor frequency set to 1.1 GHz:

- первый аспект, обработка двойными блоками по обычному волновому фронту снижение вычислительных затрат на 10-30% по скорости обработки при небольшом снижении качества интерполяции (пикового отношения сигнал-шум) менее чем на 0,1 дБ.- the first aspect, processing with double blocks on a conventional wavefront reduces computational costs by 10-30% in processing speed with a slight decrease in the quality of interpolation (peak signal-to-noise ratio) by less than 0.1 dB.

- второй аспект, обработка одиночными блоками по укрупненному волновому фронту - снижение вычислительных затрат на 5-10% по скорости обработки без влияния на качество;- the second aspect, processing by single blocks along the enlarged wavefront - reduction of computing costs by 5-10% in processing speed without affecting the quality;

- третий аспект, обработка одиночными блоками по обычному волновому фронту с использованием полуглобального движения - увеличение PSNR на 0-0,3 дБ.- the third aspect, the processing of single blocks on a normal wavefront using semi-global motion - an increase in PSNR by 0-0.3 dB.

Ниже приводится сводная таблица результатов измерений для известных алгоритмов 3DRS и алгоритмов согласно настоящему изобретению для вышеуказанного испытания.The following is a summary table of measurement results for known 3DRS algorithms and algorithms according to the present invention for the above test.

Таблица 1Table 1

Вариант алгоритмаAlgorithm Option Результаты испытанийTest results Время на пару кадров [мс]Time for a couple of frames [ms] Среднее PSNR на внутреннем наборе данных [дБ]The average PSNR on the internal data set [dB] Базовый 3DRSBase 3DRS 22.9622.96 34.7334.73 Обработка одиночными блоками по обычному волновому фронту 1T (1 поток)Single-block processing on a conventional 1T wavefront (1 stream) 31.4131.41 34.2434.24 Обработка одиночными блоками по обычному волновому фронту 2T (2 потока)Single block processing on a conventional 2T wavefront (2 streams) 18.1518.15 34.2434.24 Обработка одиночными блоками по укрупненному волновому фронту 1T (1 поток)Single block processing along the enlarged wavefront 1T (1 stream) 28.1928.19 34.2434.24 Обработка одиночными блоками по укрупненному волновому фронту 2T (2 потока)Single block processing along the enlarged wavefront 2T (2 streams) 15.7715.77 34.2434.24 Обработка двойными блоками по укрупненному волновому фронту 2TProcessing by double blocks on the enlarged wavefront 2T 14.8214.82 34.2234.22 Обработка двойными блоками по укрупненному волновому фронту 2T с использованием полуглобального движенияProcessing by double blocks along the enlarged wavefront 2T using semi-global motion 15.9115.91 34.6134.61

Claims (64)

1. Способ оценки движения в видеоданных, содержащих множество кадров, содержащий этапы, на которых:1. A method for estimating motion in video data containing multiple frames, comprising the steps of: определяют, что текущей единицей кадра, для которой должна быть выполнена оценка движения, является двойной блок, причем двойной блок представляет собой набор из двух соседних блоков кадра, для которых оценка движения еще не выполнялась; иdetermining that the current unit of the frame for which the motion estimation is to be performed is a double block, the double block being a set of two adjacent blocks of the frame for which the motion estimation has not yet been performed; and оценивают вектор движения для двойного блока, причем этап оценки вектора движения содержит этапы, на которых:evaluate the motion vector for the double block, and the step of estimating the motion vector contains the stages in which: - получают набор, содержащий пространственные, временные и случайные векторы-кандидаты, соответствующие текущему двойному блоку,- get a set containing spatial, temporal and random candidate vectors corresponding to the current double block, - вычисляют для каждого вектора-кандидата значение функции доверия отдельно для каждого блока пары и- calculate for each candidate vector the value of the confidence function separately for each block of the pair and - выбирают в качестве оцененных векторов движения для отдельных блоков текущего двойного блока векторы-кандидаты с наименьшим значением функции доверия; и- candidate vectors with the smallest confidence function value are selected as estimated motion vectors for individual blocks of the current double block; and переходят к следующей единице кадра;go to the next unit of the frame; причем в качестве набора векторов-кандидатов, соответствующих текущему двойному блоку, используют набор векторов-кандидатов, соответствующий одному блоку из текущего двойного блока.moreover, as a set of candidate vectors corresponding to the current double block, use a set of candidate vectors corresponding to one block from the current double block. 2. Способ по п.1, дополнительно содержащий этапы, на которых:2. The method according to claim 1, additionally containing stages in which: анализируют значения функции доверия выбранных векторов движения обоих блоков в двойном блоке;analyze the values of the confidence function of the selected motion vectors of both blocks in a double block; принимают решение, требуется ли производить оценку вектора движения другого одиночного блока из пары блоков отдельно, на основе выполненного анализа;decide whether it is required to evaluate the motion vector of another single block from a pair of blocks separately, based on the analysis; если принято решение, что не требуется обрабатывать второй блок текущей единицы отдельно, то назначают лучшие векторы-кандидаты как оцененные векторы движения для блоков текущего двойного блока; иif it is decided that it is not necessary to process the second block of the current unit separately, then the best candidate vectors are assigned as estimated motion vectors for blocks of the current double block; and переходят к следующей единице кадра.go to the next unit of the frame. 3. Способ по п.2, в котором, если принято решение, что требуется обрабатывать второй блок текущей единицы как отдельный одиночный блок, то лучший вектор-кандидат для первого блока назначают как оцененный вектор движения для первого блока;3. The method according to claim 2, in which, if it is decided that it is necessary to process the second block of the current unit as a separate single block, the best candidate vector for the first block is assigned as the estimated motion vector for the first block; оценивают вектор движения для другого блока из текущего двойного блока отдельно; иevaluate the motion vector for another block from the current double block separately; and переходят к следующей единице кадра.go to the next unit of the frame. 4. Способ по п.3, в котором оценка вектора движения для упомянутого другого блока из текущего двойного блока содержит этапы, на которых:4. The method according to claim 3, in which the estimation of the motion vector for said other block from the current double block comprises the steps of: - получают набор, содержащий пространственные, временные и случайные векторы-кандидаты, соответствующие упомянутому другому блоку из текущего двойного блока,- get a set containing spatial, temporal and random candidate vectors corresponding to the said other block from the current double block, - вычисляют для каждого вектора-кандидата значение функции доверия и- calculate for each candidate vector the value of the confidence function and - выбирают в качестве оцененного вектора движения для упомянутого другого блока из текущего двойного блока вектор-кандидат с наименьшим значением функции доверия.- the candidate vector with the smallest value of the confidence function is selected as the estimated motion vector for said other block from the current double block. 5. Способ по п.2, в котором анализ значений функции доверия содержит этапы, на которых:5. The method according to claim 2, in which the analysis of the values of the confidence function contains the stages in which: вычисляют модуль разности между значением функции доверия для упомянутого одного блока из текущего двойного блока и значением функции доверия для другого блока из текущего двойного блока; иcalculating a difference module between the value of the confidence function for said one block from the current double block and the value of the confidence function for another block from the current double block; and сравнивают вычисленный модуль разности с предварительно заданным первым пороговым значением.comparing the calculated difference modulus with a predetermined first threshold value. 6. Способ по п.5, в котором принимают решение, что требуется обрабатывать другой блок текущей единицы отдельно, если вычисленный модуль разности выше или равен первому пороговому значению.6. The method according to claim 5, in which they decide that it is necessary to process another block of the current unit separately if the calculated difference modulus is higher or equal to the first threshold value. 7. Способ по п.2, в котором анализ значений функции доверия содержит этап, на котором:7. The method according to claim 2, in which the analysis of the values of the confidence function comprises the step of: сравнивают значение функции доверия для другого блока из текущего двойного блока с предварительно заданным вторым пороговым значением.comparing the value of the confidence function for another block from the current double block with a predefined second threshold value. 8. Способ по п.7, в котором принимают решение, что требуется обрабатывать другой блок текущей единицы отдельно, если значение функции доверия для другого блока из текущего двойного блока выше или равно второму пороговому значению.8. The method according to claim 7, in which they decide that it is necessary to process another block of the current unit separately if the value of the confidence function for another block from the current double block is higher or equal to the second threshold value. 9. Способ по п.1, в котором:9. The method according to claim 1, in which: - выборку временных векторов-кандидатов при оценке поля движения вперед для текущего кадра производят из инвертированного поля движения назад, оцененного для предыдущей пары кадров,- a selection of temporary candidate vectors when evaluating the forward motion field for the current frame is made from the inverted backward motion field estimated for the previous pair of frames, - выборку временных векторов-кандидатов при оценке поля движения назад для текущего кадра производят из инвертированного проецированного поля движения вперед, оцененного для текущей пары кадров.- a selection of temporary candidate vectors when evaluating the backward motion field for the current frame is made from the inverted projected forward motion field estimated for the current pair of frames. 10. Способ по п.9, в котором этап проецирования поля движения содержит этапы, на которых:10. The method according to claim 9, in which the step of projecting the motion field comprises the steps of: - выбирают вектор движения для текущего блока проецируемого поля движения,- choose a motion vector for the current block of the projected motion field, - записывают значение выбранного вектора движения в блок проецированного поля движения, при этом координаты этого блока являются ближайшими к сумме координат текущего блока проецируемого поля движения и выбранного вектора движения.- write the value of the selected motion vector in the block of the projected motion field, while the coordinates of this block are closest to the sum of the coordinates of the current block of the projected motion field and the selected motion vector. 11. Способ оценки движения в видеоданных, содержащих множество кадров, содержащий этапы, на которых:11. A method for estimating motion in video data containing multiple frames, comprising the steps of: определяют текущую единицу кадра, для которой должна быть выполнена оценка движения;determine the current unit of the frame for which the motion estimation should be performed; оценивают вектор движения для текущей единицы кадра, причем этап оценки вектора движения содержит этапы, на которых:evaluate the motion vector for the current unit of the frame, and the step of evaluating the motion vector contains the steps in which: - получают набор, содержащий пространственные, временные и случайные векторы-кандидаты, соответствующие текущей единице кадра,- get a set containing spatial, temporal and random candidate vectors corresponding to the current unit of the frame, - вычисляют для каждого вектора-кандидата значение функции доверия и- calculate for each candidate vector the value of the confidence function and - выбирают в качестве оцененных векторов движения для текущей единицы кадра векторы-кандидаты с наименьшим значением функции доверия; и- candidate vectors with the lowest confidence function value are selected as estimated motion vectors for the current unit of the frame; and переходят к следующей единице кадра;go to the next unit of the frame; причем оценку движения выполняют в отношении укрупненных единиц кадра, представляющих собой набор соседних единиц в строке,moreover, the motion estimation is performed in relation to the enlarged units of the frame, which are a set of neighboring units in a row, причем обход укрупненных единиц кадра выполняют по диагонали, начиная с одного из углов кадра,moreover, bypassing the enlarged units of the frame is performed diagonally, starting from one of the corners of the frame, причем оценку движения выполняют одновременно в двух или более потоках обработки, в каждом из которых обрабатывается отдельная укрупненная единица кадра.moreover, motion estimation is performed simultaneously in two or more processing streams, in each of which a separate enlarged unit of the frame is processed. 12. Способ оценки движения в видеоданных, содержащих множество кадров, содержащий этапы, на которых:12. A method for estimating motion in video data containing multiple frames, comprising the steps of: анализируют двумерную гистограмму ранее оцененного поля движения;analyze a two-dimensional histogram of a previously estimated motion field; выбирают SGMV-векторы (векторы-кандидаты на основе полуглобального движения) из упомянутой гистограммы;selecting SGMV vectors (candidate vectors based on semi-global motion) from said histogram; составляют относительно текущего кадра для каждого выбранного SGMV-вектора маску, активную в тех частях кадра, где присутствует движение с выбранным SGMV-вектором;relative to the current frame, for each selected SGMV vector, a mask active in those parts of the frame where there is movement with the selected SGMV vector; определяют текущую единицу кадра, для которой должна быть выполнена оценка движения;determine the current unit of the frame for which the motion estimation should be performed; оценивают вектор движения для текущей единицы кадра, причем этап оценки вектора движения содержит этапы, на которых:evaluate the motion vector for the current unit of the frame, and the step of evaluating the motion vector contains the steps in which: - получают набор векторов-кандидатов, соответствующих текущей единице кадра,- receive a set of candidate vectors corresponding to the current unit of the frame, - вычисляют для каждого вектора-кандидата значение функции доверия и- calculate for each candidate vector the value of the confidence function and - выбирают в качестве оцененных векторов движения для текущей единицы кадра векторы-кандидаты с наименьшим значением функции доверия; и- candidate vectors with the lowest confidence function value are selected as estimated motion vectors for the current unit of the frame; and переходят к следующей единице кадра;go to the next unit of the frame; причем этап получения набора векторов-кандидатов содержит этапы, на которых:moreover, the step of obtaining a set of candidate vectors contains stages in which: - получают пространственные векторы-кандидаты, соответствующие текущей единице кадра,- receive candidate spatial vectors corresponding to the current unit of the frame, - получают временные векторы-кандидаты, соответствующие текущей единице кадра,- receive temporary candidate vectors corresponding to the current unit of the frame, - получают случайные векторы-кандидаты на основе нулевого вектора движения и/или лучшего на данный момент вектора-кандидата, соответствующие текущей единице кадра, и- receive random candidate vectors based on the zero motion vector and / or currently the best candidate vector corresponding to the current unit of the frame, and - получают случайные SGMV-векторы-кандидаты, соответствующие текущей единице кадра и составленной маске.- receive random SGMV candidate vectors corresponding to the current unit of the frame and the composed mask. 13. Способ по п. 12, в котором этап получения случайных SGMV-векторов содержит этап, на котором:13. The method of claim 12, wherein the step of obtaining random SGMV vectors comprises the step of: - добавляют в набор векторов-кандидатов для текущей единицы по меньшей мере один случайный вектор-кандидат, полученный путем прибавления случайного смещения к SGMV-вектору, маска которого активна в текущей единице.- add at least one random candidate vector to the set of candidate vectors for the current unit, obtained by adding a random offset to the SGMV vector whose mask is active in the current unit. 14. Способ по п.12, в котором вычисление функции доверия содержит этапы, на которых:14. The method according to item 12, in which the calculation of the confidence function contains the steps in which: - вычисляют MAD (среднюю абсолютную разность) векторов-кандидатов между текущим блоком и блоком, на который указывает вектор-кандидат,- calculate the MAD (average absolute difference) of the candidate vectors between the current block and the block pointed to by the candidate vector, - вычисляют итоговую штрафную функцию, причем итоговой штрафной функцией является минимальная из штрафных функций для всех SGMV-векторов, причем штрафные функции зависят от расстояния между вектором-кандидатом и рассматриваемым SGMV-вектором, причем штрафная функция является возрастающей функцией, ограниченной сверху, и- calculate the final penalty function, and the final penalty function is the minimum of the penalty functions for all SGMV vectors, and the penalty functions depend on the distance between the candidate vector and the SGMV vector under consideration, and the penalty function is an increasing function bounded above, and - вычисляют значение функции доверия посредством сложения MAD и значения итоговой штрафной функции.- calculate the value of the confidence function by adding the MAD and the value of the total penalty function.
RU2017127691A 2017-08-03 2017-08-03 Motion estimation through three-dimensional recursive search (3drs) in real time for frame conversion (frc) RU2656785C1 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
RU2017127691A RU2656785C1 (en) 2017-08-03 2017-08-03 Motion estimation through three-dimensional recursive search (3drs) in real time for frame conversion (frc)
KR1020180088654A KR102496619B1 (en) 2017-08-03 2018-07-30 Motion estimation method and apparatus for a plurality of frames
US16/053,233 US10523961B2 (en) 2017-08-03 2018-08-02 Motion estimation method and apparatus for plurality of frames
EP18840249.9A EP3596698B1 (en) 2017-08-03 2018-08-03 Motion estimation method and apparatus for plurality of frames
PCT/KR2018/008825 WO2019027280A1 (en) 2017-08-03 2018-08-03 Motion estimation method and apparatus for plurality of frames

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2017127691A RU2656785C1 (en) 2017-08-03 2017-08-03 Motion estimation through three-dimensional recursive search (3drs) in real time for frame conversion (frc)

Publications (1)

Publication Number Publication Date
RU2656785C1 true RU2656785C1 (en) 2018-06-06

Family

ID=62560000

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2017127691A RU2656785C1 (en) 2017-08-03 2017-08-03 Motion estimation through three-dimensional recursive search (3drs) in real time for frame conversion (frc)

Country Status (2)

Country Link
KR (1) KR102496619B1 (en)
RU (1) RU2656785C1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113160267A (en) * 2021-05-21 2021-07-23 上海通途半导体科技有限公司 Motion vector calculation method and device based on deep learning
CN113542743A (en) * 2020-04-22 2021-10-22 瑞昱半导体股份有限公司 Image processing method and image processing device
RU2777883C1 (en) * 2019-12-31 2022-08-11 Синтезис Электроник Текнолоджи Ко., Лтд Method for highly efficient detection of a moving object on video, based on the principles of codebook

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068357A (en) * 2007-05-24 2007-11-07 北京航空航天大学 Frequency-Domain Fast Sub-Pixel Global Motion Estimation Method for Image Stabilization
US20100328538A1 (en) * 2009-06-29 2010-12-30 Nxp B.V. Parallel three-dimensional recursive search (3drs) meandering algorithm
US20130279590A1 (en) * 2012-04-20 2013-10-24 Novatek Microelectronics Corp. Image processing circuit and image processing method
RU2538937C2 (en) * 2009-06-25 2015-01-10 Конинклейке Филипс Электроникс Н.В. Stereoimage recording method, system and camera
EP2304931B1 (en) * 2008-06-23 2015-10-28 Mediatek Inc. Joint system for frame rate conversion and video compression

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0535746B1 (en) * 1991-09-30 1997-01-29 Philips Electronics Uk Limited Motion vector estimation, motion picture encoding and storage
US20100166073A1 (en) * 2008-12-31 2010-07-01 Advanced Micro Devices, Inc. Multiple-Candidate Motion Estimation With Advanced Spatial Filtering of Differential Motion Vectors
US9036692B2 (en) * 2010-01-18 2015-05-19 Mediatek Inc. Motion prediction method
GB2539198B (en) * 2015-06-08 2019-09-25 Imagination Tech Ltd Motion estimation using collocated blocks

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101068357A (en) * 2007-05-24 2007-11-07 北京航空航天大学 Frequency-Domain Fast Sub-Pixel Global Motion Estimation Method for Image Stabilization
EP2304931B1 (en) * 2008-06-23 2015-10-28 Mediatek Inc. Joint system for frame rate conversion and video compression
RU2538937C2 (en) * 2009-06-25 2015-01-10 Конинклейке Филипс Электроникс Н.В. Stereoimage recording method, system and camera
US20100328538A1 (en) * 2009-06-29 2010-12-30 Nxp B.V. Parallel three-dimensional recursive search (3drs) meandering algorithm
US20130279590A1 (en) * 2012-04-20 2013-10-24 Novatek Microelectronics Corp. Image processing circuit and image processing method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2777883C1 (en) * 2019-12-31 2022-08-11 Синтезис Электроник Текнолоджи Ко., Лтд Method for highly efficient detection of a moving object on video, based on the principles of codebook
CN113542743A (en) * 2020-04-22 2021-10-22 瑞昱半导体股份有限公司 Image processing method and image processing device
CN113160267A (en) * 2021-05-21 2021-07-23 上海通途半导体科技有限公司 Motion vector calculation method and device based on deep learning
CN113160267B (en) * 2021-05-21 2024-04-16 上海通途半导体科技有限公司 Motion vector calculation method and device based on deep learning

Also Published As

Publication number Publication date
KR102496619B1 (en) 2023-02-07
KR20190015120A (en) 2019-02-13

Similar Documents

Publication Publication Date Title
US6380986B1 (en) Motion vector search method and apparatus
Chen et al. Optimizing video object detection via a scale-time lattice
US20230030020A1 (en) Defining a search range for motion estimation for each scenario frame set
JP5044568B2 (en) Motion estimation using predictive guided decimation search
US12131452B1 (en) Method and apparatus for enhancing stereo vision
JP5478047B2 (en) Video data compression pre-processing method, video data compression method and video data compression system using the same
US20020114394A1 (en) System and method for motion vector generation and analysis of digital video clips
CN109446967B (en) Face detection method and system based on compressed information
EP1587032A1 (en) Image processing apparatus and method, recording medium, and program
WO2021073066A1 (en) Image processing method and apparatus
CN107483960B (en) Motion compensation frame rate up-conversion method based on spatial prediction
RU2656785C1 (en) Motion estimation through three-dimensional recursive search (3drs) in real time for frame conversion (frc)
US8594199B2 (en) Apparatus and method for motion vector filtering based on local image segmentation and lattice maps
JP2010232734A (en) Image coding apparatus and image coding method
US10523961B2 (en) Motion estimation method and apparatus for plurality of frames
Guo et al. Frame rate up-conversion using linear quadratic motion estimation and trilateral filtering motion smoothing
JP2001145109A (en) Moving vector detecting device
Yang et al. Depth-aware unpaired video dehazing
Wang et al. An approach to video key-frame extraction based on rough set
KR100335434B1 (en) Motion estimation method
CN103618904A (en) Motion estimation method and device based on pixels
KR100451184B1 (en) Method for searching motion vector
KR20210133844A (en) Systems and methods of motion estimation using monocular event-based sensor
Zhang et al. Swin-VEC: Video Swin Transformer-based GAN for video error concealment of VVC
JP2006014183A (en) Image encoding device and method, and program therefor
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载