Область техники, к которой относится изобретение
Настоящее устройство относится к области кодирования и декодирования видеопрограмм и конкретнее, к способу и устройству прогнозирования изображения.
Уровень техники
По мере развития технологий оптоэлектроники и при растущих потребностях в получении цифровых видеопрограмм высокой четкости, объем видеоданных становится все больше и больше. Ограниченность полосы пропускания гетерогенных каналов передачи информации и диверсифицированность разнообразных видео приложений предъявляют еще более высокие требования к эффективности видео кодирования. В этих условия появление таких требований привело к началу разработки стандарта Высокоэффективного видео кодирования (High Efficiency Video Coding (HEVC)).
Базовый принцип сжатия данных посредством видео кодирования состоит в использовании корреляции между пространственной областью, временной областью и кодовым словом для устранения избыточности, насколько это возможно. В настоящее время общеупотребительной является концепция гибридного видео кодирования на блочной основе для осуществления сжатия данных посредством видео кодирования с использованием последовательности этапов, таких как прогнозирование (включая внутрикадровое прогнозирование и межкадровое прогнозирование), преобразование, квантование и энтропийное кодирование. Эта концепция кодирования является достаточно мощной, так что указанная концепция гибридного видео кодирования на блочной основе также используется для стандарта кодирования HEVC.
В самых разнообразных схемах видео кодирования/декодирования технология оценки движения/компенсации движения является ключевой технологией, влияющей на производительность и другие характеристики процессов кодирования/декодирования. Во многих существующих схемах видео кодирования/декодирования предполагается, в общем случае, что движение объекта отвечает требованиям модели поступательного движения и что различные части всего этого объекта совершают одинаковое движение. Существующий алгоритм оценки движения/компенсации движения по существу представляет собой алгоритм компенсации движения на блочной основе, опирающийся на модель поступательного движения. Существующие способы межкадрового прогнозирования представляют собой алгоритмы прогнозирования с компенсацией движения на блочной основе, опирающиеся на модель поступательного движения. Кроме того, сейчас постепенно появляются некоторые модели непоступательного движения (например, модель аффинного движения), предназначенные для представления непоступательного движения.
В механизме прогнозирования на основе модели аффинного движения, векторы движения с низкой точностью для двух контрольных точек в текущем блоке изображения и модель аффинного движения могут быть использованы для прогнозирования величин пикселей в известных технических решениях с целью получения прогнозируемой величины пикселя с низкой погрешностью в составе текущего блока изображения. В процессе прогнозирования величин пикселей необходимо использовать интерполяционный фильтр для осуществления операции интерполяционной фильтрации. Точность полученной прогнозируемой величины пикселя для текущего блока изображения является такой же, как точность векторов движения для двух контрольных точек. Если нужно получить прогнозируемую величину пикселя с более высокой точностью для того же текущего блока изображения, дополнительно требуется применить билинейный интерполяционный фильтр для осуществления вторичной интерполяционной фильтрации применительно к полученной прогнозируемой величине пикселя с низкой точностью для текущего блока изображения.
В известных технических решениях, если векторы движения с низкой точностью для двух контрольных точек и модель аффинного движения используются для получения прогнозируемой величины пикселя с более высокой точностью для текущего блока изображения, необходимо выполнить по меньшей мере две операции интерполяционной фильтрации (при этом для каждой операции интерполяционной фильтрации требуется осуществить относительно большое число промежуточных операций обмена с кэш-памятью и запоминающим устройством). В результате в течение всего процесса прогнозирования полного изображения может потребоваться произвести относительно большое число промежуточных операций обмена с кэш-памятью и запоминающим устройством, а общая вычислительная сложность становится сравнительно высокой.
Раскрытие сущности изобретения
Варианты настоящего изобретения обеспечивают способ и устройство прогнозирования движения для уменьшения количества промежуточных операций обмена с кэш-памятью и запоминающим устройством, которые нужно осуществить в процессе прогнозирования изображения, и снижения вычислительной сложности процесса прогнозирования изображения.
Первый аспект вариантов настоящего изобретения предлагает способ прогнозирования изображения, содержащий этапы, на которых:
определяют векторы движения для W контрольных точек в текущем блоке изображения;
получают, посредством вычислений, векторы движения для P пиксельных единиц в текущем блоке изображения путем использования модели движения и векторов движения для W контрольных точек, где погрешность найденных векторов движения для W контрольных точек составляет 1/n погрешности пикселей, погрешность вектора движения, полученного посредством вычислений и соответствующего каждой из P пиксельных единиц, составляет 1/N погрешности пикселя, указанные P пиксельных единиц являются некоторыми или всеми пиксельными единицами из состава текущего блока изображения, вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц, W, n и N представляют собой целые числа больше 1, N больше n и P представляет собой положительное целое число; и
выполняют интерполяционную фильтрацию пикселя из соответствующей опорной пиксельной единицы, в составе опорного изображения, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q с целью получения прогнозируемой величины пикселя в каждой из P пиксельных единиц, где Q представляет собой целое число больше n.
С учетом первого аспекта, в первом возможном варианте реализации этого первого аспекта, величина N равна предварительно заданному фиксированному числу, а величина Q не больше величины N.
С учетом первого аспекта или первого возможного варианта реализации первого аспекта, во втором возможном варианте реализации этого первого аспекта, горизонтальная составляющая или вертикальная составляющая одного из векторов движения для W контрольных точек усилена в N раз в модели движения с использованием числа N, либо разница составляющих между векторами движения для любых двух из W контрольных точек усилена в N раз в модели движения с использованием числа N.
С учетом первого аспекта, первого возможного варианта реализации первого аспекта или второго возможного варианта реализации первого аспекта, в третьем возможном варианте реализации этого первого аспекта, процедура интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q содержит:
получение, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц; определение на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанным соответствующим пиксельным единицам, где коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и осуществление интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице.
С учетом третьего возможного варианта реализации первого аспекта, в четвертом возможном варианте реализации этого первого аспекта, процедура получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц содержит: получение, посредством вычислений, фазы каждой из P пиксельных единиц по следующей формуле с использованием вектора движения для каждой из этих P пиксельных единиц:
где
M равно log2N, когда N равно целой степени 2, X' представляет горизонтальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения, Y' представляет вертикальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения,
С учетом третьего возможного варианта реализации первого аспекта или четвертого возможного варианта реализации первого аспекта, в пятом возможном варианте реализации этого первого аспекта, фаза содержит горизонтальную фазу и вертикальную фазу; а процедура определения, на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанной пиксельной единице, содержит: определение, на основе горизонтальной фазы для каждой пиксельной единицы, горизонтального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице; и определение, на основе вертикальной фазы для каждой пиксельной единицы, вертикального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе.
С учетом пятого возможного варианта реализации первого аспекта, в шестом возможном варианте реализации этого первого аспекта, процедура осуществления интерполяционной фильтрациии пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной пиксельной единице, содержит этапы, на которых:
выполняют горизонтальнуюй интерполяционную фильтрацию пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения результата горизонтальной интерполяционной фильтрации; и выполняют вертикальную интерполяционную фильтрацию результата горизонтальной интерполяционной фильтрации с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения прогнозируемой величины пикселя из состава пиксельной единицы i, где эта пиксельная единица i представляет собой одну из P пиксельных единиц; или
выполняют вертикальную интерполяционную фильтрацию пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы j с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения результата вертикальной интерполяционной фильтрации; и выполняют горизонтальную интерполяционную фильтрацию результата вертикальной интерполяционной фильтрации с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения прогнозируемой величины пикселя из состава пиксельной единицы j, где эта пиксельная единица j представляет собой одну из P пиксельных единиц.
С учетом любого из признаков - первого аспекта или возможных вариантов реализации первого аспекта с первого по шестой, в седьмом возможном варианте реализации этого первого аспекта, модель движения представляет собой модель поступательного движения, модель аффинного движения, модель вращательного движения, модель параболического движения, модель сдвигового движения, модель зуммирующего движения, перспективную модель движения или билинейную модель движения.
С учетом любого из признаков - первого аспекта или возможных вариантов реализации первого аспекта с первого по седьмой, в восьмом возможном варианте реализации этого первого аспекта, модель движения представлена в следующем виде, когда W равно 2:
или
где
L представляет ширину или высоту текущего блока изображения,
С учетом любого из признаков - первого аспекта, или возможных вариантов реализации первого аспекта с первого по седьмой, в девятом возможном варианте реализации этого первого аспекта, модель движения представлена в следующем виде, когда W равно 3:
где
С учетом какого-либо одного из признаков - первого аспекта или возможных вариантов реализации первого аспекта с первого по девятый, в десятом возможном варианте реализации этого первого аспекта, векторы движения для W контрольных точек прогнозируют на основе вектора движения, погрешность которого составляет 1/n от погрешности пикселя, в кодированном блоке изображения или в декодированном блоке изображения, окружающем текущий блок изображения.
С учетом какого-либо одного из признаков - первого аспекта или возможных вариантов реализации первого аспекта с первого по десятый, в одиннадцатом возможном варианте реализации этого первого аспекта, способ прогнозирования изображения применяют к процессу видео кодирования или к процессу видео декодирования.
Второй аспект настоящего изобретения обеспечивает устройство для прогнозирования изображения, содержащее:
первый модуль определения для определения векторов движения для W контрольных точек в текущем блоке изображения;
вычислительный модуль для получения, посредством вычислений, векторов движения для P пиксельных единиц в составе текущего блока изображения с использованием модели движения и векторов движения для этих W контрольных точек, где погрешность найденных векторов движения для W контрольных точек составляет 1/n от погрешности пикселя, погрешность вектора движения, который получают посредством вычислений и который соответствует каждой из P пиксельных единиц составляет 1/N от погрешности пикселя, эти P пиксельных единиц представляют собой некоторые или все пиксельные единицы из состава текущего блока изображения, вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц, W, n и N представляют собой целые числа больше 1, N больше n, и P представляет собой положительное целое число, и
модуль интерполяционной фильтрации для выполнения интерполяционной фильтрации пикселя из соответствующей опорной пиксельной единицы, в составе опорного изображения, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q с целью получения прогнозируемой величины пикселя в каждой из P пиксельных единиц, где Q представляет собой целое число больше n.
С учетом второго аспекта, в первом возможном варианте реализации этого второго аспекта, величина N равна заданному фиксированному числу, а величина Q не больше величины N.
С учетом второго аспекта или первого возможного варианта реализации второго аспекта, во втором возможном варианте реализации этого второго аспекта, горизонтальная составляющая или вертикальная составляющая одного из векторов движения для W контрольных точек усилена в N раз в модели движения с использованием числа N, либо разница составляющих между векторами движения для каких-либо двух из W контрольных точек усилена в N раз в модели движения с использованием числа N.
С учетом второго аспекта, первого возможного варианта реализации второго аспекта или второго возможного варианта реализации второго аспекта, в третьем возможном варианте реализации этого второго аспекта, модуль интерполяционной фильтрации специально конфигурирован для: получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц; определения на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанным соответствующим пиксельным единицам, где коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и осуществления интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице.
С учетом третьего возможного варианта реализации второго аспекта, в четвертом возможном варианте реализации этого второго аспекта, с целью получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц модуль интерполяционной фильтрации специально конфигурирован для: получения, посредством вычислений, фазы каждой из P пиксельных единиц по следующей формуле с использованием вектора движения для каждой из этих P пиксельных единиц:
где
M равно log2N, когда N равно целой степени 2, X' представляет горизонтальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения, Y' представляет вертикальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения,
С учетом третьего возможного варианта реализации второго аспекта или четвертого возможного варианта реализации второго аспекта, в пятом возможном варианте реализации этого второго аспекта, фаза содержит горизонтальную фазу и вертикальную фазу; а с целью определения, на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, модуль интерполяционной фильтрации специально конфигурирован для: определения, на основе горизонтальной фазы для каждой пиксельной единицы, горизонтального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице; и определения, на основе вертикальной фазы для каждой пиксельной единицы, вертикального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе.
С учетом пятого возможного варианта реализации второго аспекта, в шестом возможном варианте реализации этого второго аспекта, с целью осуществления интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, модуль интерполяционной фильтрации специально конфигурирован для: выполнения горизонтальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения результата горизонтальной интерполяционной фильтрации; и осуществления вертикальной интерполяционной фильтрации результата горизонтальной интерполяционной фильтрации с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения прогнозируемой величины пикселя из состава пиксельной единицы i, где пиксельная единица i представляет собой какую-либо одну из P пиксельных единиц; или модуль интерполяционной фильтрации специально конфигурирован для: осуществления вертикальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы j с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения результата вертикальной интерполяционной фильтрации; и выполнения горизонтальной интерполяционной фильтрации результата вертикальной интерполяционной фильтрации с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения прогнозируемой величины пикселя из состава пиксельной единицы j, где эта пиксельная единица j представляет собой одну из P пиксельных единиц.
С учетом какого-либо одного из признаков - второго аспекта или возможных вариантов реализации второго аспекта с первого по шестой, в седьмом возможном варианте реализации этого второго аспекта, модель движения представляет собой модель поступательного движения, модель аффинного движения, модель вращательного движения, модель зуммирующего движения, модель параболического движения, модель сдвигового движения, перспективную модель движения или билинейную модель движения.
С учетом какого-либо одного из признаков - второго аспекта или возможных вариантов реализации второго аспекта с первого по седьмой, в восьмом возможном варианте реализации этого второго аспекта, модель движения представлена в следующем виде, когда W равно 2:
или
где
L представляет ширину или высоту текущего блока изображения,
С учетом какого-либо одного из признаков - второго аспекта или возможных вариантов реализации второго аспекта с первого по седьмой, в девятом возможном варианте реализации этого второго аспекта, модель движения представлена в следующем виде, когда W равно 3:
или
где
С учетом какого-либо одного из признаков - второго аспекта или возможных вариантов реализации второго аспекта с первого по девятый, в десятом возможном варианте реализации этого второго аспекта, векторы движения для W контрольных точек прогнозируют на основе вектора движения, погрешность которого составляет 1/n от погрешности пикселя, в кодированном блоке изображения или в декодированном блоке изображения, окружающем текущий блок изображения.
С учетом какого-либо одного из признаков - второго аспекта или возможных вариантов реализации второго аспекта с первого по десятый, в одиннадцатом возможном варианте реализации этого второго аспекта, указанное устройство прогнозирования изображения применимо к устройству для видео кодирования или указанное устройство прогнозирования изображения применимо к устройству видео декодирования.
Один из вариантов настоящего изобретения дополнительно обеспечивает устройство прогнозирования изображения, содержащее процессор и запоминающее устройство. Указанное устройство прогнозирования изображения может дополнительно содержать, например, сетевой интерфейс. Запоминающее устройство конфигурировано для сохранения команд, процессор конфигурирован для выполнения этих команд, а сетевой интерфейс конфигурирован для связи, под управлением процессора, с другими устройствами.
Например, процессор конфигурирован для: определения векторов движения для W контрольных точек в составе текущего блока изображения; получения, посредством вычислений, векторов движения для P пиксельных единиц в составе текущего блока изображения с использованием модели движения и векторов движения для указанных W контрольных точек, где погрешность найденных векторов движения для W контрольных точек составляет 1/n от погрешности пикселя, погрешность вектора движения, который получают посредством вычислений и который соответствует каждой из P пиксельных единиц, составляет 1/N от погрешности пикселя, эти P пиксельных единиц представляют собой некоторые или все пиксельные единицы из состава текущего блока изображения, вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц, W, n и N являются целыми числами больше 1, N больше n, и P представляет собой положительное целое число; и для интерполяционной фильтрации пикселя из соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q, для получения прогнозируемой величины пикселя из каждой из P пиксельных единиц, где Q представляет собой целое число больше n.
Кроме того, один из вариантов настоящего изобретения далее предлагает читаемый компьютером носитель данных (или просто компьютерный носитель данных). Это компьютерный носитель данных сохраняет записанный на нем программный код для прогнозирования изображений. Этот программный код содержит команды для осуществления способа прогнозирования изображения.
Из описания способа прогнозирования изображения, предлагаемого различными вариантами настоящего изобретения, можно понять, что вектор движения, погрешность которого составляет 1/N от погрешности пикселя, для каждой пиксельной единицы в составе текущего блока изображения получают посредством вычислений с использованием модели движения и векторов движения, погрешность которого составляет 1/n от погрешности пикселя, для указанных W контрольных точек, где N больше n. Другими словами, точность вектора движения, который получают посредством вычислений и который соответствует каждой из пиксельных единиц в составе текущего блока изображения, выше точности найденных векторов движения для W контрольных точек. Вектор движения с более высокой точностью получают в первую очередь. Потом обладающий более высокой точностью вектор движения для каждой пиксельной единицы в составе текущего блока изображения используют для определения соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы в составе текущего блока изображения, и осуществляют интерполяционную фильтрацию пикселя из соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы в составе текущего блока изображения с использованием интерполяционного фильтра с фазой Q (Q больше n), с целью получения прогнозируемой величины пикселя для каждой пиксельной единицы в составе текущего блока изображения. Можно также понять, что изложенный выше способ помогает уменьшить число раз, когда нужно будет применять интерполяционную фильтрацию для получения, посредством прогнозирования, прогнозируемой величины пикселя с более высокой точностью в составе текущего блока изображения (например, может не потребоваться осуществлять интерполяционную фильтрацию с меньшей точностью для получения прогнозируемой величины пикселя, обладающей меньшей точностью), что позволяет уменьшить число промежуточных операций с кэш-памятью и запоминающим устройством, необходимых для осуществления интерполяционной фильтрации в процессе прогнозирования изображения, и снизить вычислительную сложность процесса прогнозирования изображений.
Краткое описание чертежей
Для более ясного описания технических решений, предлагаемых вариантами настоящего изобретения, далее кратко охарактеризованы прилагаемые чертежи, необходимые для понимания вариантов изобретения. Очевидно, что прилагаемые чертежи в последующем описании показывают всего лишь некоторые варианты настоящего изобретения, однако даже рядовые специалисты в рассматриваемой области все равно могут на основе прилагаемых чертежей разработать другие чертежи без особых творческих усилий.
Фиг. 1-a и Фиг. 1-b представляют схематичные диаграммы нескольких типов разбиения блока изображения согласно одному из вариантов настоящего изобретения;
Фиг. 2-a представляет упрощенную логическую схему способа прогнозирования изображения согласно одному из вариантов настоящего изобретения;
Фиг. 2-b представляет логическую схему процедуры прогнозирования векторов движения для контрольных точек согласно одному из вариантов настоящего изобретения;
Фиг. 3-a представляет упрощенную логическую схему другого способа прогнозирования изображения согласно одному из вариантов настоящего изобретения;
Фиг. 3-b представляет схематичную диаграмму процедуры определения местонахождения целого пикселя и процедуры обнаружения частичного пикселя (субпикселя) согласно одному из вариантов настоящего изобретения;
Фиг. 4 представляет упрощенную логическую схему другого способа прогнозирования изображения согласно одному из вариантов настоящего изобретения;
Фиг. 5 представляет упрощенную схему устройства прогнозирования изображения согласно одному из вариантов настоящего изобретения; и
Фиг. 6 представляет упрощенную схему другого устройства прогнозирования изображения согласно одному из вариантов настоящего изобретения.
Осуществление изобретения
Варианты настоящего изобретения предлагают способ и устройство для прогнозирования изображения, позволяющие уменьшить число промежуточных операций с кэш-памятью и с запоминающим устройством, необходимых для интерполяционной фильтрации в процессе прогнозирования изображения, и снизить вычислительную сложность процесса прогнозирования изображения.
В настоящем описании, Формуле изобретения и на прилагаемых чертежах термины «первый», «второй», «третий» и т.д. предназначены только для различения разных объектов, но не для указания какого-то конкретного порядка этих объектов. Кроме того, термины «включающий (в себя)», «содержащий» и любые другие варианты этих терминов предназначены для обозначения неисключительного включения. Например, процесс, способ, система, продукт или устройство, содержащие ряд этапов или модулей, не ограничиваются приведенным списком этапов или модулей, но, в качестве опций, могут дополнительно содержать другие, не указанные в списке этапы или модули, либо, в качестве опции, могут также содержать другие, естественные этапы или модули такого процесса, способа, системы, продукта или устройства.
Далее, будут сначала коротко описаны некоторые концепции, которые могут относиться к вариантам настоящего изобретения.
Согласно большинству концепций кодирования видео последовательность содержит ряд изображений (кадров), каждое такое изображение разбивают на срезы, а срез, в свою очередь, разбивают на блоки. Процедура ввидео кодирования осуществляется на основе единиц блоков, а само кодирование может быть начато с верхнего левого угла изображения и затем продолжено строка за строкой слева направо и сверху вниз. В некоторых новых стандартах видео кодирования концепция блоков еще более расширена. В стандарте H.264 описаны макроблоки (macroblock (MB)), причем такой макроблок MB может быть далее разделен на множество ячеек прогнозирования, которые могут быть использованы для прогнозирующего кодирования. В стандарте HEVC используются базовые концепции единиц кодирования (coding unit (CU)), единиц прогнозирования (prediction unit (PU)), единиц преобразования (transform unit (TU)) и другие подобные концепции. Единицы нескольких типов получают путем разбиения функций, их описывают с использованием вновь предлагаемой структуры на основе дерева. Например, единица CU может быть разделена на единицы CU меньше размера в соответствии со структурой дерева квадрантов, а единицы CU меньшего размера можно разбивать далее, так что в результате образуется структура дерева квадрантов. Структуры деревьев для единиц PU и единиц TU аналогичны дереву для единиц CU. Такие единицы CU, единицы PU и единицы TU все, по существу, принадлежат концепции блоков. Аналогично макроблоку MB или кодируемому блоку единица CU является базовой единицей для разбиения и кодирования изображения. Единица PU является базовой единицей для прогнозирующего кодирования и может соответствовать ячейке прогнозирования. В соответствии со способом разбиения единицу CU далее разбивают на несколько единиц PU. Единица TU является базовой единицей для преобразования прогнозируемого остатка и может соответствовать блоку преобразования. Согласно стандарту высокоэффективного видео кодирования (HEVC) единица CU, единица PU и единица TU могут коллективно называться блоком дерева кодирования (coding tree block (CTB)) и так далее.
В стандарте HEVC единицы кодирования могут иметь четыре уровня по размерам: 64 x 64, 32 x 32, 16 x 16 и 8 x 8. Единица кодирования каждого уровня может быть разбита на единицы прогнозирования разного размера в соответствии со способами внутрикадрового прогнозирования и межкадрового прогнозирования. Например, как показано на Фиг. 1-a и Фиг. 1-b, на Фиг. 1-a представлен способ разбиения единиц прогнозирования, соответствующий внутрикадровому прогнозированию, а на Фиг. 1-b представлены несколько способов разбиений единиц прогнозирования, соответствующих межкадровому прогнозированию.
В процессе разработки и развития технологии видео кодирования экспертами в области видео кодирования были предложены и очерчены различные методы использования пространственно-временной корреляции между соседними кодированными/декодированными блоками для повышения эффективности кодирования. Согласно предложенному в стандарте H.264 способу Усовершенствованного видео кодирования (advanced video coding (AVC)) мощными средствами повышения эффективности кодирования являются режим пропуска и прямой режим. В случае низкой скорости передачи данных количество блоков, использующих эти два режима кодирования, составляет более половины общего количества блоков в полной последовательности кодирования. Когда используется режим пропуска, вектор движения для текущего блока изображения может быть получен посредством вывода с использованием вектора движения окружения в предположении, что тег режима пропуска передают в потоке битов данных, а величину опорного блока непосредственно используют в качестве реконструированной величины текущего блока изображения согласно вектору движения. В качестве альтернативы, когда используется прямой режим, устройство кодирования может получить, посредством вывода, вектор движения для текущего блока изображения с использованием вектора движения окружения, непосредственно используя величину опорного блока в качестве прогнозируемой величины текущего блока изображения согласно вектору движения, и осуществляя прогнозирующее кодирование текущего блока изображения на стороне кодирующего устройства с использованием прогнозируемой величины. В настоящее время в самой последней версии стандарта высокоэффективного видео кодирования (HEVC) используются некоторые новые средства кодирования для дальнейшего улучшения характеристик видео кодирования. Двумя важными средствами межкадрового прогнозирования являются режим объединенного кодирования и режим усовершенствованного прогнозирования вектора движения (advanced motion vector prediction (AMVP)). В режиме объединенного кодирования информацию движения (включая вектор движения (motion vector (MV)), направление прогнозирования, индекс опорного кадра и т.п.) для кодированного блока, окружающего текущий кодируемый блок, используют для формирования набора-кандидата информации движения. Набор-кандидат информации движения, которому соответствует наивысшая эффективность кодирования, может быть выбран путем сравнения в качестве информации движения для текущего кодируемого блока. Прогнозирующее кодирование осуществляется для текущего кодируемого блока с использованием прогнозируемой величины, найденной в опорном кадре, для текущего кодирующего блока. Кроме того, величина индекса, указывающего конкретный окружающий кодированный блок, информацию движения для которого выбирают, может быть записана в потоке битов данных. Когда применяется режим усовершенствованного прогнозирования вектора движения, тогда вектор движения окружающего кодированного блока используется в качестве прогнозируемой величины вектора движения для текущего кодируемого блока, вектор движения с наивысшей эффективностью кодирования может быть выбран для прогнозирования вектора движения для текущего кодируемого блока, и величина индекса, указывающего выбор конкретного окружающего вектора движения, может быть записана в потоке битов видеоданных.
Дальнейшее продолжает описание технических решений вариантов настоящего изобретения.
Далее, сначала описан способ прогнозирования изображения, предлагаемый вариантами настоящего изобретения. Способ прогнозирования изображения, предлагаемый вариантами настоящего изобретения, осуществляется устройством для видео кодирования или устройством для видео декодирования. Такое устройство видео кодирования или такое устройство видео декодирования может представлять собой какое-либо устройство, которое должно передавать на выход или сохранять видео программы, например, компьютер ноутбук, планшетный компьютер, персональный компьютер, мобильный телефон, видео сервер или другое устройство.
В одном из вариантов способа прогнозирования изображения, предлагаемого в настоящем изобретении, этот способ прогнозирования изображения может содержать определение векторов движения для W контрольных точек в текущем блоке изображения; получение, посредством вычислений, векторов движения для P пиксельных единиц в текущем блоке изображения путем использования модели движения и векторов движения для W контрольных точек, где погрешность найденных векторов движения для W контрольных точек составляет 1/n погрешности пикселей, погрешность вектора движения, полученного посредством вычислений и соответствующего каждой из P пиксельных единиц, составляет 1/N погрешности пикселя, указанные P пиксельных единиц являются некоторыми или всеми пиксельными единицами из состава текущего блока изображения, вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц, W, n и N представляют собой целые числа больше 1, N больше n и P является положительным целым числом; и выполнение интерполяционной фильтрации пикселя из соответствующей опорной пиксельной единицы, в составе опорного изображения, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q с целью получения прогнозируемой величины пикселя в каждой из P пиксельных единиц, где Q представляет собой целое число больше n.
Фиг. 2-a представляет упрощенную логическую схему способа прогнозирования изображения согласно одному из вариантов настоящего изобретения. Как показано в примере, представленном на Фиг. 2-a, способ прогнозирования изображения, предлагаемый в этом варианте настоящего изобретения, может содержать следующие этапы.
201. Определение векторов движения для W контрольных точек в составе текущего блока изображения.
202. Получение, посредством вычислений, векторов движения для P пиксельных единиц в составе текущего блока изображения с использованием модели движения и векторов движения для указанных W контрольных точек.
Эти P пиксельных единиц представляют собой некоторые или все пиксельные единицы из состава текущего блока изображения.
Вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц. Поэтому вектор движения для каждой из указанных P пиксельных единиц может быть использован для определения соответствующей опорной пиксельной единицы, в опорном изображении, для соответствующей пиксельной единицы.
Погрешность найденных векторов движения для W контрольных точек составляет 1/n от погрешности пикселя.
Погрешность вектора движения, который получают посредством вычислений и который соответствует каждой из P пиксельных единиц составляет 1/N от погрешности пикселя.
Здесь W, n и N представляют собой целые числа больше 1.
Число N больше n. P представляет собой положительное целое число.
Поскольку N больше n, точность вектора движения, который получен посредством вычислений для каждой из указанных P пиксельных единиц, выше точности найденных векторов движения для W контрольных точек. Иными словами, в результате получают обладающие более высокой точностью векторы движения для P пиксельных единиц из состава текущего блока изображения.
В некоторых возможных вариантах реализации настоящего изобретения, векторы движения для W контрольных точек прогнозируют на основе вектора движения, погрешность которого составляет 1/n от погрешности пикселя, в кодированном блоке изображения или в декодированном блоке изображения, окружающем текущий блок изображения.
В примере, показанном на Фиг. 2-b, совокупность указанных W контрольных точек содержит контрольную точку LT, контрольную точку RT и контрольную точку LB. Вектор движения для контрольной точки LT можно прогнозировать на основе векторов движения, погрешность которых составляет 1/n от погрешности пикселя, для блоков A, B, и C изображения. Вектор движения для контрольной точки RT можно прогнозировать на основе векторов движения, погрешность которых составляет 1/n от погрешности пикселя, для блоков D и E изображения. Вектор движения для контрольной точки LB можно прогнозировать на основе векторов движения, погрешность которых составляет 1/n от погрешности пикселя, для блоков F и G изображения.
В некоторых возможных вариантах реализации настоящего изобретения, когда векторы движения для W контрольных точек основаны на прогнозируемых величинах, где погрешность этих прогнозируемых величин также составляет 1/n от погрешности пикселя, а разности между векторами движения, погрешность которых составляет 1/n от погрешности пикселя, для контрольных точек и соответствующие прогнозируемые величины могут быть записаны в потоке битов данных.
В некоторых возможных вариантах реализации настоящего изобретения указанная модель движения может представлять собой, например, модель поступательного движения, модель аффинного движения, модель вращательного движения, модель параболического движения, модель сдвигового движения, модель зуммирующего движения, перспективную модель движения или билинейную модель движения.
203. Выполнение интерполяционной фильтрации применительно к пикселю из состава опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q для получения прогнозируемой величины пикселя для каждой из P пиксельных единиц.
Здесь Q представляет собой целое число больше n.
В некоторых возможных вариантах реализации настоящего изобретения, величина N может представлять собой предварительно заданную фиксированную величину, а Q может быть меньше N. Когда величина N может представлять собой предварительно заданную фиксированную величину, это указывает, что точность векторов движения, полученных посредством вычислений с использованием модели движения и векторов движения для указанных W контрольных точек, для P пиксельных единиц в составе текущего блока изображения не обязательно связана с размером текущего блока изображения. Другими словами, например, на основе решения для этого варианта, прогнозируемая величина пикселя с предварительно заданной фиксированной точностью может быть найдена без промежуточной процедуры для получения прогнозируемой величины пикселя с меньшей погрешностью путем осуществления интерполяционной фильтрации с меньшей погрешностью.
Например, число W может быть равно 2, 3, 4, 5, 6, 8 или другой величине.
Например, число P может быть равно 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64 или другой величине.
Например, число Q может быть равно 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 или другой величине.
Например, число N может быть равно 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 или другой величине.
Например, число n может быть равно 8, 2, 4 или другой величине.
В некоторых возможных вариантах реализации настоящего изобретения, число N может быть равно целой степени 2, или конечно же, число N может быть равно другому положительному целому числу.
Пиксельная единица в различных вариантах настоящего изобретения может содержать один или несколько пикселей. Например, пиксельная единица может представлять собой блок пикселей размером 2 x 2, блок пикселей размером 2 x 1, блок пикселей размером 2 x 1, блок пикселей размером 4 x 4 или блок пикселей размером 4 x 2.
Контрольная точка в различных вариантах настоящего изобретения может содержать один или более пикселей. Например, контрольная точка может представлять собой блок пикселей размером 2 x 2, блок пикселей размером 2 x 1, блок пикселей размером 2 x 1, блок пикселей размером 4 x 4 или блок пикселей размером 4 x 2.
Из предшествующего можно понять, что согласно способу прогнозирования изображения, предлагаемому в этом варианте, вектор движения, погрешность которого составляет 1/N от погрешности пикселя, для каждой пиксельной единицы в составе текущего блока изображения, получают посредством вычислений с использованием модели движения и векторов движения, погрешность которых составляет 1/n от погрешности пикселя, для W контрольных точек, где N больше n. Другими словами, точность вектора движения, который получают посредством вычислений для каждой пиксельной единицы в составе текущего блока изображения выше точности найденных векторов движения для указанных W контрольных точек. Сначала получают вектор движения с более высокой точностью. Потом полученный вектор движения, обладающий более высокой точностью, для каждой пиксельной единицы из состава текущего блока изображения используют для определения соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы в составе текущего блока изображения, и осуществляют интерполяционную фильтрацию пикселя из соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы из состава текущего блока изображения с использованием интерполяционного фильтра с фазой Q (Q больше n), для получения прогнозируемой величины пикселя для каждой пиксельной единицы из состава текущего блока изображения. Можно понимать, что рассмотренный выше способ помогает уменьшить число операций интерполяционной фильтрации, требуемое для получения, посредством прогнозирования, прогнозируемой величины пикселя с более высокой точностью из состава текущего блока изображения (например, промежуточные операции для получения прогнозируемой величины пикселя с меньшей точностью путем осуществления интерполяционной фильтрации с более низкой точностью могут не потребоваться), с целью уменьшения количества промежуточных операций обмена с кэш-памятью и запоминающим устройством, которые нужны для интерполяционной фильтрации в процессе прогнозирования изображений, и уменьшить вычислительную сложность процесса прогнозирования изображения.
В некоторых возможных вариантах реализации настоящего изобретения, горизонтальная составляющая или вертикальная составляющая одного из векторов движения для W контрольных точек усилена в N раз в модели движения с использованием числа N, либо разница составляющих между векторами движения для каких-либо двух из W контрольных точек усилена в N раз в модели движения с использованием числа N.
Например, в некоторых возможных вариантах реализации настоящего изобретения, модель движения может быть представлена следующим образом, когда W равно 2:
или
где
L представляет ширину или высоту текущего блока изображения,
В другом примере, в некоторых возможных вариантах реализации настоящего изобретения, модель движения представлена в следующем виде, когда W равно 3:
или
где
Приведенные выше примеры рассмотрены с использованием модели аффинного движения. Когда используется модель поступательного движения, модель вращательного движения, модель сдвигового движения, модель зуммирующего движения, перспективная модель движения, модель параболического движения, билинейная модель движения или другая подобная модель, ссылки могут быть сделаны на приведенные выше примеры. Подробности здесь повторно описаны не будут.
Например, общая форма представления модели движения может иметь следующий вид:
погрешность вектора движения
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура определения соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц может содержать: получение, посредством вычислений, местонахождения целых пикселей для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц; и поиск, с использованием вектора движения для каждой из P пиксельных единиц, в опорном изображении для обнаружения опорной пиксельной единицы, соответствующей местонахождению целых пикселей в каждой из P пиксельных единиц, где опорная пиксельная единица, которая соответствует местонахождению целого пикселя в каждой из P пиксельных единиц и которая найдена в опорном изображении, является опорной пиксельной единицей, в опорном изображении, для каждой из P пиксельных единиц.
В частности, например, местонахождение целого пикселя в составе пиксельной единицы i может быть получено посредством вычислений с использованием вектора движения для пиксельной единицы i из совокупности P пиксельных единиц, и можно произвести поиск в опорном изображении с использованием вектора движения для пиксельной единицы i, с целью обнаружения опорной пиксельной единицы, соответствующей местонахождению целого пикселя в пиксельной единице i, где опорная пиксельная единица, которая соответствует местонахождению целого пикселя в пиксельной единице i и которая найдена в опорном изображении, является опорной пиксельной единицей, в опорном изображении, для пиксельной единицы i. Эта пиксельная единица i может быть одной из указанных P пиксельных единиц. Например, соответствующая опорная пиксельная единица, в опорном изображении, для каждой из P пиксельных единиц может быть определена способом, аналогичным способу определения опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i.
В некоторых возможных вариантах реализации настоящего изобретения, процедура получения, посредством вычислений, местонахождения целого пикселя для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц содержит:
получение, посредством вычислений, местонахождения целого пикселя для каждой из P пиксельных единиц согласно следующей формуле с использованием вектора движения для каждой из P пиксельных единиц:
где
M равно log2N, когда N равно целой степени 2, (xInt, yInt) представляет координаты местонахождения целого пикселя в составе пиксельной единицы с координатами (x, y) в текущем блоке изображения,
В некоторых возможных вариантах реализации настоящего изобретения, процедура выполнения интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q содержит:
получение, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц; определение на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанным соответствующим пиксельным единицам, где коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и осуществление интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице.
В частности, например, фаза пиксельной единицы i может быть получена посредством вычислений с использованием вектора движения для пиксельной единицы i из состава P пиксельных единиц; интерполяционный фильтр с фазой Q, которая соответствует пиксельной единице i, может быть определен на основе фазы пиксельной единицы i, где коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и интерполяционная фильтрация может быть осуществлена для пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного интерполяционного фильтра с фазой Q, соответствующей этой пиксельной единице i. Рассматриваемая пиксельная единица i может быть какой-либо одной из P пиксельных единиц. Например, интерполяционная фильтрация может быть осуществлена для каждой из P пиксельных единиц с применением способа, аналогичного выполнению интерполяционной фильтрации для пиксельной единице i.
В некоторых возможных вариантах реализации настоящего изобретения процедура получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц содержит: получение, посредством вычислений, фазы каждой из P пиксельных единиц по следующей формуле с использованием вектора движения для каждой из этих P пиксельных единиц:
M равно log2N, когда N равно целой степени 2, X' представляет горизонтальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения, Y' представляет вертикальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения,
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, фаза содержит горизонтальную фазу и вертикальную фазу; а процедура определения, на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанной пиксельной единице, содержит: определение, на основе горизонтальной фазы для каждой пиксельной единицы, горизонтального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице; и определение, на основе вертикальной фазы для каждой пиксельной единицы, вертикального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе.
В частности, например, горизонтальный интерполяционный фильтр с фазой Q, которая соответствует пиксельной единице i, может быть определен на основе горизонтальной фазы этой пиксельной единицы i, и вертикальный интерполяционный фильтр с фазой Q, которая соответствует пиксельной единице i, может быть определен на основе вертикальной фазы этой пиксельной единицы i, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе пиксельной единицы i, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе этой пиксельной единицы i. Рассматриваемая пиксельная единица i может представлять собой какую-либо одну из указанных P пиксельных единиц. Например, интерполяционный фильтр с фазой Q, соответствующий каждой из этих P пиксельных единиц, может быть определен способом, аналогичным тому, который был использован для определения интерполяционного фильтра с фазой Q, соответствующего пиксельной единице i.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной пиксельной единице, содержит:
выполнение горизонтальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения результата горизонтальной интерполяционной фильтрации; и выполнение вертикальной интерполяционной фильтрации результата горизонтальной интерполяционной фильтрации с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения прогнозируемой величины пикселя из состава пиксельной единицы i, где пиксельная единица i представляет собой какую-либо одну из P пиксельных единиц; или
выполнение вертикальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы j с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения результата вертикальной интерполяционной фильтрации; и выполнения горизонтальной интерполяционной фильтрации результата вертикальной интерполяционной фильтрации с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения прогнозируемой величины пикселя из состава пиксельной единицы j, где эта пиксельная единица j представляет собой одну из P пиксельных единиц.
Кроме того, если пиксельная единица имеет только одну фазу (иными словами, имеет только горизонтальную фазу или вертикальную фазу), необходимо выполнить интерполяционную фильтрацию пикселя опорной пиксельной единицы для рассматриваемой пиксельной единицы только один раз для получения прогнозируемой величины пикселя для этой пиксельной единицы.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура определения векторов движения для W контрольных точек в составе текущего блока изображения содержит:
определение указанных W контрольных точек в составе текущего блока изображения и определение набора-кандидата единиц информации движения, соответствующего каждой из этих W контрольных точек, где набор-кандидат единиц информации движения, соответствующий каждой контрольной точке, содержит по меньшей мере одну единицу-кандидата информации движения;
определение набора e комбинированных единиц информации движения, содержащего W единиц информации движения, где каждую единицу информации движения в составе набора e комбинированных единиц информации движения выбирают по меньшей мере из некоторых единиц информации движения, входящих в набор-кандидат единиц информации движения, соответствующий каждой из W контрольных точек, и каждая комбинированная единица информации движения в составе набора e комбинированных единиц информации движения содержит вектор движения; и
выполнение прогнозирования или оценки движения для W векторов движения из состава набора e комбинированных единиц информации движения для получения векторов движения для указанных W контрольных точек или использование W векторов движения, входящих в состав набора e комбинированных единиц информации движения в качестве векторов движения для указанных W контрольных точек.
В некоторых возможных вариантах реализации настоящего изобретения, погрешность каждого вектора движения из состава набора-кандидата единиц информации движения может составлять 1/n от погрешности пикселя.
Рассматриваемый способ прогнозирования изображения может быть применен к процессу видео кодирования, или этот способ прогнозирования изображения может быть применен к процессу видео декодирования.
Для лучшего понимания технических решений согласно вариантам настоящего изобретения далее предложены описания с точки зрения стороны кодирования и стороны декодирования с использованием примеров.
В дальнейшем сначала будет описано техническое решение с точки зрения стороны кодирования.
На Фиг. 3-a предложена упрощенная логическая схема другого способа прогнозирования изображения согласно другим вариантам настоящего изобретения. В примере, показанном на Фиг. 3-a, представлен другой способ прогнозирования изображения, предлагаемый другим вариантом настоящего изобретения, где этот способ может содержать следующие этапы.
301. Устройство видео кодирования определяет W контрольных точек в составе текущего блока изображения.
302. Устройство видео кодирования определяет векторы движения для найденных W контрольных точек.
Процедура определения, посредством устройства видео кодирования, векторов движения для W контрольных точек может содержать: определение указанных W контрольных точек в составе текущего блока изображения и определение набора-кандидата единиц информации движения, соответствующего каждой из этих W контрольных точек, где набор-кандидат единиц информации движения, соответствующий каждой контрольной точке, содержит по меньшей мере одну единицу-кандидата информации движения; определение набора e комбинированных единиц информации движения, содержащего W единиц информации движения, где каждую единицу информации движения в составе набора e комбинированных единиц информации движения выбирают по меньшей мере из некоторых единиц информации движения, входящих в набор-кандидат единиц информации движения, соответствующий каждой из W контрольных точек, и каждая комбинированная единица информации движения в составе набора e комбинированных единиц информации движения содержит вектор движения; и выполнение прогнозирования или оценки движения для W векторов движения из состава набора e комбинированных единиц информации движения для получения векторов движения для указанных W контрольных точек или использование W векторов движения, входящих в состав набора e комбинированных единиц информации движения в качестве векторов движения для указанных W контрольных точек.
В некоторых возможных вариантах реализации настоящего изобретения, погрешность каждого вектора движения из состава набора-кандидата единиц информации движения может составлять 1/n от погрешности пикселя.
303. Устройство видео кодирования получает, посредством вычислений, векторы движения для P пиксельных единиц из состава текущего блока изображения с использованием модели движения и векторов движения для W контрольных точек.
Здесь P представляет собой положительное целое число, и W и N являются целыми числами больше 1.
Эти P пиксельных единиц представляют собой некоторые или все пиксельные единицы из состава текущего блока изображения.
Вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц. Поэтому вектор движения для каждой из P пиксельных единиц может быть использован для определения соответствующей опорной пиксельной единицы, в опорном изображении, для соответствующей пиксельной единицы.
Погрешность найденных векторов движения для W контрольных точек составляет 1/n от погрешности пикселя.
Погрешность вектора движения, который получают посредством вычислений и который соответствует каждой из P пиксельных единиц, составляет 1/N от погрешности пикселя.
Здесь W, n и N представляют собой целые числа больше 1.
Здесь N больше n. P представляет собой положительное целое число.
Поскольку N больше n, точность вектора движения, который получают посредством вычислений и который соответствует каждой из P пиксельных единиц, выше точности найденных векторов движения для рассматриваемых W контрольных точек. Иными словами, получают обладающие более высокой точностью векторы движения для P пиксельных единиц из состава текущего блока изображения.
В некоторых возможных вариантах реализации настоящего изобретения, векторы движения для W контрольных точек прогнозируют на основе вектора движения, погрешность которого составляет 1/n от погрешности пикселя, в кодированном блоке изображения или в декодированном блоке изображения, окружающем текущий блок изображения.
В некоторых возможных вариантах реализации настоящего изобретения, когда векторы движения для W контрольных точек основаны на прогнозируемых величинах, где погрешность этих прогнозируемых величин также составляет 1/n от погрешности пикселя, а разности между векторами движения, погрешность которых составляет 1/n от погрешности пикселя, для контрольных точек и соответствующие прогнозируемые величины могут быть записаны в потоке битов данных. Соответственно, векторы движения, погрешность которых составляет 1/n от погрешности пикселя, для W контрольных точек могут быть получены, посредством прогнозирования, на декодирующей стороне с использованием прогнозируемых разностей между W векторами движения и прогнозируемым вектором движения и с использованием вектора движения, погрешность которого составляет 1/n от погрешности пикселя, для декодированного блока изображения, окружающего текущий блок изображения, где прогнозируемые разности получают из потока битов данных.
В некоторых возможных вариантах реализации настоящего изобретения такая модель движения может представлять собой, например, модель поступательного движения, модель аффинного движения, модель вращательного движения, модель параболического движения, модель сдвигового движения, модель зуммирующего движения, перспективную модель движения или билинейную модель движения.
Например, в некоторых возможных вариантах реализации настоящего изобретения, модель движения может быть представлена следующим образом, когда W равно 2:
L представляет ширину или высоту текущего блока изображения,
В другом примере, в некоторых возможных вариантах реализации настоящего изобретения, модель движения представлена в следующем виде, когда W равно 3:
Приведенные выше примеры рассмотрены с использованием модели аффинного движения. Когда используется модель поступательного движения, модель вращательного движения, модель сдвигового движения, модель зуммирующего движения, перспективная модель движения, модель параболического движения, билинейная модель движения или другая подобная модель, ссылки могут быть сделаны на приведенные выше примеры. Подробности здесь повторно описаны не будут.
304. Устройство видео кодирования определяет соответствующую опорную пиксельную единицу, в опорном изображении, для каждой из указанных P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура определения соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц может содержать: получение, посредством вычислений, местонахождения целых пикселей для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц; и поиск, с использованием вектора движения для каждой из P пиксельных единиц, в опорном изображении для обнаружения опорной пиксельной единицы, соответствующей местонахождению целых пикселей в каждой из P пиксельных единиц, где опорная пиксельная единица, которая соответствует местонахождению целого пикселя в каждой из P пиксельных единиц и которая найдена в опорном изображении, является опорной пиксельной единицей, в опорном изображении, для каждой из P пиксельных единиц.
В частности, например, местонахождение целого пикселя в составе пиксельной единицы i может быть получено посредством вычислений с использованием вектора движения для пиксельной единицы i из совокупности P пиксельных единиц, и можно произвести поиск в опорном изображении с использованием вектора движения для пиксельной единицы i, с целью обнаружения опорной пиксельной единицы, соответствующей местонахождению целого пикселя в пиксельной единице i, где опорная пиксельная единица, которая соответствует местонахождению целого пикселя в пиксельной единице i и которая найдена в опорном изображении, является опорной пиксельной единицей, в опорном изображении, для пиксельной единицы i. Эта пиксельная единица i может быть одной из указанных P пиксельных единиц. Например, соответствующая опорная пиксельная единица, в опорном изображении, для каждой из P пиксельных единиц может быть определена способом, аналогичным способу определения опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i.
В некоторых возможных вариантах реализации настоящего изобретения, процедура получения, посредством вычислений, местонахождения целого пикселя для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц содержит:
получение, посредством вычислений, местонахождения целого пикселя для каждой из P пиксельных единиц согласно следующей формуле с использованием вектора движения для каждой из P пиксельных единиц:
M равно log2N, когда N равно целой степени 2, (xInt, yInt) представляет координаты местонахождения целого пикселя в составе пиксельной единицы с координатами (x, y) в текущем блоке изображения,
Например, квадратики на Фиг. 3-b представляют пиксели в местах нахождения целых пикселей рядом с текущим местонахождением, а треугольники представляют частичные пиксели.
305. Устройство видео кодирования осуществляет интерполяционную фильтрацию пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q, с целью получения прогнозируемой величины пикселя для каждой из P пиксельных единиц.
Q представляет собой целое число больше n.
В некоторых возможных вариантах реализации настоящего изобретения, величина N может представлять собой предварительно заданную фиксированную величину, а Q может быть не меньше N. Когда величина N может представлять собой предварительно заданную фиксированную величину, это указывает, что точность векторов движения, полученных посредством вычислений с использованием модели движения и векторов движения для указанных W контрольных точек, для P пиксельных единиц в составе текущего блока изображения не обязательно связана с размером текущего блока изображения. Другими словами, например, на основе решения для этого варианта, прогнозируемая величина пикселя с предварительно заданной фиксированной точностью может быть найдена без промежуточной процедуры для получения прогнозируемой величины пикселя с меньшей точностью путем осуществления интерполяционной фильтрации с меньшей точностью.
Например, число W может быть равно 2, 3, 4, 5, 6, 8 или другой величине.
Например, число P может быть равно 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64 или другой величине.
Например, число Q может быть равно 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 или другой величине.
Например, число N может быть равно 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 или другой величине.
Например, число n может быть равно 8, 2, 4 или другой величине.
В некоторых возможных вариантах реализации настоящего изобретения, число N может быть равно целой степени 2, или конечно же, число N может быть равно другому положительному целому числу.
В некоторых возможных вариантах реализации настоящего изобретения, процедура выполнения интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q содержит:
получение, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц; определение на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанным соответствующим пиксельным единицам, где коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и осуществление интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице.
В частности, например, фаза пиксельной единицы i может быть получена посредством вычислений с использованием вектора движения для пиксельной единицы i из состава P пиксельных единиц; интерполяционный фильтр с фазой Q, которая соответствует пиксельной единице i, может быть определен на основе фазы пиксельной единицы i, где коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и интерполяционная фильтрация может быть осуществлена для пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного интерполяционного фильтра с фазой Q, соответствующей этой пиксельной единице i. Рассматриваемая пиксельная единица i может быть какой-либо одной из P пиксельных единиц. Например, интерполяционная фильтрация может быть осуществлена для каждой из P пиксельных единиц с применением способа, аналогичного выполнению интерполяционной фильтрации для пиксельной единицы i.
В некоторых возможных вариантах реализации настоящего изобретения, процедура получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц содержит: получение, посредством вычислений, фазы каждой из P пиксельных единиц по следующей формуле с использованием вектора движения для каждой из этих P пиксельных единиц:
M равно log2N, когда N равно целой степени 2, X' представляет горизонтальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения, Y' представляет вертикальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения,
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, фаза содержит горизонтальную фазу и вертикальную фазу; а процедура определения, на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанной пиксельной единице, содержит: определение, на основе горизонтальной фазы для каждой пиксельной единицы, горизонтального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице; и определение, на основе вертикальной фазы для каждой пиксельной единицы, вертикального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе.
В частности, например, горизонтальный интерполяционный фильтр с фазой Q, которая соответствует пиксельной единице i, может быть определен на основе горизонтальной фазы этой пиксельной единицы i, и вертикальный интерполяционный фильтр с фазой Q, которая соответствует пиксельной единице i, может быть определен на основе вертикальной фазы этой пиксельной единицы i, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе пиксельной единицы i, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе этой пиксельной единицы i. Рассматриваемая пиксельная единица i может представлять собой какую-либо одну из указанных P пиксельных единиц. Например, интерполяционный фильтр с фазой Q, соответствующий каждой из этих P пиксельных единиц, может быть определен способом, аналогичным тому, который был использован для определения интерполяционного фильтра с фазой Q, соответствующего пиксельной единице i.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной пиксельной единице, содержит:
выполнение горизонтальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения результата горизонтальной интерполяционной фильтрации; и осуществление вертикальной интерполяционной фильтрации результата горизонтальной интерполяционной фильтрации с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения прогнозируемой величины пикселя из состава пиксельной единицы i, где пиксельная единица i представляет собой какую-либо одну из P пиксельных единиц; или
осуществление вертикальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы j с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения результата вертикальной интерполяционной фильтрации; и выполнения горизонтальной интерполяционной фильтрации результата вертикальной интерполяционной фильтрации с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения прогнозируемой величины пикселя из состава пиксельной единицы j, где эта пиксельная единица j представляет собой одну из P пиксельных единиц.
Кроме того, если пиксельная единица имеет только одну фазу (иными словами, имеет только горизонтальную фазу или вертикальную фазу), необходимо выполнить интерполяционную фильтрацию пикселя опорной пиксельной единицы для рассматриваемой пиксельной единицы только один раз для получения прогнозируемой величины пикселя для этой пиксельной единицы.
306. Устройство видео кодирования может получать прогнозируемый остаток для текущего блока изображения с использованием первоначальных величин пикселей для рассматриваемых P пиксельных единиц и прогнозируемых величин пикселей для этих P пиксельных единиц из состава текущего блока изображения, а также это устройство видео кодирования может записывать прогнозируемый остаток для текущего блока изображения в поток видеоданных.
Из изложенного выше можно понять, что согласно техническому решению, предложенному в этом варианте, устройство видео кодирования получает, посредством вычислений, вектор движения, погрешность которого составляет 1/N от погрешности пикселя, для каждой пиксельной единицы в составе текущего блока изображения с использованием модели движения и векторов движения, погрешность которых составляет 1/n от погрешности пикселя, для W контрольных точек, где N больше n. Другими словами, точность вектора движения, который получают посредством вычислений и который соответствует каждой пиксельной единицы в составе текущего блока изображения выше точности найденных векторов движения для каждой из указанных W контрольных точек. Сначала получают вектор движения с более высокой точностью. Потом полученный вектор движения, обладающий более высокой точностью, для каждой пиксельной единицы из состава текущего блока изображения используют для определения соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы в составе текущего блока изображения, и осуществляют интерполяционную фильтрацию пикселя из соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы из состава текущего блока изображения с использованием интерполяционного фильтра с фазой Q (Q больше n), для получения прогнозируемой величины пикселя для каждой пиксельной единицы из состава текущего блока изображения. Можно понимать, что рассмотренный выше способ помогает уменьшить число операций интерполяционной фильтрации, требуемое для получения, посредством прогнозирования, прогнозируемой величины пикселя с более высокой точностью из состава текущего блока изображения (например, промежуточные операции для получения прогнозируемой величины пикселя с меньшей точностью путем осуществления интерполяционной фильтрации с более низкой точностью могут не потребоваться), с целью уменьшения количества промежуточных операций обмена с кэш-памятью и запоминающим устройством, которые нужны для интерполяционной фильтрации в процессе прогнозирования изображений, и уменьшить вычислительную сложность процесса прогнозирования изображения.
Далее описано техническое решение с точки зрения декодирующей стороны.
На Фиг. 4 представлена логическая схема другого способа прогнозирования изображения согласно другому варианту настоящего изобретения. Как показано в примере, представленном на Фиг. 4, другой способ прогнозирования изображения, предлагаемый другим вариантом настоящего изобретения, может содержать следующие этапы.
401. Устройство видео декодирования определяет W контрольных точек в составе текущего блока изображения.
402. Устройство видео декодирования определяет векторы движения для указанных W контрольных точек.
Процедура определения, посредством устройства видео кодирования, векторов движения для W контрольных точек может содержать: определение указанных W контрольных точек в составе текущего блока изображения и определение набора-кандидата единиц информации движения, соответствующего каждой из этих W контрольных точек, где набор-кандидат единиц информации движения, соответствующий каждой контрольной точке, содержит по меньшей мере одну единицу-кандидата информации движения; определение набора e комбинированных единиц информации движения, содержащего W единиц информации движения, где каждую единицу информации движения в составе набора e комбинированных единиц информации движения выбирают по меньшей мере из некоторых единиц информации движения, входящих в набор-кандидат единиц информации движения, соответствующий каждой из W контрольных точек, и каждая комбинированная единица информации движения в составе набора e комбинированных единиц информации движения содержит вектор движения; и выполнение прогнозирования или оценки движения для W векторов движения из состава набора e комбинированных единиц информации движения для получения векторов движения для указанных W контрольных точек или использование W векторов движения, входящих в состав набора e комбинированных единиц информации движения в качестве векторов движения для указанных W контрольных точек.
В некоторых возможных вариантах реализации настоящего изобретения, погрешность каждого вектора движения из состава набора-кандидата единиц информации движения может составлять 1/n от погрешности пикселя.
403. Устройство видео декодирования получает, посредством вычислений, векторы движения для P пиксельных единиц в составе текущего блока изображения с использованием модели движения и векторов движения для указанных W контрольных точек.
Здесь P представляет собой положительное целое число, и W и N являются целыми числами больше 1.
Указанные P пиксельных единиц представляют собой некоторые или все пиксельные единицы из состава текущего блока изображения.
Вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц. Поэтому вектор движения для каждой из P пиксельных единиц может быть использован для определения соответствующей опорной пиксельной единицы, в опорном изображении, для соответствующей пиксельной единицы.
Погрешность найденных векторов движения для W контрольных точек составляет 1/n от погрешности пикселя.
Погрешность вектора движения, который получают посредством вычислений и который соответствует каждой из P пиксельных единиц, составляет 1/N от погрешности пикселя.
Здесь W, n и N представляют собой целые числа больше 1.
Здесь N больше n. P представляет собой положительное целое число.
Поскольку N больше n, точность вектора движения, который получают посредством вычислений и который соответствует каждой из P пиксельных единиц, выше точности найденных векторов движения для рассматриваемых W контрольных точек. Иными словами, получают обладающие более высокой точностью векторы движения для P пиксельных единиц из состава текущего блока изображения.
В некоторых возможных вариантах реализации настоящего изобретения, векторы движения для W контрольных точек прогнозируют на основе вектора движения, погрешность которого составляет 1/n от погрешности пикселя, в кодированном блоке изображения или в декодированном блоке изображения, окружающем текущий блок изображения, где n представляет собой положительное целое число, и n меньше N.
В некоторых возможных вариантах реализации настоящего изобретения, когда векторы движения для W контрольных точек основаны на прогнозируемых величинах, где погрешность этих прогнозируемых величин также составляет 1/n от погрешности пикселя, а разности между векторами движения, погрешность которых составляет 1/n от погрешности пикселя, для контрольных точек и соответствующие прогнозируемые величины могут быть записаны в потоке битов данных.
В некоторых возможных вариантах реализации настоящего изобретения, указанная модель движения может представлять собой, например, модель поступательного движения, модель аффинного движения, модель вращательного движения, модель параболического движения, модель сдвигового движения, модель зуммирующего движения, перспективную модель движения или билинейную модель движения.
Например, в некоторых возможных вариантах реализации настоящего изобретения, модель движения может быть представлена в следующем виде, когда W равно 2:
L представляет ширину или высоту текущего блока изображения,
В другом примере, в некоторых возможных вариантах реализации настоящего изобретения, модель движения представлена в следующем виде, когда W равно 3:
Приведенные выше примеры рассмотрены с использованием модели аффинного движения. Когда используется модель поступательного движения, модель вращательного движения, модель сдвигового движения, модель зуммирующего движения, перспективная модель движения, модель параболического движения, билинейная модель движения или другая подобная модель, ссылки могут быть сделаны на приведенные выше примеры. Подробности здесь повторно описаны не будут.
404. Устройство видео декодирования определяет соответствующую опорную пиксельную единицу, в опорном изображении, для каждой из указанных P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура определения соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц может содержать: получение, посредством вычислений, местонахождения целых пикселей для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц; и поиск, с использованием вектора движения для каждой из P пиксельных единиц, в опорном изображении для обнаружения опорной пиксельной единицы, соответствующей местонахождению целых пикселей в каждой из P пиксельных единиц, где опорная пиксельная единица, которая соответствует местонахождению целого пикселя в каждой из P пиксельных единиц и которая найдена в опорном изображении, является опорной пиксельной единицей, в опорном изображении, для каждой из P пиксельных единиц.
В частности, например, местонахождение целого пикселя в составе пиксельной единицы i может быть получено посредством вычислений с использованием вектора движения для пиксельной единицы i из совокупности P пиксельных единиц, и можно произвести поиск в опорном изображении с использованием вектора движения для пиксельной единицы i, с целью обнаружения опорной пиксельной единицы, соответствующей местонахождению целого пикселя в пиксельной единице i, где опорная пиксельная единица, которая соответствует местонахождению целого пикселя в пиксельной единице i и которая найдена в опорном изображении, является опорной пиксельной единицей, в опорном изображении, для пиксельной единицы i. Эта пиксельная единица i может быть одной из указанных P пиксельных единиц. Например, соответствующая опорная пиксельная единица, в опорном изображении, для каждой из P пиксельных единиц может быть определена способом, аналогичным способу определения опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i.
В некоторых возможных вариантах реализации настоящего изобретения, процедура получения, посредством вычислений, местонахождения целого пикселя для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц содержит:
получение, посредством вычислений, местонахождения целого пикселя для каждой из P пиксельных единиц согласно следующей формуле с использованием вектора движения для каждой из P пиксельных единиц:
M равно log2N, когда N равно целой степени 2, (xInt, yInt) представляет координаты местонахождения целого пикселя в составе пиксельной единицы с координатами (x, y) в текущем блоке изображения,
405. Устройство видео декодирования осуществляет интерполяционную фильтрацию пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q, с целью получения прогнозируемой величины пикселя для каждой из P пиксельных единиц.
Q представляет собой целое число больше n.
В некоторых возможных вариантах реализации настоящего изобретения, величина N может представлять собой предварительно заданную фиксированную величину, а Q может быть не меньше N. Когда величина N может представлять собой предварительно заданную фиксированную величину, это указывает, что точность векторов движения, полученных посредством вычислений с использованием модели движения и векторов движения для указанных W контрольных точек, для P пиксельных единиц в составе текущего блока изображения не обязательно связана с размером текущего блока изображения. Другими словами, например, на основе решения для этого варианта, прогнозируемая величина пикселя с предварительно заданной фиксированной точностью может быть найдена без промежуточной процедуры для получения прогнозируемой величины пикселя с меньшей точностью путем осуществления интерполяционной фильтрации с меньшей точностью.
Например, число W может быть равно 2, 3, 4, 5, 6, 8 или другой величине.
Например, число P может быть равно 1, 2, 3, 4, 5, 6, 8, 10, 15, 16, 21, 32, 64 или другой величине.
Например, число Q может быть равно 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 или другой величине.
Например, число N может быть равно 128, 9, 18, 24, 256, 8, 10, 15, 16, 21, 32, 64 или другой величине.
Например, число n может быть равно 8, 2, 4 или другой величине.
В некоторых возможных вариантах реализации настоящего изобретения, число N может быть равно целой степени 2, или, конечно же, число N может быть равно другому положительному целому числу.
В некоторых возможных вариантах реализации настоящего изобретения, процедура выполнения интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q содержит:
получение, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц; определение на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанным соответствующим пиксельным единицам, где коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и осуществление интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице.
В частности, например, фаза пиксельной единицы i может быть получена посредством вычислений с использованием вектора движения для пиксельной единицы i из состава P пиксельных единиц; интерполяционный фильтр с фазой Q, которая соответствует пиксельной единице i, может быть определен на основе фазы пиксельной единицы i, где коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и интерполяционная фильтрация может быть осуществлена для пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного интерполяционного фильтра с фазой Q, соответствующей этой пиксельной единице i. Рассматриваемая пиксельная единица i может быть какой-либо одной из P пиксельных единиц. Например, интерполяционная фильтрация может быть осуществлена для каждой из P пиксельных единиц с применением способа, аналогичного выполнению интерполяционной фильтрации для пиксельной единицы i.
В некоторых возможных вариантах реализации настоящего изобретения, процедура получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц содержит: получение, посредством вычислений, фазы каждой из P пиксельных единиц по следующей формуле с использованием вектора движения для каждой из этих P пиксельных единиц:
M равно log2N, когда N равно целой степени 2, X' представляет горизонтальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения, Y' представляет вертикальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения,
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, фаза содержит горизонтальную фазу и вертикальную фазу; а процедура определения, на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанной пиксельной единице, содержит: определение, на основе горизонтальной фазы для каждой пиксельной единицы, горизонтального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице; и определение, на основе вертикальной фазы для каждой пиксельной единицы, вертикального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе.
В частности, например, горизонтальный интерполяционный фильтр с фазой Q, которая соответствует пиксельной единице i, может быть определен на основе горизонтальной фазы этой пиксельной единицы i, и вертикальный интерполяционный фильтр с фазой Q, которая соответствует пиксельной единице i, может быть определен на основе вертикальной фазы этой пиксельной единицы i, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе пиксельной единицы i, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе этой пиксельной единицы i. Рассматриваемая пиксельная единица i может представлять собой какую-либо одну из указанных P пиксельных единиц. Например, интерполяционный фильтр с фазой Q, соответствующий каждой из этих P пиксельных единиц, может быть определен способом, аналогичным тому, который был использован для определения интерполяционного фильтра с фазой Q, соответствующего пиксельной единице i.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной пиксельной единице, содержит:
выполнение горизонтальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения результата горизонтальной интерполяционной фильтрации; и осуществление вертикальной интерполяционной фильтрации результата горизонтальной интерполяционной фильтрации с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения прогнозируемой величины пикселя из состава пиксельной единицы i, где пиксельная единица i представляет собой какую-либо одну из P пиксельных единиц; или
осуществление вертикальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы j с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения результата вертикальной интерполяционной фильтрации; и выполнение горизонтальной интерполяционной фильтрации результата вертикальной интерполяционной фильтрации с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения прогнозируемой величины пикселя из состава пиксельной единицы j, где эта пиксельная единица j представляет собой одну из P пиксельных единиц.
Кроме того, если пиксельная единица имеет только одну фазу (иными словами, имеет только горизонтальную фазу или вертикальную фазу), необходимо выполнить интерполяционную фильтрацию пикселя опорной пиксельной единицы для рассматриваемой пиксельной единицы только один раз для получения прогнозируемой величины пикселя для этой пиксельной единицы.
406. Устройство видео декодирования реконструирует текущий блок изображения с использованием прогнозируемой величины пикселя в составе текущего блока изображения и прогнозируемого остатка, в потоке битов видеоданных, для текущего блока изображения.
Из изложенного выше можно понять, что согласно техническому решению, предложенному в этом варианте, устройство видео декодирования получает, посредством вычислений, вектор движения, погрешность которого составляет 1/N от погрешности пикселя, для каждой пиксельной единицы в составе текущего блока изображения с использованием модели движения и векторов движения, погрешность которых составляет 1/n от погрешности пикселя, для W контрольных точек, где N больше n. Другими словами, точность вектора движения, который получают посредством вычислений и который соответствует каждой пиксельной единице в составе текущего блока изображения выше точности найденных векторов движения для каждой из указанных W контрольных точек. Сначала получают вектор движения с более высокой точностью. Потом полученный вектор движения, обладающий более высокой точностью, для каждой пиксельной единицы из состава текущего блока изображения используют для определения соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы в составе текущего блока изображения, и осуществляют интерполяционную фильтрацию пикселя из соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы из состава текущего блока изображения с использованием интерполяционного фильтра с фазой Q (Q больше n), для получения прогнозируемой величины пикселя для каждой пиксельной единицы из состава текущего блока изображения. Можно понимать, что рассмотренный выше способ помогает уменьшить число операций интерполяционной фильтрации, требуемое для получения, посредством прогнозирования, прогнозируемой величины пикселя с более высокой точностью из состава текущего блока изображения (например, промежуточные операции для получения прогнозируемой величины пикселя с меньшей точностью путем осуществления интерполяционной фильтрации с более низкой точностью могут не потребоваться), с целью уменьшения количества промежуточных операций обмена с кэш-памятью и запоминающим устройством, которые нужны для интерполяционной фильтрации в процессе прогнозирования изображений, и уменьшить вычислительную сложность процесса прогнозирования изображения.
Далее описаны, с использованием примеров, несколько возможных конкретных вариантов реализации для определения набора e комбинированных единиц информации движения, содержащего W единиц информации движения, упомянутых в приведенных выше вариантах.
Процедура определения набора e комбинированных единиц информации движения, содержащего W единиц информации движения, может содержать: определение, из A наборов-кандидатов комбинированных единиц информации движения одного набора e комбинированных единиц информации движения, содержащего W единиц информации движения, где каждую единицу информации движения, входящая в состав каждого из A наборов-кандидатов комбинированных единиц информации движения выбирают по меньшей мере из некоторых единиц информации движения, удовлетворяющих ограничениям, в наборе-кандидате единиц информации движения, соответствующем каждой из W контрольных точек, здесь A является целым положительным числом, указанные A наборов-кандидатов комбинированных единиц информации движения отличаются один от другого и каждый из этих A наборов-кандидатов комбинированных единиц информации движения содержит W единиц информации движения.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, A наборов-кандидатов комбинированных единиц информации движения удовлетворяют по меньшей мере одно из условий - первое условие, второе условие, третье условие, четвертое условие или пятое условие.
Первое условие: Способ движение, обозначенный какой-либо единицей информации движения в каком-либо одном из A наборов-кандидатов комбинированных единиц информации движения для текущего блока изображения представляет собой непоступательное движение.
Второе условие: Направления прогнозирования, соответствующие двум единицам информации движения в каком-либо одном из A наборов-кандидатов комбинированных единиц информации движения, являются одинаковыми.
Третье условие: Индексы опорных кадров, соответствующие двум единицам информации движения в каком-либо одном из A наборов-кандидатов комбинированных единиц информации движения, являются одинаковыми.
Четвертое условие: Абсолютная величина разности между горизонтальными составляющими векторов движения, соответствующих двум единицам информации движения в каком-либо одном из A наборов-кандидатов комбинированных единиц информации движения, не больше порога горизонтальной составляющей, или абсолютная величина разности между горизонтальными составляющими вектора движения для контрольной точки Z и вектора движения из состава одной из единиц информации движения в каком-либо одном из A наборов-кандидатов комбинированных единиц информации движения не больше порога горизонтальной составляющей, где контрольная точка Z в текущем блоке изображения отличается от какой-либо одной из W контрольных точек.
Пятое условие: Абсолютная величина разности между вертикальными составляющими векторов движения, соответствующих двум единицам информации движения в каком-либо одном из A наборов-кандидатов комбинированных единиц информации движения, не больше порога вертикальной составляющей, или абсолютная величина разности между вертикальными составляющими вектора движения для контрольной точки Z и вектора движения из состава одной из единиц информации движения в каком-либо одном из A наборов-кандидатов комбинированных единиц информации движения не больше порога вертикальной составляющей, где контрольная точка Z в текущем блоке изображения отличается от какой-либо одной из W контрольных точек.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура определения, из A наборов-кандидатов комбинированных единиц информации движения посредством устройства видео кодирования/декодирования, набора e комбинированных единиц информации движения, имеющего в составе W единиц информации движения, может содержать: определение, из совокупности A наборов-кандидатов комбинированных единиц информации движения и на основе искажений или метрического показателя «стоимостного» соотношения степени сжатия и искажений (rate-distortion cost (RDC)), набора e комбинированных единиц информации движения, имеющего в составе W векторов движения.
В качестве опции, показатель RDC, соответствующий указанному набору e комбинированных единиц информации движения, не больше такого показателя RDC, соответствующего любому набору комбинированных единиц информации движения, отличному от набора e комбинированных единиц информации движения, из состава совокупности A наборов-кандидатов комбинированных единиц информации движения.
В качестве опции, искажения, соответствующие набору e комбинированных единиц информации движения, не больше искажений, соответствующих любому набору комбинированных единиц информации движения, отличному от набора e комбинированных единиц информации движения, из состава совокупности A наборов-кандидатов комбинированных единиц информации движения.
Показатель RDC, соответствующий набору-кандидату комбинированных единиц информации движения из совокупности A наборов-кандидатов комбинированных единиц информации движения (например, набору e комбинированных единиц информации движения из совокупности A наборов-кандидатов комбинированных единиц информации движения) может представлять собой, например, показатель RDC, который соответствует прогнозируемой величине пикселя из состава блока изображения (например, текущего блока изображения) и который получают посредством прогнозирования величин пикселей, осуществляемого для блока изображения с использованием набора-кандидата комбинированных единиц информации движения (например, набора e комбинированных единиц информации движения).
Искажения, соответствующие набору-кандидату комбинированных единиц информации движения из состава совокупности A наборов-кандидатов комбинированных единиц информации движения (например, набору e комбинированных единиц информации движения из совокупности A наборов-кандидатов комбинированных единиц информации движения) могут представлять собой, например, искажения между первоначальной величиной пикселя в составе блока изображения (например, текущего блока изображения) и прогнозируемой величиной пикселя, которая входит в состав указанного блока изображения и которую получают посредством прогнозирования величин пикселей, осуществляемого для блока изображения с использованием набора-кандидата комбинированных единиц информации движения (например, набора e комбинированных единиц информации движения) (иными словами, искажения между первоначальной величиной пикселя и прогнозируемой величиной пикселя, входящих в состав рассматриваемого блока изображения).
В некоторых возможных вариантах реализации настоящего изобретения, величина искажений между первоначальной величиной пикселя в блоке изображения (например, в текущем блоке изображения) и прогнозируемой величиной пикселя, которая входит в состав этого блока изображения и которую получают посредством прогнозирования величин пикселей, осуществляемого применительно к этому блоку изображения с использованием набора-кандидата комбинированных единиц информации движения (например, набора e комбинированных единиц информации движения), может, в частности, представлять собой, например, сумму квадратов разностей (sum of squared differences (SSD)), сумму абсолютных величин разностей (sum of absolute differences (SAD)), сумму разностей или другую величину параметра искажений, которая может служить мерой искажений, между первоначальной величиной пикселя в блоке изображения (например, в текущем блоке изображения) и прогнозируемой величиной пикселя, которая входит в состав этого блока изображения и которую получают посредством прогнозирования величин пикселей, осуществляемого применительно к этому блоку изображения с использованием набора-кандидата комбинированных единиц информации движения (например, набора e комбинированных единиц информации движения).
Далее описаны, с использованием примеров некоторые возможные способы определения W контрольных точек в составе текущего блока изображения.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, в совокупность указанных W контрольных точек входят следующие W контрольных точек - верхняя левая контрольная точка, верхняя правая контрольная точка, нижняя левая контрольная точка и центральная контрольная точка a1 в составе текущего блок изображения.
Верхняя левая контрольная точка в составе текущего блока изображения представляет собой верхнюю левую вершину текущего блока изображения или блока пикселей, в составе текущего блока изображения, где этот блок пикселей содержит верхнюю левую вершину текущего блока изображения. Нижняя левая контрольная точка в составе текущего блока изображения представляет собой нижнюю левую вершину текущего блока изображения или блока пикселей, в составе текущего блока изображения, где этот блок пикселей содержит нижнюю левую вершину текущего блока изображения. Верхняя правая контрольная точка в составе текущего блока изображения представляет собой верхнюю правую вершину текущего блока изображения или блока пикселей, в составе текущего блока изображения, где этот блок пикселей содержит верхнюю правую вершину текущего блока изображения. Центральная контрольная точка a1 в составе текущего блока изображения представляет собой центральный пиксель текущего блока изображения или блока пикселей, в составе текущего блока изображения, где этот блок пикселей содержит центральный пиксель текущего блока изображения.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, набор-кандидат единиц информации движения, соответствующий верхней левой контрольной точке в текущем блоке изображения, содержит единицу информации движения для x1 пиксельных единиц. Совокупность этих x1 пиксельных единиц содержит по меньшей мере одну пиксельную единицу (например, блоки A, B и C изображения, показанные на Фиг. 2-b), пространственно соседствующую с верхней левой контрольной точкой в составе текущего блока изображения и/или по меньшей мере одну пиксельную единицу соседствующую во времени с верхней левой контрольной точкой в составе текущего блока изображения, где x1 является положительным целым числом.
Например, совокупность x1 пиксельных единиц может содержать по меньшей мере одно из следующего: пиксельную единицу, в составе видео кадра, соседствующего во времени с видео кадром, которому принадлежит текущий блок изображения, где местонахождение этой пиксельной единицы совпадает с местонахождением верхней левой контрольной точки в составе текущего блока изображения; пиксельную единицу, которая соседствует в пространстве с текущим блоком изображения и находится при этом слева от него; пиксельную единицу, которая соседствует в пространстве с текущим блоком изображения и находится при этом сверху слева от него; или пиксельную единицу, которая соседствует в пространстве с текущим блоком изображения и находится при этом сверху от него.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, набор-кандидат единиц информации движения, соответствующий верхней правой контрольной точке в составе текущего блока изображения, содержит единицу информации движения для x2 пиксельных единиц. Совокупность этих x2 пиксельных единиц содержит по меньшей мере одну пиксельную единицу (например, блоки E и D изображения, показанные на Фиг. 2-b), пространственно соседствующую с верхней правой контрольной точкой в составе текущего блока изображения и/или по меньшей мере одну пиксельную единицу соседствующую во времени с верхней правой контрольной точкой в составе текущего блока изображения, где x2 является положительным целым числом.
Например, совокупность x2 пиксельных единиц может содержать по меньшей мере одно из следующего: пиксельную единицу, в составе видео кадра, соседствующего во времени с видео кадром, которому принадлежит текущий блок изображения, где местонахождение этой пиксельной единицы совпадает с местонахождением верхней правой контрольной точки в составе текущего блока изображения; пиксельную единицу, которая соседствует в пространстве с текущим блоком изображения и находится при этом справа от него; пиксельную единицу, которая соседствует в пространстве с текущим блоком изображения и находится при этом сверху справа от него; или пиксельную единицу, которая соседствует в пространстве с текущим блоком изображения и находится при этом сверху от него.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения,
набор-кандидат единиц информации движения, соответствующий нижней левой контрольной точке в текущем блоке изображения, содержит единицу информации движения для x3 пиксельных единиц. Совокупность этих x3 пиксельных единиц содержит по меньшей мере одну пиксельную единицу, пространственно соседствующую с нижней левой контрольной точкой в составе текущего блока изображения и/или по меньшей мере одну пиксельную единицу соседствующую во времени с нижней левой контрольной точкой в составе текущего блока изображения, где x3 является положительным целым числом.
Например, совокупность x3 пиксельных единиц может содержать по меньшей мере одно из следующего: пиксельную единицу, в составе видео кадра, соседствующего во времени с видео кадром, которому принадлежит текущий блок изображения, где местонахождение этой пиксельной единицы совпадает с местонахождением нижней левой контрольной точки в составе текущего блока изображения; пиксельную единицу, которая соседствует в пространстве с текущим блоком изображения и находится при этом слева от него; пиксельную единицу, которая соседствует в пространстве с текущим блоком изображения и находится при этом снизу слева от него; или пиксельную единицу, которая соседствует в пространстве с текущим блоком изображения и находится при этом снизу от него.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, набор-кандидат единиц информации движения, соответствующий центральной контрольной точке a1 в текущем блоке изображения, содержит единицу информации движения для x5 пиксельных единиц. Одной из этих x5 пиксельных единиц является пиксельная единица a2.
Местонахождение центральной контрольной точки a1 в составе видео кадра, которому принадлежит текущий блок изображении, является таким же, как местонахождение пиксельной единицы a2 в составе видео кадра, соседнего с видео кадром, которому принадлежит текущий блок изображения, belongs, где x5 является положительным целым числом.
В следующих таблицах приведен список соответствия между фазой пиксельной единицы и коэффициентом фильтрации.
Табл. 1 содержит список соответствия между коэффициентом фильтрации для 64-фазного интерполяционного фильтра с масштабным коэффициентом передачи, равным 256, и фазой пиксельной единицы.
Табл. 2 содержит список соответствия между коэффициентом фильтрации для 64-фазного интерполяционного фильтра с масштабным коэффициентом передачи, равным 64, и фазой пиксельной единицы.
Таблица 1
Таблица 2
Например, когда горизонтальная фаза пиксельной единицы равна x = 12, если используется 64-фазный интерполяционный фильтр с масштабным коэффициентом передачи, равным 256, результат S горизонтальной интерполяционной фильтрации может быть представлен следующим образом:
Прогнозируемая величина пикселя в составе пиксельной единицы может быть получена с использованием результата S горизонтальной интерполяционной фильтрации, где параметр offset может быть каким-либо целым числом.
Далее использованы некоторые тестовые данные для представления технических эффектов решений согласно вариантам настоящего изобретения.
Табл. 3 и Табл. 4 иллюстрируют контраст некоторых полученных в результате испытаний характеристик между известным техническим решением и техническими решениями согласно вариантам настоящего изобретения. Здесь в Табл. 3 приведены полученные в результате испытаний характеристики известного технического решения, а в Табл. 4 приведены полученные в результате испытаний характеристики технических решений согласно некоторым вариантам настоящего изобретения.
Таблица 3
Taблица 4
Из контраста между двумя приведенными выше таблицами можно понять, что технические решения согласно вариантам настоящего изобретения обеспечивают значительное усовершенствование характеристик кодирования и декодирования по сравнению с известными техническими решениями.
Далее рассмотрено устройство, сконфигурированное для осуществления описанных выше решений.
Как показано на Фиг. 5, один из вариантов настоящего изобретения предлагает устройство 500 прогнозирования изображения, которое может содержать первый решающий модуль 510, вычислительный модуль 520 и модуль интерполяционной фильтрации 540.
Первый решающий модуль 510 сконфигурирован для определения векторов движения для W контрольных точек в составе текущего блока изображения.
Вычислительный модуль 520 конфигурирован для получения, посредством вычислений, векторов движения для P пиксельных единиц из состава текущего блока изображения с использованием модели движения и векторов движения для W контрольных точек, где погрешность найденных векторов движения для W контрольных точек составляет 1/n от погрешности пикселя, погрешность вектора движения, который получают посредством вычислений и который соответствует каждой из P пиксельных единиц составляет 1/N от погрешности пикселя, и эти P пиксельных единиц представляют собой некоторые или все пиксельные единицы из состава текущего блока изображения.
Вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц. Здесь W, n и N представляют собой целые числа больше 1. Здесь N больше n. P представляет собой положительное целое число.
Модуль 540 интерполяционной фильтрации конфигурирован для осуществления интерполяционной фильтрации пикселя из состава опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q, для получения прогнозируемой величины пикселя для каждой из P пиксельных единиц.
Устройство 500 прогнозирования изображения может дополнительно содержать второй решающий модуль 530, конфигурированный для определения соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, величина N равна предварительно заданному фиксированному числу, а величина Q не больше величины N.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, горизонтальная составляющая или вертикальная составляющая одного из векторов движения для W контрольных точек усилена в N раз в модели движения с использованием числа N, либо разница составляющих между векторами движения для каких-либо двух из W контрольных точек усилена в N раз в модели движения с использованием числа N.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения,
второй решающий модуль 530 специально конфигурирован для: получения, посредством вычислений, местонахождения целого пикселя для каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц; и поиска, с использованием вектора движения для каждой из указанных P пиксельных единиц, опорного изображения для опорной пиксельной единицы, соответствующей местонахождению целого пикселя для каждой из этих P пиксельных единиц, где опорная пиксельная единица, которая соответствует местонахождению целого пикселя для каждой из P пиксельных единиц и которая найдена в опорном изображении, представляет собой опорную пиксельную единицу, в опорном изображении, для каждой из указанных P пиксельных единиц.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, с целью получения, посредством вычислений, местонахождения целого пикселя для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц второй решающий модуль 530 специально конфигурирован для:
получения, посредством вычислений, местонахождения целого пикселя для каждой из P пиксельных единиц согласно следующей формуле с использованием вектора движения для каждой из P пиксельных единиц:
M равно log2N, когда N равно целой степени 2, (xInt, yInt) представляет координаты местонахождения целого пикселя в составе пиксельной единицы с координатами (x, y) в текущем блоке изображения,
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения,
модуль интерполяционной фильтрации специально конфигурирован для: получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц; определения на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанным соответствующим пиксельным единицам, где коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и осуществления интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, с целью получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц модуль интерполяционной фильтрации специально конфигурирован для: получения, посредством вычислений, фазы каждой из P пиксельных единиц по следующей формуле с использованием вектора движения для каждой из этих P пиксельных единиц:
M равно log2N, когда N равно целой степени 2, X' представляет горизонтальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения, Y' представляет вертикальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения,
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, фаза содержит горизонтальную фазу и вертикальную фазу; и
с целью определения, на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, модуль интерполяционной фильтрации специально конфигурирован для: определения, на основе горизонтальной фазы для каждой пиксельной единицы, горизонтального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице; и определения, на основе вертикальной фазы для каждой пиксельной единицы, вертикального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, с целью осуществления интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, модуль интерполяционной фильтрации специально конфигурирован для:
выполнения горизонтальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения результата горизонтальной интерполяционной фильтрации; и осуществления вертикальной интерполяционной фильтрации результата горизонтальной интерполяционной фильтрации с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения прогнозируемой величины пикселя из состава пиксельной единицы i, где пиксельная единица i представляет собой какую-либо одну из P пиксельных единиц; или
осуществления вертикальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы j с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения результата вертикальной интерполяционной фильтрации; и выполнения горизонтальной интерполяционной фильтрации результата вертикальной интерполяционной фильтрации с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения прогнозируемой величины пикселя из состава пиксельной единицы j, где эта пиксельная единица j представляет собой одну из P пиксельных единиц
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, модель движения представляет собой модель поступательного движения, модель аффинного движения, модель вращательного движения, модель зуммирующего движения, модель параболического движения, модель сдвигового движения, перспективную модель движения или билинейную модель движения.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения,
модель движения представлена в следующем виде, когда W равно 2:
L представляет ширину или высоту текущего блока изображения,
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения,
модель движения представлена в следующем виде, когда W равно 3:
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, векторы движения для W контрольных точек прогнозируют на основе вектора движения, погрешность которого составляет 1/n от погрешности пикселя, в кодированном блоке изображения или в декодированном блоке изображения, окружающем текущий блок изображения.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, устройство 500 прогнозирования изображения применим в составе устройства видео кодирования, или устройство 500 прогнозирования изображения применимо в составе устройства видео декодирования.
Можно понять, что функции различных функциональных модулей устройства 500 прогнозирования изображения в этом варианте могут быть, в частности, реализованы с использованием способов, рассмотренных применительно к описанным выше вариантам способа. Для конкретных процедур реализации устройства 500 прогнозирования изображения ссылки могут быть сделаны на соответствующие описания применительно к рассмотренным выше вариантам способа. Подробности здесь повторно приведены не будут. Устройство 500 прогнозирования изображения может представлять собой какое-либо устройство, которое должно передавать на выход или воспроизводить видео программы, например, компьютер ноутбук, планшетный компьютер, персональный компьютер, мобильный телефон или другое устройство.
Можно понять, что в этом варианте устройство 500 видео кодирования получает, посредством вычислений, вектор движения, погрешность которого составляет 1/N от погрешности пикселя, для каждой пиксельной единицы в составе текущего блока изображения с использованием модели движения и векторов движения, погрешность которых составляет 1/n от погрешности пикселя, для W контрольных точек, где N больше n. Другими словами, точность вектора движения, который получают посредством вычислений и который соответствует каждой пиксельной единицы в составе текущего блок изображения выше точности найденных векторов движения для каждой из указанных W контрольных точек. Сначала получают вектор движения с более высокой точностью. Потом полученный вектор движения, обладающий более высокой точностью, для каждой пиксельной единицы из состава текущего блока изображения используют для определения соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы в составе текущего блока изображения, и осуществляют интерполяционную фильтрацию пикселя из соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы из состава текущего блока изображения с использованием интерполяционного фильтра с фазой Q (Q больше n), для получения прогнозируемой величины пикселя для каждой пиксельной единицы из состава текущего блока изображения. Можно понимать, что рассмотренный выше способ помогает уменьшить число операций интерполяционной фильтрации, требуемое для получения, посредством прогнозирования, прогнозируемой величины пикселя с более высокой точностью из состава текущего блока изображения (например, промежуточные операции для получения прогнозируемой величины пикселя с меньшей точностью путем осуществления интерполяционной фильтрации с более низкой точностью могут не потребоваться), с целью уменьшения количества промежуточных операций обмена с кэш-памятью и запоминающим устройством, которые нужны для интерполяционной фильтрации в процессе прогнозирования изображений, и уменьшить вычислительную сложность процесса прогнозирования изображения.
На Фиг. 6 представлена структурная блок-схема устройства 600 прогнозирования изображения согласно другому варианту настоящего изобретения. Это устройство 600 прогнозирования изображения может содержать по меньшей мере один процессор 601, запоминающее устройство 605 и по меньшей мере одну шину 602 связи. Эта шина 602 связи конфигурирована для осуществления соединения и обеспечения связи между компонентами.
Устройство 600 прогнозирования изображения может в качестве опции содержать по меньшей мере один сетевой интерфейс 604 и/или интерфейс 603 пользователя. Такой интерфейс 603 пользователя может содержать дисплей (например, голографический дисплей, электронно-лучевой дисплей или проектор), указательное устройство (например, мышь, трекбол, сенсорную панель или сенсорный экран), видеокамеру и/или устройство для приема звука, либо другое подобное устройство.
Запоминающее устройство 605 может содержать постоянное запоминающее устройство и запоминающее устройство с произвольной выборкой и представлять команды и данные для процессора 601. Часть этого запоминающего устройства 605 может далее представлять собой энергонезависимое запоминающее устройство с произвольной выборкой.
В некоторых вариантах запоминающее устройство 605 сохраняет следующие элементы: выполняемый модуль или структуру данных, их подмножества или их расширенные множества; а также запоминающее устройство 605 содержит:
операционную систему 6051, содержащую различные системные программы и конфигурированную для осуществления разнообразных базовых сервисов и выполнения различных задач на аппаратной основе; и
модуль 6052 прикладных программ, содержащий различные прикладные программы и конфигурированный для осуществления разнообразных сервисов приложений.
В этом варианте настоящего изобретения, с использованием программы или команд, записанных в запоминающем устройстве 605, процессор 601 конфигурируют для: определения векторов движения для W контрольных точек в текущем блоке изображения; получения, посредством вычислений, векторов движения для P пиксельных единиц из состава текущего блока изображения с использованием модели движения и вектора движения для W контрольных точек, где погрешность найденных векторов движения для W контрольных точек составляет 1/n от погрешности пикселя, погрешность вектора движения, который получают посредством вычислений и который соответствует каждой из P пиксельных единиц, составляет 1/N от погрешности пикселя, эти P пиксельных единиц представляют собой некоторые или все пиксельные единицы из состава текущего блока изображения, вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы, в опорном изображении, из соответствующих пиксельных единиц, здесь W, n и N представляют собой целые числа больше 1, N больше n и P представляет собой положительное целое число; и осуществление интерполяционной фильтрации пикселя соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из указанных P пиксельных единиц с использованием интерполяционного фильтра с фазой Q, для получения прогнозируемой величины пикселя для каждой из P пиксельных единиц, где Q представляет собой целое число больше n.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, величина N равна предварительно заданному фиксированному числу, а величина Q не больше величины N.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, горизонтальная составляющая или вертикальная составляющая одного из векторов движения для W контрольных точек усилена в N раз в модели движения с использованием числа N, либо разница составляющих между векторами движения для каких-либо двух из W контрольных точек усилена в N раз в модели движения с использованием числа N.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура определения, посредством процессора, соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц содержит: получение, посредством вычислений, местонахождения целых пикселей для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц; и поиск, с использованием вектора движения для каждой из P пиксельных единиц, в опорном изображении для обнаружения опорной пиксельной единицы, соответствующей местонахождению целых пикселей в каждой из P пиксельных единиц, где опорная пиксельная единица, которая соответствует местонахождению целого пикселя в каждой из P пиксельных единиц и которая найдена в опорном изображении, является опорной пиксельной единицей, в опорном изображении, для каждой из P пиксельных единиц:
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура получения, посредством вычислений, процессором, местонахождения целого пикселя для каждой из P пиксельных единиц с использованием вектора движения для каждой из P пиксельных единиц содержит:
получение, посредством вычислений, местонахождения целого пикселя для каждой из P пиксельных единиц согласно следующей формуле с использованием вектора движения для каждой из P пиксельных единиц:
M равно log2N, когда N равно целой степени 2, (xInt, yInt) представляет координаты местонахождения целого пикселя в составе пиксельной единицы с координатами (x, y) в текущем блоке изображения,
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура выполнения, посредством процессора, интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q содержит:
получение, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц; определение на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанным соответствующим пиксельным единицам, где коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и осуществление интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, процедура получения, посредством вычислений процессором, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц содержит: получение, посредством вычислений, фазы каждой из P пиксельных единиц по следующей формуле с использованием вектора движения для каждой из этих P пиксельных единиц:
M равно log2N, когда N равно целой степени 2, X' представляет горизонтальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения, Y' представляет вертикальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения,
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, фаза содержит горизонтальную фазу и вертикальную фазу; процедура определения, посредством процессора и на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, которая соответствует указанной пиксельной единице, содержит: определение, на основе горизонтальной фазы для каждой пиксельной единицы, горизонтального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице; и определение, на основе вертикальной фазы для каждой пиксельной единицы, вертикального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, осуществляемая процессором процедура интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной пиксельной единице, содержит:
выполнение горизонтальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения результата горизонтальной интерполяционной фильтрации; и осуществление вертикальной интерполяционной фильтрации результата горизонтальной интерполяционной фильтрации с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения прогнозируемой величины пикселя из состава пиксельной единицы i, где пиксельная единица i представляет собой какую-либо одну из P пиксельных единиц; или
осуществление вертикальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы j с использованием найденного вертикального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения результата вертикальной интерполяционной фильтрации; и выполнение горизонтальной интерполяционной фильтрации результата вертикальной интерполяционной фильтрации с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице j, для получения прогнозируемой величины пикселя из состава пиксельной единицы j, где эта пиксельная единица j представляет собой какую-либо одну из P пиксельных единиц
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, модель движения представляет собой модель поступательного движения, модель аффинного движения, модель вращательного движения, модель параболического движения, модель сдвигового движения, модель зуммирующего движения, перспективную модель движения или билинейную модель движения.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения,
модель движения представлена в следующем виде, когда W равно 2:
L представляет ширину или высоту текущего блока изображения,
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения,
модель движения представлена в следующем виде, когда W равно 3:
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, векторы движения для W контрольных точек прогнозируют на основе вектора движения, погрешность которого составляет 1/n от погрешности пикселя, в кодированном блоке изображения или в декодированном блоке изображения, окружающем текущий блок изображения.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, значение N равно предварительно заданной фиксированной величине.
В качестве опции, в некоторых возможных вариантах реализации настоящего изобретения, устройство 600 прогнозирования изображения применяется в составе устройства видео кодирования, или это устройство 600 прогнозирования изображения применяется в составе устройства видео декодирования.
Можно понять, что функции различных функциональных модулей устройства 600 прогнозирования изображения в этом варианте могут быть, в частности, реализованы с использованием способов, рассмотренных применительно к описанным выше вариантам способа. Для конкретных процедур реализации устройства 600 прогнозирования изображения ссылки могут быть сделаны на соответствующие описания применительно к рассмотренным выше вариантам способа. Подробности здесь повторно приведены не будут. Устройство 600 прогнозирования изображения может представлять собой какое-либо устройство, которое должно передавать на выход или воспроизводить видео программы, например, компьютер ноутбук, планшетный компьютер, персональный компьютер, мобильный телефон или другое устройство.
Можно понять, что согласно способу прогнозирования изображения, предложенному в этом варианте, устройство 600 прогнозирования изображения получает, посредством вычислений, вектор движения, погрешность которого составляет 1/N от погрешности пикселя, для каждой пиксельной единицы в составе текущего блока изображения с использованием модели движения и векторов движения, погрешность которых составляет 1/n от погрешности пикселя, для W контрольных точек, где N больше n. Другими словами, точность вектора движения, который получают посредством вычислений и который соответствует каждой пиксельной единице в составе текущего блока изображения выше погрешности найденных векторов движения для каждой из указанных W контрольных точек. Сначала получают вектор движения с более высокой точностью. Потом полученный вектор движения, обладающий более высокой точностью, для каждой пиксельной единицы из состава текущего блока изображения используют для определения соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы в составе текущего блока изображения, и осуществляют интерполяционную фильтрацию пикселя из соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы из состава текущего блока изображения с использованием интерполяционного фильтра с фазой Q (Q больше n), для получения прогнозируемой величины пикселя для каждой пиксельной единицы из состава текущего блока изображения. Можно понимать, что рассмотренный выше способ помогает уменьшить число операций интерполяционной фильтрации, требуемое для получения, посредством прогнозирования, прогнозируемой величины пикселя с более высокой точностью из состава текущего блока изображения (например, промежуточные операции для получения прогнозируемой величины пикселя с меньшей точностью путем осуществления интерполяционной фильтрации с более низкой точностью могут не потребоваться), с целью уменьшения количества промежуточных операций обмена с кэш-памятью и запоминающим устройством, которые нужны для интерполяционной фильтрации в процессе прогнозирования изображений, и уменьшить вычислительную сложность процесса прогнозирования изображения.
Описание каждого из рассмотренных выше вариантов фокусируется на каких-то конкретных моментах. Относительно какого-то компонента, не описанного подробно в каком-либо из вариантов, ссылки могут быть сделаны на соответствующие описания в других вариантах.
При рассмотрении некоторых вариантов, предлагаемых в настоящей заявке, следует понимать, что описываемое устройство может быть реализовано и какими-либо другими способами. Поэтому, описываемые здесь варианты являются просто примерами. Например, разбиение на модули представляет собой просто разбиение логических функций, так что в реальных вариантах реализаций могут быть и другие способы разбиения. Например, несколько модулей или компонентов могут сочетаться или быть интегрированными с другой системой, либо некоторые признаки могут быть проигнорированы или не реализованы. Кроме того, показанные или обсуждаемые взаимосвязи или прямые связи, либо соединения связи между аппаратурами или модулями могут быть осуществлены в электронной или других формах.
Модули, описываемые как отдельные части, могут быть или не быть физическими модулями, могут быть расположены в одной сети или могут быть распределены по нескольким сетевым модулями. Некоторые или все модули могут быть выбраны в соответствии с конкретными реальными требованиями для достижения целей физических решений вариантов изобретения.
Кроме того, функциональные модули согласно вариантам настоящего изобретения могут быть интегрированы в одном процессорном модуле, либо каждый из этих функциональных модулей может быть физически отдельным, либо по меньшей мере два модуля могут быть интегрированы в одном модуле. Такой интегрированный модуль может быть реализован в форме устройства или может быть реализован в форме программного функционального модуля.
Когда интегрированный модуль может быть реализован в форме программного функционального модуля и при этом продается или используется как независимое изделие, этот интегрированный модуль может быть записан и сохранен на компьютерном носителе информации. На основе такого понимания технические решения согласно настоящему изобретению целиком или в той части, которая относится к известной технике, либо все или некоторые такие технические решения могут быть реализованы в форме программного продукта. Этот компьютерный программный продукт записан на носителе информации и содержит ряд команд, при выполнении которых компьютерное устройство (которое может представлять собой персональный компьютер, сервер, сетевое устройство или другое подобное устройство) осуществляет все или часть этапов способов, описываемых вариантами настоящего изобретения. Указанный выше носитель информации представляет собой: какой-либо носитель, который может сохранять записанный на нем программный код, такой как USB-флэшка, постоянное запоминающее устройство (ПЗУ (ROM, Read-Only Memory)), запоминающее устройство с произвольной выборкой (ЗУПВ (RAM, Random Access Memory)), сменный жесткий диск, магнитный диск или оптический диск.
Рассмотренные выше варианты предназначены только для описания технических решений настоящего изобретения, но никак не ограничивают это изобретение. Хотя настоящее изобретение описано со ссылками на рассмотренные выше варианты, даже рядовые специалисты в рассматриваемой области могут вносить модификации в технические решения, описываемые в вариантах выше, или выполнить эквивалентные замены в некоторых технических решениях вариантов настоящего изобретения.
Изобретение относится к области прогнозирования изображений при кодировании/декодировании видео. Технический результат – снижение вычислительной сложности процесса прогнозирования изображений и уменьшение количества промежуточных операций обмена с памятью. Способ прогнозирования изображения содержит этапы, на которых: определяют векторы движения для W контрольных точек в текущем блоке изображения; получают векторы движения для P пиксельных единиц в текущем блоке изображения с использованием модели движения и векторов движения для W контрольных точек, причем указанные P пиксельных единиц являются некоторыми или всеми пиксельными единицами из состава текущего блока изображения, вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц; и выполняют интерполяционную фильтрацию пикселя из соответствующей опорной пиксельной единицы опорного изображения для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q, для получения прогнозируемой величины пикселя в каждой из P пиксельных единиц. 3 н. и 33 з.п. ф-лы, 9 ил., 4 табл.
1. Способ прогнозирования изображения, содержащий этапы, на которых:
определяют векторы движения для W контрольных точек в текущем блоке изображения;
получают, посредством вычислений, векторы движения для P пиксельных единиц в текущем блоке изображения с использованием модели движения и векторов движения для W контрольных точек, где погрешность найденных векторов движения для W контрольных точек составляет 1/n погрешности пикселей, погрешность вектора движения, полученного посредством вычислений и соответствующего каждой из P пиксельных единиц, составляет 1/N погрешности пикселя, причем указанные P пиксельных единиц являются некоторыми или всеми пиксельными единицами из состава текущего блока изображения, вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц, где W, n и N представляют собой целые числа больше 1, N больше n, а P представляет собой положительное целое число; и
выполняют интерполяционную фильтрацию пикселя из соответствующей опорной пиксельной единицы опорного изображения для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q, для получения прогнозируемой величины пикселя в каждой из P пиксельных единиц, где Q - целое число больше n.
2. Способ по п. 1, в котором величина N равна заданному фиксированному значению, а величина Q меньше или равна N.
3. Способ по п. 1, в котором горизонтальная составляющая или вертикальная составляющая одного из векторов движения для W контрольных точек усилена в N раз в модели движения с использованием N, либо разница составляющих между векторами движения для каких-либо двух из W контрольных точек усилена в N раз в модели движения с использованием N.
4. Способ по п. 1, в котором этап выполнения интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q содержит подэтапы, на которых:
получают, посредством вычислений, фазу каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц; определяют на основе фазы каждой пиксельной единицы интерполяционный фильтр с фазой Q, соответствующей указанной пиксельной единице, при этом коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и осуществляют интерполяционную фильтрацию пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице.
5. Способ по п. 4, в котором этап получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из указанных P пиксельных единиц содержит подэтап, на котором: получают, посредством вычислений, фазы каждой из P пиксельных единиц по следующей формуле с использованием вектора движения для каждой из этих P пиксельных единиц:
где M равно log2N, когда N равно целой степени 2, X' представляет горизонтальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения, Y' представляет вертикальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения,
6. Способ по п. 4, в котором фаза содержит горизонтальную фазу и вертикальную фазу; а этап определения, на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, соответствующей указанной пиксельной единице, содержит: определение, на основе горизонтальной фазы для каждой пиксельной единицы, горизонтального интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице; и определяют, на основе вертикальной фазы для каждой пиксельной единицы вертикального интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе.
7. Способ по п. 6, в котором этап интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, соответствующей указанной пиксельной единице, содержит подэтапы, на которых:
выполняют горизонтальную интерполяционную фильтрацию пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного горизонтального интерполяционного фильтра с фазой Q, которая соответствует пиксельной единице i, для получения результата горизонтальной интерполяционной фильтрации; и выполняют вертикальную интерполяционную фильтрацию результата горизонтальной интерполяционной фильтрации с использованием найденного вертикального интерполяционного фильтра с фазой Q, соответствующей пиксельной единице i, для получения прогнозируемой величины пикселя из состава пиксельной единицы i, где пиксельная единица i представляет собой какую-либо одну из P пиксельных единиц; или
выполняют вертикальную интерполяционную фильтрацию пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы j с использованием найденного вертикального интерполяционного фильтра с фазой Q, соответствующей пиксельной единице j, для получения результата вертикальной интерполяционной фильтрации; и выполняют горизонтальную интерполяционную фильтрацию результата вертикальной интерполяционной фильтрации с использованием найденного горизонтального интерполяционного фильтра с фазой Q, соответствующей пиксельной единице j, для получения прогнозируемой величины пикселя из состава пиксельной единицы j, где эта пиксельная единица j представляет собой одну из P пиксельных единиц.
8. Способ по п. 1, в котором модель движения представляет собой модель поступательного движения, модель аффинного движения, модель вращательного движения, модель параболического движения, модель сдвигового движения, модель зуммирующего движения, перспективную модель движения или билинейную модель движения.
9. Способ по п. 1, в котором модель движения представлена в следующем виде, когда W равно 2:
где L представляет ширину или высоту текущего блока изображения,
10. Способ по п. 1, в котором модель движения представлена в следующем виде, когда W равно 3:
где
11. Способ по п. 1, в котором векторы движения для W контрольных точек прогнозируют на основе вектора движения, погрешность которого составляет 1/n от погрешности пикселя, кодированных блоков изображения или декодированных блоков изображения, окружающих текущий блок изображения.
12. Способ по п. 1, характеризующийся тем, что применяется к процессу видео кодирования или к процессу видео декодирования.
13. Устройство прогнозирования изображения, содержащее:
первый решающий модуль для определения векторов движения для W контрольных точек в текущем блоке изображения;
вычислительный модуль для получения, посредством вычислений, векторов движения для P пиксельных единиц в составе текущего блока изображения с использованием модели движения и векторов движения для этих W контрольных точек, при этом погрешность найденных векторов движения для W контрольных точек составляет 1/n от погрешности пикселя, погрешность вектора движения, получаемого посредством вычислений и соответствующего каждой из P пиксельных единиц, составляет 1/N от погрешности пикселя, причем указанные P пиксельных единиц представляют собой часть или все пиксельные единицы из состава текущего блока изображения, вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц, где W, n и N представляют собой целые числа больше 1, N больше n, а P представляет собой положительное целое число, и
модуль интерполяционной фильтрации для выполнения интерполяционной фильтрации пикселя из соответствующей опорной пиксельной единицы в составе опорного изображения для каждой из P пиксельных единиц с использованием интерполяционного фильтра с фазой Q, для получения прогнозируемой величины пикселя в каждой из P пиксельных единиц, где Q представляет собой целое число больше n.
14. Устройство прогнозирования изображения по п. 13, в котором величина N равна заданному фиксированному числу, а величина Q меньше или равна величине N.
15. Устройство прогнозирования изображения по п. 13, в котором горизонтальная составляющая или вертикальная составляющая одного из векторов движения для W контрольных точек усилена в N раз в модели движения с использованием числа N, либо разница составляющих между векторами движения для каких-либо двух из W контрольных точек усилена в N раз в модели движения с использованием числа N.
16. Устройство прогнозирования изображения по п. 13, в котором
модуль интерполяционной фильтрации дополнительно выполнен с возможностью получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из указанных P пиксельных единиц; определения на основе фазы каждой пиксельной единицы интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице, причем коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и осуществления интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице.
17. Устройство прогнозирования изображения по п. 16, в котором
для получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из этих P пиксельных единиц, модуль интерполяционной фильтрации дополнительно выполнен с возможностью получения, посредством вычислений, фазы каждой из P пиксельных единиц по следующей формуле с использованием вектора движения для каждой из указанных P пиксельных единиц:
где M равно log2N, когда N равно целой степени 2, X' представляет горизонтальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения, Y' представляет вертикальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения,
18. Устройство прогнозирования изображения по п. 16, в котором фаза содержит горизонтальную фазу и вертикальную фазу; и
для определения, на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице, модуль интерполяционной фильтрации дополнительно выполнен с возможностью определения, на основе горизонтальной фазы для каждой пиксельной единицы, горизонтального интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице; и определения, на основе вертикальной фазы для каждой пиксельной единицы, вертикального интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе
19. Устройство прогнозирования изображения по п. 18, в котором для осуществления интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, которая соответствует указанной соответствующей пиксельной единице, модуль интерполяционной фильтрации дополнительно выполнен с возможностью:
осуществления горизонтальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного горизонтального интерполяционного фильтра с фазой Q, соответствующей пиксельной единице i, для получения результата горизонтальной интерполяционной фильтрации; и осуществления вертикальной интерполяционной фильтрации результата горизонтальной интерполяционной фильтрации с использованием найденного вертикального интерполяционного фильтра с фазой Q, соответствующей пиксельной единице i, для получения прогнозируемой величины пикселя из состава пиксельной единицы i, где пиксельная единица i представляет собой какую-либо одну из P пиксельных единиц; или
осуществления вертикальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы j с использованием найденного вертикального интерполяционного фильтра с фазой Q, соответствующей пиксельной единице j, для получения результата вертикальной интерполяционной фильтрации; и осуществления горизонтальной интерполяционной фильтрации результата вертикальной интерполяционной фильтрации с использованием найденного горизонтального интерполяционного фильтра с фазой Q, соответствующей пиксельной единице j, для получения прогнозируемой величины пикселя из состава пиксельной единицы j, причем указанная пиксельная единица j представляет собой какую-либо одну из P пиксельных единиц.
20. Устройство прогнозирования изображения по п. 13, в котором модель движения представляет собой модель поступательного движения, модель аффинного движения, модель вращательного движения, модель зуммирующего движения, модель параболического движения, модель сдвигового движения, перспективную модель движения или билинейную модель движения.
21. Устройство прогнозирования изображения по п. 13, в котором модель движения представлена в следующем виде, когда W равно 2:
где L представляет ширину или высоту текущего блока изображения,
22. Устройство прогнозирования изображения по п. 13, в котором модель движения представлена в следующем виде, когда W равно 3:
где
23. Устройство прогнозирования изображения по п. 13, в котором векторы движения для W контрольных точек прогнозируют на основе вектора движения, погрешность которого составляет 1/n от погрешности пикселя, кодированных блоков изображения или декодированных блоков изображения, окружающих текущий блок изображения.
24. Устройство прогнозирования изображения по п. 13, характеризующееся тем, что применяется в устройстве видео кодирования или в устройстве видео декодирования.
25. Устройство прогнозирования изображения, содержащее запоминающее устройство и процессор, при этом процессор выполнен с возможностью:
определения векторов движения для W контрольных точек в составе текущего блока изображения;
получения, посредством вычислений, векторов движения для P пиксельных единиц из состава текущего блока изображения с использованием модели движения и векторов движения для указанных W контрольных точек, где погрешность найденных векторов движения для W контрольных точек составляет 1/n от погрешности пикселя, погрешность вектора движения, который получают посредством вычислений и который соответствует каждой из P пиксельных единиц, составляет 1/N от погрешности пикселя, указанные P пиксельных единиц представляют собой некоторые или все пиксельные единицы из состава текущего блока изображения, вектор движения для каждой из этих P пиксельных единиц используется для определения соответствующей опорной пиксельной единицы в опорном изображении из соответствующих пиксельных единиц, где W, n и N представляют собой целые числа больше 1, N больше n, а P представляет собой положительное целое число; и
осуществления интерполяционной фильтрации пикселя соответствующей опорной пиксельной единицы в опорном изображении для каждой из указанных P пиксельных единиц с использованием интерполяционного фильтра с фазой Q, для получения прогнозируемой величины пикселя для каждой из P пиксельных единиц, где Q представляет собой целое число больше n.
26. Устройство прогнозирования изображения по п. 25, в котором величина N равна заданному фиксированному значению, а величина Q меньше или равна N.
27. Устройство прогнозирования изображения по п. 25, в котором горизонтальная составляющая или вертикальная составляющая одного из векторов движения для W контрольных точек усилена в N раз в модели движения с использованием N, либо разница составляющих между векторами движения для каких-либо двух из W контрольных точек усилена в N раз в модели движения с использованием N.
28. Устройство прогнозирования изображения по п. 25, в котором процессор выполнен с возможностью получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из указанных P пиксельных единиц; определения на основе фазы каждой пиксельной единицы интерполяционного фильтра с фазой Q, соответствующей указанным соответствующим пиксельным единицам, где коэффициент фильтрации, используемый интерполяционным фильтром, соответствует фазе; и осуществления интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице.
29. Устройство прогнозирования изображения по п. 28, в котором
для получения, посредством вычислений, фазы каждой из P пиксельных единиц с использованием вектора движения для каждой из указанных P пиксельных единиц процессор выполнен с возможностью получения, посредством вычислений, фазы каждой из P пиксельных единиц по следующей формуле с использованием вектора движения для каждой из этих P пиксельных единиц:
где M равно log2N, когда N равно целой степени 2, X' представляет горизонтальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения, Y' представляет вертикальную фазу пиксельной единицы с координатами (x, y) в текущем блоке изображения,
30. Устройство прогнозирования изображения по п. 28, в котором фаза содержит горизонтальную фазу и вертикальную фазу; и
для определения, на основе фазы каждой пиксельной единицы, интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице, процессор выполнен с возможностью определения, на основе горизонтальной фазы для каждой пиксельной единицы, горизонтального интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице; и определения, на основе вертикальной фазы для каждой пиксельной единицы, вертикального интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице, где коэффициент фильтрации, используемый горизонтальным интерполяционным фильтром, соответствует горизонтальной фазе, а коэффициент фильтрации, используемый вертикальным интерполяционным фильтром, соответствует вертикальной фазе.
31. Устройство прогнозирования изображения по п. 30, в котором
для осуществления интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для каждой пиксельной единицы с использованием найденного интерполяционного фильтра с фазой Q, соответствующей указанной соответствующей пиксельной единице, процессор выполнен с возможностью выполнения горизонтальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы i с использованием найденного горизонтального интерполяционного фильтра с фазой Q, соответствующей пиксельной единице i, для получения результата горизонтальной интерполяционной фильтрации; и осуществления вертикальной интерполяционной фильтрации результата горизонтальной интерполяционной фильтрации с использованием найденного вертикального интерполяционного фильтра с фазой Q, соответствующей пиксельной единице i, для получения прогнозируемой величины пикселя из состава пиксельной единицы i, где пиксельная единица i представляет собой какую-либо одну из P пиксельных единиц; или
процессор выполнен с возможностью осуществления вертикальной интерполяционной фильтрации пикселя из состава соответствующей опорной пиксельной единицы, в опорном изображении, для пиксельной единицы j с использованием найденного вертикального интерполяционного фильтра с фазой Q, соответствующей пиксельной единице j, для получения результата вертикальной интерполяционной фильтрации; и выполнения горизонтальной интерполяционной фильтрации результата вертикальной интерполяционной фильтрации с использованием найденного вертикального интерполяционного фильтра с фазой Q, соответствующей пиксельной единице j, для получения прогнозируемой величины пикселя из состава пиксельной единицы j, причем указанная пиксельная единица j представляет собой какую-либо одну из P пиксельных единиц.
32. Устройство прогнозирования изображения по п. 25, в котором модель движения представляет собой модель поступательного движения, модель аффинного движения, модель вращательного движения, модель зуммирующего движения, модель параболического движения, модель сдвигового движения, перспективную модель движения или билинейную модель движения.
33. Устройство прогнозирования изображения по п. 25, в котором модель движения представлена в следующем виде, когда W равно 2:
где L представляет ширину или высоту текущего блока изображения,
34. Устройство прогнозирования изображения по любому из пп. 25-32, в котором модель движения представлена в следующем виде, когда W равно 3:
где
35. Устройство прогнозирования изображения по п. 25, в котором векторы движения для W контрольных точек прогнозируют на основе вектора движения, погрешность которого составляет 1/n от погрешности пикселя, кодированных блоках изображения или декодированных блоках изображения, окружающих текущий блок изображения.
36. Устройство прогнозирования изображения по п. 25, характеризующееся тем, что применяется в устройстве для видео кодирования или в устройстве видео декодирования.
HAN HUANG et al., "Control-point representation and differential coding affine-motion compensation", IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, VOL | |||
Прибор для равномерного смешения зерна и одновременного отбирания нескольких одинаковых по объему проб | 1921 |
|
SU23A1 |
Устройство для светолечебных целей | 1924 |
|
SU1651A1 |
Найдено в сети Интернет по адресу: [https://www.researchgate.net/publication/260665187_Control-Point_Representation_and_Differential_Coding_Affine-Motion_Compensation] | |||
CN 104363451 A, 18.02.2015 | |||
CN 104539966 A, 22.04.2015 | |||
JIAN LOU et al., "Motion vector scaling for non-uniform motion vector grid", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 7th Meeting: Geneva, CH, 21 - 30 November, 2011, Document: JCTVC-G0699, 6 л., опубл | |||
Паровоз для отопления неспекающейся каменноугольной мелочью | 1916 |
|
SU14A1 |
Многоступенчатая активно-реактивная турбина | 1924 |
|
SU2013A1 |
КОДИРУЮЩИЕ ДИНАМИЧЕСКИЕ ФИЛЬТРЫ | 2003 |
|
RU2302707C2 |
Авторы
Даты
2018-12-14—Публикация
2016-06-29—Подача