ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение в целом относится к области обработки видеоизображений и к устройству для компенсации движения в видеоизображении, и конкретно относится к кодеру видео и к декодеру видео, чтобы поддерживать компенсацию движения для предсказания кадров в видеоизображении. Настоящее изобретение кроме того относится к способу для кодирования и к способу для декодирования видеопотока с использованием компенсации движения. В заключение, настоящее изобретение относится к компьютерной программе с наличием программного кода, чтобы выполнять такой способ.
УРОВЕНЬ ТЕХНИКИ
В области обработки видеоизображений, и конкретно в области гибридного кодирования и сжатия видеоизображений, является известным использование межкадрового и внутрикадрового предсказания, а также кодирования с преобразованием. Такие гибридные технологии кодирования видео используются в известных стандартах сжатия видеоизображения, подобных стандартам H.261, H.263, MPEG 1, 2, 4, H.264/AVC или HEVC.
Фиг.1 иллюстрирует кодер видео согласно уровню техники. кодер 100 видео содержит вход для приема входных изображений и выход для формирования кодированного видеопотока. Кодер 100 видео приспособлен для применения предсказания, преобразования, квантования и энтропийного кодирования к видеопоследовательности. Преобразование, квантование и энтропийное кодирование выполняются соответственно посредством модуля 101 преобразования и квантования и посредством энтропийного кодера 103. Между модулем 101 преобразования и квантования и энтропийным кодером 103 обеспечивается модуль 102 сканирования.
Видеопоследовательность соответствует множеству входных изображений (видеокадров), причем каждое изображение разделяется на блоки некоторого размера, которые кодируются либо внутрикадрово (в режиме intra), либо межкадрово (в режиме inter). Блоки первого изображения (видеокадра) видеопоследовательности кодируются внутренне (без ссылок) с помощью модуля 109 внутрикадрового предсказания. Изображение с внутренним кодированием кодируется с использованием только информации внутри того же изображения, так что оно может быть декодировано независимо, и оно может обеспечивать в битовом потоке точку входа для произвольного доступа.
Относительно изображений с межкадровым кодированием, информация из предыдущих и/или будущих кодированных изображений, называемых опорными изображениями, используется для уменьшения временной избыточности. Опорные изображения обрабатываются посредством модуля 104 обратного сканирования, обращенного квантования, обратного преобразования, посредством деблокирующего и SAO (адаптивного смещения выборки) фильтров 105 и сохраняются в буфере 106 кадров. Каждый блок изображения с межкадровым кодированием предсказывается на основе блока такого же размера в опорных изображениях.
Оценка движения применяется модулем 107 оценки движения, чтобы выбрать данные движения, такие как, например, вектор движения (MV), решение о режиме и опорные кадры. Модуль 107 оценки движения содержит в качестве входного, изображение, подлежащее внутреннему кодированию, и опорное изображение. Данные движения выбираются на основании некоторой (целевой) функции стоимости, чтобы минимизировать разность между исходным блоком и его предсказанным блоком. Модуль 110 управления кодером выбирает информацию движения, такую как вектор движения или индекс опорного кадра, на основании процедуры оптимизации по критерию «скорость кодирования - искажение».
Компенсация движения, выполняемая модулем 108 компенсации движения, использует данные движения, которые кодируются и передаются в виде дополнительной информации на декодер, чтобы формировать сигналы предсказания или сигналы кадра с компенсированным движением. Разность между исходным блоком и его предсказанием, которую называют остатком или ошибкой предсказания, затем преобразовывают. Коэффициенты преобразования обычно квантуют, сканируют, энтропийно кодируют и передают вместе с данными движения.
Обработка в декодере, которая является частью кодера 100 видео, представлена в показанном пунктиром прямоугольнике 111 на Фиг.1. Фиг.2 показывает декодер 200 видео согласно уровню техники. Видео декодер 200 подобно кодеру 100 видео содержит энтропийный декодер 203, модуль 204 обратного сканирования, обращенного квантования, обратного преобразования, модуль 205 деблокирующего и SAO фильтров, буфер 206 кадров, модуль 208 компенсации движения и модуль 209 внутрикадрового предсказания.
И кодер 100 видео, и декодер 200 видео формируют идентичные предсказания. Остаточные данные восстанавливаются посредством модуля 204 обратного сканирования, обращенного квантования, обратного преобразования. Аппроксимированное входное изображение восстанавливается поблочно путем сложения остатка с предсказанием. Результат сложения может дополнительно подаваться в контурные фильтры для сглаживания артефактов. Окончательное восстановленное изображение затем сохраняется в буфере 206 изображений или кадров, который может использоваться для предсказания подпоследовательности изображений.
Компенсация движения, такая как, например, применяемая в кодере 100 видео по Фиг.1 и в декодере видео по Фиг.2, является одним из важнейших элементов в гибридном кодировании/декодировании видео. Компенсация движения использует временную информацию, чтобы предсказывать текущий блок, и снижает, таким образом, избыточность видеоданных. Точность предсказания зависит от сходства содержимого между опорным блоком и текущим блоком. При изменении скорости камеры или некоторых объектов в сцене, каковое обычно ожидается в динамичных и спортивных фильмах, размытость из-за движения изменяется от кадра к кадру, приводя к сниженной точности предсказания.
Обычный способ компенсации движения из стандартов кодирования видеоизображений работает хорошо со стационарными объектами или движущимися с постоянной скоростью объектами. Однако его точность ограничена в случае изменяющейся размытости из-за движения. Размытость, вызванная движением, происходит в направлении движения объекта, если объект перемещается в течение времени выдержки. Ускоренный объект выглядит более расплывчатым в текущем кадре, чем в предыдущем опорном кадре, тогда как замедленный объект кажется более резким. Изменяющаяся степень размытости между последовательными кадрами обычно увеличивает ошибку предсказания. Таким образом, это приводит к сниженной эффективности сжатия и, следовательно, к увеличенной интенсивности передачи данных для остатка межкадрово-предсказанных блоков.
В этом контексте, известна возможность уменьшения ошибки предсказания путем фильтрации опорного кадра для компенсации изменяющейся размытости, вызванной движением. Например, известно предварительное задание множества фильтров размытия и применения этих фильтров размытия к опорному кадру, сохраненному в буфере 106 кадров. Путем итеративного испытания рабочей характеристики каждого фильтра в терминах оптимизации «скорость кодирования - искажение», кодером видео выбирается лучший фильтр размытости. Для позволения декодеру видео декодировать сформированный битовый поток, фильтр размытия, который был выбран кодером видео, сигнализируется на декодер в виде дополнительной информации в битовом потоке.
Однако даже если такой прием может приводить к снижению ошибки предсказания в случае изменения размытости между опорным кадром и текущим межкадрово-кодируемым кадром, сигнализация выбранного фильтра размытия от кодера видео на декодер видео требует дополнительных битов в кодированном битовом потоке. Эта дополнительная сигнализация в свою очередь сокращает число битов, которые могут использоваться для кодирования ошибки предсказания в кодированном битовом потоке.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Признав вышеуказанные недостатки и проблемы, настоящее изобретение имеет целью усовершенствовать уровень техники. Конкретно объект настоящего изобретения состоит в том, чтобы обеспечить кодер видео, способ кодирования, декодер видео и способ декодирования для усовершенствованного кодирования и декодирования видеопотока последующих кадров.
Настоящее изобретение конкретно предполагает повысить качество кодирования с межкадровым предсказанием путем повышения точности сигнала предсказания. Изобретение также предполагает снизить количество битов сигнализации в кодированном битовом потоке.
Вышеуказанный объект настоящего изобретения достигается посредством решения, представленного в приложенных независимых пунктах формулы изобретения. Полезные реализации настоящего изобретения дополнительно определены в соответственных зависимых пунктах формулы изобретения.
Первый аспект настоящего изобретения обеспечивает кодер видео для кодирования с предсказанием видеопотока последующих кадров согласно компенсации движения в кодированный битовый поток видеоданных. Кодер видео содержит буфер кадров, приспособленный для сохранения, по меньшей мере, одного опорного кадра видеопотока, упомянутый опорный кадр является отличным от текущего кадра видеопотока. Кодер видео содержит модуль оценки движения, приспособленный для формирования вектора движения путем оценивания движения между опорным блоком опорного кадра и текущим блоком текущего кадра. Кодер видео содержит модуль выбора фильтра, приспособленный для выбора одного фильтра из множества фильтров в зависимости от ориентации вектора движения. Кодер видео содержит модуль фильтрации, приспособленный для формирования фильтрованного опорного блока путем применения выбранного фильтра к опорному блоку. Кодер видео содержит модуль компенсации движения, приспособленный для формирования фильтрованного блока предсказания текущего блока на основе текущего блока и фильтрованного опорного блока.
Посредством этого, хотя известный уровень техники требует, чтобы дополнительная информация кодировалась в битовый поток для видеопотока последующих кадров, настоящее изобретение использует вектор движения, который уже является частью битового потока для поддержки межкадрового предсказания. Следовательно, дополнительная сигнализация не является необходимой, чтобы поддерживать фильтрацию опорного кадра/блока. В последующем признаки "кадр" и "блок" являются взаимозаменяемыми поскольку фильтрация и предсказание могут применяться к блоку кадра или даже к кадру непосредственно.
В первой форме реализации кодера видео согласно первому аспекту модуль компенсации движения приспособлен, чтобы дополнительно формировать нефильтрованный предсказанный блок текущего блока на основе текущего блока и опорного блока, и выводить, из числа фильтрованного блока предсказания и нефильтрованного блока предсказания, блок предсказания, который минимизирует ошибку предсказания, упомянутая ошибка предсказания является разностью между текущим блоком и соответственным блоком предсказания.
Посредством этого, оптимизация «скорость кодирования - искажение» может делаться так, что используется фильтрованный или нефильтрованный опорный блок для формирования закодированной ошибки предсказания.
В дополнительной форме реализации кодера видео согласно первому аспекту, модуль оценки движения приспособлен для формирования второго вектора движения путем оценивания движения между фильтрованным опорным блоком и текущим блоком. В зависимости от сравнения второго вектора движения и вектора движения между опорным блоком и текущим блоком, фильтрованный опорный блок принимается в рассмотрение или игнорируется, чтобы формировать кодированный битовый поток видеоданных.
Посредством этого, предсказание блока может быть более точным путем оценивания второй оценки движения.
В дополнительной форме реализации кодера видео согласно первому аспекту, кодер видео содержит кодирующее средство, приспособленное для формирования кодированного битового потока видеоданных на основе ошибки предсказания, соответствующей блоку предсказания, выводимому модулем компенсации движения.
Посредством этого может быть реализовано эффективное кодирование с предсказанием.
В дополнительной форме реализации кодера видео согласно первому аспекту, кодер видео содержит кодирующее средство, приспособленное для формирования кодированного битового потока видеоданных таким образом, что кодированный битовый поток видеоданных содержит информацию движения и информацию фильтра. Информация движения содержит вектор движения, и информация фильтра указывает, основан ли кодированный битовый поток видеоданных на ошибке предсказания между текущим блоком и фильтрованным блоком предсказания или на ошибке предсказания между текущим блоком и нефильтрованным блоком предсказания.
Посредством этого, информация фильтра позволяет декодеру видео быстро определять, должна или не должна делаться дополнительная фильтрация опорного блока для выполнения декодирования с предсказанием.
В дополнительной форме реализации кодера видео согласно первому аспекту кодирующее средство приспособлено добавлять информацию фильтра в кодированный битовый поток видеоданных на уровне блока для каждого кодированного с предсказанием текущего блока, на уровне кадра, на уровне GOP (группы видеокадров), на уровне PPS (набора параметров видеокадра) или на уровне SPS (набора параметров последовательности).
Посредством этого, является возможным адаптивно задавать информацию фильтра с требуемой гранулярностью, так что сигнализация может быть оптимизирована.
В дополнительной форме реализации кодера видео согласно первому аспекту, кодер видео содержит модуль преобразования и квантования, приспособленный преобразовывать ошибку предсказания с помощью линейного пространственного преобразования с тем, чтобы сформировать коэффициенты преобразования, и квантовать коэффициенты преобразования, и модуль сканирования и энтропийный кодер, соответственно приспособленные сканировать и энтропийно кодировать квантованные коэффициенты преобразования с тем, чтобы сформировать кодированный битовый поток видеоданных.
Посредством этого, количество битов для передачи ошибки предсказания в битовом потоке видео может быть дополнительно снижено.
В дополнительной форме реализации кодера видео согласно первому аспекту, модуль выбора фильтра приспособлен для получения значения угла вектора движения относительно положительной горизонтальной оси и для выбора упомянутого одного фильтра из множества фильтров в зависимости от угла.
Посредством этого, выбор фильтра, подлежащего применению к опорному блоку, упрощается и может выполняться без дополнительных битов сигнализации.
В дополнительной форме реализации кодера видео согласно первому аспекту, кодер видео является кодером видео для одноуровневого кодирования видеопотока.
В дополнительной форме реализации кодера видео согласно первому аспекту, модуль выбора фильтра приспособлен выбирать один фильтр из множества фильтров размытия и/или устранения размытия в зависимости от ориентации вектора движения.
Посредством этого, возможно добавлять или удалять размытость из опорного блока в случаях ускорения или замедления движения в видеопотоке.
Дополнительный аспект настоящего изобретения обеспечивает гибридный видеокодер для внутри- и меж-кадрового предсказания, содержащий такой кодер видео.
Дополнительный аспект настоящего изобретения обеспечивает способ для кодирования с предсказанием видеопотока последующих кадров согласно компенсации движения в кодированный битовый поток видеоданных. Способ содержит: этап сохранения, по меньшей мере, одного опорного кадра видеопотока, упомянутый опорный кадр является отличным от текущего кадра видеопотока, этап оценки движения, содержащий формирование вектора движения путем оценивания движения между опорным блоком опорного кадра и текущим блоком текущего кадра, этап выбора одного фильтра из множества фильтров в зависимости от ориентации вектора движения, этап формирования фильтрованного опорного блока путем применения выбранного фильтра к опорному блоку, этап компенсации движения, содержащий формирование фильтрованного блока предсказания текущего блока на основе текущего блока и фильтрованного опорного блока.
Дополнительный аспект настоящего изобретения обеспечивает декодер видео для декодирования кодированного битового потока видеоданных, полученного кодированием с предсказанием видеопотока последующих кадров согласно компенсации движения, причем кодированный битовый поток видеоданных содержит кодированный с предсказанием текущий кадр и кодированный вектор движения, отражающий движение между опорным блоком опорного кадра и текущим блоком текущего кадра, упомянутый опорный кадр является отличным от текущего кадра. Декодер видео содержит декодер, приспособленный для декодирования кодированного опорного кадра и кодированного вектора движения, чтобы формировать опорный кадр и вектор движения, буфер кадров, приспособленный для сохранения опорного кадра, модуль выбора фильтра, приспособленный для выбора одного фильтра из множества фильтров в зависимости от ориентации вектора движения, модуль фильтрации, приспособленный для формирования фильтрованного опорного блока путем применения выбранного фильтра к опорному блоку, модуль компенсации движения, приспособленный для формирования текущего блока кодированного с предсказанием текущего кадра на основе вектора движения и фильтрованного опорного блока.
Посредством этого, хотя известный уровень техники требует, чтобы добавочная информация кодировалась в битовый поток для видеопотока последующих кадров, настоящее изобретение использует вектор движения, который уже является частью битового потока, для поддержки меж-кадрового предсказания. Следовательно, дополнительная сигнализация не является необходимой для поддержки фильтрации опорного кадра/блока. Кроме того, не требуется информация вне текущего кадра, чтобы выбирать фильтр и применять выбранный фильтр к опорному кадру/блоку.
В форме реализации декодера видео согласно дополнительному аспекту кодированный битовый поток видеоданных содержит информацию фильтра, связанную с текущим блоком. Декодер приспособлен для декодирования информации фильтра. Модуль компенсации движения приспособлен, чтобы, в зависимости от значения информации фильтра, формировать текущий блок кодированного с предсказанием текущего кадра на основе вектора движения и фильтрованного опорного блока, или на основе вектора движения и опорного блока, который соответствует нефильтрованному опорному блоку, то есть, опорному блоку, который не был обработан выбранным фильтром.
В форме реализации декодера видео согласно дополнительному аспекту, модуль выбора фильтра приспособлен для получения значения угла вектора движения, например, относительно положительной горизонтальной оси, и для выбора упомянутого одного фильтра из множества фильтров в зависимости от угла.
В форме реализации декодера видео согласно дополнительному аспекту декодер видео является декодером видео для одноуровневого кодирования видеопотока.
В форме реализации декодера видео согласно дополнительному аспекту, модуль выбора фильтра приспособлен для выбора одного фильтра из множества фильтров размытия и/или устранения размытия в зависимости от ориентации вектора движения.
Дополнительный аспект настоящего изобретения обеспечивает гибридный декодер видео для внутри- и меж-кадрового предсказания, содержащий такой декодер видео.
Дополнительный аспект настоящего изобретения обеспечивает способ для декодирования кодированного битового потока видеоданных, полученного кодированием с предсказанием видеопотока последующих кадров согласно компенсации движения. Кодированный битовый поток видеоданных содержит, по меньшей мере, один кодированный опорный кадр, кодированный с предсказанием текущий кадр, упомянутый опорный кадр является отличным от текущего кадра, и кодированный вектор движения, отражающий движение между опорным блоком опорного кадра и текущим блоком текущего кадра. Способ содержит декодирование кодированного опорного кадра и кодированного вектора движения, чтобы сформировать опорный кадр и вектор движения, сохранение опорного кадра, выбор одного фильтра из множества фильтров в зависимости от ориентации вектора движения, формирование фильтрованного опорного блока путем применения выбранного фильтра к опорному блоку, компенсацию движения, содержащую формирование текущего блока кодированного с предсказанием текущего кадра на основе вектора движения и фильтрованного опорного блока.
Дополнительный аспект настоящего изобретения обеспечивает компьютерную программу с наличием программного кода, чтобы выполнять такой способ кодирования и/или декодирования, когда компьютерная программа исполняется на вычислительном устройстве.
Нужно отметить, что все устройства, элементы, модули и средства, описанные в настоящей заявке, могут быть реализованы в программных или аппаратных элементах или в их комбинации любого вида. Все этапы, которые выполняются посредством различных объектов, описанных в настоящей заявке, а также функциональности, описанные подлежащими выполнению различными объектами, предназначены означать, что соответственный объект приспособлен или сконфигурирован, чтобы выполнять соответственные этапы и функциональности. Даже если, в последующем описании конкретных вариантов осуществления, конкретная функциональность или этап, подлежащая полному формированию внешними объектами, не отраженными в описании конкретного подробного элемента этого объекта, который выполняет этот конкретный этап или функциональность, специалисту в данной области техники должно быть ясно, что эти способы и функциональности могут быть реализованы в соответственных программных или аппаратных элементах, или их комбинации любого вида.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеупомянутые аспекты и формы реализации настоящего изобретения будут пояснены в последующем описании конкретных вариантов осуществления в отношении приложенных чертежей, на которых
Фиг.1 - кодер видео согласно уровню техники.
Фиг.2 - декодер видео согласно уровню техники.
Фиг.3 - кодер видео согласно варианту осуществления настоящего изобретения.
Фиг.4 - декодер видео согласно варианту осуществления настоящего изобретения.
Фиг.5(a) - вариант осуществления компенсации размытости, вызванной движением, согласно настоящему изобретению.
Фиг.5(b) - вариант осуществления компенсации размытости, вызванной движением, согласно настоящему изобретению.
Фиг.6 - примеры векторов движения, полученных по варианту осуществления по Фиг.5(a).
Фиг.7 - вариант осуществления фильтра согласно настоящему изобретению.
Фиг.8 - вариант осуществления фильтра согласно настоящему изобретению.
Фиг.9 - вариант осуществления коэффициентов фильтра согласно настоящему изобретению.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Фиг.3 показывает кодер видео согласно варианту осуществления настоящего изобретения, и конкретно гибридный кодер 300 видео для кодирования с предсказанием видеопотока последующих кадров согласно компенсации движения в кодированный битовый поток видеоданных.
Кодер 300 видео содержит конкретно буфер 306 кадров, модуль 307 оценки движения, модуль 313 выбора фильтра, модуль 314 фильтрации и модуль 308 компенсации движения.
Буфер 306 кадров приспособлен для сохранения, по меньшей мере, одного опорного кадра видеопотока. Упомянутый опорный кадр отличается от текущего кадра видеопотока. В контексте изобретения текущий кадр является кадром видеопотока, который в настоящий момент кодируется. Текущий кадр кодируется с использованием методики с межкадровым кодированием, то есть, текущий кадр предсказывают исходя из одного или множества опорных кадров. Опорный кадр может быть предыдущим кадром, то есть, кадром, который находится до текущего кадра внутри видеопотока последовательных кадров. Альтернативно, если используется прямое предсказание, опорный кадр может быть будущим кадром, то есть, кадром, который находится после текущего кадра. В случае множества опорных кадров, по меньшей мере, один может быть предыдущим кадром, и, по меньшей мере, один из них может быть будущим кадром. Опорный кадр может быть с внутренним кодированием, то есть, может быть закодирован без использования какого-либо последующего кадра и без какой-либо зависимости от других кадров, так что он может быть декодирован независимо и может служить точкой входа для произвольного доступа к видео.
Модуль 307 оценки движения приспособлен для формирования вектора движения путем оценивания движения между опорным блоком опорного кадра и текущим блоком текущего кадра. Фиг.3 соответственно показывает, что модуль 307 оценки движения содержит вход для опорного кадра, сохраненного в буфере 306 кадров, и вход для входного изображения, которое соответствует текущему кадру.
Вектор движения формируется с использованием оценки движения блока. Опорный блок и текущий блок являются предпочтительно соответственными областями или подобластями опорного кадра и текущего кадра. Такой блок может иметь регулярную, прямоугольную форму или неправильную форму. Альтернативно, блоки могут иметь такой же размер, как и кадры. И текущий блок, и опорный блок имеют одинаковый размер. Размер блоков задается с помощью режима блоков. Блок может соответствовать элементу кодирования (CU), который является базовой структурой кодирования видеопоследовательности предварительно заданного размера, содержащей часть кадра, например, 64×64 пикселей.
Текущий блок текущего кадра, являющийся межкадрово-кодируемым, предсказывается исходя из опорного блока опорного кадра. Процесс кодирования для межкадрового предсказания содержит отбор данных движения, которые содержат опорный индекс и вектор движения, подлежащий применению для предсказания текущего блока. Опорный индекс является индексом опорного блока и/или опорного кадра.
Модуль 313 выбора фильтра приспособлен для выбора одного фильтра из множества фильтров в зависимости от ориентации вектора движения. Модуль 314 фильтрации приспособлен для формирования фильтрованного опорного блока путем применения выбранного фильтра к опорному блоку. Модуль 308 компенсации движения приспособлен для формирования фильтрованного блока предсказания текущего блока на основе текущего блока и фильтрованного опорного блока.
Фиг.3 показывает соответственно, что модуль 307 оценки движения передает вектор движения на модуль 313 выбора фильтра. Выводимая информация модуля 313 выбора фильтра идентифицирует выбранный фильтр. Модуль 314 фильтрации затем применяет фильтр, выбранный модулем 313 выбора фильтра, к опорному блоку опорного кадра, сохраненного в буфере 306 кадров, чтобы сформировать фильтрованный опорный блок, передаваемый на модуль 308 компенсации движения. Модуль 308 компенсации движения затем формирует фильтрованный блок предсказания на основе текущего блока текущего кадра и фильтрованного опорного блока. Предпочтительно, фильтрованный блок предсказания формируется на основе текущего блока, вектора движения и фильтрованного опорного блока.
Конкретно, для гибридного кодирования видео, упомянутую оценку движения 307 выполняют в ходе кодирования, чтобы найти вектор движения, указывающий лучший блок предсказания в опорном кадре. Компенсация 308 движения использует данные движения, которые кодируются и передаются на декодер в виде дополнительной информации, чтобы генерировать сигналы предсказания. Сигналы предсказания ссылаются на блоки предсказания, которые могут быть объединены, чтобы получить кадр предсказания.
Кодер 300 видео по Фиг.3 содержит дополнительные модули подобно кодеру 100 видео по Фиг.1. Конкретно, кодер 300 видео содержит сходные модули, которыми являются модуль 301 преобразования и квантования, модуль 302 сканирования, энтропийный кодер 103, модуль 304 обратного сканирования, обращенного квантования, обратного преобразования, модуль 305 деблокирующего и SAO фильтров. Кодер 300 видео содержит дополнительные подобные модули, которыми являются модуль 307 оценки движения, модуль 308 компенсации движения, модуль 309 внутрикадрового предсказания, который отвечает за внутрикадровое предсказание, например, опорного кадра, и модуль 310 управления кодером.
В гибридном кодере 300 видео, показанном на Фиг.3, на основании вектора движения, сформированного в ходе оценки 307 движения, например, для блока или элемента кодирования, предварительно заданный фильтр выбирают на этапе 313 согласно ориентации упомянутого вектора движения, и конкретно согласно углу упомянутого вектора движения относительно горизонтальной оси. Угол вычисляют на основании вектора движения текущего блока. Затем, выбранный фильтр применяется к опорному кадру, сохраненному в буфере 306 кадров.
В кодере 300 видео, модуль 308 компенсации движения приспособлен для дополнительного формирования нефильтрованного блока предсказания текущего блока на основе текущего блока и опорного блока и конкретно на основе текущего блока, вектора движения и опорного блока. Опорный блок, рассматриваемый здесь, является нефильтрованным опорным блоком опорного кадра, сохраненного в буфере 306 кадров. Модуль 308 компенсации движения кроме того приспособлен, чтобы выводить, из числа фильтрованного блока предсказания и нефильтрованного блока предсказания, блок предсказания, который минимизирует ошибку предсказания, упомянутая ошибка предсказания является разностью между текущим блоком и соответственным блоком предсказания.
Это означает, что будет сравниваться рабочая характеристика «скорость кодирования - искажение» фильтрованного блока предсказания и нефильтрованного блока предсказания. Затем выбирают возможный вариант, который представляет лучшую рабочую характеристику «скорость кодирования - искажение». Это сравнение и этот выбор могут выполняться посредством блока 310 управления кодером. Управление 310 кодером может выбирать информацию движения, такую как вектор движения и опорный индекс, и информацию фильтра, подобную флагу размытия, на основании процедуры оптимизации «скорость кодирования - искажение».
Энтропийный кодер 303 приспособлен для формирования кодированного битового потока видеоданных таким образом, что кодированный битовый поток видеоданных содержит информацию движения и информацию фильтра. Информация движения содержит вектор движения, выбранный модулем, и предпочтительно также опорный индекс, который является индексом для идентификации опорного блока и/или опорного кадра, используемого для кодирования с предсказанием текущего блока и/или текущего кадра. Информация фильтра указывает, основан ли кодированный битовый поток видеоданных на ошибке предсказания между текущим блоком и фильтрованным блоком предсказания, или на ошибке предсказания между текущим блоком и нефильтрованным блоком предсказания. Конкретно, информация фильтра определяет, был ли кодированный битовый поток сформирован на основании фильтрованного блока предсказания и нефильтрованного блока предсказания.
Модуль 313 выбора фильтра приспособлен для выбора одного фильтра из множества фильтров размытия или устранения размытия в зависимости от ориентации вектора движения. Фильтры могут быть предварительно заданными фильтрами, которые размещаются и на кодере 300, и на соответствующем декодере, подобному декодеру 400, показанному на Фиг.4. Альтернативно, определение фильтров может передаваться от кодера 300 на декодер 400 посредством сигнализации соответствующего фильтра в битовом потоке. Это означает, что либо фиксированные фильтры используются для всех видеопоследовательностей, так что нет необходимости посылать предварительно заданные фильтры, или задаются настроенные фильтры, например, для различных категорий видеоизображений. В последнем случае фильтры могут посылаться на декодер через сообщение SEI (дополнительная расширенная информация).
Информацией фильтра, передаваемой в битовом потоке, может быть флаг фильтра. Например, флаг размытия может быть задан для каждого блока, который был кодирован с межкадровым предсказанием, то есть, согласно режиму inter (межкадрового предсказания). Флаг на уровне блока может использоваться, чтобы указать, использовался ли фильтр размытия или устранения размытия для текущего блока. Кроме того, флаг размытия, добавленный в заголовке слоя (смежных макроблоков, slice), может использоваться, чтобы указать, использовался ли фильтр размытия/устранения размытия для текущего слоя. Такой флаг в SPS (набор параметра последовательности) может использоваться, чтобы указать, использовался ли фильтр размытия/устранения размытия для кодированной видеопоследовательности. Такой флаг в PPS (набор параметров видеокадра) может использоваться, чтобы указать, использовался ли фильтр размытия/устранения размытия для кодированного изображения. Альтернативно, флаг размытия может использоваться, чтобы указать, использовался ли фильтр размытия для текущего блока, и флаг устранения размытия может использоваться, чтобы указать, использовался ли фильтр устранения размытия для текущего блока.
В дополнение к известным стандартным способам кодирования, которыми являются внутри-кадровое и меж-кадровое предсказание (включая пропуск (skip)), настоящее изобретение предлагает дополнительный режим, которым является режим компенсации размытости из-за движения для гибридного кодирования видео. Эту компенсацию размытости из-за движения можно рассматривать в качестве дополнения межкадрового режима (включая пропуск) гибридного кодирования видео, такого как HEVC, в ходе кодирования некоторого блока. Изобретение предлагает создавать временные опорные кадры путем фильтрации 314 восстановленного кадра, сохраненного в буфере 306 кадров, фильтром угла θ, значение которого выводят исходя из вектора движения, полученного путем оценки 307 движения.
Эти фильтрованные опорные кадры и/или опорные блоки затем используются для компенсации размытости, вызванной движением. В случае если фильтр размытия применяется к опорному кадру, фильтрованный опорный кадр и исходный опорный кадр, сохраненные в буфере 306 кадров, совместно используют одинаковый опорный индекс. А именно, опорный индекс будет ссылаться либо на восстановленный кадр в общей оценке движения в гибридном кодировании видео, либо на размытый временной кадр, используемый для оценки движения в предлагаемой компенсации размытости, вызванной движением.
Оценка движения в компенсации размытости, вызванной движением, согласно настоящему изобретению исполняется после традиционной оценки движения в гибридном кодировании видео, такой как оценка движения в HEVC.
Флаг размытия может задаваться для каждого блока или элемента кодирования, который кодируют с помощью межкадрового режима (включая пропуск) для всех размеров разбиения (2N×2N, 2N×N, 2N×Nu, 2N×Nd...). Декодер 400 способен определять, размывается ли опорный кадр в ходе восстановления CU, и тиражировать размытие опорного кадра, используя угол θ, выведенный из кодированного MV. Флаг размытия рассматривается в рамках оптимизации по критерию «искажение - скорость передачи» (RD).
Флаг на уровне блока или элемента кодирования может использоваться, чтобы указывать, использовался ли фильтр размытия/устранения размытия для элемента кодирования. В дополнение к этому, флаг в SPS может использоваться, чтобы указывать, использовался ли фильтр размытия/устранения размытия для кодированной видеопоследовательности. Флаг в PPS также может использоваться, чтобы указать, использовался ли фильтр размытия/устранения размытия для кодированного изображения.
Фиг.4 иллюстрирует декодер видео согласно варианту осуществления настоящего изобретения. Этот декодер 400 видео соответствует кодеру 300 видео в том, что содержит компоненты кодера 300 видео, расположенные в показанном пунктиром прямоугольнике 311 на Фиг.3. Декодер 400 приспособлен для декодирования битового потока, формируемого кодером 300 видео, и оба декодер 400 и кодер формируют идентичные предсказания.
Декодер 400 видео является декодером для декодирования кодированного битового потока видеоданных, полученного путем кодирования с предсказанием видеопотока последующих кадров согласно компенсации движения. Кодированный битовый поток видеоданных содержит кодированный с предсказанием текущий кадр, который соответствует ошибке предсказания, и кодированный вектор движения, отражающий движение между опорным блоком опорного кадра и текущим блоком текущего кадра, упомянутый опорный кадр является отличным от текущего кадра.
Декодер 400 видео содержит декодер 403, буфер 406 кадров, модуль 413 выбора фильтра, модуль 414 фильтрации и модуль 408 компенсации движения. Декодер 403 приспособлен для декодирования кодированного опорного кадра и кодированного вектора движения, чтобы формировать опорный кадр и вектор движения. Буфер 406 кадров приспособлен для сохранения опорного кадра. Модуль 413 выбора фильтра приспособлен для выбора одного фильтра из множества фильтров в зависимости от ориентации вектора движения. Модуль 414 фильтрации приспособлен для формирования фильтрованного опорного блока путем применения выбранного фильтра к опорному блоку. Модуль 408 компенсации движения приспособлен для формирования текущего блока для кодированного с предсказанием текущего кадра на основе вектора движения и фильтрованного опорного блока.
В продолжение, кодированный битовый поток видеоданных содержит информацию фильтра, связанную с текущим блоком. Декодер 403 приспособлен для декодирования информации фильтра, и модуль 408 компенсации движения приспособлен, чтобы, в зависимости от значения информации фильтра, формировать текущий блок кодированного с предсказанием текущего кадра на основе вектора движения и фильтрованного опорного блока или на основе вектора движения и опорного блока. Упомянутый опорный блок фактически соответствует нефильтрованному опорному блоку, то есть, опорному блоку, который не был обработан выбранным фильтром.
Модуль 413 выбора фильтра приспособлен для получения значения угла вектора движения относительно положительной горизонтальной оси и для выбора упомянутого одного фильтра из множества фильтров в зависимости от угла.
Фиг.4 показывает, что кодированный видеопоток, то есть, битовый поток, подается на энтропийный декодер 403, который декодирует опорный кадр и ошибку предсказания для текущего блока/кадра с помощью модуля 404 обратного сканирования, обращенного квантования, обратного преобразования, и деблокирующего и SAO фильтров 405. Опорный кадр сохраняется в буфере 406 кадров. С другой стороны, декодер 403 передает информацию движения и информацию фильтра, которая содержит соответственно вектор движения и флаг размытия/устранения размытия, на модуль 413 выбора фильтра и на модуль 408 компенсации движения.
Информация фильтра, такая как флаг размытия/устранения размытия, может задаваться для каждого блока или элемента кодирования, который был кодирован с помощью межкадрового режима (включая пропуск) для всех размеров разбиения, включая, например, 2N×2N, 2N×N, 2N×Nu, 2N×Nd.... Флаг размытия/устранения размытия может присутствовать в заголовке слоя, PPS или SPS. Декодер 400 способен определять, размывается ли опорный кадр в ходе восстановления блока, и тиражировать размытие опорного кадра, используя угол θ, выведенный из кодированного вектора движения. Чтобы убедиться, что декодированные кадры в декодере 400 являются идентичными восстановленным, такой же фильтр применяется к текущему блоку декодером 400 и кодером 300, причем фильтр, определяемый с использованием ориентации декодированного вектора движения. Затем фильтр размытия движения применяется к опорному кадру/блоку. Компенсация движения использует фильтрованный сигнал размытия в зависимости от информации фильтра, и конкретно, если флаг размытия/устранения размытия указывает, что фильтр, например, фильтр размытия, был применен в кодере 300.
Два варианта осуществления предлагаемой компенсации движения, то есть, компенсация в кодере размытости, вызванной движением, поясняются в последующем.
Фиг.5(b) иллюстрирует вариант осуществления компенсации размытости, вызванной движением, согласно настоящему изобретению. Этот вариант осуществления содержит одну оценку движения в том, что при кодировании 500 текущего блока или элемента кодирования (CU), оценка 501 движения выполняется посредством модуля 307 оценки движения, чтобы формировать вектор движения путем оценивания движения между опорным блоком и текущим блоком. В ходе генерации фильтра 503, модуль 313 выбора фильтра выбирает фильтр, соответствующий ориентации вектора движения, то есть, углу θ вектора движения относительно, например, горизонтали. Диапазон значений [0,π] для угла θ подразделяется на поддиапазоны [0,θ1], [θ1,θ2]...[θn-1,θn],[θn,π], при n имеющим целочисленное значение, и каждый поддиапазон связывается с одним предварительно заданным фильтром.
Как только фильтр сформирован или выбран, этот фильтр применяется к опорному блоку или кадру, чтобы формировать фильтрованный опорный блок/кадр, подобный, например, размытому опорному блоку/кадру 504. Фиг.5(b) показывает, что фильтрованный опорный блок/кадр формируется для флага фильтра, то есть, флага размытия, имеющего значение «истина» 502, тогда как опорный блок/кадр не фильтруется для флага фильтра, то есть флага размытия, имеющего значение «ложь» 505. Компенсация 506 движения применяется и к фильтрованному опорному блоку/кадру, и к нефильтрованному опорному блоку/кадру. На основании последующей оптимизации 507 «искажение - скорость передачи» принимается решение, используется ли фильтрованный или нефильтрованный опорный блок для формирования ошибки предсказания.
Фиг.5(a) иллюстрирует дополнительный вариант осуществления компенсации размытости, вызванной движением, согласно настоящему изобретению. В отличие от варианта осуществления по Фиг.5(b), размытый опорный блок/кадр 504 не посылается на компенсацию 506 движения, но используется для выполнения второй оценки движения.
Соответственно, модуль 307 оценки движения приспособлен, чтобы выполнять вторую оценку 510 движения на основе фильтрованного опорного блока 504, и таким образом формировать второй вектор движения путем оценивания движения между фильтрованным опорным блоком 504 и текущим блоком. Затем выполняется сравнение 511 между вторым вектором движения, сформированным по второй оценке движения 510, и первым вектором движения, сформированным по первой оценке движения 501, между опорным блоком и текущим блоком. В зависимости от этого сравнения 511, фильтрованный опорный блок учитывается или не учитывается для формирования кодированного битового потока видеоданных.
Итак, вариант осуществления по Фиг.5(a) содержит два цикла оценки 501, 510 движения, причем вторая оценка 510 движения выполняется на основании фильтрованного опорного блока/кадра. Способ фильтрации/размытия тем самым игнорируется 512 в случае, если первый и второй векторы движения не находятся в том же заданном угловом секторе согласно алгоритму на основе секторе.
В ходе кодирования 501 некоторого блока или элемента кодирования, одной частью по-секторного алгоритма в процессе кодирования является проверка действительности предсказываемого вектора движения, который соответствует второму вектору движения, после выполнения второй оценки 510 движения на основании фильтрованного/размытого опорного блока/кадра.
Проверка действительности имеет следующие три критерия:
1) первый вектор движения и второй вектор движения находятся в одном и том же секторе.
2) второй вектор движения является ненулевым вектором.
3) вектор движения находится внутри заданного диапазона поиска, то есть, ±64 в горизонтальном и вертикальном направлениях.
Фиг.6 показывает примеры векторов движения, полученных по варианту осуществления по Фиг.5(a) с использованием по-секторного алгоритма. Фиг.6 показывает четыре различных угловых секторов, являющихся [0,π/4], [π/4,π/2], [π/2,3π/4] и [3π/4,π]. Первый вектор движения, полученный по первой оценке 501 движения, помечен "1.MV" и расположен в первом секторе.
Согласно первому примеру, затем применяется вторая оценка 510 движения и имеет результатом второй вектор движения, помеченный "действительный 2.MV". Поскольку второй вектор движения расположен в том же секторе, что и первый вектор движения, флаг размытия имеет значение «истина» 513. Это означает, что компенсация движения на основании фильтрованного опорного блока является возможной. В этом случае, выполняется компенсация 506 движения и для фильтрованного опорного блока, и для нефильтрованного опорного блока из буфера кадров. Последующая оптимизация «скорость кодирования - искажение» выполняется, чтобы выбрать либо фильтрованную, либо нефильтрованную версию.
Согласно второму примеру, второй вектор движения, помеченный "недействительный 2.MV", расположен в секторе, отличном от сектора первого вектора движения. Как следствие, фильтрация игнорируется 512, и компенсация движения применяется только для нефильтрованного опорного блока.
Другими словами, после операции 504 размытия, флаг размытия устанавливается в истину 513 только в случае, если первый вектор движения и второй вектор движения расположены в одном и том же заданном секторе. Иначе, флаг размытия устанавливается в «ложь» 512. Напротив, в варианте осуществления по Фиг.5(b) не является необходимым второй цикл оценки движения. Флаг размытия устанавливается в «истину» 502, если выполняется размытие 504. Эти варианты осуществления являются связанными с кодером вариантами осуществления относительно того, каким образом принимать решение, следует ли использовать фильтр размытия.
Возвращаясь к варианту осуществления по Фиг.5(a), первый критерий предпочтительно означает, что представительное направление задается для каждого предварительно заданного сектора. Представительное направление предпочтительно находится в середине сектора. Например, Фиг.6 показывает представительное направление для первого сектора, упомянутое направление помечено "представитель MV". Фильтры размытия формируются на основании этих представительных направлений. Число секторов может задаваться в соответствии с различным требованием к точности, и такое же число соответствующих фильтров размытия вычисляют до того, как начинается кодирование.
Если первый и второй векторы движения принадлежат одному и тому же сектору, такое же представительное направление, а также одинаковый фильтр размытия используется кодером и декодером. Декодер только должен найти направление, несомое переданным вектором движения, и выполняет точную фильтрацию, чтобы иметь одинаковый восстановленный блок или элемент кодирования.
В примере по Фиг.6 каждый фильтр охватывает угол π/4=45°, если выбрано число секторов «четыре». Поскольку первый вектор движения попадает в первый сектор, представительный вектор движения указывает на направление в середине сектора. Если второй вектор движения "действительный 2.MV" попадает в тот же сектор, проверкой действительности дается значение «истина», и декодер находит тот же представительный вектор движения.
Предпочтительно, второй вектор движения затем передается на декодер. Это означает, что кодер видео содержит кодирующее средство 303, приспособленное для формирования кодированного битового потока видеоданных таким образом, что кодированный битовый поток видеоданных содержит информацию движения, причем информация движения содержит второй вектор движения.
Если второй вектор движения "недействительный 2.MV" приводит к другому представительному вектору движения для второго вектора, то проверкой действительности будет даваться значение «ложь».
Предпочтительно, второй критерий состоит в том, что второй вектор движения является ненулевым вектором. Этот критерий основывается на факте, что размытость из-за движения происходит, если имеется относительное движение между объектами и камерами во время выдержки. Нулевой вектор движения означает, что не найдено движение для блока или элемента кодирования, таким образом, размытости не должно быть, и проверка действительности дает «ложь» в результате. Какой-либо фильтр затем не применяется 314 к опорному блоку. Этот второй критерий может рассматриваться в дополнение к первому критерию или отдельно.
В заключение, согласно третьему критерию, второй вектор движения должен находиться в диапазоне поиска оценки движения для проверки действительности, имеющей значение «истина». Этот третий критерий может рассматриваться в дополнение к первому и/или второму критерию.
С повышением числа секторов направление размытия будет более точным, тогда как степень действительности второго вектора движения уменьшается, каковое может приводить к снижению эффективности сжатия и эффективности схемы кодирования. Следовательно, имеется компромиссное соотношение между точностью фильтра и степенью действительности.
По сравнению с вариантом осуществления по Фиг.5(a) структура кодирования по варианту осуществления Фиг.5(b) упрощается путем применения того же вектора движения к компенсации движения (MC) на основании фильтрованного опорного кадра вместо второй оценки движения и посекторной проверки действительности. Вариант осуществления по Фиг.5(b), таким образом, может снизить время исполнения. Действительно этот вариант осуществления обходится без не только одной дополнительной оценки движения, но также и области размытия. Вместо размытия целой площади, охватываемой стандартной оценкой движения, требуется размыть только блок или элемент кодирования в опорном кадре, указанном вектором движения, и его окружение, которое будет использоваться интерполяцией далее. По той же причине, как и выше в варианте осуществления по Фиг.5(a), здесь также нулевой вектор движения исключается из компенсации размытости, вызванной движением.
Вариант осуществления по Фиг.5(a) вводит вторую оценку движения на фильтрованных опорных кадрах и посекторную проверку действительности, чтобы убедиться, что кодер и декодер совместно используют идентичное направление размытия. В варианте осуществления по Фиг.5(a) предсказание блока или элемента кодирования становится более точным с увеличением числа фильтров, то есть, с увеличенным числом секторов, поскольку сформированные фильтры являются более точными в направлениях. С другой стороны, более высокое число фильтров означает, что диапазон действительных углов для второго вектора движения уменьшается, и компенсация вызванной движением размытости игнорируется чаще. Использование 9 фильтров является хорошим компромиссным решением.
В последующем будет показан вариант осуществления фильтров размытия, которые могут использоваться для компенсации размытости, вызванной движением.
Обычно используемая линейная однородная функция рассеяния точки размытости (PSF), вызванной движением, в непрерывной временной области описывается с помощью линейного сегмента L и угла θ относительно горизонтальной оси, как дано в следующей формуле:
причем L является пропорциональным скорости движения и продолжительности выдержки, θ указывает направление движения и (x,y) является позицией в декартовой системе координат. Эта функция является, например, известной из работы "Photo consistent motion blur modeling for realistic image synthesis", H. Lin и C. Chang, PSIVT 2006.
Дискретную версию уравнения (1) получают путем рассмотрения яркого пятна, обходящего в поперечном направлении датчики, охватываемые линейным сегментом, в течение выдержки с постоянной скоростью, как известно из работы "Parametric Blur Estimation for Blind Restoration of Natural Images: Linear Motion and Out-of-Focus", J. Oliveira, M. Figueiredo и J. Bioucas-Dias, Image Processing, IEEE Transactions on Image Processing, 2014. Каждый коэффициент ядра размытости пропорционален времени, проведенного на каждом сенсорном элементе. С допущением постоянного движения коэффициенты фильтра имеют вид нормализованной длины пересечения линейного сегмента с каждым пикселем в сетке, как проиллюстрировано посредством Фиг.7. На упомянутой Фиг.7 показана дискретная версия линейной размытости из-за движения при θ=arctan 4/5.
В случае изменяющейся размытости, вызванной движением, фильтрованный эталон (опорный кадр) может повысить рабочую характеристику кодирования. Полагается, что размытость из-за движения, а также изменение размытости, вызванной движением, может быть описано уравнением (1). Движение можно считать постоянным в течение выдержки одиночного кадра. Поскольку временной интервал между двумя соседними кадрами составляет только 0,02 секунды для видео последовательности с 50 кадр/с, предлагается, что изменение степени размытости, вызванной движением, является небольшим в большинстве случаев. Следовательно, используется фиксированный экстент в 3 пикселя, чтобы описывать явление изменения в размытии, то есть, L=3. Отсюда, двумерный фильтр размытия для компонента яркости имеет размерность 3×3.
Другую степень свободы для фильтра размытия составляет угол θ. Он выводится из вектора движения, используемого в гибридном кодировании видео, таком как HEVC. Следовательно, стандартный поиск движения для гибридного кодирования видео выполняется прежде, чем устанавливают фильтр размытия. Размытый опорный кадр формируется путем использования направлений векторов движения.
Общая дискретная версия фильтра 3×3 имеет 5 различных коэффициентов a, b, c, d и e благодаря симметрии и вычисляется согласно произвольному углу θ, используя Фиг.8. Предлагаемый фильтр является фильтром нижних частот. В виде примера, коэффициенты фильтра для θ=15° и θ=60° перечислены на Фиг.9.
В варианте осуществления будет размываться только компонент яркости опорного кадра путем использования такого фильтра 3×3, если испытательная последовательность будет иметь формат 4:2:0. Пиксели цветности лежат в каждой другой пиксельной позиции компонента [6] яркости. При экстенте размытости только в 3 пикселя, рассмотрению подлежат три соседних пикселя яркости, но только 1 пиксель цветности. Расположенный рядом пиксель цветности находится вне области влияния размытия, следовательно, фильтр не требуется. В случае последовательности цветовой субдискретизации в 4:4:4, такой же фильтр для компонента яркости будет применяться для компонентов цветности.
Предложенная модель размытости, вызванной движением, и предложенный фильтр размытия являются примерами. Другой фильтр размытия также может применяться согласно предлагаемому изобретению, причем вектор движения текущего элемента/блока кодирования используется, чтобы выбирать предварительно заданные фильтры для повышения эффективности кодирования в гибридном кодировании видео.
Настоящее изобретение было описано вместе с различными вариантами осуществления в виде примеров, а также реализаций. Однако другие разновидности могут быть осознаны и осуществлены специалистами в данной области техники и применяющими на практике заявленное изобретение, на основании изучения чертежей, этого раскрытия и независимых пунктов формулы изобретения. В пунктах формулы изобретения, а также в описании термин "содержащий" не исключает другие элементы или этапы, и использование единственного числа не исключает множественного. Единственный элемент или другой модуль могут выполнять функции нескольких объектов или признаков, изложенных в пунктах формулы изобретения. Простой факт, что некоторые меры изложены во взаимно различных зависимых пунктах формулы изобретения, не означает, что комбинацию этих мер нельзя использовать в полезной реализации.
Изобретение относится к области вычислительной техники для обработки видеоизображений. Технический результат заключается в повышении точности обработки видеоизображений. Технический результат достигается за счет сохранения опорного кадра видеопотока, где упомянутый опорный кадр является отличным от текущего кадра видеопотока, оценки движения, содержащей формирование вектора движения путем оценивания движения между опорным блоком опорного кадра и текущим блоком текущего кадра, выбора одного фильтра из множества фильтров в зависимости от ориентации вектора движения, этап формирования фильтрованного опорного блока путем применения выбранного фильтра к опорному блоку, компенсации движения, содержащей формирование фильтрованного блока предсказания текущего блока на основе текущего блока и фильтрованного опорного блока. 6 н. и 13 з.п. ф-лы, 10 ил.
1. Кодер видео для кодирования с предсказанием видеопотока последующих кадров согласно компенсации движения в кодированный битовый поток видеоданных,
содержащий:
- буфер кадров, приспособленный для сохранения, по меньшей мере, одного опорного кадра видеопотока, упомянутый опорный кадр является отличным от текущего кадра видеопотока,
- модуль оценки движения, приспособленный для формирования вектора движения путем оценивания движения между опорным блоком опорного кадра и текущим блоком текущего кадра,
- модуль выбора фильтра, приспособленный для выбора одного фильтра из множества фильтров в зависимости от ориентации вектора движения,
- модуль фильтрации, приспособленный для формирования фильтрованного опорного блока путем применения выбранного фильтра к опорному блоку,
- модуль компенсации движения, приспособленный для формирования фильтрованного блока предсказания текущего блока на основе текущего блока и фильтрованного опорного блока.
2. Кодер видео по п.1,
в котором модуль компенсации движения приспособлен, чтобы дополнительно формировать нефильтрованный блок предсказания для текущего блока на основе текущего блока и опорного блока, и
выводить, из числа фильтрованного блока предсказания и нефильтрованного блока предсказания, блок предсказания, который минимизирует ошибку предсказания, упомянутая ошибка предсказания является разностью между текущим блоком и соответственным блоком предсказания.
3. Кодер видео по п.1 или 2,
в котором модуль оценки движения приспособлен для формирования второго вектора движения путем оценивания движения между фильтрованным опорным блоком и текущим блоком, и
в зависимости от сравнения второго вектора движения и вектора движения между опорным блоком и текущим блоком фильтрованный опорный блок принимают в рассмотрение или игнорируют, чтобы формировать кодированный битовый поток видеоданных.
4. Кодер видео по п.2,
содержащий кодирующее средство, приспособленное для формирования кодированного битового потока видеоданных на основе ошибки предсказания, соответствующей блоку предсказания, выводимому модулем компенсации движения.
5. Кодер видео по п.1,
содержащий кодирующее средство, приспособленное для формирования кодированного битового потока видеоданных таким образом, что кодированный битовый поток видеоданных содержит информацию движения и информацию о фильтре,
причем информация движения содержит вектор движения, и
информация фильтра указывает, основан ли кодированный битовый поток видеоданных на ошибке предсказания между текущим блоком и фильтрованным блоком предсказания или на ошибке предсказания между текущим блоком и нефильтрованным блоком предсказания.
6. Кодер видео по п.5,
в котором кодирующее средство приспособлено добавлять в кодированный битовый поток видеоданных информацию фильтра на уровне блока для каждого кодированного с предсказанием текущего блока, на уровне кадра, на уровне GOP (группы видеокадров), на уровне PPS (набора параметров видеокадра) или на уровне SPS (набора параметров последовательности).
7. Кодер видео по любому из пп.4-6,
содержащий модуль преобразования и квантования, приспособленный для преобразования ошибки предсказания с помощью линейного пространственного преобразования с тем, чтобы формировать коэффициенты преобразования, и для квантования коэффициентов преобразования, и
модуль сканирования и энтропийный кодер, соответственно приспособленные для сканирования и энтропийного кодирования квантованных коэффициентов преобразования, чтобы формировать кодированный битовый поток видеоданных.
8. Кодер видео по п.1,
в котором модуль выбора фильтра приспособлен для получения значения угла вектора движения, например, относительно положительной горизонтальной оси и для выбора упомянутого одного фильтра из множества фильтров в зависимости от угла.
9. Кодер видео по п.1 для одноуровневого кодирования видеопотока.
10. Кодер видео по п.1,
в котором модуль выбора фильтра приспособлен для выбора одного фильтра из множества фильтров размытия и/или устранения размытия в зависимости от ориентации вектора движения.
11. Гибридный видеокодер для внутри- и межкадрового предсказания, содержащий кодер видео по п.1.
12. Способ для кодирования с предсказанием видеопотока последующих кадров согласно компенсации движения в кодированный битовый поток видеоданных,
содержащий:
- этап сохранения, по меньшей мере, одного опорного кадра видеопотока, упомянутый опорный кадр является отличным от текущего кадра видеопотока,
- этап оценки движения, содержащий формирование вектора движения путем оценивания движения между опорным блоком опорного кадра и текущим блоком текущего кадра,
- этап выбора одного фильтра из множества фильтров в зависимости от ориентации вектора движения,
- этап формирования фильтрованного опорного блока путем применения выбранного фильтра к опорному блоку,
- этап компенсации движения, содержащий формирование фильтрованного блока предсказания текущего блока на основе текущего блока и фильтрованного опорного блока.
13. Декодер видео для декодирования кодированного битового потока видеоданных, полученного путем кодирования с предсказанием видеопотока последующих кадров согласно компенсации движения,
причем кодированный битовый поток видеоданных содержит кодированный с предсказанием текущий кадр и кодированный вектор движения, отражающий движение между опорным блоком опорного кадра и текущим блоком текущего кадра, упомянутый опорный кадр является отличным от текущего кадра,
содержащий:
- декодер, приспособленный для декодирования кодированного опорного кадра и кодированного вектора движения, чтобы сформировать опорный кадр и вектор движения,
- буфер кадров, приспособленный для сохранения опорного кадра,
- модуль выбора фильтра, приспособленный для выбора одного фильтра из множества фильтров в зависимости от ориентации вектора движения,
- модуль фильтрации, приспособленный для формирования фильтрованного опорного блока путем применения выбранного фильтра к опорному блоку,
- модуль компенсации движения, приспособленный для формирования текущего блока кодированного с предсказанием текущего кадра на основе вектора движения и фильтрованного опорного блока.
14. Декодер видео по п.13,
в котором кодированный битовый поток видеоданных содержит информацию фильтра, связанную с текущим блоком,
декодер приспособлен для декодирования информации фильтра, и
модуль компенсации движения приспособлен, чтобы, в зависимости от значения информации фильтра, формировать текущий блок кодированного с предсказанием текущего кадра на основе вектора движения и фильтрованного опорного блока или на основе вектора движения и опорного блока.
15. Декодер видео по любому из пп.13-14,
в котором модуль выбора фильтра приспособлен для получения значения угла вектора движения, например, относительно положительной горизонтальной оси и для выбора упомянутого одного фильтра из множества фильтров в зависимости от угла.
16. Декодер видео по п.13 для одноуровневого кодирования видеопотока.
17. Декодер видео по п.13,
в котором модуль выбора фильтра приспособлен для выбора одного фильтра из множества фильтров размытия и/или устранения размытия в зависимости от ориентации вектора движения.
18. Гибридный видеодекодер для внутри- и межкадрового предсказания, содержащий декодер видео по п.13.
19. Способ декодирования кодированного битового потока видеоданных, полученного путем кодирования с предсказанием видеопотока последующих кадров согласно компенсации движения,
причем кодированный битовый поток видеоданных содержит, по меньшей мере, один кодированный опорный кадр, кодированный с предсказанием текущий кадр, упомянутый опорный кадр является отличным от текущего кадра и кодированный вектор движения отражает движение между опорным блоком опорного кадра и текущим блоком текущего кадра,
содержащий:
- декодирование кодированного опорного кадра и кодированного вектора движения, чтобы сформировать опорный кадр и вектор движения,
- сохранение опорного кадра,
- выбор одного фильтра из множества фильтров в зависимости от ориентации вектора движения,
- формирование фильтрованного опорного блока путем применения выбранного фильтра к опорному блоку,
- компенсацию движения, содержащую формирование текущего блока для кодированного с предсказанием текущего кадра на основе вектора движения и фильтрованного опорного блока.
СПОСОБ И МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ ДЛЯ ВЕРИФИКАЦИИ И СОХРАНЕНИЯ ЭЛЕКТРОННОГО ДОКУМЕНТА | 2005 |
|
RU2391720C2 |
ВЫПОЛНЕНИЕ ПРЕДСКАЗАНИЯ ВЕКТОРА ДВИЖЕНИЯ ДЛЯ ВИДЕОКОДИРОВАНИЯ | 2012 |
|
RU2550554C2 |
ПОСТРОЕНИЕ СПИСКА ОПОРНЫХ КАРТИНОК ДЛЯ КОДИРОВАНИЯ ВИДЕО | 2012 |
|
RU2549162C1 |
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
Авторы
Даты
2019-04-04—Публикация
2015-05-21—Подача