Способ и устройство для кодирования/декодирования вектора движения
Иллюстрации
Показать всеИзобретение описывает способ декодирования изображения. Технический результат - эффективное декодирование изображения. Способ декодирования изображения, причем способ содержит этапы, на которых: получают информацию режима предсказания текущего блока из битового потока; определяют кандидатов предсказателя вектора движения среди векторов движения соседних блоков, смежных с текущим блоком, определяют предсказатель вектора движения текущего блока среди кандидатов предсказателя вектора движения; и получают вектор движения текущего блока на основании предсказателя вектора движения и вектора разности между вектором движения текущего блока и предсказателем вектора движения текущего блока, при этом изображение иерархически разделяется из множества максимальных блоков кодирования в соответствии с информацией о максимальном размере блока кодирования в блоки кодирования закодированных глубин в соответствии с глубинами, при этом блок кодирования текущей глубины представляет собой один из прямоугольных блоков данных, полученных в результате разделения блока кодирования верхней глубины, и при этом блок кодирования текущей глубины разделяется на блоки кодирования нижней глубины в независимости от соседних блоков кодирования. 2 з.п. ф-лы, 15 ил.
Реферат
Область техники, к которой относится изобретение
Устройства и способы, совместимые с иллюстративными вариантами осуществления, имеющие отношение к способу и устройству для кодирования вектора движения и, в частности, к способу и устройству для кодирования предсказателя вектора движения текущего блока.
Уровень техники
Кодек, такой как стандарт усовершенствованного кодирования видео группы экспертов по кинематографии MPEG-4 H.264/MPEG-4 AVC, использует векторы движения ранее закодированных блоков, смежных с текущим блоком, для предсказания вектора движения текущего блока. Таким образом, среднее значение векторов движения ранее закодированных блоков, смежных с левой, верхней и верхней правой сторонами текущего блока, используется в качестве предсказателя вектора движения текущего блока.
Раскрытие изобретения
Иллюстративные варианты осуществления обеспечивают способ и устройство для кодирования и декодирования вектора движения и машиночитаемый носитель, хранящий машиночитаемую программу для исполнения способа.
В соответствии с настоящим документом вектор движения эффективно кодируется на основе более точного предсказателя вектора движения.
Краткое описание чертежей
Упомянутые выше и/или другие аспекты изобретения станут более понятны посредством подробного описания иллюстративных вариантов осуществления со ссылкой на приложенные чертежи.
Фиг. 1 - блок-схема устройства для кодирования изображения в соответствии с иллюстративным вариантом осуществления;
Фиг. 2 - блок-схема устройства для декодирования изображения в соответствии с иллюстративным вариантом осуществления;
Фиг. 3 иллюстрирует иерархические блоки кодирования в соответствии с иллюстративным вариантом осуществления;
Фиг. 4 - блок-схема кодера изображения на основе блока кодирования в соответствии с иллюстративным вариантом осуществления;
Фиг. 5 - блок-схема декодера изображения на основе блока кодирования в соответствии с иллюстративным вариантом осуществления;
Фиг. 6 иллюстрирует максимальный блок кодирования, подблок кодирования и блок предсказания в соответствии с иллюстративным вариантом осуществления;
Фиг. 7 иллюстрирует блок кодирования и блок преобразования в соответствии с иллюстративным вариантом осуществления;
Фиг. 8A и 8B иллюстрируют формы разделения блока кодирования, блока предсказания и блока преобразования в соответствии с иллюстративным вариантом осуществления;
Фиг. 9 - блок-схема устройства для кодирования вектора движения в соответствии с иллюстративным вариантом осуществления;
Фиг. 10A и 10B иллюстрируют потенциальные предсказатели векторов движения явного режима в соответствии с иллюстративным вариантом осуществления;
Фиг. 11A-11C иллюстрируют потенциальные предсказатели векторов движения явного режима в соответствии с иллюстративным вариантом осуществления;
Фиг. 12 иллюстрирует способ формирования предсказателей векторов движения в неявном режиме в соответствии с иллюстративным вариантом осуществления;
Фиг. 13 - блок-схема устройства для декодирования вектора движения в соответствии с иллюстративным вариантом осуществления;
Фиг. 14 - блок-схема последовательности операций способа кодирования вектора движения в соответствии с иллюстративным вариантом осуществления; и
Фиг. 15 - блок-схема последовательности операций способа декодирования вектора движения в соответствии с иллюстративным вариантом осуществления.
Осуществление изобретения
В соответствии с аспектом иллюстративного варианта осуществления, обеспечен способ кодирования вектора движения текущего блока, способ содержит этапы, на которых: выбирают в качестве режима кодирования информации о предсказателе вектора движения текущего блока первый режим, в котором кодируется информация, указывающая предсказатель вектора движения, по меньшей мере, из одного предсказателя вектора движения, или второй режим, в котором кодируется информация, указывающая формирование предсказателя вектора движения на основе блоков или пикселей, включенных в ранее закодированную область, смежную с текущим блоком; определяют предсказатель вектора движения текущего блока в соответствии с выбранным режимом и кодируют информацию о предсказателе вектора движения текущего блока; и кодируют вектор разности между вектором движения текущего блока и предсказателем вектора движения текущего блока.
Выбор первого режима или второго режима может включать в себя этап, на котором выбирают первый режим или второй режим на основе глубины, указывающей степень уменьшения от размера максимального блока кодирования текущего изображения или секции до размера текущего блока.
Выбор первого режима или второго режима может включать в себя этап, на котором выбирают первый режим или второй режим в блоке текущего изображения или секции, включающих в себя текущий блок.
Выбор первого режима или второго режима может включать в себя этап, на котором выбирают первый режим или второй режим на основе того, закодирован ли текущий блок в режиме пропуска.
По меньшей мере, один предсказатель вектора движения может включать в себя первый вектор движения блока, смежный с левой стороной текущего блока, второй вектор движения блока, смежный с верхней стороной текущего блока, и третий вектор движения блока, смежный с верхней правой стороной текущего блока.
По меньшей мере, один предсказатель вектора движения может дополнительно включать в себя среднее значение первого вектора движения, второго вектора движения и третьего вектора движения.
По меньшей мере, один предсказатель вектора движения может дополнительно включать в себя предсказатель вектора движения, сформированный на основе вектора движения блока, расположенного аналогично с текущим блоком в опорном изображении, и временного расстояния между опорным изображением и текущим изображением.
Информация, указывающая формирование предсказателя вектора движения на основе блоков или пикселей, включенных в ранее закодированную область, смежную с текущим блоком, может представлять собой информацию, указывающую формирование предсказателя вектора движения текущего блока на основе среднего значения первого вектора движения блока, смежного с левой стороной текущего блока, второго вектора движения блока, смежного с верхней стороной текущего блока, и третьего вектора движения блока, смежного с верхней правой стороной текущего блока.
Информация, указывающая формирование предсказателя вектора движения на основе блоков или пикселей, включенных в ранее закодированную область, смежную с текущим блоком, может представлять собой информацию, указывающую формирование предсказателя вектора движения текущего блока на основе вектора движения, сформированного посредством поиска опорного изображения с использованием пикселей, включенных в ранее закодированную область, смежную с текущим блоком.
В соответствии с аспектом другого иллюстративного варианта осуществления обеспечено устройство для кодирования вектора движения текущего блока, устройство содержит: предсказатель, который выбирает в качестве режима кодирования информации о предсказателе вектора движения текущего блока первый режим, в котором кодируется информация, указывающая предсказатель вектора движения, по меньшей мере, из одного предсказателя вектора движения, или второй режим, в котором кодируется информация, указывающая формирование предсказателя вектора движения на основе блоков или пикселей, включенных в ранее закодированную область, смежную с текущим блоком, и который определяет предсказатель вектора движения текущего блока на основе выбранного режима; первый кодер, который кодирует информацию о предсказателе вектора движения текущего блока, определенную на основе выбранного режима; и второй кодер, который кодирует вектор разности между вектором движения текущего блока и предсказателем вектора движения текущего блока.
В соответствии с аспектом другого иллюстративного варианта осуществления обеспечен способ декодирования вектора движения текущего блока, способ содержит этапы, на которых: декодируют информацию о предсказателе вектора движения текущего блока, закодированную в соответствии с режимом, выбранному из первого режима и второго режима; декодируют вектор разности между вектором движения текущего блока и предсказателем вектора движения текущего блока; формируют предсказатель вектора движения текущего блока на основе декодированной информации о предсказателе вектора движения текущего блока; и восстанавливают вектор движения текущего блока на основе предсказателя вектора движения и вектора разности, причем первый режим представляет собой режим, в котором кодируется информация, указывающая предсказатель вектора движения, по меньшей мере, из одного предсказателя вектора движения, и второй режим представляет собой режим, в котором кодируется информация, указывающая формирование предсказателя вектора движения на основе блоков или пикселей, включенных в ранее декодированную область, смежную с текущим блоком.
В соответствии с аспектом другого иллюстративного варианта осуществления обеспечено устройство для декодирования вектора движения текущего блока, устройство содержит: первый декодер, который декодирует информацию о предсказателе вектора движения текущего блока, закодированную в соответствии с режимом, выбранным из первого режима и второго режима; второй декодер, который декодирует вектор разности между вектором движения текущего блока и предсказателем вектора движения текущего блока; предсказатель, который формирует предсказатель вектора движения текущего блока на основе декодированной информации о предсказателе вектора движения текущего блока; и блок восстановления вектора движения, который восстанавливает вектор движения текущего блока на основе предсказателя вектора движения и вектора разности, причем первый режим представляет собой режим, в котором кодируется информация, указывающая предсказатель вектора движения, по меньшей мере, из одного предсказателя вектора движения, и второй режим представляет собой режим, в котором кодируется информация, указывающая формирование предсказателя вектора движения на основе блоков или пикселей, включенных в ранее декодированную область, смежную с текущим блоком.
В соответствии с аспектом другого иллюстративного варианта осуществления обеспечен машиночитаемый носитель, хранящий машиночитаемую программу для исполнения способа кодирования вектора движения и способа декодирования вектора движения.
Вариант осуществления изобретения
Теперь со ссылкой на сопроводительные чертежи, на которых аналогичные номера для ссылок всюду относятся к аналогичным элементам, будут более полно описаны иллюстративные варианты осуществления. Такие выражения, как “по меньшей мере, один из”, предшествующие списку элементов, изменяют весь список элементов и не изменяют отдельные элементы списка. В настоящем описании "изображение" может обозначать неподвижное изображение для видеоинформации или динамическое изображения, то есть непосредственно саму видеоинформацию.
Фиг. 1 является блок-схемой устройства 100 для кодирования изображения в соответствии с иллюстративным вариантом осуществления. Как показано на Фиг. 1, устройство 100 включает в себя модуль 110 деления на максимальные кодовые блоки, модуль 120 определения глубины кодирования, кодер 130 данных изображения и кодер 140 информации кодирования.
Модуль 110 деления на максимальные блоки кодирования может разделить текущее изображение или секцию на основе максимального блока кодирования, который представляет собой блок кодирования самого большого размера. Таким образом, модуль 110 деления на максимальные блоки кодирования может разделить текущее изображение или секцию для получения, по меньшей мере, одного максимального блока кодирования.
В соответствии с иллюстративным вариантом осуществления блок кодирования может быть представлен с использованием максимального блока кодирования и глубины. Как описано выше, максимальный блок кодирования указывает блок кодирования, имеющий самый большой размер среди блоков кодирования текущего изображения, и глубина указывает размер подблока кодирования, полученного посредством иерархического уменьшения блока кодирования. По мере увеличения глубины блок кодирования может уменьшаться от максимального блока кодирования до минимального блока кодирования, причем глубина максимального блока кодирования определена как минимальная глубина, и глубина минимального блока кодирования определена как максимальная глубина. Поскольку размер блока кодирования уменьшается от максимального блока кодирования по мере увеличения глубины, подблок кодирования с глубиной с порядковым номером k может включать в себя множество подблоков кодирования с глубиной с порядковым номером (k+n) (где k и n - целые числа, равные или больше 1).
В соответствии с увеличением размера изображения, которое будет закодировано, кодирование изображения в более больших блоках кодирования может привести к более высокой степени сжатия изображения. Однако если более большой блок кодирования фиксирован, изображение не может быть эффективно закодировано посредством отражения постоянно изменяющихся характеристик изображения.
Например, при кодировании гладкой области, такой как море или небо, чем больше блок кодирования, тем больше может увеличиться степень сжатия. Однако при кодировании сложной области, такой как люди или здания, чем меньше блок кодирования, тем больше может увеличиться степень сжатия.
Согласно этому, в соответствии с иллюстративным вариантом осуществления, для каждого изображения или секции устанавливаются разные максимальные блоки кодирования изображения и разные максимальные глубины. Поскольку максимальная глубина обозначает максимальное количество раз, в которое может уменьшиться блок кодирования, размер каждого минимального блока кодирования, включенного в максимальный блок кодирования изображения, может быть переменным образом установлен в соответствии с максимальной глубиной.
Модуль 120 определения глубины кодирования определяет максимальную глубину. Например, максимальная глубина может быть определена на основе вычисления зависимости искажений от скорости передачи (R-D). Кроме того, максимальная глубина может быть определена по-разному для каждого изображения или секции или для каждого максимального блока кодирования. Определенная максимальная глубина предоставляется кодеру 140 информации кодирования, и данные изображения в соответствии с максимальным блоком кодирования предоставляются кодеру 130 данных изображения.
Максимальная глубина обозначает блок кодирования, имеющий самый маленький размер, который может быть включен в максимальный блок кодирования, то есть минимальный блок кодирования. Другими словами, максимальный блок кодирования может быть разделен на подблоки кодирования, имеющие разные размеры в соответствии с разными глубинами. Это будет описано подробно позже со ссылкой на Фиг. 8A и 8B. Кроме того, подблоки кодирования, имеющие разные размеры, которые включены в максимальный блок кодирования, могут быть предсказаны или преобразованы на основе блоков обработки, имеющих разные размеры. Другими словами, устройство 100 может выполнить множество операций по обработке для кодирования изображения на основе блоков обработки, имеющих разные размеры и разные формы. Чтобы закодировать данные изображения, выполняются такие операции по обработке, как предсказание, преобразование и статистическое кодирование, причем блоки обработки, имеющие одинаковый размер, могут использоваться для каждой операции, или блоки обработки, имеющие разные размеры, могут использоваться для каждой операции.
Например, устройство 100 может выбрать блок обработки, который отличается от блока кодирования, для предсказания блока кодирования. Когда размер блока кодирования составляет 2N×2N (где N - положительное целое число), блоки обработки для предсказания могут составлять 2N×2N, 2N×N, N×2N и N×N. Другими словами, предсказание движения может быть выполнено на основе блока обработки, имеющего форму, посредством которой, по меньшей мере, либо высота, либо ширина блока кодирования разделяется пополам. В дальнейшем блок обработки, который является основой предсказания, упоминается как блок предсказания.
Режим предсказания может быть, по меньшей мере, одним режимом из режима с интра-кодированием, режима с интер-кодированием, и режима пропуска, и конкретный режим предсказания может быть выполнен только для блока предсказания, имеющего конкретный размер или форму. Например, режим с интра-кодированием может быть выполнен только для блоков предсказания, имеющих размеры 2N×2N и N×N, форма которых представляет собой квадрат. Кроме того, режим пропуска может быть выполнен только для блока предсказания, имеющего размер 2N×2N. Если в блоке кодирования существует множество блоков предсказания, после выполнения предсказания для каждого блока предсказания может быть выбран режим предсказания с наименьшим количеством ошибок кодирования.
В качестве альтернативы, устройство 100 может выполнять частотное преобразование над данными изображения на основе блока обработки, имеющего размер, отличающийся от размера блока кодирования. Для частотного преобразования в блоке кодирования частотное преобразование может быть выполнено на основе блока обработки, имеющего размер, равный или меньше, чем размер блока кодирования. В дальнейшем блок обработки, который является основой частотного преобразования, упоминается как блок преобразования. Частотное преобразование может представлять собой дискретное косинусное преобразование (DCT) или преобразование Карунена-Лоэва (KLT).
Модуль 120 определения глубины кодирования может определять подблоки кодирования, включенные в максимальный блок кодирования, с использованием оптимизации зависимости искажений от скорости передачи (R-D) на основе лагранжева множителя. Другими словами, модуль 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. Например, модуль 220 извлечения информации кодирования может извлечь описанную выше информацию из заголовка текущего изображения. Информация о форме разделения и информация о режиме кодирования представляются декодеру 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, в соответствии с увеличением глубины.
Однако, поскольку максимальная глубина вторых 320 данных изображения равна 3, блок 325 кодирования данных 320 изображения может включать в себя максимальный блок кодирования, размер по более длинной оси которого составляет 64, и подблоки кодирования, размеры по более длинной оси которых составляют 32, 16 и 8, в соответствии с увеличением глубины. Поскольку изображение закодировано на основе меньшего подблока кодирования по мере увеличения глубины, иллюстративные варианты осуществления являются подходящими для кодирования изображения, включающего в себя сцены с длительностью больше минуты.
Фиг. 4 является блок-схемой кодера 400 изображения на основе блока кодирования в соответствии с иллюстративным вариантом осуществления. Как показано на Фиг. 4, модуль 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 кодирования и устройство 200 декодирования в соответствии с одним или более иллюстративными вариантами осуществления используют иерархические блоки кодирования для выполнения кодирования и декодирования с учетом характеристик изображения. Максимальный блок кодирования и максимальная глубина могут быть адаптивно установлены в соответствии с характеристиками изображения или переменным образом установлены в соответствии с требованиями пользователя.
Как показано на Фиг. 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, является минимальным блоком кодирования. Минимальный блок 650 кодирования может быть разделен на блоки предсказания, каждый из которых является меньше минимального блока кодирования.
В иллюстративном варианте осуществления, показанном на Фиг. 6, примеры блока предсказания показаны вдоль горизонтальной оси в соответствии с каждой глубиной. Таким образом, блок предсказания максимального блока 610 кодирования, глубина которого равна 0, может представлять собой блок предсказания, размер которого равен блоку 610 кодирования, то есть составляет 64×64, или блок 612 предсказания, размер которого составляет 64×32, блок 614 предсказания, размер которого составляет 32×64, или блок 616 предсказания, размер которого составляет 32×32,которые имеют размер, меньший чем блок 610 кодирования, размер которого составляет 64×64.
Блок предсказания блока 610 кодирования, глубина которого равна 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 кодирования и устройство 200 декодирования в соответствии с одним или более иллюстративными вариантами осуществления выполняют кодирование непосредственно с максимальным блоком кодирования или с подблоками кодирования, которые равны или меньше максимального блока кодирования и разделены из максимального блока кодирования.
В процессе кодирования размер блока преобразования для частотного преобразования выбирается таким образом, чтобы он был не больше, чем размер соответствующего блока кодирования. Например, когда текущий блок 710 кодирования имеет размер 64×64, частотное преобразование может быть выполнено с использованием блока 720 преобразования, имеющего размер 32×32.
Фиг. 8A и 8B иллюстрируют формы разделения блока кодирования, блока предсказания и блока преобразования в соот