СПОСОБ ВЫПОЛНЕНИЯ ЛОКАЛИЗОВАННОГО МНОГОГИПОТЕЗНОГО ПРОГНОЗИРОВАНИЯ ВО ВРЕМЯ ВИДЕОКОДИРОВАНИЯ ЭЛЕМЕНТА КОДИРОВАНИЯ И СООТВЕТСТВУЮЩЕЕ УСТРОЙСТВО
METHOD OF PERFORMING LOCALISED MULTI-HYPOTHESIS PREDICTION DURING VIDEO CODING OF CODING UNIT AND ASSOCIATED APPARATUS

Уровень техники
Перекрестная ссылка на родственные заявки
Эта заявка испрашивает приоритет предварительной заявки США № 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 адаптивно разделяют на меньшие элементы кодирования, пока не будут достигнуты листовые элементы кодирования. В соответствии с этим вариантом осуществления, упомянутый выше модуль предварительной обработки выполнен с возможностью разделения упомянутого выше элемента кодирования на множество подэлементов кодирования (например, разделенных на различные виды сегментов, такие как квадратные или неквадратные сегменты), и выполнен с возможностью выполнения прогнозирования для каждого из этих подэлементов кодирования. Более конкретно, модуль предварительной обработки может выполнять межкадровое прогнозирование, внутрикадровое прогнозирование или многогипотезную компенсацию движения для каждого из подэлементов кодирования. Когда многогипотезную компенсацию движения выбирают для конкретного подэлемента кодирования, модуль предварительной обработки рассчитывает линейную комбинацию множества пиксельных значений, полученных в соответствии с множеством других кодированных элементов, и использует рассчитанный результат, как спрогнозированное пиксельное значение для конкретного подэлемента кодирования. Множество других кодированных элементов могут представлять собой кодированные подэлементы кодирования, кодированные элементы кодирования, или их комбинацию. Кроме того, упомянутый выше по меньшей мере один модуль кодирования выполнен с возможностью выполнения видеокодирования элемента кодирования на основе многогипотезной компенсации движения, выполняемой модулем предварительной обработки.
0
0
0
0
0
0
0
0
0
k
k
0
k
На фиг. 1C иллюстрируются примерные операции многогипотезной компенсации движения элемента 110 межкадрового/внутрикадрового прогнозирования, показанного на фиг. 1A, в соответствии с вариантом осуществления настоящего изобретения. В данном варианте осуществления обозначения F (t-3), F (t-2), F (t-1) и F (t) используются для представления участка из множества последовательных кадров {F (t)}, при этом кадр F (t) представляет собой текущий кадр. Текущий кадр F (t) может содержать множество элементов {CU(t)} кодирования, и элемент CU(t) кодирования может содержать множество подэлементов {SubCU(t)} кодирования. Модуль предварительной обработки, упомянутый выше, соответственно, получает информацию о движении, такую как векторы {v} движения, из множества других подэлементов/элементов кодирования, что означает, что модуль предварительной обработки использует векторы движения множества других подэлементов/элементов кодирования, как векторы {v} движения для многогипотезной компенсации движения конкретного подэлемента кодирования. В соответствии с данным вариантом осуществления, модуль предварительной обработки может выполнять многогипотезную компенсацию движения для конкретного подэлемента кодирования, такого как подэлемент кодирования SubCU(t), показанный на фиг. 1C, в соответствии с множеством векторов {v} движения.
r
р
р
0
0
р
р
р
В общем, модуль предварительной обработки рассчитывает линейную комбинацию множества опорных пиксельных значений {Ψ}, полученных на основе информации о движении множества других подэлементов кодирования/элементов кодирования. Линейная комбинация представляет собой прогнозируемое пиксельное значение Ψ у конкретного подэлемента кодирования. Например, информация о движении первого набора кодированных элементов содержит один или комбинацию вектора (векторов) движения, индекс (индексы) опорного кадра и направление (направления) прогнозирования, и более конкретно, содержит некоторые векторы движения, которые получают из одного подэлемента кодирования/элемента кодирования. В другом примере информация о движении может представлять собой вектор (вектора) движения, индекс (индексы) опорного кадра, направление (направления) прогнозирования, или любую комбинацию упомянутых выше. Векторы движения используются, как пример информации о движении следующих вариантов осуществления. Следует отметить, что линейная комбинация может представлять собой взвешенное суммирование множества опорных пиксельных значений, которое означает, что модуль предварительной обработки использует взвешенное суммирование множества пиксельных значений как прогнозируемое пиксельное значение конкретного подэлемента кодирования. Например, в ситуации, когда специфичный прогнозируемый пиксель, имеющий прогнозируемое пиксельное значение Ψ, принадлежит i-ому подэлементу кодирования (например, подэлементу SubCU(t) кодирования, показанному на фиг. 1C) и расположен в положении x (например, вектор, обозначающий положение, такой как двумерный вектор на плоскости изображения текущего кадра F (t)), прогнозируемое пиксельное значение Ψ может быть перезаписано, как Ψ(i,x), и прогнозируемое пиксельное значение Ψ(i, x) может быть выражено следующим образом:
р
k
K
k
r
k
Ψ(i, x)=Σ(h(i,x) Ψ(x+v));
k
k
где индекс k может изменяться в пределах установленного K, с обозначением h(i, x), представляющим взвешенный параметр, ассоциированный с индексом k. Например, в ситуации, когда количество возможных значений k больше, чем одно, сумма взвешенных параметров {h(i, x)} может быть равна единице, для простоты.
k
A
B
0
T
0
0
0
0
k
r
k
k
A
B
T
0
Как показано на фиг. 1C, векторы {v} движения могут содержать векторы v и v движения подэлементов A и B кодирования других элементов кодирования в пределах текущего кадра F(t), и дополнительно содержать вектор V движения подэлемента T кодирования элемента CU(t-1) кодирования в пределах другого кадра, такого как предыдущий кадр F (t-1). Например, в ситуации, когда элементы кодирования представляют собой блоки, элемент CU(t-1) кодирования может представлять собой совместно выделенный блок относительно элемента CU(t) кодирования. В результате, путем применения взвешенных параметров {h(i,x)} к опорным пиксельным значениям {Ψ}, полученых векторами {v} движения, модуль предварительной обработки может смешан/перемешан с компонентами изображения, обозначенными векторами {v} движения, такими как V, V и V, для генерирования взвешенного изображения суммирования и использовать это взвешенное изображение суммирования, как прогнозируемый компонент изображения специфичного подэлемента кодирования, такого как подэлемент SubCU(t) кодирования, показанного на фиг. 1C. Рассмотрим фиг. 2, на которой показана дополнительная информация в отношении раскрытых выше операций.
На фиг. 2 показана блок-схема последовательности операций способа 910 для выполнения локализованного многогипотезного прогнозирования во время видеокодирования элемента кодирования в соответствии с вариантом осуществления настоящего изобретения. Способ 910 можно применять к устройству 100, показанному на фиг. 1A, и более конкретно, к схеме обработки, упомянутой выше. Способ описан следующим образом.
0
0
0
k
0
0
0
0
0
L
UL
U
UR
k
L
UL
U
UR
На этапе 912 упомянутый выше модуль предварительной обработки разделяет элемент CU(t) кодирования (например, рассматриваемый элемент кодирования) на множество подэлементов кодирования, таких как подэлементы {SubCU(t)} кодирования и выполняет прогнозирование для каждого из подэлементов {SubCU(t)} кодирования. В частности, модуль предварительной обработки получает информацию о движении, такую как векторы {v} движения, раскрытую выше, для многогипотезной компенсации движения конкретного подэлемента SubCU(t) кодирования подэлементов (SubCU(t)} кодирования из множества других элементов кодирования, упомянутых выше (например, множества других подэлементов/элементов кодирования, которые могут содержать: другой подэлемент (элементы) кодирования элемента CU(t) кодирования; подэлемент (элементы) кодирования по меньшей мере одного другого элемента кодирования; и/или другой элемент (элементы) кодирования). В соответствии с вариантом осуществления настоящего изобретения, например, такого как показан на фиг. 3, элемент CU(t) кодирования может представлять собой блок, проходящий обработку (помеченный как “Обработанный блок” на фиг. 3), и конкретный подэлемент SubCU(t) кодирования может представлять собой подблок SB, где затененная область, показанная на фиг. 3, может представлять собой по меньшей мере область кодированных элементов/кодированных блоков {CB}. На фиг. 3 кодированные блоки {CB} могут содержать левый кодированный блок CB, верхний левый кодированный блок CB, верхний кодированный блок CB и верхний правый кодированный блок CB. Например, векторы {v} движения могут содержать векторы движения по меньшей мере части (например, части или всех) кодированных блоков {CB}, таких как один или больше кодированных блоков CB, CB, CB, и CB.
0
k
r
r
0
k
r
L
UL
U
UR
На этапе 914 упомянутый выше модуль предварительной обработки выполняет многогипотезную компенсацию движения для конкретного подэлемента SubCU(t) кодирования в соответствии с множеством векторов {v} движения. В частности, модуль предварительной обработки использует линейную комбинацию из множества пиксельных значений для множества других кодированных элементов, упомянутых на этапе 912 (например, множество других подэлементов/элементов кодирования), таких как линейная комбинация опорных пиксельных значений {Ψ} опорных пикселей в пределах множества других кодированных упомянутых выше элементов, в качестве прогнозируемого пиксельного значения {Ψ} конкретного подэлемента кодирования. Например, каждый элемент кодирования (например, элемент CU(t)) кодирования может представлять собой блок, и более конкретно, блок, содержащий массив пикселей, такой как расширенный макроблок, макроблок или часть макроблока. Таким образом, подэлемент кодирования можно называть подблоком. В соответствии с вариантом осуществления настоящего изобретения, таким, как показан на фиг. 3, упомянутый выше модуль предварительной обработки может выполнять многогипотезную компенсацию движения для блока обработки (обозначен как “обрабатываемый блок” на фиг. 3) в соответствии с векторами {v} движения, раскрытыми выше, где модуль предварительной обработки может смешивать/перемешивать опорные пиксельные значения {Ψ} опорных пикселей в пределах по меньшей мере части (например, части или всех) кодированных блоков {CB}, таких как один или больше из кодированных блоков CB, CB, CB и CB. В данном варианте осуществления кодированные блоки {CB} могут представлять собой блоки с компенсированным движением.
0
В соответствии с данным вариантом осуществления, модуль предварительной обработки выполнен с возможностью обработки каждого из подэлементов кодирования, упомянутых на этапе 912. Например, модуль предварительной обработки получает информацию о движении первого набора кодированных элементов для многогипотезной компенсации движения первого подэлемента кодирования среди подэлементов кодирования, упомянутых на этапе 912, таких как конкретный подэлемент SubCU(t) кодирования и выполняет многогипотезную компенсацию движения для первого подэлемента кодирования, такого как конкретный подэлемент кодирования, в соответствии с информацией движения. Более конкретно, модуль предварительной обработки использует линейную комбинацию из множества пиксельных значений, полученных из информации о движении первого набора кодированных элементов, как прогнозируемое пиксельное значение первого подэлемента кодирования, такого как конкретный подэлемент кодирования. Кроме того, упомянутый выше по меньшей мере один модуль кодирования выполнен с возможностью выполнения видеокодирования для элемента кодирования на основе многогипотезной компенсации движения, выполняемой модулем предварительной обработки. Кроме того, модуль предварительной обработки получает прогнозируемое пиксельное значение другого подэлемента кодирования в элементе кодирования, таком как второй подэлемент кодирования подэлементов кодирования, упомянутых на этапе 912, используя информацию о движении второго набора кодированных элементов, где второй подэлемент кодирования отличается от первого подэлемента кодирования.
0
0
0
0
0
0
0
0
Что касается первого подэлемента кодирования, первый набор кодированных элементов может содержать: другой подэлемент (элементы) кодирования элемента CU(t) кодирования (то есть, подэлемент (элементы) кодирования для элемента CU(t)) кодирования, за исключением первого подэлемента кодирования); подэлемент (элементы) кодирования по меньшей мере одного другого элемента кодирования (то есть, подэлемент (элементы) кодирования по меньшей мере одного элемента кодирования, который отличается от элемента CU(t) кодирования); и/или другой элемент (элементы) кодирования, такой как один или больше элементов кодирования, которые отличаются от элемента CU(t) кодирования. Кроме того, что касается второго подэлемента кодирования, второй набор кодированных элементов может содержать: другой подэлемент (элементы) кодирования элемента CU(t) кодирования (то есть, подэлемент (элементы) кодирования элемента CU(t) кодирования за исключением второго подэлемента кодирования); подэлемент (элементы) кодирования по меньшей мере одного другого элемента кодирования (то есть, подэлемент (элементы) кодирования по меньшей мере одного элемента кодирования, который отличается от элемента CU(t)) кодирования; и/или другой элемент (элементы) кодирования, такой как один или больше элементов кодирования, которые отличаются от элемента CU(t) кодирования. Следует отметить, что второй набор кодированных элементов содержит по меньшей мере один кодированный элемент, который не является первым набором кодированных элементов. Представленное выше предназначено только иллюстрации и ни коим образом не для ограничения настоящего изобретения. В соответствии с некоторыми вариациями данного варианта осуществления, второй набор кодированных элементов и первый набор кодированных элементов могут представлять собой один и тот же набор кодированных элементов. Однако в модуле предварительной обработки используют различные линейные комбинации из множества пиксельных значений, полученных из информации о движении того же набора кодированных элементов, что и соответствующие прогнозируемые пиксельного значения первого подэлемента кодирования и второго подэлемента кодирования, соответственно. Например, модуль предварительной обработки использует первую линейную комбинацию, соответствующую первому набору взвешенных параметров для множества пиксельных значений, как прогнозируемое пиксельное значение первого подэлемента кодирования, и использует вторую линейную комбинацию, соответствующую второму набору взвешенных параметров для множества пиксельных значений, как прогнозируемое пиксельное значение второго подэлемента кодирования. В другом примере модуль предварительной обработки использует первое взвешенное суммирование множества пиксельных значений, полученных из информации о движении первого набора кодированных элементов, как прогнозируемое пиксельное значение первого подэлемента кодирования, такого как конкретный подэлемент кодирования, и получает прогнозируемое пиксельное значение второго подэлемента кодирования, используя второе взвешенное суммирование пиксельных значений, полученных из информации о движении того же набора кодированных элементов (то есть, первого набора кодированных элементов), где первое взвешенное суммирование отличается от второго взвешенного суммирования.
0
0
k
В некоторых вариантах осуществления, таких как вариации вариантов осуществления, показанных на фиг. 3, каждый из других кодированных элементов, упомянутых на этапе 912, представляет собой кодированный подэлемент кодирования/элемент кодирования. Например, в части этих вариаций множество других кодированных элементов, упомянутых на этапе 912, содержит по меньшей мере один пространственно кодированный подэлемент кодирования/элемент кодирования (например, один или больше кодированных блоков {CB} в текущем кадре F(t), или один или больше кодированных подблоков внутри обрабатываемого блока или внутри кодированного блока) и/или по меньшей мере один кодированный по времени подэлемент/элемент кодирования (например, один или больше кодированных подблоков/блоков в другом кадре, который отличается от текущего кадра F(t)). В другом примере, в части этих вариаций, каждый по-другому кодированных элементов, упомянутых на этапе 912, представляет собой подэлемент/элемент кодирования с компенсированным движением. В соответствии с некоторыми из этих вариаций, векторы {v} движения могут быть получены из оценки движения.
k
K
k
r
k
р
i
L
UL
U
UR
r
р
L
UL
U
UR
k
L
UL
U
UR
L
UL
U
UR
На фиг. 4 иллюстрируются некоторые детали осуществления, связанные со способом 910, показанным на фиг. 2 в соответствии с одним вариантом осуществления настоящего изобретения. В соответствии с этим вариантом осуществления, модуль предварительной обработки может использовать взвешенное суммирование множества пиксельных значений, упомянутых на этапе 914 (например, Σ(h(i,x)Ψ(x+v)) в данном варианте осуществления), в качестве прогнозируемого пиксельного значения Ψ конкретного подэлемента кодирования, такого как i-ый подблок b, показанный на фиг. 4. Для лучшего понимания кодированные блоки CB, CB, CB и CB могут быть теми же, как показаны на фиг. 3, соответственно. Например, опорные пиксельные значения {Ψ} опорных пикселей для расчета прогнозируемого значения Ψ пикселя могут быть получены из одного или больше кодированных БЛОКОВ CB, CB, CB и CB, и множество векторов {v} движения могут содержать один или больше из соответствующих векторов v, v, v и v движения кодированных БЛОКОВ CB, CB, CB и CB.
i
р
r
Более конкретно, для каждого подблока, такого как i-ый подблок b, показанный на фиг. 4, прогнозируемое пиксельное значение, такое как прогнозируемое пиксельное значение Ψ(i,x), может быть извлечено в результате смешивания/перемешивания опорных пиксельных значений {Ψ} некоторых опорных пикселей в пределах кодированных блоков {CB}, и может все еще быть выражено следующим образом:
р
k
K
k
r
k
Ψ(i,x)=Σ(h(i,x)Ψ(x+v));
k
k
1
m
m
k
k
U
k
u
U
где индекс k может изменяться в пределах установленного K, и обозначения v и h(i,x) можно использовать для представления k-ого опорного вектора движения соответствующего взвешенного параметра, соответственно. Например, bB, и обозначение Bпредставляет набор подблоков для обрабатываемых блоков (помечен как “обрабатываемый блок” на фиг. 4). Как показано на фиг. 4, примерный вектор v движения векторов {v} движения представлен в пределах кодированного блока CB, что означает, что векторы {v} движения содержат вектор v движения кодированного блока CB в этой ситуации.
r
REAL
k
r
k
K
k
r
k
k
В варианте осуществления, таком как вариация варианта осуществления, представленного на фиг. 4, модуль предварительной обработки может выполнять оптимальную фильтрацию Винера для множества пиксельных значений, таких как опорное пиксельное значение {Ψ} в отношении реального пиксельного значения Ψ(i,x) текущего рассматриваемого пикселя для того, чтобы, регулировать соответствующие взвешенные параметры {h(i,x)} для множества пиксельных значений, таких как опорные пиксельные значения {Ψ}, и для генерирования взвешенного суммирования (то есть, Σ(h(i,x)Ψ(x+v)) в данном варианте). Например, взвешенные параметры {h(i,x)} могут быть получены, используя оптимальный фильтр Винера в пределах модуля предварительной обработки следующим образом:
0
K
REAL
k
K
k
r
k
(h∗...,h∗)=arg min|Ψ(i,x)=Σ(h(i,x)Ψ(x+v))|,
k
0
K
REAL
k
K
k
r
k
k
LВ
UL
U
UR
k
K
k
r
k
k
k
K
k
r
k
что означает, что взвешенные параметры {h(i, x)} могут быть получены в результате поиска набора (h∗...,h∗), соответствующего минимальному значению |Ψ(i,x)-Σ(h(i,x) Ψ(x+v))| во время оптимальной фильтрации Винера, выполняемой модулем предварительной обработки. Все это представлено только с целью иллюстрации, и не означает какое-либо ограничение настоящего изобретения. В соответствии с вариацией варианта осуществления, показанного на фиг. 4, модуль предварительной обработки может определять соответствующие взвешенные параметры {h(i,x)} для множества пиксельных значений в соответствии с содержанием по меньшей мере одного соседнего элемента кодирования, таким как содержание одного или больше кодированных блоков CB, CB, CB и CB ДЛЯ генерирования взвешенного суммирования (то есть, Σ(h(i,x)Ψ(x+v)) в данном варианте). В соответствии с другой вариацией варианта осуществления, показанного на фиг. 4, модуль предварительной обработки может определять соответствующие взвешенные параметры {h(i,x)} для множества пиксельных значений, в соответствии с содержанием множества других кодированных элементов, упомянутых на этапе 912 (например, первый набор кодированных элементов), для генерирования взвешенного суммирования (то есть, Σ(h(i,x) Ψ(x+v)) в данной вариации).
k
k
K
k
r
k
k
k
В некоторых других вариантах осуществления, таких как некоторые вариации варианта осуществления, показанного на фиг. 4, модуль предварительной обработки может определять соответствующие взвешенные параметры {h(i,x)} для множества пиксельных значений путем автономного обучения, или используя обучение в режиме онлайн, для генерирования взвешенного суммирования (то есть, Σ(h(i,x)Ψ(x+v)) в данных вариациях). В соответствии с другой вариацией варианта осуществления, показанного на фиг. 4, модуль предварительной обработки может использовать среднее значение множества пиксельных значений, в качестве прогнозируемого пиксельного значения конкретного подэлемента кодирования, что означает любые два из взвешенных параметров {h(i,x)} равны друг другу. Более конкретно, в данной вариации, каждый из взвешенных параметров {h(i,x)} равен l/n(K), где n(K) представляет количество возможных значений k в пределах установленного K.
k
K
k
r
k
L
UL
U
UR
i
0
На фиг. 5A-5D иллюстрируются некоторые детали воплощения многогипотезного прогнозирования, которые связаны со способом 910, показанным на фиг. 2, в соответствии с различными вариантами осуществления настоящего изобретения, где линейную комбинацию, упомянутую на этапе 914, можно рассматривать, как взвешенное суммирование (то есть, Σ(h(i,x)Ψ(x+v)) в этих вариантах осуществления). Для лучшего понимания кодированные блоки CB, CB, CB и CB могут быть теми же, как показаны на фиг. 3, соответственно. Кроме того, i-ый подблок b представлен, как пример конкретного подэлемента SubCU(t) кодирования.
UL
U
UR
L
i
k
A
B
C
D
k
A
B
c
D
k
A
B
c
i
k
A
B
D
i
На фиг. 5A подэлементы A, B, C и D кодирования принадлежат обрабатываемому блоку (помечен как “обрабатываемый блок” на фиг. 5A) или другим кодированным элементам (таким как CB, CB, CB, CB). Более конкретно, что касается i-ого подблока b, показанного на фиг. 5A, подэлемент A кодирования представляет собой левый соседний подэлемент кодирования, подэлемент B кодирования представляет собой верхний соседний подэлемент кодирования, подэлемент C кодирования представляет собой верхний правый соседний подэлемент кодирования, и подэлемент D кодирования представляет собой верхний левый соседний подэлемент кодирования. В этом варианте осуществления векторы {v} движения могут быть получены из подэлементов A, B, C, и/или D кодирования, показанных на фиг. 5A, и, поэтому, могут включать в себя их соответствующие векторы v, v, v и/или v движения. Например, векторы {v} движения могут включать в себя все из векторов v, v, v и v движения подэлементов A, B, C и D кодирования. В другом примере векторы {v} движения могут включать в себя векторы v, v и v движения, если существует подэлемент C кодирования для конкретного подэлемента кодирования, такого как i-ый подблок b. В другом примере векторы {v} движения могут включать в себя векторы V, V и v движения, если подэлемент C кодирования для конкретного подэлемента кодирования, такого как i-ый подблок b, не существует.
k
K
k
r
k
k
A
B
c
D
р
Таким образом, линейная комбинация, упомянутая на этапе 914, может представлять собой описанное выше взвешенное суммирование Σ(h(i,x)Ψ(x+v)) с векторами {v} движения, включающими в себя векторы V, V, v и/или V движения. Для краткости, прогнозируемое значение Ψ пикселя может быть выражено следующим образом:
р
r
A
r
B
r
c
r
D
Ψ=Weighted_Sum(Ψ(v), Ψ(v), Ψ(v), и/или Ψ(v));
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации.
k
р
В соответствии с вариацией варианта осуществления, показанного на фиг. 5A, модуль предварительной обработки использует среднее значение множества пиксельных значений, как прогнозируемое пиксельное значение конкретного подэлемента кодирования, что означает, что линейную комбинацию, упомянутую на этапе 914, можно рассматривать, как среднюю. В этой ситуации, любые два из взвешенных параметров {h(i,x)} равны друг другу. Для краткости прогнозируемое значение Ψ пикселя может быть выражено следующим образом:
р
r
A
r
B
r
c
r
D
Ψ=Average(Ψ(v), Ψ(v), Ψ(v), и/или Ψ(v);
где обозначение Average представляет среднее значение в этой ситуации. Аналогичное описание не повторяется подробно для этого варианта.
1
2
3
4
5
6
7
8
L
1
2
3
4
5
6
7
8
U,
UR
UL
k
L
U
5
6
7
5
На фиг. 5B подэлементы кодирования α, α, α, α, α, α, α и α кодирования принадлежат левому кодированному блоку CB, подэлементы β, β, β, β, β, β, β и β кодирования принадлежат верхнему кодированному блоку CB и подэлементы β9 и δ кодирования принадлежат верхнему правому кодированному блоку CB и верхнему левому кодированному блоку CB, соответственно. Более конкретно, что касается i-ого подблока bi, показанного на фиг. 5B (например, подблок в пределах нижней правой четверти обрабатываемого блока в данном варианте осуществления), векторы {v} движения могут быть получены из подэлементов A, B, C и/или D кодирования в данном варианте осуществления, где подэлемент A кодирования может быть определен, как ближайший подэлемент кодирования в пределах левого кодированного блока CB, подэлемент B кодирования может быть определен, как ближайший подэлемент кодирования в пределах верхнего кодированного блока CB, подэлемент C кодирования может быть определен, как правый ближайший подэлемент кодирования для подэлемента B кодирования, и подэлемент D кодирования может быть определен как левый ближайший подэлемент кодирования для подэлемента B кодирования. В ситуации, показанной на фиг. 5B, подэлементы A, B, C и D кодирования представляют собой подэлементы α, β, β и β кодирования, соответственно.
k
A
B
c
D
k
A
B
c
D
k
A
B
i
k
A
B
D
i
ый
ый
В данном варианте осуществления векторы {v} движения могут быть получены из подэлементов A, B, C и/или D кодирования в данном варианте осуществления, и поэтому могут включать в себя соответствующие их векторы v, V, v и/или v движения. Например, векторы {v} движения могут включать в себя все векторы V, V, V и v движения подэлементов A, B, C и D кодирования. В другом примере векторы {v} движения могут включать в себя векторы V, V и vc движения, если существует подэлемент C кодирования для конкретного подэлемента кодирования, такого как i подблок b. В другом примере векторы {v} движения могут включать в себя векторы V, V и V движения, если подэлемент C кодирования для конкретного подэлемента кодирования, такого как i подблок b, не существует.
k
K
k
r
k
k
A
B
C
D
р
Таким образом, линейная комбинация, упомянутая на этапе 914, может представлять собой раскрытое выше взвешенное суммирование Σ(h(i,x)Ψ(x+v)) с векторами {v} движения, включающими в себя векторы V, V, V и/или V движения. Для краткости прогнозируемое значение для Ψ пикселя может быть выражено следующим образом:
р
r
A
r
B
r
c
r
D
Ψ=Weighted_Sum(Ψ(v), Ψ(v), Ψ(v), и/или Ψ(v));
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации. Например, модуль предварительной обработки может определять размер конкретного подэлемента кодирования, который должен представлять собой размер преобразования в отношении видеокодирования элемента кодирования, и размер подэлементов кодирования, таких как подблоки, показанные на фиг. 5B, мог быть таким же, как размер преобразования (например, 4×4, 8×8, 16×16 и так далее).
k
р
В соответствии с вариацией варианта осуществления, показанного на фиг. 5B, в модуле предварительной обработки используется среднее множество пиксельных значений, в качестве прогнозируемого пиксельного значения конкретного подэлемента кодирования, что означает, что операцию по получению линейной комбинации, упомянутую на этапе 914, можно рассматривать как операцию усреднения. В этой ситуации, любые два из взвешенных параметров {h(i,x)} равны друг другу. Для краткости, прогнозируемое значение Ψ пикселя может быть выражено следующим образом:
р
r
A
r
B
r
c
r
D
Ψ=Average(Ψ(v), Ψ(v), Ψ(v), и/или Ψ(v));
где обозначение Average представляет собой среднее значение в данной ситуации. Аналогичное описание не повторяется подробно для данного варианта.
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
9
i
k
UL
4
6
7
5
3
5
Со ссылкой фиг. 5C, определение подэлементов {α, a, α, α, α, α, α, α, β, β, β, β, β, β, β, β, β, δ} кодирования является тем же, как и в варианте осуществления, показанном на фиг. 5B. Кроме того, что касается i-ого подблока b, показанного на фиг. 5C (например, подблок в пределах верхней правой четверти обрабатываемого блока в данном варианте осуществления), векторы {v} движения могут быть получены из подблоков A, B, C, D, E, F и/или Z кодирования в данном варианте осуществления, где определение подэлементов A, B, C и D кодирования является тем же, как и в варианте осуществления, показанном на фиг. 5B, подэлемент E кодирования может быть определен, как верхний соседний подэлемент кодирования для подэлемента A кодирования, подэлемент F кодирования может быть определен, как нижний соседний подэлемент кодирования для подэлемента A кодирования, и подэлемент Z кодирования может быть определен, как ближайший подэлемент кодирования в пределах верхнего левого кодированного блока CB. В ситуации, показанной на фиг. 5C, подэлементы A, B, C, D, E, F и Z кодирования представляют собой подэлементы кодирования α, β, β, β, α, α, и δ, соответственно.
k
A
B
C
D
E
F
z
k
A
B
C
D
E
F
z
k
A
B
d
E
F
i
k
A
B
C
D
F
z
i
k
A
B
D
F
z
i
В данном варианте осуществления векторы {v} движения могут быть получены из подэлементов A, B, C, D, E, F и/или Z кодирования в соответствии с данным вариантом осуществления, и поэтому могут включать в себя соответствующие их векторы V, V, V, V, V, V и/или v движения. Например, векторы {v} движения могут включать в себя все векторы V, V, V, V, V, V и v движения подэлементов A, B, C, D, E, F и Z кодирования. В другом примере векторы {v} движения могут включать в себя векторы V, V, VC. V, V и V движения, если существует подэлемент E кодирования для конкретного подэлемента кодирования, такого как i-ый подблок b. В другом примере векторы {v} движения могут включать в себя векторы V, V, V, V, V и v движения, если подэлемент E кодирования для конкретного подэлемента кодирования, такого как i-ый подблок b, не существует. В другом примере векторы {v} движения могут включать в себя векторы движения V, V, V, V и v движения, если подэлементы C и E кодирования для конкретного подэлемента кодирования, такого как i-ый подблок b, не существуют.
k
K
k
r
k
k
A
B
c
D
E
F
z
р
Таким образом, линейная комбинация, упомянутая на этапе 914, может представлять собой раскрытое выше взвешенное суммирование Σ(h(i,x)Ψ(x+v)) с векторами {v} движения, включающими в себя векторы v, v, v, V, V, V и/или v движения. Для краткости прогнозируемое значение Ψ пикселя может быть выражено следующим образом:
р
r
A
r
B
r
С
r
D
r
E
r
F
r
Z
Ψ=Weighted_Sum(Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), и/или Ψ(v));
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации. Например, модуль предварительной обработки может определять размер конкретного подэлемента кодирования, как имеющий размер преобразования для видеокодирования блока кодирования, и размер подэлементов кодирования, таких как подблоки, показанные на фиг. 5C, может быть таким же, как и размер преобразования (например, 4×4, 8×8, 16×16 и так далее).
k
р
В соответствии с вариацией варианта осуществления, показанного на фиг. 5C, в модуле предварительной обработки используется среднее значение из множества значений пикселя, в качестве прогнозируемого пиксельного значения конкретного подэлемента кодирования, которое означает, что операцию получения линейной комбинации, упомянутую на этапе 914, можно рассматривать, как операцию усреднения. В этой ситуации, любые два из взвешенных параметров {h(i,x)} равны друг другу. Для краткости, прогнозируемое пиксельное значение Ψ может быть выражено следующим образом:
р
r
A
r
B
r
С
r
D
r
E
r
F
r
Z
Ψ=Average(Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), и/или Ψ(v));
где обозначение Average представляет среднее значение в данной ситуации. Аналогичное описание не повторяется подробно для данного варианта.
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
9
k
5
6
7
5
Как показано на фиг. 5D, определение подэлементов {α, a, α, α, α, α, α, α, β, β, β, β, β, β, β, β, β, δ} кодирования является тем же, как и в варианте осуществления, показанном на фиг. 5B. Кроме того, что касается i-ого подблока bi, показанного на фиг. 5D (например, подблока в пределах нижней правой четверти блока, обрабатываемого в данном варианте осуществления), векторы {v} движения могут быть получены из подэлементов A, B, C и/или D кодирования в данном варианте осуществления, где определение подэлементов A, B, C и D кодирования является тем же, что и в варианте осуществления, показанном на фиг. 5B. В ситуации, показанной на фиг. 5C, подэлементы A, B, C и D кодирования представляют собой подэлементы α, β, β и β кодирования, соответственно.
k
A
B
C
D
k
A
B
C
D
k
A
B
c
i
k
A
B
D
i
В данном варианте осуществления векторы {v} движения могут быть получены из подэлементов A, B, C и/или D кодирования в данном варианте осуществления, и поэтому могут включать в себя их соответствующие векторы V, V, V и/или V движения. Например, векторы {v} движения могут включать в себя все векторы V, V, V и V движения подэлементов A, B, C и D кодирования. В другом примере векторы {v} движения могут включать в себя векторы V, V, и v движения, если существует подэлемент C кодирования для конкретного подэлемента кодирования, такого как i-ый подблок b. В другом примере векторы {v} движения могут включать в себя векторы V, V и V движения, если подэлемент C кодирования для конкретного подэлемента кодирования, такого как i-ый подблок b, не существует.
k
k
k
k
k
k
k
k
i
k
р
m
m
Кроме того, взвешенный параметр h(i,x) в данном варианте осуществления может быть обратно пропорциональным расстоянию между конкретным подэлементом кодирования, и ассоциирован с одним из других кодированных элементов, упомянутых на этапе 912. Например, взвешенный параметр h(i,x) может быть перезаписан, как W(i), независящий от положения x, и взвешенный параметр W(i) обратно пропорционален (d(i))(то есть W(i)1/d(i))), где обозначение d(i) представляет расстояние между конкретным подэлементом кодирования (например, i-ый подблок b) и ассоциированным другим подэлементом/элементом кодирования, имеющим k-ыйопорныйвекторv движения(например, k-ыйподэлемент кодирования в пределах подэлементов A, B, C и D кодирования), и обозначение m представляет положительную константу. Таким образом, прогнозируемое пиксельное значение Ψ может быть выражено следующим образом:
р
k
K
k
r
k
Ψ(i,x)=Σ(w(i,x)Ψ(x+v)); или
р
k
K
k
r
k
Ψ=Σ(wΨ(v));
k
A
B
c
D
k
A
B
c
A
B
C
р
где векторы {v} движения могут включать в себя векторы v, v, v и/или v движения. В ситуации, показанной на фиг. 5D, векторы {v} движения включают в себя векторы V, V и v движения, и обозначения dist_w, dist_h, и dist_h' представляют расстояния d(i), d(i) и d(i), соответственно. В результате, прогнозируемое пиксельное значение Ψ может быть выражено следующим образом:
р
A
r
A
B
r
B
C
r
С
Ψ=wΨ(v)+wΨ(v)+wΨ(v);
A
B
C
m
m
m
где w1/(dist_w), w1/(dist_h), и w1/(dist_h').
В некоторых вариациях вариантов осуществления, показанных на 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, и поэтому, могут называться упрощенными режимами.
L
U
UR
UL
L
U
UR
UL
В соответствии с вариацией любого из вариантов осуществления, показанных на фиг. 5A-5D, на этапе 912, модуль предварительной обработки может разделять элемент кодирования на множество подэлементов кодирования, на основе по меньшей мере одного режима по меньшей мере одного соседнего элемента кодирования, такого как режимы 1, 2, 3 и/или 4 одного или больше кодированных блоков CB, CB, CB и CB. В соответствии с другой вариацией любого из вариантов осуществления, показанных на фиг. 5A-5D, на этапе 912, модуль предварительной обработки может разделять элемент кодирования на множество подэлементов кодирования на основе содержания по меньшей мере одного соседнего элемента кодирования, такого как один или больше их кодированных блоков CB, CB, CB и CB.
L
UL
U
UR
На фиг. 6A-6B иллюстрируются примерные источники получения информации о движении, которые связаны со способом 910, показанным на фиг. 2, в соответствии с разными вариантами осуществления настоящего изобретения. Для лучшего понимания кодированные блоки CB, CB, CB и CB могут быть теми же, что и показанные на фиг. 3, соответственно.
0
0
0
0
k
0
L
UL
U
UR
0
k
р
р
В данном варианте осуществления, в ситуации, когда размер конкретного подэлемента SubCU(t) кодирования расширяют до размера элемента CU(t) кодирования, разделение/разбиение элемента CU(t) кодирования не требуется на этапе 912. Таким образом, на этапе 912, модуль предварительной обработки, упомянутый выше, может выполнять прогнозирование вектора движения элемента CU(t) кодирования и, более конкретно, получать множество векторов движения, таких как векторы {v} движения, раскрытые выше, для многогипотезной компенсации движения элемента CU(t) кодирования из множества других кодированных элементов, таких как по меньшей мере часть кодированных блоков {CB} (например, один или больше из кодированных блоков CB, CB, CB и CB). Кроме того, на этапе 914, модуль предварительной обработки может выполнять многогипотезную компенсацию движения элемента CU(t) кодирования в соответствии с информацией о движении, таких, как множество векторов {v} движения и, более конкретно, используя линейную комбинацию множества значений пикселя множества других элементов кодирования, в качестве прогнозированного пиксельного значения элемента кодирования, таких, как прогнозированное пиксельное значение Ψ(x), для которых не требуется использовать индекс i. Аналогично, прогнозированное пиксельное значение Ψ(x) может быть выражено следующим образом:
р
k
K
k
r
k
Ψ(x)=Σ(h(x)Ψ(x+v));
L
UL
U
SIZE
16
32
UR
SIZE
0
SIZE
32
SIZE
16
SIZE
На практике, множество режимов может дополнительно содержать некоторые режимы пропуска, соответственно, соответствующие различным размерам блока движения (например, 16×16, 32×32 и т.д.). В соответствии с этим вариантом осуществления, обозначение A можно использовать для представления подэлемента/элемента кодирования, содержащего по меньшей мере часть (например, часть или весь) кодированного БЛОКА CB, обозначение D можно использовать для представления подэлемента/элемента кодирования, содержащего по меньшей мере часть (например, часть или весь) кодированного блока CB, обозначение B можно использовать для представления подэлемента/элемента кодирования, содержащего по меньшей мере часть (например, часть или весь) кодированного блока CB, и обозначение C, такое как C, C и т.д., можно использовать для представления подэлемента/элемента кодирования, содержащего по меньшей мере часть (например, часть или весь) кодированного блока CB, где приставка SIZE в обозначении C представляет размер элемента CU(t) кодирования, такого как обрабатываемый блок (помеченный как “обрабатываемый блок” на фиг. 6A-6B). Например, в ситуации, где блок, который обрабатывается, включает в себя (32 ∗ 32) пикселя, подэлемент/элемент кодирования C может представлять собой подэлемент/элемент кодирования C, показанный на фиг. 6A. В другом примере, в ситуации, где обрабатываемый блок включает в себя (16 ∗ 16) пикселей, подэлемент/элемент C кодирования может представлять собой подэлемент/элемент кодирования C, показанный на фиг. 6B. Таким образом, местоположение подэлемента/элемента кодирования C зависит от размера блока движения.
k
A
B
c
D
SIZE
k
K
k
r
k
k
A
B
C
D
р
В соответствии с данным вариантом осуществления, векторы {v} движения могут включать в себя все из векторов v, v, v и v движения подэлемента/элемента кодирования A, B, C и D. Таким образом, линейная комбинация данного варианта осуществления может представлять собой взвешенное суммирование Σ(h(x)Ψ(x+v)) с векторами {v} движения, включающими в себя векторы v, V, V и V движения. Для краткости, прогнозированное пиксельное значение Ψ может быть выражено следующим образом:
р
r
A
r
B
r
С
r
D
Ψ=Weighted_Sum(Ψ(v), Ψ(v), Ψ(v), Ψ(v));
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации.
k
р
В соответствии с вариацией варианта осуществления, показанного на фиг. 6A-6B, модуль предварительной обработки использует среднее множество пиксельных значений множества других элементов кодирования, как прогнозированное пиксельное значение этого элемента кодирования, что означает, что упомянутую выше линейную комбинацию можно рассматривать, как среднее. В этой ситуации любые два из взвешенных параметров {h(x)} равны друг другу. Для краткости прогнозируемое значение Ψ пикселя может быть выражено следующим образом:
р
r
A
r
B
r
С
r
D
Ψ=Average(Ψ(v), Ψ(v), Ψ(v), Ψ(v));
где обозначение Average представляет среднее значение в этой ситуации. Аналогичное описание не повторяется подробно для данного варианта.
L
UL
U
UR
i
0
На фиг. 7A-7B, соответственно, иллюстрируются временные и пространственные векторы (МVs) движения, связанные со способом 910, показанным на фиг. 2, в соответствии с разными вариантами осуществления настоящего изобретения. Для лучшего понимания кодированные блоки CB, CB, CB и CB могут быть теми же, как и показанные на фиг. 3, соответственно. Кроме того, i-ый подблок b показан, как пример конкретного подэлемента SubCU(t) кодирования.
k
T
k
0
i
k
s,k
U
k
T
k
s,k
В варианте осуществления, показанном на фиг. 7A, векторы {v} движения, упомянутые на этапе 912, могут содержать один или больше временных векторов {v,} движения относительно окна, охватывающего конкретный подэлемент SubCU(t) кодирования, такой как i-ый подблок b, показанный на фиг. 7A, где окно может иметь заданный размер. В варианте осуществления, показанном на фиг. 7B, векторы {v} движения, упомянутые на этапе 912, могут содержать один или больше пространственных векторов {v} движения, такие как вектор движения кодированного блока CB, показанный на фиг. 7B. В соответствии с некоторыми вариациями вариантов осуществления, показанных на фиг. 7A-7B, векторы {v} движения, упомянутые на этапе 912, могут содержать временные векторы {v,} движения и пространственные векторы {v} движения. Аналогичное описание не повторяется подробно для этих вариантов осуществления.
LВ
UL
U
UR
i
0
На фиг. 8A-8C показаны примерные источники для получения векторов движения, используемых в способе 910, показанном на фиг. 2, в соответствии с некоторыми вариантами осуществления настоящего изобретения. Для лучшего понимания кодированные блоки CB, CB, CB и CB могут быть теми же, как и блоки, показанные на фиг. 3, соответственно. Кроме того, i-ый подблок b представлен как пример конкретного подэлемента SubCU(t) кодирования.
T
k
T0
i
T0
s,k
A
B
C
D
E
F
z
Рассматривая фиг. 8A, можно видеть, что временные векторы {v,} движения, раскрытые выше, могут содержать временной вектор V движения, который обычно получают в результате размещенного в одном месте подэлемента кодирования другого кадра, такого как размещенный в одном месте подблок T, относительно i-ого подблока b, показанного на фиг. 8A. Таким образом, временной вектор v движения может рассматриваться, как совместно размещенный вектор движения. На фиг. 8B пространственные векторы {v} движения, раскрытые выше, могут содержать по меньшей мере часть (например, часть или все) векторов движения V, V, V, V, V, V и v подэлементов A, B, C, D, E, F и Z кодирования.
k
K
k
r
k
k
A
B
c
d
E
F
z
k
A
B
c
d
e
F
z
р
Таким образом, линейная комбинация, упомянутая на этапе 914, может представлять собой раскрытое выше взвешенное суммирование Σ(h(i,x)Ψ(x+v)) с векторами {v} движения, содержащими, как временной вектор движения, так и векторы v, v, v, v, v, v и v движения. Например, в ситуации, когда векторы {v} движения содержат временной вектор движения и векторы v, v, v, v, v, v и v движения, прогнозируемое пиксельное значение Ψ может быть выражено следующим образом:
р
r
A
r
B
r
С
r
D
r
E
r
F
r
Z
r
Ψ=Weighted_Sum(Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ());
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации. Аналогичное описание не повторяется подробно для этого варианта осуществления.
k
р
В соответствии с вариацией варианта осуществления, показанного на фиг. 8A-8B, модуль предварительной обработки использует среднее из множества пиксельных значений, как прогнозируемое пиксельное значение конкретного подэлемента кодирования, которое означает, что линейную комбинацию, упомянутую на этапе 914, можно рассматривать как среднее. В этой ситуации, любые два из взвешенных параметров {h(i,x)} равны друг другу. Для краткости прогнозируемое пиксельное значение Ψ может быть выражено следующим образом:
р
r
A
r
B
r
С
r
D
r
E
r
F
r
Z
r
Ψ=Average(Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ());
где обозначение Average представляет среднее значение в данной ситуации. Аналогичное описание не повторяется подробно для этого варианта.
x,k
,
UL
U
UR
L
R
DL
D
DR
A
B
c
D
E
F
z
На фиг. 8C временные векторы {v} движения, раскрытые выше, могут содержать временной вектор  движения раскрытый выше, и некоторые другие временные векторы , , , , , ,  и  движения, которые получают из приблизительно совместно размещенных подэлементов кодирования другого кадра, такого, как расположеный рядом с подблоком T, имеющим временной вектор  движения, то есть, с подблоками T, T, T, T, T, T, T и T, показанными на фиг. 8C, соответственно. Кроме того, векторы {по сравнению с, k}, пространственного движения, раскрытые выше, могут содержать по меньшей мере часть (например, часть или все) векторов v, v, v, v, v, v и v движения подэлементов A, B, C, D, E, F и Z кодирования, показанных на фиг. 8B.
k
K
k
r
k
k
A
B
C
D
E
F
z
k
A
B
c
D>
E
F
z
р
Таким образом, линейная комбинация, упомянутая на этапе 914, может представлять собой раскрытое выше взвешенное суммирование Σ(h(i,x)Ψ(x+v)) с векторами {v} движения, содержащими, как временные векторы , , , , , , ,  и  движения, так и векторы V, V, V, V, V, V и/или v движения. Например, в ситуации, когда векторы {v} движения содержат временные векторы , , , , , , ,  и движения и векторы v, v, v, v v, V и v движения, прогнозируемое пиксельное значение Ψ можно выразить следующим образом:
р
r
A
r
B
r
С
r
D
r
E
r
F
r
Z
r
r
r
r
r
r
r
r
r
Ψ=Weighted_Sum(Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(), Ψ(), Ψ(), Ψ(), Ψ(), Ψ(), Ψ(), Ψ() и Ψ());
где обозначение Weighted_Sum представляет взвешенное суммирование в раскрытой выше ситуации. Аналогичное описание не повторяется подробно для данного варианта осуществления.
k
р
В соответствии с вариацией варианта осуществления, показанного на фиг. 8C, в модуле предварительной обработки используется среднее из множества пиксельных значений, как прогнозируемое пиксельное значение конкретного подэлемента кодирования, что означает, что линейную комбинацию, упомянутую на этапе 914, можно рассматривать, как среднее значение. В этой ситуации, любые два из взвешенных параметров {h(i,x)} равны друг другу. Для краткости прогнозируемое пиксельное значение Ψ может быть выражено следующим образом:
р
r
A
r
B
r
С
r
D
r
E
r
F
r
Z
r
r
r
r
r
r
r
r
r
Ψ=Average (Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(v), Ψ(),Ψ(), Ψ(), Ψ(), Ψ(), Ψ(), Ψ(), Ψ() и Ψ());
где обозначение Average представляет среднее значение в этой ситуации. Аналогичное описание не повторяется подробно для этой вариации.
k
T
В соответствии с вариантом осуществления, таким как вариация любого из вариантов/вариаций осуществления, раскрытым выше, модуль предварительной обработки может динамически выбирать набор векторов движения из множества наборов векторов движения (которые можно рассматривать, как векторы движения-кандидаты), и использовать выбранный набор векторов движения, как множество векторов {v} движения. Более конкретно, модуль предварительной обработки динамически выбирает упомянутый выше набор векторов движения из множества наборов векторов движения и использует выбранный набор векторов движения как информацию о движении множества других кодированных элементов, упомянутых на этапе 912 (например, первый набор кодированных элементов) на основе явного флага, и использует выбранный набор векторов движения для получения прогнозированного пиксельного значения конкретного подэлемента кодирования. Например, множество наборов векторов движения может содержать первый набор векторов движения, такой как временные векторы {V, k} движения, раскрытые выше, и дополнительно содержит второй набор векторов движения, таких как пространственные векторы {по сравнению с, k} движения, раскрытые выше. На практике, модуль предварительной обработки может выполнять многогипотезное прогнозирование на основе флага (например, явного флага), динамически обозначающего выбираемый набор. Аналогичное описание не повторяется подробно для данного варианта осуществления.
0
k
0
r
k
р
0
р
0
р
р
р
В соответствии с другим вариантом осуществления таким, как вариация любого из вариантов осуществления/вариаций, раскрытых выше, модуль предварительной обработки может получать по меньшей мере один вектор движения элемента CU(t) кодирования, выполняя оценку движения для использования при выполнении оптимизации искажения-скорость, для получения прогнозированного пиксельного значения конкретного подэлемента кодирования. Например, на этапе 912, модуль предварительной обработки получает по меньшей мере одну часть множества векторов {v} движения для многогипотезной компенсации движения конкретного подэлемента SubCU(t) кодирования, выполняя оценку движения. Кроме того, на этапе 914, модуль предварительной обработки может дополнительно использовать линейную комбинацию множества пиксельных значений {Ψ} подэлементов/элементов кодирования, ассоциированных для множества векторов {v} движения, как прогнозируемое пиксельное значение Ψ конкретного подэлемента SubCU(t) кодирования. Например, в ситуации, когда конкретный прогнозируемый пиксель, имеющий прогнозируемое пиксельное значение Ψ, расположен в положении x (например, вектор, обозначающий положение, такой как двумерный вектор в плоскости изображения текущего кадра F(t)), прогнозируемое пиксельное значение Ψ может быть перезаписано как Ψ(x), и прогнозируемое пиксельное значение Ψ(x) может быть выражено следующим образом:
р
k
K
k
r
k
0
r
0
Ψ(x)=Σ(h(x)Ψ(x+v)+h(x)Ψ(x+v));
k
0
0
0
где индекс k может изменяться в пределах установленного K, с обозначением h(x), представляющим взвешенный параметр, ассоциированный с индексом k, и предполагаемый вектор v движения представляет собой вектор движения, оценка которого должна быть получена во время оценки движения, с обозначением h(x), представляющим взвешенный параметр, ассоциированный с суффиксом 0 оценки вектора v движения.
DIST
0
0
0
DIST
Во время упомянутой выше оптимизации искажения-скорости модуль предварительной обработки может рассчитывать индикатор I искажений, где индикатор искажений обычно представляет разность между исходным частичным изображением конкретного подэлемента SubCU(t) кодирования и реконструированным частичным изображением конкретного элемента SubCU(t) кодирования после многогипотезного прогнозирования в отношении возможного статуса (например, длины и угла) оценки вектора v движения. Например, индикатор I ИСКАЖЕНИЯ и ассоциированная разность MVD вектора движения могут быть выражены следующим образом:
DIST
REAL
k
K
k
r
k
0
r
0
I=|Ψ(i,x)-Σ(h(x)Ψ(x+v))-h(x)Ψ(x+v))|; и
0
MVD=v-MVP;
REAL
DIST
где обозначение Ψ (x) представляет реальное пиксельное значение для текущего рассматриваемого пикселя, и обозначение MVP обозначает предиктор вектОра движения. Более конкретно, в представленных выше уравнениях, верхний один из индикатора Iискажений может быть перекомпонован следующим образом:
DIST
REAL
K
K
k
R
K
0
r
0
I=|Ψ(X)-Σ(h(X)Ψ(X+V))-h(X)Ψ(X+V))|
REAL
K
K
K
R
K
0
r
0
=|(Ψ(X)-Σ(h(X)Ψ(X+V))-h(X)Ψ(X+V))|
0
REAL
K
K
K
R
K
0
r
0
=h(X)|(Ψ(X)-Σ(h(X)Ψ(X+V)))/h(X)-Ψ(X+V)|
0
REAL
r
0
=h(X)|Г(X)-Ψ(X+V)|;
REAL
REAL
K
K
K
R
K
0
REAL
REAL
k
K
k
r
k
0
REAL
REAL
k
K
k
r
k
где Г(х)=(Ψ(X)-Σ(h(X)Ψ(X+V)))/h(X). В представленном выше уравнении член Г(x) и член (Ψ(x)-Σ(h(x)Ψ(x+v)))независимы от оценки вектора v движения, и, поэтому по меньшей мере один из этих членов, такой, как член Г(x) и/или член (Ψ(x)-Σ(h(x)Ψ(x+v))), могут быть рассчитаны заранее и временно сохранены для доступа, для увеличения скорости обработки устройства 100 в соответствии с данным вариантом осуществления.
0
Dist
0
k
K
k
r
k
0
r
0
0
k
K
k
r
k
0
r
0
р
0
В соответствии с данным вариантом осуществления, модуль предварительной обработки в данном варианте осуществления может оптимизировать оценку вектора v движения, выполняя поиск наилучшего статуса, соответствующего минимуму функции Лагранжа индикатора I искажений, и битов, используемых для кодирования разности MVD векторов движения, среди других возможных статусов оценки вектора v движения. Таким образом, линейная комбинация этого варианта осуществления может представлять собой взвешенное суммирование Σ(h(i,x)Ψ(x+v))+h(x)Ψ(x+v) с полученной оценкой вектора v движения, и модуль предварительной обработки может использовать взвешенное суммирование Σ(h(i,x)Ψ(x+v))+h(x)Ψ(x+v), как прогнозируемое пиксельное значение Ψ конкретного подэлемента SubCU(t) кодирования. Аналогичное описание не повторяется подробно для данного варианта осуществления.
0
L
UL
U
UR
На фиг. 9 иллюстрируются некоторые детали воплощения, связанные со способом 910, показанным на фиг. 2, в соответствии с вариантом осуществления настоящего изобретения, где модуль предварительной обработки может выполнять многогипотезное прогнозирование с переменным разделением, и более конкретно, может адаптивно определять разделение элемента CU(t) кодирования в ответ на разделение по меньшей мере одного соседнего элемента кодирования. Для лучшего понимания кодированные блоки CB, CB, CB и CB могут быть такими же, как показаны на фиг. 3, соответственно.
0
0
L
UL
U
UR
0
11
12
13
21
22
23
31
32
33
41
42
43
L
U
В соответствии с данным вариантом осуществления, на этапе 912, модуль предварительной обработки может разделять элемент CU(t) кодирования, такой как обрабатываемый блок (помечен как “обрабатываемый блок” на фиг. 9) на множество подэлементов {SubCU(t)} кодирования на основе разделения по меньшей мере одного соседнего элемента кодирования (например, одного или больше из кодированных блоков CB, CB, CB и CB). Например, множество подэлементов {SubCU(t)} кодирования может содержать подблоки, b, b, b, b, b, b, b, b, b, b, b и b, размеры которых соответствуют разделению соседних кодированных блоков, таких как кодированные блоки CB и CB, и более конкретно с ассоциированным размером некоторых подблоков этих соседних кодированных блоков. В ситуации, показанной на фиг. 9, подблоки этих соседних кодированных блоков представляют собой те, которые расположены рядом с обрабатываемым блоком, где подблоки показаны затененными и иллюстрируются разными структурами, соответственно. Аналогичные описания подробно не повторяются для этого варианта осуществления.
k
L
UL
U
UR
0
На фиг. 10 показаны некоторые детали воплощения, связанные со способом 910, представленным на фиг. 2, в соответствии с другим вариантом осуществления настоящего изобретения, где модуль предварительной обработки может адаптивно определять веса смешивания (например, взвешенные параметры {h(i,x)}, раскрытые выше), в соответствии с содержанием по меньшей мере одного соседнего элемента кодирования. Для лучшего понимания кодированные блоки CB, CB, CB и CB могут быть такими же, как те, которые показаны на фиг. 3, соответственно. Кроме того, подблок SB показан, как пример конкретного подэлемента SubCU(t) кодирования.
k
A
B
L
U
k
K
k
r
k
r
A
r
B
r
С
B
c
B
c
А
A
Например, векторы {v} движения могут содержать векторы V, V, и vc движения подэлементов A, B и C кодирования, где подэлемент A кодирования принадлежит левому кодированному блоку CB, и подэлементы B и C кодирования принадлежат верхнему кодированному блоку CB. Во время обработки, состоящей в генерировании взвешенного суммирования Σ(h(i,x)Ψ(x+v)) (например, взвешенного суммирования Weighted_Sum(Ψ(v), Ψ(v), Ψ(v)) в ситуации, показанной на фиг. 10), когда подэлементы B и C кодирования представляют собой подэлементы кодирования текстуры (например, подблоки текстуры) и подэлемент A кодирования не является подэлементом кодирования текстуры (например, является нетекстурным подблоком), модуль предварительной обработки может адаптивно определять взвешенные параметры h(i,x), и h(i,x), ассоциированные с векторами v и v движения подэлементов B и C кодирования, так, чтобы они были больше, чем взвешенный параметр h(i,x), ассоциированный с вектором v движения подэлемента A кодирования, соответственно. Аналогичное описание не повторяется подробно для данного варианта осуществления.
0
0
0
k
0
ADJ
0
0
0
ADJ
0
ADJ
0
0
На фиг. 11 иллюстрируются некоторые детали воплощения, связанные со способом 910, представленным на фиг. 2, в соответствии с вариантом осуществления настоящего изобретения. В соответствии с этим вариантом осуществления, модуль предварительной обработки все еще разделяет элемент CU(t) кодирования (например, рассматриваемый элемент кодирования) на множество подэлементов кодирования, таких как подэлементы {SubCU(t)} кодирования, и выполняет прогнозирование для каждого из подэлементов {SubCU(t)} кодирования на этапе 912. Однако, перед получение информации о движении, такой как раскрытый выше вектор {v} движения, модуль предварительной обработки может обозначать вектор движения (например, опорный вектор движения) для каждого подэлемента кодирования, таким образом, что к нему позже может обращаться другой подэлемент (подэлементы)/элемент (элементы) кодирования. Правило для обозначения вектора движения может быть произвольным, поскольку требуется только, чтобы оно было согласовано и соответствовало, как кодерам, так и декодерам. Некоторое определенное правило для обозначения вектора движения включает в себя предиктор вектора движения, определенный в H.264, прогнозирование вектора движения, определенное в H.264, но без масштабирования вектора движения, заполнения от левого блока, заполнения от верхнего блока и заполнения от левого или верхнего блока. В соответствии с вариантом осуществления, в котором используется заполнение от левого или от верхнего блока, модуль предварительной обработки обозначает вектор движения, используя вектор движения подэлемента кодирования другого элемента кодирования (за исключением рассматриваемого элемента CU(t) кодирования), такого, как кодированный подэлемент кодирования соседнего элемента CU(t) кодирования, который является соседним для элемента CU(t) кодирования. Более конкретно, что касается конкретного подэлемента SubCU(t) кодирования, подэлемент кодирования другого элемента кодирования (например, элемент CU(t) кодирования), является ближайшим подэлементом кодирования в пределах другого элемента кодирования, и модуль предварительной обработки может использовать вектор движения ближайшего подэлемента кодирования, находящегося на другом элементе кодирования (например, на элементе CU(t)) кодирования, как вектор движения, обозначенный для конкретного подэлемента SubCU(t) кодирования. Вектор движения, обозначенный для элемента кодирования или подэлемента кодирования, в основном, используется, как опорный вектор движения для других элементов кодирования или подэлементов кодирования, когда нет необходимости его использовать для прогнозирования движения.
0
ADJ
0
L
U
UR
UL
L
U
UR
UL
1
2
3
5
6
7
8
L
1
2
3
5
6
7
8
U
UL
9
UR
Как показано на фиг. 11, что касается элемента CU(t) кодирования, такого как обрабатываемый блок (помеченный как “Обрабатываемый блок” на фиг. 11), соседние элементы {CU(t)} кодирования, которые используются в данном варианте осуществления, могут содержать по меньшей мере часть левого кодированного БЛОКА CB, верхнего кодированного блока CB, верхнего правого кодированного блока CB и верхнего левого кодированного блока CB, где подэлементы кодирования в этих кодированных блоках CB, CB, CB и CB могут рассматриваться, как подблоки. Для лучшего понимания векторы y, y, y, y, y, yи y движения самого правого столбца подэлементов кодирования в левом кодированном блоке CB помечены на самом правом столбце подэлементов кодирования, соответственно. Аналогично, векторы x, x, x, x, x, xи xдвижения самого нижнего ряда подэлементов кодирования в верхнем кодированном блоке CB помечены в самом нижнем ряду подэлементов кодирования, соответственно. Кроме того, вектор d движения нижнего правого подэлемента кодирования в верхнем левом кодированном блоке CB и вектор X движения нижнего левого подэлемента кодирования в верхнем правом кодированном блоке CB помечены на нем, соответственно.
0
0
0
0
0
0
0
В соответствии с данным вариантом осуществления, модуль предварительной обработки принимает элемент CU(t) кодирования, содержащий множество подэлементов {SubCU(t)} кодирования и анализирует данные элемента CU(t) кодирования и обозначает опорный вектор движения конкретного подэлемента SubCU(t) кодирования среди подэлементов {SubCU(t)} кодирования в соответствии с заданным правилом, где опорный вектор движения используется для ссылки посредством по меньшей мере одного другого подэлемента кодирования, и не используется для прогнозирования вектора движения конкретного подэлемента SubCU(t). При использовании опорных векторов движения для ссылки модуль предварительной обработки может работать быстро, без необходимости ожидать завершения каких-либо сложных расчетов в отношении конкретного вектора движения конкретного подэлемента SubCU(t). На практике модуль предварительной обработки может обозначать этот вектор движения (то есть, опорный вектор движения, упомянутый выше) как вектор движения по меньшей мере одной части соседнего элемента кодирования. Более конкретно по меньшей мере одна часть соседнего элемента кодирования может представлять собой часть, которая ближе всего расположена к конкретному подэлементу кодирования в пределах соседнего элемента кодирования.
0
j
U
0
Например, предположим, что конкретный подэлемент SubCU(t) кодирования представляет j-ый подблок определенного ряда подблоков в обрабатываемом блоке (например, обрабатываемом блоке, показанном на фиг. 11), где j может изменяться от 1 до 8. В первом правиле обозначения, таком как “вертикальное обозначение", модуль предварительной обработки может использовать вектор x движения ближайшего подэлемента кодирования в пределах верхнего кодированного блока CB, как опорный вектор движения конкретного подэлемента SubCU(t) кодирования.
0
j
L
0
В другом примере, предположим, что конкретный подэлемент, SubCU(t) кодирования представляет j-ый подблок определенного столбца подблоков в обрабатываемом блоке (например, обрабатываемом блоке, показанном на фиг. 11), где j может изменяться от 1 до 8. Во втором правиле обозначения, таком как “горизонтальное обозначение”, модуль предварительной обработки использует вектор y движения ближайшего подэлемента кодирования в пределах левого кодированного блока CB, в качестве опорного вектора движения конкретного подэлемента SubCU(t) кодирования.
0
j
U
0
0
L
0
0
В другом примере третье правило обозначения, такое как “гибридное обозначение”, может быть выбрано для определения опорного вектора движения. Предположим, что этот конкретный подэлемент SubCU(t) кодирования представляет j-ый подблок четвертого/восьмого ряда подблоков в обрабатываемом блоке (помечен, как “обрабатываемый блок” на фиг. 11), где j может изменяться от 1 до 8. Рассмотрим фиг. 11, на которой представлена стрелка, указывающая на j-ый подблок четвертого/восьмого ряда подблоков, модуль предварительной обработки использует вектор x движения ближайшего подэлемента кодирования в верхнем кодированном блоке CB, как опорный вектор движения конкретного подэлемента SubCU(t) кодирования. Кроме того, предположим, что конкретный подэлемент SubCU(t) кодирования представляет j-ый подблок четвертого/восьмого столбца подблоков в обрабатываемом блоке (помечен, как “обрабатываемый блок” на фиг. 11), где j может изменяться от 1 до 7, за исключением 4. На фиг. 11, представлено стрелкой, указывающей на j-ый подблок четвертого/восьмого столбца подблоков, модуль предварительной обработки использует вектор yj движения ближайшего подэлемента кодирования в левом кодированном блоке CB, как опорный вектор движения конкретного подэлемента SubCU(t) кодирования. В этом варианте осуществления опорные векторы движения оставшихся подэлементов кодирования в элементе CU(t) кодирования могут быть получены путем использования того же или аналогичного способа в любом из вариантов осуществления/вариаций, раскрытых выше. Аналогичное описание не повторяется подробно для этого варианта осуществления.
Следует отметить, что в некоторых вариантах осуществления, таких как некоторые вариации представленного выше варианта осуществления, модуль предварительной обработки может управлять операциями, раскрытыми выше, используя флаг, и более конкретно, передавая флаг в явном виде. Например, кодер, воплощенный в соответствии с одним из этих вариантов осуществления, может передавать флаг, обозначающий, является ли правило обозначения, предназначенное для применения, одним из “вертикального обозначения” и “горизонтального обозначения” (и даже “гибридного обозначения”), таким образом, что при приеме потока битов, переносящего этот флаг, ассоциированный декодер может получить уведомление о правиле обозначения, которое требуется применять.
U
U
Кроме того, в некоторых вариантах осуществления, различные способы обозначения вектора движения, раскрытые выше (например, “вертикальное обозначение” и “горизонтальное обозначение”, и даже “гибридное обозначение”) можно использовать для выполнения получения вектора локального движения. Например, в ситуации, когда применяется “вертикальное обозначение”, векторы движения в каждом ряду подэлементов кодирования получают из соответствующих мест положения в пределах верхнего кодированного блока CB (например, ближайшего подэлемента кодирования в пределах верхнего кодированного блока CB), соответственно.
Преимущество настоящего изобретения состоит в том, что способы и устройства настоящего изобретения позволяют правильно выполнять локализованное многогипотезное прогнозирование, и в частности, позволяют легко правильно выполнять многогипотезную компенсацию движения для подэлементов кодирования рассматриваемого элемента кодирования. В результате использования способа и устройства настоящего изобретения, как операции прогнозирования вектора движения, так и операции многогипотезной компенсации движения могут быть выполнены, без привнесения каких-либо проблем предшествующего уровня техники, таких как низкая эффективность кодирования.
Для специалиста в данной области техники будет понятно, что многочисленные модификации и изменения устройства и способа могут быть выполнены при сохранении идей изобретения. В соответствии с этим, представленное выше раскрытие следует рассматривать, как ограниченное только границами и пределами приложенной формулы изобретения.