УСТРОЙСТВО И СПОСОБ ДЛЯ КОМПЕНСАЦИИ ДВИЖЕНИЯ ВИДЕО С ВЫБИРАЕМЫМ ИНТЕРПОЛЯЦИОННЫМ ФИЛЬТРОМ
VIDEO MOTION COMPENSATION DEVICE AND METHOD WITH SELECTABLE INTERPOLATION FILTER

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение, в общем, относится к области обработки видео и устройству для компенсации движения видео и, более конкретно, относится к видеокодеру и видеодекодеру для поддержки компенсации движения для предсказания кадров в видео. Настоящее изобретение относится также к способу для кодирования и к способу для декодирования потока видео с использованием компенсации движения. Наконец, настоящее изобретение относится к компьютерной программе, имеющей программный код для выполнения такого способа.
ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
В области обработки видео и, в частности, в области гибридного кодирования и сжатия видео известно использование интер- и интра-предсказания, а также кодирования преобразования. Такие технологии гибридного кодирования видео используются в известных стандартах сжатия видео, таких как H.261, H.263, MPEG-1, 2, 4, H.264/AVC или H.265/HEVC.
На фиг. 1 показан видеокодер согласно уровню техники. Видеокодер 100 содержит вход для приема входных блоков кадров или картинок (изображений) потока видео и выход для генерации закодированного битового потока видео. Видеокодер 100 приспособлен применять к потоку видео предсказание, преобразование, квантование и энтропийное кодирование. Преобразование, квантование и энтропийное кодирование выполняются, соответственно, модулем 101 преобразования, модулем 102 квантования и модулем 103 энтропийного кодирования, чтобы генерировать закодированный битовый поток видео в качестве выхода.
Поток видео соответствует множеству кадров, причем каждый кадр разделен на блоки определенного размера, которые могут быть интра- или интер-кодированными посредством модуля 108 предсказания. Блоки, например, первого кадра потока видео являются интра-кодированными посредством модуля 108 предсказания. Интра-кадр кодируется с использованием только информации внутри того же самого кадра, так что он может независимо декодироваться и может обеспечивать точку входа в битовом потоке для произвольного доступа. Блоки других кадров потока видео являются интер-кодированными посредством модуля 108 предсказания: информация из кодированных кадров, которые называются восстановленными опорными кадрами, используется для уменьшения временной избыточности, так что интер-кодированный блок предсказывается из блока того же размера в восстановленном опорном кадре. Модуль 108 предсказания адаптирован, чтобы выбирать, должен ли блок кадра быть интра- или интер-кодированным.
Для выполнения интер-предсказания, кодированные опорные кадры обрабатываются модулем 104 обратного квантования, модулем 105 обратного преобразования, затем добавляются в блок предсказания и обрабатываются модулем 106 контурной фильтрации, чтобы получить восстановленные опорные кадры, которые затем сохраняются в буфере 107 кадров для использования для временного межкадрового предсказания.
Модуль 108 предсказания содержит в качестве входа текущий кадр или картинку (изображение), подлежащие интер- или интра-кодированию, и один или несколько опорных кадров или картинок из буфера 107 кадров. Оценка движения и компенсация движения применяются модулем 108 предсказания. Оценка движения используется, чтобы получать вектор движения и опорный кадр на основе некоторой функции стоимости. Компенсации движения затем описывает текущий блок текущего кадра с точки зрения преобразования опорного блока опорного кадра в текущий кадр. Модуль 108 предсказания выводит блок предсказания для текущего блока, причем упомянутый блок предсказания минимизирует разность между текущим блоком, подлежащим кодированию, и его блоком предсказания, то есть минимизирует остаточный блок. Минимизация остаточного блока основана, например, на процедуре оптимизации соотношения скорости-искажений.
Разность между текущим блоком и его предсказанием, то есть остаточный блок, затем преобразуется модулем 101 преобразования. Коэффициенты преобразования квантуются и энтропийно кодируются модулем 102 квантования и модулем 103 энтропийного кодирования. Сгенерированный таким образом закодированный битовый поток видео содержит интра-кодированные блоки и интер-кодированные блоки.
Такое гибридное кодирование видео содержит предсказание с компенсацией движения в сочетании с кодированием преобразования ошибки предсказания. Для каждого блока, оцененный вектор движения также передается как данные сигнализации в закодированном битовом потоке видео. Современные стандарты H.264/AVC и H.265/HEVC основаны на разрешении смещения ¼ пел (пиксела) для вектора движения. Чтобы оценивать и компенсировать дробно-пиксельные смещения, опорный блок должен быть интерполирован на дробно-пиксельные положения. Интерполяционный фильтр используется для получения такого интерполированного кадра на дробно-пиксельных положениях.
Качество интерполированного блока сильно зависит от свойств используемого интерполяционного фильтра. Короткие фильтры с отводами, например, билинейные фильтры, могут подавлять высокие частоты и визуализировать интерполированный кадр размытым. Другие фильтры, такие как длинные фильтры с отводами, могут сохранять высокие частоты, но генерируют некоторые артефакты ʺзвонаʺ (затухающих колебаний) в окрестности резких краев. Другая проблема заключается в том, что компенсация движения использует ранее закодированный и восстановленный кадр в качестве опорного кадра: опорный кадр может содержать артефакты, вызванные квантованием коэффициента преобразования, что упоминается как эффект Гиббса (Gibbs). Из-за этих артефактов, края и область вокруг краев также могут быть искажены.
Восстановленные опорные блоки и кадры могут также содержать нежелательные ложные края, сгенерированные самим видеокодером. Такие артефакты могут быть вызваны отдельной и независимой обработкой каждого блока. В этой связи, модуль 106 контурной фильтрации применяет фильтрацию удаления блочности, которая направлена на уменьшение этих артефактов блочности, но модуль 106 контурной фильтрации способен лишь частично удалять эти артефакты. Другие краевые артефакты могут быть связаны с градиентной сегментацией (полосатостью), вызванной грубым квантованием плавных градиентных областей. Следовательно, опорный блок и кадр могут содержать нежелательные края.
Качество предсказания движения зависит от нескольких факторов. Качество восстановленного опорного блока, наличие артефактов и нежелательные шумы в опорном блоке сильно влияют на качество предсказания движения. Кроме того, интерполяционный фильтр определяет качество интерполированных краев, их размытие и наличие ʺзвонаʺ в интерполированном блоке. Содержимое блока предсказания также влияет на качество предсказания движения, так как большинство артефактов появляется вблизи краев.
Из предшествующего уровня техники известно несколько методов улучшения предсказания с компенсацией движения. Например, был предложен стандарт кодирования видео H.265/HEVC с использованием более сложных фиксированных линейных интерполяционных фильтров, которые обеспечивают лучшее качество интерполяции, чем предыдущий стандарт H.264/AVC. Кроме того, адаптивная контурная фильтрация (ALF) может выполняться в модуле 106 контурной фильтрации. Такая фильтрация вводит линейный адаптивный фильтр, обычно на основе фильтра Винера, чтобы минимизировать разность между восстановленным и исходным блоком. Однако такой метод контурной фильтрации не может удалить артефакты, вызванные фильтром интерполяции движения, потому что контурные фильтры применяются к опорному блоку до интерполяции движения.
Адаптивные интерполяционные фильтры (AIF) являются известным методом, который пытается найти оптимальный интерполяционный фильтр Винера для каждого дробного положения движения путем минимизации разности между интерполированным и исходным блоком. Затем найденные коэффициенты фильтра должны быть переданы в декодер. Такой адаптивный фильтр является линейным и имеет форму матрицы или вектора коэффициентов. Далее, каждое дробное положение вектора движения имеет свой собственный оптимальный фильтр. Форма адаптивного фильтра и необходимость переноса нескольких фильтров для дробных положений подразумевают значительную служебную нагрузку сигнализации для метода адаптивной интерполяционной фильтрации.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Ввиду вышеупомянутых недостатков и проблем, настоящее изобретение направлено на улучшение уровня техники. В частности, целью настоящего изобретения является предоставление видеокодера, способа кодирования, видеодекодера и способа декодирования для улучшенного кодирования и декодирования потока видео последующих кадров.
Настоящее изобретение, в частности, предназначено для улучшения качества кодирования с предсказанием. В частности, изобретение направлено на удаление артефактов, вызванных компенсацией движения и, в частности, вызванных интерполяцией опорного блока на дробно-пиксельных положениях, а также улучшение качества предсказания путем уменьшения артефактов квантования опорного кадра. Еще одной целью изобретения является поддержание служебной нагрузки сигнализации в закодированном битовом потоке видео на низком уровне.
Вышеупомянутая цель настоящего изобретения достигается решением, предусмотренным в прилагаемых независимых пунктах формулы изобретения. Предпочтительные реализации настоящего изобретения дополнительно определены в соответствующих зависимых пунктах формулы изобретения.
Первый аспект настоящего изобретения предусматривает видеокодер для кодирования с предсказанием потока видео последующих кадров в соответствии с компенсацией движения в закодированный битовый поток видео. Видеокодер содержит буфер кадров, сконфигурированный хранить по меньшей мере один опорный кадр потока видео. Видеокодер содержит модуль предсказания, сконфигурированный генерировать блок предсказания текущего блока текущего кадра из опорного блока опорного кадра в соответствии с вектором движения, имеющим дробно-пиксельное разрешение, причем упомянутое дробно-пиксельное разрешение определяет цело-пиксельное положение и дробно-пиксельные положения. Модуль предсказания сконфигурирован интерполировать опорный блок в соответствии с дробно-пиксельным разрешением посредством одного из по меньшей мере трех следующих интерполяционных фильтров: интерполяционного фильтра размытия, фильтра с отводами и фильтра с отводами с последующим фильтром увеличения четкости.
Таким образом, схема интерполяции движения модуля предсказания содержит упомянутые три типа интерполяционных фильтров, которые являются интерполяционным фильтром размытия, фильтром с отводами и фильтром с отводами с последующим фильтром увеличения четкости. Модуль предсказания может затем выбрать тип фильтра в зависимости от содержимого видео. Эти три типа фильтров могут быть выбраны в процессе кодирования для разных типов содержимого.
В форме реализации видеокодера в соответствии с первым аспектом, по меньшей мере один из интерполяционного фильтра размытия и фильтра увеличения четкости является адаптивным фильтром, сконфигурированным, чтобы управляться по меньшей мере одним адаптивным параметром.
Таким образом, опорный блок может быть интерполирован интерполяционным фильтром, который может быть адаптирован к конкретному содержимому видео. Адаптация может учитывать локальные особенности содержимого видео, и требуемая служебная нагрузка сигнализации может быть ограничена вследствие использования параметрического представления интерполяционного фильтра только с одним коэффициентом для адаптации и передачи.
В форме реализации видеокодера в соответствии с первым аспектом, фильтр увеличения четкости является нелинейным фильтром.
Таким образом, использование такого нелинейного фильтра увеличения четкости является предпочтительным для улучшения предсказания движения. Традиционные методы улучшения края, основанные на линейных фильтрах увеличения четкости или удаления размытия, такие как методы нерезкого маскирования, могут повышать субъективное качество, но не могут подавлять артефакты ʺзвонаʺ, вызванные фильтрацией интерполяции движения. Кроме того, такое линейное увеличение четкости может даже привести к увеличению звона и снизить целевые рабочие характеристики. С другой стороны, предлагаемый нелинейный фильтр увеличения четкости может обеспечить лучшие результаты для устранения звона и, следовательно, является предпочтительным. Кроме того, использование нелинейной схемы для фильтра увеличения четкости, например, для адаптивного фильтра увеличения четкости, может выгодным образом уменьшить количество адаптивных параметров и, тем самым, служебную нагрузку сигнализации.
В форме реализации видеокодера в соответствии с первым аспектом, фильтр увеличения четкости сконфигурирован управляться одним адаптивным параметром.
Таким образом, требуемая служебная нагрузка сигнализации может быть дополнительно ограничена ввиду использования только одного адаптивного параметра для фильтра увеличения четкости. В частности, размер блоков, используемых для кодирования с предсказанием, может быть уменьшен без одновременного увеличения служебной нагрузки сигнализации.
В форме реализации видеокодера в соответствии с первым аспектом, адаптивный фильтр увеличения четкости содержит модуль вычисления краевой карты, приспособленный генерировать краевую карту исходного блока, причем упомянутый исходный блок является опорным блоком или блоком предсказания. Фильтр увеличения четкости содержит фильтр размытия, приспособленный размывать краевую карту исходного блока. Фильтр увеличения четкости содержит фильтр верхних частот, приспособленный генерировать, посредством фильтрации верхних частот размытой краевой карты, вектор производной для каждого положения исходного блока. Фильтр увеличения четкости содержит модуль масштабирования, приспособленный генерировать вектор смещения путем масштабирования вектора производной с коэффициентом степени увеличения четкости. Фильтр увеличения четкости содержит модуль деформации, приспособленный деформировать модуль предсказания на основе вектора смещения.
Таким образом, эта структура фильтра увеличения четкости определяет нелинейный фильтр увеличения четкости, который выгодным образом может обеспечить лучшие результаты с точки зрения устранения артефактов звона.
В форме реализации видеокодера в соответствии с первым аспектом, адаптивный параметр фильтра увеличения четкости включает в себя коэффициент степени увеличения четкости.
Таким образом, использование коэффициента степени увеличения четкости в качестве адаптивного параметра подразумевает, что требуется только один адаптивный параметр, что дополнительно уменьшает служебную нагрузку сигнализации.
В форме реализации видеокодера в соответствии с первым аспектом, модуль предсказания сконфигурирован выбирать коэффициент степени увеличения четкости, который минимизирует остаточный блок, причем упомянутый остаточный блок представляет собой разность между текущим блоком и блоком предсказания, выведенным адаптивным фильтром увеличения четкости или на основе критерия стоимости, подобного, например, оптимизации соотношения скорости-искажений.
В форме реализации видеокодера в соответствии с первым аспектом, интерполяционный фильтр размытия является фильтром нижних частот, который не может генерировать звон ввиду характера его структуры.
В форме реализации видеокодера в соответствии с первым аспектом, интерполяционный фильтр размытия содержит один адаптивный параметр.
Таким образом, требуемая служебная нагрузка сигнализации может быть дополнительно ограничена ввиду использования только одного адаптивного параметра для фильтра интерполяции размытия.
В форме реализации видеокодера в соответствии с первым аспектом, адаптивный параметр фильтра интерполяции размытия включает в себя коэффициент размытия.
Таким образом, использование коэффициента размытия в качестве адаптивного параметра подразумевает, что требуется только один адаптивный параметр, что дополнительно уменьшает служебную нагрузку сигнализации.
В форме реализации видеокодера в соответствии с первым аспектом, интерполяционный фильтр размытия представляет собой гауссов фильтр или билинейный фильтр, и если интерполяционный фильтр размытия является гауссовым фильтром, коэффициент размытия является стандартным отклонением гауссова распределения.
Таким образом, становится возможным подавлять нежелательные края, обусловленные, например, блочностью и градиентной полосатостью, в восстановленной опорном кадре путем применения интерполяции размытия. Кроме того, нежелательные высокочастотные шумы могут быть подавлены в восстановленном опорном кадре.
В форме реализации видеокодера в соответствии с первым аспектом, интерполяционный фильтр размытия содержит модуль вычисления, сконфигурированный вычислять коэффициенты гауссова фильтра на основе стандартного отклонения, и модуль фильтрации, сконфигурированный генерировать, в качестве выхода интерполяционного фильтра размытия, блок предсказания с использованием вычисленных коэффициентов гауссова фильтра.
В форме реализации видеокодера в соответствии с первым аспектом, видеокодер содержит модуль, сконфигурированный хранить предварительно вычисленный набор коэффициентов гауссовых фильтров, основанных на различных стандартных отклонениях, и модуль фильтрации, сконфигурированный генерировать, в качестве выхода интерполяционного фильтра размытия, блок предсказания с использованием одного из предварительно вычисленного набора гауссовых фильтров.
Таким образом, это предварительное вычисление приводит к тому, что вычислительные ресурсы могут сберегаться во время процедуры оптимизации.
В форме реализации видеокодера в соответствии с первым аспектом, модуль предсказания сконфигурирован выбирать коэффициент размытия, который минимизирует остаточный блок, причем упомянутый остаточный блок является разностью между текущим блоком и блоком предсказания, выводимым интерполяционным фильтром размытия или на основе критерия стоимости, подобного, например, оптимизации соотношения скорости-искажений.
Таким образом, компенсация движения может быть дополнительно улучшена путем выбора коэффициента размытия во время процедуры оптимизации.
В форме реализации видеокодера в соответствии с первым аспектом, фильтр с отводами представляет собой фиксированный длинный фильтр с отводами с резким откликом на ступенчатое воздействие.
В форме реализации видеокодера в соответствии с первым аспектом, целочисленное положение и каждое из дробно-пиксельных положений ассоциированы с упомянутым одним из по меньшей мере трех интерполяционных фильтров и/или, если присутствует, с заданным значением адаптивного параметра фильтра увеличения четкости и/или интерполяционного фильтра размытия.
Таким образом, поскольку пиксельное положение ассоциировано с одним из трех интерполяционных фильтров и, возможно, с соответствующим адаптивным параметром, служебная нагрузка сигнализации может быть уменьшена вследствие использования дробных положений вектора движения в качестве точек сигнализации для типа интерполяционного фильтра и адаптивных параметров.
В форме реализации видеокодера в соответствии с первым аспектом, видеокодер содержит модуль кодирования, сконфигурированный генерировать закодированный битовый поток видео и указывать, в качестве информации сигнализации в закодированном битовом потоке видео, тип интерполяционного фильтра и упомянутое заданное значение адаптивного параметра и ассоциированное цело-пиксельное положение или дробно-пиксельное положение.
Таким образом, объем информации сигнализации, которая должна быть передана в декодер, может быть уменьшен, и служебная нагрузка сигнализации может быть уменьшена.
В форме реализации видеокодера в соответствии с первым аспектом, выбор интерполяционного фильтра среди трех интерполяционных фильтров зависит от цело-пиксельного положения или дробно-пиксельного положения, так что заданное цело-пиксельное положение или дробно-пиксельное положение подразумевает выбор заданного интерполяционного фильтра и выбор адаптивных параметров, если таковые имеются.
Таким образом, можно выполнить адаптацию к локальным особенностям без введения дополнительной служебной нагрузки сигнализации.
В форме реализации видеокодера в соответствии с первым аспектом, видеокодер содержит по меньшей мере один шаблон интерполяционного фильтра, определяющий, для каждого из цело-пиксельного положения и дробно-пиксельных положений, соответствующий тип интерполяционного фильтра и/или, если присутствует, значение адаптивного параметра.
Таким образом, шаблон интерполяционного фильтра может легко определять каждый тип интерполяционного фильтра и, если применимо, значение адаптивного параметра без введения дополнительной служебной нагрузки сигнализации.
Таким образом, декодер может выбрать интерполяционный фильтр, определенный в шаблоне интерполяционного фильтра, в зависимости от пиксельного положения.
В форме реализации видеокодера в соответствии с первым аспектом, видеокодер содержит множество шаблонов интерполяционных фильтров, причем модуль предсказания сконфигурирован выбирать один из множества шаблонов интерполяционных фильтров.
Таким образом, множество шаблонов интерполяционных фильтров могут быть, например, предварительно вычислены и подготовлены, так что во время кодирования потока видео необходимо только выбрать один из шаблонов интерполяционных фильтров.
В форме реализации видеокодера в соответствии с первым аспектом, видеокодер содержит модуль кодирования, сконфигурированный генерировать закодированный битовый поток видео и добавлять, в качестве информации сигнализации в закодированном битовом потоке видео, упомянутый(е) шаблон(ы) интерполяционного(ых) фильтра(ов).
В форме реализации видеокодера в соответствии с первым аспектом, в случае обеспечения множества шаблонов интерполяционных фильтров, модуль кодирования сконфигурирован добавлять, в качестве информации сигнализации в закодированном битовом потоке видео, информацию об использовании шаблона интерполяционного фильтра, подлежащего выбору.
Таким образом, эта информация выбора или индексная информация может указывать шаблон интерполяционного фильтра, который должен быть выбран декодером. В случае если декодер уже знает множество шаблонов интерполяционных фильтров, эта информация выбора, следовательно, дополнительно уменьшает служебную нагрузку сигнализации.
В форме реализации видеокодера в соответствии с первым аспектом, модуль кодирования сконфигурирован добавлять информацию сигнализации о шаблоне интерполяционного фильтра, который должен быть выбран для каждого блока предсказания, для произвольной или регулярной области кадра, на уровне кадра, уровне GOP (группы изображений), уровне PPS (набора параметров изображения) или уровне SPS (набора параметров последовательности).
Таким образом, можно установить информацию интерполяционного фильтра с желательной детализацией, так что сигнализация может быть оптимизирована.
Второй аспект настоящего изобретения обеспечивает способ кодирования с предсказанием потока видео последующих кадров в соответствии с компенсацией движения в закодированный битовый поток видео. Способ содержит сохранение по меньшей мере одного опорного кадра потока видео. Способ содержит этап предсказания, содержащий генерирование блока предсказания текущего блока текущего кадра из опорного блока опорного кадра в соответствии с вектором движения, имеющим дробно-пиксельное разрешение, упомянутое дробно-пиксельное разрешение определяет цело-пиксельное положение и дробно-пиксельные положения. Этап предсказания дополнительно содержит интерполяцию опорного блока в соответствии с дробно-пиксельным разрешением посредством одного из по меньшей мере следующих трех интерполяционных фильтров: интерполяционного фильтра размытия, фильтра с отводами и фильтра с отводами с последующим фильтром увеличения четкости.
Дополнительные признаки или реализации способа в соответствии со вторым аспектом изобретения могут выполнять функциональность видеокодера в соответствии с первым аспектом изобретения и его различными формами реализации.
Третий аспект настоящего изобретения обеспечивает видеодекодер для декодирования закодированного битового потока видео, полученного посредством кодирования с предсказанием потока видео последующих кадров в соответствии с компенсацией движения. Видеодекодер содержит буфер кадров, сконфигурированный хранить по меньшей мере один опорный кадр, полученный из закодированного битового потока видео. Видеодекодер содержит модуль предсказания, сконфигурированный генерировать блок предсказания текущего блока текущего кадра из опорного блока опорного кадра в соответствии с вектором движения, имеющим дробно-пиксельное разрешение, причем упомянутое дробно-пиксельное разрешение определяет цело-пиксельное положение и дробно-пиксельные положения. Модуль предсказания сконфигурирован интерполировать опорный блок в соответствии с дробно-пиксельным разрешением посредством одного из по меньшей мере трех следующих интерполяционных фильтров: интерполяционного фильтра размытия, фильтра с отводами и фильтра с отводами с последующим фильтром увеличения четкости.
Таким образом, преимущества, получаемые в отношении видеокодера в соответствии с первым аспектом, также обеспечиваются в отношении видеодекодера в соответствии с третьим аспектом.
В форме реализации видеодекодера в соответствии с третьим аспектом, по меньшей мере один из интерполяционного фильтра размытия и фильтра увеличения четкости являются адаптивным фильтром, сконфигурированным, чтобы управляться по меньшей мере одним адаптивным параметром.
Таким образом, опорный блок может быть интерполирован интерполяционным фильтром, который может быть адаптирован к конкретному содержимому видео. Адаптация может учитывать локальные особенности содержимого видео, и требуемая служебная нагрузка сигнализации может быть ограничена вследствие использования параметрического представления интерполяционного фильтра только с одним коэффициентом для адаптации и передачи.
В форме реализации видеодекодера в соответствии с третьим аспектом, выбор интерполяционного фильтра среди трех интерполяционных фильтров зависит от цело-пиксельного положения или дробно-пиксельного положения, так что заданное цело-пиксельное положение или дробно-пиксельное положение подразумевает выбор заданного интерполяционного фильтра и/или, если присутствует, значения адаптивного параметра.
Таким образом, использование дробных положений вектора движения в качестве точек сигнализации для типа интерполяционного фильтра и адаптивных параметров не создает дополнительной служебной нагрузки сигнализации.
В форме реализации видеодекодера в соответствии с третьим аспектом, модуль предсказания сконфигурирован выбирать один из трех интерполяционных фильтров в соответствии с шаблоном интерполяционного фильтра. Упомянутый шаблон интерполяционного фильтра определяет, для цело-пиксельного положения вектора движения и ассоциированных с ним дробных положений, ассоциированный тип интерполяционного фильтра и/или, если присутствует, значение адаптивного параметра.
Таким образом, шаблон интерполяционного фильтра может легко определять каждый тип интерполяционного фильтра и, если применимо, значение адаптивного параметра, так что служебная нагрузка сигнализации может быть дополнительно уменьшена.
В форме реализации видеодекодера в соответствии с третьим аспектом, видеодекодер содержит модуль декодирования, сконфигурированный получать из закодированного битового потока видео, в качестве информации сигнализации, шаблон интерполяционного фильтра.
В форме реализации видеодекодера в соответствии с третьим аспектом, видеодекодер содержит модуль декодирования, сконфигурированный получать из закодированного битового потока видео, в качестве информации сигнализации, множество шаблонов интерполяционных фильтров, а также информацию выбора о шаблоне интерполяционного фильтра, подлежащем выбору. Модуль предсказания сконфигурирован выбирать один из полученных шаблонов интерполяционных фильтров в соответствии с полученной информацией выбора и выбирать один из трех интерполяционных фильтров в соответствии с выбранным шаблоном интерполяционного фильтра.
Таким образом, эта информация выбора или индексная информация может указывать шаблон интерполяционного фильтра, который должен быть выбран декодером. Если декодер знает множество шаблонов интерполяционных фильтров, необходимо только передать эту информацию выбора посредством закодированного битового потока видео, так что служебная нагрузка сигнализации может быть дополнительно уменьшена.
В форме реализации видеодекодера в соответствии с третьим аспектом, модуль предсказания сконфигурирован предварительно сохранять множество шаблонов интерполяционных фильтров, прежде чем видеодекодер принимает закодированный битовый поток видео. Видеодекодер содержит модуль декодирования, сконфигурированный получать из закодированного битового потока видео, в качестве информации сигнализации, информацию выбора о предварительно сохраненном шаблоне интерполяционного фильтра, подлежащем выбору. Модуль предсказания сконфигурирован выбирать один из предварительно сохраненных шаблонов интерполяционных фильтров в соответствии с полученной информацией выбора и выбирать один из трех интерполяционных фильтров в соответствии с выбранным шаблоном интерполяционного фильтра.
Таким образом, декодер уже знает множество шаблонов интерполяционных фильтров, и необходимо только передать, посредством закодированного битового потока видео, эту информацию выбора. Тогда служебная нагрузка сигнализации может быть дополнительно уменьшена.
В форме реализации видеодекодера в соответствии с третьим аспектом, модуль декодирования сконфигурирован получать информацию сигнализации о шаблоне интерполяционного фильтра, подлежащем выбору для каждого блока предсказания, для произвольной или регулярной области кадра, на уровне кадра, уровне GOP (группы изображений), уровне PPS (набора параметров изображения) или уровне SPS (набора параметров последовательности).
Таким образом, можно установить информацию интерполяционного фильтра с желательной детализацией, так что сигнализация может быть оптимизирована.
Дополнительные признаки или реализации видеокодера в соответствии с первым аспектом изобретения, в частности, относительно по меньшей мере трех интерполяционных фильтров и их структуры, также применимы к видеодекодеру в соответствии с третьим аспектом изобретения.
Четвертый аспект настоящего изобретения обеспечивает способ декодирования закодированного битового потока видео, полученного посредством кодирования с предсказанием потока видео последующих кадров в соответствии с компенсацией движения. Способ содержит сохранение по меньшей мере одного опорного кадра, полученного из закодированного битового потока видео. Способ содержит этап предсказания, содержащий генерирование блока предсказания текущего блока текущего кадра из опорного блока опорного кадра в соответствии с вектором движения, имеющим дробно-пиксельное разрешение, причем упомянутое дробно-пиксельное разрешение определяет цело-пиксельное положение и дробно-пиксельные положения. Этап предсказания дополнительно содержит интерполяцию опорного блока в соответствии с дробно-пиксельным разрешением посредством одного из по меньшей мере следующих трех интерполяционных фильтров: интерполяционного фильтра размытия, фильтра с отводами и фильтра с отводами с последующим фильтром увеличения четкости.
Дополнительные признаки или реализации способа в соответствии с четвертым аспектом изобретения могут выполнять функциональность видеодекодера в соответствии с третьим аспектом изобретения и его различными формами реализации.
Пятый аспект настоящего изобретения обеспечивает компьютерную программу, имеющую программный код для выполнения такого способа кодирования и/или декодирования, когда компьютерная программа исполняется на вычислительном устройстве.
В изобретении предлагается компенсация движения, заключающаяся в применении улучшенной схемы фильтрации интерполяции движения, включающей в себя интерполяцию с размытием, обычную и с увеличением четкости, которая может быть адаптивно настроена в соответствии с локальными особенностями изображения. Схема интерполяции движения содержит три разных типа фильтров - фильтр размытия, фиксированный фильтр и фильтр увеличения четкости - которые могут быть выбраны во время процесса кодирования. Фильтры размытия и увеличения четкости могут быть адаптивными для лучшего соответствия локальным особенностям кодирования изображения. Чтобы сигнализировать тип интерполяционного фильтра и адаптивные параметры декодеру, предлагается использовать дробные положения вектора движения.
С помощью предлагаемой схемы интерполяционной фильтрации можно выполнять адаптацию к локальным особенностям кодируемого изображения путем применения трех типов фильтров. Сокращение служебной нагрузки сигнализации может быть достигнуто благодаря параметрическому представлению адаптивных фильтров с одним коэффициентом адаптации, что уменьшает служебную нагрузку сигнализации и позволяет адаптироваться к меньшим областям кодируемого изображения. Служебная нагрузка сигнализации может быть дополнительно уменьшена за счет использования дробных положений вектора движения в качестве точек сигнализации для типа интерполяционного фильтра и адаптивных параметров. Адаптация может быть выполнена для локальных особенностей малых областей кодируемого изображения ввиду снижения служебной нагрузки сигнализации. Артефакты ʺзвонаʺ и размытие краев, вызванные фильтром интерполяции движения, могут быть уменьшены при сохранении качества интерполированных краев. Кроме того, можно уменьшить артефакты ʺзвонаʺ и размытие краев, вызванные квантованием коэффициента преобразования в опорном изображении. Уменьшение размытости краев, вызванное размытием движения, также может быть уменьшено. Предложенная схема может подавлять нежелательные края вызванные, например, блочностью и градиентной полосатостью в восстановленном опорном изображении, путем применения интерполяции размытия, и подавлять нежелательные высокочастотные шумы в восстановленном опорном изображении путем применения интерполяции размытия. Предлагаемая схема также увеличивает субъективное качество краев в восстановленных изображениях и увеличивает субъективное качество размытых и гладких градиентных областей. Предложенная интерполяционная фильтрация выполняет операцию, которую выполняет контурная или внутриконтурная опорная фильтрация, и в то же время уменьшает артефакты, вызванные обычными фильтрами интерполяции движения, адаптивно к содержимому изображения.
Следует отметить, что все устройства, элементы, модули и средства, описанные в настоящей заявке, могут быть реализованы в программных или аппаратных элементах или любой их комбинации. Все этапы, которые выполняются различными объектами, описанными в настоящей заявке, а также функциональные возможности, описанные для выполнения различными объектами, означают то, что соответствующий объект адаптирован или сконфигурирован выполнять соответствующие этапы и функциональные возможности. Даже если в нижеследующем описании конкретных вариантов осуществления, конкретная функциональность или этап должны быть полностью сформированы существующими объектами, не отраженными в описании конкретного детального элемента такого объекта, который выполняет этот конкретный этап или функциональность, для специалиста в данной области техники должно быть ясно, что эти способы и функциональные возможности могут быть реализованы в соответствующих программных или аппаратных элементах или любой их комбинации.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеупомянутые аспекты и формы реализации настоящего изобретения будут объяснены в нижеследующем описании конкретных вариантов осуществления со ссылкой на прилагаемые чертежи, на которых
Фиг. 1 показывает видеокодер в соответствии с уровнем техники,
Фиг. 2 показывает видеокодер в соответствии с вариантом осуществления настоящего изобретения,
Фиг. 3 показывает интерполяционные фильтры видеокодера в соответствии с вариантом осуществления настоящего изобретения,
Фиг. 4 показывает видеодекодер в соответствии с вариантом осуществления настоящего изобретения,
Фиг. 5 показывает способ кодирования видео в соответствии с вариантом осуществления настоящего изобретения,
Фиг. 6 показывает способ декодирования видео в соответствии с вариантом осуществления настоящего изобретения,
Фиг. 7 показывает вариант осуществления интерполяционного фильтра размытия в соответствии с настоящим изобретением,
Фиг. 8 показывает вариант осуществления фильтра увеличения четкости в соответствии с настоящим изобретением,
Фиг. 9 показывает шаблон интерполяционного фильтра для интерполяционного фильтра размытия в соответствии с вариантом осуществления настоящего изобретения,
Фиг. 10 показывает шаблон интерполяционного фильтра для фильтра увеличения четкости в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 11 показывает шаблон смешанного интерполяционного фильтра в соответствии с вариантом осуществления настоящего изобретения и
Фиг. 12 показывает вариант осуществления настоящего изобретения с различными шаблонами интерполяционных фильтров.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Фиг. 2 показывает видеокодер в соответствии с вариантом осуществления настоящего изобретения и, в частности, видеокодер 200 для кодирования с предсказанием потока видео последующих кадров в соответствии с компенсацией движения в закодированный битовый поток видео. Далее, фиг. 3 показывает интерполяционные фильтры видеокодера в соответствии с вариантом осуществления настоящего изобретения.
Видеокодер 200 содержит, в частности, буфер 207 кадров и модуль предсказания.
Буфер 207 кадров сконфигурирован хранить по меньшей мере один опорный кадр или изображение потока видео. Модуль 210 предсказания сконфигурирован генерировать блок предсказания текущего блока текущего кадра из опорного блока опорного кадра в соответствии с вектором движения, имеющим дробно-пиксельное разрешение. Упомянутое дробно-пиксельное разрешение определяет цело-пиксельное положение и дробно-пиксельные положения.
Кроме того, модуль 210 предсказания сконфигурирован интерполировать опорный блок в соответствии с дробно-пиксельным разрешением посредством одного из по меньшей мере трех следующих интерполяционных фильтров:
- интерполяционного фильтра 302 размытия,
- фильтра 303 с отводами и
- фильтра 303 с отводами с последующим фильтром 311 увеличения четкости.
Фильтр 311 увеличения четкости, показанный на фиг. 3, обозначен на фиг. 2 ссылочной позицией 208. Интерполяционный фильтр 302 размытия и фильтр 303 с отводами согласно фиг. 3 представлены на фиг. 2 блоком 209 интерполяционного(ых) фильтра(ов).
Упомянутый опорный кадр может отличаться от текущего кадра потока видео. В частности, и в контексте изобретения, текущий кадр представляет собой кадр потока видео, который является кодируемым в текущее время, тогда как опорный кадр представляет собой кадр потока видео, который уже был закодирован, а затем восстановлен. В последующем описании, любая ссылка на признак ʺкадрʺ может быть заменена ссылкой на признак ʺизображениеʺ (картинка).
Текущий кадр может быть закодирован с использованием метода интер-кодирования т.е. текущий кадр предсказывается из по меньшей мере одного опорного кадра, который отличается от текущего кадра. Опорным кадром может быть предыдущий кадр, то есть кадр, который находится перед текущим кадром в потоке последующих кадров. Альтернативно, если используется прямое предсказание, опорный кадр может быть будущим кадром, то есть кадром, который расположен после текущего кадра. В случае множества опорных кадров, по меньшей мере один может быть таким предыдущим кадром, и по меньшей мере один из них может быть таким будущим кадром. Опорный кадр может быть интра-кодированным, т.е. может кодироваться без использования какого-либо другого кадра и без какой-либо зависимости от других кадров, так что он может быть независимо декодирован и может служить точкой входа для произвольного доступа к видео.
В частности, модуль 210 предсказания адаптирован, чтобы выполнять оценку движения путем генерации вектора движения и оценки движения между опорным блоком опорного кадра и текущим блоком текущего кадра. Упомянутая оценка движения выполняется при кодировании, чтобы найти вектор движения, указывающий на лучший опорный блок в опорном кадре, на основе определенной функции стоимости, например, оптимизации соотношения скорости-искажений. Помимо оценки движения, модуль 210 предсказания дополнительно адаптирован, чтобы выполнять компенсацию движения путем генерирования блока предсказания для текущего блока на основе вектора движения и опорного блока.
В частности, предсказание движения содержит оценку движения и компенсацию движения. Вектор движения генерируется с использованием модуля оценки движения. Опорный блок и текущий блок предпочтительно представляют собой соответствующие области или подобласти опорного кадра и текущего кадра. Такой блок может иметь регулярную форму, например, прямоугольную форму или нерегулярную форму. Альтернативно, блоки могут иметь тот же размер, что и кадры. Как текущий блок, так и опорный блок имеют одинаковый размер. Размер блоков может быть определен посредством информации о режиме блока, переданной в виде дополнительной информации или данных сигнализации в декодер. Блок может соответствовать единице кодирования, которая представляет собой базовую структуру кодирования последовательности видео предопределенного размера, содержащую часть кадра, например 64×64 пиксела.
Блок предсказания генерируется для текущего блока с учетом опорного блока. В частности, множество блоков предсказания может быть сгенерировано для множества текущих блоков текущего кадра с учетом множества опорных блоков. Эти опорные блоки могут быть частью одного опорного кадра или могут быть выбраны из различных опорных кадров. Для текущего кадра может быть сгенерировано несколько блоков предсказания, и блоки предсказания, сгенерированные для текущего кадра, могут быть объединены для получения кадра предсказания текущего кадра.
Видеокодер 200 на фиг. 2 содержит дополнительные модули, подобно видеокодеру 100 на фиг. 1, в частности, для поддержки гибридного кодирования видео. Например, видеокодер 200 содержит аналогичные модули, которые являются модулем 201 преобразования, модулем 202 квантования и энтропийным кодером или модулем 203 энтропийного кодирования, как уже известно в данной области техники, для генерирования коэффициентов преобразования посредством преобразования в частотную область, квантования коэффициентов и энтропийного кодирования квантованных коэффициентов, например, вместе с данными сигнализации. Входом модуля 201 преобразования является остаточный блок, определяемый как разность между текущим блоком текущего кадра, упоминаемым как ʺблок видеоʺ на фиг. 2, и блоком предсказания, выводимым модулем 210 предсказания. Модуль 203 энтропийного кодирования адаптирован для генерации в качестве выхода закодированного битового потока видео.
Видеокодер 200 содержит другие аналогичные модули, которыми являются модуль 204 обратного квантования, модулем 205 обратного преобразования и модуль 206 контурной фильтрации. Квантованные коэффициенты преобразования, генерируемые модулем 202 квантования, обратно квантуются и обратно преобразуются посредством, соответственно, модуля 204 обратного квантования и модуля 205 обратного преобразования для получения восстановленного остаточного блока, соответствующего остаточному блоку, подаваемому в модуль 201 преобразования. Затем восстановленный остаточный блок добавляется к блоку предсказания, ранее использованному для генерации остаточного блока, чтобы получить восстановленный текущий блок, соответствующий текущему блоку, этот восстановленный текущий блок указывается как восстановленный блок видео на фиг. 2. Восстановленный текущий блок может обрабатываться модулем 206 контурной фильтрации для сглаживания артефактов, которые вводятся блочной обработкой и квантованием. Текущий кадр, который содержит по меньшей мере один текущий блок или предпочтительно множество текущих блоков, затем может быть восстановлен из восстановленного(ых) текущего(их) блока(ов). Этот восстановленный текущий кадр может быть сохранен в буфере 207 кадров, чтобы служить в качестве опорного кадра для интер- (межкадрового) предсказания другого кадра потока видео.
Схема интерполяции движения, предложенная в настоящем изобретении, находится в модуле 210 предсказания и используется для оценки движения и компенсации движения для получения блоков кадра в дробно- и цело-пиксельном положениях. Как показано на фиг. 3, схема интерполяции основана на следующих трех типах интерполяционных фильтров:
- интерполяционном фильтре 302 размытия, который предпочтительно не генерирует звон, как, например, гауссов или билинейный фильтр,
- фильтре 303 с отводами, подобном обычному длинному фильтру с отводами с резким откликом на ступенчатое воздействие, который, в общем, может генерировать звон, например, интерполяционном фильтре на основе дискретного косинусного преобразования (DCT-IF) из H.265/HEVC,
- комбинации фильтра 303 с отводами с последующим фильтром 311 увеличения четкости, подобной комбинации упомянутого обычного длинного фильтра с отводами с резким откликом на ступенчатое воздействие и нелинейного фильтра увеличения четкости, который уменьшает величину звона и увеличивает резкость краев.
Модуль 210, 300 предсказания сконфигурирован интерполировать опорный блок, сохраненный в буфере 207, 307 кадров, в соответствии с дробно-пиксельным разрешением посредством одного из по меньшей мере трех интерполяционных фильтров.
Во время оценки движения один из этих трех типов интерполяции может быть выбран, например, модулем 305 принятия решения на основе минимальной ошибки предсказания или выполнения критерия минимальной стоимости (скорости/искажения).
Фиг. 4 показывает видеодекодер в соответствии с вариантом осуществления настоящего изобретения, в частности, видеодекодер 400 для декодирования закодированного битового потока видео, полученного посредством кодирования с предсказанием потока видео последующих кадров в соответствии с компенсацией движения.
Видеодекодер 400 содержит, в частности, буфер 407 кадров и модуль 410 предсказания. Буфер 407 кадров сконфигурирован хранить по меньшей мере один опорный кадр, полученный из закодированного битового потока видео. Модуль 410 предсказания сконфигурирован генерировать блок предсказания текущего блока текущего кадра из опорного блока опорного кадра в соответствии с вектором движения, имеющим дробно-пиксельное разрешение, упомянутое дробно-пиксельное разрешение определяет цело-пиксельное положение и дробно-пиксельные положения. Модуль 410 предсказания сконфигурирован интерполировать опорный блок в соответствии с дробно-пиксельным разрешением посредством одного из упомянутых по меньшей мере трех следующих интерполяционных фильтров:
- интерполяционного фильтра 302 размытия,
- фильтра 303 с отводами и
- фильтра 303 с отводами с последующим фильтром 311 увеличения четкости.
Декодер 400 адаптирован, чтобы декодировать закодированный битовый поток видео, генерируемый видеокодером 300, и декодер 400 и кодер 300 генерируют идентичные предсказания. Фильтр 311 увеличения четкости, показанный на фиг. 3, обозначен на фиг. 4 ссылочной позицией 411. Интерполяционный фильтр 302 размытия и фильтр 303 с отводами согласно фиг. 3 представлены на фиг. 2 блоком 409 интерполяционного(ых) фильтра(ов).
В частности, видеодекодер 400 может содержать дополнительные модули, которые также присутствуют в видеокодере 200, например, модуль 404 обратного квантования, модуль 405 обратного преобразования и модуль 406 контурной фильтрации, которые соответствуют модулю 204 обратного квантования, модулю 205 обратного преобразования и модулю 206 контурной фильтрации, соответственно, видеокодера 200. Модуль 403 энтропийного декодирования адаптирован, чтобы декодировать принятый закодированный битовый поток видео и соответственно получать квантованные остаточные коэффициенты преобразования и, если присутствует, информацию сигнализации. Квантованные остаточные коэффициенты преобразования подаются в модуль 404 обратного квантования и модуль 405 обратного преобразования, чтобы генерировать остаточный блок. Остаточный блок добавляется к блоку предсказания, и сумма подается в модуль 406 контурной фильтрации для получения декодированного видео. Кадры декодированного видео могут быть сохранены в буфере 407 кадров, и служат в качестве опорного кадра для интер-предсказания.
Видеокодер 200 и видеодекодер 400 содержат аналогичные интерполяционные фильтры, которые являются интерполяционным фильтром 302 размытия, фильтром 303 с отводами и комбинацией фильтра 303 с отводами и фильтра 311 увеличения четкости. Предпочтительным образом, по меньшей мере один из интерполяционного фильтра 302 размытия и фильтра 311 увеличения четкости является адаптивным фильтром, сконфигурированным, чтобы управляться по меньшей мере одним адаптивным параметром.
Для обеспечения одинаковых предсказаний на стороне кодера и стороне декодера, цело-пиксельное положение и каждое из дробно-пиксельных положений ассоциированы с упомянутым одним из по меньшей мере трех интерполяционных фильтров 302, 303, 303+311 и/или, если присутствует, с заданным значением адаптивного параметра фильтра 311 увеличения четкости и/или интерполяционного фильтра 302 размытия.
Для кодера 200 и декодера 400, выбор интерполяционного фильтра среди трех интерполяционных фильтров зависит от цело-пиксельного положения или дробно-пиксельного положения, так что заданное цело-пиксельное положение или дробно-пиксельное положение подразумевает выбор заданного интерполяционного фильтра и выбор адаптивных параметров, если таковые имеются.
На стороне видеокодера 200, выбор интерполяционного фильтра среди трех интерполяционных фильтров зависит от цело-пиксельного положения или дробно-пиксельного положения, определяемого вектором движения, полученным во время оценки движения. Модуль 203 кодирования кодера 200 сконфигурирован генерировать закодированный битовый поток видео и задавать, в качестве информации сигнализации в закодированном битовом потоке видео, тип интерполяционного фильтра и, если присутствует, упомянутое заданное значение адаптивного параметра, а также ассоциированное цело-пиксельное положение или дробно-пиксельное положение. Кроме того, модуль 203 кодирования задает, в качестве информации сигнализации в закодированном битовом потоке видео, упомянутый вектор движения.
Видеодекодер 400 сконфигурирован получать эту информацию сигнализации из закодированного битового потока видео. Декодер 400 принимает тип интерполяционного фильтра и ассоциированное пиксельное положение и, в частности, принимает, для каждого пиксельного положения, ассоциированный тип интерполяционного фильтра. Если присутствует, декодер 400 также принимает упомянутое заданное значение адаптивного параметра для каждого пиксельного положения. Кроме того, видеодекодер 400 сконфигурирован получать, в качестве информации сигнализации в закодированном битовом потоке видео, вектор движения, определяемый кодером 200 во время оценки движения. Таким образом, используя полученный вектор движения, декодер 400 способен вывести пиксельное положение и ассоциированный тип интерполяционного фильтра и, если имеется, ассоциированное значение адаптивного параметра. Поэтому, идентичные предсказания могут выполняться на стороне кодера и декодера при одновременном снижении служебной нагрузки сигнализации.
Фиг. 5 показывает способ кодирования видео в соответствии с вариантом осуществления настоящего изобретения и, в частности, способ кодирования с предсказанием потока видео последующих кадров в соответствии с компенсацией движения в закодированный битовый поток видео.
Способ включает в себя этап 501 сохранения по меньшей мере одного опорного кадра потока видео.
Способ дополнительно содержит этап 502 предсказания, содержащий генерирование блока предсказания текущего блока текущего кадра из опорного блока опорного кадра в соответствии с вектором движения, имеющим дробно-пиксельное разрешение. Упомянутое дробно-пиксельное разрешение определяет цело-пиксельное положение и дробно-пиксельные положения. Кроме того, этап предсказания содержит интерполяцию опорного блока в соответствии с дробно-пиксельным разрешением посредством одного из по меньшей мере следующих трех интерполяционных фильтров:
- интерполяционного фильтра размытия,
- фильтра с отводами и
- фильтра с отводами с последующим фильтром увеличения четкости.
Фиг. 6 показывает способ декодирования видео в соответствии с вариантом осуществления настоящего изобретения и, в частности, способ декодирования закодированного битового потока видео, полученного посредством кодирования с предсказанием потока видео последующих кадров в соответствии с компенсацией движения.
Способ содержит этап 601 сохранения по меньшей мере одного опорного кадра, полученного из закодированного битового потока видео.
Способ дополнительно содержит этап 602 предсказания, содержащий генерирование блока предсказания текущего блока текущего кадра из опорного блока опорного кадра в соответствии с вектором движения, имеющим дробно-пиксельное разрешение. Упомянутое дробно-пиксельное разрешение определяет цело-пиксельное положение и дробно-пиксельные положения. Кроме того, этап предсказания содержит интерполяцию опорного блока в соответствии с дробно-пиксельным разрешением посредством одного из по меньшей мере следующих трех интерполяционных фильтров:
- интерполяционного фильтра размытия,
- фильтра с отводами и
- фильтра с отводами с последующим фильтром увеличения четкости.
Другие аспекты и признаки, описанные в отношении видеокодера 200 или видеодекодера 400, также применимы к способу кодирования и способу декодирования.
Фиг. 7 показывает вариант осуществления интерполяционного фильтра размытия в соответствии с настоящим изобретением и, в частности, вариант осуществления интерполяционного фильтра 302 размытия видеокодера 200.
В варианте осуществления, показанном на фиг. 7, интерполяционный фильтр 302 размытия реализуется как гауссов фильтр в параметрической форме. Величина размытия может контролироваться только одним адаптивным параметром σ гауссова фильтра. Этот единственный адаптивный параметр имеет преимущество, состоящее в том, что фильтр можно легко оптимизировать, и что служебная нагрузка сигнализации для передачи адаптивного параметра размытия может быть уменьшена.
Интерполяционный фильтр 302 размытия принимает в качестве входа вектор движения. Вектор движения определяется кодером 200 во время оценки движения. На основе вектора движения, модуль 701 сконфигурирован получать дробную часть пиксельного положения упомянутого вектора движения.
Дополнительный модуль 702 сконфигурирован вычислять коэффициенты гауссова фильтра с заданным параметром σ и получать дробный сдвиг. Модуль 703 сконфигурирован получать блок предсказания движения, используя в качестве входов опорный блок и коэффициенты интерполяционного фильтра, вычисленные модулем 702. Тогда интерполяционный фильтр 302 размытия сконфигурирован вычислять эффективность предсказания на основе ошибки предсказания или критерия стоимости.
Ошибка предсказания соответствует остаточному блоку и вычисляется как разность между исходным блоком и блоком предсказания.
Чтобы оптимизировать эффективность предсказания, модуль 702 сконфигурирован вычислять коэффициенты для другого значения параметра σ, так что соответствующий блок предсказания может быть получен модулем 703, и соответствующая эффективность предсказания может быть вычислена с помощью интерполяционного фильтра 302 размытия. После итерации этих этапов для разных значений параметра σ, интерполяционный фильтр 302 размытия выбирает параметр σ, который обеспечивает наилучшую эффективность предсказания.
В качестве альтернативы, можно предварительно вычислить гауссовы фильтры размытия с разными значениями параметра σ и сохранить их для разных дробных положений. Это позволяет сберегать некоторые вычислительные ресурсы во время процедуры оптимизации.
Видеодекодер 400 содержит интерполяционный фильтр размытия, который подобен интерполяционному фильтру 302 размытия кодера 200, показанного на фиг. 7. Интерполяционный фильтр размытия видеодекодера 400 содержит аналогично модули 701, 702 и 703 и аналогичным образом принимает в качестве входа вектор движения. Этот вектор движения видеодекодер 400 получает в качестве информации сигнализации из закодированного битового потока видео. Декодер 400 выводит значение параметра σ, которое должно использоваться для генерирования коэффициентов фильтра, из дробной части вектора движения в соответствии с шаблоном интерполяционного фильтра.
Разница между интерполяционными фильтрами размытия видеокодера 200 и видеодекодера 400 предпочтительно состоит в вычислении эффективности предсказания и оптимизации эффективности предсказания путем итерационного вычисления эффективности предсказания для разных значений параметра σ.
Фиг. 8 показывает вариант осуществления адаптивного фильтра увеличения четкости в соответствии с настоящим изобретением и, в частности, вариант адаптивного фильтра 311 увеличения четкости видеокодера 200.
Фильтр 311 увеличения четкости предпочтительно представляет собой нелинейный фильтр. Использование нелинейного фильтра увеличения четкости, вместо линейного фильтра, является предпочтительным для удаления артефактов, вызванных фильтром интерполяции движения и квантованием опорного блока или кадра. Выбор нелинейного фильтра может уменьшить количество адаптивных параметров фильтра 311 увеличения четкости. В частности, нелинейный фильтр может использовать только один адаптивный параметр, так что служебная нагрузка сигнализации закодированного битового потока видео уменьшается. Хотя настоящее изобретение также охватывает использование более чем одного адаптивного параметра для управления фильтром 311 увеличения четкости, особенно предпочтительным является вариант осуществления фильтра увеличения четкости, использующего только один адаптивный параметр.
В частности, фильтр 311 увеличения четкости содержит модуль 801, 802 вычисления краевой карты, фильтр 804 размытия, фильтр 805 верхних частот, модуль 806 масштабирования и модуль 807 деформации.
Модуль 801, 802 вычисления краевой карты адаптирован, чтобы генерировать краевую карту исходного блока, причем упомянутый исходный блок является опорным блоком или блоком предсказания. Фильтр 804 размытия адаптирован для размытия краевой карты исходного блока. Фильтр 805 верхних частот адаптирован, чтобы генерировать, посредством фильтрации верхних частот размытой краевой карты, вектора производной (d2x, d2y) для каждого положения исходного блока. Модуль 806 масштабирования адаптирован, чтобы генерировать вектор смещения (wx, wy) путем масштабирования вектора производной (d2x, d2y) с коэффициентом k степени увеличения четкости. Модуль 807 деформации адаптирован, чтобы деформировать блок предсказания на основе вектора смещения (wx, wy).
Таким образом, адаптивным параметром, управляющим фильтром 800 увеличения четкости, является коэффициент k степени увеличения четкости. Фильтр 800 увеличения четкости, показанный на фиг. 8, представляет собой вариант осуществления настоящего изобретения только с одним адаптивным параметром.
Модуль 801, 802 вычисления краевой карты может содержать модуль 801 вектора градиента, приспособленный генерировать вектор градиента (dx, dy) для каждого положения исходного блока, и модуль 802 длины вектора градиента, приспособленный вычислять длину вектора градиента (dx, dy) каждого положения, чтобы генерировать краевую карту исходного блока. Таким образом, эта структура позволяет генерировать краевую карту, которая может быть дополнительно обработана фильтром размытия, фильтром верхних частот и модулем масштабирования для генерации вектора смещения деформации.
Вектор градиента можно получить путем взятия первой производной отдельно для dx и dy, т.е. отдельно как для горизонтального, так и для вертикального направления исходного блока, называемого блоком предсказания движения на фиг. 8, путем применения соответствующего фильтра Прюитт (Prewitt) в соответствии со следующими уравнениями:
Краевая ката может быть получена модулем 802 длины вектора градиента путем вычисления длины вектора градиента в соответствии со следующим уравнением:
Предпочтительно, фильтр 311 увеличения четкости содержит модуль 803 ограничения, адаптированный для ограничения краевой карты исходного блока, причем упомянутый модуль 803 ограничения расположен между модулем 801, 802 вычисления краевой карты и фильтром 804 размытия. Таким образом, ограничение краевой карты с порогами является предпочтительным в том, что оно предотвращает обработку экстремально высоких и низких значений векторов деформации.
Этап размытия ограниченной краевой карты может быть получен с помощью фильтра 804 размытия в виде гауссова фильтра, который может быть определен следующим образом:
Фильтр верхних частот используется для получения, отдельно для d2x и d2y, второй производной, например, в соответствии с нижеследующим:
Вектор смещения (wx, wy) получается путем масштабирования вектора второй производной (d2x, d2y) с коэффициентом k, причем коэффициент k может рассматриваться в качестве степени увеличения четкости в соответствии со следующими уравнениями:
Модуль 807 деформации включает в себя интерполяционный фильтр, который является, например, билинейным интерполяционным фильтром для получения значений выборок в дробно-пиксельных положениях. Модуль 807 деформации использует вектор смещения, генерируемый модулем 806 масштабирования. Таким образом, общее качество видеокодера улучшается, в то же время обеспечивая интерполяцию опорного кадра/блока на желательных дробно-пиксельных положениях.
Модуль 808 вычитания адаптирован, чтобы формировать разность между блоком предсказания с увеличенной четкостью, сгенерированным модулем 807 деформации, и текущим блоком, причем упомянутый текущий блок соответствует блоку, который должен быть закодирован. Модуль 808 вычитания фактически генерирует остаточный блок. Фильтр 311 увеличения четкости адаптирован, чтобы находить оптимальную степень k увеличения четкости, например, путем минимизации остаточного блока или с помощью критерия стоимости, основанного, например, на скорости-искажении.
Видеодекодер 400 содержит адаптивный фильтр увеличения четкости, который аналогичен адаптивному фильтру 311 увеличения четкости видеокодера 200, показанного на фиг. 8. Разница между адаптивными фильтрами увеличения четкости видеокодера 200 и видеодекодера 300 предпочтительно состоит в модуле 808 вычитания и в этой минимизации остаточного блока.
В видеодекодере 400, адаптивный параметр, например коэффициент k, не устанавливается посредством модуля 808 вычитания и минимизации остаточного блока. Вместо этого, адаптивный параметр устанавливается в видеодекодере 400 предпочтительно в зависимости от дробной части вектора движения в соответствии с шаблоном интерполяционного фильтра.
Фильтр 400 увеличения четкости содержит деформирование на основе вектора смещения, вычисленного из исходного блока, причем исходный блок указывается на фиг. 8 как блок предсказания движения.
В соответствии с вариантом осуществления, не показанным на фиг. 8, исходный блок является опорным блоком опорного кадра, сохраненного в буфере 207 кадров, так что вектор смещения (wx, wy) выводится из опорного блока. Таким образом, опорный блок используется в качестве исходного блока для получения векторов смещения, которые также называются векторами смещения увеличения четкости или векторами смещения деформации. Затем деформация применяется к блоку предсказания с использованием полученного вектора смещения. Этот вариант осуществления является предпочтительным, поскольку он сберегает вычислительные ресурсы на стороне кодера.
Согласно альтернативному варианту осуществления, показанному на фиг. 8, исходный блок является блоком предсказания, генерируемым модулем 210 предсказания, так что вектор смещения (wx, wy) выводится из блока предсказания.
Таким образом, выбор блока предсказания в качестве исходного блока позволяет вычислять подходящие векторы смещения для выполнения деформации блока предсказания. Кроме того, для фильтра увеличения четкости тогда требуется только один вход для блока предсказания, а второй вход для опорного блока не требуется.
В отношении варианта осуществления, изображенного на фиг. 8, фильтр увеличения четкости может управляться только одним коэффициентом, например, степенью k увеличения четкости. Это облегчает процесс адаптации и требует меньше битов сигнализации для передачи, чем обычные линейные адаптивные фильтры на основе фильтра Винера. Использование нелинейного фильтра увеличения четкости вместо известных линейных фильтров также является более предпочтительным для удаления артефактов, вызванных фильтром интерполяции движения и квантованием опорного изображения.
Фиг. 9 показывает шаблон интерполяционного фильтра для интерполяционного фильтра размытия в соответствии с вариантом осуществления настоящего изобретения. Шаблон интерполяционного фильтра, показанный на фиг. 9, определяет, для каждого одного из цело-пиксельного положения и дробно-пиксельных положений, что ассоциированный интерполяционный фильтр является интерполяционным фильтром 302 размытия. Кроме того, шаблон, изображенный на фиг. 9, определяет, для каждого пиксельного положения, значение адаптивного параметра, например значение коэффициента σ размытия.
Дробное пространство векторов движения содержит определенные пиксельные положения. В современных видеокодеках, таких как H.264/AVC и H.265/HEVC, вектор движения, как правило, имеет разрешение ¼ пиксела в обоих измерениях X и Y. На фиг. 9 показан вариант осуществления настоящего изобретения в соответствии с таким разрешением в ¼ пиксела. Это разрешение подразумевает в общей сложности 4×4=16 возможных положений. Эти возможные положения включают одно целочисленное положение, идентифицированное как квадрат 'a', а также 15 дробных положений b, c, d, e, f, g, h, i, j, k, l, m, n, o, p. Дробные положения содержат 3 ½-пиксельных положений, обозначенных как круги c, i, k, а также 12 ¼-пиксельных положений, обозначенных как соответствующие треугольники. Шаблон определяет для каждого положения значение σ1, …, σ16 для коэффициента σ размытия.
Шаблон интерполяционного фильтра, показанный на фиг.9, может быть добавлен кодером 200 в качестве информации сигнализации в закодированный битовый поток видео и может быть соответственно получен декодером 400 из упомянутого закодированного битового потока видео. Выполнение интерполяции в соответствии с шаблоном интерполяционного фильтра, показанным на фиг. 9, означает, что вместо использования обычного фиксированного фильтра с резким откликом на ступенчатое воздействие, для интерполяции применяется интерполяционный фильтр размытия. Коэффициент σi размытия, ассоциированный с дробным положением, используется в качестве адаптивного коэффициента для адаптивного интерполяционного фильтра размытия.
Коэффициенты σi могут быть постоянными и предварительно определенными на основе офлайн-обучения или выбранными, например, на основе предыдущих экспериментов кодирования. Допустимо иметь тот же самый коэффициент σi размытия в разных дробных положениях шаблона. Коэффициенты σi также могут быть переменными и адаптивными на уровне последовательности, уровне GOP, уровне кадра или уровне области. В этом случае требуется дополнительная сигнализация.
Фиг. 10 показывает шаблон интерполяционного фильтра для фильтра увеличения четкости в соответствии с вариантом осуществления настоящего изобретения.
Шаблон интерполяционного фильтра согласно фиг. 10 аналогичен шаблону согласно фиг. 9 и определяет, для каждого одного из цело-пиксельного положения и дробно-пиксельных положений, что ассоциированный интерполяционный фильтр является фильтром 311 увеличения четкости. Кроме того, вместо определения коэффициента σ размытия интерполяционного фильтра размытия, упомянутый шаблон интерполяционного фильтра согласно фиг. 10 определяет, для каждого пиксельного положения, значение адаптивного параметра, например значение коэффициента k степени увеличения четкости.
Аналогично фиг. 9, коэффициенты ki могут быть постоянными и предварительно определенными на основе офлайн-обучения или выбранными, например, на основе предыдущих экспериментов кодирования. Допустимо иметь тот же самый коэффициент ki увеличения четкости в разных дробных положениях. Коэффициенты ki также могут быть переменными и адаптивными на уровне последовательности, уровне GOP, уровне кадра или уровне области. В этом случае требуется дополнительная сигнализация.
Фиг. 11 показывает шаблон интерполяционного фильтра в соответствии с еще одним вариантом осуществления настоящего изобретения.
Шаблон, показанный на фиг. 11, фактически представляет собой шаблон смешанного интерполяционного фильтра, который содержит все три типа интерполяционных фильтров. Некоторые дробно-пиксельные положения b, e, f, g, h, j, n имеют ассоциированный параметр σ размытия, что означает, что для этих положений должен применяться интерполяционный фильтр 302 с соответствующим параметром σ1,…, σ7 фильтра.
Некоторые другие пиксельные положения l, o, p имеют ассоциированный параметр k степени увеличения четкости, что означает, что после интерполяции с помощью фильтра 303 с отводами, то есть обычного фиксированного фильтра с отводами, должен применяться адаптивный фильтр 311 увеличения четкости с соответствующим значением параметра kl, k2, k3.
Некоторые другие пиксельные положения a, c, d, i, k, m не имеют ассоциированного параметра, т. е. шаблон интерполяционного фильтра не ассоциирует никакого значения параметра с этими положениями. Это интерпретируется декодером 400 таким образом, что для этих положений используется фильтр 303 с отводами, то есть обычный линейный интерполяционный фильтр.
За счет смешивания всех типов интерполяции в одном шаблоне интерполяционного фильтра, кодер может теперь выбрать наиболее подходящую интерполяцию для каждого конкретного случая адаптивно к содержимому изображения.
В вариантах осуществления, показанных на фиг. 9, 10 и 11, дробное положение вектора движения может, таким образом, определять в типе интерполяционного фильтра, а также для интерполяционного фильтра 302 размытия и для фильтра 311 увеличения четкости адаптивный параметр определенного типа интерполяционного фильтра. Шаблон интерполяционного фильтра должен быть известен как кодеру, так и декодеру. Он может быть предварительно определенным или адаптивным и может передаваться как вспомогательная информация, то есть как информация сигнализации закодированного битового потока видео.
На фиг. 12 показан вариант осуществления настоящего изобретения с различными шаблонами интерполяционных фильтров.
Для некоторых областей кадра, использование интерполяционного фильтра 302 размытия или фильтра 311 увеличения четкости может не потребоваться. В таком случае лучше использовать фильтр 303 c отводами для всех дробных точек. В других областях кадра, может быть оптимальным применение интерполяционного фильтра 302 размытия или фильтра 311 увеличения четкости.
Чтобы охватить эти варианты, предлагается определить несколько различных шаблонов интерполяционных фильтров для некоторых локальных областей кадра, выбрать наилучший шаблон интерполяционного фильтра, например, на основе критерия стоимости, такого как оптимизация скорости-искажения, и сигнализировать декодеру 400, какой шаблон интерполяционного фильтра следует использовать для интерполяции движения в данной области.
Соответственно, на фиг. 12 показан кадр, содержащий несколько областей, при этом, например, используются два разных шаблона интерполяционного фильтра. Первый шаблон, обозначенный как 'шаблон 0 интерполяции' определяет, что фильтр 303 c отводами, то есть обычный фиксированный интерполяционный фильтр, должен использоваться для каждого пиксельного положения, тогда как второй шаблон, обозначенный как 'шаблон 1 интерполяции', представляет собой шаблон смешанного интерполяционного фильтра, как показано на фиг. 11.
В варианте осуществления, показанном на фиг. 12, кодер 200 выбирает первый шаблон для двух областей и второй шаблон для остальных четырех областей кадра. Во время процесса кодирования наилучший шаблон интерполяционного фильтра может выбираться для каждой конкретной области - например, для каждой наибольшей единицы кодирования (LCU) - и может сигнализироваться декодеру в одном бите, причем упомянутый бит определяет первый или второй шаблон интерполяционного фильтра.
Настоящее изобретение было описано во взаимосвязи с различными вариантами осуществления в качестве примеров, а также реализаций. Однако другие варианты могут быть понятны специалистам в данной области и могут быть осуществлены в соответствии с заявленным изобретением на основе изучения чертежей, настоящего раскрытия и независимых пунктов формулы изобретения. В формуле изобретения, а также в описании слово ʺсодержащийʺ не исключает других элементов или этапов, а указание единственного числа не исключает множественности. Одиночный элемент или другой модуль может выполнять функции нескольких объектов или элементов, указанных в формуле изобретения. Тот факт, что определенные признаки перечислены во взаимно различных зависимых пунктах формулы изобретения, не указывает на то, что комбинация этих признаков не может использоваться в выгодной реализации.