Способ и устройство для выполнения интерполяции на основе преобразования и обратного преобразования
Иллюстрации
Показать всеИзобретение относится к интерполяции изображения. Техническим результатом является повышение точности генерирования дробной пиксельной единицы. Устройство для компенсации движения содержит процессор, сконфигурированный для определения в яркостном опорном снимке яркостного опорного блока для предсказания текущего блока посредством использования яркостного вектора движения, генерации пиксельного значения 2/4-пиксельного местоположения посредством применения фильтра интерполяции к значениям целочисленных местоположений и генерации значения 1/4- или 3/4- местоположения посредством применения фильтра интерполяции к значениям целочисленных местоположений без использования сгенерированного значения 2/4- местоположения. Изображение разделяется на множество максимальных блоков кодирования, которые иерархически разделяются на блоки кодирования глубин, включающих в себя текущую и меньшую глубины, согласно информации разделения. В зависимости от информации разделения разделяют блок кодирования текущей глубины на четыре блока кодирования меньшей глубины или получают из блоков кодирования текущей глубины блоки предсказания. 1 з.п. ф-лы, 62 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Устройства и способы, связанные с иллюстративными вариантами осуществления, относятся к интерполяции изображения, и, более конкретно, к интерполяции между пиксельными значениями целочисленных пиксельных единиц.
УРОВЕНЬ ТЕХНИКИ
В соответствующем способе кодирования и декодирования изображений из уровня техники, один снимок (картинка) разделяется на множество макроблоков так, чтобы кодировать изображение. Затем, каждый из множества макроблоков кодируется с предсказанием посредством выполнения внешнего предсказания или внутреннего предсказания над ним.
Внешнее предсказание является способом сжатия изображения посредством удаления временной избыточности между снимками. Показательным примером внешнего предсказания является кодирование с оценкой движения. В кодировании с оценкой движения каждый блок текущего снимка предсказывается посредством использования по меньшей мере одного опорного снимка. Опорный блок, который является наиболее подобным текущему блоку, ищется в предварительно определенном диапазоне поиска посредством использования предварительно определенной функции оценки.
Текущий блок предсказывается на основе опорного блока, остаточный блок получается посредством вычитания предсказанного блока, который является результатом предсказания, из текущего блока, и затем остаточный блок кодируется. В этом случае, чтобы точно предсказывать текущий блок, подпиксели, которые являются более маленькими, чем целочисленные пиксельные единицы, генерируются посредством выполнения интерполяции в диапазоне поиска опорного снимка, и внешнее предсказание выполняется на основе подпикселей.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Решение проблемы
Аспекты одного или более иллюстративных вариантов осуществлений обеспечивают способ и устройство для генерирования пиксельных значений дробных пиксельных единиц посредством интерполяции пиксельных значений целочисленных пиксельных единиц.
Аспекты одного или более иллюстративных вариантов осуществлений также обеспечивают машиночитаемый носитель записи, имеющий записанную на нем компьютерную программу для выполнения способа.
ПРЕДПОЧТИТЕЛЬНЫЕ ЭФФЕКТЫ ИЗОБРЕТЕНИЯ
Согласно настоящей заявке, дробная пиксельная единица может генерироваться более точно.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеописанные и другие признаки станут более ясными из подробного описания иллюстративных вариантов осуществления со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 является блок-схемой устройства для кодирования изображения согласно одному иллюстративному варианту осуществления;
Фиг. 2 является блок-схемой устройства для декодирования изображения согласно одному иллюстративному варианту осуществления;
Фиг. 3 иллюстрирует иерархические блоки кодирования согласно одному иллюстративному варианту осуществления;
Фиг. 4 является блок-схемой кодера изображений на основе блока кодирования согласно одному иллюстративному варианту осуществления;
Фиг. 5 является блок-схемой декодера изображений на основе блока кодирования согласно одному иллюстративному варианту осуществления;
Фиг. 6 иллюстрирует максимальный блок кодирования, подблок кодирования и блок предсказания согласно одному иллюстративному варианту осуществления;
Фиг. 7 иллюстрирует блок кодирования и блок преобразования согласно одному иллюстративному варианту осуществления;
Фиг. 8A-8D иллюстрируют формы разделения блока кодирования, блока предсказания и блока преобразования согласно одному иллюстративному варианту осуществления;
Фиг. 9 является блок-схемой устройства интерполяции изображений согласно одному иллюстративному варианту осуществления;
Фиг. 10 является диаграммой, иллюстрирующей способ двумерной (2D) интерполяции, выполняемый посредством устройства интерполяции изображений из Фиг. 9 согласно одному иллюстративному варианту осуществления;
Фиг. 11 является диаграммой, иллюстрирующей область интерполяции согласно одному иллюстративному варианту осуществления;
Фиг. 12 является диаграммой, иллюстрирующей способ одномерной (1D) интерполяции согласно одному иллюстративному варианту осуществления;
Фиг. 13 является диаграммой, конкретно иллюстрирующей способ интерполяции 1D, выполняемый посредством устройства интерполяции изображений из Фиг. 9 согласно одному иллюстративному варианту осуществления;
Фиг. 14 является блок-схемой устройства интерполяции изображений согласно одному иллюстративному варианту осуществления;
Фиг. 15 иллюстрирует фильтры интерполяции 2D согласно одному иллюстративному варианту осуществления;
Фиг. 16A-16F иллюстрируют фильтры интерполяции 1D согласно иллюстративным вариантам осуществления;
Фиг. 17A-17Y иллюстрируют оптимизированные фильтры интерполяции 1D согласно иллюстративным вариантам осуществления;
Фиг. 18A и 18B иллюстрируют способы интерполяции пиксельных значений в различных направлениях посредством использования фильтра интерполяции 1D согласно иллюстративным вариантам осуществления;
Фиг. 19A иллюстрирует способ интерполяции 2D согласно одному иллюстративному варианту осуществления;
Фиг. 19B иллюстрирует способ интерполяции 2D с использованием фильтра интерполяции 1D согласно другому иллюстративному варианту осуществления;
Фиг. 19C иллюстрирует способ интерполяции 2D с использованием фильтра интерполяции 1D согласно другому иллюстративному варианту осуществления;
Фиг. 20 является блок-схемой последовательности операций, иллюстрирующей способ интерполяции изображений согласно иллюстративному варианту осуществления;
Фиг. 21 является блок-схемой последовательности операций, иллюстрирующей способ интерполяции изображений согласно другому иллюстративному варианту осуществления;
Фиг. 22 является блок-схемой последовательности операций, иллюстрирующей способ интерполяции изображений согласно другому иллюстративному варианту осуществления; и
Фиг. 23A-23E иллюстрируют способы выполнения масштабирования и округления в отношении фильтра интерполяции 1D согласно иллюстративным вариантам осуществления.
НАИЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ДЛЯ ВЫПОЛНЕНИЯ ИЗОБРЕТЕНИЯ
Согласно одному аспекту иллюстративного варианта осуществления обеспечивается способ интерполяции изображения, при этом способ включает в себя: выбор первого фильтра, из множества разных фильтров, для интерполяции между пиксельными значениями целочисленных пиксельных единиц согласно местоположению интерполяции; и генерирование по меньшей мере одного пиксельного значения по меньшей мере одной дробной пиксельной единицы посредством интерполяции между пиксельными значениями целочисленных пиксельных единиц посредством использования выбранного первого фильтра для интерполяции между пиксельными значениями целочисленных пиксельных единиц.
Способ может дополнительно включать в себя выбор второго фильтра, из множества разных фильтров, для интерполяции между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой по меньшей мере одной дробной пиксельной единицы согласно местоположению интерполяции; и интерполяцию между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой по меньшей мере одной дробной пиксельной единицы посредством использования выбранного второго фильтра для интерполяции между сгенерированным по меньшей мере одним пиксельным значением упомянутой по меньшей мере одной дробной пиксельной единицы.
Первый фильтр для интерполяции между пиксельными значениями целочисленных пиксельных единиц может являться фильтром пространственной области для преобразования пиксельных значений целочисленных пиксельных единиц посредством использования множества базисных функций, имеющих разные частоты, и обратного преобразования множества коэффициентов, которые получены посредством преобразования пиксельных значений целочисленных пиксельных единиц, посредством использования множества базисных функций, фазы которых сдвинуты.
Второй фильтр для интерполяции между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой по меньшей мере одной дробной пиксельной единицы может являться фильтром пространственной области для преобразования сгенерированного, по меньшей мере, одного пиксельного значения упомянутой по меньшей мере одной дробной пиксельной единицы посредством использования множества базисных функций, имеющих разные частоты, и обратного преобразования множества коэффициентов, которые получены посредством преобразования сгенерированного, по меньшей мере, одного пиксельного значения упомянутой, по меньшей мере, одной дробной пиксельной единицы, посредством использования множества базисных функций, фазы которых сдвинуты.
Согласно одному аспекту другого иллюстративного варианта осуществления, обеспечивается устройство для интерполяции изображения, при этом устройство включает в себя: селектор фильтров, который выбирает первый фильтр из множества разных фильтров для интерполяции между пиксельными значениями целочисленных пиксельных единиц согласно местоположению интерполяции; и интерполятор, который генерирует по меньшей мере одно пиксельное значение по меньшей мере одной дробной пиксельной единицы посредством интерполяции между пиксельными значениями целочисленных пиксельных единиц посредством использования выбранного первого фильтра для интерполяции между пиксельными значениями целочисленных пиксельных единиц.
Селектор фильтров может выбирать второй фильтр, из множества разных фильтров, для интерполяции между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой, по меньшей мере, одной дробной пиксельной единицы согласно местоположению интерполяции, и интерполятор может интерполировать между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой, по меньшей мере, одной дробной пиксельной единицы посредством использования выбранного второго фильтра для интерполяции между сгенерированным, по меньшей мере, одним пиксельным значением упомянутой, по меньшей мере, одной дробной пиксельной единицы.
Согласно одному аспекту другого иллюстративного варианта осуществления, обеспечивается машиночитаемый носитель записи, имеющий воплощенную на нем компьютерную программу для выполнения способа, описанного выше.
Согласно одному аспекту другого иллюстративного варианта осуществления, обеспечивается способ интерполяции изображения, при этом способ включает в себя: преобразование пиксельных значений в пространственной области посредством использования множества базисных функций, имеющих разные частоты; сдвиг фаз множества базисных функций; и обратное преобразование множества коэффициентов, полученных посредством преобразования пиксельных значений, посредством использования сдвинутых по фазе множества базисных функций.
ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ДЛЯ ИЗОБРЕТЕНИЯ
Ниже, со ссылкой на сопроводительные чертежи будут более полно описаны один или более иллюстративных вариантов осуществления. Выражения, такие как "по меньшей мере, один из", когда предшествуют списку элементов, модифицируют полный список элементов, но не модифицируют индивидуальные элементы списка. В настоящем описании, "изображение" может обозначать неподвижное изображение для видео или движущееся изображение, то есть, само видео.
Фиг. 1 является блок-схемой устройства 100 для кодирования изображения согласно одному иллюстративному варианту осуществления. Ссылаясь на Фиг. 1, устройство 100 для кодирования изображения включает в себя блок 110 разделения максимального блока кодирования, блок 120 определения глубины кодирования, кодер 130 данных изображения, и кодер 140 информации кодирования.
Блок 110 разделения максимального блока кодирования может разделять текущий кадр или вырезку на основе максимального блока кодирования, который является блоком кодирования наибольшего размера. То есть, блок 110 разделения максимального блока кодирования может разделять текущий кадр или вырезку на, по меньшей мере, один максимальный блок кодирования.
Согласно одному иллюстративному варианту осуществления, блок кодирования может представляться с использованием максимального блока кодирования и глубины. Как описано выше, максимальный блок кодирования показывает блок кодирования, имеющий наибольший размер, из блоков кодирования текущего кадра, и глубина показывает степень иерархического уменьшения блока кодирования. По мере того, как глубина увеличивается, блок кодирования может уменьшаться от максимального блока кодирования к минимальному блоку кодирования, при этом глубина максимального блока кодирования определяется как минимальная глубина и глубина минимального блока кодирования определяется как максимальная глубина. Так как размер блока кодирования уменьшается от максимального блока кодирования по мере того, как глубина увеличивается, подблок кодирования kой глубины может включать в себя множество подблоков кодирования (k+n)ой глубины (где k и n являются целыми числами, равными или большими, чем 1.
Согласно увеличению размера кадра, подлежащего кодированию, кодирование изображения в более большом блоке кодирования может быть причиной более высокого коэффициента сжатия изображения. Однако, если фиксируется более большой блок кодирования, изображение может не эффективно кодироваться посредством отражения непрерывного изменяющихся характеристик изображения.
Например, когда кодируется гладкая область, такая как море или небо, чем большим является блок кодирования, тем больше коэффициент сжатия может увеличиваться. Однако, когда кодируется сложная область, такая как люди или здания, чем меньшим является блок кодирования, тем больше коэффициент сжатия может увеличиваться.
Соответственно, согласно одному иллюстративному варианту осуществления, другой максимальный блок кодирования изображения и другая максимальная глубина могут устанавливаться для каждого кадра или вырезки. Так как максимальная глубина обозначает максимальное количество раз, посредством которых блок кодирования может уменьшаться, размер каждого минимального блока кодирования, включенного в максимальный блок кодирования изображения, может устанавливаться переменным образом согласно максимальной глубине. Максимальная глубина может определяться различным образом для каждого кадра или вырезки или для каждого максимального блока кодирования.
Блок 120 определения глубины кодирования определяет форму разделения максимального блока кодирования. Форма разделения может определяться на основе вычисления затрат согласно зависимости искажение-скорость (RD). Определенная форма разделения максимального блока кодирования обеспечивается в кодер 140 информации кодирования, и данные изображения согласно максимальным блокам кодирования обеспечиваются в кодер 130 данных изображения.
Максимальный блок кодирования может разделяться на подблоки кодирования, имеющие разные размеры согласно разным глубинам, и подблоки кодирования, имеющие разные размеры, которые содержатся в максимальном блоке кодирования, может предсказываться или преобразовываться на основе блоков обработки, имеющих разные размеры. Другими словами, устройство 100 для кодирования изображения может выполнять множество операций обработки для кодирования изображения на основе блоков обработки, имеющих различные размеры и различные формы. Чтобы кодировать данные изображения, выполняются операции обработки, такие как по меньшей мере одно из предсказания, преобразования, и энтропийного кодирования, при этом для операций обработки могут использоваться блоки обработки, имеющие один и тот же размер или разные размеры, соответственно.
Например, устройство 100 для кодирования изображения может выбирать блок обработки, который является отличным от блока кодирования, чтобы предсказывать блок кодирования.
Когда размер блока кодирования равняется 2N×2N (где N является положительным целым числом), блоки обработки для предсказания могут быть 2N×2N, 2N×N, N×2N, и N×N. Другими словами, предсказание движения может выполняться на основе блока обработки, имеющего некоторую форму, в силу чего, по меньшей мере, одно из высоты и ширины блока кодирования равным образом разделяется на два. Ниже, блок обработки, который является основой предсказания, определяется как 'блок предсказания'.
Режим предсказания может быть, по меньшей мере, одним из внутреннего режима, внешнего режима, и режима пропуска, и конкретный режим предсказания может выполняться только для блока предсказания, имеющего конкретный размер или форму. Например, внутренний режим может выполняться только для блоков предсказания, имеющих размеры 2N×2N и N×N, чья форма является квадратом. Дополнительно, режим пропуска может выполняться только для блока предсказания, имеющего размер 2N×2N. Если в блоке кодирования существуют множество блоков предсказания, режим предсказания с наименьшими ошибками кодирования может выбираться после выполнения предсказания для каждого блока предсказания.
Альтернативно, устройство 100 для кодирования изображения может выполнять преобразование над данными изображения, на основе блока обработки, имеющего другой размер, нежели блок кодирования. Для преобразования в блоке кодирования преобразование может выполняться на основе блока обработки, имеющего размер, равный или более маленький, чем размер блока кодирования. В дальнейшем, блок обработки, который является основой преобразования, определяется как 'блок преобразования'. Преобразование может быть дискретным косинусным преобразованием (DCT) или преобразованием Кархунена (Karhunen) Леве (Loeve) (KLT) или любым другим пространственным преобразованием фиксированной точки.
Блок 120 определения глубины кодирования может определять подблоки кодирования, включенные в максимальный блок кодирования, посредством использования оптимизации RD на основе множителя Лагранжа. Другими словами, блок 120 определения глубины кодирования может определять то, какую форму имеют множество подблоков кодирования, разделенных из максимального блока кодирования, при этом множество подблоков кодирования имеют разные размеры согласно их глубинам. Кодер 130 данных изображения выводит битовый поток посредством кодирования максимального блока кодирования на основе форм разделения, определенных посредством блока 120 определения глубины кодирования.
Кодер 140 информации кодирования кодирует информацию о режиме кодирования максимального блока кодирования, определенного посредством блока 120 определения глубины кодирования. Другими словами, кодер 140 информации кодирования выводит битовый поток посредством кодирования информации о форме разделения максимального блока кодирования, информации о максимальной глубине, и информации о режиме кодирования подблока кодирования для каждой глубины. Информация о режиме кодирования подблока кодирования может включать в себя информацию о блоке предсказания подблока кодирования, информацию о режиме предсказания для каждого блока предсказания, и информацию о блоке преобразования подблока кодирования.
Информация о форме разделения максимального блока кодирования может быть информацией, например, флаговой информацией, показывающей, разделен ли каждый блок кодирования. Например, когда максимальный блок кодирования разделяется и кодируется, кодируется информация, показывающая, разделен ли максимальный блок кодирования. Также, когда подблок кодирования, разделенный из максимального блока кодирования, разделяется и кодируется, кодируется информация, показывающая, разделен ли подблок кодирования.
Так как подблоки кодирования, имеющие разные размеры, существуют для каждого максимального блока кодирования, и информация о режиме кодирования должна определяться для каждого подблока кодирования, информация о по меньшей мере одном режиме кодирования может определяться для одного максимального блока кодирования.
Устройство 100 для кодирования изображения может генерировать подблоки кодирования посредством равного разделения как высоты, так и ширины максимального блока кодирования на два согласно увеличению глубины. То есть, когда размер блока кодирования kой глубины равен 2N×2N, размер блока кодирования (k+1)ой глубины равен N×N.
Соответственно, устройство 100 для кодирования изображения может определять оптимальную форму разделения для каждого максимального блока кодирования, на основе размеров максимальных блоков кодирования и максимальной глубины при рассмотрении характеристик изображения. Посредством регулировки переменным образом размера максимального блока кодирования с учетом характеристик изображения и кодирования изображения с помощью разделения максимального блока кодирования на подблоки кодирования разных глубин, изображения, имеющие различные разрешения, могут кодироваться более эффективно.
Фиг. 2 является блок-схемой устройства 200 для декодирования изображения согласно одному иллюстративному варианту осуществления. Ссылаясь на Фиг. 2, устройство 200 для декодирования изображения включает в себя блок 210 получения данных изображения, блок 220 извлечения информации кодирования, и декодер 230 данных изображения.
Блок 210 получения данных изображения получает данные изображения согласно максимальным блокам кодирования посредством синтаксического разбора битового потока, принятого устройством 200 для декодирования изображения, и выводит данные изображения в декодер 230 данных изображения. Блок 210 получения данных изображения может извлекать информацию о максимальных блоках кодирования текущего кадра или вырезки из заголовка текущего кадра или вырезки. Другими словами, блок 210 получения данных изображения разделяет битовый поток согласно максимальным блокам кодирования, так что декодер 230 данных изображения может декодировать данные изображения согласно максимальным блокам кодирования.
Блок 220 извлечения информации кодирования извлекает информацию о максимальном блоке кодирования, максимальной глубине, форме разделения максимального блока кодирования, и режиме кодирования подблоков кодирования из заголовка текущего кадра посредством синтаксического разбора битового потока, принятого устройством 200 для декодирования изображения. Информация о форме разделения и информация о режиме кодирования обеспечиваются в декодер 230 данных изображения.
Информация о форме разделения максимального блока кодирования может включать в себя информацию о подблоках кодирования, имеющих разные размеры согласно глубинам и включенных в максимальный блок кодирования, и может быть информацией (например, флаговой информацией), показывающей, разделен ли каждый блок кодирования. Информация о режиме кодирования может включать в себя информацию о блоке предсказания согласно подблокам кодирования, информацию о режиме предсказания, и информацию о блоке преобразования.
Декодер 230 данных изображения восстанавливает текущий кадр посредством декодирования данных изображения каждого максимального блока кодирования, на основе информации, извлеченной посредством блока 220 извлечения информации кодирования.
Декодер 230 данных изображения может декодировать подблоки кодирования, включенные в максимальный блок кодирования, на основе информации о форме разделения максимального блока кодирования. Декодирование может включать в себя внутреннее предсказание, внешнее предсказание, которое включает в себя компенсацию движения, и обратное преобразование.
Декодер 230 данных изображения может выполнять внутреннее предсказание или внешнее предсказание на основе информации о блоке предсказания и информации о режиме предсказания, чтобы предсказывать блок предсказания. Декодер 230 данных изображения также может выполнять обратное преобразование для каждого подблока кодирования на основе информации о блоке преобразования подблока кодирования.
Фиг. 3 иллюстрирует иерархические блоки кодирования согласно одному иллюстративному варианту осуществления.
Ссылаясь на Фиг. 3, иерархические блоки кодирования могут включать в себя блоки кодирования, чьи ширины и высоты равны 64×64, 32×32, 16×16, 8×8, и 4×4. Кроме этих блоков кодирования, имеющих идеальные квадратные формы, также могут существовать блоки кодирования, чьи ширина и высоты равны 64×32, 32×64, 32×16, 16×32, 16×8, 8×16, 8×4, и 4×8.
Ссылаясь на Фиг. 3, для данных 310 изображения, чье разрешение равно 1920×1080, размер максимального блока кодирования устанавливается на 64×64, и максимальная глубина устанавливается на 2.
Для данных 320 изображения, чье разрешение равняется 1920×1080, размер максимального блока кодирования устанавливается на 64×64, и максимальная глубина устанавливается на 3. Для данных 330 изображения, чье разрешение равняется 352×288, размер максимального блока кодирования устанавливается на 16×16, и максимальная глубина устанавливается на 1.
Когда разрешение является высоким или величина данных является большой, максимальный размер блока кодирования может быть относительно большим, чтобы увеличивать коэффициент сжатия и точно отражать характеристики изображения. Соответственно, для данных 310 и 320 изображения, имеющих более высокое разрешение, чем данные 330 изображения, 64×64 может выбираться как размер максимального блока кодирования.
Максимальная глубина показывает полное количество слоев в иерархических блоках кодирования. Так как максимальная глубина данных 310 изображения равняется 2, блок 315 кодирования данных 310 изображения может включать в себя максимальный блок кодирования, чей размер более длинной оси равняется 64, и подблоки кодирования, чьи размеры более длинных осей равняются 32 и 16, согласно увеличению глубины.
С другой стороны, так как максимальная глубина данных 330 изображения равняется 1, блок 335 кодирования данных 330 изображения может включать в себя максимальный блок кодирования, чей размер более длинной оси равняется 16, и блоки кодирования, чьи размеры более длинных осей равняются 8 и 4, согласно увеличению глубины.
Однако так как максимальная глубина данных 320 изображения равняется 3, блок 325 кодирования данных 320 изображения может включать в себя максимальный блок кодирования, чей размер более длинной оси равняется 64, и подблоки кодирования, чьи размеры более длинных осей равняются 32, 16, 8 и 4, согласно увеличению глубины. Так как изображение кодируется на основе более маленького подблока кодирования по мере того, как глубина увеличивается, текущий иллюстративный вариант осуществления является подходящим для кодирования изображения, включающего в себя больше минутных сцен.
Фиг. 4 является блок-схемой кодера 400 изображений на основе блока кодирования согласно одному иллюстративному варианту осуществления. Блок 410 внутреннего предсказания выполняет внутреннее предсказание над блоками предсказания внутреннего режима в текущем кадре 405, и блок 420 оценки движения и блок 425 компенсации движения выполняют внешнее предсказание и компенсацию движения над блоками предсказания внешнего режима посредством использования текущего кадра 405 и опорного кадра 495.
Остаточные значения генерируются на основе блоков предсказания, выводимых из блока 410 внутреннего предсказания, блока 420 оценки движения, и блока 425 компенсации движения, и затем выводятся как квантованные коэффициенты преобразования посредством прохождения через преобразователь 430 и блок 440 квантования.
Квантованные коэффициенты преобразования восстанавливаются в остаточные значения посредством прохождения через блок 460 обратного квантования и обратный преобразователь 470, подвергаются постобработке посредством прохождения через блок 480 удаления блочности и блок 490 контурной фильтрации, и затем выводятся как опорный кадр 495. Квантованные коэффициенты преобразования могут выводиться как битовый поток 455 посредством прохождения через энтропийный кодер 450.
Чтобы выполнять кодирование на основе способа кодирования согласно одному иллюстративному варианту осуществления, компоненты кодера 400 изображений, т.е. блок 410 внутреннего предсказания, блок 420 оценки движения, блок 425 компенсации движения, преобразователь 430, блок 440 квантования, энтропийный кодер 450, блок 460 обратного квантования, обратный преобразователь 470, блок 480 удаления блочности, и блок 490 контурной фильтрации, могут выполнять обработку кодирования изображений на основе максимального блока кодирования, подблоков кодирования согласно глубинам, блока предсказания, и блока преобразования.
Фиг. 5 является блок-схемой декодера 500 изображений на основе блока кодирования согласно одному иллюстративному варианту осуществления. Ссылаясь на Фиг. 5, осуществляется синтаксический разбор битового потока 505 посредством блока 510 синтаксического разбора, чтобы получать закодированные данные изображения, подлежащие декодированию, и информацию кодирования, которая необходима для декодирования. Закодированные данные изображения выводятся как обратным образом квантованные данные посредством прохождения через энтропийный декодер 520 и блок 530 обратного квантования, и восстанавливаются в остаточные значения посредством прохождения через обратный преобразователь 540. Остаточные значения восстанавливаются согласно блокам кодирования посредством добавления к результату внутреннего предсказания блока 550 внутреннего предсказания или результату компенсации движения блока 560 компенсации движения. Восстановленные блоки кодирования используются для предсказания следующих блоков кодирования или следующего кадра посредством прохождения через блок 570 удаления блочности и блок 580 контурной фильтрации.
Чтобы выполнять декодирование на основе способа декодирования согласно одному иллюстративному варианту осуществления, компоненты декодера 500 изображений, т.е. блок 510 синтаксического разбора, энтропийный декодер 520, блок 530 обратного квантования, обратный преобразователь 540, блок 550 внутреннего предсказания, блок 560 компенсации движения, блок 570 удаления блочности, и блок 580 контурной фильтрации, могут выполнять обработки декодирования изображения на основе максимального блока кодирования, подблоков кодирования согласно глубинам, блока предсказания, и блока преобразования.
В частности, блок 550 внутреннего предсказания и блок 560 компенсации движения определяют блок предсказания и режим предсказания в подблоке кодирования учитывая максимальный блок кодирования и глубину, и обратный преобразователь 540 выполняет обратное преобразование учитывая размер блока преобразования.
Фиг. 6 иллюстрирует максимальный блок кодирования, подблок кодирования и блок предсказания согласно одному иллюстративному варианту осуществления. Устройство 100 для кодирования изображения, проиллюстрированное на Фиг. 1, и устройство 200 для декодирования изображения, проиллюстрированное на Фиг. 2, используют иерархические блоки кодирования, чтобы выполнять кодирование и декодирование с учетом характеристик изображения. Максимальный блок кодирования и максимальная глубина могут адаптивно устанавливаться согласно характеристикам изображения или различным образом устанавливаться согласно требованиям пользователя.
На Фиг. 6, структура 600 иерархического блока кодирования имеет максимальный блок 610 кодирования, чья высота и ширина равняются 64 и максимальная глубина равняется 4. Глубина увеличивается вдоль вертикальной оси структуры 600 иерархического блока кодирования, и по мере того, как глубина увеличивается, высоты и ширины подблоков с 620 по 650 кодирования уменьшаются. Блоки предсказания максимального блока 610 кодирования и подблоки с 620 по 650 кодирования показаны вдоль горизонтальной оси структуры 600 иерархического блока кодирования.
Максимальный блок 610 кодирования имеет глубину, равную 0, и размер блока кодирования, т.е. высоту и ширину, равный 64×64. Глубина увеличивается вдоль вертикальной оси, и существует подблок 620 кодирования, чей размер равняется 32×32 и глубина равняется 1, подблок 630 кодирования, чей размер равняется 16×16 и глубина равняется 2, подблок 640 кодирования, чей размер равняется 8×8 и глубина равняется 3, и подблок 650 кодирования, чей размер равняется 4×4 и глубина равняется 4. Подблок 650 кодирования, чей размер равняется 4×4 и глубина равняется 4, является минимальным блоком кодирования, и минимальный блок кодирования может разделяться на блоки предсказания, каждый из которых меньше, чем минимальный блок кодирования.
Ссылаясь на Фиг. 6, примеры блока предсказания показаны вдоль горизонтальной оси согласно каждой глубине. То есть блок предсказания максимального блока 610 кодирования, чья глубина равняется 0, может быть блоком предсказания, чей размер равняется блоку 610 кодирования, т.е. 64×64, или блоком 612 предсказания, чей размер равняется 64×32, блоком 614 предсказания, чей размер равняется 32×64, или блоком 616 предсказания, чей размер равняется 32×32, который имеет размер, более маленький, чем блок 610 кодирования, чей размер равняется 64×64.
Блок предсказания блока 620 кодирования, чья глубина равняется 1 и размер равняется 32×32, может быть блоком предсказания, чей размер равняется блоку 620 кодирования, т.е. 32×32, или блоком 622 предсказания, чей размер равняется 32×16, блоком 624 предсказания, чей размер равняется 16×32, или блоком 626 предсказания, чей размер равняется 16×16, который имеет размер, более маленький, чем блок 620 кодирования, чей размер равняется 32×32.
Блок предсказания блока 630 кодирования, чья глубина равняется 2 и размер равняется 16×16, может быть блоком предсказания, чей размер равняется блоку 630 кодирования, т.е. 16×16, или блоком 632 предсказания, чей размер равняется 16×8, блоком 634 предсказания, чей размер равняется 8×16, или блоком 636 предсказания, чей размер равняется 8×8, который имеет размер, более маленький, чем блок 630 кодирования, чей размер равняется 16×16.
Блок предсказания блока 640 кодирования, чья глубина равняется 3 и размер равняется 8×8, может быть блоком предсказания, чей размер равняется блоку 640 кодирования, т.е. 8×8, или блоком 642 предсказания, чей размер равняется 8×4, блоком 644 предсказания, чей размер равняется 4×8, или блоком 646 предсказания, чей размер равняется 4×4, который имеет размер, более маленький, чем блок 640 кодирования, чей размер равняется 8×8.
В заключение, блок 650 кодирования, чья глубина равняется 4 и размер равняется 4×4, является минимальным блоком кодирования и блоком кодирования максимальной глубины, и блок предсказания блока 650 кодирования может быть блоком 650 предсказания, чей размер равняется 4×4, блоком 652 предсказания, имеющим размер 4×2, блоком 654 предсказания, имеющим размер 2×4, или блоком 656 предсказания, имеющим размер 2×2.
Фиг. 7 иллюстрирует блок кодирования и блок преобразования согласно одному иллюстративному варианту осуществления. Устройство 100 для кодирования изображения, проиллюстрированное на Фиг. 1, и устройство 200 для декодирования изображения, проиллюстрированное на Фиг. 2, выполняют кодирование и декодирование с самым максимальным блоком кодирования или с подблоками кодирования, которые являются равными или более маленькими, чем максимальный блок кодирования, разделенными из максимального блока кодирования. В кодировании и обработке декодирования, размер блока преобразования для преобразования может выбираться, чтобы не быть более большим, чем размер соответствующего блока кодирования. Например, ссылаясь на Фиг. 7, когда текущий блок 710 кодирования имеет размер 64×64, преобразование может выполняться с использованием блока 720 преобразования, имеющего размер 32×32.
Фиг. 8A-8D иллюстрируют формы разделения блока кодирования, блока предсказания и блока преобразования согласно одному иллюстративному варианту осуществления. Конкретно, Фиг. 8A и 8B иллюстрируют блок кодирования и блок предсказания согласно одному иллюстративному варианту осуществления.
Фиг. 8A показывает форму разделения, выбранную посредством устройства 100 для кодирования изображения, проиллюстрированного на Фиг. 1, чтобы кодировать максимальный блок 810 кодирования. Устройство 1