RU2530318C2 - Способ выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования и соответствующее устройство - Google Patents

Способ выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования и соответствующее устройство Download PDF

Info

Publication number
RU2530318C2
RU2530318C2 RU2012141233/08A RU2012141233A RU2530318C2 RU 2530318 C2 RU2530318 C2 RU 2530318C2 RU 2012141233/08 A RU2012141233/08 A RU 2012141233/08A RU 2012141233 A RU2012141233 A RU 2012141233A RU 2530318 C2 RU2530318 C2 RU 2530318C2
Authority
RU
Russia
Prior art keywords
coding
elements
sub
motion vectors
motion
Prior art date
Application number
RU2012141233/08A
Other languages
English (en)
Other versions
RU2012141233A (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 МедиаТек Инк.
Publication of RU2012141233A publication Critical patent/RU2012141233A/ru
Application granted granted Critical
Publication of RU2530318C2 publication Critical patent/RU2530318C2/ru

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • H04N19/139Analysis of motion vectors, e.g. their magnitude, direction, variance or reliability
    • 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
    • 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
    • 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/56Motion estimation with initialisation of the vector search, e.g. estimating a good candidate to initiate a 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/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures

Abstract

Изобретение относится к обработке видеоданных для компенсации движения. Технический результат - выполнение локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования. Способ для выполнения локализованного многогипотезного прогнозирования содержит этапы, на которых: разделяют элемент кодирования на множество подэлементов кодирования, обрабатывают подэлементы кодирования, при этом получают информацию движения первого набора кодируемых элементов, получают множество пиксельных значений из информации движения первого набора кодируемых элементов, используют линейную комбинацию упомянутого множества пиксельных значений в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования и выводят прогнозированное пиксельное значение другого подэлемента кодирования в элементе кодирования, используя информацию движения второго набора кодируемых элементов. 3 н. и 30 з.п. ф-лы, 20 ил.

Description

Уровень техники
Перекрестная ссылка на родственные заявки
Эта заявка испрашивает приоритет предварительной заявки США № 61/323948, которая была подана 14 апреля 2010 г. под названием “MULTIHYPOTHESIS PREDICTION IN VIDEO CODING” и которая включена сюда посредством ссылки. В данной заявке, кроме того, испрашивается приоритет заявки США № 13/080668, которая была подана 06 апреля 2011 г. под названием "METHOD FOR PERFORMING LOCALIZED MULTIHYPOTHESIS PREDICTION DURING VIDEO CODING OF A CODING UNIT, AND ASSOCIATED APPARATUS" и которая включена сюда посредством ссылки.
Область техники, к которой относится изобретение
Настоящее изобретение относится к обработке видеоданных для компенсации движения, и более конкретно, к способу выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования, и к соответствующему устройству.
Описание предшествующего уровня техники
Компенсация движения представляет собой технологию, используемую при кодировании и декодировании видеоданных для сжатия видеоданных и их распаковки. Благодаря компенсации движения, текущее изображение может быть представлено в виде некоторых сегментов одного или больше опорных изображений, где опорные изображения могут быть предшествующими по времени или даже из будущего. Как правило, когда используется компенсация движения, изображения могут быть точно синтезированы из предыдущих переданных/сохраненных изображений, и может быть улучшена эффективность сжатия. По мере прогресса технологий кодирования, были введены реализации, относящиеся к новым стандартам. Кажется маловероятным, что обычные схемы компенсации движения могут всегда правильно работать. Например, в некоторых ситуациях может существовать проблема низкой эффективности кодирования. Таким образом, требуется новый способ для улучшения эффективности кодирования при кодировании видеоданных.
Сущность изобретения
Поэтому, цель заявленного изобретения состоит в том, чтобы предоставить способ для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента (единицы) кодирования и чтобы предоставить соответствующее устройство для решения упомянутой выше задачи.
Примерный вариант осуществления способа для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования содержит этапы, на которых: разделяют элемент кодирования на множество подэлементов кодирования; и выполняют обработку каждого из подэлементов кодирования. Более конкретно, этап обработки каждого из подэлементов кодирования дополнительно содержит этапы, на которых: получают информацию о движении первого набора кодированных элементов для многогипотезной компенсации движения конкретного подэлемента кодирования из подэлементов кодирования; используют линейную комбинацию множества значений пикселя, полученных из информации о движении первого набора кодированных элементов, как прогнозируемое пиксельное значение конкретного подэлемента кодирования; и получают прогнозируемое пиксельное значение другого подэлемента кодирования в элементе кодирования, используя информацию о движении второго набора кодированных элементов, причем второй набор кодированных элементов содержит по меньшей мере один кодированный элемент, который не находится в первом наборе кодированных элементов.
Примерный вариант осуществления устройства для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования содержит схему обработки, выполненную с возможностью выполнения видеокодирования в отношении элемента кодирования, где схема обработки содержит модуль предварительной обработки и по меньшей мере один модуль кодирования. Модуль предварительной обработки выполнен с возможностью разделять элемент кодирования на множество подэлементов кодирования и обрабатывать каждый из подэлементов кодирования. Более конкретно, модуль предварительной обработки получает информацию о движении первого набора кодированных элементов для многогипотезной компенсации движения конкретного подэлемента кодирования из подэлементов кодирования, и выполняет многогипотезную компенсацию движения в отношении конкретного подэлемента кодирования в соответствии с информацией о движении, где модуль предварительной обработки использует линейную комбинацию множества пиксельных значений, извлеченных из информации о движении первого набора кодированных элементов, как прогнозируемое пиксельное значение конкретного подэлемента кодирования. Кроме того по меньшей мере один модуль кодирования выполнен с возможностью выполнения видеокодирования элемента кодирования на основе многогипотезной компенсации движения, выполняемой модулем предварительной обработки. Кроме того, модуль предварительной обработки получают прогнозируемое пиксельное значение другого подэлемента кодирования в элементе кодирования путем использования информации о движении второго набора кодированных элементов, содержащих по меньшей мере один кодированный элемент, который не является первым набором кодированных элементов. Примерный вариант осуществления способа для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования содержит этапы, на которых: разделяют элемент кодирования на множество подэлементов кодирования; и обрабатывают каждый из подэлементов кодирования. Более конкретно, этап обработки каждого из подэлементов кодирования дополнительно содержит этап, на котором: получают информацию о движении множества кодированных элементов для многогипотезной компенсации движения конкретного подэлемента кодирования из подэлементов кодирования; используют взвешенное суммирование множества пиксельных значений, полученных из информации о движении кодированных элементов, в качестве прогнозируемого пиксельного значения конкретного подэлемента кодирования; и получают прогнозируемое пиксельное значение другого подэлемента кодирования в элементе кодирования, используя разное взвешенное суммирование пиксельных значений, полученных из информации о движении кодированных элементов.
Эти и другие цели настоящего изобретения, без сомнения, будут понятны для специалистов в данной области техники после чтения следующего подробного описания предпочтительного варианта воплощения, который представлен на различных фигурах и чертежах.
Краткое описание чертежей
На фиг. 1A показана схема устройства, предназначенного для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования, в соответствии с первым вариантом осуществления настоящего изобретения.
На фиг. 1B показан модуль межкадрового/внутрикадрового прогнозирования, представленный на фиг. 1A, в соответствии с вариантом осуществления настоящего изобретения.
На фиг. 1C показаны примерные операции многогипотезной компенсации движения схемы многогипотезного межкадрового прогнозирования, показанной на фиг. 1B, в соответствии с вариантом осуществления настоящего изобретения.
На фиг. 2 показана блок-схема последовательности операций способа для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования в соответствии с вариантом осуществления настоящего изобретения.
На фиг. 3 показаны примерные кодированные блоки, связанные со способом, представленным на фиг. 2, в соответствии с вариантом осуществления настоящего изобретения.
На фиг. 4 показаны некоторые детали осуществления, связанные со способом, представленным на фиг. 2, в соответствии с вариантом осуществления настоящего изобретения.
На фиг. 5A-5D иллюстрируются некоторые детали осуществления многогипотезного прогнозирования, которые связаны со способом, представленным на фиг. 2, в соответствии с различными вариантами осуществления настоящего изобретения.
На фиг. 6A-6B иллюстрируются примерные источники получения информации о движении, которые связаны со способом, показанным на фиг. 2, в соответствии с различными вариантами осуществления настоящего изобретения.
На фиг. 7A-7B, соответственно, иллюстрируются временные и пространственные векторы движения (MV), связанные со способом, представленным на фиг. 2, в соответствии с различными вариантами осуществления настоящего изобретения.
На фиг. 8A-8C иллюстрируются примерные источники получения векторов движения, которые связаны со способом, представленным на фиг. 2, в соответствии с некоторыми вариантами осуществления настоящего изобретения.
На фиг. 9 показаны некоторые детали осуществления, связанные со способом, представленным на фиг. 2, в соответствии с вариантом осуществления настоящего изобретения.
На фиг. 10 показаны некоторые детали осуществления, связанные со способом, показанным на фиг. 2, в соответствии с другими вариантами осуществления настоящего изобретения.
На фиг. 11 показаны некоторые детали осуществления, связанные со способом, представленным на фиг. 2, в соответствии с вариантом осуществления настоящего изобретения.
Подробное описание изобретения
Некоторые термины, используемые в следующем описании и в формуле изобретения, относятся к конкретным компонентам. Как будет понятно для специалиста в данной области техники, изготовители электронного оборудования могут называть компоненты разными названиями. В данном документе не предполагается делать какое-либо различие между компонентами, которые отличаются по названию, но не по функции. В следующем описании и в формуле изобретения, термины "включать" и "содержать", используются в открытом смысле, и, таким образом, их следует интерпретировать, как означающие "включающий в себя, но не ограниченный этим...". Кроме того, термин "соединение" предназначен для обозначения либо опосредованного, или прямого электрического соединения. В соответствии с этим, если одно устройство соединено с другим устройством, такое соединение может быть выполнено посредством прямого электрического соединения или посредством опосредованного электрического соединения через другие устройства и соединения.
Рассмотрим фиг. 1A, на которой иллюстрируется схема устройства 100 для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования, в соответствии с первым вариантом осуществления настоящего изобретения. Устройство 100 содержит модуль 110 межкадрового/внутрикадрового прогнозирования (обозначен как "межкадровое/внутрикадровое прогнозирование" на фиг. 1A), арифметический блок 120 и модуль 130 преобразования квантования (обозначен как “преобразование и квантование” на фиг. 1A), схема 140 статистического кодирования (обозначена как "статистическое кодирование" на фиг. 1A) и модуль 150 обратного преобразования и обратного квантования (помечен “обратное преобразование и обратное квантование” на фиг. 1A), схема 160 реконструирования (обозначена “REC” на фиг. 1A), фильтр 170 удаления блочности и буфер 180 кадров. На фиг. 1B модуль 110 межкадрого/внутрикадрового прогнозирования, упомянутый выше, может содержать многогипотезную схему 112 межкадрового прогнозирования (обозначена как “многогипотезное межкадровое прогнозирование” на фиг. 1B), схему 114 межкадрового прогнозирования (обозначена как "межкадровое прогнозирование" на фиг. 1B), схему 116 внутрикадрового прогнозирования (обозначена как "внутрикадровое прогнозирование" на фиг. 1B) и схему 118 переключения.
В соответствии с вариантом осуществления, показанным на фиг. 1A, устройство 100 выполняет видеокодирование исходного сигнала 109, и генерирует выходной сигнал, содержащий результаты кодирования, такой как выходной сигнал схемы 140 статистического кодирования. Например, исходный сигнал 109 может представлять входное видео, переносящее данные элемента кодирования, и выходной сигнал схемы 140 статистического кодирования может представлять выходной поток битов (или поток битов). Кроме того, модуль 110 межкадрового/внутрикадрового прогнозирования выполнен с возможностью выполнения межкадрового/внутрикадрового прогнозирования и, более конкретно, выполнения многогипотезного межкадрового прогнозирования, межкадрового прогнозирования и внутрикадрового прогнозирования, путем использования схемы 112 многогипотезного межкадрового прогнозирования, схемы 114 межкадрового прогнозирования и схемы 116 внутрикадрового прогнозирования, показанных на фиг. 1B, соответственно.
Как показано на фиг. 1A, арифметический блок 120 выполнен с возможностью выполнения арифметической операции, такой как операция вычитания исходного сигнала 109 (который может представлять собой входные видеоданные, переносящие, например, данные элемента кодирования), и сигнал 119 прогнозирования, генерируемый модулем 110 межкадрового/внутрикадрового прогнозирования. Кроме того, модуль 130 преобразования и квантования, схема 140 статистического кодирования, модуль 150 обратного преобразования и обратного квантования и схема 160 реконструирования выполнены с возможностью выполнения преобразования и квантования, статистического кодирования, операции обратного преобразования и обратного квантования и реконструирования, соответственно. В результате, схема 160 реконструирования генерирует временно реконструированный сигнал 169, который переносит реконструированные результаты операций реконструирования. Кроме того, фильтр 170 удаления блочности выполнен с возможностью выполнения фильтрации с удалением блоков в отношении реконструированного сигнала 169 для генерирования сигнала 179 без блоков, который переносит данные без блоков, для их сохранения в буфере 180 кадров, для межкадрового прогнозирования последовательных изображений кодирования, и модуль 110 межкадрового/внутрикадрового прогнозирования выполнен с возможностью доступа к временно реконструированному сигналу 169 и данным без блоков предыдущих декодируемых изображений, переносимых восстановленным сигналом 189. Это представлено только с целью иллюстрации, и не означает ограничение настоящего изобретения. В соответствии с некоторыми вариациями данного варианта осуществления, в ситуации, когда фильтр 170 удаления блочности и его фильтрация с удалением блоков могут быть исключены, реконструированные результаты, переносимые временно реконструированным сигналом 169, могут быть сохранены в буфере 180 кадров, и модуль 110 межкадрового/внутрикадрового прогнозирования выполнен с возможностью оценки временно реконструированного сигнала 169 текущего изображения кодирования и реконструированного результата предыдущих декодируемых изображений через восстановленный сигнал 189.
На фиг. 1B, схема 112 многогипотезного межкадрового прогнозирования выполнена с возможностью выполнения многогипотезного межкадрового прогнозирования в соответствии с исходным сигналом 109 и реконструированными результатами предыдущих декодированных изображений через восстановленный сигнал 189, для генерирования многогипотезного межкадрового выхода 113 прогнозирования, схема 114 межкадрового прогнозирования выполнена с возможностью выполнения межкадрового прогнозирования в соответствии с исходным сигналом 109 и реконструированными результатами предыдущих декодируемых изображений через восстановленный сигнал 189 для генерирования выхода 115 межкадрового прогнозирования, и схема 116 внутрикадрового прогнозирования выполнена с возможностью выполнения внутрикадрового прогнозирования в соответствии с исходным сигналом 109 и временно реконструированным сигналом 169 для генерирования выходного сигнала 117 внутрикадрового прогнозирования, где схема 118 переключения выполнена с возможностью динамического выбора одного из выходного сигнала 113 многогипотезного межкадрового прогнозирования, выходного сигнала 115 межкадрового прогнозирования и выходного сигнала 117 внутрикадрового прогнозирования, как упомянутый выше сигнал 119 прогнозирования.
На практике по меньшей мере часть (например, часть или все) устройства 100 может быть воплощена с использованием аппаратных схем. Например, устройство 100 может быть воплощено со схемой обработки данных, выполненной с возможностью выполнения видеокодирования элемента кодирования, где схема обработки может содержать модуль предварительной обработки, содержащий модуль 110 межкадрового/внутрикадрового прогнозирования, и может дополнительно содержать по меньшей мере один модуль кодирования, содержащий арифметический блок 120 и модуль 130 преобразования и квантования, схему 140 статистического кодирования, модуль 150 обратного преобразования и обратного квантования, схему 160 реконструирования и фильтр 170 удаления блочности. Более конкретно, один или больше компонентов устройства 100 могут быть воплощены с использованием технологий цифровой обработки сигналов. Это предназначено только для иллюстрации, и не означает ограничения настоящего изобретения. В соответствии с некоторыми вариациями данного варианта осуществления по меньшей мере часть устройства 100 может быть воплощена с помощью программных средств и/или встроенного программного обеспечения. Например, схема обработки может представлять собой процессор, выполняющий множество программных кодов, где процессор, выполняющий первую часть программных кодов, может выполнять те же или аналогичные операции модуля предварительной обработки, упомянутого выше, и процессор, выполняющий вторую часть программных кодов, может выполнять те же или аналогичные операции упомянутого выше модуля кодирования.
Независимо от того, воплощена ли по меньшей мере часть (например, часть или все) устройства 100, используя аппаратные схемы или используя программную реализацию, устройство 100 выполнено с возможностью выполнять видеокодирование в единицах элементов кодирования. Например, элементы кодирования могут представлять собой макроблоки (MB (МБ)). В другом примере элементы кодирования могут представлять собой элементы кодирования с размером от заданного наибольшего элемента кодирования (LCU (НБУК)) и до заданного наименьшего элемента кодирования (SCU(НМУК)). Изображение вначале разделяют на множество LCU, и каждый из LCU адаптивно разделяют на меньшие элементы кодирования, пока не будут достигнуты листовые элементы кодирования. В соответствии с этим вариантом осуществления, упомянутый выше модуль предварительной обработки выполнен с возможностью разделения упомянутого выше элемента кодирования на множество подэлементов кодирования (например, разделенных на различные виды сегментов, такие как квадратные или неквадратные сегменты), и выполнен с возможностью выполнения прогнозирования для каждого из этих подэлементов кодирования. Более конкретно, модуль предварительной обработки может выполнять межкадровое прогнозирование, внутрикадровое прогнозирование или многогипотезную компенсацию движения для каждого из подэлементов кодирования. Когда многогипотезную компенсацию движения выбирают для конкретного подэлемента кодирования, модуль предварительной обработки рассчитывает линейную комбинацию множества пиксельных значений, полученных в соответствии с множеством других кодированных элементов, и использует рассчитанный результат, как спрогнозированное пиксельное значение для конкретного подэлемента кодирования. Множество других кодированных элементов могут представлять собой кодированные подэлементы кодирования, кодированные элементы кодирования, или их комбинацию. Кроме того, упомянутый выше по меньшей мере один модуль кодирования выполнен с возможностью выполнения видеокодирования элемента кодирования на основе многогипотезной компенсации движения, выполняемой модулем предварительной обработки.
На фиг. 1C иллюстрируются примерные операции многогипотезной компенсации движения элемента 110 межкадрового/внутрикадрового прогнозирования, показанного на фиг. 1A, в соответствии с вариантом осуществления настоящего изобретения. В данном варианте осуществления обозначения F (t0-3), F (t0-2), F (t0-1) и F (t0) используются для представления участка из множества последовательных кадров {F (t)}, при этом кадр F (t0) представляет собой текущий кадр. Текущий кадр F (t0) может содержать множество элементов {CU(t0)} кодирования, и элемент CU(t0) кодирования может содержать множество подэлементов {SubCU(t0)} кодирования. Модуль предварительной обработки, упомянутый выше, соответственно, получает информацию о движении, такую как векторы {vk} движения, из множества других подэлементов/элементов кодирования, что означает, что модуль предварительной обработки использует векторы движения множества других подэлементов/элементов кодирования, как векторы {vk} движения для многогипотезной компенсации движения конкретного подэлемента кодирования. В соответствии с данным вариантом осуществления, модуль предварительной обработки может выполнять многогипотезную компенсацию движения для конкретного подэлемента кодирования, такого как подэлемент кодирования SubCU(t0), показанный на фиг. 1C, в соответствии с множеством векторов {vk} движения.
В общем, модуль предварительной обработки рассчитывает линейную комбинацию множества опорных пиксельных значений {Ψr}, полученных на основе информации о движении множества других подэлементов кодирования/элементов кодирования. Линейная комбинация представляет собой прогнозируемое пиксельное значение Ψр у конкретного подэлемента кодирования. Например, информация о движении первого набора кодированных элементов содержит один или комбинацию вектора (векторов) движения, индекс (индексы) опорного кадра и направление (направления) прогнозирования, и более конкретно, содержит некоторые векторы движения, которые получают из одного подэлемента кодирования/элемента кодирования. В другом примере информация о движении может представлять собой вектор (вектора) движения, индекс (индексы) опорного кадра, направление (направления) прогнозирования, или любую комбинацию упомянутых выше. Векторы движения используются, как пример информации о движении следующих вариантов осуществления. Следует отметить, что линейная комбинация может представлять собой взвешенное суммирование множества опорных пиксельных значений, которое означает, что модуль предварительной обработки использует взвешенное суммирование множества пиксельных значений как прогнозируемое пиксельное значение конкретного подэлемента кодирования. Например, в ситуации, когда специфичный прогнозируемый пиксель, имеющий прогнозируемое пиксельное значение Ψр, принадлежит i-ому подэлементу кодирования (например, подэлементу SubCU(t0) кодирования, показанному на фиг. 1C) и расположен в положении x (например, вектор, обозначающий положение, такой как двумерный вектор на плоскости изображения текущего кадра F (t0)), прогнозируемое пиксельное значение Ψр может быть перезаписано, как Ψр(i,x), и прогнозируемое пиксельное значение Ψр(i, x) может быть выражено следующим образом:
Ψр(i, x)=Σk
Figure 00000001
K(hk (i,x) Ψr(x+vk));
где индекс k может изменяться в пределах установленного K, с обозначением hk(i, x), представляющим взвешенный параметр, ассоциированный с индексом k. Например, в ситуации, когда количество возможных значений k больше, чем одно, сумма взвешенных параметров {hk(i, x)} может быть равна единице, для простоты.
Как показано на фиг. 1C, векторы {vk} движения могут содержать векторы vA и vB движения подэлементов A и B кодирования других элементов кодирования в пределах текущего кадра F(t0), и дополнительно содержать вектор VT движения подэлемента T кодирования элемента CU(t0-1) кодирования в пределах другого кадра, такого как предыдущий кадр F (t0-1). Например, в ситуации, когда элементы кодирования представляют собой блоки, элемент CU(t0-1) кодирования может представлять собой совместно выделенный блок относительно элемента CU(t0) кодирования. В результате, путем применения взвешенных параметров {hk(i,x)} к опорным пиксельным значениям {Ψr}, полученых векторами {vk} движения, модуль предварительной обработки может смешан/перемешан с компонентами изображения, обозначенными векторами {vk} движения, такими как VA, VB и VT, для генерирования взвешенного изображения суммирования и использовать это взвешенное изображение суммирования, как прогнозируемый компонент изображения специфичного подэлемента кодирования, такого как подэлемент SubCU(t0) кодирования, показанного на фиг. 1C. Рассмотрим фиг. 2, на которой показана дополнительная информация в отношении раскрытых выше операций.
На фиг. 2 показана блок-схема последовательности операций способа 910 для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования в соответствии с вариантом осуществления настоящего изобретения. Способ 910 можно применять к устройству 100, показанному на фиг. 1A, и более конкретно, к схеме обработки, упомянутой выше. Способ описан следующим образом.
На этапе 912 упомянутый выше модуль предварительной обработки разделяет элемент CU(t0) кодирования (например, рассматриваемый элемент кодирования) на множество подэлементов кодирования, таких как подэлементы {SubCU(t0)} кодирования и выполняет прогнозирование для каждого из подэлементов {SubCU(t0)} кодирования. В частности, модуль предварительной обработки получает информацию о движении, такую как векторы {vk} движения, раскрытую выше, для многогипотезной компенсации движения конкретного подэлемента SubCU(t0) кодирования подэлементов (SubCU(t0)} кодирования из множества других элементов кодирования, упомянутых выше (например, множества других подэлементов/элементов кодирования, которые могут содержать: другой подэлемент (элементы) кодирования элемента CU(t0) кодирования; подэлемент (элементы) кодирования по меньшей мере одного другого элемента кодирования; и/или другой элемент (элементы) кодирования). В соответствии с вариантом осуществления настоящего изобретения, например, такого как показан на фиг. 3, элемент CU(t0) кодирования может представлять собой блок, проходящий обработку (помеченный как “Обработанный блок” на фиг. 3), и конкретный подэлемент SubCU(t0) кодирования может представлять собой подблок SB, где затененная область, показанная на фиг. 3, может представлять собой по меньшей мере область кодированных элементов/кодированных блоков {CB}. На фиг. 3 кодированные блоки {CB} могут содержать левый кодированный блок CBL, верхний левый кодированный блок CBUL, верхний кодированный блок CBU и верхний правый кодированный блок CBUR. Например, векторы {vk} движения могут содержать векторы движения по меньшей мере части (например, части или всех) кодированных блоков {CB}, таких как один или больше кодированных блоков CBL, CBUL, CBU, и CBUR.
На этапе 914 упомянутый выше модуль предварительной обработки выполняет многогипотезную компенсацию движения для конкретного подэлемента SubCU(t0) кодирования в соответствии с множеством векторов {vk} движения. В частности, модуль предварительной обработки использует линейную комбинацию из множества пиксельных значений для множества других кодированных элементов, упомянутых на этапе 912 (например, множество других подэлементов/элементов кодирования), таких как линейная комбинация опорных пиксельных значений {Ψr} опорных пикселей в пределах множества других кодированных упомянутых выше элементов, в качестве прогнозируемого пиксельного значения {Ψr} конкретного подэлемента кодирования. Например, каждый элемент кодирования (например, элемент CU(t0)) кодирования может представлять собой блок, и более конкретно, блок, содержащий массив пикселей, такой как расширенный макроблок, макроблок или часть макроблока. Таким образом, подэлемент кодирования можно называть подблоком. В соответствии с вариантом осуществления настоящего изобретения, таким, как показан на фиг. 3, упомянутый выше модуль предварительной обработки может выполнять многогипотезную компенсацию движения для блока обработки (обозначен как “обрабатываемый блок” на фиг. 3) в соответствии с векторами {vk} движения, раскрытыми выше, где модуль предварительной обработки может смешивать/перемешивать опорные пиксельные значения {Ψr} опорных пикселей в пределах по меньшей мере части (например, части или всех) кодированных блоков {CB}, таких как один или больше из кодированных блоков CBL, CBUL, CBU и CBUR. В данном варианте осуществления кодированные блоки {CB} могут представлять собой блоки с компенсированным движением.
В соответствии с данным вариантом осуществления, модуль предварительной обработки выполнен с возможностью обработки каждого из подэлементов кодирования, упомянутых на этапе 912. Например, модуль предварительной обработки получает информацию о движении первого набора кодированных элементов для многогипотезной компенсации движения первого подэлемента кодирования среди подэлементов кодирования, упомянутых на этапе 912, таких как конкретный подэлемент SubCU(t0) кодирования и выполняет многогипотезную компенсацию движения для первого подэлемента кодирования, такого как конкретный подэлемент кодирования, в соответствии с информацией движения. Более конкретно, модуль предварительной обработки использует линейную комбинацию из множества пиксельных значений, полученных из информации о движении первого набора кодированных элементов, как прогнозируемое пиксельное значение первого подэлемента кодирования, такого как конкретный подэлемент кодирования. Кроме того, упомянутый выше по меньшей мере один модуль кодирования выполнен с возможностью выполнения видеокодирования для элемента кодирования на основе многогипотезной компенсации движения, выполняемой модулем предварительной обработки. Кроме того, модуль предварительной обработки получает прогнозируемое пиксельное значение другого подэлемента кодирования в элементе кодирования, таком как второй подэлемент кодирования подэлементов кодирования, упомянутых на этапе 912, используя информацию о движении второго набора кодированных элементов, где второй подэлемент кодирования отличается от первого подэлемента кодирования.
Что касается первого подэлемента кодирования, первый набор кодированных элементов может содержать: другой подэлемент (элементы) кодирования элемента CU(t0) кодирования (то есть, подэлемент (элементы) кодирования для элемента CU(t0)) кодирования, за исключением первого подэлемента кодирования); подэлемент (элементы) кодирования по меньшей мере одного другого элемента кодирования (то есть, подэлемент (элементы) кодирования по меньшей мере одного элемента кодирования, который отличается от элемента CU(t0) кодирования); и/или другой элемент (элементы) кодирования, такой как один или больше элементов кодирования, которые отличаются от элемента CU(t0) кодирования. Кроме того, что касается второго подэлемента кодирования, второй набор кодированных элементов может содержать: другой подэлемент (элементы) кодирования элемента CU(t0) кодирования (то есть, подэлемент (элементы) кодирования элемента CU(t0) кодирования за исключением второго подэлемента кодирования); подэлемент (элементы) кодирования по меньшей мере одного другого элемента кодирования (то есть, подэлемент (элементы) кодирования по меньшей мере одного элемента кодирования, который отличается от элемента CU(t0)) кодирования; и/или другой элемент (элементы) кодирования, такой как один или больше элементов кодирования, которые отличаются от элемента CU(t0) кодирования. Следует отметить, что второй набор кодированных элементов содержит по меньшей мере один кодированный элемент, который не является первым набором кодированных элементов. Представленное выше предназначено только иллюстрации и ни коим образом не для ограничения настоящего изобретения. В соответствии с некоторыми вариациями данного варианта осуществления, второй набор кодированных элементов и первый набор кодированных элементов могут представлять собой один и тот же набор кодированных элементов. Однако в модуле предварительной обработки используют различные линейные комбинации из множества пиксельных значений, полученных из информации о движении того же набора кодированных элементов, что и соответствующие прогнозируемые пиксельного значения первого подэлемента кодирования и второго подэлемента кодирования, соответственно. Например, модуль предварительной обработки использует первую линейную комбинацию, соответствующую первому набору взвешенных параметров для множества пиксельных значений, как прогнозируемое пиксельное значение первого подэлемента кодирования, и использует вторую линейную комбинацию, соответствующую второму набору взвешенных параметров для множества пиксельных значений, как прогнозируемое пиксельное значение второго подэлемента кодирования. В другом примере модуль предварительной обработки использует первое взвешенное суммирование множества пиксельных значений, полученных из информации о движении первого набора кодированных элементов, как прогнозируемое пиксельное значение первого подэлемента кодирования, такого как конкретный подэлемент кодирования, и получает прогнозируемое пиксельное значение второго подэлемента кодирования, используя второе взвешенное суммирование пиксельных значений, полученных из информации о движении того же набора кодированных элементов (то есть, первого набора кодированных элементов), где первое взвешенное суммирование отличается от второго взвешенного суммирования.
В некоторых вариантах осуществления, таких как вариации вариантов осуществления, показанных на фиг. 3, каждый из других кодированных элементов, упомянутых на этапе 912, представляет собой кодированный подэлемент кодирования/элемент кодирования. Например, в части этих вариаций множество других кодированных элементов, упомянутых на этапе 912, содержит по меньшей мере один пространственно кодированный подэлемент кодирования/элемент кодирования (например, один или больше кодированных блоков {CB} в текущем кадре F(t0), или один или больше кодированных подблоков внутри обрабатываемого блока или внутри кодированного блока) и/или по меньшей мере один кодированный по времени подэлемент/элемент кодирования (например, один или больше кодированных подблоков/блоков в другом кадре, который отличается от текущего кадра F(t0)). В другом примере, в части этих вариаций, каждый по-другому кодированных элементов, упомянутых на этапе 912, представляет собой подэлемент/элемент кодирования с компенсированным движением. В соответствии с некоторыми из этих вариаций, векторы {vk} движения могут быть получены из оценки движения.
На фиг. 4 иллюстрируются некоторые детали осуществления, связанные со способом 910, показанным на фиг. 2 в соответствии с одним вариантом осуществления настоящего изобретения. В соответствии с этим вариантом осуществления, модуль предварительной обработки может использовать взвешенное суммирование множества пиксельных значений, упомянутых на этапе 914 (например, Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk)) в данном варианте осуществления), в качестве прогнозируемого пиксельного значения Ψр конкретного подэлемента кодирования, такого как i-ый подблок bi, показанный на фиг. 4. Для лучшего понимания кодированные блоки CBL, CBUL, CBU и CBUR могут быть теми же, как показаны на фиг. 3, соответственно. Например, опорные пиксельные значения {Ψr} опорных пикселей для расчета прогнозируемого значения Ψр пикселя могут быть получены из одного или больше кодированных БЛОКОВ CBL, CBUL, CBU и CBUR, и множество векторов {vk} движения могут содержать один или больше из соответствующих векторов vL, vUL, vU и vUR движения кодированных БЛОКОВ CBL, CBUL, CBU и CBUR.
Более конкретно, для каждого подблока, такого как i-ый подблок bi, показанный на фиг. 4, прогнозируемое пиксельное значение, такое как прогнозируемое пиксельное значение Ψр(i,x), может быть извлечено в результате смешивания/перемешивания опорных пиксельных значений {Ψr} некоторых опорных пикселей в пределах кодированных блоков {CB}, и может все еще быть выражено следующим образом:
Ψр(i,x)=Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk));
где индекс k может изменяться в пределах установленного K, и обозначения vk и hk(i,x) можно использовать для представления k-ого опорного вектора движения соответствующего взвешенного параметра, соответственно. Например, b1
Figure 00000001
Bm, и обозначение Bm представляет набор подблоков для обрабатываемых блоков (помечен как “обрабатываемый блок” на фиг. 4). Как показано на фиг. 4, примерный вектор vk движения векторов {vk} движения представлен в пределах кодированного блока CBU, что означает, что векторы {vk} движения содержат вектор vu движения кодированного блока CBU в этой ситуации.
В варианте осуществления, таком как вариация варианта осуществления, представленного на фиг. 4, модуль предварительной обработки может выполнять оптимальную фильтрацию Винера для множества пиксельных значений, таких как опорное пиксельное значение {Ψr} в отношении реального пиксельного значения ΨREAL(i,x) текущего рассматриваемого пикселя для того, чтобы, регулировать соответствующие взвешенные параметры {hk(i,x)} для множества пиксельных значений, таких как опорные пиксельные значения {Ψr}, и для генерирования взвешенного суммирования (то есть, Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk)) в данном варианте). Например, взвешенные параметры {hk(i,x)} могут быть получены, используя оптимальный фильтр Винера в пределах модуля предварительной обработки следующим образом:
(h0∗...,hK∗)=arg min|ΨREAL(i,x)=Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk))|,
что означает, что взвешенные параметры {hk(i, x)} могут быть получены в результате поиска набора (h0∗...,hK∗), соответствующего минимальному значению |ΨREAL(i,x)-Σk
Figure 00000001
K(hk(i,x) Ψr(x+vk))| во время оптимальной фильтрации Винера, выполняемой модулем предварительной обработки. Все это представлено только с целью иллюстрации, и не означает какое-либо ограничение настоящего изобретения. В соответствии с вариацией варианта осуществления, показанного на фиг. 4, модуль предварительной обработки может определять соответствующие взвешенные параметры {hk(i,x)} для множества пиксельных значений в соответствии с содержанием по меньшей мере одного соседнего элемента кодирования, таким как содержание одного или больше кодированных блоков CB, CBUL, CBU и CBUR ДЛЯ генерирования взвешенного суммирования (то есть, Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk)) в данном варианте). В соответствии с другой вариацией варианта осуществления, показанного на фиг. 4, модуль предварительной обработки может определять соответствующие взвешенные параметры {hk(i,x)} для множества пиксельных значений, в соответствии с содержанием множества других кодированных элементов, упомянутых на этапе 912 (например, первый набор кодированных элементов), для генерирования взвешенного суммирования (то есть, Σk
Figure 00000001
K(hk(i,x) Ψr(x+vk)) в данной вариации).
В некоторых других вариантах осуществления, таких как некоторые вариации варианта осуществления, показанного на фиг. 4, модуль предварительной обработки может определять соответствующие взвешенные параметры {hk(i,x)} для множества пиксельных значений путем автономного обучения, или используя обучение в режиме онлайн, для генерирования взвешенного суммирования (то есть, Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk)) в данных вариациях). В соответствии с другой вариацией варианта осуществления, показанного на фиг. 4, модуль предварительной обработки может использовать среднее значение множества пиксельных значений, в качестве прогнозируемого пиксельного значения конкретного подэлемента кодирования, что означает любые два из взвешенных параметров {hk(i,x)} равны друг другу. Более конкретно, в данной вариации, каждый из взвешенных параметров {hk(i,x)} равен l/n(K), где n(K) представляет количество возможных значений k в пределах установленного K.
На фиг. 5A-5D иллюстрируются некоторые детали воплощения многогипотезного прогнозирования, которые связаны со способом 910, показанным на фиг. 2, в соответствии с различными вариантами осуществления настоящего изобретения, где линейную комбинацию, упомянутую на этапе 914, можно рассматривать, как взвешенное суммирование (то есть, Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk)) в этих вариантах осуществления). Для лучшего понимания кодированные блоки CBL, CBUL, CBU и CBUR могут быть теми же, как показаны на фиг. 3, соответственно. Кроме того, i-ый подблок bi представлен, как пример конкретного подэлемента SubCU(t0) кодирования.
На фиг. 5A подэлементы A, B, C и D кодирования принадлежат обрабатываемому блоку (помечен как “обрабатываемый блок” на фиг. 5A) или другим кодированным элементам (таким как CBUL, CBU, CBUR, CBL). Более конкретно, что касается i-ого подблока bi, показанного на фиг. 5A, подэлемент A кодирования представляет собой левый соседний подэлемент кодирования, подэлемент B кодирования представляет собой верхний соседний подэлемент кодирования, подэлемент C кодирования представляет собой верхний правый соседний подэлемент кодирования, и подэлемент D кодирования представляет собой верхний левый соседний подэлемент кодирования. В этом варианте осуществления векторы {vk} движения могут быть получены из подэлементов A, B, C, и/или D кодирования, показанных на фиг. 5A, и, поэтому, могут включать в себя их соответствующие векторы vA, vB, vC и/или vD движения. Например, векторы {vk} движения могут включать в себя все из векторов vA, vB, vc и vD движения подэлементов A, B, C и D кодирования. В другом примере векторы {vk} движения могут включать в себя векторы vA, vB и vc движения, если существует подэлемент C кодирования для конкретного подэлемента кодирования, такого как i-ый подблок bi. В другом примере векторы {vk} движения могут включать в себя векторы VA, VB и vD движения, если подэлемент C кодирования для конкретного подэлемента кодирования, такого как i-ый подблок bi, не существует.
Таким образом, линейная комбинация, упомянутая на этапе 914, может представлять собой описанное выше взвешенное суммирование Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk)) с векторами {vk} движения, включающими в себя векторы VA, VB, vc и/или VD движения. Для краткости, прогнозируемое значение Ψр пикселя может быть выражено следующим образом:
Ψр=Weighted_Sum(Ψr(vA), Ψr(vB), Ψr(vc), и/или Ψr(vD));
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации.
В соответствии с вариацией варианта осуществления, показанного на фиг. 5A, модуль предварительной обработки использует среднее значение множества пиксельных значений, как прогнозируемое пиксельное значение конкретного подэлемента кодирования, что означает, что линейную комбинацию, упомянутую на этапе 914, можно рассматривать, как среднюю. В этой ситуации, любые два из взвешенных параметров {hk(i,x)} равны друг другу. Для краткости прогнозируемое значение Ψр пикселя может быть выражено следующим образом:
Ψр=Average(Ψr(vA), Ψr(vB), Ψr(vc), и/или Ψr(vD);
где обозначение Average представляет среднее значение в этой ситуации. Аналогичное описание не повторяется подробно для этого варианта.
На фиг. 5B подэлементы кодирования α1, α2, α3, α4, α5, α6, α7 и α8 кодирования принадлежат левому кодированному блоку CBL, подэлементы β1, β2, β3, β4, β5, β6, β7 и β8 кодирования принадлежат верхнему кодированному блоку CBU, и подэлементы β9 и δ кодирования принадлежат верхнему правому кодированному блоку CBUR и верхнему левому кодированному блоку CBUL, соответственно. Более конкретно, что касается i-ого подблока bi, показанного на фиг. 5B (например, подблок в пределах нижней правой четверти обрабатываемого блока в данном варианте осуществления), векторы {vk} движения могут быть получены из подэлементов A, B, C и/или D кодирования в данном варианте осуществления, где подэлемент A кодирования может быть определен, как ближайший подэлемент кодирования в пределах левого кодированного блока CBL, подэлемент B кодирования может быть определен, как ближайший подэлемент кодирования в пределах верхнего кодированного блока CBU, подэлемент C кодирования может быть определен, как правый ближайший подэлемент кодирования для подэлемента B кодирования, и подэлемент D кодирования может быть определен как левый ближайший подэлемент кодирования для подэлемента B кодирования. В ситуации, показанной на фиг. 5B, подэлементы A, B, C и D кодирования представляют собой подэлементы α5, β6, β7 и β5 кодирования, соответственно.
В данном варианте осуществления векторы {vk} движения могут быть получены из подэлементов A, B, C и/или D кодирования в данном варианте осуществления, и поэтому могут включать в себя соответствующие их векторы vA, VB, vc и/или vD движения. Например, векторы {vk} движения могут включать в себя все векторы VA, VB, Vc и vD движения подэлементов A, B, C и D кодирования. В другом примере векторы {vk} движения могут включать в себя векторы VA, VB и vc движения, если существует подэлемент C кодирования для конкретного подэлемента кодирования, такого как iый подблок bi. В другом примере векторы {vk} движения могут включать в себя векторы VA, VB и VD движения, если подэлемент C кодирования для конкретного подэлемента кодирования, такого как iый подблок bi, не существует.
Таким образом, линейная комбинация, упомянутая на этапе 914, может представлять собой раскрытое выше взвешенное суммирование Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk)) с векторами {vk} движения, включающими в себя векторы VA, VB, VC и/или VD движения. Для краткости прогнозируемое значение для Ψр пикселя может быть выражено следующим образом:
Ψр=Weighted_Sum(Ψr(vA), Ψr(vB), Ψr(vc), и/или Ψr(vD));
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации. Например, модуль предварительной обработки может определять размер конкретного подэлемента кодирования, который должен представлять собой размер преобразования в отношении видеокодирования элемента кодирования, и размер подэлементов кодирования, таких как подблоки, показанные на фиг. 5B, мог быть таким же, как размер преобразования (например, 4×4, 8×8, 16×16 и так далее).
В соответствии с вариацией варианта осуществления, показанного на фиг. 5B, в модуле предварительной обработки используется среднее множество пиксельных значений, в качестве прогнозируемого пиксельного значения конкретного подэлемента кодирования, что означает, что операцию по получению линейной комбинации, упомянутую на этапе 914, можно рассматривать как операцию усреднения. В этой ситуации, любые два из взвешенных параметров {hk(i,x)} равны друг другу. Для краткости, прогнозируемое значение Ψр пикселя может быть выражено следующим образом:
Ψр=Average(Ψr(vA), Ψr(vB), Ψr(vc), и/или Ψr(vD));
где обозначение Average представляет собой среднее значение в данной ситуации. Аналогичное описание не повторяется подробно для данного варианта.
Со ссылкой фиг. 5C, определение подэлементов {α1, a2, α3, α4, α5, α6, α7, α8, β1, β2, β3, β4, β5, β6, β7, β8, β9, δ} кодирования является тем же, как и в варианте осуществления, показанном на фиг. 5B. Кроме того, что касается i-ого подблока bi, показанного на фиг. 5C (например, подблок в пределах верхней правой четверти обрабатываемого блока в данном варианте осуществления), векторы {vk} движения могут быть получены из подблоков A, B, C, D, E, F и/или Z кодирования в данном варианте осуществления, где определение подэлементов A, B, C и D кодирования является тем же, как и в варианте осуществления, показанном на фиг. 5B, подэлемент E кодирования может быть определен, как верхний соседний подэлемент кодирования для подэлемента A кодирования, подэлемент F кодирования может быть определен, как нижний соседний подэлемент кодирования для подэлемента A кодирования, и подэлемент Z кодирования может быть определен, как ближайший подэлемент кодирования в пределах верхнего левого кодированного блока CBUL. В ситуации, показанной на фиг. 5C, подэлементы A, B, C, D, E, F и Z кодирования представляют собой подэлементы кодирования α4, β6, β7, β5, α3, α5, и δ, соответственно.
В данном варианте осуществления векторы {vk} движения могут быть получены из подэлементов A, B, C, D, E, F и/или Z кодирования в соответствии с данным вариантом осуществления, и поэтому могут включать в себя соответствующие их векторы VA, VB, VC, VD, VE, VF и/или vz движения. Например, векторы {vk} движения могут включать в себя все векторы VA, VB, VC, VD, VE, VF и vz движения подэлементов A, B, C, D, E, F и Z кодирования. В другом примере векторы {vk} движения могут включать в себя векторы VA, VB, VC. Vd, VE и VF движения, если существует подэлемент E кодирования для конкретного подэлемента кодирования, такого как i-ый подблок bi. В другом примере векторы {vk} движения могут включать в себя векторы VA, VB, VC, VD, VF и vz движения, если подэлемент E кодирования для конкретного подэлемента кодирования, такого как i-ый подблок bi, не существует. В другом примере векторы {vk} движения могут включать в себя векторы движения VA, VB, VD, VF и vz движения, если подэлементы C и E кодирования для конкретного подэлемента кодирования, такого как i-ый подблок bi, не существуют.
Таким образом, линейная комбинация, упомянутая на этапе 914, может представлять собой раскрытое выше взвешенное суммирование Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk)) с векторами {vk} движения, включающими в себя векторы vA, vB, vc, VD, VE, VF и/или vz движения. Для краткости прогнозируемое значение Ψр пикселя может быть выражено следующим образом:
Ψр=Weighted_Sum(Ψr(vA), Ψr(vB), Ψr(vС), Ψr(vD), Ψr(vE), Ψr(vF), и/или Ψr(vZ));
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации. Например, модуль предварительной обработки может определять размер конкретного подэлемента кодирования, как имеющий размер преобразования для видеокодирования блока кодирования, и размер подэлементов кодирования, таких как подблоки, показанные на фиг. 5C, может быть таким же, как и размер преобразования (например, 4×4, 8×8, 16×16 и так далее).
В соответствии с вариацией варианта осуществления, показанного на фиг. 5C, в модуле предварительной обработки используется среднее значение из множества значений пикселя, в качестве прогнозируемого пиксельного значения конкретного подэлемента кодирования, которое означает, что операцию получения линейной комбинации, упомянутую на этапе 914, можно рассматривать, как операцию усреднения. В этой ситуации, любые два из взвешенных параметров {hk(i,x)} равны друг другу. Для краткости, прогнозируемое пиксельное значение Ψр может быть выражено следующим образом:
Ψр=Average(Ψr(vA), Ψr(vB), Ψr(vС), Ψr(vD), Ψr(vE), Ψr(vF), и/или Ψr(vZ));
где обозначение Average представляет среднее значение в данной ситуации. Аналогичное описание не повторяется подробно для данного варианта.
Как показано на фиг. 5D, определение подэлементов {α1, a2, α3, α4, α5, α6, α7, α8, β1, β2, β3, β4, β5, β6, β7, β8, β9, δ} кодирования является тем же, как и в варианте осуществления, показанном на фиг. 5B. Кроме того, что касается i-ого подблока bi, показанного на фиг. 5D (например, подблока в пределах нижней правой четверти блока, обрабатываемого в данном варианте осуществления), векторы {vk} движения могут быть получены из подэлементов A, B, C и/или D кодирования в данном варианте осуществления, где определение подэлементов A, B, C и D кодирования является тем же, что и в варианте осуществления, показанном на фиг. 5B. В ситуации, показанной на фиг. 5C, подэлементы A, B, C и D кодирования представляют собой подэлементы α5, β6, β7 и β5 кодирования, соответственно.
В данном варианте осуществления векторы {vk} движения могут быть получены из подэлементов A, B, C и/или D кодирования в данном варианте осуществления, и поэтому могут включать в себя их соответствующие векторы VA, VB, VC и/или VD движения. Например, векторы {vk} движения могут включать в себя все векторы VA, VB, VC и VD движения подэлементов A, B, C и D кодирования. В другом примере векторы {vk} движения могут включать в себя векторы VA, VB, и vc движения, если существует подэлемент C кодирования для конкретного подэлемента кодирования, такого как i-ый подблок bi. В другом примере векторы {vk} движения могут включать в себя векторы VA, VB и VD движения, если подэлемент C кодирования для конкретного подэлемента кодирования, такого как i-ый подблок bi, не существует.
Кроме того, взвешенный параметр hk(i,x) в данном варианте осуществления может быть обратно пропорциональным расстоянию между конкретным подэлементом кодирования, и ассоциирован с одним из других кодированных элементов, упомянутых на этапе 912. Например, взвешенный параметр hk(i,x) может быть перезаписан, как Wk(i), независящий от положения x, и взвешенный параметр Wk(i) обратно пропорционален (dk(i))m(то есть Wk(i)
Figure 00000002
1/dk(i))m), где обозначение dk(i) представляет расстояние между конкретным подэлементом кодирования (например, i-ый подблок bi) и ассоциированным другим подэлементом/элементом кодирования, имеющим k-ый опорный вектор vk движения (например, k-ый подэлемент кодирования в пределах подэлементов A, B, C и D кодирования), и обозначение m представляет положительную константу. Таким образом, прогнозируемое пиксельное значение Ψр может быть выражено следующим образом:
Ψр(i,x)=Σk
Figure 00000001
K(wk(i,x)Ψr(x+vk)); или
Ψрk
Figure 00000001
K(wkΨr(vk));
где векторы {vk} движения могут включать в себя векторы vA, vB, vc и/или vD движения. В ситуации, показанной на фиг. 5D, векторы {vk} движения включают в себя векторы VA, VB и vc движения, и обозначения dist_w, dist_h, и dist_h' представляют расстояния dA(i), dB(i) и dC(i), соответственно. В результате, прогнозируемое пиксельное значение Ψр может быть выражено следующим образом:
Ψр=wAΨr(vA)+wBΨr(vB)+wCΨr(vС);
где wA
Figure 00000002
1/(dist_w)m, wB
Figure 00000002
1/(dist_h)m, и wC
Figure 00000002
1/(dist_h')m.
В некоторых вариациях вариантов осуществления, показанных на 5A-5D, модуль предварительной обработки может отсеивать набор векторов движения, путем отбрасывания по меньшей мере одного крайнего вектора движения в информации о движении среди множества кодированных элементов, и более конкретно, путем отбрасывания по меньшей мере одного крайнего вектора движения из набора векторов движения, для того, чтобы выбрать остальную часть набора векторов движения, как информацию о движении, для получения прогнозированного пиксельного значения (например, информации о движении первого набора кодированных элементов). Например, упомянутый выше по меньшей мере один крайний вектор движения может содержать один или больше векторов движения, которые в значительной степени отличаются друг от друга в наборе векторов движения, с учетом их длин и/или направлений.
В соответствии с некоторыми вариациями вариантов осуществления, показанными на фиг. 5A-5D, модуль предварительной обработки может избирательно работать в любом из множества режимов, содержащих режимы 1, 2, 3 и 4, где соответствующие операции режимов 1, 2, 3 и 4 могут быть теми же, как или аналогичными раскрытым в вариантах осуществления, показанных на фиг. 5A-5D, соответственно. Например, в режиме 1, модуль предварительной обработки может работать в соответствии с тем же способом, что и в варианте осуществления, показанном на фиг. 5A, в то время как в другом режиме, таком как любой из режимов 2, 3 и 4, модуль предварительной обработки может работать в соответствии с тем же способом, что и в ассоциированном варианте осуществления, таком как соответствующий вариант осуществления среди показанных на фиг. 5B-5D, соответственно. Кроме того, упомянутые выше режимы 1, 2 и 3 позволяют устройству 100 выполнять более простую обработку по сравнению с некоторым другим режимом (режимами) и помогают увеличить общую скорость обработки устройства 100, и поэтому, могут называться упрощенными режимами.
В соответствии с вариацией любого из вариантов осуществления, показанных на фиг. 5A-5D, на этапе 912, модуль предварительной обработки может разделять элемент кодирования на множество подэлементов кодирования, на основе по меньшей мере одного режима по меньшей мере одного соседнего элемента кодирования, такого как режимы 1, 2, 3 и/или 4 одного или больше кодированных блоков CBL, CBU, CBUR и CBUL. В соответствии с другой вариацией любого из вариантов осуществления, показанных на фиг. 5A-5D, на этапе 912, модуль предварительной обработки может разделять элемент кодирования на множество подэлементов кодирования на основе содержания по меньшей мере одного соседнего элемента кодирования, такого как один или больше их кодированных блоков CBL, CBU, CBUR и CBUL.
На фиг. 6A-6B иллюстрируются примерные источники получения информации о движении, которые связаны со способом 910, показанным на фиг. 2, в соответствии с разными вариантами осуществления настоящего изобретения. Для лучшего понимания кодированные блоки CBL, CBUL, CBU и CBUR могут быть теми же, что и показанные на фиг. 3, соответственно.
В данном варианте осуществления, в ситуации, когда размер конкретного подэлемента SubCU(t0) кодирования расширяют до размера элемента CU(t0) кодирования, разделение/разбиение элемента CU(t0) кодирования не требуется на этапе 912. Таким образом, на этапе 912, модуль предварительной обработки, упомянутый выше, может выполнять прогнозирование вектора движения элемента CU(t0) кодирования и, более конкретно, получать множество векторов движения, таких как векторы {vk} движения, раскрытые выше, для многогипотезной компенсации движения элемента CU(t0) кодирования из множества других кодированных элементов, таких как по меньшей мере часть кодированных блоков {CB} (например, один или больше из кодированных блоков CBL, CBUL, CBU и CBUR). Кроме того, на этапе 914, модуль предварительной обработки может выполнять многогипотезную компенсацию движения элемента CU(t0) кодирования в соответствии с информацией о движении, таких, как множество векторов {vk} движения и, более конкретно, используя линейную комбинацию множества значений пикселя множества других элементов кодирования, в качестве прогнозированного пиксельного значения элемента кодирования, таких, как прогнозированное пиксельное значение Ψр(x), для которых не требуется использовать индекс i. Аналогично, прогнозированное пиксельное значение Ψр(x) может быть выражено следующим образом:
Ψр(x)=Σk
Figure 00000001
K(hk(x)Ψr(x+vk));
На практике, множество режимов может дополнительно содержать некоторые режимы пропуска, соответственно, соответствующие различным размерам блока движения (например, 16×16, 32×32 и т.д.). В соответствии с этим вариантом осуществления, обозначение A можно использовать для представления подэлемента/элемента кодирования, содержащего по меньшей мере часть (например, часть или весь) кодированного БЛОКА CBL, обозначение D можно использовать для представления подэлемента/элемента кодирования, содержащего по меньшей мере часть (например, часть или весь) кодированного блока CBUL, обозначение B можно использовать для представления подэлемента/элемента кодирования, содержащего по меньшей мере часть (например, часть или весь) кодированного блока CBU, и обозначение CSIZE, такое как C16, C32 и т.д., можно использовать для представления подэлемента/элемента кодирования, содержащего по меньшей мере часть (например, часть или весь) кодированного блока CBUR, где приставка SIZE в обозначении CSIZE представляет размер элемента CU(t0) кодирования, такого как обрабатываемый блок (помеченный как “обрабатываемый блок” на фиг. 6A-6B). Например, в ситуации, где блок, который обрабатывается, включает в себя (32 ∗ 32) пикселя, подэлемент/элемент кодирования CSIZE может представлять собой подэлемент/элемент кодирования C32, показанный на фиг. 6A. В другом примере, в ситуации, где обрабатываемый блок включает в себя (16 ∗ 16) пикселей, подэлемент/элемент CSIZE кодирования может представлять собой подэлемент/элемент кодирования C16, показанный на фиг. 6B. Таким образом, местоположение подэлемента/элемента кодирования CSIZE зависит от размера блока движения.
В соответствии с данным вариантом осуществления, векторы {vk} движения могут включать в себя все из векторов vA, vB, vc и vD движения подэлемента/элемента кодирования A, B, CSIZE и D. Таким образом, линейная комбинация данного варианта осуществления может представлять собой взвешенное суммирование Σk
Figure 00000001
K(hk(x)Ψr(x+vk)) с векторами {vk} движения, включающими в себя векторы vA, VB, VC и VD движения. Для краткости, прогнозированное пиксельное значение Ψр может быть выражено следующим образом:
Ψр=Weighted_Sum(Ψr(vA), Ψr(vB), Ψr(vС), Ψr(vD));
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации.
В соответствии с вариацией варианта осуществления, показанного на фиг. 6A-6B, модуль предварительной обработки использует среднее множество пиксельных значений множества других элементов кодирования, как прогнозированное пиксельное значение этого элемента кодирования, что означает, что упомянутую выше линейную комбинацию можно рассматривать, как среднее. В этой ситуации любые два из взвешенных параметров {hk(x)} равны друг другу. Для краткости прогнозируемое значение Ψр пикселя может быть выражено следующим образом:
Ψр=Average(Ψr(vA), Ψr(vB), Ψr(vС), Ψr(vD));
где обозначение Average представляет среднее значение в этой ситуации. Аналогичное описание не повторяется подробно для данного варианта.
На фиг. 7A-7B, соответственно, иллюстрируются временные и пространственные векторы (МVs) движения, связанные со способом 910, показанным на фиг. 2, в соответствии с разными вариантами осуществления настоящего изобретения. Для лучшего понимания кодированные блоки CBL, CBUL, CBU и CBUR могут быть теми же, как и показанные на фиг. 3, соответственно. Кроме того, i-ый подблок bi показан, как пример конкретного подэлемента SubCU(t0) кодирования.
В варианте осуществления, показанном на фиг. 7A, векторы {vk} движения, упомянутые на этапе 912, могут содержать один или больше временных векторов {vT,k} движения относительно окна, охватывающего конкретный подэлемент SubCU(t0) кодирования, такой как i-ый подблок bi, показанный на фиг. 7A, где окно может иметь заданный размер. В варианте осуществления, показанном на фиг. 7B, векторы {vk} движения, упомянутые на этапе 912, могут содержать один или больше пространственных векторов {vs,k} движения, такие как вектор движения кодированного блока CBU, показанный на фиг. 7B. В соответствии с некоторыми вариациями вариантов осуществления, показанных на фиг. 7A-7B, векторы {vk} движения, упомянутые на этапе 912, могут содержать временные векторы {vT,k} движения и пространственные векторы {vs,k} движения. Аналогичное описание не повторяется подробно для этих вариантов осуществления.
На фиг. 8A-8C показаны примерные источники для получения векторов движения, используемых в способе 910, показанном на фиг. 2, в соответствии с некоторыми вариантами осуществления настоящего изобретения. Для лучшего понимания кодированные блоки CB, CBUL, CBU и CBUR могут быть теми же, как и блоки, показанные на фиг. 3, соответственно. Кроме того, i-ый подблок bi представлен как пример конкретного подэлемента SubCU(t0) кодирования.
Рассматривая фиг. 8A, можно видеть, что временные векторы {vT,k} движения, раскрытые выше, могут содержать временной вектор VT0 движения, который обычно получают в результате размещенного в одном месте подэлемента кодирования другого кадра, такого как размещенный в одном месте подблок T, относительно i-ого подблока bi, показанного на фиг. 8A. Таким образом, временной вектор vT0 движения может рассматриваться, как совместно размещенный вектор движения. На фиг. 8B пространственные векторы {vs,k} движения, раскрытые выше, могут содержать по меньшей мере часть (например, часть или все) векторов движения VA, VB, VC, VD, VE, VF и vz подэлементов A, B, C, D, E, F и Z кодирования.
Таким образом, линейная комбинация, упомянутая на этапе 914, может представлять собой раскрытое выше взвешенное суммирование Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk)) с векторами {vk} движения, содержащими, как временной вектор
Figure 00000003
движения, так и векторы vA, vB, vc, vd, vE, vF и vz движения. Например, в ситуации, когда векторы {vk} движения содержат временной вектор
Figure 00000003
движения и векторы vA, vB, vc, vd, ve, vF и vz движения, прогнозируемое пиксельное значение Ψр может быть выражено следующим образом:
Ψр=Weighted_Sum(Ψr(vA), Ψr(vB), Ψr(vС), Ψr(vD), Ψr(vE), Ψr(vF), Ψr(vZ), Ψr(
Figure 00000003
));
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации. Аналогичное описание не повторяется подробно для этого варианта осуществления.
В соответствии с вариацией варианта осуществления, показанного на фиг. 8A-8B, модуль предварительной обработки использует среднее из множества пиксельных значений, как прогнозируемое пиксельное значение конкретного подэлемента кодирования, которое означает, что линейную комбинацию, упомянутую на этапе 914, можно рассматривать как среднее. В этой ситуации, любые два из взвешенных параметров {hk(i,x)} равны друг другу. Для краткости прогнозируемое пиксельное значение Ψр может быть выражено следующим образом:
Ψр=Average(Ψr(vA), Ψr(vB), Ψr(vС), Ψr(vD), Ψr(vE), Ψr(vF), Ψr(vZ), Ψr(
Figure 00000003
));
где обозначение Average представляет среднее значение в данной ситуации. Аналогичное описание не повторяется подробно для этого варианта.
На фиг. 8C временные векторы {vx,k} движения, раскрытые выше, могут содержать временной вектор
Figure 00000003
, движения раскрытый выше, и некоторые другие временные векторы
Figure 00000004
,
Figure 00000005
,
Figure 00000006
,
Figure 00000007
,
Figure 00000008
,
Figure 00000009
,
Figure 00000010
и
Figure 00000011
движения, которые получают из приблизительно совместно размещенных подэлементов кодирования другого кадра, такого, как расположеный рядом с подблоком T, имеющим временной вектор
Figure 00000003
движения, то есть, с подблоками TUL, TU, TUR, TL, TR, TDL, TD и TDR, показанными на фиг. 8C, соответственно. Кроме того, векторы {по сравнению с, k}, пространственного движения, раскрытые выше, могут содержать по меньшей мере часть (например, часть или все) векторов vA, vB, vc, vD, vE, vF и vz движения подэлементов A, B, C, D, E, F и Z кодирования, показанных на фиг. 8B.
Таким образом, линейная комбинация, упомянутая на этапе 914, может представлять собой раскрытое выше взвешенное суммирование Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk)) с векторами {vk} движения, содержащими, как временные векторы
Figure 00000003
,
Figure 00000004
,
Figure 00000005
,
Figure 00000006
,
Figure 00000007
,
Figure 00000008
,
Figure 00000009
,
Figure 00000010
и
Figure 00000011
движения, так и векторы VA, VB, VC, VD, VE, VF и/или vz движения. Например, в ситуации, когда векторы {vk} движения содержат временные векторы
Figure 00000003
,
Figure 00000004
,
Figure 00000005
,
Figure 00000006
,
Figure 00000007
,
Figure 00000008
,
Figure 00000009
,
Figure 00000010
и
Figure 00000011
движения и векторы vA, vB, vc, vD> vE, VF и vz движения, прогнозируемое пиксельное значение Ψр можно выразить следующим образом:
Ψр=Weighted_Sum(Ψr(vA), Ψr(vB), Ψr(vС), Ψr(vD), Ψr(vE), Ψr(vF), Ψr(vZ), Ψr(
Figure 00000003
), Ψr(
Figure 00000004
), Ψr(
Figure 00000005
), Ψr(
Figure 00000006
), Ψr(
Figure 00000007
), Ψr(
Figure 00000008
), Ψr(
Figure 00000009
), Ψr(
Figure 00000010
) и Ψr(
Figure 00000011
));
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации. Аналогичное описание не повторяется подробно для данного варианта осуществления.
В соответствии с вариацией варианта осуществления, показанного на фиг. 8C, в модуле предварительной обработки используется среднее из множества пиксельных значений, как прогнозируемое пиксельное значение конкретного подэлемента кодирования, что означает, что линейную комбинацию, упомянутую на этапе 914, можно рассматривать, как среднее значение. В этой ситуации, любые два из взвешенных параметров {hk(i,x)} равны друг другу. Для краткости прогнозируемое пиксельное значение Ψр может быть выражено следующим образом:
Ψр=Average (Ψr(vA), Ψr(vB), Ψr(vС), Ψr(vD), Ψr(vE), Ψr(vF), Ψr(vZ), Ψr(
Figure 00000003
),Ψr(
Figure 00000004
), Ψr(
Figure 00000005
), Ψr(
Figure 00000006
), Ψr(
Figure 00000007
), Ψr(
Figure 00000008
), Ψr(
Figure 00000009
), Ψr(
Figure 00000010
) и Ψr(
Figure 00000011
));
где обозначение Average представляет среднее значение в этой ситуации. Аналогичное описание не повторяется подробно для этой вариации.
В соответствии с вариантом осуществления, таким как вариация любого из вариантов/вариаций осуществления, раскрытым выше, модуль предварительной обработки может динамически выбирать набор векторов движения из множества наборов векторов движения (которые можно рассматривать, как векторы движения-кандидаты), и использовать выбранный набор векторов движения, как множество векторов {vk} движения. Более конкретно, модуль предварительной обработки динамически выбирает упомянутый выше набор векторов движения из множества наборов векторов движения и использует выбранный набор векторов движения как информацию о движении множества других кодированных элементов, упомянутых на этапе 912 (например, первый набор кодированных элементов) на основе явного флага, и использует выбранный набор векторов движения для получения прогнозированного пиксельного значения конкретного подэлемента кодирования. Например, множество наборов векторов движения может содержать первый набор векторов движения, такой как временные векторы {VT, k} движения, раскрытые выше, и дополнительно содержит второй набор векторов движения, таких как пространственные векторы {по сравнению с, k} движения, раскрытые выше. На практике, модуль предварительной обработки может выполнять многогипотезное прогнозирование на основе флага (например, явного флага), динамически обозначающего выбираемый набор. Аналогичное описание не повторяется подробно для данного варианта осуществления.
В соответствии с другим вариантом осуществления таким, как вариация любого из вариантов осуществления/вариаций, раскрытых выше, модуль предварительной обработки может получать по меньшей мере один вектор движения элемента CU(t0) кодирования, выполняя оценку движения для использования при выполнении оптимизации искажения-скорость, для получения прогнозированного пиксельного значения конкретного подэлемента кодирования. Например, на этапе 912, модуль предварительной обработки получает по меньшей мере одну часть множества векторов {vk} движения для многогипотезной компенсации движения конкретного подэлемента SubCU(t0) кодирования, выполняя оценку движения. Кроме того, на этапе 914, модуль предварительной обработки может дополнительно использовать линейную комбинацию множества пиксельных значений {Ψr} подэлементов/элементов кодирования, ассоциированных для множества векторов {vk} движения, как прогнозируемое пиксельное значение Ψр конкретного подэлемента SubCU(t0) кодирования. Например, в ситуации, когда конкретный прогнозируемый пиксель, имеющий прогнозируемое пиксельное значение Ψр, расположен в положении x (например, вектор, обозначающий положение, такой как двумерный вектор в плоскости изображения текущего кадра F(t0)), прогнозируемое пиксельное значение Ψр может быть перезаписано как Ψр(x), и прогнозируемое пиксельное значение Ψр(x) может быть выражено следующим образом:
Ψр(x)=Σk
Figure 00000001
K(hk(x)Ψr(x+vk)+h0(x)Ψr(x+v0));
где индекс k может изменяться в пределах установленного K, с обозначением hk(x), представляющим взвешенный параметр, ассоциированный с индексом k, и предполагаемый вектор v0 движения представляет собой вектор движения, оценка которого должна быть получена во время оценки движения, с обозначением h0(x), представляющим взвешенный параметр, ассоциированный с суффиксом 0 оценки вектора v0 движения.
Во время упомянутой выше оптимизации искажения-скорости модуль предварительной обработки может рассчитывать индикатор IDIST искажений, где индикатор искажений обычно представляет разность между исходным частичным изображением конкретного подэлемента SubCU(t0) кодирования и реконструированным частичным изображением конкретного элемента SubCU(t0) кодирования после многогипотезного прогнозирования в отношении возможного статуса (например, длины и угла) оценки вектора v0 движения. Например, индикатор IDIST ИСКАЖЕНИЯ и ассоциированная разность MVD вектора движения могут быть выражены следующим образом:
IDIST=|ΨREAL(i,x)-Σk
Figure 00000001
K(hk(x)Ψr(x+vk))-h0(x)Ψr(x+v0))|; и
MVD=v0-MVP;
где обозначение ΨREAL (x) представляет реальное пиксельное значение для текущего рассматриваемого пикселя, и обозначение MVP обозначает предиктор вектОра движения. Более конкретно, в представленных выше уравнениях, верхний один из индикатора IDIST искажений может быть перекомпонован следующим образом:
IDIST=|ΨREAL(X)-ΣK
Figure 00000001
K(hk(X)ΨR(X+VK))-h0(X)Ψr(X+V0))|
=|(ΨREAL(X)-ΣK
Figure 00000001
K(hK(X)ΨR(X+VK))-h0(X)Ψr(X+V0))|
=h0(X)|(ΨREAL(X)-ΣK
Figure 00000001
K(hK(X)ΨR(X+VK)))/h0(X)-Ψr(X+V0)|
=h0(X)|ГREAL(X)-Ψr(X+V0)|;
где ГREAL(х)=(ΨREAL(X)-ΣK
Figure 00000001
K(hK(X)ΨR(X+VK)))/h0(X). В представленном выше уравнении член ГREAL(x) и член (ΨREAL(x)-Σk
Figure 00000001
K(hk(x)Ψr(x+vk)))независимы от оценки вектора v0 движения, и, поэтому по меньшей мере один из этих членов, такой, как член ГREAL(x) и/или член (ΨREAL(x)-Σk
Figure 00000001
K(hk(x)Ψr(x+vk))), могут быть рассчитаны заранее и временно сохранены для доступа, для увеличения скорости обработки устройства 100 в соответствии с данным вариантом осуществления.
В соответствии с данным вариантом осуществления, модуль предварительной обработки в данном варианте осуществления может оптимизировать оценку вектора v0 движения, выполняя поиск наилучшего статуса, соответствующего минимуму функции Лагранжа индикатора IDist искажений, и битов, используемых для кодирования разности MVD векторов движения, среди других возможных статусов оценки вектора v0 движения. Таким образом, линейная комбинация этого варианта осуществления может представлять собой взвешенное суммирование Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk))+h0(x)Ψr(x+v0) с полученной оценкой вектора v0 движения, и модуль предварительной обработки может использовать взвешенное суммирование Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk))+h0(x)Ψr(x+v0), как прогнозируемое пиксельное значение Ψр конкретного подэлемента SubCU(t0) кодирования. Аналогичное описание не повторяется подробно для данного варианта осуществления.
На фиг. 9 иллюстрируются некоторые детали воплощения, связанные со способом 910, показанным на фиг. 2, в соответствии с вариантом осуществления настоящего изобретения, где модуль предварительной обработки может выполнять многогипотезное прогнозирование с переменным разделением, и более конкретно, может адаптивно определять разделение элемента CU(t0) кодирования в ответ на разделение по меньшей мере одного соседнего элемента кодирования. Для лучшего понимания кодированные блоки CBL, CBUL, CBU и CBUR могут быть такими же, как показаны на фиг. 3, соответственно.
В соответствии с данным вариантом осуществления, на этапе 912, модуль предварительной обработки может разделять элемент CU(t0) кодирования, такой как обрабатываемый блок (помечен как “обрабатываемый блок” на фиг. 9) на множество подэлементов {SubCU(t0)} кодирования на основе разделения по меньшей мере одного соседнего элемента кодирования (например, одного или больше из кодированных блоков CBL, CBUL, CBU и CBUR). Например, множество подэлементов {SubCU(t0)} кодирования может содержать подблоки, b11, b12, b13, b21, b22, b23, b31, b32, b33, b41, b42 и b43, размеры которых соответствуют разделению соседних кодированных блоков, таких как кодированные блоки CBL и CBU, и более конкретно с ассоциированным размером некоторых подблоков этих соседних кодированных блоков. В ситуации, показанной на фиг. 9, подблоки этих соседних кодированных блоков представляют собой те, которые расположены рядом с обрабатываемым блоком, где подблоки показаны затененными и иллюстрируются разными структурами, соответственно. Аналогичные описания подробно не повторяются для этого варианта осуществления.
На фиг. 10 показаны некоторые детали воплощения, связанные со способом 910, представленным на фиг. 2, в соответствии с другим вариантом осуществления настоящего изобретения, где модуль предварительной обработки может адаптивно определять веса смешивания (например, взвешенные параметры {hk(i,x)}, раскрытые выше), в соответствии с содержанием по меньшей мере одного соседнего элемента кодирования. Для лучшего понимания кодированные блоки CBL, CBUL, CBU и CBUR могут быть такими же, как те, которые показаны на фиг. 3, соответственно. Кроме того, подблок SB показан, как пример конкретного подэлемента SubCU(t0) кодирования.
Например, векторы {vk} движения могут содержать векторы VA, VB, и vc движения подэлементов A, B и C кодирования, где подэлемент A кодирования принадлежит левому кодированному блоку CBL, и подэлементы B и C кодирования принадлежат верхнему кодированному блоку CBU. Во время обработки, состоящей в генерировании взвешенного суммирования Σk
Figure 00000001
K(hk(i,x)Ψr(x+vk)) (например, взвешенного суммирования Weighted_Sum(Ψr(vA), Ψr(vB), Ψr(vС)) в ситуации, показанной на фиг. 10), когда подэлементы B и C кодирования представляют собой подэлементы кодирования текстуры (например, подблоки текстуры) и подэлемент A кодирования не является подэлементом кодирования текстуры (например, является нетекстурным подблоком), модуль предварительной обработки может адаптивно определять взвешенные параметры hB(i,x), и hc(i,x), ассоциированные с векторами vB и vc движения подэлементов B и C кодирования, так, чтобы они были больше, чем взвешенный параметр hА(i,x), ассоциированный с вектором vA движения подэлемента A кодирования, соответственно. Аналогичное описание не повторяется подробно для данного варианта осуществления.
На фиг. 11 иллюстрируются некоторые детали воплощения, связанные со способом 910, представленным на фиг. 2, в соответствии с вариантом осуществления настоящего изобретения. В соответствии с этим вариантом осуществления, модуль предварительной обработки все еще разделяет элемент CU(t0) кодирования (например, рассматриваемый элемент кодирования) на множество подэлементов кодирования, таких как подэлементы {SubCU(t0)} кодирования, и выполняет прогнозирование для каждого из подэлементов {SubCU(t0)} кодирования на этапе 912. Однако, перед получение информации о движении, такой как раскрытый выше вектор {vk} движения, модуль предварительной обработки может обозначать вектор движения (например, опорный вектор движения) для каждого подэлемента кодирования, таким образом, что к нему позже может обращаться другой подэлемент (подэлементы)/элемент (элементы) кодирования. Правило для обозначения вектора движения может быть произвольным, поскольку требуется только, чтобы оно было согласовано и соответствовало, как кодерам, так и декодерам. Некоторое определенное правило для обозначения вектора движения включает в себя предиктор вектора движения, определенный в H.264, прогнозирование вектора движения, определенное в H.264, но без масштабирования вектора движения, заполнения от левого блока, заполнения от верхнего блока и заполнения от левого или верхнего блока. В соответствии с вариантом осуществления, в котором используется заполнение от левого или от верхнего блока, модуль предварительной обработки обозначает вектор движения, используя вектор движения подэлемента кодирования другого элемента кодирования (за исключением рассматриваемого элемента CU(t0) кодирования), такого, как кодированный подэлемент кодирования соседнего элемента CUADJ(t0) кодирования, который является соседним для элемента CU(t0) кодирования. Более конкретно, что касается конкретного подэлемента SubCU(t0) кодирования, подэлемент кодирования другого элемента кодирования (например, элемент CUADJ(t0) кодирования), является ближайшим подэлементом кодирования в пределах другого элемента кодирования, и модуль предварительной обработки может использовать вектор движения ближайшего подэлемента кодирования, находящегося на другом элементе кодирования (например, на элементе CUADJ(t0)) кодирования, как вектор движения, обозначенный для конкретного подэлемента SubCU(t0) кодирования. Вектор движения, обозначенный для элемента кодирования или подэлемента кодирования, в основном, используется, как опорный вектор движения для других элементов кодирования или подэлементов кодирования, когда нет необходимости его использовать для прогнозирования движения.
Как показано на фиг. 11, что касается элемента CU(t0) кодирования, такого как обрабатываемый блок (помеченный как “Обрабатываемый блок” на фиг. 11), соседние элементы {CUADJ(t0)} кодирования, которые используются в данном варианте осуществления, могут содержать по меньшей мере часть левого кодированного БЛОКА CBL, верхнего кодированного блока CBU, верхнего правого кодированного блока CBUR и верхнего левого кодированного блока CBUL, где подэлементы кодирования в этих кодированных блоках CBL, CBU, CBUR и CBUL могут рассматриваться, как подблоки. Для лучшего понимания векторы y1, y2, y3, y5, y6, y7 и y8 движения самого правого столбца подэлементов кодирования в левом кодированном блоке CBL помечены на самом правом столбце подэлементов кодирования, соответственно. Аналогично, векторы x1, x2, x3, x5, x6, x7 и x8 движения самого нижнего ряда подэлементов кодирования в верхнем кодированном блоке CBU помечены в самом нижнем ряду подэлементов кодирования, соответственно. Кроме того, вектор d движения нижнего правого подэлемента кодирования в верхнем левом кодированном блоке CBUL и вектор X9 движения нижнего левого подэлемента кодирования в верхнем правом кодированном блоке CBUR помечены на нем, соответственно.
В соответствии с данным вариантом осуществления, модуль предварительной обработки принимает элемент CU(t0) кодирования, содержащий множество подэлементов {SubCU(t0)} кодирования и анализирует данные элемента CU(t0) кодирования и обозначает опорный вектор движения конкретного подэлемента SubCU(t0) кодирования среди подэлементов {SubCU(t0)} кодирования в соответствии с заданным правилом, где опорный вектор движения используется для ссылки посредством по меньшей мере одного другого подэлемента кодирования, и не используется для прогнозирования вектора движения конкретного подэлемента SubCU(t0). При использовании опорных векторов движения для ссылки модуль предварительной обработки может работать быстро, без необходимости ожидать завершения каких-либо сложных расчетов в отношении конкретного вектора движения конкретного подэлемента SubCU(t0). На практике модуль предварительной обработки может обозначать этот вектор движения (то есть, опорный вектор движения, упомянутый выше) как вектор движения по меньшей мере одной части соседнего элемента кодирования. Более конкретно по меньшей мере одна часть соседнего элемента кодирования может представлять собой часть, которая ближе всего расположена к конкретному подэлементу кодирования в пределах соседнего элемента кодирования.
Например, предположим, что конкретный подэлемент SubCU(t0) кодирования представляет j-ый подблок определенного ряда подблоков в обрабатываемом блоке (например, обрабатываемом блоке, показанном на фиг. 11), где j может изменяться от 1 до 8. В первом правиле обозначения, таком как “вертикальное обозначение", модуль предварительной обработки может использовать вектор xj движения ближайшего подэлемента кодирования в пределах верхнего кодированного блока CBU, как опорный вектор движения конкретного подэлемента SubCU(t0) кодирования.
В другом примере, предположим, что конкретный подэлемент, SubCU(t0) кодирования представляет j-ый подблок определенного столбца подблоков в обрабатываемом блоке (например, обрабатываемом блоке, показанном на фиг. 11), где j может изменяться от 1 до 8. Во втором правиле обозначения, таком как “горизонтальное обозначение”, модуль предварительной обработки использует вектор yj движения ближайшего подэлемента кодирования в пределах левого кодированного блока CBL, в качестве опорного вектора движения конкретного подэлемента SubCU(t0) кодирования.
В другом примере третье правило обозначения, такое как “гибридное обозначение”, может быть выбрано для определения опорного вектора движения. Предположим, что этот конкретный подэлемент SubCU(t0) кодирования представляет j-ый подблок четвертого/восьмого ряда подблоков в обрабатываемом блоке (помечен, как “обрабатываемый блок” на фиг. 11), где j может изменяться от 1 до 8. Рассмотрим фиг. 11, на которой представлена стрелка, указывающая на j-ый подблок четвертого/восьмого ряда подблоков, модуль предварительной обработки использует вектор xj движения ближайшего подэлемента кодирования в верхнем кодированном блоке CBU, как опорный вектор движения конкретного подэлемента SubCU(t0) кодирования. Кроме того, предположим, что конкретный подэлемент SubCU(t0) кодирования представляет j-ый подблок четвертого/восьмого столбца подблоков в обрабатываемом блоке (помечен, как “обрабатываемый блок” на фиг. 11), где j может изменяться от 1 до 7, за исключением 4. На фиг. 11, представлено стрелкой, указывающей на j-ый подблок четвертого/восьмого столбца подблоков, модуль предварительной обработки использует вектор yj движения ближайшего подэлемента кодирования в левом кодированном блоке CBL, как опорный вектор движения конкретного подэлемента SubCU(t0) кодирования. В этом варианте осуществления опорные векторы движения оставшихся подэлементов кодирования в элементе CU(t0) кодирования могут быть получены путем использования того же или аналогичного способа в любом из вариантов осуществления/вариаций, раскрытых выше. Аналогичное описание не повторяется подробно для этого варианта осуществления.
Следует отметить, что в некоторых вариантах осуществления, таких как некоторые вариации представленного выше варианта осуществления, модуль предварительной обработки может управлять операциями, раскрытыми выше, используя флаг, и более конкретно, передавая флаг в явном виде. Например, кодер, воплощенный в соответствии с одним из этих вариантов осуществления, может передавать флаг, обозначающий, является ли правило обозначения, предназначенное для применения, одним из “вертикального обозначения” и “горизонтального обозначения” (и даже “гибридного обозначения”), таким образом, что при приеме потока битов, переносящего этот флаг, ассоциированный декодер может получить уведомление о правиле обозначения, которое требуется применять.
Кроме того, в некоторых вариантах осуществления, различные способы обозначения вектора движения, раскрытые выше (например, “вертикальное обозначение” и “горизонтальное обозначение”, и даже “гибридное обозначение”) можно использовать для выполнения получения вектора локального движения. Например, в ситуации, когда применяется “вертикальное обозначение”, векторы движения в каждом ряду подэлементов кодирования получают из соответствующих мест положения в пределах верхнего кодированного блока CBU (например, ближайшего подэлемента кодирования в пределах верхнего кодированного блока CBU), соответственно.
Преимущество настоящего изобретения состоит в том, что способы и устройства настоящего изобретения позволяют правильно выполнять локализованное многогипотезное прогнозирование, и в частности, позволяют легко правильно выполнять многогипотезную компенсацию движения для подэлементов кодирования рассматриваемого элемента кодирования. В результате использования способа и устройства настоящего изобретения, как операции прогнозирования вектора движения, так и операции многогипотезной компенсации движения могут быть выполнены, без привнесения каких-либо проблем предшествующего уровня техники, таких как низкая эффективность кодирования.
Для специалиста в данной области техники будет понятно, что многочисленные модификации и изменения устройства и способа могут быть выполнены при сохранении идей изобретения. В соответствии с этим, представленное выше раскрытие следует рассматривать, как ограниченное только границами и пределами приложенной формулы изобретения.

