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

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение в целом относится к области видеообработки и к устройству для компенсации движения видео, и, в частности, относится к видеокодеру и к видеодекодеру для поддержки компенсации движения с целью предсказания кадров в видео. Настоящее изобретение относится дополнительно к способу кодирования и к способу декодирования видеопотока с использованием компенсации движения. Наконец, настоящее изобретение относится к компьютерной программе, имеющей программный код для выполнения такого способа.
УРОВЕНЬ ТЕХНИКИ
В области техники видеообработки и, в частности, в области гибридного видеокодирования и сжатия известно использование внешнего и внутреннего предсказания, а также кодирования с преобразованием. Такие методики гибридного видеокодирования используются в известных стандартах видеосжатия, таких как 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 показан способ видеодекодирования согласно одному варианту осуществления настоящего изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
На Фиг.2 показан видеокодер согласно одному варианту осуществления настоящего изобретения и, в частности, видеокодер 200 для кодирования с предсказанием видеопотока последовательных кадров согласно компенсации движения в закодированный битовый видеопоток.
Видеокодер 200, в частности, содержит буфер 207 кадров, модуль 210 внешнего предсказания и увеличивающий резкость фильтр 211.
Буфер 207 кадров выполнен с возможностью хранения по меньшей мере одного опорного кадра или картинки видеопотока. Упомянутый опорный кадр отличается от текущего кадра видеопотока. В частности и в контексте изобретения, текущий кадр является кадром видеопотока, который в настоящее время кодируется, в то время как опорный кадр является кадром видеопотока, который уже был закодирован. Далее любая ссылка на признак «кадр» может быть заменена ссылкой на признак «картинка» («изображение»).
Модуль 210 внешнего предсказания выполнен с возможностью создания блока с предсказанием текущего блока текущего кадра из опорного блока опорного кадра. Опорный кадр является предпочтительно опорным кадром, хранящимся в буфере 207 кадров, в то время как текущий блок предпочтительно соответствует тому, что находится на входе видеокодера 200, называемому видеоблоком на Фиг.2. В частности, текущий кадр кодируется с использованием методики внешнего кодирования, то есть текущий кадр предсказывается из упомянутого по меньшей мере одного опорного кадра, который отличается от текущего кадра. Опорный кадр может быть предыдущим кадром, то есть кадром, который расположен перед текущим кадром внутри видеопотока последовательных кадров. Альтернативно, если используется прямое предсказание, то опорный кадр может быть будущим кадром, то есть кадром, который расположен после текущего кадра. В случае множества опорных кадров по меньшей мере один может быть таким предыдущим кадром, и по меньшей мере один из них может быть таким будущим кадром. Опорный кадр может быть внутренне закодирован, то есть может быть закодирован без использования какого-либо дальнейшего кадра и без какой-либо зависимости от других кадров, так что он может быть независимо декодирован, и он может служить точкой входа для произвольного доступа к видео.
В частности, модуль 210 внешнего предсказания выполнен с возможностью выполнения оценки движения посредством создания вектора движения и оценивая движения между опорным блоком опорного кадра и текущим блоком текущего кадра. Упомянутая оценка движения выполняется в течение кодирования с целью нахождения вектора движения, указывающего на лучший опорный блок в опорном кадре, на основе некоторой стоимостной функции, являющейся, например, оптимизацией скорости к искажениям. Помимо оценки движения модуль 210 внешнего предсказания дополнительно выполнен с возможностью выполнения компенсации движения посредством создания блока с предсказанием для текущего блока на основе вектора движения и опорного блока.
В частности, предсказание движения содержит модуль оценки движения и модуль компенсации движения. Вектор движения создается посредством использования модуля оценки движения. Опорный блок и текущий блок являются предпочтительно соответственной областью или подобластью опорного кадра и текущего кадра. Такой блок может иметь стандартную форму, как например, прямоугольная форма, или нестандартную форму. Альтернативно, блоки могут иметь один и тот же размер что и кадры. Как текущий блок, так и опорный блок имеют один и тот же размер. Размер блоков может быть задан посредством информации о режиме блоков, переданной в качестве побочной информации или данных сигнализации в декодер. Блок может соответствовать компоненту кодирования, который является базовой структурой кодирования видеопоследовательности предварительно заданного размера, содержащему часть кадра, например, 64×64 пикселей.
Блок с предсказанием создается для текущего блока с учетом опорного блока. В частности, множество блоков с предсказанием может быть создано для множества текущих блоков текущего кадра с учетом множества опорных блоков. Эти опорные блоки могут быть частью одиночного опорного кадра или могут быть выбраны из различных опорных кадров. Несколько блоков с предсказанием могут быть созданы для текущего кадра, и блоки с предсказанием, созданные для текущего кадра, могут быть объединены для получения кадра с предсказанием текущего кадра.
Увеличивающий резкость фильтр 211 выполнен с возможностью фильтрации блока с предсказанием. Увеличивающий резкость фильтр 211 таким образом применяется к блоку с предсказанием, созданному модулем 210 внешнего предсказания. Увеличивающий резкость фильтр 211, предложенный в настоящем изобретении, добавляется после модуля 210 внешнего предсказания, чтобы улучшить блок с предсказанием, полученный посредством внешнего предсказания, то есть полученный посредством предсказания движения, содержащего оценку движения и компенсацию движения. Увеличивающий резкость фильтр 211 таким образом выполнен с возможностью создания блока с предсказанием с увеличенной резкостью.
Видеокодер 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 выполнен с возможностью декодирования закодированного битового видеопотока, созданного видеокодером 200, и как декодер 300, так и кодер 200 создают идентичные предсказания. Характеристики буфера 307 кадров, модуля 310 внешнего предсказания и увеличивающего резкость фильтра 311 подобны характеристикам буфера 207 кадров, модуля 210 внешнего предсказания и увеличивающего резкость фильтра 211 на Фиг.2.
В частности, видеодекодер 300 содержит дополнительные модули, которые также присутствуют в видеокодере 200, как например, модуль 304 обратного квантования, модуль 305 обратного преобразования, модуль 306 контурной фильтрации и модуль 309 внутреннего предсказания, которые соответственно соответствуют модулю 204 обратного квантования, модулю 205 обратного преобразования, модулю 206 контурной фильтрации и модулю 209 внутреннего предсказания видеокодера 200. Модуль 303 энтропийного декодирования выполнен с возможностью декодирования принятого закодированного битового видеопотока и соответственно получения квантованных остаточных коэффициентов преобразования и, при наличии, информации об увеличивающем резкость фильтре. Квантованные остаточные коэффициенты преобразования подаются в модуль 304 обратного квантования и модуль 305 обратного преобразования для создания остаточного блока. Остаточный блок добавляется к блоку с предсказанием, и это добавление подается в модуль 306 контурной фильтрации для получения декодированного видео. Кадры декодированного видео могут быть сохранены в буфере 307 кадров и служить в качестве опорного кадра для внешнего предсказания.
В частности, увеличивающий резкость фильтр 311 может быть всегда задействован. Это означает, что модуль предсказания, отфильтрованный увеличивающим резкость фильтром, используется для получения декодированного видео.
Альтернативно, увеличивающий резкость фильтр может быть выборочно применен или обойден, например, модулем 312 управления. Информация об увеличивающем резкость фильтре, полученная модулем декодирования 303 из закодированного битового видеопотока, может подаваться в модуль 312 управления, который управляет по меньшей мере одним из выборочного обхода и выборочного применения увеличивающего резкость фильтра 311 в зависимости от информации об увеличивающем резкость фильтре.
Информация об увеличивающем резкость фильтре отражает по меньшей мере одно из выборочного обхода и выборочного применения увеличивающего резкость фильтра 311 и предпочтительно соответствует информации об увеличивающем резкость фильтре, добавленной видеокодером 200 к закодированному битовому видеопотоку. Различные аспекты относительно, например, формы и степени детализации информации об увеличивающем резкость фильтре, обсужденные по отношению к видеокодеру 200, также применимы и по отношению к видеодекодеру 300.
На Фиг.4 показан вариант осуществления увеличивающего резкость фильтра 400 согласно настоящему изобретению и, в частности, вариант осуществления увеличивающего резкость фильтра 211 видеокодера 200 или увеличивающего резкость фильтра 311 видеодекодера 300. Видеодекодер 300 имеет предпочтительно тот же самый увеличивающий резкость фильтр что и видеокодер 200, помещенный после модуля 310 внешнего предсказания.
Увеличивающий резкость фильтр 400 является предпочтительно нелинейным фильтром. Использование нелинейного увеличивающего резкость фильтра, вместо линейного фильтра, предпочтительно для удаления искажений, обусловленных интерполирующим движение фильтром и квантованием опорного блока или кадра.
В частности, увеличивающий резкость фильтр 400 содержит модуль 401, 402 вычисления карты границ, размывающий фильтр 404, фильтр 405 верхних частот, модуль 406 масштабирования и модуль 407 деформирования.
Модуль 401, 402 вычисления карты границ выполнен с возможностью создания карты границ исходного блока, причем упомянутый исходный блок является опорным блоком или блоком с предсказанием. Размывающий фильтр 404 выполнен с возможностью размывания карты границ исходного блока. Фильтр 405 верхних частот выполнен с возможностью создания, посредством фильтрации верхних частот размытой карты границ, вектора (d2x, d2y) частных производных для каждого положения исходного блока. Модуль 406 масштабирования выполнен с возможностью создания вектора (wx, wy) смещения посредством масштабирования вектора (d2x, d2y) частных производных с помощью коэффициента k интенсивности увеличения резкости. Модуль 407 деформирования выполнен с возможностью деформирования блока с предсказанием на основе вектора (wx, wy) смещения.
Модуль 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 масштабирования.
Увеличивающий резкость фильтр 400 содержит деформирование, основанное на векторе смещения, вычисленном из исходного блока, причем исходный блок упоминается на Фиг.4 в качестве исходного изображения. Согласно одному варианту осуществления исходный блок является опорным блоком опорного кадра, хранящегося в буфере 207, 307 кадров, так что вектор (wx, wy) смещения выводится из опорного блока. Согласно альтернативному варианту осуществления исходный блок является блоком с предсказанием, созданным модулем 210, 310 внешнего предсказания, так что вектор (wx, wy) смещения выводится из блока с предсказанием.
На Фиг.5 показан способ видеокодирования согласно одному варианту осуществления настоящего изобретения и, в частности, способ 500 кодирования с предсказанием видеопотока последовательных кадров согласно компенсации движения в закодированный битовый видеопоток.
Способ 500 содержит этап 501 сохранения по меньшей мере одного опорного кадра видеопотока, причем упомянутый опорный кадр отличается от текущего кадра видеопотока.
Способ 500 дополнительно содержит этап 502 внешнего предсказания, содержащий создание блока с предсказанием текущего блока текущего кадра из опорного блока опорного кадра.
Способ 500 дополнительно содержит этап 503 с увеличивающим резкость фильтром, содержащий применение увеличивающего резкость фильтра к блоку с предсказанием, таким образом фильтруя блок с предсказанием.
На Фиг.6 показан способ видеодекодирования согласно одному варианту осуществления настоящего изобретения и, в частности, способ 600 декодирования закодированного битового видеопотока, полученного посредством кодирования с предсказанием видеопотока последовательных кадров согласно компенсации движения.
Способ 600 содержит этап 601 сохранения по меньшей мере одного опорного кадра, полученного из закодированного битового видеопотока, причем упомянутый опорный кадр отличается от текущего кадра закодированного битового видеопотока.
Способ 600 содержит этап 602 внешнего предсказания, содержащий создание блока с предсказанием текущего блока текущего кадра из опорного блока опорного кадра.
Способ 600 содержит этап 603 с увеличивающим резкость фильтром, содержащий применение увеличивающего резкость фильтра к блоку с предсказанием, таким образом фильтруя блок с предсказанием.
Дополнительные варианты выполнения и признаки, описанные по отношению к видеокодеру 200 или видеодекодеру 300, также применимы к способу 500 кодирования и способу 600 декодирования.
Настоящее изобретение было описано совместно с различными вариантами осуществления в качестве примеров, а также вариантов реализации. Однако другие изменения могут быть поняты и реализованы специалистами в данной области техники и посредством осуществления на практике заявляемого изобретения, исходя из изучения чертежей, данного раскрытия и независимых пунктов формулы изобретения. В формуле изобретения, а также и в описании, слово «содержащий» не исключает других элементов или этапов, и упоминание признаков в единственном числе не исключает множественности. Одиночный элемент или другой модуль может выполнять функции нескольких объектов или элементов, приведенных в формуле изобретения. Простой факт того, что некоторые средства упоминаются во взаимно различных зависимых пунктах формулы изобретения, не указывает, что объединение этих средств не может использоваться в преимущественном варианте реализации.