Вид РИД
Изобретение
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к кодированию с предсказанием с использованием компенсации движения.
УРОВЕНЬ ТЕХНИКИ
В типичных способах кодирования и декодирования изображений, для того чтобы кодировать изображение, одно изображение разбивается на макроблоки. После этого, кодирование с предсказанием выполняется для каждого макроблока посредством использования внешнего предсказания или внутреннего предсказания.
Внешнее предсказание означает способ сжатия изображения посредством удаления временной избыточности между изображениями, и его характерным примером является кодирование с оценкой движения. При кодировании с оценкой движения каждый блок текущего изображения предсказывается посредством использования, по меньшей мере, одного опорного изображения. Опорный блок, который является наиболее аналогичным текущему блоку, находится в предварительно определенном диапазоне поиска посредством использования предварительно определенной оценочной функции.
Текущий блок предсказывается на основе опорного блока, и кодируется остаточный блок, полученный посредством вычитания из текущего блока предсказания, сформированного в качестве результата предсказания. В этом случае, для того чтобы более точно выполнять предсказание, интерполяция выполняется для диапазона выполнения поиска в опорном изображении, формируются пикселы субпиксельных единиц, меньшие пикселов целопиксельных единиц, и внешнее предсказание выполняется для сформированных пикселов субпиксельных единиц.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
Настоящее изобретение предоставляет способ и устройство для определения коэффициентов фильтрации симметричного или асимметричного интерполяционного фильтра таким образом, чтобы формировать пиксел субпиксельной единицы посредством интерполяции пикселов целопиксельных единиц.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
Согласно аспекту настоящего изобретения, предусмотрен способ интерполяции изображений с использованием интерполяционного фильтра на основе преобразования, причем способ включает в себя, согласно местоположению интерполяции субпиксельных единиц в области, поддерживаемой посредством интерполяционных фильтров для формирования, по меньшей мере, одного пиксельного значения субпиксельной единицы, расположенного между пикселами целопиксельных единиц, выбор по отдельности симметричного или асимметричного интерполяционного фильтра относительно местоположения интерполяции из числа интерполяционных фильтров; и формирование, по меньшей мере, одного пиксельного значения субпиксельной единицы посредством интерполяции пикселов целопиксельных единиц посредством использования выбранного интерполяционного фильтра.
ПРЕИМУЩЕСТВА ИЗОБРЕТЕНИЯ
Чтобы эффективно выполнять интерполяцию изображений, из числа интерполяционных фильтров для формирования пиксельного значения субпиксельной единицы, интерполяционный фильтр по-разному выбирается на основе местоположения интерполяции субпиксельных единиц. Интерполяционный фильтр может быть интерполяционным фильтром с нечетным или четным числом отводов для интерполяции субпиксельных единиц. Интерполяционный фильтр может быть выбран в качестве симметричного или асимметричного интерполяционного фильтра согласно местоположению интерполяции.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой устройства интерполяции изображений согласно варианту осуществления настоящего изобретения;
Фиг. 2 является схемой для описания взаимосвязи между целопиксельной единицей и субпиксельной единицей;
Фиг. 3 является схемой, иллюстрирующей смежные пикселы целопиксельных единиц, к которым следует обращаться с тем, чтобы определять пиксельное значение субпиксельной единицы, согласно варианту осуществления настоящего изобретения;
Фиг. 4A-4C являются схемами, иллюстрирующими примеры пикселов целопиксельных единиц, к которым следует обращаться с тем, чтобы определять пиксельное значение субпиксельной единицы, согласно варианту осуществления настоящего изобретения;
Фиг. 5A является схемой для описания способа интерполяционной фильтрации с использованием опорных пикселов, асимметрично расположенных относительно местоположения интерполяции, чтобы определять пиксельное значение субпиксельной единицы, согласно варианту осуществления настоящего изобретения;
Фиг. 5B является схемой для описания способа интерполяции с использованием интерполяционного фильтра, включающего в себя нечетное число коэффициентов фильтрации, чтобы определять пиксельное значение субпиксельной единицы, согласно варианту осуществления настоящего изобретения;
Фиг. 6 является графиком коэффициента сглаживания на основе параметра сглаживания сглаженного интерполяционного фильтра, согласно варианту осуществления настоящего изобретения;
Фиг. 7 является графиком амплитудно-частотной характеристики интерполяционных фильтров, согласно варианту осуществления настоящего изобретения;
Фиг. 8 является блок-схемой последовательности операций способа интерполяции изображений согласно варианту осуществления настоящего изобретения;
Фиг. 9A-9D, соответственно, показывают коэффициенты фильтрации 3-отводных -6-отводных интерполяционных фильтров, определенные на основе местоположения интерполяции и размера оконного фильтра, согласно вариантам осуществления настоящего изобретения;
Фиг. 10A-10C, соответственно, показывают коэффициенты фильтрации 7-отводных интерполяционных фильтров, определенные на основе местоположения интерполяции и размера оконного фильтра, согласно вариантам осуществления настоящего изобретения;
Фиг. 11A-11C, соответственно, показывают коэффициенты фильтрации 8-отводных интерполяционных фильтров, определенные на основе местоположения интерполяции и размера оконного фильтра, согласно вариантам осуществления настоящего изобретения;
Фиг. 12A и 12B, соответственно, показывают коэффициенты фильтрации регуляризованного интерполяционного фильтра сигнала яркости и регуляризованного интерполяционного фильтра сигнала цветности, согласно вариантам осуществления настоящего изобретения;
Фиг. 13A является блок-схемой устройства кодирования видео с использованием интерполяционного фильтра, согласно варианту осуществления настоящего изобретения;
Фиг. 13B является блок-схемой устройства декодирования видео с использованием интерполяционного фильтра, согласно варианту осуществления настоящего изобретения;
Фиг. 14A является блок-схемой последовательности операций способа кодирования изображений с использованием интерполяционного фильтра, согласно варианту осуществления настоящего изобретения;
Фиг. 14B является блок-схемой последовательности операций способа декодирования изображений с использованием интерполяционного фильтра, согласно варианту осуществления настоящего изобретения;
Фиг. 15 является схемой для описания принципа единиц кодирования согласно варианту осуществления настоящего изобретения;
Фиг. 16 является блок-схемой кодера изображений на основе единиц кодирования согласно варианту осуществления настоящего изобретения;
Фиг. 17 является блок-схемой декодера изображений на основе единиц кодирования согласно варианту осуществления настоящего изобретения;
Фиг. 18 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и сегменты согласно варианту осуществления настоящего изобретения;
Фиг. 19 является схемой для описания взаимосвязи между единицей кодирования и единицами преобразования, согласно варианту осуществления настоящего изобретения;
Фиг. 20 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно варианту осуществления настоящего изобретения;
Фиг. 21 является схемой более глубоких единиц кодирования согласно глубинам, согласно варианту осуществления настоящего изобретения;
Фиг. 22-24 являются схемами для описания взаимосвязи между единицами кодирования, единицами предсказания и единицами преобразования, согласно варианту осуществления настоящего изобретения.
Фиг. 25 является схемой для описания взаимосвязи между единицей кодирования, единицей предсказания или сегментом и единицей преобразования, согласно информации режима кодирования по таблице 1;
Фиг. 26 является блок-схемой последовательности операций способа кодирования видео с использованием интерполяционного фильтра на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения; и
Фиг. 27 является блок-схемой последовательности операций способа декодирования видео с использованием интерполяционного фильтра на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
ОПТИМАЛЬНЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Согласно аспекту настоящего изобретения, предусмотрен способ интерполяции изображений с использованием интерполяционного фильтра на основе преобразования, причем способ включает в себя, согласно местоположению интерполяции субпиксельных единиц в области, поддерживаемой посредством интерполяционных фильтров для формирования, по меньшей мере, одного пиксельного значения субпиксельной единицы, расположенного между пикселами целопиксельных единиц, выбор по отдельности симметричного или асимметричного интерполяционного фильтра относительно местоположения интерполяции из числа интерполяционных фильтров; и формирование, по меньшей мере, одного пиксельного значения субпиксельной единицы посредством интерполяции пикселов целопиксельных единиц посредством использования выбранного интерполяционного фильтра.
Симметричный интерполяционный фильтр может включать в себя одинаковые числа коэффициентов фильтрации на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством симметричного интерполяционного фильтра, и асимметричный интерполяционный фильтр может включать в себя разные числа коэффициентов фильтрации на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством асимметричного интерполяционного фильтра.
Формирование, по меньшей мере, одного пиксельного значения субпиксельной единицы может включать в себя, если выбирается асимметричный интерполяционный фильтр, выполнение фильтрации посредством использования коэффициентов фильтрации асимметричного интерполяционного фильтра, чтобы поддерживать пикселы целопиксельных единиц, асимметрично расположенные на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством асимметричного интерполяционного фильтра; и если выбирается симметричный интерполяционный фильтр, выполнение фильтрации посредством использования коэффициентов фильтрации симметричного интерполяционного фильтра, чтобы поддерживать пикселы целопиксельных единиц, симметрично расположенные на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством симметричного интерполяционного фильтра.
Формирование, по меньшей мере, одного пиксельного значения субпиксельной единицы может включать в себя, если асимметричный интерполяционный фильтр с нечетным числом отводов, включающий в себя нечетное число коэффициентов фильтрации, выбирается из числа интерполяционных фильтров, выполнение фильтрации посредством использования нечетного числа коэффициентов фильтрации асимметричного интерполяционного фильтра с нечетным числом отводов, чтобы поддерживать нечетное число пикселов целопиксельных единиц, расположенных на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством асимметричного интерполяционного фильтра с нечетным числом отводов; и если симметричный интерполяционный фильтр с четным числом отводов, включающий в себя четное число коэффициентов фильтрации, выбирается из числа интерполяционных фильтров, выполнение фильтрации посредством использования четного числа коэффициентов фильтрации симметричного интерполяционного фильтра с четным числом отводов, чтобы поддерживать четное число пикселов целопиксельных единиц, расположенных на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством симметричного интерполяционного фильтра с четным числом отводов.
Каждый из интерполяционных фильтров может включать в себя, для того чтобы интерполировать пикселы целопиксельных единиц в пространственной области, коэффициенты фильтрации, полученные посредством комбинирования фильтра с использованием множества базисных функций для преобразования и обратного преобразования и асимметричного или симметричного оконного фильтра.
Выбор интерполяционного фильтра может включать в себя выбор, из числа интерполяционных фильтров, интерполяционного фильтра, регуляризованного для того, чтобы минимизировать ошибку частотной характеристики, сформированную в качестве результата интерполяции с использованием выбранного интерполяционного фильтра, и регуляризованный интерполяционный фильтр может включать в себя i) интерполяционный фильтр четвертьпиксельных единиц, включающий в себя коэффициенты 7-отводной фильтрации {-1, 4, -10, 58, 17, -5, 1} и имеющий размер окна в 8,7, и ii) интерполяционный фильтр полупиксельных единиц, включающий в себя коэффициенты 8-отводной фильтрации {-1, 4, -11, 40, 40, -11, 4, -1} и имеющий размер окна в 9,5.
Согласно другому аспекту настоящего изобретения, предусмотрено устройство интерполяции изображений с использованием интерполяционного фильтра на основе преобразования, причем устройство включает в себя модуль выбора фильтра для, согласно местоположению интерполяции субпиксельных единиц в области, поддерживаемой посредством интерполяционных фильтров для формирования, по меньшей мере, одного пиксельного значения субпиксельной единицы, расположенного между пикселами целопиксельных единиц, выбора по отдельности симметричного или асимметричного интерполяционного фильтра относительно местоположения интерполяции из числа интерполяционных фильтров; и модуль интерполяции для формирования, по меньшей мере, одного пиксельного значения субпиксельной единицы посредством интерполяции пикселов целопиксельных единиц посредством использования выбранного интерполяционного фильтра.
Согласно другому аспекту настоящего изобретения, предусмотрено устройство кодирования видео с использованием фильтра интерполяции изображений, причем устройство включает в себя кодер для, согласно местоположению интерполяции субпиксельных единиц в области, поддерживаемой посредством интерполяционных фильтров для формирования, по меньшей мере, одного пиксельного значения субпиксельной единицы, расположенного между пикселами целопиксельных единиц, выбора по отдельности для каждого блока входного изображения симметричного или асимметричного интерполяционного фильтра относительно местоположения интерполяции в области, поддерживаемой посредством выбранного интерполяционного фильтра из числа интерполяционных фильтров, формирования, по меньшей мере, одного пиксельного значения субпиксельной единицы посредством интерполяции пикселов целопиксельных единиц посредством использования выбранного интерполяционного фильтра, выполнения кодирования с предсказанием и выполнения преобразования и квантования для результата предсказания согласно кодированию с предсказанием; модуль вывода для вывода потока битов, сформированного посредством выполнения энтропийного кодирования для квантованных коэффициентов преобразования и информации кодирования; и модуль хранения для сохранения коэффициентов фильтрации интерполяционных фильтров.
Согласно другому аспекту настоящего изобретения, предусмотрено устройство декодирования видео с использованием фильтра интерполяции изображений, причем устройство включает в себя модуль приема и извлечения для приема кодированного потока битов видео, выполнения энтропийного декодирования и синтаксического анализа и извлечения информации кодирования и кодированных данных изображения видео; декодер для выполнения обратного квантования и обратного преобразования для квантованных коэффициентов преобразования кодированных данных текущего блока изображения, согласно местоположению интерполяции субпиксельных единиц в области, поддерживаемой посредством интерполяционных фильтров для формирования, по меньшей мере, одного пиксельного значения субпиксельной единицы, расположенного между пикселами целопиксельных единиц, выбора по отдельности симметричного или асимметричного интерполяционного фильтра относительно местоположения интерполяции из числа интерполяционных фильтров, формирования, по меньшей мере, одного пиксельного значения субпиксельной единицы посредством интерполяции пикселов целопиксельных единиц посредством использования выбранного интерполяционного фильтра и выполнения декодирования с предсказанием, чтобы восстанавливать изображение; и модуль хранения для сохранения коэффициентов фильтрации интерполяционных фильтров.
Согласно другому аспекту настоящего изобретения, предусмотрен машиночитаемый носитель записи, имеющий записанную программу для осуществления вышеуказанного способа.
ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
В нижеприведенном описании, "изображение" может в целом означать движущееся изображение, такое как видео, а также неподвижное изображение.
Интерполяция с использованием асимметричного интерполяционного фильтра и симметричного интерполяционного фильтра с учетом сглаживания, согласно варианту осуществления настоящего изобретения, раскрывается со ссылкой на фиг. 1-12B. Кроме того, кодирование и декодирование видео с использованием асимметричного интерполяционного фильтра и симметричного интерполяционного фильтра, согласно варианту осуществления настоящего изобретения, раскрывается со ссылкой на фиг. 13A-27. В частности, кодирование и декодирование видео с использованием асимметричного интерполяционного фильтра и симметричного интерполяционного фильтра на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения, раскрывается со ссылкой на фиг. 15-25.
Далее подробно описывается интерполяция с использованием асимметричного интерполяционного фильтра и симметричного интерполяционного фильтра с учетом сглаживания, согласно варианту осуществления настоящего изобретения, со ссылкой на фиг. 1-12B.
Фиг. 1 является блок-схемой устройства 10 интерполяции изображений согласно варианту осуществления настоящего изобретения.
Устройство 10 интерполяции изображений с использованием симметричных и асимметричных интерполяционных фильтров включает в себя модуль 12 выбора фильтра и модуль 14 интерполяции. Операции модуля 12 выбора фильтра и модуля 14 интерполяции устройства 10 интерполяции изображений могут совместно управляться посредством процессора кодирования видео, центрального процессора (CPU) и графического процессора.
Устройство 10 интерполяции изображений может принимать входное изображение и может формировать пиксельные значения субпиксельных единиц посредством интерполяции пикселов целопиксельных единиц. Входное изображение может быть последовательностью изображений, изображением, кадром или блоками видео.
Модуль 12 выбора фильтра может по-разному выбирать интерполяционный фильтр для формирования, по меньшей мере, одного пиксельного значения субпиксельной единицы, расположенного между целопиксельными единицами, на основе местоположения интерполяции субпиксельных единиц.
Модуль 14 интерполяции может интерполировать пикселы целопиксельных единиц, смежные с местоположением интерполяции субпиксельных единиц, посредством использования интерполяционного фильтра, выбранного посредством модуля 12 выбора фильтра, за счет этого формируя пиксельные значения субпиксельных единиц. Интерполяционная фильтрация пикселов целопиксельных единиц для того, чтобы формировать пиксельные значения субпиксельных единиц, может включать в себя интерполяционную фильтрацию опорных пиксельных значений целопиксельных единиц, включающих в себя пикселы целопиксельных единиц, смежные с местоположением интерполяции субпиксельных единиц в области, поддерживаемой посредством интерполяционного фильтра.
Интерполяционный фильтр может включать в себя коэффициенты фильтрации для преобразования опорных пикселов целопиксельных единиц на основе множества базисных функций и для обратного преобразования множества коэффициентов, сформированных в качестве результата преобразования.
Интерполяционный фильтр может быть одномерным фильтром или двумерным фильтром. Если выбранный интерполяционный фильтр является одномерным фильтром, модуль 14 интерполяции может непрерывно выполнять фильтрацию посредством использования одномерных интерполяционных фильтров в двух или более направлений, за счет этого формируя текущее пиксельное значение субпиксельной единицы.
Модуль 12 выбора фильтра может по отдельности выбирать интерполяционный фильтр согласно местоположению интерполяции субпиксельных единиц. Интерполяционный фильтр может включать в себя симметричный интерполяционный фильтр, включающий в себя одинаковые числа коэффициентов фильтрации на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством симметричного интерполяционного фильтра, и асимметричный интерполяционный фильтр, включающий в себя разные числа коэффициентов фильтрации на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством асимметричного интерполяционного фильтра. Модуль 12 выбора фильтра может по отдельности выбирать симметричный интерполяционный фильтр и асимметричный интерполяционный фильтр согласно местоположению интерполяции субпиксельных единиц.
Например, 7-отводный интерполяционный фильтр может включать в себя три коэффициента фильтрации и четыре коэффициента фильтрации на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством 7-отводного интерполяционного фильтра. В этом случае, 7-отводный интерполяционный фильтр может рассматриваться в качестве асимметричного интерполяционного фильтра.
Например, 8-отводный интерполяционный фильтр может включать в себя четыре коэффициента фильтрации и четыре коэффициента фильтрации на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством 8-отводного интерполяционного фильтра. В этом случае, 8-отводный интерполяционный фильтр может рассматриваться в качестве симметричного интерполяционного фильтра.
Если модуль 12 выбора фильтра выбирает асимметричный интерполяционный фильтр, модуль 14 интерполяции может выполнять фильтрацию для пикселов целопиксельных единиц, асимметрично расположенных относительно местоположения интерполяции. В противном случае, если выбирается симметричный интерполяционный фильтр, модуль 14 интерполяции может выполнять фильтрацию для пикселов целопиксельных единиц, симметрично расположенных относительно местоположения интерполяции.
Интерполяционный фильтр может включать в себя асимметричный интерполяционный фильтр с нечетным числом отводов, включающий в себя нечетное число коэффициентов фильтрации, и симметричный интерполяционный фильтр с четным числом отводов, включающий в себя четное число коэффициентов фильтрации. Модуль 12 выбора фильтра может по отдельности выбирать асимметричный интерполяционный фильтр с нечетным числом отводов и симметричный интерполяционный фильтр с четным числом отводов согласно местоположению интерполяции субпиксельных единиц. Например, интерполяционный фильтр полупиксельных единиц и интерполяционный фильтр четвертьпиксельных единиц могут быть по отдельности и по-разному выбраны. Таким образом, 8-отводный интерполяционный фильтр, т.е. симметричный интерполяционный фильтр с четным числом отводов, может быть выбран в качестве интерполяционного фильтра полупиксельных единиц, и 7-отводный интерполяционный фильтр, т.е. асимметричный интерполяционный фильтр с нечетным числом отводов, может быть выбран в качестве интерполяционного фильтра четвертьпиксельных единиц.
Чтобы интерполировать пикселы целопиксельных единиц в пространственной области, каждый интерполяционный фильтр может быть получен посредством комбинирования коэффициентов фильтрации для выполнения преобразования и обратного преобразования посредством использования множества базисных функций и коэффициентов оконной фильтрации для выполнения фильтрации нижних частот.
Интерполяционный фильтр может быть сформирован на основе оконного фильтра, который является асимметричным относительно местоположения интерполяции, или оконного фильтра, который является симметричным относительно местоположения интерполяции.
Асимметричный интерполяционный фильтр также может быть сформирован посредством комбинирования фильтра для выполнения преобразования и обратного преобразования на основе множества базисных функций и асимметричного оконного фильтра.
Если выбирается интерполяционный фильтр с нечетным числом отводов, модуль 14 интерполяции может выполнять фильтрацию для нечетного числа пикселов целопиксельных единиц, расположенных относительно местоположения интерполяции, посредством использования нечетного числа коэффициентов фильтрации интерполяционного фильтра с нечетным числом отводов.
Если выбирается интерполяционный фильтр с четным числом отводов, модуль 14 интерполяции может выполнять фильтрацию для четного числа пикселов целопиксельных единиц, расположенных относительно местоположения интерполяции, посредством использования четного числа коэффициентов фильтрации интерполяционного фильтра с четным числом отводов.
Интерполяционный фильтр с нечетным числом отводов может включать в себя разные числа коэффициентов фильтрации на обеих сторонах местоположения интерполяции в соответствующей поддерживаемой области и в силу этого может быть асимметричным интерполяционным фильтром. Интерполяционный фильтр с четным числом отводов может быть симметричным интерполяционным фильтром, включающим в себя одинаковые числа коэффициентов фильтрации на обеих сторонах местоположения интерполяции в соответствующей поддерживаемой области.
Модуль 12 выбора фильтра может выбирать интерполяционный фильтр, регуляризованный для того, чтобы минимизировать ошибку частотной характеристики, сформированную в качестве результата интерполяции с использованием интерполяционного фильтра. Например, регуляризованный интерполяционный фильтр может включать в себя i) интерполяционный фильтр четвертьпиксельных единиц, включающий в себя коэффициенты 7-отводной фильтрации {-1, 4, -10, 58, 17, -5, 1} и имеющий размер окна в 8,7, и ii) интерполяционный фильтр полупиксельных единиц, включающий в себя коэффициенты 8-отводной фильтрации {-1, 4, -11, 40, 40, -11, 4, -1} и имеющий размер окна в 9,5.
Кроме того, модуль 12 выбора фильтра может по отдельности и по-разному выбирать интерполяционный фильтр согласно цветовым компонентам. Например, регуляризованный интерполяционный фильтр для пикселов сигнала яркости может быть определен в качестве 7-отводного интерполяционного фильтра четвертьпиксельных единиц и 8-отводного интерполяционного фильтра полупиксельных единиц. Регуляризованный интерполяционный фильтр для пикселов сигнала цветности может быть определен в качестве 4-отводных интерполяционных фильтров на основе единиц в 1/8 пиксела, четвертьпиксельных единиц и полупиксельных единиц.
Определенный регуляризованный интерполяционный фильтр для пикселов сигнала цветности может включать в себя i) интерполяционный фильтр на основе единиц в 1/8 пиксела, включающий в себя коэффициенты 4-отводной фильтрации {-2, 58, 10, -2} для местоположения интерполяции в 1/8 и имеющий гладкость в 0,012, ii) интерполяционный фильтр четвертьпиксельных единиц, включающий в себя коэффициенты 4-отводной фильтрации {-4, 54, 16, -2} для местоположения интерполяции в 1/4 и имеющий гладкость в 0,016, iii) интерполяционный фильтр на основе единиц в 1/8 пиксела, включающий в себя коэффициенты 4-отводной фильтрации {-6, 46, 28, -4} для местоположения интерполяции в 3/8 и имеющий гладкость в 0,018, и iv) интерполяционный фильтр полупиксельных единиц, включающий в себя коэффициенты 4-отводной фильтрации {-4, 36, 36, -4} для местоположения интерполяции в 1/2 и имеющий гладкость в 0,020.
Интерполяционный фильтр может быть зеркально-отражательным симметричным фильтром, в котором коэффициент f(α) фильтрации местоположения α интерполяции и коэффициент fl(1-α) фильтрации местоположения (1-α) интерполяции могут быть идентичными.
Интерполяционный фильтр четвертьпиксельных единиц для пикселов сигнала яркости может быть зеркально-отражательным симметричным фильтром. Соответственно, интерполяционный фильтр для местоположения интерполяции в 1/4 и интерполяционный фильтр для местоположения интерполяции в 3/4 могут включать в себя симметрично идентичные коэффициенты. Если 7-отводный интерполяционный фильтр сигнала яркости четвертьпиксельных единиц включает в себя коэффициенты фильтрации {-1, 4, -10, 58, 17, -5, 1} местоположения интерполяции в 1/4, он может включать в себя коэффициенты фильтрации {1, -5, 17, 58, -10, 4, -1} местоположения интерполяции в 3/4.
Интерполяционный фильтр на основе единиц в 1/8 пиксела для пикселов сигнала цветности может быть зеркально-отражательным симметричным фильтром. Соответственно, интерполяционный фильтр для местоположения интерполяции в 1/8 и интерполяционный фильтр для местоположения интерполяции в 7/8 могут включать в себя симметрично идентичные коэффициенты. Аналогично, интерполяционный фильтр для местоположения интерполяции в 3/8 и интерполяционный фильтр для местоположения интерполяции в 5/8 могут включать в себя симметрично идентичные коэффициенты. Интерполяционный фильтр может быть определен на основе интерполяционного фильтра на основе преобразования, включающего в себя коэффициенты фильтрации, определенные посредством использования множества базисных функций. Кроме того, сглаженный интерполяционный фильтр, модифицированный относительно интерполяционного фильтра на основе преобразования, может быть использован для того, чтобы выполнять фильтрацию посредством варьирования своей гладкости согласно расстоянию между местоположением интерполяции и пикселами целопиксельных единиц.
Гладкость сглаженного интерполяционного фильтра может быть определена на основе расстояния между местоположением интерполяции и пикселами целопиксельных единиц. Интерполяционный фильтр может включать в себя различные коэффициенты фильтрации согласно местоположению интерполяции субпиксельных единиц и его гладкости.
Гладкость сглаженного интерполяционного фильтра также может быть определена на основе расстояния между местоположением интерполяции и пикселами целопиксельных единиц, смежными с местоположением интерполяции.
Кроме того, интерполяционный фильтр может включать в себя коэффициенты фильтрации для обеспечения возможности сглаживания опорных пикселов целопиксельных единиц, которые находятся на большом расстоянии от местоположения интерполяции.
Сглаженный интерполяционный фильтр, полученный посредством комбинирования коэффициентов фильтрации для выполнения преобразования и обратного преобразования и коэффициентов оконной фильтрации для выполнения фильтрации нижних частот, может включать в себя коэффициенты фильтрации для предоставления большого весового коэффициента опорному пикселу целопиксельной единицы около местоположения интерполяции и предоставления небольшого весового коэффициента опорному пикселу целопиксельной единицы на большом расстоянии от местоположения интерполяции.
Сглаженный интерполяционный фильтр может включать в себя коэффициенты фильтрации для сглаживания опорных пикселов целопиксельных единиц, преобразования сглаженных опорных пикселов целопиксельных единиц посредством использования множества базисных функций и обратного преобразования множества коэффициентов, сформированных в качестве результата преобразования.
Сглаженный интерполяционный фильтр может включать в себя различные коэффициенты фильтрации согласно своей длине, а также местоположению интерполяции субпиксельных единиц и своей гладкости.
Кроме того, сглаженный интерполяционный фильтр может включать в себя различные коэффициенты фильтрации согласно коэффициенту масштабирования в качестве результата интерполяции, а также местоположению интерполяции субпиксельных единиц, его гладкости и его длины. Модуль 12 выбора фильтра может выбирать сглаженный интерполяционный фильтр, коэффициенты фильтрации которого увеличиваются до целых чисел. Модуль 14 интерполяции регуляризует пиксельные значения, сформированные посредством использования сглаженного интерполяционного фильтра, выбранного посредством модуля 12 выбора фильтра.
Кроме того, модуль 12 выбора фильтра может по-разному выбирать интерполяционный фильтр согласно характеристикам пикселов. Модуль 14 интерполяции может формировать пиксельные значения субпиксельных единиц посредством использования интерполяционного фильтра, по-разному выбранного согласно характеристикам пикселов.
Интерполяционный фильтр, выбираемый посредством модуля 12 выбора фильтра, может включать в себя сглаженный интерполяционный фильтр и общий интерполяционный фильтр, который не рассматривает сглаживание. Таким образом, согласно характеристикам изображений, модуль 12 выбора фильтра может выбирать общий интерполяционный фильтр, который вообще не рассматривает сглаживание.
Например, согласно другому варианту осуществления, устройство 10 интерполяции изображений может выполнять интерполяцию изображений посредством использования различных интерполяционных фильтров согласно цветовым компонентам.
Согласно другому варианту осуществления, модуль 12 выбора фильтра может по-разному выбирать интерполяционный фильтр на основе местоположения интерполяции субпиксельных единиц и цветового компонента текущего пиксела. Согласно другому варианту осуществления, модуль 14 интерполяции может интерполировать пикселы целопиксельных единиц посредством использования выбранного интерполяционного фильтра, за счет этого формируя, по меньшей мере, одно пиксельное значение субпиксельной единицы.
Например, модуль 12 выбора фильтра может по-разному определять интерполяционный фильтр для компонента сигнала яркости и интерполяционный фильтр для компонента сигнала цветности.
Чтобы интерполировать пиксел сигнала цветности, модуль 12 выбора фильтра может выбирать сглаженный интерполяционный фильтр, имеющий большую гладкость, чем гладкость интерполяционного фильтра для пиксела сигнала яркости.
Кроме того, для того чтобы интерполировать пиксел сигнала цветности, может быть выбран интерполяционный фильтр, включающий в себя коэффициенты фильтрации, определенные на основе параметра сглаживания, имеющего большую гладкость, чем гладкость интерполяционного фильтра для пиксела сигнала яркости, или интерполяционный фильтр, включающий в себя коэффициенты фильтрации, комбинированные с оконным фильтром для удаления большего числа высокочастотных компонентов, чем интерполяционный фильтр для пиксела сигнала яркости.
Чтобы получать сглаженный результат интерполяции компонента сигнала цветности, может быть выбран сглаженный интерполяционный фильтр, полученный посредством комбинирования коэффициентов фильтрации для выполнения преобразования и обратного преобразования на основе множества базисных функций и коэффициентов оконной фильтрации для выполнения фильтрации нижних частот.
Устройство 10 интерполяции изображений может включать в себя CPU (не показан) для полного управления модулем 12 выбора фильтра и модулем 14 интерполяции. Альтернативно, модуль 12 выбора фильтра и модуль 14 интерполяции могут управляться посредством отдельных процессоров (не показаны), и процессоры могут работать совместно друг с другом, за счет этого управляя всем устройством 10 интерполяции изображений. Альтернативно, процессор (не показан) за пределами устройства 10 интерполяции изображений может управлять модулем 12 выбора фильтра и модулем 14 интерполяции.
Устройство 10 интерполяции изображений может включать в себя один или более модулей хранения данных (не показаны) для сохранения входных/выходных данных модуля 12 выбора фильтра и модуля 14 интерполяции. Устройство 10 интерполяции изображений также может включать в себя контроллер запоминающего устройства (не показан) для управления вводом-выводом данных модулей хранения данных (не показаны).
Устройство 10 интерполяции изображений может включать в себя дополнительный процессор, включающий в себя схему для выполнения интерполяции изображений. Альтернативно, устройство 10 интерполяции изображений может включать в себя носитель хранения данных, на котором записывается модуль интерполяции изображений, и CPU может вызывать и управлять модулем интерполяции изображений таким образом, чтобы выполнять интерполяцию изображений.
Интерполяция изображений используется для того, чтобы преобразовывать низкокачественное изображение в высококачественное изображение, преобразовывать изображение с чересстрочной разверткой в изображение с построчной разверткой или повышающе дискретизировать низкокачественное изображение в высококачественное изображение. Кроме того, когда устройство кодирования видео кодирует изображение, модуль оценки и компенсации движения может выполнять внешнее предсказание посредством использования интерполированного опорного кадра. Точность внешнего предсказания может быть повышена посредством интерполяции опорного кадра с тем, чтобы формировать высококачественное изображение, и выполнения оценки и компенсации движения на основе высококачественного изображения. Аналогично, когда устройство декодирования изображений декодирует изображение, модуль компенсации движения может выполнять компенсацию движения посредством использования интерполированного опорного кадра, за счет этого повышая точность внешнего предсказания.
Кроме того, сглаженный интерполяционный фильтр, используемый посредством устройства 10 интерполяции изображений, может получать сглаженный результат интерполяции посредством уменьшения высокочастотных компонентов в результате интерполяции с использованием интерполяционного фильтра. Поскольку высокочастотные компоненты снижают эффективность сжатия изображений, эффективность кодирования и декодирования изображений также может быть повышена посредством выполнения интерполяции изображений с регулируемой гладкостью.
Кроме того, может быть избирательно использован симметричный интерполяционный фильтр, в котором коэффициенты фильтрации расположены симметрично относительно местоположения интерполяции, или асимметричный интерполяционный фильтр, в котором коэффициенты фильтрации расположены асимметрично относительно местоположения интерполяции. Кроме того, в качестве интерполяционного фильтра может быть избирательно использован интерполяционный фильтр с нечетным числом отводов или интерполяционный фильтр с четным числом отводов согласно местоположению интерполяции. Соответственно, устройство 10 интерполяции изображений может выполнять фильтрацию интерполяции изображений для пикселов целопиксельных единиц, асимметрично расположенных относительно местоположения интерполяции, а также пикселов целопиксельных единиц, симметрично расположенных относительно местоположения интерполяции.
Далее подробно описывается интерполяция с использованием интерполяционного фильтра, полученного посредством комбинирования коэффициентов фильтрации для выполнения преобразования и обратного преобразования на основе множества базисных функций и коэффициентов оконной фильтрации, согласно вариантам осуществления настоящего изобретения, со ссылкой на фиг. 2-7B.
Фиг. 2 является схемой для описания взаимосвязи между целопиксельной единицей и субпиксельной единицей.
Ссылаясь на фиг. 2, устройство 10 интерполяции изображений формирует пиксельные значения местоположений X посредством интерполяции пиксельных значений целопиксельных единиц местоположений O предварительно определенного блока 20 в пространственной области. Пиксельные значения местоположений X являются пиксельными значениями субпиксельных единиц местоположений интерполяции, определенных посредством αx и αy. Хотя фиг. 2 иллюстрирует, что предварительно определенный блок 20 является блоком 4x4, специалисты в данной области техники должны понимать, что размер блока не ограничивается 4x4 и может быть больше или меньше 4x4.
При видеообработке вектор движения используется для того, чтобы выполнять компенсацию движения и предсказание для текущего изображения. Согласно кодированию с предсказанием, к заранее декодированному изображению обращаются с тем, чтобы предсказывать текущее изображение, и вектор движения указывает предварительно определенную точку опорного изображения. Следовательно, вектор движения указывает пиксел целопиксельной единицы опорного изображения.
Тем не менее, пиксел, к которому следует обращаться посредством текущего изображения, может быть расположен между пикселами целопиксельных единиц опорного изображения. Это местоположение упоминается в качестве местоположения субпиксельной единицы. Поскольку пиксел не существует в местоположении субпиксельной единицы, пиксельное значение субпиксельной единицы просто предсказывается посредством использования пиксельных значений целопиксельных единиц. Другими словами, пиксельное значение субпиксельной единицы оценивается посредством интерполяции пикселов целопиксельных единиц.
Далее подробно описывается способ интерполяции пикселов целопиксельных единиц со ссылкой на фиг. 3 и 4A-4C.
Фиг. 3 является схемой, иллюстрирующей смежные пикселы целопиксельных единиц, к которым следует обращаться с тем, чтобы определять пиксельное значение субпиксельной единицы, согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 3, устройство 10 интерполяции изображений формирует пиксельное значение 35 субпиксельной единицы местоположения интерполяции посредством интерполяции пиксельных значений 31 и 33 целопиксельных единиц в пространственной области. Местоположение интерполяции определяется посредством α.
Фиг. 4A-4C являются схемами, иллюстрирующими примеры пикселов целопиксельных единиц, к которым следует обращаться с тем, чтобы определять пиксельное значение субпиксельной единицы, согласно варианту осуществления настоящего изобретения.
Ссылаясь на фиг. 4A, для того чтобы формировать пиксельное значение 35 субпиксельной единицы посредством интерполяции двух пиксельных значений 31 и 33 целопиксельных единиц, используется множество смежных пиксельных значений 37 и 39 целопиксельных единиц, включающих в себя пиксельные значения 31 и 33 целопиксельных единиц. Другими словами, нулевой и первый пикселы могут быть интерполированы посредством выполнения одномерной интерполяционной фильтрации для 2M пиксельных значений от -(M-1)-го пиксельного значения до M-го пиксельного значения.
Кроме того, хотя фиг. 4A иллюстрирует, что интерполируются пиксельные значения в горизонтальном направлении, одномерная интерполяционная фильтрация может быть выполнена посредством использования пиксельных значений в вертикальном или диагональном направлении.
Ссылаясь на фиг. 4B, пиксельное значение P(α) местоположения α интерполяции может быть сформировано посредством интерполяции пикселов P0 41 и P1 43, которые являются смежными друг с другом в вертикальном направлении. Когда сравниваются фиг. 4A и 4B, их способы интерполяционной фильтрации являются аналогичными, и единственное отличие между ними заключается в том, что пиксельные значения 47 и 49, совмещенные в вертикальном направлении, интерполируются на фиг. 4B, в то время как пиксельные значения 37 и 39, совмещенные в горизонтальном направлении, интерполируются на фиг. 4A.
Ссылаясь на фиг. 4C, аналогично, пиксельное значение 44 местоположения α интерполяции формируется посредством интерполяции два смежных пиксельных значений 40 и 42. Единственное отличие от фиг. 4A заключается в том, что пиксельные значения 46 и 48, совмещенные в диагональном направлении, используются вместо пиксельных значений 37 и 39, совмещенных в горизонтальном направлении.
В дополнение к направлениям, показанным на фиг. 4A-4C, одномерная интерполяционная фильтрация может быть выполнена в различных направлениях.
Интерполяционная фильтрация может быть выполнена с тем, чтобы интерполировать пикселы целопиксельных единиц для формирования пиксельного значения субпиксельной единицы. Интерполяционная фильтрация может быть представлена посредством следующего уравнения:
Пиксельное значение p(x) формируется посредством выполнения интерполяции согласно скалярному произведению вектора p 2M опорных пикселов целопиксельных единиц {pm}={p-M+1, p-M+2, ..., p0, p1, ..., pM} и вектора f(x) коэффициентов фильтрации {fm}={f-M+1, f-M+2, ..., f0, f1, ..., fM}. Поскольку коэффициент f(α) фильтрации варьируется согласно местоположению α интерполяции, и пиксельное значение p(α), полученное посредством выполнения интерполяции, определяется согласно коэффициенту f(α) фильтрации, выбранный интерполяционный фильтр, т.е. определенный коэффициент f(x) фильтрации, значительно влияет на производительность интерполяционной фильтрации.
Далее подробно описывается интерполяция изображений с использованием преобразования и обратного преобразования на основе базисных функций и способ определения интерполяционного фильтра.
Интерполяционный фильтр с использованием преобразования и обратного преобразования первоначально преобразует пиксельные значения посредством использования множества базисных функций, имеющих различные частотные компоненты. Преобразование может включать в себя все типы преобразования из пиксельных значений в пространственной области в коэффициенты в области преобразования и может быть дискретным косинусным преобразованием (DCT). Пиксельные значения целопиксельных единиц преобразуются посредством использования множества базисных функций. Пиксельное значение может быть пиксельным значением сигнала яркости или пиксельным значением сигнала цветности. Базисные функции не ограничены конкретными базисными функциями и могут включать в себя все базисные функции для преобразования пиксельных значений в пространственной области в пиксельные значения в области преобразования. Например, базисная функция может быть косинусоидальной или синусоидальной функцией для выполнения DCT и обратного DCT (IDCT). Альтернативно, могут быть использованы различные базисные функции, такие как сплайн-функция и полиномиальная базисная функция. Кроме того, DCT может быть модифицированным DCT (MDCT) или MDCT с кодированием с оконным взвешиванием.
Интерполяционный фильтр с использованием преобразования и обратного преобразования сдвигает фазы базисных функций, используемых для того, чтобы выполнять преобразование, и обратно преобразует значения множества коэффициентов, сформированных посредством использования сдвинутых по фазе базисных функций, т.е. значения в области преобразования. В качестве результата обратного преобразования выводятся пиксельные значения в пространственной области, и выходные значения могут быть пиксельными значениями местоположения интерполяции.
КОЭФФИЦИЕНТЫ ФИЛЬТРАЦИИ С ИСПОЛЬЗОВАНИЕМ ОРТОГОНАЛЬНОГО ПРЕОБРАЗОВАНИЯ И ОБРАТНОГО ПРЕОБРАЗОВАНИЯ НА ОСНОВЕ ОРТОГОНАЛЬНЫХ БАЗИСНЫХ ФУНКЦИЙ
Далее подробно описывается случай, когда модуль 14 интерполяции выполняет интерполяционную фильтрацию с использованием преобразования и обратного преобразования на основе ортогональных базисных функций. В частности, DCT описывается в качестве примера преобразования.
Например, ссылаясь на фиг. 4A, для того чтобы формировать пиксельное значение 35 субпиксельной единицы посредством интерполяции двух пиксельных значений 31 и 33 целопиксельных единиц, посредством использования множества смежных пиксельных значений 37 и 39 целопиксельных единиц, включающих в себя пиксельные значения 31 и 33 целопиксельных единиц, нулевой и первый пикселы могут быть интерполированы посредством выполнения одномерного DCT для 2M пиксельных значений от -(M-1)-го пиксельного значения до M-го пиксельного значения и выполнения одномерного IDCT на основе сдвинутых по фазе базисных функций.
Модуль 14 интерполяции первоначально выполняет одномерное DCT для пиксельных значений целопиксельных единиц. Одномерное DCT может быть выполнено так, как представлено в уравнении 38:
уравнение 38
p(l) представляет пиксельные значения 37 и 39 от -(M-1)-го пиксельного значения до M-го пиксельного значения, и Ck представляет множество коэффициентов в частотной области, которые формируются посредством выполнения одномерного DCT для пиксельных значений 37 и 39. В этом случае, k является положительным целым числом, которое удовлетворяет вышеуказанному условию уравнения 38.
После того, как одномерное DCT выполняется для пиксельных значений 37 и 39 посредством использования уравнения 38, модуль 14 интерполяции выполняет обратное преобразование для коэффициентов так, как представлено в уравнении 39:
уравнение 39
α представляет местоположение интерполяции между двумя пиксельными значениями, как проиллюстрировано на фиг. 13, и может иметь различные дробные значения, к примеру, 1/2, 1/4, 3/4, 1/8, 3/8, 5/8, 7/8, 1/16 и т.д. Дробное значение не ограничивается конкретным значением, и α может быть действительным значением вместо дробного значения. P(α) представляет пиксельное значение 35 субпиксельной единицы местоположения α интерполяции, которое формируется в качестве результата одномерного IDCT.
Когда уравнение 39 сравнивается с уравнением 38, фаза косинусоидальной функции, которая является базисной функцией, используемой для того, чтобы выполнять IDCT, определяется согласно дробному числу α вместо целого числа l и в силу этого отличается от фазы базисной функции, используемой для того, чтобы выполнять одномерное DCT. Другими словами, фаза каждой базисной функции, используемой для того, чтобы выполнять обратное преобразование, т.е. косинусоидальной функции, сдвигается согласно 2α. Если модуль 14 интерполяции выполняет IDCT на основе сдвинутых по фазе косинусоидальных функций согласно уравнению 39, формируется пиксельное значение 35 субпиксельной единицы местоположения α интерполяции, т.е. P(α).
DCT согласно уравнению 38 выражается посредством детерминанта, представленного в уравнении 40:
уравнение 40
Здесь, C является матрицей 2Mx1 2M коэффициентов, описанных выше относительно уравнения 38, и REF является матрицей 2Mx1 пиксельных значений целопиксельных единиц, т.е. P-(M-1), ..., PM пиксельных значений, описанных выше относительно уравнения 38. Число пиксельных значений целопиксельных единиц, используемых для того, чтобы выполнять интерполяцию, т.е. 2M, означает число отводов одномерного интерполяционного фильтра. D является квадратной матрицей для выполнения одномерного DCT и может задаваться так, как представлено в уравнении 4:
уравнение 4
k и l являются целыми числами, которые удовлетворяют вышеуказанным условиям, и Dkl означает строку k и столбец l квадратной матрицы D для выполнения DCT в уравнении 40. M является идентичным M уравнения 40.
IDCT с использованием множества сдвинутых по фазе базисных функций согласно уравнению 39 выражается посредством детерминанта, представленного в уравнении 5:
уравнение 5
Здесь, P(α) является идентичным P(α) из уравнения 39, и W(α) является матрицей 1x2M для выполнения одномерного IDCT посредством использования множества сдвинутых по фазе базисных функций и может задаваться так, как представлено в уравнении 6:
уравнение 6
k является целым числом, которое удовлетворяет вышеуказанному условию, и Wk (α) означает столбец k матрицы W(α), описанной выше относительно уравнения 5. Фильтр F(α) для выполнения одномерного DCT и одномерного IDCT с использованием множества сдвинутых по фазе базисных функций на основе уравнений 3 и 5 может задаваться так, как представлено в уравнении 7:
уравнение 7
k и l являются целыми числами, которые удовлетворяют вышеуказанным условиям, Fl(α) означает столбец l F(α), и W(α) и D являются идентичными W(α) и D из уравнения 40.
КОЭФФИЦИЕНТЫ ИНТЕРПОЛЯЦИОННОЙ ФИЛЬТРАЦИИ ДЛЯ МАСШТАБИРОВАННОЙ ИНТЕРПОЛЯЦИИ
Различные способы формирования интерполяционного фильтра согласно варианту осуществления настоящего изобретения основаны на арифметическом выражении для формирования числа с плавающей точкой вместо целочисленных и абсолютных значений коэффициентов фильтрации, обычно не больше 1. В частности, результат вычисления вещественного числа вместо целого числа может быть сформирован посредством местоположения α интерполяции субпиксельных единиц.
Эффективность целочисленного вычисления превышает эффективность вычисления с плавающей запятой. В связи с этим, устройство 10 интерполяции изображений может повышать эффективность вычисления интерполяционной фильтрации посредством масштабирования коэффициентов фильтрации в целые числа посредством использования коэффициента масштабирования. Кроме того, поскольку увеличивается битовая глубина пиксельных значений, также может быть повышена точность интерполяционной фильтрации.
Устройство 10 интерполяции изображений может умножать коэффициенты fm(α) фильтрации на предварительно определенное значение и может выполнять интерполяцию изображений посредством использования больших коэффициентов Fm(α) фильтрации. Например, коэффициенты Fm(α) фильтрации могут масштабироваться относительно коэффициентов fm(α) фильтрации так, как представлено в уравнении 8:
уравнение 8
Для эффективности вычисления коэффициент масштабирования может иметь форму 2n; n может быть 0 или положительным целым числом. Результат интерполяционной фильтрации с использованием коэффициентов фильтрации, масштабированных посредством 2n, может иметь битовую глубину, масштабированную посредством n битов, по сравнению с результатом, полученным посредством использования исходных коэффициентов фильтрации.
Интерполяционная фильтрация для целочисленного вычисления с использованием масштабированных коэффициентов Fm(α) фильтрации может удовлетворять уравнению 9. Другими словами, после того, как интерполяционная фильтрация выполняется посредством использования масштабированных коэффициентов Fm(α) фильтрации, масштабированная битовая глубина должна быть восстановлена в исходную битовую глубину.
уравнение 9
В этом случае, смещение может быть 2n-1.
Другими словами, поскольку масштабированный результат фильтрации с использованием масштабированного интерполяционного фильтра должен сокращаться на коэффициент масштабирования, т.е. 2n, с тем чтобы восстанавливаться в исходные биты, битовая глубина масштабированного результата фильтрации может сокращаться на n битов.
Если двухэтапная интерполяционная фильтрация выполняется посредством выполнения одномерной интерполяционной фильтрации в горизонтальном направлении и выполнения одномерной интерполяционной фильтрации в вертикальном направлении, уменьшение может составлять всего 2n битов. Соответственно, если первый одномерный интерполяционный фильтр масштабируется посредством n1 битов, и второй одномерный интерполяционный фильтр масштабируется посредством n2 битов, после того, как двухэтапная интерполяционная фильтрация выполняется посредством использования первого и второго одномерных интерполяционных фильтров, уменьшение может составлять сумму n1 и n2, т.е. 2n битов. Первый одномерный интерполяционный фильтр может быть интерполяционным фильтром, который не масштабируется.
Поскольку сумма коэффициентов fm(α) фильтрации равна 1:
уравнение 10
Условие для регуляризации коэффициентов Fm(α) фильтрации масштабированного интерполяционного фильтра должно удовлетворять уравнению 11:
уравнение 11
Тем не менее, условие регуляризации согласно уравнению 11 может приводить к ошибке округления. Устройство 10 интерполяции изображений может округлять масштабированные коэффициенты Fm(α) фильтрации на основе условия регуляризации согласно уравнению 11. Для регуляризации некоторые масштабированные коэффициенты Fm(α) фильтрации могут регулироваться в предварительно определенном диапазоне исходных значений. Например, некоторые масштабированные коэффициенты Fm(α) фильтрации могут регулироваться в диапазоне ±1, чтобы корректировать ошибку округления.
Для интерполяционного фильтра, имеющего нечетное число опорных пикселов, или асимметричного интерполяционного фильтра относительно местоположения интерполяции, модуль 14 интерполяции может изменять интерполяционный фильтр с использованием преобразования и обратного преобразования на основе множества базисных функций.
Ниже описывается интерполяция изображений с использованием интерполяционного фильтра с нечетным числом отводов, включающего в себя нечетное число коэффициентов фильтрации, в качестве интерполяционного фильтра с использованием преобразования и обратного преобразования на основе множества базисных функций.
АСИММЕТРИЧНЫЙ ИНТЕРПОЛЯЦИОННЫЙ ФИЛЬТР
Фиг. 5A является схемой для описания способа интерполяционной фильтрации с использованием опорных пикселов, асимметрично расположенных относительно местоположения интерполяции, чтобы определять пиксельное значение субпиксельной единицы, согласно варианту осуществления настоящего изобретения.
Предполагается, что для того, чтобы вычислять пиксел p(α) 50 местоположения α интерполяции субпиксельных единиц, левые опорные пикселы 52 и правые опорные пикселы 54 относительно местоположения α интерполяции используются для того, чтобы выполнять интерполяционную фильтрацию. Число левых опорных пикселов 52 равно трем, а число правых опорных пикселов 54 равно пяти. Поскольку нечетное число пикселов поддерживается посредством интерполяционной фильтрации, левые и правые опорные пикселы 52 и 54 расположены асимметрично относительно местоположения α интерполяции.
Как описано выше относительно уравнений 38-40 и 4-7, интерполяционная фильтрация выполняется посредством использования 2M опорных пикселов целопиксельных единиц p-M+1, p-M+2, ..., p0, p1, ..., pM, симметрично распределенных относительно местоположения α интерполяции. Иными словами, если опорные пикселы представляются как pl, диапазон целого числа l представляется как-M+1≤l≤M.
Если местоположение α интерполяции уравнений 38-40 и 4-7 перемещается с параллельным переносом в α-h, коэффициенты фильтрации интерполяционного фильтра с использованием опорных пикселов, асимметрично расположенных относительно местоположения α интерполяции, как проиллюстрировано на фиг. 5A, могут быть сформированы посредством использования уравнений 38-40 и 4-7.
Другими словами, если асимметричные левые и правые опорные пикселы 52 и 54 представляются как pl, диапазон целого числа l составляет -M+1+h≤l≤M+h. В этом случае, M равно 4, и h равно 1. Число левых опорных пикселов 52 на единицу меньше числа левых опорных пикселов 52 в случае, когда 2M опорных пикселов симметрично распределяются относительно местоположения α интерполяции.
Интерполяционный фильтр согласно уравнениям 38-40 и 4-7 является одномерным фильтром. Чтобы выполнять двумерную фильтрацию, посредством использования одномерного фильтра выполняется интерполяционная фильтрация в вертикальном направлении и в горизонтальном направлении. Другими словами, одномерная интерполяционная фильтрация выполняется два раза. Касательно выполнения одномерной интерполяционной фильтрации два раза, для выполнения компенсации движения, вторая одномерная интерполяционная фильтрация использует фильтр, число отводов фильтра которого увеличивается наполовину, а первая одномерная интерполяционная фильтрация выполняется для расширенного блока.
Когда интерполяционная фильтрация выполняется для левой границы блока, блок должен быть расширен влево от левой границы. Если симметричный интерполяционный фильтр с использованием 2M опорных пикселов, симметрично расположенных относительно местоположения α интерполяции, используется для того, чтобы выполнять интерполяционную фильтрацию, блок должен быть расширен влево на M пикселов.
Тем не менее, если асимметричный интерполяционный фильтр с использованием опорных пикселов, асимметрично расположенных относительно местоположения α интерполяции, используется для того, чтобы выполнять интерполяционную фильтрацию, область фильтрации должна быть расширена влево от блока на M-h пикселов. Аналогично, если h является отрицательным направлением, когда интерполяционная фильтрация выполняется для правой границы блока, область фильтрации должна быть расширена вправо от блока на M+h пикселов. Другими словами, если интерполяционная фильтрация выполняется для границы блока, по сравнению со случаем, когда используется симметричный интерполяционный фильтр, когда используется асимметричный интерполяционный фильтр, может быть уменьшена область блока, который должен быть расширен. В связи с этим, может быть уменьшена емкость для хранения для сохранения пиксельных значений расширенной области, а также может быть уменьшен объем вычислений для расширения блока.
ИНТЕРПОЛЯЦИОННЫЙ ФИЛЬТР С НЕЧЕТНЫМ ЧИСЛОМ ОТВОДОВ
Фиг. 5B является схемой для описания способа интерполяции с использованием интерполяционного фильтра, включающего в себя нечетное число коэффициентов фильтрации, чтобы определять пиксельное значение субпиксельной единицы, согласно варианту осуществления настоящего изобретения.
Предполагается, что для того, чтобы вычислять пиксел p(α) 55 местоположения α интерполяции субпиксельных единиц, интерполяционный фильтр использует опорные пикселы {p-2, p-1, p0, p1, p2}. Число опорных пикселов равно пяти, т.е. нечетному числу, и к трем левым опорным пикселам 51 и двум правым опорным пикселам 53 относительно местоположения α интерполяции можно обращаться с тем, чтобы выполнять интерполяционную фильтрацию.
Поскольку левые и правые опорные пикселы 51 и 53 расположены асимметрично относительно местоположения α интерполяции, и число правых опорных пикселов 53 меньше числа левых опорных пикселов 51, интерполяционный фильтр, проиллюстрированный на фиг. 5B, может быть эффективным для того, чтобы выполнять интерполяционную фильтрацию для правой границы блока.
Первоначально, согласно уравнениям 12-15, определяются коэффициенты фильтрации {p(α)} интерполяционного фильтра, использующие опорные пикселы {pl}, в котором диапазон целого числа l составляет -M+1≤l≤M-1, и имеющие размер Size фильтра (т.е. число отводов фильтра) 2M-1:
уравнение 12
уравнение 13
уравнение 14
уравнение 15
Если M равно 3, коэффициенты интерполяционной фильтрации по фиг. 5B могут быть определены согласно уравнению 15.
Альтернативно, согласно уравнениям 16-19, могут быть определены коэффициенты фильтрации {p(α)} интерполяционного фильтра, использующие опорные пикселы {pl}, в котором диапазон целого числа l составляет -M+2≤l≤M, и имеющие размер Size фильтра (т.е. число отводов фильтра) 2M-1:
уравнение 16
уравнение 17
уравнение 18
уравнение 19
Интерполяционная фильтрация с использованием коэффициентов фильтрации, определенных согласно уравнению 19, может быть выполнена для пикселов, перемещенных с параллельным переносом на 1 вправо от опорных пикселов по фиг. 5B.
В уравнениях 12-19, α не ограничивается значением, равным или большим 0 и равным или меньшим 1. Другими словами, α может иметь значение меньше 0 или больше 1. Соответственно, на основе уравнений 12-19 может быть получен интерполяционный фильтр с нечетным числом отводов, имеющий нечетное число отводов фильтра. Поскольку число отводов фильтра является нечетным числом, интерполяционная фильтрация с использованием интерполяционного фильтра может быть выполнена для нечетного числа опорных пикселов.
Интерполяционный фильтр также может быть получен посредством комбинирования интерполяционного фильтра с использованием опорных пикселов, асимметрично расположенных относительно местоположения интерполяции, и интерполяционного фильтра с нечетным числом отводов. Иными словами, интерполяционный фильтр для выполнения интерполяционной фильтрации для нечетного числа пикселов, асимметрично расположенных относительно местоположения интерполяции, также доступен.
Если центр опорных пикселов в уравнениях 12-15 обобщается, коэффициенты фильтрации интерполяционного фильтра могут быть выведены согласно уравнениям 20 и 21:
уравнение 20
уравнение 21
Здесь, Mmax и Mmin, соответственно, представляют минимальное и максимальное значения индекса из числа опорных пикселов и могут представлять диапазон опорных пикселов. Соответственно, размер Size фильтра может быть определен в качестве Mmax-Mmin+1. Например, в 7-отводном интерполяционном фильтре, если Mmax=3 и Mmin=-3, центральный индекс Center опорных пикселов может составлять 0. Другими словами, Center имеет среднее значение Mmax и Mmin.
Кроме того, если базисная функция для интерполяционного фильтра согласно уравнениям 20 и 21 представляется как базисная функция Wk функции косинусного преобразования, выводятся уравнения 22 и 23:
уравнение 22
уравнение 23
Соответственно, интерполяционный фильтр может быть асимметричным интерполяционным фильтром с использованием опорных пикселов, асимметрично расположенных относительно местоположения интерполяции, и может включать в себя интерполяционный фильтр с нечетным числом отводов, число коэффициентов фильтрации которого является нечетным числом. Как описано выше относительно уравнений 38-40 и 4-7, интерполяционный фильтр также может включать в себя симметричный интерполяционный фильтр и интерполяционный фильтр с четным числом отводов.
В общем, интерполяционный фильтр с нечетным числом отводов может быть асимметричным интерполяционным фильтром. Тем не менее, интерполяционный фильтр с четным числом отводов может быть симметричным интерполяционным фильтром или асимметричным интерполяционным фильтром. Например, 8-отводный интерполяционный фильтр может быть симметричным интерполяционным фильтром с четным числом отводов, если он включает в себя четыре коэффициента фильтрации и четыре коэффициента фильтрации на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством симметричного интерполяционного фильтра с четным числом отводов, и может быть асимметричным интерполяционным фильтром с четным числом отводов, если он включает в себя три коэффициента фильтрации, и пять коэффициентов фильтрации на обеих сторонах местоположения интерполяции в области, поддерживаемой посредством асимметричного интерполяционного фильтра с четным числом отводов.
Интерполяционный фильтр может включать в себя коэффициенты фильтрации, сформированные посредством регулирования гладкости характеристики интерполяционного фильтра согласно местоположению интерполяции.
Далее подробно описывается случай, когда оконный фильтр используется для того, чтобы определять различные сглаженные интерполяционные фильтры.
СГЛАЖЕННЫЙ ИНТЕРПОЛЯЦИОННЫЙ ФИЛЬТР С ИСПОЛЬЗОВАНИЕМ ОКОННОГО ФИЛЬТРА
Далее подробно описывается способ сглаживания коэффициентов интерполяционного фильтра посредством использования оконного фильтра.
Оконный фильтр может использовать оконную функцию Хэмминга, косинусоидальную оконную функцию, экспоненциальную оконную функцию, оконную функцию Хеннинга, оконную функцию Блэкмана и треугольную оконную функцию. Хотя ниже для удобства пояснения описываются случаи, когда интерполяционные фильтры на основе преобразования и обратного преобразования сглаживаются посредством использования определенных оконных функций, специалисты в данной области техники должны понимать, что в дополнение к описанным оконным функциям также могут быть использованы другие оконные функции, имеющие аналогичные частотные характеристики.
Оконные коэффициенты согласно оконной функции Хэмминга удовлетворяют уравнению 24:
уравнение 24
В различных оконных функциях, включающих в себя оконную функцию Хэмминга, ввод n является симметричным в отношении N/2, и частотная характеристика является аналогичной частотной характеристике фильтра нижних частот. Из числа вводов оконной функции может только выводиться ввод, покрываемый посредством окна, сформированного посредством оконной функции. Размер N окна может задаваться в качестве положительного целого числа, превышающего длину исходного интерполяционного фильтра. Например, чтобы применять оконную функцию к интерполяционному фильтру для формирования пиксела субпиксельной единицы, к примеру, в 1/2 или 1/4 пиксела, центральное местоположение оконной функции может быть перемещено посредством 1/2 или 1/4 пиксела. Иными словами, поскольку центральное местоположение оконной функции перемещается в местоположение интерполяции, оконная функция может быть симметричной относительно местоположения интерполяции.
Например, уравнения 25 и 26 показывают оконные коэффициенты оконных функций Хэмминга для интерполяционных фильтров полупиксельных единиц и четвертьпиксельных единиц, соответственно:
уравнение 25
уравнение 26
Уравнение 27 последовательно показывает оконные коэффициенты оконной функции Хэмминга, косинусоидальной оконной функции и экспоненциальной оконной функции в качестве оконных функций для интерполяционных фильтров, которые обобщаются согласно местоположению α интерполяции субпиксельных единиц:
уравнение 27
Посредством комбинирования оконных коэффициентов согласно уравнению 27 с исходным интерполяционным фильтром fk(α), сглаженные коэффициенты интерполяционной фильтрации могут быть определены согласно уравнению 28:
уравнение 28
Поскольку сглаженный интерполяционный фильтр определяется посредством использования оконного фильтра, весовой коэффициент коэффициента интерполяционной фильтрации может регулироваться на основе расстояния между опорным пикселом целопиксельной единицы и местоположением интерполяции. Например, сглаженный интерполяционный фильтр может быть определен таким образом, что посредством оконной функции, из числа коэффициентов фильтрации интерполяционного фильтра, коэффициент фильтрации для опорного пиксела целопиксельной единицы, расположенный на большом расстоянии от местоположения интерполяции, значительно сглаживается, а коэффициент фильтрации для опорного пиксела целопиксельной единицы, расположенный около местоположения интерполяции, не изменяется значительно.
Кроме того, если сглаженный интерполяционный фильтр определяется посредством использования оконного фильтра, интерполяционная фильтрация может быть выполнена после того, как опорные пикселы целопиксельных единиц сглаживаются. Входные опорные пикселы целопиксельных единиц Ref={p-M+1, p-M+2, ..., p0, p1, ..., pM} могут включать в себя шум или могут быть повреждены вследствие ошибки, такой как ошибка квантования. В связи с этим, если опорные пикселы целопиксельных единиц сглаживаются до того, как выполняется интерполяционная фильтрация, устройство 10 интерполяции изображений может повышать эффект интерполяции.
ИНТЕРПОЛЯЦИОННЫЙ ФИЛЬТР С ИСПОЛЬЗОВАНИЕМ АСИММЕТРИЧНОГО ОКОННОГО ФИЛЬТРА
Асимметричный оконный фильтр является асимметричным относительно центра фильтра. Соответственно, асимметричный оконный фильтр для интерполяционного фильтра может быть использован для того, чтобы выполнять интерполяционную фильтрацию асимметрично относительно местоположения интерполяции.
Уравнение 29 показывает коэффициенты wl фильтрации асимметричного оконного фильтра в простейшей форме:
уравнение 29
N представляет размер окна, и Mmin и Mmax представляют опорные пикселы самых дальних местоположений от местоположения интерполяции.
Характеристики фильтра для оконного фильтра могут регулироваться посредством варьирования размера N окна. Размер N окна может быть равным или превышать размер Size фильтра интерполяционного фильтра и может быть равным или меньшим двойного размера Size фильтра (Size≤N≤2 x Size)
Например, когда уравнения 38-40 и 4-7 комбинируются с уравнением 29, если определяются коэффициенты фильтрации симметричного интерполяционного фильтра, в котором M равно 4, поскольку число опорных пикселов (2M) равно восьми, получается 8-отводный интерполяционный фильтр. Если используется оконная функция, в которой размер окна N=13, коэффициенты фильтрации интерполяционного фильтра четвертьпиксельных единиц и интерполяционного фильтра полупиксельных единиц являются такими, как представлено ниже. Здесь, используемый коэффициент масштабирования S равен 64.
Коэффициенты интерполяционной фильтрации четвертьпиксельных единиц {pl}={-1, 4, -10, 57, 19, -7, 3, -1}
Коэффициенты интерполяционной фильтрации полупиксельных единиц {pl}={-1, 4, -11, 40, 40, -11, 4, -1}
Аналогично, когда уравнения 38-40 и 4-7 комбинируются с уравнением 29, если Mmin и Mmax регулируются по-другому, коэффициенты фильтрации асимметричного интерполяционного фильтра могут быть определены посредством использования асимметричного оконного фильтра.
СГЛАЖЕННЫЙ ИНТЕРПОЛЯЦИОННЫЙ ФИЛЬТР С ИСПОЛЬЗОВАНИЕМ ДВУХ ПАРАМЕТРОВ
Сглаженный интерполяционный фильтр может определять гладкость коэффициентов фильтрации на основе двух параметров. Сглаженные коэффициенты интерполяционной фильтрации субпиксельных единиц, полученные посредством комбинирования матрицы S сглаживания и коэффициентов интерполяционной фильтрации на основе преобразования и обратного преобразования, удовлетворяют уравнению 30:
уравнение 30
Уравнение 31 показывает пример матрицы S сглаживания:
уравнение 31
Матрица S сглаживания согласно уравнению 31 является 3-диагональной матрицей. Другими словами, из числа компонентов матрицы S сглаживания, компоненты, отличные от компонентов на одной центральной диагональной линии и двух диагональных линиях, соответствующих друг другу и смежных с центральной диагональной линией, все равны 0.
В матрице S сглаживания гладкость σi может быть определена независимо от расстояния (i-α) от пикселов целопиксельных единиц, которые должны быть интерполированы. В этом случае, сглаживание согласно матрице S сглаживания может упоминаться в качестве равномерного сглаживания.
Кроме того, в матрице S сглаживания гладкость σi может быть изменена согласно индексу I местоположения пиксела целопиксельной единицы. В этом случае, сглаживание согласно матрице S сглаживания может упоминаться в качестве неравномерного сглаживания. Например, гладкость σi может удовлетворять уравнению 32:
уравнение 32
Положительный индекс l может повышать эффект сглаживания, если расстояние между местоположением интерполяции и опорным пикселом целопиксельной единицы является большим. Соответственно, положительный индекс l может управлять скоростью сглаживания согласно расстоянию между местоположением интерполяции и опорным пикселом целопиксельной единицы. Параметр β сглаживания может управлять диапазоном сглаживания вокруг местоположения интерполяции.
Если параметр β сглаживания меньше 0, матрица S сглаживания согласно уравнению 13 может быть изменена на усиливающий фильтр. Соответственно, если матрица S сглаживания, которая меньше 0, комбинируется с интерполяционным фильтром с использованием преобразования и обратного преобразования, фильтр для усиления высокочастотных компонентов может быть сформирован.
Чтобы выполнять предсказание субпиксельных единиц, устройство 10 интерполяции изображений может использовать данные сглаженных коэффициентов интерполяционной фильтрации, заранее сохраненные в запоминающем устройстве.
Фиг. 6 является графиком 67 коэффициента сглаживания на основе параметра β сглаживания сглаженного интерполяционного фильтра, согласно варианту осуществления настоящего изобретения.
Первая и вторая кривые 68 и 69 показывают коэффициент сглаживания для сглаживания интерполяционного фильтра на основе дискретного преобразования. Если m является большим, т.е. если увеличивается расстояние от пикселов целопиксельных единиц, которые должны быть интерполированы, коэффициент сглаживания имеет значение около 0.
Здесь, по сравнению со второй кривой 69 в случае, когда параметр β сглаживания является большим, первая кривая 68 в случае, когда параметр β сглаживания является небольшим, имеет относительно большую ширину коэффициента сглаживания. Другими словами, если параметр β сглаживания сглаженного интерполяционного фильтра является большим, низкочастотные компоненты могут, главным образом, фильтроваться, и за счет этого могут быть сформированы относительно строго сглаженные пиксельные значения субпиксельных единиц. Если параметр β сглаживания сглаженного интерполяционного фильтра является относительно небольшим, относительно высокочастотные компоненты могут оставаться и интерполироваться, и за счет этого могут быть сформированы пиксельные значения субпиксельных единиц.
Различные интерполяционные фильтры и коэффициенты фильтрации описываются выше. В частности, в качестве функции для определения коэффициентов фильтрации интерполяционного фильтра, может быть использована оконная функция, сплайн-функция, полиномиальная функция и т.д. Для интерполяционного фильтра частотная характеристика функции может варьироваться согласно частоте, но усиление фильтра частотной характеристики функции может иметь значение около 1. Соответственно, устройство 10 интерполяции изображений может определять коэффициенты фильтрации посредством использования функции, для которой усиление фильтра частотной характеристики является ближайшим к 1, даже когда варьируется частота, и может выбирать интерполяционный фильтр, включающий в себя коэффициенты фильтрации.
РЕГУЛЯРИЗОВАННЫЙ ИНТЕРПОЛЯЦИОННЫЙ ФИЛЬТР
Если увеличивается размер фильтра интерполяционного фильтра, может быть повышена точность интерполяции. Тем не менее, если увеличивается размер фильтра, высокочастотные компоненты остаются в результате фильтрации, и в силу этого интерполяционный фильтр уязвим для шума. Интерполяционный фильтр может сглаживать опорные пиксельные значения {pl} посредством использования косинусоидальной оконной функции, имеющей местоположение α интерполяции в качестве центра, за счет этого уменьшая шум в результате интерполяционной фильтрации. Операция сглаживания опорных пиксельных значений {pl} посредством использования косинусоидальной оконной функции удовлетворяет уравнению 33:
уравнение 33
N представляет размер окна для сглаживания, но может не обязательно быть целым числом. Соответственно, если фильтрация с использованием преобразования и обратного преобразования согласно уравнению 7 комбинируется со оконной фильтрацией согласно уравнению 33, активируется сглаженная интерполяционная фильтрация для местоположения α интерполяции субпиксельных единиц. Сглаженная интерполяционная фильтрация может быть выполнена посредством использования фильтра с конечной импульсной характеристикой (FIR) и удовлетворяет уравнениям 34 и 35:
уравнение 34
уравнение 35
В уравнениях 34 и 35, pα представляет пиксельное значение, сформированное в качестве результата сглаженной интерполяционной фильтрации, и Filterl(α) представляет коэффициенты фильтрации сглаженного интерполяционного фильтра. Mmin и Mmax представляют диапазон опорных пикселов.
В сглаженном интерполяционном фильтре для пикселов сигнала цветности параметр сглаживания сглаженного интерполяционного фильтра может регулироваться, чтобы удалять влияние высокочастотных компонентов еще больше. Коэффициенты фильтрации интерполяционного фильтра сигнала цветности с использованием параметра сглаживания могут быть определены так, как представлено в уравнениях 36 и 37:
уравнение 36
уравнение 37
Фиг. 7 является графиком 70 амплитудно-частотной характеристики интерполяционных фильтров, согласно варианту осуществления настоящего изобретения.
Если гармонический сигнал, имеющий размер 1, вводится в интерполяционные фильтры, график 70 амплитудно-частотной характеристики интерполяционных фильтров может показывать результаты выполнения интерполяционной фильтрации.
График 70 амплитудно-частотной характеристики показывает первую частотную характеристику 71 8-отводного сглаженного интерполяционного фильтра с использованием DCT и IDCT на основе базисных функций, согласно варианту осуществления настоящего изобретения, вторую частотную характеристику 72 регуляризованного 8-отводного сглаженного интерполяционного фильтра согласно варианту осуществления настоящего изобретения и третью частотную характеристику 73 6-отводного интерполяционного фильтра согласно стандарту кодирования видео H.264.
В первой-третьей частотных характеристиках 71-73, точки 711, 715, 721 и 731 максимума представляют то, что сигналы усиливаются на соответствующих частотах, а точка 713 минимума представляет то, что сигнал ослабляется на соответствующей частоте. Такой эффект, что входной сигнал усиливается или ослабляется, не является подходящим при интерполяционной фильтрации.
В идеальной амплитудно-частотной характеристике 74 усиление фильтра постоянно поддерживается равным 1 на всех частотах, и в силу этого точки максимума или точки минимума вообще не существует. Это означает то, что не возникает искажение вследствие интерполяционной фильтрации.
Если частотная характеристика интерполяционного фильтра ближе к идеальной амплитудно-частотной характеристике 74, результат интерполяционной фильтрации является более точным. Искажение в частотной характеристике интерполяционного фильтра по сравнению с идеальной амплитудно-частотной характеристикой 74 может представляться как квадрат разности между частотной характеристикой интерполяционного фильтра и идеальной амплитудно-частотной характеристикой 74, т.е. площадь разностной области.
Например, искажение в частотной характеристике регуляризованного сглаженного интерполяционного фильтра по сравнению с идеальной амплитудно-частотной характеристикой 74 может быть минимизировано посредством регулирования размера N оконного фильтра и гладкости σ. Искажение в частотной характеристике регуляризованного сглаженного интерполяционного фильтра по сравнению с идеальной амплитудно-частотной характеристикой 74 соответствует площади заштрихованной области между идеальной амплитудно-частотной характеристикой 74 и второй частотной характеристикой 72 на графике 70 амплитудно-частотной характеристики. Иными словами, если площадь заштрихованной области является небольшой, может быть повышена точность интерполяции, выполняемой посредством использования регуляризованного сглаженного интерполяционного фильтра.
Кроме того, поскольку частотная характеристика FIR-фильтра имеет значение около 0, когда частота имеет значение около π, FIR-фильтр может не формировать высокочастотные компоненты. Кроме того, если уровень отсечки интерполяционного фильтра является низким, интерполяционный фильтр может не восстанавливать подробную информацию опорного изображения. В общем, если длина фильтра является большой, может назначаться высокий уровень отсечки. На графике 70 амплитудно-частотной характеристики, поскольку уровни 719 и 729 отсечки первой и второй частотных характеристик 71 и 72 сглаженного интерполяционного фильтра и регуляризованного сглаженного интерполяционного фильтра выше уровня 739 отсечки третьей частотной характеристики 73 интерполяционного фильтра H.264, сглаженный интерполяционный фильтр и регуляризованный сглаженный интерполяционный фильтр могут восстанавливать подробную информацию опорного изображения более точно по сравнению с интерполяционным фильтром H.264.
Соответственно, по сравнению с интерполяционным фильтром H.264, сглаженный интерполяционный фильтр может оставлять высокочастотные компоненты входного сигнала после выполнения интерполяционной фильтрации. Кроме того, по сравнению с интерполяционным фильтром H.264 область искажения сглаженного интерполяционного фильтра является относительно небольшой, и в силу этого искажение в результате интерполяции является относительно небольшим.
Из числа сглаженных интерполяционных фильтров вторая частотная характеристика 72 регуляризованного сглаженного интерполяционного фильтра находится близко к идеальной амплитудно-частотной характеристике 74, и первая частотная характеристика 71 нерегуляризованного сглаженного интерполяционного фильтра имеет относительно большую область искажения вследствие точек максимума и точек минимума. Другими словами, по сравнению с регуляризованным сглаженным интерполяционным фильтром, результат фильтрации нерегуляризованного сглаженного интерполяционного фильтра может включать в себя больше нежелательных артефактов.
Соответственно, в качестве коэффициентов фильтрации интерполяционного фильтра согласно варианту осуществления настоящего изобретения, могут быть выбраны коэффициенты фильтрации регуляризованного сглаженного интерполяционного фильтра для минимизации области искажения по сравнению с идеальной амплитудно-частотной характеристикой 74. Другими словами, если размер N оконного фильтра и гладкость σ сглаженного интерполяционного фильтра регулируются, и его коэффициенты фильтрации регуляризуются, могут быть определены коэффициенты фильтрации для минимизации области искажения частотной характеристики сглаженного интерполяционного фильтра.
Следовательно, интерполяционные фильтры устройства 10 интерполяции изображений могут включать в себя коэффициенты фильтрации, определенные с учетом сглаживания.
СДВИГ α ФАЗ И ЗНАЧЕНИЕ ВЕКТОРА ДВИЖЕНИЯ
Точность для типичной компенсации движения в субпиксельных единицах составляет единицу в 1/2p пиксела, к примеру, полупиксельную единицу или четвертьпиксельную единицу. Тем не менее, местоположение α интерполяции для определения коэффициентов фильтрации интерполяционного фильтра субпиксельных единиц согласно варианту осуществления настоящего изобретения не ограничивается единицей в 1/2p пиксела.
Чтобы выполнять компенсацию движения для местоположения α интерполяции в субпиксельной единице, отличной от полупиксельной единицы или четвертьпиксельной единицы, могут быть использованы частичные векторы вектора движения полупиксельных единиц или четвертьпиксельных единиц. Например, допускается набор компонентов субпиксельных единиц {α, 1/2, 1-α} вектора MV движения полупиксельных единиц. Поскольку длина компонентов единиц кодирования вектора MV движения уменьшается, если α меньше 1/4, может быть повышена стабильность интерполяционной фильтрации для компенсации движения, и может сокращаться число битов кодирования для дифференциального вектора движения.
Наиболее часто используемый цветовой формат при кодировании видео представляет собой формат 4:2:0. В этом случае, могут кодироваться выборки сигнала цветности, соответствующие половине числа выборок сигнала яркости. Если идентичный вектор движения совместно используется выборками сигнала яркости и сигнала цветности, размер вектора движения сигнала цветности составляет половину размера вектора движения сигнала яркости. Соответственно, сдвиг фаз интерполяционного фильтра сигнала яркости может синхронизироваться со сдвигом фаз интерполяционного фильтра сигнала цветности.
Например, если сдвиг фаз интерполяционного фильтра сигнала яркости составляет {αi}, сдвиг фаз интерполяционного фильтра сигнала цветности может синхронизироваться с {αi/2}{1-αi/2}
{1/2}.
Например, когда компенсация движения выполняется посредством использования набора компонентов субпиксельных единиц вектора MV движения, если сдвиг фаз интерполяционного фильтра сигнала яркости составляет {α, 1/2, 1-α}, сдвиг фаз интерполяционного фильтра сигнала цветности может синхронизироваться с {α/2, (1-α)/2, 1/2, 1-α/2, 1-(1-α)/2}.
В качестве интерполяционных фильтров согласно вариантам осуществления настоящего изобретения, выше описываются интерполяционный фильтр с использованием преобразования и обратного преобразования на основе множества базисных функций, интерполяционный фильтр для выполнения интерполяции в субпиксельной единице, симметричный или асимметричный интерполяционный фильтр, интерполяционный фильтр с нечетным или четным числом отводов, интерполяционный фильтр с использованием оконного фильтра, интерполяционный фильтр с учетом сглаживания и регуляризованный интерполяционный фильтр.
Вышеуказанные интерполяционные фильтры могут работать по отдельности или могут быть комбинированы. Например, интерполяционный фильтр согласно варианту осуществления настоящего изобретения может выполнять интерполяцию в субпиксельной единице и может выполнять интерполяционную фильтрацию независимо от того, расположены опорные пикселы симметрично или асимметрично относительно местоположения интерполяции. Кроме того, поскольку число коэффициентов фильтрации может быть четным или нечетным числом, интерполяционный фильтр может выполнять интерполяционную фильтрацию для нечетного числа пикселов целопиксельных единиц, а также четного числа пикселов целопиксельных единиц. Кроме того, поскольку коэффициенты фильтрации регуляризованного сглаженного интерполяционного фильтра могут быть выбраны, подробная информация опорных пикселов может оставаться, и нежелательные высокочастотные компоненты, такие как шум, могут быть минимизированы, за счет этого минимизируя искажение вследствие интерполяционной фильтрации.
Фиг. 8 является блок-схемой последовательности операций способа интерполяции изображений согласно варианту осуществления настоящего изобретения.
На этапе 81, из числа интерполяционных фильтров для формирования, по меньшей мере, одного пиксельного значения субпиксельной единицы, расположенного между целопиксельными единицами изображения, симметричный или асимметричный интерполяционный фильтр по отдельности выбирается согласно местоположению интерполяции субпиксельных единиц.
Выбранный асимметричный интерполяционный фильтр может быть интерполяционным фильтром с нечетным числом отводов. Выбранный симметричный интерполяционный фильтр может быть интерполяционным фильтром с четным числом отводов. Чтобы интерполировать пикселы целопиксельных единиц в пространственной области, интерполяционный фильтр может включать в себя коэффициенты фильтрации, полученные посредством комбинирования фильтра с использованием преобразования и обратного преобразования на основе множества базисных функций и асимметричного или симметричного оконного фильтра.
Выбирается интерполяционный фильтр, который регуляризуется для того, чтобы минимизировать ошибку частотной характеристики, сформированную в качестве результата интерполяции при использовании выбранного интерполяционного фильтра. Кроме того, для того чтобы не допускать восстановление высокочастотных компонентов, таких как шум, может быть выбран интерполяционный фильтр, включающий в себя коэффициенты фильтрации для сглаживания опорных пикселов.
На этапе 83, пиксельные значения целопиксельных единиц интерполируются посредством использования интерполяционного фильтра, выбранного на этапе 81, за счет этого формируя, по меньшей мере, одно пиксельное значение субпиксельной единицы.
Если на этапе 81 выбирается асимметричный интерполяционный фильтр, на этапе 83 фильтрация может выполняться для пикселов целопиксельных единиц, асимметрично расположенных относительно местоположения интерполяции. Если на этапе 81 выбирается симметричный интерполяционный фильтр, на этапе 83 фильтрация может выполняться для пикселов целопиксельных единиц, симметрично расположенных относительно местоположения интерполяции.
Кроме того, если на этапе 81 выбирается асимметричный интерполяционный фильтр с нечетным числом отводов, на этапе 83 фильтрация может выполняться для нечетного числа пикселов целопиксельных единиц, расположенных относительно местоположения интерполяции, посредством использования нечетного числа коэффициентов фильтрации асимметричного интерполяционного фильтра с нечетным числом отводов. Если на этапе 81 выбирается симметричный интерполяционный фильтр с четным числом отводов, на этапе 83 фильтрация может выполняться для четного числа пикселов целопиксельных единиц, расположенных относительно местоположения интерполяции, посредством использования четного числа коэффициентов фильтрации симметричного интерполяционного фильтра с четным числом отводов.
Далее описываются различные примеры коэффициентов фильтрации симметричного или асимметричного интерполяционного фильтра, избирательно определенного согласно местоположению интерполяции субпиксельных единиц, со ссылкой на фиг. 9A-12B.
Согласно вышеописанным принципам, интерполяционный фильтр, проиллюстрированный на фиг. 9A-12B, является фильтром, полученным посредством комбинирования интерполяционного фильтра субпиксельных единиц с использованием преобразования и обратного преобразования на основе множества базисных функций и оконного фильтра для сглаживания высокочастотных компонентов, и включает в себя коэффициенты фильтрации, из которых размер окна и гладкость регулируются, чтобы минимизировать искажение в результате интерполяции. Кроме того, ниже описываются различные симметричные и асимметричные интерполяционные фильтры и интерполяционные фильтры с нечетным и четным числом отводов.
Поскольку интерполяционный фильтр является зеркально-отражательным симметричным фильтром, коэффициент fm(1-α) фильтрации местоположения (1-α) интерполяции может быть определен посредством использования коэффициента fm(α) фильтрации местоположения α интерполяции. Соответственно, в таблицах, показанных на фиг. 9A-12B, хотя показаны только коэффициенты интерполяционной фильтрации {fm(α)} в случае, когда субпиксельная единица вектора MV движения равна или меньше 1/2, специалисты в данной области техники должны понимать, что могут быть определены другие коэффициенты интерполяционной фильтрации {fm(α)} в случае, когда субпиксельная единица вектора MV движения превышает 1/2.
Первоначально, в таблицах, показанных на фиг. 9A-11C, FracMV (Дробный MV) в первом столбце представляет субпиксельную единицу вектора MV движения для компенсации движения на основе единиц в 1/2p пиксела. Чтобы выполнять фильтрацию интерполяции субпиксельных единиц, значение FracMV может быть комбинировано с коэффициентами фильтрации во втором столбце. Местоположение α интерполяции в третьем столбце является параметром для задания местоположения интерполяции субпиксельных единиц и может представлять величину сдвига фаз от целопиксельной единицы. Размер N оконного фильтра в четвертом столбце не обязательно может быть целым числом. Масштабирование битов интерполяционного фильтра составляет 6 битов.
Фиг. 9A-9D, соответственно, показывают коэффициенты фильтрации 3-отводных - 6-отводных интерполяционных фильтров, определенные на основе местоположения интерполяции и размера оконного фильтра, согласно вариантам осуществления настоящего изобретения.
Фиг. 9A показывает асимметричный интерполяционный фильтр, который является 3-отводным интерполяционным фильтром и включает в себя коэффициенты фильтрации {p-1, p0, p1}. Соответственно, интерполяционный фильтр, показанный на фиг. 9A, может выполнять интерполяционную фильтрацию для пикселов целопиксельных единиц, асимметрично расположенных относительно местоположения интерполяции. Например, если выполняется горизонтальная интерполяция, интерполяционная фильтрация может быть выполнена для двух левых опорных пикселов целопиксельных единиц и одного правого опорного пиксела целопиксельной единицы относительно местоположения интерполяции.
Фиг. 9B показывает симметричный интерполяционный фильтр, который является 4-отводным интерполяционным фильтром и включает в себя коэффициенты фильтрации {p-1, p0, p1, p2}. Соответственно, интерполяционный фильтр, показанный на фиг. 9B, может выполнять интерполяционную фильтрацию для пикселов целопиксельных единиц, симметрично расположенных относительно местоположения интерполяции. Например, если выполняется горизонтальная интерполяция, интерполяционная фильтрация может быть выполнена посредством использования двух левых опорных пикселов целопиксельных единиц и двух правых опорных пикселов целопиксельных единиц относительно местоположения интерполяции.
Фиг. 9C показывает асимметричный интерполяционный фильтр, который является 5-отводным интерполяционным фильтром и включает в себя коэффициенты фильтрации {p-1, p0, p1, p2, p3}. Соответственно, если выполняется горизонтальная интерполяция, интерполяционная фильтрация может быть выполнена для двух левых опорных пикселов целопиксельных единиц и трех правых опорных пикселов целопиксельных единиц, асимметрично расположенных относительно местоположения интерполяции.
Фиг. 9D показывает симметричный интерполяционный фильтр, который является 6-отводным интерполяционным фильтром и включает в себя коэффициенты фильтрации {p-2, p-1, p0, p1, p2, p3}. Соответственно, если выполняется горизонтальная интерполяция, интерполяционная фильтрация может быть выполнена посредством использования трех левых опорных пикселов целопиксельных единиц и трех правых опорных пикселов целопиксельных единиц, симметрично расположенных относительно местоположения интерполяции.
Фиг. 10A-10C, соответственно, показывают коэффициенты фильтрации 7-отводных интерполяционных фильтров, определенные на основе местоположения интерполяции и размера оконного фильтра, согласно вариантам осуществления настоящего изобретения.
Фиг. 10A показывает асимметричный интерполяционный фильтр, включающий в себя коэффициенты фильтрации {p-3, p-2, p-1, p0, p1, p2, p3}. Соответственно, если выполняется горизонтальная интерполяция посредством использования интерполяционного фильтра, показанного на фиг. 10A, интерполяционная фильтрация может быть выполнена для четырех левых опорных пикселов целопиксельных единиц и трех правых опорных пикселов целопиксельных единиц, асимметрично расположенных относительно местоположения интерполяции.
Фиг. 10B показывает асимметричный интерполяционный фильтр, включающий в себя коэффициенты фильтрации {p-2, p-1, p0, p1, p2, p3, p4}. Соответственно, если выполняется горизонтальная интерполяция посредством использования интерполяционного фильтра, показанного на фиг. 10B, интерполяционная фильтрация может быть выполнена для трех левых опорных пикселов целопиксельных единиц и четырех правых опорных пикселов целопиксельных единиц, асимметрично расположенных относительно местоположения интерполяции.
Фиг. 10C показывает асимметричный интерполяционный фильтр, включающий в себя коэффициенты фильтрации {p-1, p0, p1, p2, p3, p4, p5}. Соответственно, если выполняется горизонтальная интерполяция посредством использования интерполяционного фильтра, показанного на фиг. 10C, интерполяционная фильтрация может быть выполнена для двух левых опорных пикселов целопиксельных единиц и пяти правых опорных пикселов целопиксельных единиц, асимметрично расположенных относительно местоположения интерполяции.
Фиг. 11A-11C, соответственно, показывают коэффициенты фильтрации 8-отводных интерполяционных фильтров, определенные на основе местоположения интерполяции и размера оконного фильтра, согласно вариантам осуществления настоящего изобретения.
Фиг. 11A показывает симметричный интерполяционный фильтр, включающий в себя коэффициенты фильтрации {p-3, p-2, p-1, p0, p1, p2, p3, p4}. Соответственно, если выполняется горизонтальная интерполяция посредством использования интерполяционного фильтра, показанного на фиг. 11A, интерполяционная фильтрация может быть выполнена для четырех левых опорных пикселов целопиксельных единиц и четырех правых опорных пикселов целопиксельных единиц, симметрично расположенных относительно местоположения интерполяции.
Фиг. 11B показывает асимметричный интерполяционный фильтр, включающий в себя коэффициенты фильтрации {p-2, p-1, p0, p1, p2, p3, p4, p5}. Соответственно, если выполняется горизонтальная интерполяция посредством использования интерполяционного фильтра, показанного на фиг. 11B, интерполяционная фильтрация может быть выполнена для трех левых опорных пикселов целопиксельных единиц и пяти правых опорных пикселов целопиксельных единиц, асимметрично расположенных относительно местоположения интерполяции.
Фиг. 11C показывает асимметричный интерполяционный фильтр, включающий в себя коэффициенты фильтрации {p-4, p-3, p-2, p-1, p0, p1, p2, p3}. Соответственно, если выполняется горизонтальная интерполяция посредством использования интерполяционного фильтра, показанного на фиг. 11C, интерполяционная фильтрация может быть выполнена для пяти левых опорных пикселов целопиксельных единиц и трех правых опорных пикселов целопиксельных единиц, асимметрично расположенных относительно местоположения интерполяции.
Фиг. 12A и 12B, соответственно, показывают коэффициенты фильтрации регуляризованного интерполяционного фильтра сигнала яркости и регуляризованного интерполяционного фильтра сигнала цветности, согласно вариантам осуществления настоящего изобретения.
Фиг. 12A и 12B показывают коэффициенты фильтрации регуляризованных интерполяционных фильтров, выбранные с возможностью минимизировать область искажения, как описано выше в разделе "Регуляризованный интерполяционный фильтр".
Согласно фиг. 12A, размер N оконного фильтра регулируется с тем, чтобы регуляризовать интерполяционный фильтр сигнала яркости. Из числа различных интерполяционных фильтров, показанных на фиг. 9A-11C, 7-отводный интерполяционный фильтр {-1, 4, -10, 58, 17, -5, -1}, имеющий размер окна в 8,7, может быть выбран в качестве регуляризованного интерполяционного фильтра сигнала яркости для выполнения интерполяционной фильтрации четвертьпиксельных единиц. Кроме того, 8-отводный интерполяционный фильтр {-1, 4, -11, 40, 40, -11, 4, -1}, имеющий размер окна в 9,5, может быть выбран в качестве регуляризованного интерполяционного фильтра сигнала яркости для выполнения интерполяционной фильтрации полупиксельных единиц. Другими словами, асимметричный интерполяционный фильтр может быть выбран в качестве регуляризованного интерполяционного фильтра сигнала яркости четвертьпиксельных единиц, и симметричный интерполяционный фильтр может быть выбран в качестве регуляризованного интерполяционного фильтра сигнала яркости полупиксельных единиц.
Согласно фиг. 12B, гладкость σ регулируется с тем, чтобы регуляризовать интерполяционный фильтр сигнала цветности. 4-отводный симметричный интерполяционный фильтр на основе единиц в 1/8 пиксела может быть выбран в качестве регуляризованного интерполяционного фильтра сигнала цветности.
Кодирование и декодирование видео с использованием интерполяционного фильтра, согласно вариантам осуществления настоящего изобретения, описывается ниже со ссылкой на фиг. 13A-27. Кодирование и декодирование видео на основе единиц кодирования, имеющих древовидную структуру, согласно вариантам осуществления настоящего изобретения, описывается ниже со ссылкой на фиг. 15-25. Способы кодирования и декодирования видео с использованием интерполяционного фильтра, согласно вариантам осуществления настоящего изобретения, описываются ниже со ссылкой на фиг. 26 и 27.
Когда различные операции выполняются для данных изображений, данные изображений могут разбиваться на группы данных, и идентичная операция может быть выполнена для данных идентичной группы данных. В нижеприведенном описании, группа данных, сформированная согласно предварительно определенному стандарту, упоминается в качестве "единицы данных", и операция выполняется для каждой "единицы данных" посредством использования данных, включенных в единицу данных.
КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ВИДЕО С ИСПОЛЬЗОВАНИЕМ ИНТЕРПОЛЯЦИОННОГО ФИЛЬТРА
Фиг. 13A является блок-схемой устройства 100 кодирования видео с использованием интерполяционного фильтра, согласно варианту осуществления настоящего изобретения.
Операции кодера 120 и модуля 130 вывода устройства 100 кодирования видео могут совместно управляться посредством процессора кодирования видео, CPU и графического процессора.
Чтобы кодировать текущее изображение входного видео, устройство 100 кодирования видео разбивает текущее изображение на единицы данных, имеющие предварительно определенный размер, и кодирует каждую единицу данных.
Например, текущее изображение включает в себя пикселы в пространственной области. Чтобы кодировать пространственно смежные пикселы текущего изображения одновременно, текущее изображение может разбиваться на группы пикселов, имеющие предварительно определенный размер, таким образом, что смежные пикселы в предварительно определенном диапазоне формируют одну группу. Посредством выполнения последовательности операций кодирования для пикселов разбитых групп пикселов может быть кодировано текущее изображение.
Поскольку исходные данные изображения, которое должно быть кодировано, являются пиксельными значениями в пространственной области, каждая группа пикселов может быть использована в качестве единицы данных, которая должна быть кодирована. Кроме того, когда коэффициенты преобразования в области преобразования формируются посредством выполнения преобразования для кодирования видео для пиксельных значений группы пикселов в пространственной области, коэффициенты преобразования включаются в группы коэффициентов, имеющие размер, идентичный размеру групп пикселов в пространственной области. Соответственно, группа коэффициентов для коэффициентов преобразования в области преобразования также может быть использована в качестве единицы данных для кодирования изображения.
Соответственно, в пространственной области и области преобразования, группа данных, имеющая предварительно определенный размер, может быть использована в качестве единицы данных, которая должна быть кодирована. В этом случае, размер единицы данных может задаваться как число фрагментов данных, включенных в единицу данных. Например, число пикселов в пространственной области или число коэффициентов преобразования в области преобразования может представлять размер единицы данных.
Способ кодирования или характеристики кодирования текущей единицы данных могут быть определены относительно каждой группы данных любого уровня данных из числа единицы данных, серии последовательных макроблоков, изображения и последовательности изображений видео, которое должно в данный момент кодироваться.
Устройство 100 кодирования видео может кодировать текущее изображение посредством выполнения кодирования с предсказанием, включающего в себя внешнее предсказание и внутреннее предсказание, преобразование, квантование и энтропийное кодирование, для каждой единицы данных.
Согласно внешнему предсказанию, для того чтобы оценивать текущее пиксельное значение в отношении пиксельного значения временно предыдущего или последующего изображения, могут быть определены остаточные данные между пиксельным значением опорной области опорного изображения и пиксельным значением текущего изображения и опорные данные, указывающие пиксельное значение, к которому следует обращаться.
Чтобы более точно выполнять внешнее предсказание, устройство 100 кодирования видео может определять остаточные данные и опорные данные посредством использования пиксельного значения субпиксельной единицы. Чтобы выполнять внешнее предсказание субпиксельной единицы, устройство 100 кодирования видео может определять пиксельное значение субпиксельной единицы, расположенное между смежными пикселами целопиксельных единиц, посредством интерполяции смежных пикселов целопиксельных единиц.
Кроме того, пиксельное значение субпиксельной единицы может быть сформировано посредством выполнения интерполяционной фильтрации для двух или более опорных пикселов целопиксельных единиц, включающих в себя смежные пикселы целопиксельных единиц. Опорные пикселы для выполнения интерполяционной фильтрации могут быть пикселами опорного изображения.
Чтобы эффективно выполнять интерполяцию изображений, устройство 100 кодирования видео может избирательно определять коэффициенты интерполяционной фильтрации. Кодер 120 может включать в себя устройство 10 интерполяции изображений, проиллюстрированное на фиг. 1. Другими словами, чтобы выполнять внешнее предсказание субпиксельной единицы, кодер 120 может формировать пиксельное значение субпиксельной единицы посредством использования интерполяционного фильтра, включающего в себя коэффициенты фильтрации, определенные посредством устройства 10 интерполяции изображений, на основе преобразования и обратного преобразования.
Чтобы эффективно выполнять интерполяционную фильтрацию, устройство 100 кодирования видео может заранее сохранять коэффициенты интерполяционной фильтрации в запоминающем устройстве. Согласно местоположению интерполяции, гладкости, числу отводов фильтра, битовой глубине, коэффициенту масштабирования, базисной функции интерполяционной фильтрации на основе преобразования, оконной функции и размера окна, различные коэффициенты интерполяционной фильтрации могут быть сохранены в запоминающем устройстве устройства 100 кодирования видео.
Например, i) интерполяционный фильтр четвертьпиксельных единиц, включающий в себя коэффициенты 7-отводной фильтрации {-1, 4, -10, 58, 17, -5, 1} и имеющий размер окна в 8,7, и ii) интерполяционный фильтр полупиксельных единиц, включающий в себя коэффициенты 8-отводной фильтрации {-1, 4, -11, 40, 40, -11, 4, -1} и имеющий размер окна в 9,5, могут быть сохранены в запоминающем устройстве и могут быть использованы для того, чтобы выполнять интерполяционную фильтрацию.
В дополнение к вышеуказанным коэффициентам интерполяционной фильтрации, коэффициенты интерполяционной фильтрации, модифицированные согласно различным базисным функциям и оконным функциям, как показано на фиг. 9A-12B, могут быть использованы для того, чтобы выполнять интерполяционную фильтрацию.
Если интерполяционная фильтрация выполняется посредством использования коэффициентов фильтрации, сохраненных в запоминающем устройстве, может быть повышена скорость вычисления внешнего предсказания.
Из множества интерполяционных фильтров кодер 120 может выбирать и использовать симметричный или асимметричный интерполяционный фильтр для того, чтобы выполнять внешнее предсказание, согласно местоположению α интерполяции субпиксельных единиц. Кроме того, интерполяционный фильтр, подходящий для текущего пиксела, может быть определен согласно числу отводов фильтра, битовой глубине, коэффициенту масштабирования, размеру оконного фильтра, гладкости и т.д.
Кодер 120 может определять интерполяционный фильтр согласно характеристикам изображений. Например, кодер 120 может определять различные интерполяционные фильтры согласно цветовым компонентам пикселов. Например, интерполяционный фильтр для пикселов сигнала яркости и интерполяционный фильтр для пикселов сигнала цветности могут быть отдельно выбраны, и в силу этого пиксельные значения субпиксельных единиц могут быть по отдельности сформированы посредством выполнения интерполяционной фильтрации.
Видео может быть кодировано посредством выполнения внешнего предсказания на основе интерполяции субпиксельных единиц, внутреннего предсказания, преобразования и квантования.
Модуль 130 вывода может кодировать и выводить информацию кодирования и может выводить кодированные данные изображений. В качестве информации кодирования может быть дополнительно кодирована информация относительно выбранного интерполяционного фильтра. Другими словами, может быть кодирована информация относительно интерполяционного фильтра, используемого для того, чтобы выполнять кодирование с предсказанием субпиксельных единиц. Например, декодер должен иметь сведения по интерполяционному фильтру, используемому для того, чтобы кодировать изображение, чтобы декодировать изображение посредством использования идентичного интерполяционного фильтра, используемого в процессе кодирования. Для этого информация, указывающая используемый интерполяционный фильтр, может быть кодирована вместе с изображением. Тем не менее, если фильтр выбирается на основе предыдущего результата кодирования, т.е. контекста, информация относительно выбранного фильтра не может быть дополнительно кодирована.
Модуль 130 вывода может выполнять энтропийное кодирование для информации кодирования и кодированных данных изображений и может выводить поток битов.
Фиг. 13B является блок-схемой устройства 200 декодирования видео с использованием интерполяционного фильтра, согласно варианту осуществления настоящего изобретения.
Устройство 200 декодирования видео включает в себя модуль 220 приема и извлечения и декодер 230. Операции модуля 220 приема и извлечения и декодера 230 из устройства 200 декодирования видео могут совместно управляться посредством процессора декодирования видео, графического процессора и CPU.
Чтобы восстанавливать изображение из потока битов, устройство 200 декодирования видео может декодировать кодированные данные изображений потока битов посредством выполнения операций, включающих в себя энтропийное декодирование, обратное квантование, обратное преобразование, внешнее предсказание/компенсацию и внутреннее предсказание/компенсацию.
Модуль 220 приема и извлечения принимает и синтаксически анализирует поток битов кодированного видео. Модуль 220 приема и извлечения может извлекать кодированные данные каждой единицы данных текущего изображения и информацию кодирования, включающую в себя информацию относительно способа кодирования, который должен быть использован для того, чтобы декодировать кодированные данные, из синтаксически проанализированного потока битов.
Если информация кодирования включает в себя информацию интерполяционного фильтра, декодер 230 может считывать информацию относительно интерполяционного фильтра, используемого для того, чтобы выполнять внутреннее предсказание субпиксельных единиц, из информации интерполяционного фильтра и может выполнять компенсацию движения посредством использования интерполяционного фильтра, используемого в процессе кодирования.
Декодер 230 может декодировать кодированные данные изображений посредством выполнения различных операций декодирования, таких как энтропийное декодирование, обратное квантование, обратное преобразование, внешнее предсказание/компенсация и внутреннее предсказание/компенсацию для кодированного изображения согласно различным способам декодирования, определенным на основе информации относительно режима кодирования.
Чтобы выполнять компенсацию движения, опорная область опорного изображения, которое является временно предшествующим или последующим относительно текущего изображения, может быть определена посредством использования опорных данных и пиксельного значения опорной области, и остаточные данные могут быть комбинированы, чтобы восстанавливать текущее пиксельное значение.
Если остаточные данные и опорные данные определяются на основе пикселов, интерполированных в субпиксельной единице в процессе кодирования, декодер 230 также может выполнять компенсацию движения на основе пикселов, интерполированных в субпиксельной единице. Чтобы выполнять компенсацию движения субпиксельных единиц, декодер 230 может формировать пиксельное значение субпиксельной единицы посредством интерполяции смежных пикселов целопиксельных единиц опорного изображения. Пиксельное значение субпиксельной единицы может быть сформировано посредством выполнения интерполяционной фильтрации для двух или более опорных пикселов целопиксельных единиц, включающих в себя смежные пикселы целопиксельных единиц.
Чтобы эффективно выполнять интерполяцию изображений, устройство 200 декодирования видео может избирательно определять коэффициенты интерполяционной фильтрации. Декодер 230 может включать в себя устройство 10 интерполяции изображений, проиллюстрированное на фиг. 1. Другими словами, для того чтобы выполнять компенсацию движения субпиксельных единиц, декодер 230 может формировать пиксельное значение субпиксельной единицы посредством использования интерполяционного фильтра на основе преобразования.
Чтобы эффективно выполнять интерполяционную фильтрацию, устройство 200 декодирования видео может заранее сохранять по-разному выбираемые коэффициенты интерполяционной фильтрации в запоминающем устройстве согласно местоположению интерполяции, гладкости, числу отводов фильтра, битовой глубине, коэффициенту масштабирования и базисной функции интерполяционной фильтрации на основе преобразования.
Как описано выше, например, по меньшей мере, один из i) интерполяционного фильтр четвертьпиксельных единиц, включающего в себя коэффициенты 7-отводной фильтрации {-1, 4, -10, 58, 17, -5, 1} и имеющего размер окна в 8,7, и ii) интерполяционного фильтра полупиксельных единиц, включающего в себя коэффициенты 8-отводной фильтрации {-1, 4, -11, 40, 40, -11, 4, -1} и имеющего размер окна в 9,5, может быть сохранен в запоминающем устройстве и может быть использован для того, чтобы выполнять интерполяционную фильтрацию. В дополнение к вышеуказанным коэффициентам интерполяционной фильтрации, коэффициенты интерполяционной фильтрации, модифицированные согласно различным базисным функциям и оконным функциям, как показано на фиг. 9A-12B, могут быть использованы для того, чтобы выполнять интерполяционную фильтрацию.
Из множества интерполяционных фильтров декодер 230 может выбирать и использовать интерполяционный фильтр, подходящий для текущего пиксела, чтобы выполнять компенсацию движения субпиксельных единиц согласно местоположению α интерполяции субпиксельных единиц, числу отводов фильтра, битовой глубине, коэффициенту масштабирования и т.д.
Кроме того, декодер 230 может определять интерполяционный фильтр согласно характеристикам изображений. Например, различные интерполяционные фильтры могут быть определены согласно цветовым компонентам пикселов, интерполяционная фильтрация для пикселов сигнала яркости и интерполяционная фильтрация для пикселов сигнала цветности могут быть отдельно выполнены, и в силу этого интерполированные пиксельные значения субпиксельных единиц могут быть по отдельности сформированы.
Соответственно, декодер 230 может восстанавливать данные в пространственной области посредством выполнения обратного преобразования/обратного квантования и может восстанавливать пиксельные значения и текущее изображение посредством выполнения внутреннего предсказания и компенсации движения на основе интерполяции субпиксельных единиц, а также интерполяции целопиксельных единиц. Если изображения восстанавливаются, видео может быть декодировано.
Фиг. 14A является блок-схемой последовательности операций способа кодирования изображений с использованием интерполяционного фильтра, согласно варианту осуществления настоящего изобретения.
На этапе 1410, для того чтобы кодировать текущее изображение входного видео, выполняется кодирование с предсказанием с использованием интерполяции субпиксельных единиц. Из числа интерполяционных фильтров для формирования пиксельного значения субпиксельной единицы интерполяционный фильтр по-разному выбирается на основе местоположения интерполяции субпиксельных единиц и гладкости. Гладкость интерполяционного фильтра может быть определена на основе расстояния между местоположением интерполяции и целопиксельными единицами.
Пиксельное значение субпиксельной единицы может быть сформировано посредством выполнения интерполяционной фильтрации для двух или более опорных пикселов целопиксельных единиц опорного изображения. Остаточные данные и опорные данные определяются посредством использования сформированного пиксельного значения субпиксельной единицы, за счет этого выполняя кодирование с предсказанием.
Чтобы эффективно выполнять интерполяцию изображений, могут быть избирательно определены коэффициенты интерполяционной фильтрации. Запоминающее устройство может сохранять коэффициенты интерполяционной фильтрации симметричных и асимметричных интерполяционных фильтров, интерполяционных фильтров с нечетным и четным числом отводов и регуляризованных интерполяционных фильтров. Из числа коэффициентов интерполяционной фильтрации, заранее сохраненных в запоминающем устройстве, требуемый интерполяционный фильтр может быть выбран согласно местоположению интерполяции субпиксельных единиц, гладкости, числу отводов фильтра, битовой глубине, коэффициенту масштабирования, базисной функции интерполяционной фильтрации на основе преобразования, размеру оконного фильтра и цветовому компоненту, и интерполяция может быть выполнена с тем, чтобы формировать пиксельное значение субпиксельной единицы.
На этапе 1420, преобразование и квантование выполняется для результата внешнего предсказания на основе интерполяции субпиксельных единиц и внутреннего предсказания.
На этапе 1430, поток битов может выводиться посредством выполнения энтропийного кодирования для информации кодирования и кодированных данных изображений в форме квантованных коэффициентов преобразования. Информация кодирования может включать в себя информацию относительно интерполяционного фильтра, используемого для того, чтобы выполнять кодирование с предсказанием субпиксельных единиц.
Фиг. 14B является блок-схемой последовательности операций способа декодирования изображений с использованием интерполяционного фильтра, согласно варианту осуществления настоящего изобретения.
На этапе 1450, поток битов кодированного видео принимается, энтропийно декодируется и синтаксически анализируется, чтобы извлекать квантованные коэффициенты преобразования и информацию кодирования текущего изображения из потока битов.
Если информация кодирования включает в себя информацию относительно интерполяционного фильтра, тип требуемого интерполяционного фильтра может считываться из информации.
На этапе 1460, согласно различным способам декодирования, определенным на основе считывания режима кодирования из информации кодирования, обратное квантование и обратное преобразование выполняется для квантованных коэффициентов преобразования, и добавляются остаточные данные, в силу этого восстанавливая данные в пространственной области.
На этапе 1470, кодированные данные изображений могут быть декодированы посредством выполнения различных операций декодирования, таких как компенсация движения и внутреннее предсказание, на основе режима кодирования.
В частности, если кодированные остаточные данные и опорные данные извлекаются на основе пикселов, интерполированных в субпиксельной единице, компенсация движения может быть выполнена на основе пикселов, интерполированных в субпиксельной единице. Из числа интерполяционных фильтров для формирования пиксельного значения субпиксельной единицы интерполяционный фильтр по-разному выбирается на основе местоположения интерполяции субпиксельных единиц и гладкости.
Чтобы эффективно выполнять интерполяцию изображений, могут быть избирательно определены коэффициенты интерполяционной фильтрации. Запоминающее устройство может сохранять коэффициенты интерполяционной фильтрации симметричных и асимметричных интерполяционных фильтров, интерполяционных фильтров с нечетным и четным числом отводов и регуляризованных интерполяционных фильтров. Из числа коэффициентов интерполяционной фильтрации, заранее сохраненных в запоминающем устройстве, требуемый интерполяционный фильтр может быть выбран согласно местоположению интерполяции субпиксельных единиц, гладкости, числу отводов фильтра, битовой глубине, коэффициенту масштабирования, базисной функции интерполяционной фильтрации на основе преобразования, размеру оконного фильтра и цветовому компоненту, и интерполяция может быть выполнена с тем, чтобы формировать пиксельное значение субпиксельной единицы.
Поскольку компенсация движения выполняется для пикселов, интерполированных посредством использования коэффициентов интерполяционной фильтрации, заранее сохраненных в запоминающем устройстве, может повышаться скорость вычисления. Запоминающее устройство может сохранять симметричные и асимметричные интерполяционные фильтры и интерполяционные фильтры с нечетным и четным числом отводов.
Опорное изображение и опорная область определяются посредством использования опорных данных, и пиксельное значение субпиксельной единицы может быть сформировано посредством выполнения интерполяционной фильтрации для двух или более опорных пикселов целопиксельных единиц опорного изображения. Компенсация движения может быть выполнена посредством комбинирования сформированного пиксельного значения субпиксельной единицы и остаточных данных, и за счет этого может выполняться декодирование с предсказанием.
На этапе 1480, текущее изображение восстанавливается посредством использования пиксельных значений, полученных посредством декодирования выполнения предсказания, и за счет этого декодируется видео.
КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ВИДЕО С ИСПОЛЬЗОВАНИЕМ ИНТЕРПОЛЯЦИИ НА ОСНОВЕ ЕДИНИЦ КОДИРОВАНИЯ, ИМЕЮЩИХ ДРЕВОВИДНУЮ СТРУКТУРУ
Далее подробно описываются устройства кодирования и декодирования видео с использованием интерполяционного фильтра на основе единиц кодирования, имеющих древовидную структуру, и способы кодирования и декодирования видео, соответствующие устройствам кодирования и декодирования видео, согласно вариантам осуществления настоящего изобретения, со ссылкой на фиг. 13-27.
Устройство 100 кодирования видео может кодировать видео на основе единиц кодирования и единиц преобразования, имеющих древовидную структуру.
Текущее изображение видео может разбиваться на основе максимальной единицы кодирования для текущего изображения. Если текущее изображение превышает максимальную единицу кодирования, данные изображений для текущего изображения могут разбиваться, по меньшей мере, на одну максимальную единицу кодирования. Максимальная единица кодирования может быть единицей данных, имеющей размер 32x32, 64x64, 128x128, 256x256 и т.д., при этом форма единицы данных представляет собой квадрат, имеющий ширину и длину в квадратах 2. Кодер 120 может кодировать данные изображений каждой, по меньшей мере, из одной максимальной единицы кодирования.
Единица кодирования согласно варианту осуществления настоящего изобретения может отличаться посредством максимального размера и глубины. Глубина обозначает число раз, которое единица кодирования пространственно разбивается от максимальной единицы кодирования, и по мере того, как глубина увеличивается, более глубокие единицы кодирования согласно глубинам могут разбиваться от максимальной единицы кодирования до минимальной единицы кодирования. Глубина максимальной единицы кодирования является самой верхней глубиной, а глубина минимальной единицы кодирования является самой нижней глубиной. Поскольку размер единицы кодирования, соответствующей каждой глубине, снижается по мере того, как увеличивается глубина максимальной единицы кодирования, единица кодирования, соответствующая верхней глубине, может включать в себя множество единиц кодирования, соответствующих нижним глубинам.
Как описано выше, данные изображений для текущего изображения разбиваются на максимальные единицы кодирования согласно максимальному размеру единицы кодирования, и каждая из максимальных единиц кодирования может включать в себя более глубокие единицы кодирования, которые разбиваются согласно глубинам. Поскольку максимальная единица кодирования согласно варианту осуществления настоящего изобретения разбивается согласно глубинам, данные изображений пространственной области, включенные в максимальную единицу кодирования, могут быть иерархически классифицированы согласно глубинам.
Максимальная глубина и максимальный размер единицы кодирования, которые ограничивают общее число раз, которое иерархически разбиваются высота и ширина максимальной единицы кодирования, может быть предварительно определена.
Кодер 120 кодирует, по меньшей мере, одну область разбиения, полученную посредством разбиения области максимальной единицы кодирования согласно глубинам, и определяет глубину, чтобы выводить конечные кодированные данные изображений согласно, по меньшей мере, одной области разбиения. Другими словами, кодер 120 определяет кодированную глубину посредством кодирования данных изображений в более глубоких единицах кодирования согласно глубинам, согласно максимальной единице кодирования текущего изображения и выбора глубины, имеющей наименьшую ошибку кодирования.
Кодер 120 может выводить кодированные данные изображений единицы кодирования, соответствующей определенной кодированной глубине. Кроме того, кодер 120 может передавать информацию относительно определенной кодированной глубины в модуль 130 вывода таким образом, что информация относительно кодированной глубины может быть кодирована как информация кодирования.
Данные изображений в максимальной единице кодирования кодируются на основе более глубоких единиц кодирования, соответствующих, по меньшей мере, одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображений сравниваются на основе каждой из более глубоких единиц кодирования. Глубина, имеющая наименьшую ошибку кодирования, может быть выбрана после сравнения ошибок кодирования более глубоких единиц кодирования. По меньшей мере, одна кодированная глубина может быть выбрана для каждой максимальной единицы кодирования.
Размер максимальной единицы кодирования разбивается по мере того, как единица кодирования иерархически разбивается согласно глубинам, и по мере того, как увеличивается число единиц кодирования. Кроме того, даже если единицы кодирования соответствуют идентичной глубине в одной максимальной единице кодирования, определяется то, разбивать или нет каждую из единиц кодирования, соответствующих идентичной глубине, до нижней глубины посредством измерения ошибки кодирования данных изображений каждой единицы кодирования, отдельно. Соответственно, даже когда данные изображений включаются в одну максимальную единицу кодирования, данные изображений разбиваются на области согласно глубинам, ошибки кодирования могут отличаться согласно областям в одной максимальной единице кодирования, и, таким образом, кодированные глубины могут отличаться согласно областям в данных изображений. Таким образом, одна или более кодированных глубин могут быть определены в одной максимальной единице кодирования, и данные изображений максимальной единицы кодирования могут быть разделены согласно единицам кодирования, по меньшей мере, одной кодированной глубины.
Соответственно, кодер 120 может определять единицы кодирования, имеющие древовидную структуру, включенную в максимальную единицу кодирования. "Единицы кодирования, имеющие древовидную структуру" согласно варианту осуществления настоящего изобретения включают в себя единицы кодирования, соответствующие глубине, определенной как кодированная глубина, из всех более глубоких единиц кодирования, включенных в максимальную единицу кодирования. Единица кодирования кодированной глубины может быть иерархически определена согласно глубинам в идентичной области максимальной единицы кодирования и может быть независимо определена в различных областях. Аналогично, кодированная глубина в текущей области может быть независимо определена из кодированной глубины в другой области.
Максимальная глубина согласно варианту осуществления настоящего изобретения является индексом, связанным с числом разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Первая максимальная глубина согласно варианту осуществления настоящего изобретения может обозначать общее число разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Вторая максимальная глубина согласно варианту осуществления настоящего изобретения может обозначать общее число уровней глубины от максимальной единицы кодирования до минимальной единицы кодирования. Например, когда глубина максимальной единицы кодирования равна 0, глубина единицы кодирования, на которую максимальная единица кодирования разбивается один раз, может задаваться равной 1, а глубина единицы кодирования, на которую максимальная единица кодирования разбивается два раза, может задаваться равной 2. Здесь, если минимальная единица кодирования является единицей кодирования, на которую максимальная единица кодирования разбивается четыре раза, имеется 5 уровней глубины с глубинами 0, 1, 2, 3 и 4, и за счет этого первая максимальная глубина может задаваться равной 4, а вторая максимальная глубина может задаваться равной 5.
Кодирование с предсказанием и преобразование может выполняться согласно максимальной единице кодирования. Кодирование с предсказанием и преобразование также выполняются на основе более глубоких единиц кодирования согласно глубине, равной, или глубинам, меньшим максимальной глубины, согласно максимальной единице кодирования.
Поскольку число более глубоких единиц кодирования увеличивается каждый раз, когда максимальная единица кодирования разбивается согласно глубинам, кодирование, включающее в себя кодирование с предсказанием и преобразование, выполняется для всех более глубоких единиц кодирования, сформированных по мере того, как увеличивается глубина. Для удобства описания, кодирование с предсказанием и преобразование далее описываются на основе единицы кодирования текущей глубины в максимальной единице кодирования.
Устройство 100 кодирования видео может по-разному выбирать размер или форму единицы данных для кодирования данных изображений. Чтобы кодировать данные изображений, выполняются такие операции, как кодирование с предсказанием, преобразование и энтропийное кодирование, и в это время, идентичная единица данных может использоваться для всех операций, или различные единицы данных могут использоваться для каждой операции.
Например, устройство 100 кодирования видео может выбирать не только единицу кодирования для кодирования данных изображений, но также и единицу данных, отличающуюся от единицы кодирования, с тем чтобы выполнять кодирование с предсказанием для данных изображений в единице кодирования.
Чтобы выполнять кодирование с предсказанием в максимальной единице кодирования, кодирование с предсказанием может выполняться на основе единицы кодирования, соответствующей кодированной глубине, т.е. на основе единицы кодирования, которая более не разбивается на единицы кодирования, соответствующие нижней глубине. В дальнейшем в этом документе, единица кодирования, которая более не разбивается и становится базисной единицей для кодирования с предсказанием, далее упоминается как "единица предсказания". Сегмент, полученный посредством разбиения единицы предсказания, может включать в себя единицу данных, полученную посредством разбиения, по меньшей мере, одной из высоты и ширины единицы предсказания.
Например, когда единица кодирования в 2Nx2N (где N является положительным целым числом) более не разбивается и становится единицей предсказания в 2Nx2N, размер сегмента может составлять 2Nx2N, 2NxN, Nx2N или NxN. Примеры типа сегмента включают в себя симметричные сегменты, которые получаются посредством симметричного разбиения высоты или ширины единицы предсказания, сегменты, полученные посредством асимметричного разбиения высоты или ширины единицы предсказания, к примеру, 1:n или n:1, сегменты, которые получаются посредством геометрического разбиения единицы предсказания, и сегменты, имеющие произвольные формы.
Режим предсказания единицы предсказания может быть, по меньшей мере, одним из внутреннего режима, внешнего режима и режима пропуска. Например, внутренний режим или внешний режим могут быть выполнены для сегмента 2Nx2N, 2NxN, Nx2N или NxN. Кроме того, режим пропуска может быть выполнен только для сегмента 2Nx2N. Кодирование независимо выполняется для одной единицы предсказания в единице кодирования, в силу этого выбирая режим предсказания, имеющий наименьшую ошибку кодирования.
Устройство 100 кодирования видео также может выполнять преобразование для данных изображений в единице кодирования на основе не только единицы кодирования для кодирования данных изображений, но также и на основе единицы данных, которая отличается от единицы кодирования.
Чтобы выполнять преобразование в единице кодирования, преобразование может выполняться на основе единицы преобразования, имеющей размер, меньший или равный единице кодирования. Например, единица преобразования для преобразования может включать в себя единицу данных для внутреннего режима и единицу данных для внешнего режима.
Аналогично единице кодирования, единица преобразования в единице кодирования может рекурсивно разбиваться на области меньших размеров, так что единица преобразования может быть определена независимо в единицах областей. Таким образом, остаточные данные в единице кодирования могут быть разделены согласно единицам преобразования, имеющим древовидную структуру согласно глубинам преобразования.
Глубина преобразования, указывающая число разбиений, чтобы достигать единицы преобразования посредством разбиения высоты и ширины единицы кодирования, также может задаваться в единице преобразования. Например, в текущей единице кодирования 2Nx2N, глубина преобразования может быть равна 0, когда размер единицы преобразования составляет 2Nx2N, может быть равна 1, когда размер единицы преобразования составляет NxN, и может быть равна 2, когда размер единицы преобразования составляет N/2xN/2. Другими словами, единицы преобразования, имеющие древовидную структуру, могут задаваться согласно глубинам преобразования.
Информация кодирования согласно кодированной глубине требует не только информацию относительно кодированной глубины, но также и информацию относительно кодирования с предсказанием и преобразования. Соответственно, кодер 120 не только определяет кодированную глубину, имеющую наименьшую ошибку кодирования, но также и определяет тип сегмента в единице предсказания, режим предсказания согласно единицам предсказания и размер единицы преобразования для преобразования. Для внешнего предсказания информация кодирования согласно кодированной глубине может включать в себя информацию, связанную с интерполяционной фильтрацией для интерполяции единиц субпикселов.
Кроме того, кодер 120 может выполнять преобразование посредством использования единиц преобразования, имеющих древовидную структуру, чтобы кодировать единицы кодирования на основе максимального уровня разбиения единиц преобразования, который заранее и строго задается в каждой максимальной единице кодирования или текущей единице кодирования.
В каждой из более глубоких единиц кодирования согласно глубинам, базовая единица преобразования, имеющая размер, меньший или равный единице кодирования, может иерархически разбиваться на единицы преобразования нижних глубин преобразования. Единицы преобразования, имеющие древовидную структуру, могут включать в себя базовую единицу преобразования, имеющую максимальный размер, который в данный момент разрешается, и единицы преобразования нижнего уровня относительно максимального уровня разбиения, который разрешается для единиц кодирования.
После выполнения преобразования на каждом уровне согласно глубине преобразования в текущей единице кодирования кодер 120 может определять единицы преобразования, имеющие древовидную структуру, которые являются независимыми от единиц преобразования смежных областей, и формировать иерархическую структуру между единицами преобразования в идентичной области согласно глубинам преобразования.
Другими словами, единицы преобразования, имеющие древовидную структуру, могут быть определены посредством выполнения преобразования для каждой единицы кодирования посредством использования единиц преобразования различного размера и затем сравнения результатов преобразования. В то время, когда определяется единица кодирования, может быть определена единица преобразования для преобразования единицы кодирования. Каждый раз, когда кодируются единицы кодирования согласно каждой из одной или более глубин, единицы преобразования согласно каждой из одной или более глубин преобразования могут быть использованы для того, чтобы выполнять преобразование.
Единица преобразования, имеющая наименьшую ошибку кодирования, должна быть определена для каждой единицы кодирования. Чтобы определять глубину преобразования, имеющую минимальную ошибку кодирования в каждой единице преобразования, ошибки кодирования могут измеряться и сравниваться во всех более глубоких единицах преобразования согласно глубинам. Единица преобразования может быть определена в качестве единицы данных для минимизации ошибки преобразования единицы кодирования.
Соответственно, поскольку комбинация более глубокой единицы кодирования и более глубокой единицы преобразования согласно глубинам, которая имеет наименьшую ошибку кодирования, по отдельности определяется в каждой области максимальной единицы кодирования, единицы кодирования, имеющие древовидную структуру, и единицы преобразования, имеющие древовидную структуру, могут быть определены.
Ниже подробно описываются способы определения единиц кодирования, имеющих древовидную структуру, сегментов и единиц преобразования, имеющих древовидную структуру в максимальной единице кодирования, согласно вариантам осуществления настоящего изобретения, со ссылкой на фиг. 15-25.
Кодер 120 может измерять ошибку кодирования более глубоких единиц кодирования согласно глубинам посредством использования оптимизации искажения в зависимости от скорости передачи на основе множителей Лагранжа.
Устройство 100 кодирования видео может выводить данные изображений максимальной единицы кодирования, которая кодируется на основе, по меньшей мере, одной кодированной глубины, определенной посредством кодера 120, и информацию относительно режима кодирования согласно кодированной глубине, которая кодируется посредством модуля 130 вывода, в форме потока битов.
Информация относительно режима кодирования более глубоких единиц кодирования согласно глубинам, которая определяется, поскольку изображение кодируется на основе единиц кодирования, единиц предсказания и единиц преобразования, имеющих древовидную структуру, может быть включена в заголовок, набор параметров последовательности (SPS) или набор параметров изображения (PPS) потока битов.
Кодированные данные изображений могут быть получены посредством кодирования остаточных данных изображения.
Информация относительно режима кодирования согласно кодированной глубине может включать в себя информацию относительно кодированной глубины, относительно типа сегмента в единице предсказания, режима предсказания и размера единицы преобразования.
Информация относительно кодированной глубины может быть задана посредством использования информации разбиения согласно глубинам, которая представляет то, выполняется или нет кодирование для единиц кодирования нижней глубины вместо текущей глубины. Если текущая глубина текущей единицы кодирования является кодированной глубиной, данные изображений в текущей единице кодирования кодируется и выводятся, и тем самым информация разбиения может быть задана так, чтобы не разбивать текущую единицу кодирования до нижней глубины. Альтернативно, если текущая глубина текущей единицы кодирования не является кодированной глубиной, кодирование выполняется для единицы кодирования нижней глубины, и тем самым информация разбиения может быть задана так, чтобы разбивать текущую единицу кодирования, чтобы получать единицы кодирования нижней глубины.
Если текущая глубина не является кодированной глубиной, кодирование выполняется для единицы кодирования, которая разбивается на единицу кодирования нижней глубины. Поскольку, по меньшей мере, одна единица кодирования нижней глубины существует в одной единице кодирования текущей глубины, кодирование многократно выполняется для каждой единицы кодирования нижней глубины, и за счет этого кодирование может быть рекурсивно выполнено для единиц кодирования, имеющих идентичную глубину.
Поскольку единицы кодирования, имеющие древовидную структуру, определяются для одной максимальной единицы кодирования, и информация, по меньшей мере, относительно одного режима кодирования определяется для единицы кодирования кодированной глубины, информация, по меньшей мере, относительно одного режима кодирования может быть определена для одной максимальной единицы кодирования. Кроме того, кодированная глубина данных изображений максимальной единицы кодирования может отличаться согласно местоположениям, поскольку данные изображений иерархически разбиваются согласно глубинам, и тем самым информация относительно кодированной глубины и режима кодирования может задаваться для данных изображений.
Соответственно, модуль 130 вывода может назначать информацию кодирования относительно соответствующей кодированной глубины и режима кодирования, по меньшей мере, одной из единицы кодирования, единицы предсказания и минимальной единицы, включенной в максимальную единицу кодирования.
Минимальная единица согласно варианту осуществления настоящего изобретения является прямоугольной единицей данных, полученной посредством разбиения минимальной единицы кодирования, составляющей самую нижнюю кодированную глубину, на 4. Альтернативно, минимальная единица может быть максимальной прямоугольной единицей данных, которая может быть включена во все из единиц кодирования, единиц предсказания, единиц сегментирования и единиц преобразования, включенных в максимальную единицу кодирования.
Например, информация кодирования, выводимая через модуль 130 вывода, может классифицироваться на информацию кодирования согласно единицам кодирования и информацию кодирования согласно единицам предсказания. Информация кодирования согласно единицам кодирования может включать в себя информацию относительно режима предсказания и относительно размера сегментов. Информация кодирования согласно единицам предсказания может включать в себя информацию относительно оцененного направления внешнего режима, относительно индекса опорного изображения внешнего режима, относительно вектора движения, относительно компонента сигнала цветности внутреннего режима и относительно способа интерполяции внутреннего режима.
Информация относительно максимального размера единицы кодирования, заданного согласно изображениям, сериям последовательных макроблоков или GOP, и информация относительно максимальной глубины могут вставляться в заголовок, SPS или PPS потока битов.
В устройстве 100 кодирования видео, более глубокая единица кодирования может быть единицей кодирования, полученной посредством деления высоты или ширины единицы кодирования верхней глубины, которая на один слой выше, на два. Другими словами, когда размер единицы кодирования текущей глубины равен 2Nx2N, размер единицы кодирования нижней глубины равен NxN. Кроме того, единица кодирования текущей глубины, имеющей размер 2Nx2N, может включать в себя максимум 4 единицы кодирования нижней глубины.
Соответственно, устройство 100 кодирования видео может формировать единицы кодирования, имеющие древовидную структуру, посредством определения единиц кодирования, имеющих оптимальную форму и оптимальный размер для каждой максимальной единицы кодирования, на основе размера максимальной единицы кодирования и максимальной глубины, определенной с учетом характеристик текущего изображения. Кроме того, поскольку кодирование может выполняться для каждой максимальной единицы кодирования посредством использования любого из различных режимов предсказания и преобразований, оптимальный режим кодирования может быть определен с учетом характеристик единицы кодирования различных размеров изображения.
Таким образом, если изображение, имеющее высокое разрешение или большой объем данных, кодируется в традиционном макроблоке, число макроблоков в расчете на изображение чрезмерно увеличивается. Соответственно, число фрагментов сжатой информации, сформированной для каждого макроблока, увеличивается, и в силу этого трудно передавать сжатую информацию, и эффективность сжатия данных снижается. Тем не менее, посредством использования устройства 100 кодирования видео, эффективность сжатия изображений может быть повышена, поскольку единица кодирования регулируется с учетом характеристик изображения при увеличении максимального размера единицы кодирования с учетом размера изображения.
Модуль 130 вывода может кодировать и выводить информацию кодирования, указывающую способ кодирования, используемый для того, чтобы кодировать видео на основе единиц кодирования, имеющих древовидную структуру, и единиц преобразования, имеющих древовидную структуру. Информация кодирования может включать в себя информацию относительно различных режимов кодирования единиц кодирования, соответствующих кодированной глубине, и информацию относительно кодированной глубины.
Определения различных терминов, таких как единица кодирования, глубина, единица предсказания, единица преобразования и информация относительно различных режимов кодирования, для различных операций устройства 200 декодирования видео являются идентичными определениям, описанным со ссылкой на устройство 100 кодирования видео.
Приемное устройство 210 принимает поток битов кодированного видео. Модуль 220 приема и извлечения синтаксически анализирует принимаемый поток битов. Модуль 220 приема и извлечения извлекает кодированные данные изображений для каждой единицы кодирования из синтаксически проанализированного потока битов, при этом единицы кодирования имеют древовидную структуру согласно каждой максимальной единице кодирования, и выводит извлеченные данные изображений в декодер 230. Модуль 220 приема и извлечения может извлекать информацию относительно максимального размера единицы кодирования текущего изображения из заголовка, SPS или PPS относительно текущего изображения.
Кроме того, модуль 220 приема и извлечения может извлекать информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, согласно каждой максимальной единице кодирования из синтаксически проанализированного потока битов. Информация относительно кодированной глубины и режима кодирования извлекается из информации кодирования. Извлеченная информация относительно кодированной глубины и режима кодирования выводится в декодер 230. Другими словами, данные изображений в потоке битов могут разбиваться на максимальную единицу кодирования так, что декодер 230 может декодировать данные изображений для каждой максимальной единицы кодирования.
Информация относительно кодированной глубины и режима кодирования согласно максимальной единице кодирования может задаваться для информации относительно, по меньшей мере, одной единицы кодирования, соответствующей кодированной глубине, и информация относительно режима кодирования может включать в себя информацию относительно типа сегмента соответствующей единицы кодирования, соответствующей кодированной глубине, относительно режима предсказания и размера единицы преобразования. Для внешнего предсказания информация, связанная с интерполяционной фильтрацией для интерполяции субпиксельных единиц, может быть извлечена из информации кодирования согласно кодированной глубине. Кроме того, информация разбиения согласно глубинам может быть извлечена в качестве информации относительно кодированной глубины.
Информация относительно кодированной глубины и режима кодирования согласно каждой максимальной единице кодирования, извлеченная посредством модуля 220 приема и извлечения, является информацией относительно кодированной глубины и режима кодирования, определенного с возможностью формировать минимальную ошибку кодирования, когда кодер, к примеру, устройство 100 кодирования видео, многократно выполняет кодирование для каждой более глубокой единицы кодирования согласно глубинам согласно каждой максимальной единице кодирования. Соответственно, устройство 200 декодирования видео может восстанавливать изображение посредством декодирования данных изображений согласно кодированной глубине и режиму кодирования, который формирует минимальную ошибку кодирования.
Поскольку информация кодирования относительно кодированной глубины и режима кодирования может назначаться предварительно определенной единице данных из соответствующей единицы кодирования, единицы предсказания и минимальной единицы, модуль 220 приема и извлечения может извлекать информацию относительно кодированной глубины и режима кодирования согласно предварительно определенным единицам данных. Предварительно определенные единицы данных, которым назначается идентичная информация относительно кодированной глубины и режима кодирования, могут логически выводиться как единицы данных, включенные в идентичную максимальную единицу кодирования.
Декодер 230 может определять, по меньшей мере, одну кодированную глубину текущей максимальной единицы кодирования посредством использования информации разбиения согласно глубинам. Если информация разбиения представляет то, что данные изображений более не разбиваются при текущей глубине, текущая глубина является кодированной глубиной. Соответственно, декодер 230 может декодировать кодированные данные изображений, по меньшей мере, одной единицы кодирования, соответствующей каждой кодированной глубине в текущей максимальной единице кодирования, посредством использования информации относительно типа сегмента единицы предсказания, режима предсказания и размера единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, и выводить данные изображений текущей максимальной единицы кодирования.
Другими словами, единицы данных, содержащие информацию кодирования, включающую в себя идентичную информацию разбиения, могут собираться посредством наблюдения набора информации кодирования, назначаемого для предварительно определенной единицы данных из единицы кодирования, единицы предсказания и минимальной единицы, и собранные единицы данных могут рассматриваться как одна единица данных, которая должна быть декодирована посредством декодера 230 в одном режиме кодирования.
Декодер 230 может восстанавливать текущее изображение посредством декодирования кодированных данных изображений в каждой максимальной единице кодирования на основе информации относительно кодированной глубины и режима кодирования согласно максимальным единицам кодирования. Тип сегмента, режим предсказания и единица преобразования могут считываться в качестве режима кодирования для каждой единицы кодирования из числа единиц кодирования, включающих в себя древовидную структуру, в каждой максимальной единице кодирования. Процесс декодирования может включать в себя предсказание, включающее в себя внутреннее предсказание и компенсацию движения, а также обратное преобразование.
Декодер 230 может выполнять внутреннее предсказание или компенсацию движения согласно сегменту и режиму предсказания каждой единицы кодирования на основе информации относительно типа сегмента и режима предсказания единицы предсказания для единиц кодирования, имеющих древовидную структуру.
Кроме того, декодер 230 может считывать структуру единиц преобразования, имеющих древовидную структуру, и может выполнять обратное преобразование для каждой единицы кодирования на основе единиц преобразования.
Устройство 200 декодирования видео может получать информацию относительно, по меньшей мере, одной единицы кодирования, которая формирует минимальную ошибку кодирования, когда кодирование рекурсивно выполняется для каждой максимальной единицы кодирования, и может использовать эту информацию для того, чтобы декодировать текущее изображение. Другими словами, могут быть декодированы единицы кодирования, имеющие древовидную структуру, определенные как оптимальные единицы кодирования в каждой максимальной единице кодирования. Кроме того, максимальный размер единицы кодирования определяется с учетом разрешения и объема данных изображений.
Соответственно, даже если данные изображений имеют высокое разрешение и большой объем данных, данные изображений могут быть эффективно декодированы и восстановлены посредством использования размера единицы кодирования и режима кодирования, которые адаптивно определяются согласно характеристикам данных изображений, посредством использования информации относительно оптимального режима кодирования, принимаемой из кодера.
Фиг. 15 является схемой для описания принципа единиц кодирования согласно варианту осуществления настоящего изобретения.
Размер единицы кодирования может выражаться как "ширина x высота" и может составлять 64x64, 32x32, 16x16 и 8x8. Единица кодирования 64x64 может разбиваться на сегменты 64x64, 64x32, 32x64 или 32x32, единица кодирования 32x32 может разбиваться на сегменты 32x32, 32x16, 16x32 или 16x16, единица кодирования 16x16 может разбиваться на сегменты 16x16, 16x8, 8x16 или 8x8, и единица кодирования 8x8 может разбиваться на сегменты 8x8, 8x4, 4x8 или 4x4.
В видеоданных 310, разрешение составляет 1920x1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 2. В видеоданных 320, разрешение составляет 1920x1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 15. В видеоданных 330, разрешение составляет 352x288, максимальный размер единицы кодирования равен 16, и максимальная глубина равна 1. Максимальная глубина, показанная на фиг. 3, обозначает общее число разбиений от максимальной единицы кодирования до минимальной единицы декодирования.
Если разрешение является высоким, или объем данных является большим, максимальный размер единицы кодирования может быть большим, с тем чтобы не только повышать эффективность кодирования, но также и точно отражать характеристики изображения. Соответственно, максимальный размер единицы кодирования видеоданных 310 и 320, имеющих более высокое разрешение, чем видеоданные 330, может составлять 64.
Поскольку максимальная глубина видеоданных 310 равна 2, единицы 315 кодирования видеоданных 310 могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси в 64, и единицы кодирования, имеющие размеры по продольной оси в 32 и 16, поскольку глубины увеличиваются на два уровня посредством разбиения максимальной единицы кодирования два раза. Между тем, поскольку максимальная глубина видеоданных 330 равна 1, единицы кодирования 335 видеоданных 330 могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси в 16, и единицы кодирования, имеющие размер по продольной оси в 8, поскольку глубины увеличиваются на один уровень посредством разбиения максимальной единицы кодирования один раз.
Поскольку максимальная глубина видеоданных 320 равна 3, единицы 325 кодирования видеоданных 320 могут включать в себя максимальную единицу кодирования, имеющую размер по продольной оси в 64, и единицы кодирования, имеющие размеры по продольной оси в 32, 16 и 8, поскольку глубины увеличиваются на 3 уровня посредством разбиения максимальной единицы кодирования три раза. По мере того, как увеличивается глубина, подробная информация может точно выражаться.
Фиг. 16 является блок-схемой кодера 400 изображений на основе единиц кодирования согласно варианту осуществления настоящего изобретения.
Кодер 400 изображений выполняет операции кодера 120 устройства 100 кодирования видео, чтобы кодировать данные изображений. Другими словами, модуль 410 внутреннего предсказания выполняет внутреннее предсказание для единиц кодирования во внутреннем режиме из текущего кадра 405, и модуль 420 оценки движения и модуль 425 компенсации движения выполняют внешнюю оценку и компенсацию движения для единиц кодирования во внешнем режиме из текущего кадра 405 посредством использования текущего кадра 405 и опорного кадра 495.
Чтобы точно выполнять оценку движения посредством использования опорных пикселов субпиксельных единиц, модуль 420 оценки движения и модуль 425 компенсации движения могут формировать пикселы субпиксельных единиц посредством интерполяции пикселов целопиксельных единиц. Интерполяционный фильтр для формирования пикселов субпиксельных единиц может быть интерполяционным фильтром, описанным выше относительно фиг. 1 и 13A.
Данные, выводимые из модуля 410 внутреннего предсказания, модуля 420 оценки движения и модуля 425 компенсации движения, выводятся в качестве квантованного коэффициента преобразования через преобразователь 430 и квантователь 440. Квантованный коэффициент преобразования восстанавливается в качестве данных в пространственной области через обратный квантователь 460 и обратный преобразователь 470, и восстановленные данные в пространственной области выводятся в качестве опорного кадра 495 после постобработки через модуль 480 удаления блочности и модуль 490 контурной фильтрации. Квантованный коэффициент преобразования может выводиться в качестве потока 455 битов через энтропийный кодер 450.
Для применения кодера 400 изображений в устройстве 100 кодирования видео, все элементы кодера 400 изображений, т.е. модуль 410 внутреннего предсказания, модуль 420 оценки движения, модуль 425 компенсации движения, преобразователь 430, квантователь 440, энтропийный кодер 450, обратный квантователь 460, обратный преобразователь 470, модуль 480 удаления блочности и модуль 490 контурной фильтрации, должны выполнять операции на основе каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, с учетом максимальной глубины каждой максимальной единицы кодирования.
В частности, модуль 410 внутреннего предсказания, модуль 420 оценки движения и модуль 425 компенсации движения должны определять сегменты и режим предсказания каждой единицы кодирования из единиц кодирования, имеющих древовидную структуру, с учетом максимального размера и максимальной глубины текущей максимальной единицы кодирования, и преобразователь 430 должен определять размер единицы преобразования в каждой единице кодирования из единиц кодирования, имеющих древовидную структуру.
Фиг. 17 является блок-схемой декодера 500 изображений на основе единицы кодирования согласно варианту осуществления настоящего изобретения.
Синтаксический анализатор 510 синтаксически анализирует кодированные данные изображений, которые должны быть декодированы, и информацию относительно кодирования, требуемую для декодирования, из потока 505 битов. Кодированные данные изображений выводятся в качестве обратно квантованных данных через энтропийный декодер 520 и обратный квантователь 530, и обратно квантованные данные восстанавливаются в данные изображений в пространственной области через обратный преобразователь 540.
Модуль 550 внутреннего предсказания выполняет внутреннее предсказание для единиц кодирования во внутреннем режиме относительно данных изображений в пространственной области, и модуль 560 компенсации движения выполняет компенсацию движения для единиц кодирования во внешнем режиме посредством использования опорного кадра 585.
Чтобы точно выполнять оценку движения посредством использования опорных пикселов субпиксельных единиц, модуль 560 компенсации движения может формировать пикселы субпиксельных единиц посредством интерполяции пикселов целопиксельных единиц. Интерполяционный фильтр для формирования пикселов субпиксельных единиц может быть интерполяционным фильтром, описанным выше относительно фиг. 2 и 13B.
Данные изображений в пространственной области, которые пропущены через модуль 550 внутреннего предсказания и модуль 560 компенсации движения, могут выводиться в качестве восстановленного кадра 595 после постобработки через модуль 570 удаления блочности и модуль 580 контурной фильтрации. Кроме того, данные изображений, которые постобрабатываются через модуль 570 удаления блочности и модуль 580 контурной фильтрации, могут выводиться в качестве опорного кадра 585.
Чтобы декодировать данные изображений в декодере 230 устройства 200 декодирования видео, декодер 500 изображений может выполнять операции, которые выполняются после синтаксического анализатора 510.
Для применения декодера 500 изображений в устройстве 200 декодирования видео, все элементы декодера 500 изображений, т.е. синтаксический анализатор 510, энтропийный декодер 520, обратный квантователь 530, обратный преобразователь 540, модуль 550 внутреннего предсказания, модуль 560 компенсации движения, модуль 570 удаления блочности и модуль 580 контурной фильтрации, должны выполнять операции на основе единиц кодирования, имеющих древовидную структуру, для каждой максимальной единицы кодирования.
В частности, модуль 550 внутреннего предсказания и модуль 560 компенсации движения должны определять сегменты и режим предсказания для каждой из единиц кодирования, имеющих древовидную структуру, и обратный преобразователь 540 должен определять размер единицы преобразования для каждой единицы кодирования.
Фиг. 18 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и сегменты согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические единицы кодирования с тем, чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина единиц кодирования могут быть адаптивно определены согласно характеристикам изображения или могут быть по-другому заданы пользователем. Размеры более глубоких единиц кодирования согласно глубинам могут быть определены согласно предварительно определенному максимальному размеру единицы кодирования.
В иерархической структуре 600 единиц кодирования согласно варианту осуществления настоящего изобретения, максимальная высота и максимальная ширина единиц кодирования составляют 64, а максимальная глубина составляет 4. В этом случае, максимальная глубина обозначает общее число раз, когда выполняется разбиение от максимальной единицы кодирования до минимальной единицы кодирования. Поскольку глубина увеличивается вдоль вертикальной оси иерархической структуры 600, разбиваются высота и ширина более глубокой единицы кодирования. Кроме того, единица предсказания и сегменты, которые являются базисами для кодирования с предсказанием каждой более глубокой единицы кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
Другими словами, единица 610 кодирования является максимальной единицей кодирования в иерархической структуре 600, при этом глубина равна 0, а размер, т.е. "высота на ширину", составляет 64x64. Глубина увеличивается вдоль вертикальной оси, и единица 620 кодирования, имеющая размер 32x32 и глубину 1, единица 630 кодирования, имеющая размер 16x16 и глубину 2, и единица 640 кодирования, имеющая размер 8x8 и глубину 3. Единица 640 кодирования, имеющая размер 8x8 и глубину 3, является минимальной единицей кодирования.
Единица предсказания и сегменты единицы кодирования размещаются вдоль горизонтальной оси согласно каждой глубине. Другими словами, если единица 610 кодирования, имеющая размер 64x64 и глубину 0, является единицей предсказания, единица предсказания может разбиваться на сегменты, включенные в единицу 610 кодирования, т.е. на сегмент 610, имеющий размер 64x64, сегменты 612, имеющие размер 64x32, сегменты 614, имеющие размер 32x64, или сегменты 616, имеющие размер 32x32.
Аналогично, единица предсказания единицы 620 кодирования, имеющей размер 32x32 и глубину 1, может разбиваться на сегменты, включенные в единицу 620 кодирования, т.е. на сегмент 620, имеющий размер 32x32, сегменты 622, имеющие размер 32x16, сегменты 624, имеющие размер 16x32, или сегменты 626, имеющие размер 16x16.
Аналогично, единица предсказания единицы 630 кодирования, имеющей размер 16x16 и глубину 2, может разбиваться на сегменты, включенные в единицу 630 кодирования, т.е. на сегмент, имеющий размер 16x16, сегменты 632, имеющие размер 16x8, сегменты 634, имеющие размер 8x16, и сегменты 636, имеющие размер 8x8.
Аналогично, единица предсказания единицы 640 кодирования, имеющей размер 8x8 и глубину 3, может разбиваться на сегменты, включенные в единицу 640 кодирования, т.е. на сегмент, имеющий размер 8x8, сегменты 642, имеющие размер 8x4, сегменты 644, имеющие размер 4x8, или сегменты 646, имеющие размер 4x4.
Чтобы определять, по меньшей мере, одну кодированную глубину единиц кодирования, составляющих максимальную единицу 610 кодирования, кодер 120 устройства 100 кодирования видео выполняет кодирование для единиц кодирования, соответствующих каждой глубине, включенной в максимальную единицу 610 кодирования.
Число более глубоких единиц кодирования согласно глубинам, включающим в себя данные в идентичном диапазоне и идентичного размера, увеличивается по мере того, как увеличивается глубина. Например, четыре единицы кодирования, соответствующие глубине 2, требуются для того, чтобы охватывать данные, которые включаются в одну единицу кодирования, соответствующую глубине 1. Соответственно, чтобы сравнивать результаты кодирования идентичных данных согласно глубинам, кодируются единица кодирования, соответствующая глубине 1, и четыре единицы кодирования, соответствующие глубине 2.
Чтобы выполнять кодирование для текущей глубины из глубин, наименьшая ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждой единицы предсказания в единицах кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, поиск минимальной ошибки кодирования может выполняться посредством сравнения наименьших ошибок кодирования согласно глубинам, посредством выполнения кодирования для каждой глубины по мере того, как глубина увеличивается вдоль вертикальной оси иерархической структуры 600. Глубина и сегмент, имеющие минимальную ошибку кодирования в единице 610 кодирования, могут быть выбраны в качестве кодированной глубины и типа сегмента единицы 610 кодирования.
Фиг. 19 является схемой для описания взаимосвязи между единицей 710 кодирования и единицами 720 преобразования, согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео или устройство 200 декодирования видео кодирует или декодирует изображение согласно единицам кодирования, имеющим размеры, меньшие или равные максимальной единице кодирования для каждой максимальной единицы кодирования. Размеры единиц преобразования для преобразования во время кодирования могут быть выбраны на основе единиц данных, которые не больше соответствующей единицы кодирования.
Например, в устройстве 100 кодирования видео или устройстве 200 декодирования видео, если размер единицы 710 кодирования составляет 64x64, преобразование может выполняться посредством использования единиц 720 преобразования, имеющих размер 32x32.
Кроме того, данные единицы 710 кодирования, имеющей размер 64x64, могут быть кодированы посредством выполнения преобразования для каждой из единиц преобразования, имеющих размер 32x32, 16x16, 8x8 и 4x4, которые меньше 64x64, и затем может быть выбрана единица преобразования, имеющая наименьшую ошибку кодирования.
Фиг. 20 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно варианту осуществления настоящего изобретения.
Модуль 130 вывода устройства 100 кодирования видео может кодировать и передавать информацию 800 относительно типа сегмента, информацию 810 относительно режима предсказания и информацию 820 относительно размера единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, в качестве информации относительно режима кодирования.
Информация 800 представляет информацию относительно формы сегмента, полученного посредством разбиения единицы предсказания текущей единицы кодирования, при этом сегмент является единицей данных для кодирования с предсказанием текущей единицы кодирования. Например, текущая единица CU_0 кодирования, имеющая размер 2Nx2N, может разбиваться на любой из сегмента 802, имеющего размер 2Nx2N, сегмента 804, имеющего размер 2NxN, сегмента 806, имеющего размер Nx2N, и сегмента 808, имеющего размер NxN. Здесь, информация 800 относительно типа сегмента задается так, что она указывает один из сегмента 804, имеющего размер 2NxN, сегмента 806, имеющего размер Nx2N, и сегмента 808, имеющего размер NxN
Информация 810 представляет режим предсказания каждого сегмента. Например, информация 810 может указывать режим кодирования с предсказанием, выполняемого для сегмента, представляемого посредством информации 800, т.е. внутренний режим 812, внешний режим 814 или режим 816 пропуска.
Информация 820 представляет единицу преобразования, на которой следует базироваться, когда преобразование выполняется для текущей единицы кодирования. Например, единица преобразования может быть первой единицей 822 внутреннего преобразования, второй единицей 824 внутреннего преобразования, первой единицей 826 внешнего преобразования или второй единицей 828 внешнего преобразования.
Модуль 220 приема и извлечения устройства 200 декодирования видео может извлекать и использовать информацию 800, 810 и 820 для декодирования, согласно каждой более глубокой единице кодирования
Фиг. 21 является схемой более глубоких единиц кодирования согласно глубинам, согласно варианту осуществления настоящего изобретения.
Информация разбиения может быть использована для того, чтобы указывать изменение глубины. Информация разбиения представляет то, разбивается или нет единица кодирования текущей глубины на единицы кодирования нижней глубины.
Единица 910 предсказания для кодирования с предсказанием единицы 900 кодирования, имеющей глубину 0 и размер 2N_0x2N_0, может включать в себя сегменты с типом 912 сегмента, имеющим размер 2N_0x2N_0, типом 914 сегмента, имеющим размер 2N_0xN_0, типом 916 сегмента, имеющим размер N_0x2N_0, и типом 918 сегмента, имеющим размер N_0xN_0. Фиг. 21 иллюстрирует только типы 912-918 сегментов, которые получаются посредством симметричного разбиения единицы 910 предсказания, но тип сегмента не ограничен этим, и сегменты единицы 910 предсказания могут включать в себя асимметричные сегменты, сегменты, имеющие предварительно определенную форму, и сегменты, имеющие геометрическую форму.
Кодирование с предсказанием многократно выполняется для одного сегмента, имеющего размер 2N_0x2N_0, двух сегментов, имеющих размер 2N_0xN_0, двух сегментов, имеющих размер N_0x2N_0, и четырех сегментов, имеющих размер N_0xN_0, согласно каждому типу сегмента. Кодирование с предсказанием во внутреннем режиме и внешнем режиме может быть выполнено для сегментов, имеющих размеры 2N_0x2N_0, N_0x2N_0, 2N_0xN_0 и N_0xN_0. Кодирование с предсказанием в режиме пропуска выполняется только для сегмента, имеющего размер 2N_0x2N_0.
Ошибки кодирования, включающего в себя кодирование с предсказанием, в типах 912-918 сегментов сравниваются, и определяется наименьшая ошибка кодирования для типов сегментов. Если ошибка кодирования является наименьшей в одном из типов 912-916 сегментов, единица 910 предсказания может не разбиваться на нижнюю глубину.
Если ошибка кодирования является наименьшей в типе 918 сегмента, глубина изменяется с 0 на 1, чтобы разбивать тип 918 сегмента, на этапе 920, и кодирование многократно выполняется для единиц 930 кодирования, имеющих глубину 2 и размер N_0xN_0, чтобы выполнять поиск минимальной ошибки кодирования.
Единица предсказания 940 для кодирования с предсказанием единицы 930 кодирования, имеющей глубину 1 и размер 2N_1x2N_1 (=N_0xN_0), может включать в себя сегменты с типом 942 сегмента, имеющим размер 2N_1x2N_1, типом 944 сегмента, имеющим размер 2N_1xN_1, типом 946 сегмента, имеющим размер N_1x2N_1, и типом 948 сегмента, имеющим размер N_1xN_1.
Если ошибка кодирования является наименьшей в типе 948 сегмента, глубина изменяется от 1 до 2, чтобы разбивать тип 948 сегмента, на этапе 950, и кодирование многократно выполняется для единиц 960 кодирования, которые имеют глубину 2 и размер N_2xN_2, чтобы выполнять поиск минимальной ошибки кодирования.
Когда максимальная глубина составляет d, более глубокие единицы кодирования согласно глубинам могут назначаться до того, когда глубина становится равной d-1, и информация разбиения может быть кодирована до того, когда глубина составляет одно из 0 - d-2. Другими словами, когда кодирование выполняется до того, когда глубина составляет d-1 после того, как единица кодирования, соответствующая глубине d-2, разбивается на этапе 970, единица 990 предсказания для кодирования с предсказанием единицы 980 кодирования, имеющей глубину d-1 и размер 2N_(d-1)x2N_(d-1) может включать в себя сегменты с типом 992 сегмента, имеющим размер 2N_(d-1)x2N_(d-1), типом 994 сегмента, имеющим размер 2N_(d-1)xN_(d-1), типом 996 сегмента, имеющим размер N_(d-1)x2N_(d-1), и типом 998 сегмента, имеющим размер N_(d-1)xN_(d-1).
Кодирование с предсказанием может многократно выполняться для одного сегмента, имеющего размер 2N_(d-1)x2N_(d-1), двух сегментов, имеющих размер 2N_(d-1)xN_(d-1), двух сегментов, имеющих размер N_(d-1)x2N_(d-1), четырех сегментов, имеющих размер N_(d-1)xN_(d-1), из типов 992-998 сегментов, с тем чтобы выполнять поиск типа сегмента, имеющего минимальную ошибку кодирования.
Даже когда тип 998 сегмента имеет минимальную ошибку кодирования, поскольку максимальная глубина составляет d, единица кодирования CU_(d-1), имеющая глубину d-1, более не разбивается до нижней глубины, и кодированная глубина для единиц кодирования, составляющих текущую максимальную единицу 900 кодирования, определяется как d-1, и тип сегмента текущей максимальной единицы 900 кодирования может быть определен как N_(d-1)xN_(d-1). Кроме того, поскольку максимальная глубина составляет d, и минимальная единица 980 кодирования, имеющая самую нижнюю глубину d-1, более не разбивается до нижней глубины, информация разбиения для минимальной единицы 980 кодирования не задается.
Единица 999 данных может быть "минимальной единицей" для текущей максимальной единицы кодирования. Минимальная единица согласно варианту осуществления настоящего изобретения может быть прямоугольной единицей данных, полученной посредством разбиения минимальной единицы 980 кодирования на 4. Посредством многократного выполнения кодирования, устройство 100 кодирования видео может выбирать глубину, имеющую наименьшую ошибку кодирования, посредством сравнения ошибок кодирования согласно глубинам единицы 900 кодирования, чтобы определять кодированную глубину и задавать соответствующий тип сегмента и режим предсказания в качестве режима кодирования кодированной глубины.
Также, минимальные ошибки кодирования согласно глубинам сравниваются во всех глубинах 1-d, и глубина, имеющая наименьшую ошибку кодирования, может быть определена в качестве кодированной глубины. Кодированная глубина, тип сегмента единицы предсказания и режим предсказания могут быть кодированы и переданы в качестве информации относительно режима кодирования. Кроме того, поскольку единица кодирования разбивается от глубины в 0 до кодированной глубины, только информация разбиения кодированной глубины задается равной 0, а информация разбиения глубин за исключением кодированной глубины задается равной 1.
Модуль 220 приема и извлечения устройства 200 декодирования видео может извлекать и использовать информацию относительно кодированной глубины и единицы предсказания единицы 900 кодирования, чтобы декодировать сегмент 912. Устройство 200 декодирования видео может определять глубину, при которой информация разбиения равна 0, в качестве кодированной глубины посредством использования информации разбиения согласно глубинам и использовать информацию относительно режима кодирования соответствующей глубины для декодирования.
Фиг. 22-24 являются схемами для описания взаимосвязи между единицами 1010 кодирования, единицами 1060 предсказания и единицами 1070 преобразования, согласно варианту осуществления настоящего изобретения.
Единицы 1010 кодирования являются единицами кодирования, имеющими древовидную структуру, согласно кодированным глубинам, определенным посредством устройства 100 кодирования видео, в максимальной единице кодирования. Единицы 1060 предсказания являются сегментами единиц предсказания каждой из единиц 1010 кодирования, и единицы 1070 преобразования являются единицами преобразования каждой из единиц 1010 кодирования.
Когда глубина максимальной единицы кодирования равна 0 в единицах 1010 кодирования, глубины единиц 1012 и 1054 кодирования равны 1, глубины единиц 1014, 1016, 1018, 1028, 1050 и 1052 кодирования равны 2, глубины единиц 1020, 1022, 1024, 1026, 1030, 1032 и 1048 кодирования равны 3, а глубины единиц 1040, 1042, 1044 и 1046 кодирования равны 4.
В единицах 1060 предсказания некоторые единицы 1014, 1016, 1022, 1032, 1048, 1050, 1052 и 1054 кодирования получаются посредством разбиения единиц кодирования в единицах 1010 кодирования. Другими словами, типы сегментов в единицах 1014, 1022, 1050 и 1054 кодирования имеют размер 2NxN, типы сегментов в единицах 1016, 1048 и 1052 кодирования имеют размер Nx2N, и тип сегмента единицы 1032 кодирования имеет размер NxN. Единицы предсказания и сегменты единиц 1010 кодирования меньше или равны каждой единице кодирования.
Преобразование или обратное преобразование выполняется для данных изображений единицы 1052 кодирования в единицах 1070 преобразования в единице данных, которая меньше единицы 1052 кодирования. Кроме того, единицы 1014, 1016, 1022, 1032, 1048, 1050 и 1052 кодирования в единицах 1070 преобразования отличаются от единиц кодирования в единицах 1060 предсказания с точки зрения размеров и форм. Другими словами, устройства 100 и 200 кодирования и декодирования видео могут выполнять внутреннее предсказание, оценку движения, компенсацию движения, преобразование и обратное преобразование по отдельности для единицы данных в идентичной единице кодирования.
Соответственно, кодирование рекурсивно выполняется для каждой из единиц кодирования, имеющих иерархическую структуру в каждой области максимальной единицы кодирования, чтобы определять оптимальную единицу кодирования, и за счет этого могут быть получены единицы кодирования, имеющие рекурсивную древовидную структуру. Информация кодирования может включать в себя информацию разбиения относительно единицы кодирования, информацию относительно типа сегмента, информацию относительно режима предсказания и информацию относительно размера единицы преобразования. Таблица 1 показывает информацию кодирования, которая может задаваться посредством устройств 100 и 200 кодирования и декодирования видео.
|
Модуль 130 вывода устройства 100 кодирования видео может выводить информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, и модуль 220 приема и извлечения устройства 200 декодирования видео может извлекать информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, из принимаемого потока битов.
Информация разбиения представляет то, разбивается или нет текущая единица кодирования на единицы кодирования нижней глубины. Если информация разбиения текущей глубины d равна 0, глубина, при которой текущая единица кодирования более не разбивается в нижнюю глубину, является кодированной глубиной, и в силу этого информация относительно типа сегмента, режима предсказания и размера единицы преобразования может быть задана для кодированной глубины. Если текущая единица кодирования дополнительно разбивается согласно информации разбиения, кодирование независимо выполняется для четырех единиц кодирования разбиения нижней глубины.
Режим предсказания может быть одним из внутреннего режима, внешнего режима и режима пропуска. Внутренний режим и внешний режим могут быть заданы во всех типах сегментов, а режим пропуска задается только в типе сегмента, имеющем размер 2Nx2N.
Информация относительно типа сегмента может указывать симметричные типы сегментов, имеющие размеры 2Nx2N, 2NxN, Nx2N и NxN, которые получаются посредством симметричного разбиения высоты или ширины единицы предсказания, и асимметричные типы сегментов, имеющие размеры 2NxnU, 2NxnD, nLx2N и nRx2N, которые получаются посредством асимметричного разбиения высоты или ширины единицы предсказания. Асимметричные типы сегментов, имеющие размеры 2NxnU и 2NxnD, могут быть, соответственно, получены посредством разбиения высоты единицы предсказания в 1:3 и 3:1, и асимметричные типы сегментов, имеющие размеры nLx2N, и nRx2N, могут быть, соответственно, получены посредством разбиения ширины единицы предсказания на 1:3 и 3:1
Размер единицы преобразования может задаваться как два типа во внутреннем режиме и два типа во внешнем режиме. Другими словами, если информация разбиения единицы преобразования равна 0, размер единицы преобразования может составлять 2Nx2N, что является размером текущей единицы кодирования. Если информация разбиения единицы преобразования равна 1, единицы преобразования могут быть получены посредством разбиения текущей единицы кодирования. Кроме того, если тип сегмента текущей единицы кодирования, имеющей размер 2Nx2N, представляет собой симметричный тип сегмента, размер единицы преобразования может составлять NxN, а если тип сегмента текущей единицы кодирования представляет собой асимметричный тип сегмента, размер единицы преобразования может составлять N/2xN/2.
Информация кодирования относительно единиц кодирования, имеющих древовидную структуру, может включать в себя, по меньшей мере, одну из единицы кодирования, соответствующей кодированной глубине, единицы предсказания и минимальной единицы. Единица кодирования, соответствующая кодированной глубине, может включать в себя, по меньшей мере, одну из единицы предсказания и минимальной единицы, содержащей идентичную информацию кодирования.
Соответственно, определяется то, включаются или нет смежные единицы данных в идентичную единицу кодирования, соответствующую кодированной глубине, посредством сравнения информации кодирования смежных единиц данных. Кроме того, соответствующая единица кодирования, соответствующая кодированной глубине, определяется посредством использования информации кодирования единицы данных, и за счет этого может быть определено распределение кодированных глубин в максимальной единице кодирования.
Соответственно, если текущая единица кодирования предсказывается на основе информации кодирования смежных единиц данных, можно обращаться непосредственно к информации кодирования единиц данных в более глубоких единицах кодирования, смежных с текущей единицей кодирования, и она может использоваться.
Альтернативно, если текущая единица кодирования предсказывается на основе информации кодирования смежных единиц данных, поиск единиц данных, смежных с текущей единицей кодирования, с использованием кодированной информации единиц данных, и к искомым смежным единицам кодирования можно обращаться для предсказания текущей единицы кодирования.
Фиг. 25 является схемой для описания взаимосвязи между единицей кодирования, единицей предсказания или сегментом и единицей преобразования, согласно информации режима кодирования по таблице 1.
Максимальная единица 1300 кодирования включает в себя единицы 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодирования кодированных глубин. Здесь, поскольку единица 1318 кодирования является единицей кодирования кодированной глубины, информация разбиения может задаваться равной 0. Информация относительно типа сегмента единицы 1318 кодирования, имеющей размер 2Nx2N, может задаваться как одно из типа 1322 сегмента, имеющего размер 2Nx2N, типа 1324 сегмента, имеющего размер 2NxN, типа 1326 сегмента, имеющего размер Nx2N, типа 1328 сегмента, имеющего размер NxN, типа 1332 сегмента, имеющего размер 2NxnU, типа 1334 сегмента, имеющего размер 2NxnD, типа 1336 сегмента, имеющего размер nLx2N, и типа 1338 сегмента, имеющего размер nRx2N.
Информация разбиения (флаг TU-размера) единицы преобразования представляет собой вид индекса преобразования, и размер единицы преобразования, соответствующий индексу преобразования, может варьироваться согласно типу единицы предсказания или типу сегмента единицы кодирования.
Например, когда тип сегмента задается как симметричный, т.е. тип 1322, 1324, 1326 или 1328 сегмента, единица 1342 преобразования, имеющая размер 2Nx2N, задается, если флаг TU-размера равен 0, и единица 1344 преобразования, имеющая размер NxN, задается, если флаг TU-размера равен 1.
Когда тип сегмента задается как асимметричный, т.е. тип 1332, 1334, 1336 или 1338 сегмента, единица 1352 преобразования, имеющая размер 2Nx2N, задается, если флаг TU-размера равен 0, и единица 1354 преобразования, имеющая размер N/2xN/2 задается, если флаг TU-размера равен 1.
Ссылаясь на фиг. 21, флаг TU-размера является флагом, имеющим значение в 0 или 1, но флаг TU-размера не ограничивается 1 битом, и единица преобразования может иерархически разбиваться при наличии древовидной структуры, в то время как флаг TU-размера увеличивается от 0. Флаг TU-размера может быть использован в качестве примера индекса преобразования.
В этом случае, размер единицы преобразования, которая фактически использована, может выражаться посредством использования флага TU-размера единицы преобразования, согласно варианту осуществления настоящего изобретения, вместе с максимальным размером и минимальным размером единицы преобразования. Согласно варианту осуществления настоящего изобретения, устройство 100 кодирования видео допускает кодирование информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера. Результат кодирования информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера может быть вставлен в SPS. Согласно варианту осуществления настоящего изобретения, устройство 200 декодирования видео может декодировать видео посредством использования информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера.
Например, (a) если размер текущей единицы кодирования составляет 64x64, а размер максимальной единицы преобразования составляет 32x32, то (a-1) размер единицы преобразования может составлять 32x32, когда флаг TU-размера равен 0, (a-2) может составлять 16x16, когда флаг TU-размера равен 1, и (a-3) может составлять 8x8, когда флаг TU-размера равен 2.
В качестве другого примера, (b) если размер текущей единицы кодирования составляет 32x32, и размер минимальной единицы преобразования составляет 32x32, то (b-1) размер единицы преобразования может составлять 32x32, когда флаг TU-размера равен 0. Здесь, флаг TU-размера не может задаваться равным значению, отличному от 0, поскольку размер единицы преобразования не может быть меньше 32x32.
В качестве другого примера, (c) если размер текущей единицы кодирования составляет 64x64, и флаг максимального TU-размера равен 1, то флаг TU-размера может составлять 0 или 1. Здесь, флаг TU-размера не может задаваться равным значению, отличному от 0 или 1.
Таким образом, если задается то, что флагом максимального TU-размера является MaxTransformSizelndex, размером минимальной единицы преобразования является MinTransformSize, и корневым размером единицы преобразования является RootTuSize, когда флаг TU-размера равен 0, то размер CurrMinTuSize текущей минимальной единицы преобразования, который может быть определен в текущей единице кодирования, может быть задан посредством уравнения (1):
CurrMinTuSize=max(MinTransformSize, RootTuSize/(2^MaxTransformSizeIndex)) (1)
По сравнению с размером CurrMinTuSize текущей минимальной единицы преобразования, который может быть определен в текущей единице кодирования, корневой размер RootTuSize единицы преобразования может обозначать размер максимальной единицы преобразования, который может быть выбран в системе. В уравнении (1), RootTuSize/(2^MaxTransformSizeIndex) обозначает размер единицы преобразования, когда корневой размер RootTuSize единицы преобразования разбивается число раз, соответствующее флагу максимального TU-размера, и MinTransformSize обозначает минимальный размер преобразования. Таким образом, меньшее значение из RootTuSize/(2^MaxTransformSizeIndex) и MinTransformSize может быть размером CurrMinTuSize текущей минимальной единицы преобразования, который может быть определен в текущей единице кодирования.
Согласно варианту осуществления настоящего изобретения, корневой размер RootTuSize единицы преобразования может варьироваться согласно типу режима предсказания.
Например, если текущим режимом предсказания является внешний режим, то RootTuSize может быть определен посредством использования нижеприведенного уравнения (2). В уравнении (2), MaxTransformSize обозначает размер максимальной единицы преобразования, и PUSize обозначает размер текущей единицы предсказания:
RootTuSize=min(MaxTransformSize, PUSize) (2)
Иными словами, если текущим режимом предсказания является внешний режим, размер RootTuSize корневой единицы преобразования, когда флаг TU-размера равен 0, может быть меньшим значением из размера максимальной единицы преобразования и размера текущей единицы предсказания.
Если режимом предсказания текущей единицы сегментирования является внутренний режим, RootTuSize может быть определен посредством использования нижеприведенного уравнения (3). В уравнении (3), PartitionSize обозначает размер текущей единицы сегментирования:
RootTuSize=min(MaxTransformSize, PartitionSize) (3)
Иными словами, если текущим режимом предсказания является внутренний режим, корневой размер RootTuSize единицы преобразования может быть меньшим значением из размера максимальной единицы преобразования и размера текущей единицы сегментирования.
Тем не менее, размер текущей максимальной единицы преобразования, который варьируется согласно типу режима предсказания в единице сегментирования, размер RootTuSize корневой единицы преобразования, является просто примером, и настоящее изобретение не ограничено этим.
Фиг. 26 является блок-схемой последовательности операций способа кодирования видео с использованием интерполяционного фильтра на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
На этапе 2610, для того чтобы кодировать текущее изображение входного видео, текущее изображение разбивается, по меньшей мере, на одну максимальную единицу кодирования. Каждая, по меньшей мере, из одной области разбиения, которая получается посредством разбиения области каждой максимальной единицы кодирования согласно глубинам, может быть кодирована. Чтобы кодировать каждую область разбиения согласно глубинам, преобразование и квантование выполняются для результата внешнего предсказания на основе интерполяции субпиксельных единиц и внутреннего предсказания.
Здесь, глубина разбиения для вывода конечного результата кодирования согласно, по меньшей мере, одной области разбиения может быть определена посредством сравнения результатов кодирования областей разбиения согласно глубинам, и могут быть определены единицы кодирования, включенные в текущую максимальную единицу кодирования и имеющие древовидную структуру. Аналогично единицам кодирования, имеющим древовидную структуру, могут быть определены единицы преобразования, имеющие древовидную структуру. Другими словами, в качестве результата кодирования изображения, аналогично определенным единицам кодирования, имеющим древовидную структуру, результат кодирования единиц преобразования, имеющих древовидную структуру, может выводиться в качестве кодированных данных изображения.
Внешнее предсказание может быть выполнено для каждой единицы предсказания или сегмента единицы кодирования. Движение текущей единицы предсказания или сегмента может быть предсказано в отношении пикселов, сформированных посредством выполнения интерполяции субпиксельных единиц. Из числа интерполяционных фильтров для формирования пиксельного значения субпиксельной единицы интерполяционный фильтр по-разному выбирается на основе местоположения интерполяции субпиксельных единиц. Чтобы эффективно выполнять интерполяцию изображений, могут быть избирательно определены коэффициенты интерполяционной фильтрации. Интерполяционный фильтр может быть выбран в качестве симметричного или асимметричного интерполяционного фильтра согласно местоположению интерполяции. Интерполяционный фильтр может быть интерполяционным фильтром с нечетным или четным числом отводов.
Из числа коэффициентов интерполяционной фильтрации, заранее сохраненных в запоминающем устройстве, требуемый интерполяционный фильтр может быть выбран согласно местоположению интерполяции субпиксельных единиц, гладкости, числу отводов фильтра, битовой глубине, коэффициенту масштабирования, базисной функции интерполяционной фильтрации на основе преобразования, размеру оконного фильтра и цветовому компоненту, и интерполяция может быть выполнена с тем, чтобы формировать пиксельное значение субпиксельной единицы.
На этапе 2620, данные изображений, полученные в качестве конечного результата кодирования согласно, по меньшей мере, одной области разбиения каждой максимальной единицы кодирования и информации относительно кодированной глубины и режима кодирования, выводятся в качестве потока битов.
Информация относительно режима кодирования может включать в себя информацию относительно кодированной глубины или информации разбиения, информацию относительно типа сегмента единицы предсказания, информацию относительно режима предсказания и информацию относительно древовидной структуры единиц преобразования. Информация кодирования может включать в себя информацию относительно интерполяционного фильтра, используемого для того, чтобы выполнять кодирование с предсказанием субпиксельных единиц. Кодированная информация относительно режима кодирования может быть передана в устройство декодирования вместе с кодированными данными изображений.
Фиг. 27 является блок-схемой последовательности операций способа декодирования видео с использованием интерполяционного фильтра на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
На этапе 2710, поток битов кодированного видео принимается и синтаксически анализируется.
На этапе 2720, кодированные данные изображений для текущего изображения, назначаемого максимальной единице кодирования, и информация относительно кодированной глубины и режима кодирования согласно максимальным единицам кодирования извлекаются из синтаксически проанализированного потока битов. Информация относительно интерполяционного фильтра, требуемого для того, чтобы выполнять компенсацию движения субпиксельных единиц, может быть извлечена из информации кодирования.
Информация относительно кодированной глубины и режима кодирования может быть извлечена из информации кодирования. Согласно информации относительно кодированной глубины и режима кодирования, максимальная единица кодирования может разбиваться на единицы кодирования, имеющие древовидную структуру. Кроме того, согласно информации относительно древовидной структуры единиц преобразования, включенных в извлеченную информацию, могут быть определены единицы преобразования, имеющие древовидную структуру согласно глубинам преобразования в единицах кодирования.
На этапе 2730, посредством использования информации относительно кодированной глубины и режима кодирования согласно каждой максимальной единице кодирования, данные изображений каждой максимальной единицы кодирования могут быть декодированы на основе единиц кодирования, имеющих древовидную структуру, единиц предсказания и единиц преобразования, имеющих древовидную структуру. Поскольку текущая единица кодирования декодируется на основе информации относительно кодированной глубины и режима кодирования, текущая единица кодирования может быть обратно преобразована посредством использования единицы преобразования, определенной из числа единиц преобразования, имеющих древовидную структуру.
Кодированные данные изображений могут быть декодированы посредством выполнения различных операций декодирования, таких как компенсация движения и внутреннее предсказание для каждой единицы предсказания или сегмента единицы кодирования на основе режима кодирования.
В частности, если кодированные остаточные данные и опорные данные извлекаются на основе пикселов, интерполированных в субпиксельной единице, компенсация движения для текущей единицы предсказания или текущего сегмента может быть выполнена на основе пикселов, интерполированных в субпиксельных единицах. Из числа интерполяционных фильтров для формирования пиксельного значения субпиксельной единицы интерполяционный фильтр может быть по-разному выбран на основе местоположения интерполяции субпиксельных единиц. Интерполяционный фильтр может быть выбран в качестве симметричного или асимметричного интерполяционного фильтра согласно местоположению интерполяции. Интерполяционный фильтр может быть интерполяционным фильтром с нечетным или четным числом отводов.
Чтобы эффективно выполнять интерполяцию изображений, могут быть избирательно определены коэффициенты интерполяционной фильтрации. Из числа коэффициентов интерполяционной фильтрации, заранее сохраненных в запоминающем устройстве, требуемый интерполяционный фильтр может быть выбран согласно местоположению интерполяции субпиксельных единиц, гладкости, числу отводов фильтра, битовой глубине, коэффициенту масштабирования, базисной функции интерполяционной фильтрации на основе преобразования, размеру оконного фильтра и цветовому компоненту, и интерполяция может быть выполнена с тем, чтобы формировать пиксельное значение субпиксельной единицы.
Опорное изображение и опорная область определяются посредством использования опорных данных, и пиксельное значение субпиксельной единицы может быть сформировано посредством выполнения интерполяционной фильтрации для двух или более опорных пикселов целопиксельных единиц опорного изображения. Компенсация движения может быть выполнена для текущей единицы предсказания или текущего сегмента посредством комбинирования сформированного пиксельного значения субпиксельной единицы и остаточных данных, и за счет этого может выполняться декодирование с предсказанием.
Поскольку каждая максимальная единица кодирования декодируется, могут быть восстановлены данные изображений в пространственной области, и могут быть восстановлены изображение и видео, которое является последовательностью изображений. Восстановленное видео может быть воспроизведено посредством устройства воспроизведения, может быть сохранено на носителе хранения данных или может быть передано в сети.
Варианты осуществления настоящего изобретения могут быть записаны в качестве компьютерной программы и могут быть реализованы в цифровых компьютерах общего назначения, которые выполняют программы с использованием машиночитаемого носителя записи. Примеры машиночитаемого носителя записи включают в себя магнитные носители хранения данных (например, ROM, гибкие диски, жесткие диски и т.д.) и оптические носители записи (например, CD-ROM или DVD).
Хотя это изобретение конкретно показано и описано со ссылкой на его предпочтительные варианты осуществления, специалисты в данной области техники должны понимать, что различные изменения по форме и содержанию могут быть сделаны без отступления от сущности и объема изобретения, заданных посредством прилагаемой формулы изобретения. Предпочтительные варианты осуществления должны рассматриваться только в описательном смысле, а не в целях ограничения. Следовательно, объем изобретения задается не посредством подробного описания изобретения, а посредством прилагаемой формулы изобретения, и любые отличия в пределах объема должны истолковываться как включенные в настоящее изобретение.