Claims (33)

1. Способ для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования, причем способ содержит этапы, на которых:
разделяют элемент кодирования на множество подэлементов кодирования; и
обрабатывают подэлементы кодирования, при этом этап обработки подэлементов кодирования дополнительно содержит этапы, на которых:
получают информацию движения первого набора кодируемых элементов, при этом кодируемые элементы являются скомпенсированными по движению;
получают множество пиксельных значений из информации движения первого набора кодируемых элементов;
используют линейную комбинацию упомянутого множества пиксельных значений в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования из упомянутых подэлементов кодирования; и
выводят прогнозированное пиксельное значение другого подэлемента кодирования в элементе кодирования, используя информацию движения второго набора кодируемых элементов, при этом второй набор кодируемых элементов содержит по меньшей мере один кодируемый элемент, который не входит в упомянутый первый набор кодируемых элементов;
при этом этап обработки подэлементов кодирования дополнительно содержит этапы, на которых:
динамически выбирают набор векторов движения из множества наборов векторов движения в качестве информации движения первого набора кодируемых элементов и используют выбранный набор векторов движения для выведения прогнозированного пиксельного значения конкретного подэлемента кодирования;
при этом множество наборов векторов движения содержит первый набор векторов движения, которые являются временными векторами движения, и дополнительно содержит второй набор векторов движения, которые являются пространственными векторами движения.
2. Способ по п.1, в котором этап использования линейной комбинации множества пиксельных значений в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования дополнительно содержит этап, на котором:
используют взвешенное суммирование множества пиксельных значений в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования.
3. Способ по п.2, в котором этап использования линейной комбинации множества пиксельных значений в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования дополнительно содержит этап, на котором:
выполняют оптимальную фильтрацию Винера над множеством пиксельных значений в отношении вещественного пиксельного значения текущего пикселя для того, чтобы скорректировать соответствующие взвешенные параметры для множества пиксельных значений и сгенерировать взвешенное суммирование.
4. Способ по п.2, в котором этап использования линейной комбинации множества пиксельных значений в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования дополнительно содержит этап, на котором:
определяют соответствующие взвешенные параметры для множества пиксельных значений в соответствии с содержанием по меньшей мере одного соседнего элемента кодирования для того, чтобы генерировать взвешенное суммирование.
5. Способ по п.2, в котором этап использования линейной комбинации множества пиксельных значений в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования дополнительно содержит этап, на котором:
определяют соответствующие взвешенные параметры для множества пиксельных значений в соответствии с содержанием первого набора кодируемых элементов для того, чтобы генерировать взвешенное суммирование.
6. Способ по п.2, в котором этап использования линейной комбинации множества пиксельных значений в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования дополнительно содержит этап, на котором:
определяют соответствующие взвешенные параметры для множества пиксельных значений посредством обучения в автономном режиме для того, чтобы генерировать взвешенное суммирование.
7. Способ по п.2, в котором этап использования линейной комбинации множества пиксельных значений в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования дополнительно содержит этап, на котором:
определяют соответствующие взвешенные параметры для множества пиксельных значений посредством обучения в неавтономном режиме для того, чтобы генерировать взвешенное суммирование.
8. Способ по п.1, в котором информация движения первого набора кодируемых элементов содержит по меньшей мере одно или комбинацию из вектора движения, индекса опорного кадра и направления прогнозирования.
9. Способ по п.8, в котором информация движения первого набора кодируемых элементов содержит множество векторов движения и векторы движения выводят из одного подэлемента кодирования/элемента кодирования.
10. Способ по п.1, в котором этап обработки подэлементов кодирования дополнительно содержит этап, на котором:
просеивают набор векторов движения посредством отбрасывания по меньшей мере одного экстремального вектора движения для того, чтобы выбрать остальную часть набора векторов движения в качестве информации движения первого набора кодируемых элементов.
11. Способ по п.1, в котором этап обработки подэлементов кодирования дополнительно содержит этап, на котором:
динамически выбирают набор векторов движения из множества наборов векторов движения и используют выбранный набор векторов движения в качестве информации движения первого набора кодируемых элементов на основе явного флага.
12. Способ по п.1, в котором этап разделения элемента кодирования на множество подэлементов кодирования дополнительно содержит этап, на котором:
определяют размер конкретного подэлемента кодирования так, чтобы он являлся размером преобразования в отношении видеокодирования элемента кодирования.
13. Способ по п.1, в котором этап разделения элемента кодирования на множество подэлементов кодирования дополнительно содержит этап, на котором:
разделяют элемент кодирования на множество подэлементов кодирования на основе по меньшей мере одного режима по меньшей мере одного соседнего элемента кодирования.
14. Способ по п.1, в котором этап разделения элемента кодирования на множество подэлементов кодирования дополнительно содержит этап, на котором:
разделяют элемент кодирования на множество подэлементов кодирования на основе содержания/разделения по меньшей мере одного соседнего элемента кодирования.
15. Способ по п.1, в котором кодируемые элементы содержат по меньшей мере один пространственно кодируемый подэлемент кодирования/элемент кодирования и/или по меньшей мере один временно кодируемый подэлемент кодирования/элемент кодирования.
16. Способ по п.1, в котором этап обработки подэлементов кодирования дополнительно содержит этап, на котором:
получают по меньшей мере один вектор движения элемента кодирования посредством выполнения оценки движения для использования выполнения оптимизации скорость передачи-искажение для того, чтобы получить прогнозированное пиксельное значение конкретного подэлемента кодирования.
17. Способ по п.1, в котором этап обработки подэлементов кодирования дополнительно содержит этап, на котором:
при получении информации движения обозначают опорный вектор движения для подэлемента кодирования.
18. Способ по п.17, в котором этап обозначения опорного вектора движения дополнительно содержит этап, на котором:
обозначают опорный вектор движения, используя вектор движения подэлемента кодирования другого элемента кодирования.
19. Способ по п.18, в котором другой элемент кодирования представляет собой смежный элемент кодирования, который является смежным с элементом кодирования.
20. Способ по п.18, дополнительно содержащий этап, на котором:
используют вектор движения ближайшего подэлемента кодирования в пределах другого элемента кодирования в качестве опорного вектора движения, обозначенного для конкретного подэлемента кодирования.
21. Устройство для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования, причем устройство содержит:
схему обработки, выполненную с возможностью выполнения видеокодирования над элементом кодирования, при этом схема обработки содержит:
модуль предварительной обработки, выполненный с возможностью разделения элемента кодирования на множество подэлементов кодирования и обработки подэлементов кодирования, при этом модуль предварительной обработки получает информацию движения первого набора кодируемых элементов, при этом кодируемые элементы являются скомпенсированными по движению, и выполняет многогипотезную компенсацию движения над конкретным подэлементом кодирования из подэлементов кодирования в соответствии с информацией движения, и модуль предварительной обработки использует линейную комбинацию множества пиксельных значений, полученных из информации движения первого набора кодируемых элементов в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования; и
по меньшей мере один модуль кодирования, выполненный с возможностью выполнения видеокодирования над элементом кодирования на основе многогипотезной компенсации движения, выполняемой модулем предварительной обработки;
при этом модуль предварительной обработки выводит прогнозируемое пиксельное значение другого подэлемента кодирования в элементе кодирования посредством использования информации движения второго набора кодируемых элементов, содержащего по меньшей мере один кодируемый элемент, который не находится в первом наборе кодируемых элементов, причем второй набор кодируемых элементов представляет собой скомпенсированные по движению элементы кодирования;
при этом модуль предварительной обработки динамически выбирает набор векторов движения из множества наборов векторов движения в качестве информации движения первого набора кодируемых элементов и использует выбранный набор векторов движения для выведения прогнозированного пиксельного значения конкретного подэлемента кодирования;
при этом множество наборов векторов движения содержит первый набор векторов движения, которые являются временными векторами движения, и дополнительно содержит второй набор векторов движения, которые являются пространственными векторами движения.
22. Устройство по п.21, в котором модуль предварительной обработки использует взвешенное суммирование множества пиксельных значений в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования.
23. Устройство по п.22, в котором модуль предварительной обработки выполняет оптимальную фильтрацию Винера над множеством пиксельных значений в отношении вещественного пиксельного значения текущего пикселя для того, чтобы скорректировать соответствующие взвешенные параметры для множества пиксельных значений и генерировать взвешенное суммирование.
24. Устройство по п.22, в котором модуль предварительной обработки определяет соответствующие взвешенные параметры для множества пиксельных значений в соответствии с содержанием по меньшей мере одного соседнего элемента кодирования для того, чтобы генерировать взвешенное суммирование.
25. Устройство по п.22, в котором модуль предварительной обработки определяет соответствующие взвешенные параметры для множества пиксельных значений в соответствии с содержанием первого набора кодируемых элементов для того, чтобы генерировать взвешенное суммирование.
26. Устройство по п.22, в котором модуль предварительной обработки определяет соответствующие взвешенные параметры для множества пиксельных значений посредством обучения в автономном режиме для того, чтобы генерировать взвешенное суммирование.
27. Устройство по п.22, в котором модуль предварительной обработки определяет соответствующие взвешенные параметры для множества пиксельных значений путем обучения в неавтономном режиме для того, чтобы генерировать взвешенное суммирование.
28. Устройство по п.21, в котором модуль предварительной обработки просеивает набор векторов движения отбрасывая по меньшей мере один экстремальный вектор движения для того, чтобы выбрать остальную часть набора векторов движения в качестве информации движения первого набора кодируемых элементов.
29. Устройство по п.21, в котором модуль предварительной обработки динамически выбирает набор векторов движения из множества наборов векторов движения и использует выбранный набор векторов движения в качестве информации движения первого набора кодируемых элементов на основе явного флага.
30. Устройство по п.21, в котором информация движения содержит множество векторов движения, выведенных из одного подэлемента кодирования/элемента кодирования.
31. Устройство по п.21, в котором модуль предварительной обработки определяет размер конкретного подэлемента кодирования так, чтобы он представлял собой размер преобразования в отношении видеокодирования элемента кодирования.
32. Устройство по п.21, в котором модуль предварительной обработки разделяет элемент кодирования на множество подэлементов кодирования на основе по меньшей мере одного из режима, содержания или разделения по меньшей мере одного соседнего элемента кодирования.
33. Способ для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования, причем способ содержит этапы, на которых:
разделяют элемент кодирования на множество подэлементов кодирования; и
обрабатывают подэлементы кодирования, при этом этап обработки подэлементов кодирования дополнительно содержит этапы, на которых:
получают информацию движения множества кодируемых элементов для многогипотезной компенсации движения конкретного подэлемента кодирования из подэлементов кодирования, при этом кодируемые элементы являются скомпенсированными по движению;
используют взвешенное суммирование множества пиксельных значений, полученных из информации движения кодируемых элементов в качестве прогнозированного пиксельного значения конкретного подэлемента кодирования; и
выводят прогнозированное пиксельное значение другого подэлемента кодирования в элементе кодирования посредством использования другого взвешенного суммирования пиксельных значений, выведенных из информации движения кодируемых элементов;
при этом этап обработки подэлементов кодирования дополнительно содержит этапы, на которых:
динамически выбирают набор векторов движения из множества наборов векторов движения в качестве информации движения множества кодируемых элементов и используют выбранный набор векторов движения для выведения прогнозированного пиксельного значения конкретного подэлемента кодирования;
при этом множество наборов векторов движения содержит первый набор векторов движения, которые являются временными векторами движения, и дополнительно содержит второй набор векторов движения, которые являются пространственными векторами движения.
RU2012141233/08A 2010-04-14 2011-04-14 Способ выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования и соответствующее устройство RU2530318C2 (ru)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US32394810P 2010-04-14 2010-04-14
US61/323,948 2010-04-14
US13/080,668 2011-04-06
US13/080,668 US8879620B2 (en) 2010-04-14 2011-04-06 Method for performing localized multihypothesis prediction during video coding of a coding unit, and associated apparatus
PCT/CN2011/072783 WO2011127828A1 (en) 2010-04-14 2011-04-14 Method for performing localized multihypothesis prediction during video coding of a coding unit, and associated apparatus

