УСТРОЙСТВО И СПОСОБ КОМПЕНСАЦИИ ДВИЖЕНИЯ В ВИДЕО
DEVICE AND METHOD OF MOTION COMPENSATION IN VIDEO

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение в общем относится к области обработки видеоинформации и к устройству для компенсации движения в видео и, в частности, относится к видеокодеру и к видеодекодеру для поддержки компенсации движения для предсказания кадров в видео. Настоящее изобретение дополнительно относится к способу кодирования и к способу декодирования видеопотока с использованием компенсации движения. Наконец, настоящее изобретение относится к компьютерной программе, имеющей программный код для выполнения такого способа.
УРОВЕНЬ ТЕХНИКИ
В области обработки видеоинформации и, в частности, в области гибридного кодирования и сжатия видеоинформации, как известно, используется интер- и интра-предсказание, а также кодирование с преобразованием. Такие гибридные технологии видеокодирования используются в известных стандартах сжатия видеоинформации, таких как H.261, H.263, MPEG-1, 2, 4, H.264/AVC или H.265/HEVC.
Фиг. 1 показывает видеокодер в соответствии с существующим уровнем техники. Видеокодер 100 содержит вход для приема входных блоков кадров или изображений видеопотока и выход для генерации кодированного битового видеопотока. Видеокодер 100 выполнен с возможностью применения предсказания, преобразования, квантования и энтропийного кодирования к видеопотоку. Преобразование, квантования и энтропийное кодирование выполняются, соответственно, модулем 101 преобразования, модулем 102 квантования и модулем 103 энтропийного кодирования для генерации в качестве выхода кодированного битового видеопотока.
Видеопоток соответствует множеству кадров, при этом каждый кадр разбит на блоки определенного размера, которые являются либо интра-кодированными, либо интер-кодированными. Блоки, например, первого кадра видеопотока являются интра-кодированными посредством модуля 109 интра-предсказания. Интра-кадр кодируется с использованием информации только в пределах этого кадра, поэтому он может быть независимо декодирован, и он может обеспечить точку входа в битовом потоке для произвольного доступа. Блоки других кадров видеопотока являются интер-кодированными посредством модуля 110 интер-предсказания: информация из кодированных кадров, которые называют опорными кадрами, используется для уменьшения временной избыточности, так что каждый блок интер-кодированного кадра предсказывается из блока такого же размера в опорном кадре. Модуль 108 выбора режима выполнен с возможностью выбора, должен ли блок кадра обрабатываться модулем 109 интра-предсказания или модулем 110 интер-предсказания.
Для выполнения интер-предсказания кодированные опорные кадры обрабатываются модулем 104 обратного квантования, модулем 105 обратного преобразования, модулем 106 контурной фильтрации для получения опорных кадров, которые затем сохраняются в буфере 107 кадров. В частности, опорные блоки опорного кадра могут обрабатываться этими модулями для получения реконструированных опорных блоков. Реконструированные опорные блоки затем снова собираются в опорный кадр.
Модуль 110 интер-предсказания имеет в качестве входной информации текущий кадр или изображение, которое должно быть интер-кодировано, и один или несколько опорных кадров или изображений из буфера 107 кадров. Оценка движения и компенсация движения применяются модулем 110 интер-предсказания. Оценка движения используется для получения вектора движения и опорного кадра на основе некоторой функция стоимости. Компенсация движения затем описывает текущий блок текущего кадра с точки зрения преобразования опорного блока опорного кадра в текущий кадр. Модуль 110 интер-предсказания выводит блок предсказания для текущего блока, при этом упомянутый блок предсказания минимизирует разность между текущим блоком, который должен быть кодирован, и его блоком предсказания, то есть минимизирует остаточный блок. Минимизация остаточного блока основана, например, на процедуре оптимизации отношения скорости к искажениям.
Разность между текущим блоком и его предсказанием, то есть остаточный блок, затем преобразуется модулем 101 преобразования. Коэффициенты преобразования квантуются и подвергаются энтропийному кодированию с помощью модуля 102 квантования и модуля 103 энтропийного кодирования. Сгенерированный таким образом кодированный битовый поток видеоинформации содержит интра-кодированные блоки и интер-кодированные блоки.
Такое гибридное видеокодирование содержит предсказание с компенсацией движения в комбинации с кодированием с преобразованием ошибки предсказания. Для каждого блока оцененный вектор движения также передается как данные сигнализации в кодированном битовом потоке видеоинформации. Существующие стандарты H.264/AVC и H.265/HEVC основаны на ¼-пиксельном разрешении смещения для вектора движения. Чтобы оценить и компенсировать смещения на дробную часть пикселя, опорный кадр должен быть интерполирован на положения дробных частей пикселей. Для получения такого интерполированного кадра на положения дробных пикселей, в модуле 110 интер-предсказания используется интерполяционный фильтр.
Качество интерполированного кадра сильно зависит от свойств используемого интерполяционного фильтра. Короткоотводные фильтры, например, билинейные фильтры, могут подавлять высокие частоты и делать интерполированный кадр размытым. Другие фильтры, такие как длинноотводные фильтры, могут сохранять высокие частоты, но генерировать некоторые артефакты ложного оконтуривания в окрестности резких границ. Другая проблема состоит в том, что компенсация движения использует ранее кодированный и реконструированный кадр в качестве опорного кадра: опорный кадр может содержать артефакты, вызванные квантованием коэффициента преобразования, что называется эффектом Гиббса. Из-за этих артефактов также могут быть искажены границы, а также область вокруг границ.
В предшествующем уровне техники известно, что качество границ может быть повышено путем применения постфильтра повышения резкости или устранения размытости к декодируемому кадру. Проблема такой конструкции с постфильтрацией состоит в том, что фильтр повышения резкости не включен в процесс кодирования. Таким образом, эффект фильтра повышения резкости не может быть учтен во время процедуры оптимизации отношения скорости к искажениям. Это может приводить к уменьшению объективных показателей качества, таких как пиковое отношение сигнал-шум (PSNR).
Для увеличения объективного качества в предшествующем уровне техники также известно включение фильтра повышения резкости в модуль 106 контурной фильтрации. Соответственно, фильтр повышения резкости применяется к реконструированному опорному кадру и может улучшить предсказание с компенсацией движения путем устранения артефактов сжатия в опорном кадре. Однако такая методика контурной фильтрации не может устранить артефакты, вызванные фильтром интерполяции движения.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Рассмотрев упомянутые выше недостатки и проблемы, настоящее изобретение направлено на улучшение существующего уровня техники. В частности, задачей настоящего изобретения является обеспечение видеокодера, способа кодирования, видеодекодера и способа декодирования для улучшенного кодирования и декодирования видеопотока последовательных кадров.
Настоящее изобретение, в частности, предназначено для улучшения качества кодирования с интер-предсказанием. В частности, изобретение предназначено для устранения артефактов, вызванных оценкой движения и компенсацией движения. В частности, задачей настоящего изобретения является уменьшение отрицательных эффектов фильтра интерполяции движения, то есть уменьшение отрицательных эффектов интерполяции опорного кадра на положения дробных пикселей, а также улучшение качества предсказания путем уменьшения артефактов квантования опорного кадра.
Решение упомянутой выше задачи настоящего изобретения обеспечено в прилагаемых независимых пунктах формулы изобретения. Выгодные реализации настоящего изобретения дополнительно определяются в соответствующих зависимых пунктах формулы изобретения.
Первый аспект настоящего изобретения обеспечивает видеокодер для кодирования с предсказанием видеопотока последовательных кадров в соответствии с компенсацией движения в кодированный битовый видеопоток. Видеокодер содержит буфер кадров, выполненный с возможностью сохранения по меньшей мере одного опорного кадра видеопотока, причем упомянутый опорный кадр отличается от текущего кадра видеопотока. Видеокодер содержит модуль интер-предсказания, выполненный с возможностью генерации блока предсказания текущего блока текущего кадра из опорного блока опорного кадра. Видеокодер содержит настраиваемый фильтр повышения резкости, выполненный с возможностью настраиваемой фильтрации блока предсказания.
Таким образом, применение настраиваемого фильтра повышения резкости к блоку предсказания улучшает кодирование с интер-предсказанием тем, что это устраняет или по меньшей мере уменьшает артефакты ложного оконтуривания, вызванные интерполяцией опорного кадра/блока на положения с дробными пикселями, то есть вызванные фильтром интерполяции движения, при этом, к выгоде, сохраняя качественно интерполированные границы. Также это устраняет или по меньшей мере уменьшает артефакты ложного оконтуривания, также называемые эффектом Гиббса, вызванные квантованием коэффициентов преобразования в опорном блоке. Дополнительно это уменьшает размытость границ, вызванную квантованием и интерполяцией движения, а также уменьшает размытость границ, вызванную размытостью изображения движущегося объекта. Дополнительно настоящее изобретение увеличивает субъективное качество границ в реконструированном кадре/блоке.
Таким образом, размещение фильтра повышения резкости в соответствии с изобретением после фильтра интерполяции движения, то есть после модуля интер-предсказания, вызывает выполнение фильтром повышения резкости задачи контурных опорных фильтров, то есть модуля контурной фильтрации, при этом одновременно могут быть устранены или по меньшей мере уменьшены артефакты, вызванные фильтрацией интерполяции движения. Кроме того, использование настраиваемого фильтра повышения резкости позволяет приспособиться к локальным особенностям содержания видеоинформации и, в частности, блока предсказания, так что кодирование даже небольших блоков требует лишь уменьшенных издержек сигнализации для передачи декодеру.
В одной форме реализации видеокодера в соответствии с первым аспектом видеокодер содержит модуль управления. Настраиваемый фильтр повышения резкости выполнен управляемым с помощью по меньшей мере одного настраиваемого параметра. Модуль управления выполнен с возможностью определения значения настраиваемого параметра и предоставления определенного значения параметра в настраиваемый фильтр повышения резкости.
Таким образом, блок предсказания фильтруется с помощью фильтра повышения резкости, который может быть настроен под конкретное содержание видеоинформации. Настройка может учитывать локальные особенности содержания видеоинформации, и необходимые издержки сигнализации могут быть ограничены из-за использования параметрического представления настраиваемого фильтра повышения резкости только с одним коэффициентом для настройки и передачи. В частности, размер блоков, используемых для кодирования с предсказанием, может быть уменьшен без одновременного увеличения издержек сигнализации.
В дополнительной форме реализации видеокодера в соответствии с первым аспектом модуль управления выполнен с возможностью предоставления различных значений для настраиваемого параметра и выбора одного из различных значений параметра на основе минимизации остаточного блока, причем упомянутый остаточный блок является разностью между текущим блоком и блоком предсказания, или на основе критерия стоимости, такого как, например, оптимизация отношения скорости к искажениям.
Таким образом, компенсация движения может быть дополнительно улучшена. Остаточные блоки, полученные для различных значений по меньшей мере одного настраиваемого параметра, могут сравниваться. Путем выбора блока предсказания, который минимизирует остаточный блок или который минимизирует критерий стоимости, может быть улучшена компенсация движения. Значение параметра, соответствующее выбранному блоку предсказания, затем выбирается из числа различных значений параметра для улучшения компенсации движения.
В дополнительной форме реализации видеокодера в соответствии с первым аспектом фильтр повышения резкости является нелинейным фильтром.
Таким образом, это использование такого нелинейного фильтра повышения резкости является предпочтительным для улучшения предсказания движения. Традиционные методики усиления границ, основанные на фильтрах линейного повышении резкости или устранения размытости, такие как методы нерезкого маскирования, могут увеличить субъективно оцениваемое качество, но не могут подавить артефакты ложного оконтуривания, вызванные фильтрацией интерполяции движения. Также было обнаружено, что в большинстве случаев такое линейное повышение резкости может даже увеличить ложное оконтуривание и уменьшить объективные рабочие показатели. С другой стороны, нелинейные фильтры могут обеспечить улучшенные результаты для устранения ложного оконтуривания и, таким образом, являются выгодными. Кроме того, использование нелинейной конструкции для фильтра повышения резкости, то есть для настраиваемого фильтра повышения резкости, может к выгоде сократить число настраиваемых параметров и, таким образом, издержки сигнализации.
В дополнительной форме реализации видеокодера в соответствии с первым аспектом фильтр повышения резкости содержит модуль вычисления карты границ, выполненный с возможностью генерации карты границ исходного блока, причем упомянутый исходный блок является опорным блоком или блоком предсказания. Фильтр повышения резкости содержит фильтр повышения размытости, выполненный с возможностью увеличения размытости карты границ исходного блока. Фильтр повышения резкости содержит фильтр верхних частот, выполненный с возможностью генерации, путем высокочастотной фильтрации размытой карты границ, вектора производной для каждого положения исходного блока. Фильтр повышения резкости содержит модуль масштабирования, выполненный с возможностью генерации вектора смещения путем масштабирования вектора производной коэффициентом степени повышения резкости. Фильтр повышения резкости содержит модуль деформирования, выполненный с возможностью деформирования блока предсказания на основе вектора смещения. Настраиваемый параметр включает в себя коэффициент степени повышения резкости.
Таким образом, эта структура фильтра повышения резкости задает нелинейный фильтр повышения резкости, который к выгоде может обеспечить улучшенные результаты с точки зрения устранения артефактов ложного оконтуривания. Кроме того, использование коэффициента степени повышения резкости как настраиваемого параметра подразумевает, что требуется только один настраиваемый параметр, что дополнительно уменьшает издержки сигнализации.
В дополнительной форме реализации видеокодера в соответствии с первым аспектом фильтр повышения резкости всегда активирован.
В дополнительной форме реализации видеокодера в соответствии с первым аспектом видеокодер содержит модуль управления, выполненный с возможностью управления по меньшей мере одним из: выборочным пропуском настраиваемого фильтра повышения резкости или выборочным применением настраиваемого фильтра повышения резкости.
Таким образом, модуль управления может принимать решение, применять или пропускать фильтр повышения резкости. Решение затем может настраиваться для каждого конкретного случая, например, для конкретного видеопотока, который должен быть кодирован. Кроме того, фильтр повышения резкости может быть пропущен для экономии вычислительных ресурсов в видеокодере. С другой стороны, фильтр повышения резкости может быть применен, если должен быть отдан приоритет улучшению качества интерполяции и уменьшению артефактов.
В дополнительной форме реализации видеокодера в соответствии с первым аспектом модуль управления выполнен с возможностью управления по меньшей мере одним из: выборочным пропуском или выборочным применением в зависимости от функции стоимости для минимизации остаточного блока. Упомянутый остаточный блок может быть разностью между текущим блоком и блоком предсказания. Функция стоимости может быть основана, например, на оптимизации отношения скорости к искажениям.
Таким образом, возможность пропуска или применения фильтра повышения резкости может дополнительно использоваться для улучшения компенсации движения. Два остаточных блока, полученные соответственно из блока предсказания, выводимого модулем интер-предсказания, и из блока предсказания, выводимого фильтром повышения резкости, могут сравниваться с точки зрения функции стоимости. Путем выбора блока предсказания, который минимизирует остаточный блок, и путем соответствующего применения или пропуска фильтра повышения резкости может быть уменьшено количество данных и, например, количество коэффициентов преобразования, которые должны быть кодированы.
В дополнительной форме реализации видеокодера в соответствии с первым аспектом видеокодер содержит модуль кодирования, выполненный с возможностью генерации кодированного битового видеопотока. Модуль управления выполнен с возможностью передачи в модуль кодирования информации о фильтре повышения резкости, отражающей по меньшей мере одно из: выборочный пропуск или выборочное применение фильтра повышения резкости. Модуль кодирования выполнен с возможностью добавления информации о фильтре повышения резкости в кодированный битовый видеопоток.
Таким образом, при декодировании кодированного битового видеопотока можно получить эту информацию о фильтре повышения резкости и, соответственно, применять или пропускать фильтр повышения резкости на стороне декодера, чтобы гарантировать правильное декодирование.
В дополнительной форме реализации видеокодера в соответствии с первым аспектом информация о настраиваемом параметре или информация о фильтре повышения резкости добавляется на уровне блоков для каждого блока предсказания, для произвольной или правильной области кадра, на уровне кадра, на уровне GOP (группы изображений), на уровне PPS (набора параметров изображения) или на уровне SPS (набора параметров последовательности).
Таким образом, можно задать информацию о фильтре повышения резкости с желаемой гранулярностью, в результате чего может быть оптимизирована сигнализация.
В дополнительной форме реализации видеокодера в соответствии с первым аспектом настраиваемый фильтр повышения резкости содержит один настраиваемый параметр.
Таким образом, может быть дополнительно уменьшены издержки сигнализации, которые требуются для настройки и которые передаются декодеру.
Второй аспект настоящего изобретения обеспечивает способ для кодирования с предсказанием видеопотока последовательных кадров в соответствии с компенсацией движения в кодированный битовый видеопоток. Способ содержит этап, на котором сохраняют по меньшей мере один опорный кадр видеопотока, причем упомянутый опорный кадр отличается от текущего кадра видеопотока. Способ содержит этап, на котором генерируют блок предсказания текущего блока текущего кадра из опорного блока опорного кадра. Способ содержит этап, на котором выполняют настраиваемую фильтрацию блока предсказания.
Дополнительные признаки или реализации способа в соответствии со вторым аспектом изобретения могут выполнять функциональность видеокодера в соответствии с первым аспектом изобретения и его различными формами реализации.
Третий аспект настоящего изобретения обеспечивает видеодекодер для декодирования кодированного битового видеопотока, полученного путем кодирования с предсказанием видеопотока последовательных кадров в соответствии с компенсацией движения. Видеодекодер содержит буфер кадров, выполненный с возможностью хранения по меньшей мере одного опорного кадра, полученного из кодированного битового видеопотока, причем упомянутый опорный кадр отличается от текущего кадра кодированного битового видеопотока. Видеодекодер содержит модуль интер-предсказания, выполненный с возможностью генерации блока предсказания текущего блока текущего кадра из опорного блока опорного кадра. Видеодекодер содержит настраиваемый фильтр повышения резкости, выполненный с возможностью настраиваемой фильтрации блока предсказания.
Таким образом, преимущества, полученные в отношении видеокодера в соответствии с первым аспектом, также даются в отношении видеодекодера в соответствии с третьим аспектом.
В одной форме реализации видеодекодера в соответствии с третьим аспектом видеодекодер содержит модуль управления. Настраиваемый фильтр повышения резкости выполнен управляемым с помощью по меньшей мере одного настраиваемого параметра. Модуль управления выполнен с возможностью определения значения настраиваемого параметра и предоставления определенного значения параметра в настраиваемый фильтр повышения резкости.
Таким образом, фильтр повышения резкости может к выгоде настраиваться посредством по меньшей мере одного настраиваемого параметра.
В одной форме реализации видеодекодера в соответствии с третьим аспектом модуль управления выполнен с возможностью определения значения настраиваемого параметра в зависимости от информации о настраиваемом параметре, полученной из кодированного битового видеопотока.
Таким образом, настраиваемый параметр может быть получен из кодированного битового видеопотока, генерируемого видеокодером. Таким образом, может быть обеспечено, что и видеокодер, и видеодекодер выполняют одну и ту же настройку фильтра повышения резкости, и что видео, полученное видеодекодером, соответствует видео, кодированному видеокодером.
В одной форме реализации видеодекодера в соответствии с третьим аспектом видеодекодер содержит модуль управления, выполненный с возможностью управления по меньшей мере одним из: выборочным пропуском настраиваемого фильтра повышения резкости или выборочным применением настраиваемого фильтра повышения резкости.
Таким образом, решение использовать или нет модуль фильтра повышения резкости может настраиваться под каждый конкретный случай. Кроме того, фильтр повышения резкости может быть пропущен для экономии вычислительных ресурсов в видеокодере и видеодекодере. С другой стороны, фильтр повышения резкости может быть применен, если должен быть отдан приоритет улучшению качества интерполяции и уменьшению артефактов.
В одной форме реализации видеодекодера в соответствии с третьим аспектом, модуль управления выполнен с возможностью управления по меньшей мере одним из: выборочным пропуском или выборочным применением на основе информации о фильтре повышения резкости, полученной из кодированного битового видеопотока.
Таким образом, видеодекодер может настраиваться под видеокодер, который, к выгоде, может добавлять в кодированный битовый видеопоток такую информацию о фильтре повышения резкости, которая отражает включение или отключение фильтра повышения резкости на стороне видеокодера.
Дополнительные признаки или реализации видеокодера в соответствии с первым аспектом изобретения, в частности в отношении фильтра повышения резкости и его структуры, также применимы к видеодекодеру в соответствии с третьим аспектом изобретения.
Четвертый аспект настоящего изобретения обеспечивает способ для декодирования кодированного битового видеопотока, полученного с помощью кодирования с предсказанием видеопотока последовательных кадров в соответствии с компенсацией движения. Способ содержит этап, на котором сохраняют по меньшей мере один опорный кадр, полученный из кодированного битового видеопотока, причем упомянутый опорный кадр отличается от текущего кадра кодированного битового видеопотока. Способ содержит этап, на котором генерируют блок предсказания текущего блока текущего кадра из опорного блока опорного кадра. Способ содержит этап, на котором выполняют настраиваемую фильтрацию блока предсказания.
Дополнительные признаки или реализации способа в соответствии с четвертым аспектом изобретения могут осуществлять функциональность видеодекодера в соответствии с третьим аспектом изобретения и его различными формами реализации.
Пятый аспект настоящего изобретения обеспечивает компьютерную программу, имеющую программный код для выполнения такого способа кодирования и/или декодирования, когда компьютерная программа выполняется на вычислительном устройстве.
Изобретение предлагает улучшение компенсации движения путем применения настраиваемого фильтра повышения резкости к сигналу предсказания движения то есть к блокам предсказания. Предлагается улучшить компенсацию движения путем сокращения артефактов ложного оконтуривания и путем увеличения резкости границ в блоках предсказания движения. Предлагается применять фильтр повышения резкости как фильтр предсказания, размещенный и в кодере, и в декодере для улучшения компенсации движения. Может использоваться нелинейный фильтр предсказания с повышением резкости для улучшения компенсации движения.
Следует отметить, что все устройства, элементы, модули и средства, описанные в настоящей заявке, могут быть реализованы как программные или аппаратные элементы или любой вид их комбинации. Все этапы, которые выполняются различными объектами, описанными в настоящей заявке, а также описанные функциональные возможности, которые должны выполнять различные объекты, означают, что соответствующий объект выполнен с возможностью выполнения соответствующих этапов и функциональных возможностей. Даже если в следующем ниже описании конкретных вариантов осуществления конкретная функциональная возможность или этап полностью формируется внутренними объектами, не отраженными в описании конкретного детализированного элемента этого объекта, который выполняет этот конкретный этап или функциональную возможность, специалисту в области техники должно быть понятно, что эти способы и функциональные возможности могут быть реализованы как соответствующие программные или аппаратные элементы или любой вид их комбинации.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Приведенные выше аспекты и формы реализации настоящего изобретения будут объяснены в следующем ниже описании конкретных вариантов осуществления в отношении прилагаемых чертежей, на которых:
фиг. 1 показывает видеокодер в соответствии с существующим уровнем техники,
фиг. 2 показывает видеокодер в соответствии с одним вариантом осуществления настоящего изобретения,
фиг. 3 показывает видеодекодер в соответствии с одним вариантом осуществления настоящего изобретения,
фиг. 4 показывает вариант осуществления фильтра повышения резкости в соответствии с настоящим изобретением,
фиг. 5 показывает способ видеокодирования в соответствии с одним вариантом осуществления настоящего изобретения,
фиг. 6 показывает способ декодирования видеоинформации в соответствии с одним вариантом осуществления настоящего изобретения,
фиг. 7 показывает настройку повышения резкости в соответствии с одним вариантом осуществления настоящего изобретения, и
фиг. 8 показывает возможные варианты осуществления для настройки повышения резкости, показанной на фиг. 7.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Фиг. 2 показывает видеокодер в соответствии с одним вариантом осуществления настоящего изобретения и, в частности, видеокодер 200 для кодирования с предсказанием видеопотока последовательных кадров в соответствии с компенсация движения в кодированном битовом видеопотоке.
Видеокодер 200 содержит, в частности, буфер 207 кадров, модуль 210 интер-предсказания и фильтр 211 повышения резкости.
Буфер 207 кадров выполнен с возможностью хранения по меньшей мере одного опорного кадра или изображения видеопотока. Упомянутый опорный кадр отличается от текущего кадра видеопотока. В частности и в контексте этого изобретения, текущий кадр является кадром видеопотока, который в настоящий момент кодируется, в то время как опорный кадр является кадром видеопотока, который уже был закодирован. В дальнейшем любая ссылка на признак «кадр» может быть заменена ссылкой на признак «изображение».
Модуль 210 интер-предсказания выполнен с возможностью генерации блока прогнозирования текущего блока текущего кадра из опорного блока опорного кадра. Опорный кадр предпочтительно является опорным кадром, сохраненным в буфере 207 кадров, в то время как текущий блок предпочтительно соответствует входным данным видеокодера 200, называемым видеоблоком на фиг. 2. В частности, текущий кадр кодируется с использованием методики интер-кодирования, то есть текущий кадр предсказывается по меньшей мере из одного опорного кадра, который отличается от текущего кадра. Опорный кадр может быть предыдущим кадром, то есть кадром, который расположен до текущего кадра в видеопотоке последовательных кадров. Альтернативно, если используется прямое предсказание, опорный кадр может быть будущим кадром, то есть кадром, который расположен после текущего кадра. В случае нескольких опорных кадров по меньшей мере один из них может быть таким предыдущим кадром, и по меньшей мере один из них может быть таким будущим кадром. Опорный кадр может быть интра-кодированным, то есть может быть кодирован без использования каких-либо дополнительных кадров и без какой-либо зависимости от других кадров, так что он может быть декодирован независимым образом, и он может служить точкой входа для произвольного доступа к видеоинформации.
В частности, модуль 210 интер-предсказания выполнен с возможностью выполнения оценки движения путем генерации вектора движения и оценки движения между опорным блоком опорного кадра и текущим блоком текущего кадра. Упомянутая оценка движения выполняется во время кодирования для нахождения вектора движения, указывающего на лучший опорный блок в опорном кадре, на основе некоторой функции стоимости, являющейся, например, оптимизацией отношения скорости к искажениям. Помимо оценки движения модуль 210 интер-предсказания дополнительно выполнен с возможностью выполнения компенсации движения путем генерации блока предсказания для текущего блока на основе вектора движения и опорного блока.
В частности, предсказание движения содержит модуль оценки движения и модуль компенсации движения. Вектор движения генерируется с использованием модуля оценки движения. Опорный блок и текущий блок предпочтительно являются соответствующей областью или подобластью опорного кадра и текущего кадра. Такой блок может иметь правильную форму, например, прямоугольную форму, или неправильную форму. Альтернативно, блоки могут иметь такой же размер, как кадры. Текущий блок и опорный блок имеют одинаковый размер. Размер блоков может задаваться посредством информации о режиме блоков, передаваемой как вспомогательная информация или данные сигнализации декодеру. Блок может соответствовать единице кодирования, которая является базовой структурой кодирования последовательности видеокадров заранее заданного размера, содержащей часть кадра, например, 64×64 пикселей.
Блок предсказания генерируется для текущего блока с учетом опорного блока. В частности, может генерироваться множество блоков предсказания для множества текущих блоков текущего кадра с учетом множества опорных блоков. Эти опорные блоки могут быть частью одного опорного кадра или могут быть выбраны из различных опорных кадров. Несколько блоков предсказания могут генерироваться для текущего кадра, и блоки предсказания, генерируемые для текущего кадра, могут объединяться для получения кадра предсказания текущего кадра.
Фильтр 211 повышения резкости является настраиваемым фильтром резкости, который выполнен с возможностью настраиваемой фильтрации блока предсказания. Таким образом, фильтр 211 повышения резкости применяется к блоку предсказания, сгенерированному модулем 210 интер-предсказания. Фильтр 211 повышения резкости, предложенный этим изобретением, добавляется после модуля 210 интер-предсказания для улучшения блока предсказания, полученного с помощью интер-предсказания, то есть полученного с помощью предсказания движения, содержащего оценку движения и компенсацию движения. Таким образом, фильтр 211 повышения резкости выполнен с возможностью генерации блока предсказания с повышенной резкостью.
Видеокодер 200, к выгоде содержит модуль 212 управления, и настраиваемый фильтр 211 повышения резкости использует (то есть выполнен управляемым с помощью) по меньшей мере один настраиваемый параметр. Модуль 212 управления выполнен с возможностью определения значения настраиваемого параметра и предоставления определенного значения параметра в настраиваемый фильтр 211 повышения резкости.
Предпочтительно, настраиваемый фильтр 211 повышения резкости использует только один настраиваемый параметр, значения которого задаются модулем 212 управления.
Модуль 212 управления может быть выполнен с возможностью определения значения параметра путем предоставления различных значений для настраиваемого параметра и выбора одного из различных значений параметра на основе минимизации остаточного блока, причем упомянутый остаточный блок является разностью между текущим блоком и блоком предсказания, или на основе критерия стоимости, то есть, например, оптимизации отношения скорости к искажениям.
Видеокодер 200, к выгоде содержит модуль 203 кодирования, выполненный с возможностью генерации кодированного битового видеопотока. Модуль 212 управления выполнен с возможностью передачи в модуль 203 кодирования информации о настраиваемом параметре об определенном значении параметра. Модуль 203 кодирования выполнен с возможностью добавления информации о настраиваемом параметре в кодированный битовый видеопоток. Это означает, что после того, как модуль 212 управления задал настраиваемый параметр равным данному значению или настраиваемые параметры равными соответствующим данным значениям, причем упомянутый модуль 212 управления передает данное значение(я) в модуль 203 кодирования, который добавляет данное значение(я) в кодированный битовый видеопоток как данные сигнализации.
Видеокодер 200 на фиг. 2 содержит дополнительные модули, аналогично видеокодеру 100 на фиг. 1, в частности, для поддержки гибридного видеокодирования. Например, видеокодер 200 содержит аналогичные модули, то есть модуль 201 преобразования, модуль 202 квантования и энтропийный кодер или модуль 203 энтропийного кодирования для, как уже известно в области техники, генерации коэффициентов преобразования через преобразование в частотную область, квантование коэффициентов и энтропийное кодирование квантованных коэффициентов, например, вместе с данными сигнализации. Входными данными модуля 201 преобразования является остаточный блок, заданный как разность между текущим блоком текущего кадра, называемым видеоблоком на фиг. 2, и блоком предсказания, выводимым модулем 210 интер-предсказания, фильтром 211 повышения резкости или модулем 209 интра-предсказания. Модуль 203 энтропийного кодирования выполнен с возможностью генерации в качестве выходных данных кодированного битового видеопотока.
Видеокодер 200 содержит дополнительные аналогичные модули, которые являются модулем 204 обратного квантования, модулем 205 обратного преобразования и модулем 206 контурной фильтрации. Квантованные коэффициенты преобразования, сгенерированные модулем 202 квантования, подвергаются обратному квантованию и обратному преобразованию соответственно модулем 204 обратного квантования и модулем 205 обратного преобразования для получения реконструированного остаточного блока, соответствующего остаточному блоку, подаваемому в модуль 201 преобразования. Реконструированный остаточный блок затем прибавляется к блоку предсказания, ранее использованному для генерации остаточного блока, для получения реконструированного текущего блока, соответствующего текущему блоку, этот реконструированный текущий блок называется реконструированным видеоблоком на фиг. 2. Реконструированный текущий блок может быть обработан модулем 206 контурной фильтрации для сглаживания артефактов, которые появились из-за поблочной обработки и квантования. Текущий кадр, который содержит по меньшей мере один текущий блок или, к выгоде, множество текущих блоков, затем может быть реконструирован из реконструированного текущего блока(ов). Этот реконструированный текущий кадр может быть сохранен в буфере 207 кадров для того, чтобы служить опорным кадром для интер-предсказания другого кадра видеопотока.
Модуль 208 выбора режима обеспечен в видеокодере 200 для выбора, аналогично фиг. 1, того, должен ли входной блок видеокодера 200 обрабатываться модулем 209 интра-предсказания или модулем 210 интер-предсказания. Модуль 208 выбора режима соответственно выбирает, должен ли блок кадра быть интра-кодирован с использованием только информации из этого кадра, или должен быть интер-кодирован с использованием дополнительной информации из других кадров, то есть по меньшей мере из одного опорного кадра, сохраненного в буфере 207 кадров.
Модуль 209 интра-предсказания отвечает за интра-предсказание и генерирует блок предсказания на основе интра-предсказания. Как упоминалось выше, модуль 210 интер-предсказания отвечает за интер-предсказание и генерирует блок предсказания, который предсказывается из блока того же самого размера в опорном кадре, чтобы уменьшить временную избыточность.
В частности, фильтр 211 повышения резкости может быть активирован всегда. Это означает, что блок предсказания, генерируемый модулем 210 интер-предсказания, всегда подается в фильтр 211 повышения резкости, и что остаточный блок всегда получается как разность текущего блока и блока предсказания с повышенной резкостью, который выводится фильтром 211 повышения резкости.
Альтернативно, фильтр 211 повышения резкости может выборочно пропускаться и/или выборочно применяться. В случае, если фильтр 211 повышения резкости применен, фильтр 211 повышения резкости генерирует блок предсказания с повышенной резкостью, и остаточный блок получается как разность текущего блока и блока предсказания с повышенной резкостью, который выводится фильтром 211 повышения резкости. В случае, если фильтр 211 повышения резкости пропускается, остаточный блок получается как разность текущего блока и блока предсказания, который выводится модулем 210 интер-предсказания.
Выборочным пропуском и/или применением фильтра 211 повышения резкости может управлять модуль 212 управления. Модуль управления может быть, например, выполнен с возможностью управления применением и/или пропуском фильтра 211 повышения резкости в зависимости от функции стоимости для минимизации остаточного блока. Функция стоимости может быть основана, например, на оптимизации отношения скорости к искажениям. Функция стоимости может быть, в частности, применена к остаточному блоку, полученному из блока предсказания, который был выведен фильтром 211 повышения резкости, и к остаточным блокам, полученным из блока предсказания, который был выведен модулем 210 интер-предсказания. В зависимости от результата функции стоимости фильтр 211 повышения резкости может быть применен или пропущен.
Решение модуля 212 управления пропустить или применить фильтр 211 повышения резкости может быть передано как данные сигнализации в кодированном битовом видеопотоке, генерируемом модулем кодирования или модулем 203 энтропийного кодирования. Модуль 212 управления передает информацию о фильтре повышения резкости в модуль 203 кодирования, причем упомянутая информация о фильтре повышения резкости отражает по меньшей мере одно из: выборочный пропуск или выборочное применение фильтра 211 повышения резкости. Модуль 203 кодирования затем добавляет информацию о фильтре повышения резкости как данные сигнализации в кодированный битовый видеопоток.
Информация о фильтре повышения резкости может быть в форме флага фильтра повышения резкости, который может принимать два значения, например, 0 и 1. Одно из этих двух значений, например 1, задает, что фильтр повышения резкости применен, в то время как другое значение задает, что фильтр повышения резкости пропускается. Альтернативно, отсутствие информации о фильтре повышения резкости может быть интерпретировано как отражение состояния пропуска фильтра повышения резкости, в то время как присутствие информации о фильтре повышения резкости может отражать состояние применения.
Гранулярность информации о настраиваемом параметре и/или информации о фильтре повышения резкости может варьироваться. Информация о фильтре повышения резкости, например, может добавляться на уровне блоков для каждого блока предсказания, для произвольной или правильной области кадра, на уровне кадра, на уровне GOP (группы изображений), на уровне PPS (набор параметров изображения) или на уровне SPS (набор параметров последовательности). Если информация о фильтре повышения резкости добавляется на уровне блоков для каждого блока предсказания, модуль 203 кодирования может добавить информацию о фильтре повышения резкости для каждого блока предсказания, генерируемого модулем 210 интер-предсказания. Модуль 203 кодирования затем добавляет к кодированному битовому видеопотоку для каждого блока предсказания соответствующие квантованные коэффициенты преобразования остатка и соответствующую информацию о фильтре повышения резкости.
Фиг. 3 показывает видеодекодер в соответствии с вариантом осуществления настоящего изобретения, и, в частности, видеодекодер 300 для декодирования кодированного битового видеопотока, полученного путем кодирования с предсказанием видеопотока последовательных кадров в соответствии с компенсацией движения.
Видеодекодер 300 содержит, в частности, буфер 307 кадров, модуль 310 интер-предсказания и настраиваемый фильтр 311 повышения резкости. Буфер 307 кадров выполнен с возможностью хранения по меньшей мере одного опорного кадра, полученного из кодированного битового видеопотока, причем упомянутый опорный кадр отличается от текущего кадра кодированного битового видеопотока. Модуль 310 интер-предсказания выполнен с возможностью генерации блока предсказания текущего блока текущего кадра из опорного блока опорного кадра. Настраиваемый фильтр 311 повышения резкости выполнен с возможностью настраиваемой фильтрации блока предсказания.
В оптимальном варианте воплощения видеодекодер 300 содержит модуль 312 управления, и настраиваемый фильтр 311 повышения резкости использует по меньшей мере один настраиваемый параметр. Модуль 312 управления выполнен с возможностью определения значения настраиваемого параметра и предоставления определенного значения параметра в настраиваемый фильтр 311 повышения резкости.
Модуль 312 управления может быть, в частности, выполнен с возможностью определения значения настраиваемого параметра в зависимости от информации о настраиваемом параметре, полученной из кодированного битового видеопотока.
Декодер 300 выполнен с возможностью декодирования кодированного битового видеопотока, сгенерированного видеокодером 200, и как декодер 300, так и кодер 200 генерируют идентичные предсказания. Признаки буфера 307 кадров, модуля 310 интер-предсказания и фильтра 311 повышения резкости аналогичны признакам буфера 207 кадров, модуля 210 интер-предсказания и фильтра 211 повышения резкости на фиг. 2.
Для обеспечения идентичных предсказаний на стороне кодера и на стороне декодера настраиваемый параметр(ы) фильтра 200 повышения резкости кодера могут передаваться декодеру 300 как данные сигнализации. Как альтернативное решение, настраиваемый параметр(ы) может быть получен на стороне декодера, не посылая соответствующие данные сигнализации. В частности, настраиваемый параметр(ы) может быть получен из окружающей области или из опорного кадра. Например, параметр(ы) может быть получен из окружающего блока в текущем кадре, например, может быть таким же, как настраиваемый параметр(ы) окружающего блока относительно текущего блока.
В частности, видеодекодер 300 может содержать дополнительные модули, которые также присутствуют в видеокодере 200, такие как, например, модуль 304 обратного квантования, модуль 305 обратного преобразования, модуль 306 контурной фильтрации и модуль 309 интра-предсказания, которые соответственно соответствуют модулю 204 обратного квантования, модулю 205 обратного преобразования, модулю 206 контурной фильтрации и модулю 209 интра-предсказания видеокодера 200. Модуль 303 энтропийного декодирования выполнен с возможностью декодирования принятого кодированного битового видеопотока и, соответственно, получения квантованных коэффициентов преобразования остатка и, если присутствует, информации о фильтре повышения резкости. Квантованные коэффициенты преобразования остатка подаются в модуль 304 обратного квантования и модуль 305 обратного преобразования для генерации остаточного блока. Остаточный блок прибавляется к блоку предсказания, и сумма подается в модуль 306 контурной фильтрации для получения декодированного видео. Кадры декодированного видео могут храниться в буфере 307 кадров и служить опорным кадром для интер-предсказания.
В частности, фильтр 311 повышения резкости может быть всегда активирован. Это означает, что блок предсказания, отфильтрованный с помощью фильтра повышения резкости, используется для получения декодированного видео.
Альтернативно, фильтр 311 повышения резкости может выборочно пропускаться или применяться, например, с помощью модуля 312 управления. Информация о фильтре повышения резкости, полученная декодером 303 из кодированного битового видеопотока, может подаваться в модуль 312 управления, который управляет пропуском и/или применением фильтра 311 повышения резкости в зависимости от информации о фильтре повышения резкости.
Информация о фильтре повышения резкости отражает пропуск или применение фильтра 311 повышения резкости и, предпочтительно, соответствует информации о фильтре повышения резкости, добавляемой видеокодером 200 к кодированному битовому видеопотоку. Различные аспекты относительно, например, формы и гранулярности информации о фильтре повышения резкости, обсуждавшиеся в отношении видеокодера 200, также применимы в отношении видеодекодера 300.
Фиг. 4 показывает вариант осуществления настраиваемого фильтра 400 повышения резкости в соответствии с настоящим изобретением и, в частности, вариант осуществления настраиваемого фильтра 211 повышения резкости видеокодера 200. Настраиваемый фильтр 311 повышения резкости видеодекодера 300 может немного отличаться от настраиваемого фильтра 211 повышения резкости, показанного на фиг. 4, разница обсуждается ниже.
Фильтр 400 повышения резкости предпочтительно является нелинейным фильтром. Использование нелинейного фильтра повышения резкости вместо линейного фильтра является предпочтительным для устранения артефактов, вызванные фильтром интерполяции движения и квантованием опорного блока или кадра. Выбор нелинейного фильтра может сократить число настраиваемых параметров фильтра 400 повышения резкости. В частности, нелинейный фильтр может использовать только один настраиваемый параметр, так что издержки сигнализации кодированного битового видеопотока уменьшаются. Хотя настоящее изобретение также охватывает использование более чем одного настраиваемого параметра для управления фильтром 400 повышения резкости, фильтр повышения резкости, использующий только один настраиваемый параметр, является особенно выгодным вариантом осуществления.
В частности, фильтр 400 повышения резкости содержит модуль 401, 402 вычисления карты границ, фильтр 404 повышения размытости, фильтр 405 верхних частот, модуль 406 масштабирования и модуль 407 деформирования.
Модуль 401, 402 вычисления карты границ выполнен с возможностью генерации карты границ исходного блока, причем упомянутый исходный блок является опорным блоком или блоком предсказания. Фильтр 404 повышения размытости выполнен с возможностью повышения размытости карты границ исходного блока. Фильтр 405 верхних частот выполнен с возможностью генерации, с помощью высокочастотной фильтрации размытой карты границ, вектора (d2x, d2y) производной для каждого положения исходного блока. Модуль 406 масштабирования выполнен с возможностью генерации вектора (wx, wy) смещения путем масштабирования вектора (d2x, d2y) производной коэффициентом k степени повышения резкости. Модуль 407 деформирования выполнен с возможностью деформирования блока предсказания на основе вектора (wx, wy) смещения.
Таким образом, настраиваемым параметром, управляющим фильтром 400 повышения резкости, является коэффициентом k степени повышения резкости. Фильтр 400 повышения резкости, показанный на фиг. 4, является одним вариантом осуществления настоящего изобретения только с одним настраиваемым параметром.
Модуль 401, 402 вычисления карты границ может содержать модуль 401 вектора градиента, выполненный с возможностью генерации вектора (dx, dy) градиента для каждого положения исходного блока, и модуль 402 длины вектора градиента, выполненный с возможностью вычисления длины вектора (dx, dy) градиента каждого положения для генерации карты границ исходного блока. Таким образом, эта структура обеспечивает генерацию карты границ, которая далее может обрабатываться фильтром повышения размытости, фильтром верхних частот и модулем масштабирования для генерации вектора смещения с деформированием.
Вектор градиента может быть получен путем взятия первой производной отдельно для dx и dy, то есть отдельно как для горизонтального, так и для вертикального направления исходного блока, называемого исходным блоком на фиг. 4, путем применения соответствующего фильтра Прюитта в соответствии со следующими уравнениями:
Карта границ может быть получена модулем 402 длины вектора градиента путем вычисления длины вектора градиента в соответствии со следующим уравнением:
В оптимальном варианте воплощения фильтр 400 повышения резкости содержит модуль 403 обрезания, выполненный с возможностью обрезания карты границ исходного блока, причем упомянутый модуль 403 обрезания расположен между модулем 401, 402 вычисления карты границ и фильтром 404 повышения размытости. Таким образом, обрезание карты границ с порогами выгодно тем, что это предотвращает обработку очень высоких и низких значений векторов деформирования.
Этап повышения размытости обрезанной карты границ может быть получен с помощью фильтра 404 повышения размытости в форме фильтра Гаусса, который может быть задан следующим образом:
Фильтр верхних частот используется для получения отдельно для d2x и d2y второй производной, например, в соответствии со следующим:
Вектор (wx, wy) смещения получается путем масштабировании вектора (d2x, d2y) второй производной коэффициентом k, при этом коэффициент k может рассматриваться как степень повышения резкости, в соответствии со следующими уравнениями:
Модуль 407 деформирования включает в себя интерполяционный фильтр, то есть, например, фильтр билинейной интерполяции, для получения значений в положениях дробных пикселей. Модуль 407 деформирования использует вектор смещения, генерируемый модулем 406 масштабирования. Таким образом, общее качество видеокодера улучшается, одновременно обеспечивая интерполяцию опорного кадра/блока на желаемые положения дробных пикселей.
Модуль 408 вычитания выполнен с возможностью построения разности между блоком предсказания с повышенной резкостью, генерированным модулем 407 деформирования, и текущим блоком, причем упомянутый текущий блок соответствует блоку, который должен быть закодирован. Модуль 408 вычитания фактически генерирует остаточный блок. Настраиваемый фильтр 400 повышения резкости или модуль 211 управления, управляющий настраиваемым фильтром 400 повышения резкости, выполнен с возможностью нахождения оптимальной степени k повышения резкости, например, путем минимизации остаточного блока или с помощью критерия стоимости на основе, например, отношения скорости к искажениям.
Разница между настраиваемыми фильтрами повышения резкости видеокодера 200 и видеодекодера 300 предпочтительно состоит в этом модуле 408 вычитания и в этой минимизации остаточного блока. В видеодекодере 300 настраиваемый параметр, то есть коэффициент k, не задается посредством модуля 408 вычитания и минимизации остаточного блока. Вместо этого настраиваемый параметр задается в видеодекодере 300 предпочтительно в зависимости от данных сигнализации, отражающих значение коэффициента k, причем упомянутые данные сигнализации являются частью кодированного битового видеопотока и задаются видеокодером 200.
Фильтр 400 повышения резкости содержит деформирование на основе вектора смещения, вычисленного из исходного блока, этот исходный блок называется на фиг. 4 как блоком предсказания движения.
В соответствии с одним вариантом осуществления, не показанным на фиг. 4, исходный блок является опорным блоком опорного кадра, сохраненного в буфере 207, 307 кадров, так что вектор (wx, wy) смещения получается из опорного блока. Таким образом, опорный блок используется в качестве исходного блока для получения векторов смещения, которые также называются векторами смещения с повышением резкости или векторами смещения с деформированием. Деформирование затем применяется к блоку предсказания с использованием полученного вектора смещения. Этот вариант осуществления выгоден тем, что он экономит вычислительные ресурсы на стороне кодера.
В соответствии с альтернативным вариантом осуществления на фиг. 4 исходный блок является блоком предсказания, сгенерированным модулем 210, 310 интер-предсказания, так что вектор (wx, wy) смещения получается из блока предсказания.
Таким образом, выбор блока предсказания как исходного блока позволяет вычислить подходящие вектора смещения для выполнения деформирования блока предсказания. Кроме того, фильтр повышения резкости затем требует только одного ввода для блока предсказания, и во втором вводе для опорного блока нет необходимости.
Фиг. 5 показывает способ видеокодирования в соответствии с одним вариантом осуществления настоящего изобретения и, в частности, способ 500 кодирования с предсказанием видеопотока последовательных кадров в соответствии с компенсацией движения в кодированном битовом видеопотоке.
Способ 500 содержит этап 501 сохранения по меньшей мере одного опорного кадра видеопотока, причем упомянутый опорный кадр отличается от текущего кадра видеопотока.
Способ 500 далее содержит этап 502 интер-предсказания, содержащий генерацию блока предсказания текущего блока текущего кадра из опорного блока опорного кадра.
Способ 500 далее содержит этап 503 настраиваемого фильтра повышения резкости, содержащий настраиваемую фильтрацию блока предсказания.
Фиг. 6 показывает способ декодирования видеоинформации в соответствии с одним вариантом осуществления настоящего изобретения и, в частности, способ 600 декодирования кодированного битового видеопотока, полученного с помощью кодирования с предсказанием видеопотока последовательных кадров в соответствии с компенсацией движения.
Способ 600 содержит этап 601 сохранения по меньшей мере одного опорного кадра, полученного из кодированного битового видеопотока, причем упомянутый опорный кадр отличается от текущего кадра кодированного битового видеопотока.
Способ 600 содержит этап 602 интер-предсказания, содержащий генерацию блока предсказания текущего блока текущего кадра из опорного блока опорного кадра.
Способ 600 содержит этап 603 настраиваемого фильтра повышения резкости, содержащий настраиваемую фильтрацию блока предсказания.
Дополнительные аспекты и признаки, описанные в отношении видеокодера 200 или видеодекодера 300, также применимы к способу 500 кодирования и способу 600 декодирования.
Фиг. 7 показывает настройку повышения резкости в соответствии с одним вариантом осуществления настоящего изобретения. Процесс настройки повышения резкости, показанный на фиг. 7, выполняется на стороне видеокодера.
Оценка настраиваемого параметра(ов) фильтра повышения резкости, а также необходимость самого повышения резкости, то есть решение применять или пропускать настраиваемый фильтр повышения резкости, может выполняться вместе с процедурой оценки движения. Фиг. 7 изображает, как настраиваемый параметр(ы) повышения резкости может быть получен во время оценки претендентов на то, чтобы быть вектором движения. Могут выполняться следующие этапы:
- взять вектор движения, который должен быть проанализирован,
- получить блок 708 с интерполяцией движения путем применения традиционного интерполяционного фильтра 709,
- выполнить настройку 707 фильтра повышения резкости для получения оптимального параметра(ов) настройки для фильтра повышения резкости,
- применить фильтр 706 повышения резкости с оптимальным параметром(ами), найденным на предыдущем этапе, для получения блока 705 предсказания с повышенной резкостью,
- принять решение или выполнить оценку 704 того, лучше ли блок предсказания с повышенной резкостью, чем блок предсказания без повышенной резкости, при этом это принятие решения/оценка основано на оптимизации отношения скорости к искажениям, и оно передается видеодекодеру посредством информации о фильтре повышения резкости, добавляемой как данные сигнализации или вспомогательная информация к кодированному битовому видеопотоку. Эта информация о фильтре повышения резкости обозначена на фиг. 7 как «повышение резкости вкл/выкл».
Если видеокодер 200 принимает решение применить предсказание с повышенной резкостью, то также информация о настраиваемом параметре, отражающая значение оптимального параметра(ов) фильтра повышения резкости, добавляется как данные сигнализации к кодированному битовому видеопотоку. Информация о настраиваемом параметре обозначена на фиг. 7 как «степень повышения резкости».
Настройка повышения резкости, показанная на фиг. 7, может применяться на различных этапах контура оценки движения. Фиг. 8 показывает три возможных варианта осуществления для интеграции процесса настройки повышения резкости в поиск вектора движения.
В варианте осуществления на фиг. 8a, настройка повышения резкости, то есть нахождение оптимального коэффициента k, выполняется для каждого возможного претендента на то, чтобы быть вектором движения. Этот вариант осуществления обеспечивает наилучшее качество за счет сложности поиска.
Соответственно, оценка 800 движения на фиг. 8a содержит настройку 803 фильтра повышения резкости для каждого претендента 801 на то, чтобы быть вектором движения. Для претендента на то, чтобы быть вектором движения, получают 802 блок предсказания, выполняют 803 настраиваемое повышение резкости и принимают решение о том, должен ли быть применен или пропущен 804 фильтр повышения резкости. Эта процедура повторяется для каждого возможного претендента на то, чтобы быть вектором движения.
В варианте осуществления на фиг. 8c настройка повышения резкости альтернативно выполняется только для одного вектора движения, то есть для наилучшего вектора движения, который найден во время оценки движения. Этот вариант осуществления выгоден тем, что он уменьшает сложность поиска. С другой стороны, найденный блок предсказания с повышенной резкостью может быть не самым лучшим.
Соответственно, оценка 820 движения на фиг. 8c содержит только один этап 825 настройки повышения резкости. На основе этой настройки 825 повышения резкости может быть принято решение, должен ли настраиваемый фильтр повышения резкости быть применен или пропущен 826. До настройки 825 повышения резкости выполняется поиск 822 целочисленного вектора движения для каждого претендента 821 на то, чтобы быть вектором движения, и выполняется поиск 824 дробного вектора движения для каждого дробного положения 823.
Вариант осуществления, показанный на фиг. 8b, представляет собой сбалансированное решение между вариантами осуществления на фиг. 8a и 8c: настройка повышения резкости выполняется только во время уточнения дробного вектора движения. В этом варианте осуществления поиск целочисленного вектора движения выполняется без настройки повышения резкости для уменьшения сложности поиска.
Соответственно, оценка 810 движения на фиг. 8b содержит поиск 812 целочисленного вектора движения, который выполняется для каждого претендента 811 на то, чтобы быть вектором движения. После завершения поиска 812 целочисленного вектора движения полученный блок предсказания интерполируется 814 для каждого дробного положения 813: настройка 815 повышения резкости выполняется для каждого блока предсказания, и для каждого блока предсказания принимается 816 решение, должен ли быть применен или пропущен фильтр повышения резкости.
Настоящее изобретение было описано в сочетании с различными вариантами осуществления как примерами, а также реализациями. Однако специалистами в области техники, реализующими на практике заявленное изобретение, могут быть поняты и реализованы другие варианты после изучения чертежей, этого раскрытия и независимых пунктов формулы изобретения. В формуле изобретения, также как и в описании, слово «содержащий» не исключает другие элементы или этапы, а единственное число не исключает множественное. Один элемент или другой модуль может выполнять функции нескольких объектов или элементов, перечисляемых в формуле изобретения. Тот факт, что некоторые критерии перечисляются во взаимно-различных зависимых пунктах формулы изобретения, не означает, что комбинация этих критериев не может быть использована в выгодной реализации.