Publications (2)

Publication Number Publication Date
RU2012141233A RU2012141233A (ru) 2014-06-10
RU2530318C2 true RU2530318C2 (ru) 2014-10-10

Family

ID=44788180

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012141233/08A RU2530318C2 (ru) 2010-04-14 2011-04-14 Способ выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования и соответствующее устройство

Country Status (11)

Country Link
US (3) US8837592B2 (ru)
EP (2) EP2559250B1 (ru)
JP (1) JP5211263B2 (ru)
KR (1) KR101452921B1 (ru)
CN (5) CN102223542A (ru)
AU (1) AU2011240486B2 (ru)
BR (1) BR112012025275B8 (ru)
IL (2) IL222337A (ru)
RU (1) RU2530318C2 (ru)
TW (4) TWI469645B (ru)
WO (1) WO2011127828A1 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2803895C2 (ru) * 2019-06-21 2023-09-21 Вид Скейл, Инк. Уточнение прогнозирования с компенсацией движения с помощью оптического потока

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9118929B2 (en) 2010-04-14 2015-08-25 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
US8971400B2 (en) * 2010-04-14 2015-03-03 Mediatek Inc. Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
WO2012081895A1 (ko) * 2010-12-13 2012-06-21 한국전자통신연구원 인트라 예측 방법 및 그 장치
US9462272B2 (en) * 2010-12-13 2016-10-04 Electronics And Telecommunications Research Institute Intra prediction method and apparatus
EP2661080A4 (en) * 2010-12-31 2016-06-29 Korea Electronics Telecomm METHOD FOR CODING VIDEO INFORMATION AND METHOD FOR DECODING VIDEO INFORMATION AND DEVICE THEREFOR
JP5478740B2 (ja) * 2011-01-12 2014-04-23 三菱電機株式会社 動画像符号化装置、動画像復号装置、動画像符号化方法及び動画像復号方法
WO2013023518A1 (en) * 2011-08-17 2013-02-21 Mediatek Singapore Pte. Ltd. Method and apparatus for intra prediction using non-square blocks
US9736489B2 (en) * 2011-09-17 2017-08-15 Qualcomm Incorporated Motion vector determination for video coding
US9386305B2 (en) * 2011-11-28 2016-07-05 Qualcomm Incorporated Largest coding unit (LCU) or partition-based syntax for adaptive loop filter and sample adaptive offset in video coding
CN104137052A (zh) * 2011-12-23 2014-11-05 英特尔公司 用于选择向量计算的元素的装置和方法
WO2013107028A1 (en) * 2012-01-19 2013-07-25 Mediatek Singapore Pte. Ltd. Methods and apparatuses of amvp simplification
KR102030205B1 (ko) 2012-01-20 2019-10-08 선 페이턴트 트러스트 시간 움직임 벡터 예측을 사용하여 비디오를 부호화 및 복호하는 방법 및 장치
ES2865101T3 (es) 2012-02-03 2021-10-15 Sun Patent Trust Procedimiento de codificación de imágenes, procedimiento de decodificación de imágenes, dispositivo de codificación de imágenes, dispositivo de decodificación de imágenes y dispositivo de codificación/decodificación de imágenes
WO2013132792A1 (ja) 2012-03-06 2013-09-12 パナソニック株式会社 動画像符号化方法、動画像復号方法、動画像符号化装置、動画像復号装置、及び動画像符号化復号装置
US9544612B2 (en) * 2012-10-04 2017-01-10 Intel Corporation Prediction parameter inheritance for 3D video coding
CN110087089B (zh) * 2013-11-27 2023-03-10 寰发股份有限公司 用于颜色视频数据的视频编解码方法
CN111193929B (zh) * 2013-12-16 2022-04-12 浙江大学 一种前向双假设编码图像块的编解码方法和装置
KR101789954B1 (ko) * 2013-12-27 2017-10-25 인텔 코포레이션 차세대 비디오 코딩을 위한 콘텐츠 적응적 이득 보상된 예측
JP6482191B2 (ja) 2014-06-12 2019-03-13 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
GB2531001B (en) * 2014-10-06 2019-06-05 Canon Kk Method and apparatus for vector encoding in video coding and decoding
US10958927B2 (en) 2015-03-27 2021-03-23 Qualcomm Incorporated Motion information derivation mode determination in video coding
TWI610558B (zh) * 2016-05-26 2018-01-01 晨星半導體股份有限公司 位元分配方法及視訊編碼裝置
KR102328179B1 (ko) * 2016-11-28 2021-11-18 한국전자통신연구원 영상 부호화/복호화 방법, 장치 및 비트스트림을 저장한 기록 매체
WO2018128345A2 (ko) * 2017-01-04 2018-07-12 삼성전자 주식회사 복호화 방법 및 그 장치
WO2019152283A1 (en) 2018-02-02 2019-08-08 Apple Inc. Techniques of multi-hypothesis motion compensation
US11924440B2 (en) 2018-02-05 2024-03-05 Apple Inc. Techniques of multi-hypothesis motion compensation
TWI700922B (zh) 2018-04-02 2020-08-01 聯發科技股份有限公司 用於視訊編解碼系統中的子塊運動補償的視訊處理方法和裝置
US10986343B2 (en) * 2018-04-15 2021-04-20 Arris Enterprises Llc Reducing overhead for multiple-hypothesis temporal prediction
CN116684594A (zh) * 2018-04-30 2023-09-01 寰发股份有限公司 照度补偿方法及相应的电子装置
WO2019229683A1 (en) 2018-05-31 2019-12-05 Beijing Bytedance Network Technology Co., Ltd. Concept of interweaved prediction
TWI731345B (zh) * 2018-06-19 2021-06-21 大陸商北京字節跳動網絡技術有限公司 模式相依運動向量差精確集
EP4307679A2 (en) * 2018-07-02 2024-01-17 Beijing Bytedance Network Technology Co., Ltd. Luts with intra prediction modes and intra mode prediction from non-adjacent blocks
CN110602493B (zh) * 2018-09-19 2022-06-10 北京达佳互联信息技术有限公司 一种仿射运动补偿的交织预测的方法及设备
EP4325859A3 (en) 2018-09-19 2024-05-15 Beijing Bytedance Network Technology Co., Ltd. Syntax reuse for affine mode with adaptive motion vector resolution
CN116527889A (zh) * 2018-09-25 2023-08-01 华为技术有限公司 一种图像预测方法和设备
CN111050164B (zh) * 2018-10-15 2022-05-17 华为技术有限公司 一种编解码的方法和装置
WO2020101559A1 (en) * 2018-11-15 2020-05-22 Telefonaktiebolaget Lm Ericsson (Publ) Deblocking in a video encoder and/or video decoder
CN113454999A (zh) 2019-01-02 2021-09-28 北京字节跳动网络技术有限公司 划分模式之间的运动矢量推导
CN113412623A (zh) 2019-01-31 2021-09-17 北京字节跳动网络技术有限公司 记录仿射模式自适应运动矢量分辨率的上下文
CN110852500B (zh) * 2019-11-01 2023-04-07 聊城大学 一种资源受限混合流水车间优化方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807231B1 (en) * 1997-09-12 2004-10-19 8×8, Inc. Multi-hypothesis motion-compensated video image predictor
RU2008106777A (ru) * 2005-07-22 2009-08-27 Мицуубиси Электрик Корпорейшн (Jp) Кодер изображения и декодер изображения, способ кодирования изображения и способ декодирования изображения, программа кодирования изображения и программа декодирования изображения и компьютерно-считываемый носитель записи, на котором записана программа кодирования изображения, и компьютерно-считываемый носитель записи, на котором записана программа декодирования изображения

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2231751B (en) 1989-04-27 1993-09-22 Sony Corp Motion dependent video signal processing
DE69027966T2 (de) 1989-10-06 1997-02-06 Philips Electronics Nv Adaptive Schaltung zur Geisterbildauslöschung
US5134475A (en) 1990-12-11 1992-07-28 At&T Bell Laboratories Adaptive leak hdtv encoder
KR970002964B1 (ko) 1993-12-24 1997-03-13 대우전자 주식회사 영상신호의 시간축 내삽필터
EP2129133A3 (en) * 1995-08-29 2012-02-15 Sharp Kabushiki Kaisha Video coding device and video decoding device with a motion compensated interframe prediction
JP2000512091A (ja) 1996-05-24 2000-09-12 フィリップス エレクトロニクス ネムローゼ フェンノートシャップ 動作ベクトル処理
JP3633159B2 (ja) * 1996-12-18 2005-03-30 ソニー株式会社 動画像信号符号化方法及び装置、並びに動画像信号伝送方法
US6532265B1 (en) 1999-03-25 2003-03-11 Imec Vzw Method and system for video compression
JP2000299864A (ja) * 1999-04-12 2000-10-24 Canon Inc 動画像処理方法
US6633677B1 (en) 1999-12-30 2003-10-14 Stmicroelectronics, Inc. Method and apparatus for processing an image in an image compression/decompression system that uses hierachical coding
US6438168B2 (en) 2000-06-27 2002-08-20 Bamboo Media Casting, Inc. Bandwidth scaling of a compressed video stream
US20040001546A1 (en) * 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
US20040141555A1 (en) * 2003-01-16 2004-07-22 Rault Patrick M. Method of motion vector prediction and system thereof
US7184602B2 (en) 2003-05-02 2007-02-27 Microsoft Corp. System and method for low bandwidth video streaming for face-to-face teleconferencing
HUP0301368A3 (en) * 2003-05-20 2005-09-28 Amt Advanced Multimedia Techno Method and equipment for compressing motion picture data
ES2343410T3 (es) 2003-06-25 2010-07-30 Thomson Licensing Codificacion intertramas con decision rapida de modo.
US8085845B2 (en) 2003-08-26 2011-12-27 Thomson Licensing Method and apparatus for encoding hybrid intra-inter coded blocks
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
JP3880985B2 (ja) * 2004-08-05 2007-02-14 松下電器産業株式会社 動きベクトル検出装置および動きベクトル検出方法
US7447337B2 (en) * 2004-10-25 2008-11-04 Hewlett-Packard Development Company, L.P. Video content understanding through real time video motion analysis
JP2007142521A (ja) 2005-11-15 2007-06-07 Sharp Corp 動きベクトル算出装置および動きベクトル算出方法
JP4763549B2 (ja) * 2006-08-18 2011-08-31 富士通セミコンダクター株式会社 フレーム間予測処理装置、画像符号化装置、及び画像復号化装置
CN101222627A (zh) * 2007-01-09 2008-07-16 华为技术有限公司 一种多视点视频编解码系统以及预测向量的方法和装置
KR101366241B1 (ko) * 2007-03-28 2014-02-21 삼성전자주식회사 영상 부호화, 복호화 방법 및 장치
JP4325708B2 (ja) * 2007-07-05 2009-09-02 ソニー株式会社 データ処理装置、データ処理方法およびデータ処理プログラム、符号化装置、符号化方法および符号化プログラム、ならびに、復号装置、復号方法および復号プログラム
JP4786612B2 (ja) * 2007-08-14 2011-10-05 Kddi株式会社 動画像符号化装置の予測動きベクトル生成装置
US8000411B2 (en) * 2008-01-04 2011-08-16 Qualcomm Incorporated Decoding scheme using multiple hypotheses about transmitted messages
JP4990927B2 (ja) 2008-03-28 2012-08-01 三星電子株式会社 動きベクトル情報の符号化/復号化方法及び装置
US8195001B2 (en) 2008-04-09 2012-06-05 Intel Corporation In-loop adaptive wiener filter for video coding and decoding
EP2269379B1 (en) 2008-04-11 2019-02-27 InterDigital Madison Patent Holdings Methods and apparatus for template matching prediction (tmp) in video encoding and decoding
US8908763B2 (en) * 2008-06-25 2014-12-09 Qualcomm Incorporated Fragmented reference in temporal compression for video coding
CN102160384A (zh) 2008-09-24 2011-08-17 索尼公司 图像处理设备和方法
US8724697B2 (en) * 2008-09-26 2014-05-13 Qualcomm Incorporated Locating motion vectors for video data units
US8634457B2 (en) * 2008-09-26 2014-01-21 Qualcomm Incorporated Determining availability of video data units
US8660176B2 (en) * 2008-09-26 2014-02-25 Qualcomm Incorporated Resolving geometric relationships among video data units
KR101279573B1 (ko) * 2008-10-31 2013-06-27 에스케이텔레콤 주식회사 움직임 벡터 부호화 방법 및 장치와 그를 이용한 영상 부호화/복호화 방법 및 장치
JP4957780B2 (ja) 2009-11-20 2012-06-20 カシオ計算機株式会社 動き補償予測符号化装置、動き補償予測符号化方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807231B1 (en) * 1997-09-12 2004-10-19 8×8, Inc. Multi-hypothesis motion-compensated video image predictor
RU2008106777A (ru) * 2005-07-22 2009-08-27 Мицуубиси Электрик Корпорейшн (Jp) Кодер изображения и декодер изображения, способ кодирования изображения и способ декодирования изображения, программа кодирования изображения и программа декодирования изображения и компьютерно-считываемый носитель записи, на котором записана программа кодирования изображения, и компьютерно-считываемый носитель записи, на котором записана программа декодирования изображения

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Markus Flierl et al., Rate-constrained multihypothesis prediction for motion-compensated video compression, IEEE Transactions on, 30.11.2002. *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2803895C2 (ru) * 2019-06-21 2023-09-21 Вид Скейл, Инк. Уточнение прогнозирования с компенсацией движения с помощью оптического потока

Also Published As

Publication number Publication date
AU2011240486B2 (en) 2014-02-13
CN105791858A (zh) 2016-07-20
US8837592B2 (en) 2014-09-16
TWI520586B (zh) 2016-02-01
WO2011127828A1 (en) 2011-10-20
KR20120126115A (ko) 2012-11-20
IL222337A (en) 2016-05-31
BR112012025275A2 (pt) 2016-06-21
US8891608B2 (en) 2014-11-18
TW201511525A (zh) 2015-03-16
AU2011240486A1 (en) 2012-10-11
KR101452921B1 (ko) 2014-10-23
CN102907095B (zh) 2016-10-12
EP2559250A4 (en) 2016-01-06
JP2012513179A (ja) 2012-06-07
BR112012025275B1 (pt) 2021-08-03
IL245480A0 (en) 2016-06-30
TWI514855B (zh) 2015-12-21
CN102907095A (zh) 2013-01-30
CN105791858B (zh) 2019-11-15
IL222337A0 (en) 2012-12-31
US20110255598A1 (en) 2011-10-20
RU2012141233A (ru) 2014-06-10
CN105872558A (zh) 2016-08-17
CN107071472A (zh) 2017-08-18
EP3220646A1 (en) 2017-09-20
TW201218776A (en) 2012-05-01
US20110255600A1 (en) 2011-10-20
TW201143462A (en) 2011-12-01
IL245480B (en) 2018-01-31
TW201511524A (zh) 2015-03-16
US8879620B2 (en) 2014-11-04
CN102223542A (zh) 2011-10-19
EP2559250B1 (en) 2020-07-08
US20120027097A1 (en) 2012-02-02
TWI469645B (zh) 2015-01-11
TWI445411B (zh) 2014-07-11
JP5211263B2 (ja) 2013-06-12
EP2559250A1 (en) 2013-02-20
CN105872558B (zh) 2019-06-07
BR112012025275B8 (pt) 2021-08-24

Similar Documents

Publication Publication Date Title
RU2530318C2 (ru) Способ выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования и соответствующее устройство
KR101684207B1 (ko) 동화상 복호 장치, 동화상 부호화 장치, 동화상 복호 방법, 및 동화상 부호화 방법
JP5321426B2 (ja) 画像符号化装置、画像復号化装置、画像符号化方法、及び画像復号化方法
US20150208091A1 (en) Methods and apparatuses for encoding/decoding high resolution images
CN112385231B (zh) 图像编码/解码方法和装置
US8971400B2 (en) Method for performing hybrid multihypothesis prediction during video coding of a coding unit, and associated apparatus
KR20110081304A (ko) 화상 예측 부호화 장치, 화상 예측 복호 장치, 화상 예측 부호화 방법, 화상 예측 복호 방법, 화상 예측 부호화 프로그램, 및 화상 예측 복호 프로그램
JP4571069B2 (ja) 動画像符号化装置
KR102125969B1 (ko) 화면 내 예측 방법 및 이러한 방법을 사용하는 장치
JP5194039B2 (ja) イントラ予測装置、符号化器、復号器、及びプログラム
KR20200124755A (ko) 비디오 처리 시스템에서 인터 예측 방법 및 장치

Legal Events

Date Code Title Description
PD4A Correction of name of patent owner
PC41 Official registration of the transfer of exclusive right

Effective date: 20161013