СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО С УЧЕТОМ ПОРЯДКА СКАНИРОВАНИЯ БЛОКОВ КОДИРОВАНИЯ, ИМЕЮЩИХ ИЕРАРХИЧЕСКУЮ СТРУКТУРУ, И СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ВИДЕО С УЧЕТОМ ПОРЯДКА СКАНИРОВАНИЯ БЛОКОВ КОДИРОВАНИЯ, ИМЕЮЩИХ ИЕРАРХИЧЕСКУЮ СТРУКТУРУ
METHOD AND APPARATUS FOR ENCODING VIDEO BASED ON SCANNING ORDER OF HIERARCHICAL ENCODING UNITS, AND METHOD AND APPARATUS FOR DECODING VIDEO BASED ON SCANNING ORDER OF HIERARCHICAL ENCODING UNITS

Область техники, к которой относится изобретение
Настоящее изобретение относится к кодированию и декодированию видео.
Уровень техники
По мере продолжения разработки и поставки аппаратных средств для воспроизведения и хранения видеоконтента высокого разрешения или высокого качества продолжает возрастать необходимость в видеокодеке для эффективного кодирования или декодирования видеоконтента высокого разрешения или высокого качества. В видеокодеке из уровня техники, видео кодируется согласно ограниченному способу кодирования, основанному на макроблоке, имеющем заданный размер. В дополнение, в видеокодеке из уровня техники, видеоданные кодируются и декодируются посредством сканирования макроблоков согласно растровому способу.
Раскрытие изобретения
Устройства и способы, соответствующие примерным вариантам осуществления, предусматривают порядок сканирования данных, ассоциированный с кодированием и декодированием видео, и окрестное взаимное расположение между данными.
Решение задачи
Согласно аспекту примерного варианта осуществления, предложен способ декодирования видео, способ включает в себя: прием и синтаксический анализ битового потока кодированного видео; извлечение из битового потока кодированных данных изображения текущего кадра кодированного видео, назначенных в максимальный блок кодирования текущего кадра, и информации о глубине кодирования и режиме кодирования согласно максимальному блоку кодирования, при этом максимальный блок кодирования является блоком кодирования текущего кадра, имеющим максимальный размер; и декодирование кодированных данных изображения для максимального блока кодирования на основании информации о глубине кодирования и режиме кодирования для максимального блока кодирования, принимая во внимание растровый порядок сканирования для максимального блока кодирования и зигзагообразный порядок сканирования для блоков кодирования максимального блока кодирования по глубинам, при этом максимальный блок кодирования пространственно разбивается на по меньшей мере один блок кодирования согласно по меньшей мере одной глубине, и по мере того, как глубина возрастает от самой верхней глубины, максимальный блок кодирования иерархически разбивается от максимального блока кодирования, соответствующего самой верхней глубине, до по меньшей мере одного минимального блока кодирования, соответствующего самой нижней глубине, из по меньшей мере одной глубины, при этом по меньшей мере один блок кодирования является более глубоким блоком кодирования.
Полезные эффекты изобретения
Применимость информации об окрестности может быть проверена, и к информации об окрестности можно обращаться, чтобы декодировать заданный блок кодирования, принимая во внимание порядок сканирования различных иерархических блоков данных, такой как растровый порядок сканирования для максимальных блоков кодирования или блоков прогнозирования, либо зигзагообразный порядок сканирования или растровый порядок сканирования для минимальных блоков. Окрестная информация согласно примерному варианту осуществления может включать в себя информацию о блоках данных, расположенных на левой нижней стороне текущего блока данных.
Краткое описание чертежей
Вышеприведенные и/или другие аспекты будут более понятными из подробного описания их примерных вариантов осуществления со ссылкой на сопровождающие чертежи, на которых:
фиг. 1 - структурная схема устройства для кодирования видео согласно примерному варианту осуществления;
фиг. 2 - структурная схема устройства для декодирования видео согласно примерному варианту осуществления;
фиг. 3 - схема для описания концепции блоков кодирования согласно примерному варианту осуществления;
фиг. 4 - структурная схема кодировщика изображения, основанного на блоках кодирования, согласно примерному варианту осуществления;
фиг. 5 - структурная декодера изображения, основанного на блоках кодирования, согласно примерному варианту осуществления;
фиг. 6 - схема, иллюстрирующая более глубокие блоки кодирования по глубинам и блокам прогнозирования согласно примерному варианту осуществления;
фиг. 7 - схема для описания взаимного расположения между блоком кодирования и блоками преобразования согласно примерному варианту осуществления;
фиг. 8 - схема для описания информации о кодировании блоков кодирования, соответствующих глубине кодирования, согласно примерному варианту осуществления;
фиг. 9 - схема более глубоких блоков кодирования по глубинам, согласно примерному варианту осуществления;
фиг. с 10 по 12 - схемы для описания взаимного расположения между блоками кодирования, блоками прогнозирования и блоками преобразования согласно примерному варианту осуществления;
фиг. 13 - схема для описания взаимного расположения между блоком кодирования, блоком прогнозирования и блоком преобразования согласно режиму кодирования, по примерному варианту осуществления;
фиг. 14 иллюстрирует растровый порядок сканирования максимального блока кодирования согласно примерному варианту осуществления;
фиг. 15 иллюстрирует растровый порядок сканирования минимальных блоков согласно примерному варианту осуществления;
фиг. 16 иллюстрирует зигзагообразный порядок сканирования минимальных блоков согласно примерному варианту осуществления;
фиг. 17 иллюстрирует зависимость между местоположениями и индексами сканирования блока кодирования, блока прогнозирования, раздела и блока преобразования согласно примерному варианту осуществления;
фиг. 18 иллюстрирует индекс сканирования блока кодирования согласно примерному варианту осуществления;
фиг. 19 иллюстрирует порядок сканирования блоков кодирования по индексам сканирования блоков кодирования, согласно примерному варианту осуществления;
фиг. 20 иллюстрирует индексы сканирования разделов по типам разделов согласно примерному варианту осуществления;
фиг. 21 иллюстрирует блоки данных, которые могут использоваться в качестве информации об окрестности текущего блока данных, согласно примерному варианту осуществления;
фиг. 22 иллюстрирует максимальные блоки кодирования, смежные с текущим максимальным блоком кодирования, согласно примерному варианту осуществления;
фиг. 23 иллюстрирует макроблоки, удовлетворяющие растровому способу сканирования;
фиг. 24 иллюстрирует текущий блок прогнозирования, удовлетворяющие зигзагообразному порядку сканирования, согласно примерному варианту осуществления;
фиг. 25 иллюстрирует минимальные блоки, смежные с текущим разделом, согласно примерному варианту осуществления;
фиг. 26 - схема для пояснения способа прогнозирования вектора движения с использованием информации об окрестности, согласно примерному варианту осуществления;
фиг. 27 иллюстрирует способ интерполяции, использующий информацию об окрестности, согласно примерному варианту осуществления настоящего изобретения;
фиг. 28 - блок-схема последовательности операций способа, иллюстрирующая способ кодирования видео посредством использования информации об окрестности, согласно примерному варианту осуществления; и
фиг. 29 - блок-схема последовательности операций способа, иллюстрирующая способ декодирования видео посредством использования информации об окрестности, согласно примерному варианту осуществления.
Осуществление изобретения
Согласно аспекту примерного варианта осуществления, предложен способ декодирования видео, причем способ включает в себя: прием и синтаксический анализ битового потока кодированного видео; извлечение, из битового потока, кодированных данных изображения текущего кадра кодированного видео, назначенных в максимальный блок кодирования текущего кадра, и информации о глубине кодирования и режиме кодирования согласно максимальному блоку кодирования, при этом максимальный блок кодирования является блоком кодирования текущего кадра, имеющим максимальный размер; и декодирование кодированных данных изображения для максимального блока кодирования на основании информации о глубине кодирования и режиме кодирования для максимального блока кодирования, принимая во внимание растровый порядок сканирования для максимального блока кодирования и зигзагообразный порядок сканирования для блоков кодирования максимального блока кодирования по глубинам, при этом максимальный блок кодирования пространственно разбивается на по меньшей мере один блок кодирования согласно по меньшей мере одной глубине, и по мере того, как глубина возрастает от самой верхней глубины, максимальный блок кодирования иерархически разбивается от максимального блока кодирования, соответствующего самой верхней глубине, до по меньшей мере одного минимального блока кодирования, соответствующего самой нижней глубине, из по меньшей мере одной глубины, при этом по меньшей мере один блок кодирования является более глубоким блоком кодирования.
Декодирование кодированных данных изображения может включать в себя анализ иерархической структуры по меньшей мере одного более глубокого блока кодирования для максимального блока кодирования посредством использования информации о глубине кодирования и режиме кодирования для максимального блока кодирования.
Декодирование кодированных данных изображения может включать в себя поиск местоположения максимального блока кодирования на основании адреса максимального блока кодирования согласно растровому порядку сканирования.
Декодирование кодированных данных изображения может включать в себя поиск местоположения минимального блока на основании индекса минимального блока согласно зигзагообразному порядку сканирования для максимального блока кодирования.
Декодирование кодированных данных изображения может включать в себя поиск местоположения минимального блока на основании индекса минимального блока согласно растровому порядку сканирования для максимального блока кодирования.
Декодирование кодированных данных изображения может включать в себя взаимное преобразование индекса минимального блока согласно зигзагообразному порядку сканирования и индекса минимального блока согласно растровому порядку сканирования друг в друга, для максимального блока кодирования.
Местоположение максимального блока кодирования может быть выражено в качестве местоположения пикселя, расположенного на левом верхнем краю максимального блока кодирования, то есть относительно местоположения отсчета, расположенного на левом верхнем краю текущего кадра.
Местоположение минимального блока может быть выражено в качестве местоположения пикселя, расположенного на левом верхнем краю минимального блока, то есть относительно местоположения отсчета, расположенного на левом верхнем краю максимального блока кодирования.
При декодировании кодированных данных изображения, к информации об окрестности можно обращаться посредством проверки применимости информации об окрестности, принимая во внимание порядок сканирования максимального блока кодирования, блока прогнозирования, раздела и минимального блока.
Декодирование кодированных данных изображения может включать в себя проверку применимости максимального блока кодирования.
В случае, ином чем случай, при котором максимальный блок кодирования не включен в текущий кадр, случай, где максимальный блок кодирования не включен в текущую серию последовательных макроблоков, и случай, где адрес максимального блока кодирования находится позже адреса текущего максимального блока кодирования, в показателях порядка сканирования, могут использоваться данные, соответствующие максимальному блоку кодирования.
Декодирование кодированных данных изображения может включать в себя проверку применимости по меньшей мере одного более глубокого блока кодирования, включенного в максимальный блок кодирования.
В случае, ином чем случай, при котором максимальный блок кодирования не включен в текущий кадр, случай, где максимальный блок кодирования не включен в текущую серию последовательных макроблоков, случай, где адрес максимального блока кодирования находится позже, чем адрес текущего максимального блока, кодирования в показателях порядка сканирования, и случае, где индекс минимального блока на левом верхнем краю более глубокого блока кодирования согласно зигзагообразному порядку сканирования находится позже в показателях порядка сканирования, чем индекс минимального блока, согласно зигзагообразному порядку сканирования, могут использоваться данные, соответствующие более глубокому блоку кодирования.
Декодирование кодированных данных изображения может включать в себя проверку по меньшей мере одного максимального блока кодирования, смежного с максимальным блоком кодирования, и применимости по меньшей мере одного смежного максимального блока кодирования.
По меньшей мере один максимальный блок кодирования, смежный с максимальным блоком кодирования, может включать в себя по меньшей мере один из максимального блока кодирования на левой стороне максимального блока кодирования, максимального блока кодирования на верхней стороне максимального блока кодирования, максимального блока кодирования на правой верхней стороне максимального блока кодирования и максимального блока кодирования на левой верхней стороне максимального блока кодирования.
Декодирование кодированных данных изображения дополнительно может включать в себя проверку по меньшей мере одного минимального блока, смежного с текущим блоком прогнозирования, включенному в максимальный блок кодирования, и применимости по меньшей мере одного смежного минимального блока.
По меньшей мере один минимальный блок, смежный с текущим блоком прогнозирования, может включать в себя по меньшей мере один из минимального блока на левой стороне текущего блока прогнозирования, минимального блока на верхней стороне текущего блока прогнозирования, минимального блока на правой верхней стороне текущего блока прогнозирования, минимального блока на левой верхней стороне текущего блока прогнозирования и минимального блока на левой нижней стороне текущего блока прогнозирования.
Декодирование кодированных данных изображения дополнительно может включать в себя проверку местоположения и применимости по меньшей мере одной границы, смежной с максимальным блоком кодирования.
По меньшей мере одна граница, смежная с максимальным блоком кодирования, может включать в себя по меньшей мере один из максимального блока кодирования на левой стороне максимального блока кодирования, максимального блока кодирования на верхней стороне максимального блока кодирования, максимального блока кодирования на правой верхней стороне максимального блока кодирования и максимального блока кодирования на левой верхней стороне максимального блока кодирования.
Минимальный блок может быть назначен информацией о кодировании, включающей в себя по меньшей мере одну из информации о соответствующем более глубоком блоке кодирования, информации о разбиении соответствующего более глубокого блока кодирования на блок прогнозирования или раздел, и информации о режиме прогнозирования блока прогнозирования или раздела.
Декодирование кодированных данных изображения дополнительно может включать в себя проверку применимости более глубокого блока кодирования или блока прогнозирования, который включает в себя минимальный блок, на основании информации о кодировании, назначенной в минимальный блок.
Максимальный блок кодирования может включать в себя множество блоков кодирования, и когда первый блок кодирования, из множества блоков кодирования, который является смежным со вторым блоком кодирования, из множества блоков кодирования, сканируется позже, чем второй блок кодирования согласно растровому порядку сканирования, и первый блок кодирования сканируется раньше, чем второй блок кодирования, согласно зигзагообразному порядку сканирования, к первому блоку кодирования можно обращаться для декодирования второго блока кодирования.
Когда первый блок кодирования находится на левой нижней стороне второго блока кодирования, к первому блоку кодирования можно обращаться для декодирования второго блока кодирования.
Когда первый блок кодирования находится на левой нижней стороне второго блока кодирования, к правой границе первого блока кодирования можно обращаться для декодирования второго блока кодирования.
Согласно аспекту еще одного примерного варианта осуществления, предложен способ кодирования видео, причем способ включает в себя: разбиение текущего кадра видео на максимальный блок кодирования; определение глубины кодирования для выдачи окончательного результата кодирования согласно по меньшей мере одной области разбиения, полученной разбиением области максимального блока кодирования по глубинам, кодированием по меньшей мере одной области разбиения на основании по меньшей мере одной глубины, которая возрастает пропорционально количеству раз, которое разбивается область максимального блока кодирования; и кодирование и выдачу данных изображения, кодированных на глубине кодирования, определенной для максимального блока кодирования, и информации о глубине кодирования и режиме кодирования, при этом кодирование выполняется, принимая во внимание растровый порядок сканирования для максимального блока кодирования и зигзагообразный порядок сканирования для по меньшей мере одного блока кодирования, включенного в максимальный блок кодирования.
В способе к информации об окрестности, включающей в себя блок данных, расположенный на левой нижней стороне текущего блока данных, можно обращаться для кодирования данных изображения, соответствующих текущему блоку данных.
Информация об окрестности может включать в себя максимальный блок кодирования на левой стороне максимального блока кодирования, максимальный блок кодирования на верхней стороне максимального блока кодирования, максимальный блок кодирования на правой верхней стороне максимального блока кодирования и максимальный блок кодирования на левой верхней стороне максимального блока кодирования.
Информация об окрестности может включать в себя минимальный блок на левой стороне текущего блока прогнозирования, минимальный блок на верхней стороне текущего блока прогнозирования, минимальный блок на правой верхней стороне текущего блока прогнозирования, минимальный блок на левой верхней стороне текущего блока прогнозирования и минимальный блок на левой нижней стороне текущего блока прогнозирования.
Информация об окрестности может включать в себя правую границу блока кодирования, расположенного на левой нижней стороне текущего блока прогнозирования.
Максимальный блок кодирования может включать в себя множество блоков кодирования, и когда первый блок кодирования, из множества блоков кодирования, который является смежным со вторым блоком кодирования, из множества блоков кодирования, сканируется позже, чем второй блок кодирования согласно растровому порядку сканирования, и первый блок кодирования сканируется раньше, чем второй блок кодирования, согласно зигзагообразному порядку сканирования, первый блок кодирования может использоваться в качестве информации об окрестности, которая используется для кодирования второго блока кодирования.
Первый блок кодирования может быть на левой нижней стороне второго блока кодирования.
Согласно аспекту еще одного примерного варианта осуществления, предложено устройство для декодирования видео, устройство включает в себя: приемник, который принимает и синтаксически анализирует битовый поток кодированного видео; выделитель данных изображения и информации о кодировании, который извлекает, из битового потока, кодированные данные изображения текущего кадра кодированного видео, назначенные в максимальный блок кодирования текущего кадра, и информацию о глубине кодирования и режиме кодирования согласно максимальному блоку кодирования, при этом максимальный блок кодирования является блоком кодирования текущего кадра, имеющим максимальный размер; и декодер данных изображения, который декодирует кодированные данные изображения для максимального блока кодирования на основании информации о глубине кодирования и режиме кодирования для максимального блока кодирования, принимая во внимание растровый порядок сканирования для максимального блока кодирования и зигзагообразный порядок сканирования для блоков кодирования по глубинам, при этом по мере того, как глубина возрастает от самой верхней глубины, максимальный блок кодирования иерархически разбивается от максимального блока кодирования, соответствующего самой верхней глубине, до минимальных блоков кодирования, соответствующих самой нижней глубине.
Согласно аспекту еще одного примерного варианта осуществления, предложено устройство для кодирования видео, устройство включает в себя: разделитель максимального блока кодирования, который разбивает текущий кадр видео на максимальный блок кодирования, определитель блока кодирования, который определяет глубину кодирования для выдачи окончательного результата кодирования согласно по меньшей мере одной области разбиения, полученной разбиением области максимального блока кодирования по глубинам, кодированием по меньшей мере одной области разбиения на основании глубины, которая возрастает пропорционально количеству раз, которое разбивает область максимального блока кодирования; и модуль вывода, который кодирует и выдает данные изображения, кодированные на глубине кодирования, определенной для максимального блока кодирования, и информацию о кодовой глубине и режиме кодирования, при этом кодирование выполняется, принимая во внимание растровый порядок сканирования для максимального блока кодирования и зигзагообразный порядок сканирования для по меньшей мере одного блока кодирования, включенного в максимальный блок кодирования.
Согласно аспекту еще одного примерного варианта осуществления, предложен машиночитаемый носитель записи, имеющий записанную на нем программу для выполнения способа декодирования видео.
Согласно аспекту еще одного примерного варианта осуществления, предложен машиночитаемый носитель записи, имеющий записанную на нем программу для выполнения способа кодирования видео.
Согласно аспекту еще одного примерного варианта осуществления, предложен способ декодирования видео, способ включает в себя: извлечение, из битового потока, кодированных данных изображения текущего кадра видео, назначенных в максимальный блок кодирования текущего кадра, и информации о глубине кодирования согласно максимальному блоку кодирования, при этом максимальный блок кодирования является блоком кодирования текущего кадра, имеющим максимальный размер; и декодирование кодированных данных изображения для максимального блока кодирования на основании информации о глубине кодирования, принимая во внимание растровый порядок сканирования для максимального блока кодирования и зигзагообразный порядок сканирования для блоков кодирования максимального блока кодирования по глубинам, при этом максимальный блок кодирования пространственно разбивается на по меньшей мере один блок кодирования согласно по меньшей мере одной глубине, и по мере того, как глубина возрастает от самой верхней глубины, максимальный блок кодирования иерархически разбивается от максимального блока кодирования, соответствующего самой верхней глубине, до по меньшей мере одного минимального блока кодирования, соответствующего самой нижней глубине, из по меньшей мере одной глубины, при этом по меньшей мере один блок кодирования является более глубоким блоком кодирования.
Вариант осуществления изобретения
В дальнейшем, примерные варианты осуществления будут более полно описаны со ссылкой на прилагаемые чертежи, на всем протяжении которых одинаковые номера ссылок указывают ссылкой на идентичные элементы. Выражения, такие как «по меньшей мере один из», перед списком элементов модифицируют весь список элементов, и не модифицируют отдельные элементы списка.
В дальнейшем блок кодирования представляет собой блок данных кодирования, в котором данные изображения закодированы на стороне кодировщика, и блоком данных кодирования, в котором кодированные данные изображения декодируются на стороне декодера, согласно примерным вариантам осуществления. К тому же, глубина кодирования указывает глубину, на которую закодирован блок кодирования.
В дальнейшем, «изображение» может обозначать неподвижное изображение для видео или движущееся изображение, то есть само видео.
Фиг. 1 - структурная схема устройства 100 кодирования видео согласно примерному варианту осуществления. Со ссылкой на фиг. 1, устройство 100 кодирования видео включает в себя разделитель 110 максимального блока кодирования, определитель 120 блока кодирования и модуль 130 вывода.
Разделитель 110 максимального блока кодирования может разбивать текущий кадр на основании максимального блока кодирования для текущего кадра изображения. Если текущий кадр является большим, чем максимальный блок кодирования, данные изображения текущего кадра могут разбиваться на по меньшей мере один максимальный блок кодирования. Максимальный блок кодирования согласно примерному варианту осуществления может быть блоком данных, имеющим размер 32x32, 64x64, 128x128, 256x256 и т.д., при этом формой блока данных является квадрат, имеющий ширину и высоту в качестве квадратов 2. Данные изображения могут выдаваться в определитель 120 блока кодирования согласно по меньшей мере одному максимальному блоку кодирования.
Блок кодирования согласно примерному варианту осуществления может характеризоваться максимальным размером и глубиной. Глубина обозначает количество раз, которое блок кодирования пространственно разбивает из максимального блока кодирования. Соответственно, по мере возрастания глубины блоки кодирования с большей глубиной могут разбиваться согласно глубинам от максимального блока кодирования до минимального блока кодирования. Глубина максимального блока кодирования является самой верхней глубиной, а глубина минимального блока кодирования является самой нижней глубиной. Поскольку размер блока кодирования, соответствующего каждой глубине, уменьшается по мере возрастания глубины максимального блока кодирования, блок кодирования, соответствующий верхней глубине, может включать в себя множество блоков кодирования, соответствующих более низким глубинам.
Как описано выше, данные изображения текущего кадра разбиваются на один или более максимальных блоков кодирования согласно максимальному размеру блока кодирования, и каждый из максимальных блоков кодирования может включать в себя более глубокие блоки кодирования, которые разбиты по глубинам. Поскольку максимальный блок кодирования согласно примерному варианту осуществления разбивается по глубинам, данные изображения пространственной области, включенные в максимальный блок кодирования, могут иерархически классифицироваться согласно глубинам.
Могут быть заданы максимальная глубина и максимальный размер блока кодирования, которые ограничивают суммарное количество раз, которое иерархически разбиваются высота и ширина максимального блока кодирования.
Определитель 120 блока кодирования кодирует по меньшей мере одну область разбиения, полученную разбиением области максимального блока кодирования по глубинам, и определяет глубину для вывода окончательно кодированных данных изображения в по меньшей мере одну область разбиения. Например, определитель 120 блока кодирования определяет глубину кодирования, кодируя данные изображения в более глубоких блоках кодирования по глубинам, согласно максимальному блоку кодирования текущего кадра, и выбирая глубину, имеющую меньшие ошибки кодирования. Таким образом, кодированные данные изображения блока кодирования, соответствующего определенной глубине кодирования, выдаются определителем 120 блока кодирования. К тому же блоки кодирования, соответствующие глубине кодирования, могут рассматриваться в качестве кодированных блоков кодирования.
Определенная глубина кодирования и кодированные данные изображения согласно определенной глубине кодирования выдаются в модуль 130 вывода.
Данные изображения в максимальном блоке кодирования кодируются на основании более глубоких блоков кодирования, соответствующих по меньшей мере одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображения сравниваются на основании каждого из более глубоких блоков кодирования. Глубина, имеющая меньшие ошибки кодирования, может быть выбрана после сравнения ошибок кодирования более глубоких блоков кодирования. По меньшей мер одна глубина кодирования может выбираться для каждого максимального блока кодирования.
Размер максимального блока кодирования разбивается по мере того, как блок кодирования иерархически разбивается по глубинам, и по мере того, как увеличивается количество блоков кодирования. К тому же, если блоки кодирования соответствуют одной и той же глубине в одном максимальном блоке кодирования, отдельно определяется, следует ли разбивать каждый из блоков кодирования, соответствующих одной и той же глубине, на более низкие глубины, посредством измерения ошибки кодирования данных изображения каждого блока кодирования. Соответственно, даже когда данные изображения включены в один максимальный блок кодирования, данные изображения разбиваются на области по глубинам, и ошибки кодирования могут различаться согласно областям в одном максимальном блоке кодирования. Таким образом, глубины кодирования могут различаться по областям в данных изображения. Поэтому одна или более глубин кодирования могут определяться в одном максимальном блоке кодирования, а данные изображения максимального блока кодирования могут разделятся по блокам кодирования по меньшей мере одной глубины кодирования.
Соответственно, определитель 120 блока кодирования может определять блоки кодирования, имеющие древовидную структуру, включенные в максимальный блок кодирования. Блоки кодирования, имеющие древовидную структуру согласно примерному варианту осуществления, включают в себя блоки кодирования, соответствующие глубине, определенной, чтобы быть глубиной кодирования, из числа всех более глубоких блоков кодирования, включенных в максимальный блок кодирования. Блок кодирования глубины кодирования может иерархически определяться согласно глубинам в одной и той же области максимального блока кодирования и может независимо определяться в разных областях. Подобным образом, глубина кодирования в текущей области может независимо определяться по глубине кодирования в другой области.
Максимальная глубина согласно примерному варианту осуществления является индексом, имеющим отношение к количеству раз разбиения от максимального блока кодирования до минимального блока кодирования. Первая максимальная глубина согласно примерному варианту осуществления может обозначать суммарное количество раз разбиения от максимального блока кодирования до минимального блока кодирования. Вторая максимальная глубина согласно примерному варианту осуществления может обозначать суммарное количество уровней глубины от максимального блока кодирования до минимального блока кодирования. Например, когда глубина максимального блока кодирования имеет значение 0, глубина блока кодирования, на которой максимальный блок кодирования разбит один раз, может быть установлена в 1, а глубина блока кодирования, при которой максимальный блок кодирования разбит дважды, может быть установлена в 2. Здесь, если максимальный блок кодирования является блоком кодирования, в котором максимальный блок кодирования разбит четыре раза, существует 5 уровней глубины, по глубинам 0, 1, 2, 3 и 4. В этом случае, первая максимальная глубина может быть установлена в 4, а вторая максимальная глубина может быть установлена в 5.
Кодирование с прогнозированием и преобразование могут выполняться согласно максимальному блоку кодирования. Кодирование с прогнозированием и преобразование также могут выполняться на основании более глубоких блоков кодирования согласно глубине, равной, или глубинам, меньшим чем максимальная глубина, согласно максимальному блоку кодирования. Преобразование может выполняться согласно способу ортогонального преобразования или целочисленного преобразования.
Поскольку количество более глубоких блоков кодирования увеличивается всякий раз, когда максимальный блок кодирования разбивается согласно глубинам, кодирование, включающее в себя кодирование с прогнозированием и преобразование, может выполняться над всеми из более глубоких блоков кодирования по мере возрастания глубины. Для удобства описания, кодирование с прогнозированием и преобразование далее будут описаны на основании блока кодирования текущей глубины, в максимальном блоке кодирования.
Устройство 100 кодирования видео может по-разному выбирать размер или форму блока данных для кодирования данных изображения. Для того чтобы кодировать данные изображения, выполняются операции, такие как кодирование с прогнозированием, преобразование и энтропийное кодирование, и, в это время, один и тот же блок данных может использоваться для всех операции, или разные блоки данных могут использоваться для каждой операции.
Например, устройство 100 кодирования видео может выбирать не только блок кодирования для кодирования данных изображения, но также блок данных, отличный от блока кодирования, с тем чтобы выполнять кодирование с прогнозированием над данными изображения в блоке кодирования.
Для того чтобы выполнять кодирование с прогнозированием в максимальном блоке кодирования, кодирование с прогнозированием может выполняться на основании блока кодирования, соответствующего глубине кодирования, то есть на основании блока кодирования, который больше не разбивается на блоки кодирования, соответствующие более низкой глубине. В дальнейшем, блок кодирования, который больше не разбивается и становится базовым блоком для кодирования с прогнозированием, далее будет указываться ссылкой как блок прогнозирования. Раздел, полученный разбиением блока прогнозирования, может включать в себя блок прогнозирования или блок данных, полученные разбиением по меньшей мере одной из высоты и ширины блока прогнозирования.
Например, когда блок кодирования размера 2N×2N (где N - положительное целое) больше не разбивается и становится блоком прогнозирования 2N×2N, размером раздела могут быть 2N×2N, 2N×N, N×2N или N×N. Примеры типа раздела включают в себя симметричные разделы, которые получены симметричным разбиением высоты или ширины блока прогнозирования, разделы, полученные асимметричным разбиением высоты или ширины блока прогнозирования (таким как 1:n или n:1), разделы, которые получены геометрическим разбиением блок прогнозирования, и разделы, имеющие произвольные формы.
Режим прогнозирования блока прогнозирования может быть по меньшей мере одним из внутрикадрового режима, межкадрового режима и режима пропуска. Например, внутрикадровый режим или межкадровый режим могут выполняться над разделом 2N×2N, 2N×N, N×2N или N×N. К тому же, режим пропуска может выполняться только над разделом 2N×2N. Кодирование выполняется независимо над блоками прогнозирования в блоке кодирования, тем самым, выбирая режим прогнозирования, имеющий меньшую ошибку кодирования.
Устройство 100 кодирования видео также может выполнять преобразование над данными изображения в блоке кодирования не только на основании блока кодирования для кодирования данных изображения, но также на основании блока данных, который отличен от блока кодирования.
Для того чтобы выполнять преобразование в блоке кодирования, преобразование может выполняться на основании блока данных, имеющего размер, меньший чем или равный блоку кодирования.
Например, блок данных для преобразования может включать в себя блок данных для внутрикадрового режима и блок данных для межкадрового режима.
A
A
Блок данных, используемый в качестве базы преобразования, в дальнейшем, будет указываться ссылкой как блок преобразования. Глубина преобразования, указывающая количество раз разбиения, чтобы достичь блока преобразования посредством разбиения высоты и ширины блока кодирования, также может устанавливаться для блока преобразования. Например, в текущем блоке кодирования 2N×2N, глубина преобразования может иметь значение 0, когда размером блока преобразования также является 2N×2N, может иметь значение 1, когда каждая из высоты и ширины текущего блока кодирования разбивается на две равные части, с суммарным разбиением на 41 блока преобразования, и размером блока преобразования, таким образом, является N×N, и может иметь значение 2, когда каждая из высоты и ширины текущего блока кодирования разбивается на четыре равные части, с суммарным разбиением на 42 блока преобразования, и размером блока кодирования, таким образом, является N/2×N/2. Например, блок преобразования может устанавливаться согласно иерархической древовидной структуре, в которой блок преобразования верхней глубины преобразования разбивается на четыре блока преобразования более низкой глубины преобразования согласно иерархическим характеристикам глубины преобразования.
Подобно блоку кодирования, блок преобразования в блоке кодирования может рекурсивно разбиваться на области с меньшим размером, так что блок преобразования может определяться независимо в блоках или областях. Таким образом, остаточные данные в блоке кодирования могут быть поделены согласно преобразованию, имеющему древовидную структуру по глубинам преобразования.
Информация о кодировании согласно блокам кодирования, соответствующим глубине кодирования, использует не только информацию о глубине кодирования, но также информацию касательно информации, имеющей отношение к кодированию с прогнозированием и преобразованию. Соответственно, определитель 120 блока кодирования не только определяет глубину кодирования, имеющую минимальную ошибку кодирования, но также определяет тип раздела в блоке прогнозирования, режим прогнозирования согласно блокам прогнозирования и размер блока преобразования для преобразования.
Блоки кодирования согласно древовидной структуре в максимальном блоке кодирования и способ определения раздела, согласно одному или более примерных вариантов осуществления, позже будут описаны подробно со ссылкой на фиг. с 3 по 12.
Определитель 120 блока кодирования может измерять ошибку кодирования более глубоких блоков кодирования согласно глубине, используя оптимизацию случайного искажения, основанную на коэффициентах Лагранжа.
Модуль 130 вывода выдает данные изображения максимального блока кодирования, которые кодированы на основании по меньшей мере одной глубины кодирования, определенной определителем 120 блока кодирования, и информацию о режиме кодирования согласно глубине кодирования, в битовых потоках. Кодированные данные изображения могут быть получены кодированием остаточных данных изображения. Информация о режиме кодирования согласно глубине кодирования может включать в себя по меньшей мере одну из информации о глубине кодирования, информации о типе раздела в блоке прогнозирования, режиме прогнозирования и размере блока преобразования.
Информация о глубине кодирования может определяться посредством использования информации о разбиении по глубинам, которая указывает, выполняется ли кодирование на блоках кодирования более низкой глубины вместо текущей глубины. Если текущая глубина текущего блока кодирования является глубиной кодирования, данные изображения в текущем блоке кодирования кодируются и выдаются, и, таким образом, информация о разбиении может быть определена, чтобы не разбивать текущий блок кодирования до более низких глубин. В качестве альтернативы, если текущая глубина текущего блока кодирования не является глубиной кодирования, кодирование выполняется над блоком кодирования более низкой глубины. Таким образом, информация о разбиении может быть определена, чтобы разбивать текущий блок кодирования для получения блоков кодирования более низкой глубины.
Если текущая глубина не является глубиной кодирования, кодирование выполняется над блоком кодирования, который разбит на блок кодирования более низкой глубины. Поскольку по меньшей мере один блок кодирования более низкой глубины существует в одном блоке кодирования текущей глубины, кодирование выполняется повторно над каждым блоком кодирования более низкой глубины. Таким образом, кодирование может выполняться рекурсивно для блоков кодирования, имеющих одну и ту же глубину.
Поскольку блоки кодирования, имеющие древовидную структуру, определены для одного максимального блока кодирования, и информация о по меньшей мере одном режиме кодирования определена для блока кодирования глубины кодирования, информация о по меньшей мере одном режиме кодирования может быть определена для одного максимального блока кодирования. К тому же, глубина данных изображения максимального блока кодирования может быть разной по местоположениям, поскольку данные изображения иерархически разбиваются согласно глубинам. Таким образом, информация о глубине кодирования и режиме кодирования может устанавливаться для данных изображения.
Соответственно, модуль 130 вывода может назначать информацию о кодировании касательно соответствующей глубины кодирования и режима кодирования в по меньшей мере один из блока кодирования, блока прогнозирования и минимального блока, включенных в максимальный блок кодирования.
Минимальный блок согласно примерному варианту осуществления может быть прямоугольным блоком данных, полученным разбиением минимального блока кодирования, имеющим самую нижнюю глубину, на 4. В качестве альтернативы, минимальный блок может быть прямоугольным блоком данных максимального размера, который может быть включен во все из блоков кодирования, блоков прогнозирования, блоков разбиения и блоков преобразования, включенных в максимальный блок кодирования.
Например, информация о кодировании, выдаваемая через модуль 130 вывода, может классифицироваться на информацию о кодировании по блокам кодирования и информацию о кодировании по блокам прогнозирования. Информация о кодировании по блокам кодирования может включать в себя по меньшей мере одну из информации о режиме прогнозирования и информации о размере разделов. Информация о кодировании согласно блокам прогнозирования может включать в себя по меньшей мере одну из информации об оцененном направлении межкадрового режима, информации об индексе опорного изображения межкадрового режима, информации о векторе движения, информации о компоненте цветности внутрикадрового режима и информации о способе интерполяции внутрикадрового режима. К тому же информация о максимальном размере блока кодирования, определенная по кадрам, сериям последовательных макроблоков или группам кадров (GOP), и информация о максимальной глубине могут быть вставлены в набор параметров последовательности (SPS) или заголовок битового потока.
В устройстве 100 кодирования видео, более глубокий блок кодирования может быть блоком кодирования, полученным посредством деления на два по меньшей мере одной из высоты и ширины блока кодирования более высокой глубины, который находится на один уровень выше. Другими словами, когда размер блока кодирования текущей глубины имеет значение 2N×2N, размер блока кодирования более низкой глубины может быть N×N. К тому же, блок кодирования текущей глубины, имеющий размер 2Nx2N, может включать в себя блоки кодирования более низкой глубины.
Соответственно, устройство 100 кодирования видео может формировать блоки кодирования, имеющие древовидную структуру, определяя блоки кодирования, имеющие оптимальную форму и оптимальный размер, для каждого максимального блока кодирования, на основании размера максимального блока кодирования и максимальной глубины, оба определенные с учетом характеристик текущего кадра. К тому же, поскольку кодирование может выполняться над каждым максимальным блоком кодирования посредством использования любого из различных режимов прогнозирования и преобразований, оптимальный режим кодирования может определяться с учетом характеристик блока кодирования различных размеров изображения.
Таким образом, если изображение, имеющее высокое разрешение или большой объем данных, кодируется в блоках макроблоков уровня техники, количество макроблоков на кадр чрезмерно увеличивается. Соответственно, возрастает количество фрагментов сжатой информации, сформированной для каждого макроблока, и, таким образом, затруднительно передавать сжатую информацию, а эффективность сжатия данных снижается. Однако, посредством использования устройства 100 кодирования видео согласно примерному варианту осуществления, эффективность сжатия изображения может быть увеличена, поскольку блок кодирования настраивается наряду с учетом характеристик изображения при увеличении максимального размера блока кодирования наряду с учетом размера изображения.
Фиг. 2 - структурная схема устройства 200 декодирования видео согласно примерному варианту осуществления настоящего изобретения. Со ссылкой на фиг. 2, устройство 200 декодирования видео включает в себя приемник 210, выделитель 220 данных изображения и информации о кодировании, и декодер 230 данных изображения. Определения различных терминов, таких как блок кодирования, глубина, блок прогнозирования, блок преобразования и информация о различных режимах кодирования, для различных операций устройства 200 декодирования видео являются такими же или подобными описанным выше со ссылкой на фиг. 1 и устройство 100 кодирования видео.
Приемник 210 принимает и синтаксически анализирует битовый поток кодированного видео. Выделитель 220 данных изображения и информации о кодировании извлекает кодированные данные изображения для каждого блока кодирования из синтаксически анализируемого битового потока, при этом блоки кодирования имеют древовидную структуру согласно каждому максимальному блоку кодирования, и выдает извлеченные данные изображения в декодер 230 данных изображения. Выделитель 220 данных изображения и информации о кодировании может извлекать информацию о максимальном размере блока кодирования текущего кадра из заголовка, соответствующего текущему кадру или SPS.
К тому же, выделитель 220 данных изображения и информации о кодировании извлекает информацию о глубине кодирования и режиме кодирования для блоков кодирования, имеющих древовидную структуру, согласно каждому максимальному блоку кодирования, из синтаксически анализируемого битового потока. Извлеченная информация о глубине кодирования и режиме кодирования выдается в декодер 230 данных изображения. Таким образом, данные изображения в битовом потоке разбиваются на максимальный блок кодирования, так что декодер 230 данных изображения декодирует данные изображения для каждого максимального блока кодирования.
Информация о глубине кодирования и режиме кодирования согласно максимальному блоку кодирования может быть установлена ради информации о по меньшей мере одном блоке кодирования, соответствующем глубине кодирования. Более того, информация о режиме кодирования может включать в себя по меньшей мере одну из информации о типе раздела соответствующего блока кодирования, соответствующего глубине кодирования, информации о режиме прогнозирования и размере блока преобразования. К тому же, информация о разбиении по глубинам может извлекаться в качестве информации о глубине кодирования.
Информация о глубине кодирования и режиме кодирования согласно каждому максимальному блоку кодирования, извлеченная выделителем 220 данных изображения и информации о кодировании, является информацией о глубине кодирования и режиме кодирования, определенных для формирования минимальной ошибки кодирования, когда кодировщик, такой как устройство 100 кодирования видео, повторно выполняет кодирование для каждого более глубокого блока кодирования согласно глубинам по каждому максимальному блоку кодирования. Соответственно, устройство 200 декодирования видео может восстанавливать изображение, декодируя данные изображения согласно глубине кодирования и режиму кодирования, которые порождают минимальную ошибку кодирования.
Поскольку информация о кодировании касательно глубины кодирования и режима кодирования может быть назначена в заданный блок данных из числа соответствующего блока кодирования, блока прогнозирования и минимального блока, выделитель 220 данных изображения и информации о кодировании может извлекать информацию о глубине кодирования и режиме кодирования согласно заданным блокам данных. Заданные блоки данных, в которые назначена одна и та же информация о глубине кодирования и режиме кодирования, могут подразумеваться блоками данных, включенными в один и тот же максимальный блок кодирования.
Декодер 230 данных изображения восстанавливает текущий кадр, декодируя данные изображения в каждом максимальном блоке кодирования на основании информации о глубине кодирования и режиме кодирования согласно максимальным блокам кодирования. Другими словами, декодер 230 данных изображения может декодировать кодированные данные изображения на основании извлеченной информации о типе раздела, режиме прогнозирования и блоке преобразования для каждого блока кодирования из числа блоков кодирования, имеющих древовидную структуру, включенную в каждый максимальный блок кодирования. Последовательность операций декодирования может включать в себя по меньшей мере одно из прогнозирования, включающего в себя внутрикадровое прогнозирование и компенсацию движения, и обратного преобразования. Обратное преобразование может выполняться согласно способу обратного ортогонального преобразования или обратного целочисленного преобразования.
Декодер 230 данных изображения может выполнять внутрикадровое прогнозирование или компенсацию движения согласно разделу и режиму прогнозирования каждого блока кодирования на основании информации о типе раздела и режиме прогнозирования блока прогнозирования из блока кодирования согласно глубинам кодирования.
К тому же, декодер 230 данных изображения может выполнять обратное преобразование согласно каждому блоку преобразования в блоке кодирования на основании информации о размере блока преобразования блока кодирования по глубинам кодирования, с тем чтобы выполнять обратное преобразование согласно максимальным блокам кодирования.
Декодер 230 данных изображения может определять по меньшей мере одну глубину кодирования текущего максимального блока кодирования посредством использования информации о разбиении по глубинам. Если информация о разбиении указывает, что данные изображения больше не разбиваются на текущей глубине, текущая глубина является глубиной кодирования. Соответственно, декодер 230 данных изображения может декодировать кодированные данные по меньшей мере одного блока кодирования, соответствующего каждой глубине кодирования в текущем максимальном блоке кодирования, используя информацию о типе раздела блока прогнозирования, режиме прогнозирования и размере блока преобразования для каждого блока кодирования, соответствующего глубине кодирования, и выдает данные изображения текущего максимального блока кодирования.
Другими словами, блоки данных, включающие в себя информацию о кодировании, в том числе, одинаковую информацию о разбиении, могут объединяться посредством обращения к набору информации о кодировании, назначенному для заданного блока данных из числа блока кодирования, блока прогнозирования и минимального блока. Более того, объединенные блоки данных могут считаться одним блоком данных, который должен декодироваться декодером 230 данных изображения в одном и том же режиме кодирования.
Устройство 200 декодирования видео может получать информацию о по меньшей мере одном блоке кодирования, который порождает минимальную ошибку кодирования, когда кодирование выполняется рекурсивно для каждого максимального блока кодирования, и может использовать информацию для декодирования текущего кадра. Другими словами, могут декодироваться блоки кодирования, имеющие древовидную структуру, определенные являющимися оптимальными блоками кодирования в каждом максимальном блоке кодирования. К тому же, максимальный размер блока кодирования может определяться с учетом разрешения и количества данных изображения.
Соответственно, даже если данные изображения имеют высокое разрешение и большое количество данных, данные изображения могут эффективно декодироваться и восстанавливаться посредством использования размера блока кодирования и способа кодирования, которые адаптивно определяются согласно характеристикам данных изображения, используя информацию об оптимальном режиме кодирования, принятую из кодировщика.
Способ определения блоков кодирования, имеющих древовидную структуру, блок прогнозирования и блок преобразования, согласно одному или более примерных вариантов осуществления, далее будет описан со ссылкой на фиг. с 3 по 13.
Фиг. 3 - схема для описания концепции блоков кодирования согласно примерному варианту осуществления. Размер блока кодирования может быть выражен в качестве ширина × высота, и может иметь значение 64×64, 32×32, 16×16 и 8×8, хотя понятно, что другой примерный вариант осуществления не ограничен этим. Блок кодирования 64×64 может быть разбит на разделы 64×64, 64×32, 32×64 или 32×32, блок кодирования 32×32 может быть разбит на разделы 32×32, 32×16, 16×32 или 16×16, блок кодирования 16×16 может быть разбит на разделы 16×16, 16×8, 8×16 или 8×8, а блок кодирования 8x8 может быть разбит на разделы 8×8, 8×4, 4×8 или 4×4.
Со ссылкой на фиг. 3, первые видеоданные 310 имеют разрешение 1920x1080, максимальный размер блока кодирования 64 и максимальную глубину 2. Вторые видеоданные 320 имеют разрешение 1920x1080, максимальный размер блока кодирования 64 и максимальную глубину 3. Третьи видеоданные 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 уровня при разбиении максимального блока кодирования три раза. По мере того, как глубина возрастает (то есть увеличивается), подробная информация может точно выражаться.
Фиг. 4 - структурная схема кодировщика 400 изображения, основанного на блоках кодирования, согласно варианту осуществления настоящего изобретения. Со ссылкой на фиг. 4, кодировщик 400 изображения выполняет операции определителя 120 блока кодирования устройства 100 кодирования видео, чтобы кодировать данные изображения. Например, внутрикадровый прогнозирующий модуль 410 выполняет внутрикадровое прогнозирование над блоками кодирования во внутрикадровом режиме из числа текущего кадра 405, а оценщик 420 движения и компенсатор 425 движения выполняют межкадровую оценку и компенсацию движения, соответственно, над блоками кодирования в межкадровом режиме из числа текущего кадра 405, используя текущий кадр 405 и опорный кадр 495.
Данные, выдаваемые из внутрикадрового прогнозирующего модуля 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 определяет размер блока преобразования в каждом блоке кодирования из числа блоков кодирования, имеющих древовидную структуру.
Фиг. 5 - структурная схема декодера 500 изображения, основанного на блоках кодирования, согласно примерному варианту осуществления. Со ссылкой на фиг. 5, синтаксический анализатор 510 синтаксически анализирует кодированные данные изображения, которые должны декодироваться, и информацию о кодировании, используемую для декодирования, из битового потока 505. Кодированные данные изображения выдаются в качестве обращенных квантованных данных чрез энтропийный декодер 520 и обращенный квантователь 530, и обращенные квантованные данные восстанавливаются в данные изображения в пространственной области благодаря обратному преобразователю 540.
Внутрикадровый прогнозирующий модуль 550 выполняет внутрикадровое прогнозирование над блоками кодирования во внутрикадровом режиме по отношению к данным изображения в пространственной области, и компенсатор 560 движения выполняет компенсацию движения над блоками кодирования в межкадровом режиме посредством использования опорного кадра 585.
Данные изображения в пространственной области, которые пропущены через внутрикадровый прогнозирующий модуль 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 выполняет операции на основании размера блока преобразования для каждого блока кодирования.
Фиг. 6 - схема, иллюстрирующая более глубокие блоки кодирования по глубинам и разделы согласно примерному варианту осуществления. Устройство 100 кодирования видео согласно примерному варианту осуществления и устройство 200 устройства декодирования видео согласно примерному варианту осуществления используют иерархические блоки кодирования, в тем чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина блоков кодирования могут адаптивно определяться согласно характеристикам изображения, или может по-разному устанавливаться пользователем. Размеры более глубоких блоков кодирования согласно глубинам могут определяться согласно заданному максимальному размеру блока кодирования.
Со ссылкой на фиг. 6, иерархическая структура 600 блоков кодирования, согласно примерному варианту осуществления, каждая из максимальной высоты и максимальной ширины блоков кодирования имеет значение 64, а максимальная глубина имеет значение 4. Поскольку глубина возрастает (то есть увеличивается) вдоль вертикальной оси иерархической структуры 600, разбивается каждая из высоты и ширины более глубоких блоков кодирования. К тому же, блок прогнозирования и разделы, которые являются базами для кодирования с прогнозированием каждого более глубокого блока кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
Например, первый блок 610 кодирования является максимальным блоком кодирования в иерархической структуре 600, при этом его глубина имеет значение 0, а его размер, то есть высота на ширину имеет значение 64×64. Глубина возрастает вдоль вертикальной оси таким образом, что иерархическая структура 600 включает в себя второй блок 620 кодирования, имеющий размер 32×32 и глубину 1, третий блок 630 кодирования, имеющий размер 16×16 и глубину 2, четвертый блок 640 кодирования, имеющий размер 8×8 и глубину 3, и пятый блок 650 кодирования, имеющий размер 4×4 и глубину 4. Пятый блок 650 кодирования, имеющий размер 4×4 и глубину 4, является минимальным блоком кодирования.
Блок прогнозирования и разделы блоков 610, 620, 630 640 и 650 кодирования скомпонованы вдоль горизонтальной оси согласно каждой глубине. Другими словами, если первый блок 610 кодирования, имеющий размер 64×64 и глубину 0, является блоком прогнозирования, блок прогнозирования может быть разбит на разделы, включенные в первый блок 610 кодирования, то есть раздел 610, имеющий размер 64×64, разделы 612, имеющие размер 64×32, разделы 614, имеющие размер 32×64, или разделы 616, имеющие размер 32×32.
Подобным образом, блок прогнозирования второго блока 620 кодирования, имеющего размер 32×32 и глубину 1, может быть разбит на разделы, включенные во второй блок 620 кодирования, то есть раздел 620, имеющий размер 32×32, разделы 622, имеющие размер 32×16, разделы 624, имеющие размер 16x32, и разделы 626, имеющие размер 16×16.
Подобным образом, блок прогнозирования третьего блока 630 кодирования, имеющего размер 16×16 и глубину 2, может быть разбит на разделы, включенные в третий блок 630 кодирования, то есть раздел, имеющий размер 16×16, включенный в третий блок 630 кодирования, разделы 632, имеющие размер 16×8, разделы 634, имеющие размер 8×16, и разделы 636, имеющие размер 8×8.
Подобным образом, блок прогнозирования четвертого блока 640 кодирования, имеющего размер 8×8 и глубину 3, может быть разбит на разделы, включенные в четвертый блок 640 кодирования, то есть раздел, имеющий размер 8×8, включенный в четвертый блок 640 кодирования, разделы 642, имеющие размер 8×4, разделы 644, имеющие размер 4×8, и разделы 646, имеющие размер 4×4.
Пятый блок 650 кодирования, имеющий размер 4×4 и глубину 4, является минимальным блоком кодирования и блоком кодирования самой нижней глубины. Блок прогнозирования пятого блока 650 кодирования назначен в раздел, имеющий размер 4×4.
Для того чтобы определять по меньшей мере одну глубину кодирования блоков кодирования максимального блока 610 кодирования, определитель 120 блока кодирования устройства 100 кодирования видео выполняет кодирование для блоков кодирования, соответствующих каждой глубине, включенной в максимальный блок 610 кодирования.
Количество более глубоких блоков кодирования согласно глубинам, включающим в себя данные в том же самом диапазоне и того же самого размера, увеличивается по мере того, как возрастает глубина. Например, четыре блока кодирования, соответствующих глубине 2, требуются для покрытия данных, которые включены в один блок кодирования, соответствующий глубине 1. Соответственно, для того чтобы сравнивать результаты кодирования одних и тех же данных согласно глубинам, кодируются каждые из блока кодирования, соответствующего глубине 1, и четырех блоков кодирования, соответствующих глубине 2.
Для того чтобы выполнять кодирование для текущей глубины из числа глубин, минимальная ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждого блока прогнозирования в блоках кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. В качестве альтернативы, поиск минимальной ошибки кодирования может быть выполнен путем сравнения минимальных ошибок кодирования по глубинам, выполнения кодирования для каждой глубины по мере того, как глубина возрастает вдоль вертикальной оси иерархической структуры 600. Глубина и раздел, имеющие минимальную ошибку кодирования в первом блоке 610 кодирования, могут выбираться в качестве глубины кодирования и типа раздела первого блока 610 кодирования.
Фиг. 7 - схема для описания взаимного расположения между блоком 710 кодирования и блоками преобразования согласно примерному варианту осуществления. Устройство 100 кодирования видео согласно примерному варианту осуществления и устройство 200 декодирования видео согласно примерному варианту осуществления, соответственно, кодирует и декодирует изображение по блокам кодирования, имеющим размеры, меньшие чем или равные максимальному блоку кодирования, для каждого максимального блока кодирования. Размеры блоков преобразования для преобразования во время кодирования могут выбираться на основании блоков данных, которые являются не большими, чем соответствующий блок кодирования.
Со ссылкой на фиг. 7, например, в устройстве 100 кодирования видео, если размером блока 710 кодирования является 64×64, преобразование может выполняться посредством использования блоков 720 преобразования, имеющих размер 32×32.
К тому же, данные блока 710 кодирования, имеющего размер 64×64, могут кодироваться посредством выполнения преобразования над каждым из блоков преобразования, имеющих размер 32×32, 16×16, 8×8 и 4×4, которые являются меньшими, чем 64×64, а затем, может выбираться блок преобразования, имеющий меньшие ошибки кодирования.
Фиг. 8 - схема для описания информации о кодировании блоков кодирования, соответствующих глубине кодирования, согласно примерному варианту осуществления. Со ссылкой на фиг. 8, модуль 130 вывода устройства 100 кодирования видео согласно примерному варианту осуществления может кодировать и передавать первую информацию 800 о типе раздела, вторую информацию 810 о режиме прогнозирования и третью информацию 820 о размере блока преобразования для каждого блока кодирования, соответствующего глубине кодирования, в качестве информации о режиме кодирования.
Первая информация 800 указывает информацию о форме раздела, полученного разбиением блока прогнозирования текущего блока кодирования, при этом раздел является блоком данных для кодирования с прогнозированием текущего блока кодирования. Например, текущий блок CU_0 кодирования, имеющий размер 2N×2N, может быть разбит на любой один из раздела 802, имеющего размер 2N×2N, раздела 804, имеющего размер 2N×N, раздела 806, имеющего размер N×2N, и раздела 808, имеющего размер N×N. Здесь, первая информация 800 о типе раздела устанавливается, чтобы указывать один из раздела 804, имеющего размер 2N×N, раздела 806, имеющего размер N×2N, и раздела 808, имеющего размер N×N. Вторая информация 810 указывает режим прогнозирования каждого раздела. Например, вторая информация 810 может указывать режим кодирования с прогнозированием, выполняемого над разделом, указанным первой информацией 800, то есть внутрикадровый режим 812, межкадровый режим 814 или режим 816 пропуска.
Третья информация 820 указывает блок преобразования, на котором следует основываться, когда выполняется преобразование над текущим блоком кодирования. Например, блок преобразования может быть первым блоком 822 внутрикадрового преобразования, вторым блоком 824 внутрикадрового преобразования, первым блоком 826 межкадрового преобразования или вторым блоком 828 межкадрового преобразования.
Выделитель 220 данных изображения и информации о кодировании устройства 200 декодирования видео согласно примерному варианту осуществления может извлекать и использовать информацию 800, 810 и 820 для декодирования, согласно каждому более глубокому блоку кодирования. Фиг. 9 - схема более глубоких блоков кодирования по глубинам, согласно примерному варианту осуществления. Информация о разбиении может использоваться для указания изменения глубины. Информация о разбиении указывает, разбивается ли блок кодирования текущей глубины на блоки кодирования более низкой глубины.
Со ссылкой на фиг. 9, блок 910 прогнозирования для кодирования с прогнозированием блока 900 кодирования, имеющего глубину 0 и размер 2N_0×2N_0, может включать в себя разделы типа 912 раздела, имеющего размер 2N_0×2N_0, типа 914 раздела, имеющего размер 2N_0×N_0, типа 916 раздела, имеющего размер N_0×2N_0, и типа 918 раздела, имеющего размер N_0×N_0. Фиг. 9 иллюстрирует только типы с 912 по 918 раздела, которые получаются симметричным разбиением блока 910 прогнозирования, но понятно, что тип раздела не ограничен этим в другом примерном варианте осуществления. Например, согласно еще одному примерному варианту осуществления, разделы блока 910 прогнозирования могут включать в себя асимметричные разделы, разделы, имеющие заданную форму, и разделы, имеющие геометрическую форму.
Кодирование с прогнозированием выполняется повторно на одном разделе, имеющем размер 2N_0×2N_0, двух разделах, имеющих размер 2N_0×N_0, двух разделах, имеющих размер N_0×2N_0, и четырех разделах, имеющих размер N_0×N__0, согласно каждому типу раздела. Кодирование с прогнозированием во внутрикадровом режиме и межкадровом режиме может выполняться над разделами, имеющими размеры 2N_0×2N_0, N__0×2N_0, 2N_0×N_0 и N_0×N_0. Кодирование с прогнозированием в режиме пропуска выполняется только над разделом, имеющим размер 2N_0×2N_0.
Ошибки кодирования, включающего в себя кодирование с прогнозированием типов с 912 по 918 раздела, сравниваются, и определяется минимальная ошибка кодирования среди типов раздела. Если ошибка кодирования является наименьшей в одном из типов с 912 по 916 раздела, блок 910 прогнозирования может не разбиваться на более низкие глубины.
Если ошибка кодирования является наименьшей в типе 918 раздела, глубина изменяется с 0 в 1, чтобы разбивать тип 918 на операции 920, и кодирование выполняется повторно на блоках 930 кодирования, имеющих глубину 2 и размер N_0×N_0 для выполнения поиска минимальной ошибки кодирования.
Блок 940 прогнозирования для кодирования с прогнозированием блока 930 кодирования, имеющего глубину 1 и размер 2N_1×2N_1 (=N_0×N_0), может включать в себя разделы типа 942 раздела, имеющего размер 2N_l×2N_1, типа 944 раздела, имеющего размер 2N_1×N_1, типа 946 раздела, имеющего размер N_1×2N_1, и типа 948 раздела, имеющего размер N_1×N_1.
Если ошибка кодирования является наименьшей в типе 948 раздела, глубина изменяется с 1 в 2, чтобы разбивать тип 948 на операции 950, и кодирование выполняется повторно на блоках 960 кодирования, которые имеют глубину 2 и размер N_2×N_2 для выполнения поиска минимальной ошибки кодирования.
Когда максимальная глубина имеет значение d, операции разбиения согласно каждой глубине могут выполняться вплоть до того, когда глубина становится d-1, и информация о разбиении может кодироваться вплоть до того, когда глубина является одной из от 0 до d-2. Например, когда кодирование выполняется вплоть до того, когда глубина имеет значение d-1, после того, как блок кодирования, соответствующий глубине d-2, разбит на операции 970, блок 990 прогнозирования для кодирования с прогнозированием блока 980 кодирования, имеющего глубину d-1 и размер 2N_(d-1) ×2N_(d-1), может включать в себя разделы типа 922 раздела, имеющего размер 2N_(d-1) ×2N_(d-1), типа 994 раздела, имеющего размер 2N_(d-1)×N_(d-1), типа 996 раздела, имеющего размер N_(d-1)×2N_(d-1), и типа 998 раздела, имеющего размер N_(d-1)×N_(d-1).
Кодирование с прогнозированием может выполняться повторно на одном разделе, имеющем размер 2N_(d-1)×2N_(d-1), двух разделах, имеющих размер 2N_(d-1)×N_(d-1), двух разделах, имеющих размер N_(d-1)×2N_(d-1), четырех разделах, имеющих размер N_(d-1)×N_(d-1) из числа типов с 992 по 998 раздела для выполнения поиска типа раздела, имеющего минимальную ошибку кодирования.
Даже когда тип 998 раздела имеет минимальную ошибку кодирования, поскольку максимальная глубина имеет значение d, блок CU_(d-1) кодирования, имеющий глубину d-1 больше не разбивается до более низкой глубины, и глубина кодирования для блоков кодирования текущего максимального блока 900 кодирования определяется, чтобы иметь значение d-1, а тип раздела текущего максимального блока 900 кодирования может определяться имеющим значение N_(d-1)×N_(d-1). К тому же, поскольку максимальная глубина имеет значение d, а минимальный блок 980 кодирования, имеющий самую нижнюю глубину d-1 больше не разбивается до более низкой глубины, информация о разбиении для минимального блока 980 кодирования не устанавливается.
Блок 999 данных может считаться минимальным блоком для текущего максимального блока кодирования. Минимальный блок согласно примерному варианту осуществления может быть прямоугольным блоком данных, полученным разбиением минимального блока 980 кодирования на 4. Посредством повторного выполнения кодирования, устройство 100 кодирования видео согласно примерному варианту осуществления может выбирать глубину, имеющую минимальную ошибку кодирования, сравнивая ошибки кодирования по глубинам блока 900 кодирования, чтобы определять глубину кодирования и устанавливать соответствующий тип разбиения и режим прогнозирования в качестве режима кодирования глубины кодирования.
По существу, минимальные ошибки кодирования согласно глубинам сравниваются на всех из глубин от 1 до d, и глубина, имеющая меньшие ошибки кодирования может быть определена в качестве глубины кодирования. По меньшей мере одно из глубины кодирования, типа раздела блока прогнозирования и режима прогнозирования может кодироваться и передаваться в качестве информации о режиме кодирования. К тому же, поскольку блок кодирования разбивается с глубины 0 до глубины кодирования, только информация о разбиении глубины кодирования устанавливается в 0, а информация о разбиении глубин, включая глубину кодирования, устанавливается в 1.
Выделитель 220 данных изображения и информации о кодировании устройства 200 декодирования видео согласно примерному варианту осуществления может извлекать и использовать информацию о глубине кодирования и блоке прогнозирования блока 900 кодирования для декодирования раздела 912. Устройство 200 декодирования видео может определять глубину, на которой информация о разбиении имеет значение 0, в качестве глубины кодирования, используя информацию о разбиении согласно глубинам, и использовать информацию о режиме кодирования соответствующей глубины для декодирования.
Фиг. с 10 по 12 - схемы для описания взаимного расположения между блоками 1010 кодирования, блоками 1060 прогнозирования и блоками 1070 преобразования согласно примерному варианту осуществления.
Со ссылкой на фиг. с 10 по 12, блоки 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 кодирования имеет размер N×N.
Блоки прогнозирования и разделы блоков 1010 кодирования являются меньшими чем или равными каждому блоку кодирования.
Преобразование или обратное преобразование выполняется над данными изображения блока 1052 кодирования в блоках 1070 преобразования в блоках данных, которые меньше, чем блок 1052 кодирования. К тому же, блоки 1014, 1016, 1022, 1032, 1048, 1050 и 1052 кодирования в блоках 1070 преобразования отличны от таковых в блоках 1060 прогнозирования в показателях размеров и форм. Например, устройства 100 и 200 кодирования и декодирования согласно примерным вариантам осуществления могут выполнять внутрикадровое прогнозирование, оценку движения, компенсацию движения, преобразование, обратное преобразование по-отдельности на блоке данных в одном и том же блоке кодирования.
Соответственно, кодирование выполняется рекурсивно на каждом из блоков кодирования, имеющих иерархическую структуру в каждой области максимального блока кодирования, чтобы определять оптимальный блок кодирования и, таким образом, могут получаться блоки кодирования, имеющие рекурсивную древовидную структуру. Информация о кодировании может включать в себя по меньшей мере одну из информации о разбиении касательно блока кодирования, информации о типе раздела, информации о режиме прогнозирования и информации о размере блока преобразования. Таблица 1 показывает примерную информацию о кодировании, которая может устанавливаться устройствами 100 и 200 кодирования и декодирования видео.
Модуль 130 вывода устройства 100 кодирования видео может выдавать информацию о кодировании касательно блоков кодирования, имеющих древовидную структуру, а выделитель 220 данных изображения и информации о кодировании устройства 200 декодирования видео может извлекать информацию о кодировании касательно блоков кодирования, имеющих древовидную структуру, из принимаемого битового потока.
Информация о разбиении указывает, разбит ли текущий блок кодирования на блоки кодирования более низкой глубины. Если информация о разбиении текущей глубины d имеет значение 0, глубина, на которой текущий блок кодирования больше не разбивается на более низкую глубину, является глубиной кодирования, и, таким образом, информация о типе раздела, режиме прогнозирования и размере блока преобразования может определяться для глубины кодирования. Если текущий блок кодирования дополнительно разбит согласно информации о разбиении, кодирование выполняется независимо на четырех блоках кодирования разбиения более низкой глубины.
Режим прогнозирования может быть одним из внутрикадрового режима, межкадрового режима и режима пропуска. Внутрикадровый режим и межкадровый режим могу определяться на всех типах раздела, а режим пропуска может быть определен только в типе раздела, имеющем размер 2N×2N.
Информация о типе раздела может указывать симметричные типы раздела, имеющие размеры 2N×2N, 2N×N, N×2N и N×N, которые получены симметричным разбиением по меньшей мере одной из высоты и ширины блока прогнозирования, и асимметричные типы раздела, имеющие размеры 2N×nU, 2N×nD, nL×2N и nR×2N, которые получены асимметричным разбиением по меньшей мере одной из высоты и ширины блока прогнозирования. Асимметричные типы разбиения, имеющие размеры 2N×nU и 2N×nD, могут соответственно получаться разбиением высоты блока прогнозирования в 1:3 и 3:1, а асимметричные типы разбиения, имеющие размеры nL×2N и nR×2N, могут соответственно получаться разбиением ширины блока прогнозирования в 1:3 и 3:1.
Размер блока преобразования может устанавливаться, чтобы быть двумя типами при внутрикадровом режиме и двумя типами при межкадровом режиме. Например, если информация о разбиении блока преобразования имеет значение 0, размером блока преобразования может быть 2Nx2N, который является размером текущего блока кодирования. Если информация о разбиении блока преобразования имеет значение 1, блоки преобразования могут быть получены разбиением текущего блока кодирования. К тому же, если тип раздела текущего блока кодирования, имеющего размер 2N×2N, является симметричным типом раздела, размером блока преобразования может быть N×N, а если тип раздела текущего блока кодирования является асимметричным типом раздела, размером блока преобразования может быть N/2×N/2.
Информация о кодировании касательно блоков кодирования, имеющих древовидную структуру, может включать в себя по меньшей мере один из блока кодирования, соответствующего глубине кодирования, блока прогнозирования и минимального блока. Блок кодирования, соответствующий глубине кодирования, может включать в себя по меньшей мере один из блока прогнозирования и минимального блока, включающего в себя такую же информацию о кодировании.
Соответственно, определяется, включены ли смежные блоки данных в один и тот же блок кодирования, соответствующий глубине кодирования, посредством сравнения информации о кодировании смежных блоков данных. К тому же, соответствующий блок данных, соответствующий глубине кодирования, определяется посредством использования информации о кодировании блока данных и, таким образом, может определяться распределение глубин кодирования в максимальном блоке кодирования.
Поэтому, если текущий блок кодирования спрогнозирован на основании информации о кодировании смежных блоков данных, к информации о кодировании блоков данных в более глубоких блоках кодирования, смежных с текущим блоком кодирования, можно непосредственно обращаться и использовать ее.
В качестве альтернативы, если текущий блок кодирования спрогнозирован на основании информации о кодировании смежных блоков данных, поиск блоков данных, смежных с текущим блоком кодирования, выполняют с использованием кодированной информации блоков данных, и к найденным смежным блокам кодирования можно обращаться для прогнозирования текущего блока кодирования.
Фиг. 13 - схема для описания взаимного расположения между блоком кодирования, блоком прогнозирования или разделом, и блоком преобразования согласно информации о режиме кодирования таблицы 1, по примерному варианту осуществления. Со ссылкой на фиг. 13, максимальный блок 1300 кодирования включает в себя блоки 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодирования глубин кодирования. Здесь, поскольку блок 1318 кодирования является блоком кодирования глубины кодирования, информация о разбиении может быть установлена в 0. Информация о типе раздела блока 1318 кодирования, имеющего размер 2N×2N, может быть установлена, чтобы быть типом 1322 раздела, имеющим размер 2N×2N, типом 1324 раздела, имеющим размер 2N×N, типом 1326 раздела, имеющим размер N×2N, типом 1328 раздела, имеющим размер N×N, типом 1332 раздела, имеющим размер 2N×nU, типом 1334 раздела, имеющим размер 2N×nD, типом 1336 раздела, имеющим размер nL×2N, или типом 1338 раздела, имеющим размер nR×2N.
Когда тип раздела установлен симметричным, то есть типом 1322, 1324, 1326 или 1328 раздела, блок 1342 преобразования, имеющий размер 2N×2N, устанавливается, если информация о разбиении (флажковый признак размера TU) блока преобразования имеет значение 0, и устанавливается блок 1344 преобразования, имеющий размер N×N, если флажковый признак размера TU имеет значение 1.
Когда тип раздела установлен асимметричным, то есть типом 1332, 1334, 1336 или 1338 раздела, блок 1352 преобразования, имеющий размер 2N×2N, устанавливается, если флажковый признак размера TU имеет значение 0, и устанавливается блок 1354 преобразования, имеющий размер N/2×N/2, если флажковый признак размера TU имеет значение 1.
Со ссылкой на фиг. 13, флажковый признак размера TU является флажковым признаком, имеющим значение либо 0, либо 1, хотя понятно, что другой примерный вариант осуществления не ограничен 1-битным флажковым признаком, и блок преобразования может иерархически разбиваться, имея древовидную структуру, в то время как флажковый признак размера TU возрастает от 0, в другом примерном варианте осуществления.
В этом случае, размер блока преобразования, который фактически использовался, может быть выражен посредством использования флажкового признака размера TU блока преобразования, согласно примерному варианту осуществления, вместе с максимальным размером и минимальным размером блока преобразования. Согласно примерному варианту осуществления, устройство 100 кодирования видео способно к кодированию информации о максимальном размере блока преобразования, информации о минимальном размере блока преобразования и флажкового признака минимального размера TU. Результат кодирования информации о максимальном размере блока преобразования, информации о минимальном размере блока преобразования и флажкового признака максимального размера TU может быть вставлен в SPS. Согласно примерному варианту осуществления, устройство 200 декодирования видео может декодировать видео посредством использования информации о максимальном размере блока преобразования, информации о минимальном размере блока преобразования и флажкового признака максимального размера TU.
Например, если размером текущего блока кодирования является 64×64, а максимальным размером блока преобразования является 32×32, размер блока преобразования может быть 32×32, когда флажковый признак размера TU имеет значение 0, может быть 16×16, когда флажковый признак размера TU имеет значение 1, и может быть 8×8, когда флажковый признак размера TU имеет значение 2.
В качестве еще одного примера, если размером текущего блока кодирования является 32×32, а размером минимального блока преобразования является 32×32, размер блока трансформации может быть 32×32, когда флажковый признак размера TU имеет значение 0. Здесь, флажковый признак размера TU не может быть установлен в значение, иное чем 0, поскольку размер блока преобразования не может быть меньшим, чем 32×32.
В качестве еще одного примера, если размером текущего блока кодирования является 64×64, а размером, а флажковый признак максимального размера TU имеет значение 1, флажковый признак размера TU может быть 0 или 1. Здесь, флажковый признак размера TU не может быть установлен в значение, иное чем 0 или 1.
Таким образом, если определено, что флажковым признаком максимального размера TU является MaxTransformSizeIndex, минимальным размером блока преобразования является MinTransformSize, а размером блока преобразования является RootTuSize, когда флажковый признак размера TU имеет значение 0, то текущий минимального размер CurrMinTuSize блока преобразования, который может быть определен в текущем блоке кодирования, может определяться посредством уравнения (1):
A
CurrMinTuSize = max(MinTransformSize, RootTuSize/ (2MaxTransformSizeIndex)) (1).
A
A
По сравнению с текущим размером CurrMinTuSize минимального блока преобразования, который может быть определен в текущем блоке кодирования, размер 'RootTuSize' блока преобразования, когда флажковый признак размера TU имеет значение 0, может обозначать максимальный размер блока преобразования, который может быть выбран в системе. В уравнении (1), RootTuSize/(2MaxTransformSizelndex) обозначает размер блока преобразования, когда размер RootTuSize блока преобразования, когда флажковый признак размера TU имеет значение 0, разбит некоторое количество раз, соответствующее флажковому признаку максимального размера TU, а MinTransformSize обозначает минимальный размер преобразования. Таким образом, меньшее значение из числа RootTuSize/(2MaxTransformSizeIndex) и 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 блока преобразования, когда флажковый признак размера TU имеет значение 0, может быть меньшим значением из числа максимального размера блока преобразования и размера текущего блока разбиения.
Однако текущий максимальный размер RootTuSize блока преобразования, который меняется согласно типу режима прогнозирования в блоке разбиения, является просто примером, и понятно, что другой примерный вариант осуществления не ограничен им.
Индекс и порядок сканирования блока данных на основании блоков кодирования, имеющих древовидную структуру, блока прогнозирования и блока преобразования, согласно одному или более примерным вариантам осуществления, далее будут подробно описаны со ссылкой на фиг. с 14 по 27.
Устройство 100 кодирования видео согласно примерному варианту осуществления использует растровый порядок кодирования в качестве порядка, в котором кодирование выполняется в блоках из максимальных блоков кодирования, включенных в серию последовательных макроблоков. Иерархические блоки кодирования согласно глубинам, включенным в максимальный блок кодирования, могут сканироваться зигзагообразным образом среди блоков кодирования, соответствующих одной и той же глубине. Кодирование минимальных блоков из каждого максимального блока кодирования может выполняться в растровом порядке сканирования.
Устройство 100 кодирования видео может обращаться к информации об окрестности текущего блока данных (в дальнейшем, указываемой ссылкой как информация об окрестности текущего блока данных), для того чтобы кодировать данные изображения, соответствующие текущему блоку данных. Например, когда текущий максимальный блок кодирования, текущий блок кодирования, соответствующий глубине кодирования, или текущий блок прогнозирования кодируются с прогнозированием, к информации о максимальном блоке кодирования или текущих блоках кодирования согласно глубинам, смежных с текущим максимальным блоком кодирования, текущему блоку кодирования, соответствующему глубине кодирования, или текущему блоку прогнозирования, и тому подобному, можно обращаться.
Более подробно, информация об окрестности может включать в себя информацию о по меньшей мере одном максимальном блоке кодирования на левой стороне текущего максимального блока кодирования, максимальном блоке кодирования на верхней его стороне, максимальном блоке кодирования на его верхней правой стороне, максимальном блоке кодирования на его левой верхней стороне, и т.д. Информация об окрестности может включать в себя информацию о блоках кодирования, расположенных на по меньшей мере одной из левой стороны, верхней стороны, правой верхней стороны и левой верхней стороны текущего максимального блока кодирования. Информация об окрестности также может включать в себя информацию о блоках прогнозирования, расположенных на левой стороне, верхней стороне, правой верхней стороне, левой верхней стороне текущего максимального блока кодирования, и т.д. Информация об окрестности также может включать в себя информацию о разделах, расположенных на по меньшей мере одной из левой стороны, верхней стороны, правой верхней стороны, левой верхней стороны текущего максимального блока кодирования, и т.д.
Информация об окрестности также может включать в себя информацию о минимальных блоках, расположенных на по меньшей мере одном из левой стороны, верхней стороны, правой верхней стороны, левой верхней стороны текущего блока кодирования, и т.д.
Более того, к части блока данных, в противоположность всей полноте блока данных, можно обращаться как к информации об окрестности. Например, информация об окрестности может включать в себя правую границу максимального блока кодирования, расположенного на левой нижней стороне текущего блока прогнозирования.
Поскольку блок данных, расположенный на левой нижней стороне текущего блока данных, сканируется позже, чем текущий блок данных, согласно растровому порядку сканирования по примерному варианту осуществления, к блоку данных, расположенному на левой нижней стороне текущего блока данных, можно не обращаться при кодировании текущего макроблока в способе кодирования макроблока, соблюдающем растровый порядок сканирования. Однако в настоящем примерном варианте осуществления даже когда максимальные блоки кодирования соответствуют только растровому порядку кодирования, поскольку минимальные блоки и блоки данных в максимальных блоках кодирования могут сканироваться зигзагообразно, минимальные блоки и блоки данных могут служить в качестве информации об окрестности.
Определитель 120 блока кодирования устройства 100 кодирования видео может проверять местоположение и применимость заданного блока кодирования. Проверяемый блок кодирования может быть блоком кодирования, имеющим древовидную структуру, то есть блоком кодирования, соответствующим глубине кодирования. Определитель 120 блока кодирования может проверять местоположение и применимость блока данных, смежного с текущим блоком данных. Блок данных, смежный с текущим блоком данных, может включать в себя по меньшей мере один из блоков данных, расположенных на левой стороне, верхней стороне, правой верхней стороне и левой верхней стороне текущего блока данных. смежный блок данных, который должен проверяться, может включать в себя по меньшей мере один из максимального блока кодирования, блока кодирования, блока прогнозирования, раздела, блока преобразования и минимального блока.
Декодер 230 данных изображения устройства 200 декодирования видео согласно примерному варианту осуществления рассматривает растровый порядок сканирования для максимальных блоков кодирования и зигзагообразный порядок сканирования для блоков кодирования по глубине, для того чтобы декодировать данные изображения, соответствующие каждому максимальному блоку кодирования, закодированному на основании информации о глубине кодирования и режиме кодирования для каждого максимального блока кодирования, для восстановления текущего кадра. В дальнейшем, блок кодирования, который сканируется, принимая во внимание растровый порядок сканирования для максимальных блоков кодирования и зигзагообразный порядок сканирования для блоков кодирования согласно глубинам, является блоком кодирования, соответствующим глубине кодирования из числа блоков кодирования, имеющих древовидную структуру.
К информации об окрестности можно обращаться, чтобы декодировать текущий блок данных. Например, межкадровое прогнозирование на текущем разделе может выполняться посредством обращения к вектору движения раздела, смежного с текущим разделом. Более того, межкадровое прогнозирование на текущем разделе может выполняться посредством обращения к значению пикселя блока данных, смежного со значением пикселя текущего раздела.
Декодер 230 данных изображения может проверять местоположение, применимость и тому подобное смежного блока данных, к которому можно обращаться, чтобы декодировать текущий блок данных. Соответственно, декодер 230 данных изображения может обращаться к информации об окрестности, проверяя применимость информации об окрестности, принимая во внимание растровый порядок сканирования для максимальных блоков кодирования и разделов, и зигзагообразный порядок сканирования или растровый порядок сканирования для минимальных блоков.
Декодер 230 данных изображения может проверять местоположения блоков данных на основании порядка сканирования. Например, поиск местоположения каждого максимального блока можно выполнять на основании адресов максимальных блоков кодирования согласно растровому порядку сканирования.
На основании индексов минимальных блоков согласно зигзагообразному порядку сканирования можно выполнять поиск местоположений минимальных блоков в максимальном блоке кодирования. В качестве альтернативы, на основании индексов минимальных блоков согласно растровому порядку сканирования, можно выполнять поиск местоположений минимальных блоков в максимальном блоке кодирования.
Индексы минимальных блоков согласно зигзагообразному порядку сканирования и индексы минимальных блоков согласно растровому порядку сканирования могут взаимно преобразовываться друг в друга. Для удобства пояснения, индекс, основанный на порядке сканирования, в дальнейшем указывается ссылкой как индекс сканирования.
Соответственные индексы сканирования блока кодирования, блока прогнозирования и блока преобразования могут выражаться на основании индекса сканирования минимального блока в соответствующем максимальном блоке кодирования. Индекс сканирования раздела блока прогнозирования также может быть выражен на основании индекса сканирования минимального блока в соответствующем максимальном блоке кодирования.
Местоположения или координаты отсчетов блока кодирования и блока прогнозирования могут быть выражены в качестве координат в соответствующем максимальном блоке кодирования. Местоположения или координаты отсчетов раздела блока прогнозирования и блока преобразования также могут выражаться в качестве координат в соответствующем блоке прогнозирования.
Местоположение текущего максимального блока кодирования может быть выражено в качестве местоположения пикселя, расположенного на левом верхнем краю максимального блока кодирования, который находится относительно местоположения отсчета, расположенного на левой верхней стороне текущей серии последовательных макроблоков. Местоположение текущего минимального блока может быть выражено в качестве местоположения пикселя, расположенного на левой верхней стороне текущего минимального блока, которое находится относительно местоположения отсчета, расположенного на левом верхней стороне соответствующего максимального блока кодирования.
Декодер 230 данных изображения может проверять местоположение и применимость заданного блока кодирования. Блок кодирования, который должен проверяться, может быть блоком кодирования, имеющим древовидную структуру, то есть блоком кодирования, соответствующим глубине кодирования. Декодер 230 данных изображения может проверять местоположение и применимость максимального блока кодирования, смежного с текущим максимальным блоком кодирования. Максимальный блок кодирования, смежный с текущим максимальным блоком кодирования, может включать в себя по меньшей мере один из максимальных блоков кодирования, расположенных на левой стороне, верхней стороне, правой верхней стороне и левой верхней стороне текущего максимального блока кодирования.
Декодер 230 данных изображения может проверять местоположение, индекс и применимость блока кодирования, смежного с текущим блоком кодирования. Блок кодирования, смежный с текущим блоком кодирования, может включать в себя по меньшей мере один из блоков кодирования, расположенных на левой стороне и верхней стороне текущего блока кодирования. Проверяемый блок кодирования может быть одним из блоков кодирования, имеющих древовидную структуру, то есть блоком кодирования, соответствующим глубине кодирования.
Декодер 230 данных изображения может проверять местоположение, индекс и применимость блока прогнозирования, смежного с текущим блоком прогнозирования. Блок прогнозирования, смежный с текущим блоком прогнозирования, может включать в себя по меньшей мере один из блоков прогнозирования, расположенных на левой стороне, верхней стороне, правой верхней стороне и левой верхней стороне текущего блока прогнозирования.
Декодер 230 данных изображения может проверять местоположение, индекс и применимость раздела, смежного с текущим блоком прогнозирования. Раздел, смежный с текущим блоком прогнозирования, может включать в себя по меньшей мере один из разделов, расположенных на левой стороне, верхней стороне, правой верхней стороне и левой верхней стороне текущего блока прогнозирования.
Декодер 230 данных изображения может проверять местоположение, индекс и применимость минимального блока, смежного с текущим блоком прогнозирования, включенным в текущий максимальный блок кодирования. Минимальный блок, смежный с текущим блоком прогнозирования, может включать в себя по меньшей мере один из минимальных блоков, расположенных на левой стороне, верхней стороне, правой верхней стороне и левой верхней стороне текущего блока прогнозирования.
Декодер 230 данных изображения может проверять местоположение и применимость границы, смежной с текущим блоком прогнозирования. Граница, смежная с текущим блоком прогнозирования, может включать в себя границу по меньшей мере одного из блоков данных, расположенных на левой стороне, верхней стороне, правой верхней стороне, левой верхней стороне и левой нижней стороне текущего блока прогнозирования. Местоположения пикселей на границе могут выражаться в качестве координаты относительно местоположения пикселя на левой верхней стороне текущего блока кодирования или могут выражаться в качестве координаты относительно местоположения отсчета на левой верхней стороне текущего максимального блока кодирования. Если пиксель, смежный с текущим блоком кодирования, отклоняется от текущего максимального блока кодирования, пиксель может определяться неприменимым.
Декодер 230 данных изображения может проверять применимость блоков кодирования согласно глубинам или блока кодирования, который включает в себя минимальный блок, на основании информации о кодировании минимального блока. Соответственно, декодер 230 данных изображения может проверять местоположения или применимости блока прогнозирования, блоков кодирования согласно глубинам, максимального блока кодирования, и тому подобного, смежных с текущим блоком данных, используя информацию о кодировании минимального блока, смежного с текущим блоком данных.
Согласно растровому порядку сканирования, в момент времени, когда сканируется текущий максимальный блок кодирования, максимальный блок кодирования, расположенный на левой стороне или верхней стороне текущего максимального блока кодирования уже был декодирован, но максимальный блок кодирования, расположенный на правой стороне или нижней стороне текущего максимального блока кодирования, еще не был декодирован.
Случай, где максимальный блок кодирования включает в себя по меньшей мере один макроблок, предполагается для сравнения существующих макроблоков с иерархическими блоками данных согласно примерному варианту осуществления. Далее будет проиллюстрирован случай, где первый макроблок и второй макроблок включены в один и тот же максимальный блок кодирования, и первый макроблок находится на левой нижней стороне второго макроблока.
Согласно растровому порядку сканирования, первый макроблок сканируется позже, чем второй макроблок. Согласно зигзагообразному порядку сканирования, первый макроблок сканируется раньше, чем второй макроблок. В способе кодирования, поскольку первый макроблок сканируется позже, чем второй макроблок, согласно растровому порядку сканирования, кодируется и декодируется позже, чем второй макроблок, второй макроблок может не ссылаться на информацию о первом макроблоке. Однако, устройство 100 кодирования видео согласно варианту осуществления настоящего изобретения может обращаться к первому макроблоку в качестве информации об окрестности второго макроблока при кодировании второго макроблока.
Поскольку устройство 100 кодирования видео и устройство 200 декодирования видео согласно примерным вариантам осуществления используют не только растровый способ сканирования, но также и зигзагообразный способ сканирования для каждого из иерархических блоков кодирования, имеющих древовидную структуру, устройства 100 и 200 могут использовать широкий диапазон информации о соседстве по сравнению с уровнем техники.
Фиг. 14 иллюстрирует растровый порядок сканирования максимального блока 1610 кодирования согласно примерному варианту осуществления. Со ссылкой на фиг. 14, максимальный блок 1610 кодирования сканируется от левого края кадра 1600 к правому краю кадра 1600 и от верхнего края кадра 1600 к нижнему краю кадра, согласно растровому порядку сканирования. Соответственно, согласно растровому порядку сканирования, в момент времени, когда сканируется текущий максимальный блок кодирования, максимальный блок кодирования, расположенный на левой стороне или верхней стороне текущего максимального блока кодирования, уже был отсканирован, но максимальный блок кодирования, расположенный на правой стороне или нижней стороне текущего максимального блока кодирования, еще не был отсканирован.
Устройство 200 декодирования видео согласно примерному варианту осуществления может быть информировано о местоположении текущего максимального блока кодирования, удовлетворяющего растровому порядку сканирования, выясняя адрес текущего максимального блока кодирования, размер максимального блока кодирования и размер кадра. Здесь местоположение текущего максимального блока кодирования соответствует расстоянию от левого верхнего края кадра до левого верхнего края текущего максимального блока кодирования и может выражаться в качестве местоположения пикселя на левой верхней стороне текущего максимального блока кодирования, который находится относительно местоположения отсчета на левом верхнем краю кадра.
Порядок сканирования разделов кодовых блоков согласно глубинам далее будет описан со ссылкой на фиг. 9. Согласно глубинам с 0 по d-1, разделы блоков кодирования по глубинам соблюдают растровый порядок сканирования. Например, если глубина имеет значение 0, тип 914 раздела, имеющий размер 2N_0×N_0 и тип 916 раздела, имеющий размер N_0×2N_0, каждый сканируется таким образом, чтобы разделы, имеющие индексы 0 и 1, сканировались в порядке индексов. Тип 918 раздела, имеющий размер N_0×N_0, сканируется таким образом, чтобы разделы, имеющие индексы 0, 1, 2 и 3, сканировались в порядке индексов.
Декодер 230 данных изображения устройства 200 декодирования видео может выполнять поиск местоположения раздела в каждом из кодовых блоков согласно глубинам. В текущем блоке кодирования, когда известны индекс текущего раздела, размер каждого раздела и размер текущего блока кодирования, может быть выяснено местоположение текущего раздела, удовлетворяющего растровому порядку сканирования.
Здесь, местоположение текущего раздела соответствует расстоянию от левого верхнего края текущего блока данных до левого верхнего края текущего раздела и может быть выражено в качестве местоположения пикселя на левом верхнем краю текущего раздела, который имеет место относительно местоположения отсчета на левом верхнем краю текущего блока данных.
Согласно одному или более примерных вариантов осуществления, минимальные блоки в максимальном блоке кодирования могут сканироваться в зигзагообразном порядке сканирования или растровом порядке сканирования. Соответственно, индекс, основанный на зигзагообразном порядке сканирования, и индекс, основанный на растровом порядке сканирования, могут быть определены для каждого минимального блока. Фиг. 15 иллюстрирует минимальные блоки 1710, удовлетворяющие растровому порядку сканирования, согласно примерному варианту осуществления, а фиг. 16 иллюстрирует минимальные блоки 1810, удовлетворяющие зигзагообразному порядку сканирования, согласно примерному варианту осуществления.
Со ссылкой на фиг. 15, минимальные блоки 1710 сканируются в растровом порядке сканирования, а именно, с левого края максимального блока 1700 кодирования до его правого края, и от его верхнего края до его нижнего края. Таким образом, сканирование выполняется, начиная с минимального блока 1710 на верхнем краю и в порядке минимальных блоков, имеющих индексы 0, 1, 2, 3, 4, 5, 6 и 7 от левого края до правого края. Таким образом, сканирование движется вниз и выполняется в порядке минимальных блоков, имеющих индексы 8, 9, 10, 11, 12, 13, 14 и 15. Сканирование вновь перемещается вниз и выполняется в порядке минимальных блоков, имеющих индексы 16, 17, 18 и 19.
Декодер 230 данных изображения устройства 200 декодирования видео согласно примерному варианту осуществления может выполнять поиск местоположений минимальных блоков в каждом максимальном блоке кодирования. Когда известны индекс текущего минимального блока, размер каждого минимального блока и размер текущего максимального блока кодирования, удовлетворяющие растровому порядку сканирования, может выясняться местоположение текущего минимального блока, удовлетворяющего растровому порядку сканирования.
Здесь, местоположение минимального блока соответствует расстоянию от левого верхнего края текущего максимального блока кодирования до левого верхнего края минимального блока и может быть выражено в качестве местоположения пикселя на левом верхнем краю текущего минимального блока, который имеет место относительно местоположения отсчета на левом верхнем краю текущего максимального блока кодирования.
Со ссылкой на фиг. 16, сканирование в зигзагообразном порядке сканирования выполняется среди блоков кодирования, соответствующих одной и той же глубине. Например, максимальный блок 1800 кодирования имеет глубину 0, а минимальные блоки 1810 имеют глубину 3. Четыре минимальных блока группируются, и зигзагообразное сканирование может выполняться на блоках из группы. Другими словами, минимальные блоки 1810, имеющие индексы 0, 1, 2 и 3 сканируются в зигзагообразном порядке сканирования, и минимальные блоки 1810, имеющие индексы 4, 5, 6 и 7 сканируются в зигзагообразном порядке сканирования.
Группа минимальных блоков 1810, имеющих индексы 0, 1, 2 и 3 является блоком кодирования, имеющим глубину 2. Соответственно, первая группа, включающая в себя минимальные блоки 1810, имеющие индексы 0, 1, 2 и 3, вторая группа, включающая в себя минимальные блоки 1810, имеющие индексы 4, 5, 6 и 7, третья группа, включающая в себя минимальные блоки 1810, имеющие индексы 8, 9, 10 и 11, и четвертая группа, включающая в себя минимальные блоки 1810, имеющие индексы 12, 13, 14 и 15, соответственно, являются блоками кодирования, имеющими глубины 2, и каждая может сканироваться в зигзагообразном порядке сканирования.
Подобным образом, сканирование может выполняться в зигзагообразном порядке сканирования среди 4 блоков кодирования, соответствующих глубине 1, при этом каждый из блоков кодирования, соответствующих глубине 1, включает в себя четыре блока кодирования, соответствующие глубине 2.
Декодер 230 данных изображения устройства 200 декодирования видео согласно примерному варианту осуществления может выполнять поиск местоположений минимальных блоков в максимальном блоке кодирования. Когда известны индекс текущего минимального блока, размер каждого минимального блока и размер текущего максимального блока кодирования, удовлетворяющие зигзагообразному порядку сканирования, может выясняться местоположение текущего минимального блока, удовлетворяющего зигзагообразному порядку сканирования.
Здесь, местоположение минимального блока соответствует расстоянию от левого верхнего края текущего максимального блока кодирования до левого верхнего края минимального блока и может быть выражено в качестве местоположения пикселя на левом верхнем краю текущего минимального блока, который имеет место относительно местоположения отсчета на левом верхнем краю текущего максимального блока кодирования.
Декодер 230 данных изображения устройства 200 декодирования видео может взаимно преобразовывать индексы минимальных блоков согласно зигзагообразному порядку сканирования и индексы минимальных блоков согласно растровому порядку сканирования друг в друга, в пределах максимального блока кодирования. Взаимное преобразование может выполняться, принимая во внимание размер максимального блока кодирования, текущую глубину и максимальную глубину.
Фиг. 17 иллюстрирует зависимость между местоположениями и индексами сканирования блока кодирования, блока прогнозирования, раздела и блока преобразования согласно варианту осуществления настоящего изобретения. Согласно фиг. 17 кадр разбит на серии последовательных макроблоков, и серия 1750 последовательных макроблоков включает в себя множество максимальных блоков кодирования LCU. Местоположение lcuAddr максимального блока 1760 кодирования из числа максимальных блоков LCU кодирования, включенных в серию 1750 последовательных макроблоков, может быть выражено в качестве относительного местоположения отсчета на левом верхнем краю максимального блока 1760 кодирования по сравнению с отсчетом на левом верхнем краю серии 1750 последовательных макроблоков.
Местоположение блока 1770 кодирования из числа блоков кодирования, имеющих древовидную структуру в максимальном блоке 1760 кодирования может быть выражено в качестве индекса cuIdx сканирования блока 1770 кодирования по сравнению с отсчетом на левом верхнем краю максимального блока 1760 кодирования. Если блок 1770 кодирования является блоком кодирования, соответствующим глубине кодирования, то есть блоком кодирования, который больше не разбивается до более низкой глубины, бок 1770 кодирования становится блоком 1770 прогнозирования, а местоположение блока 1770 прогнозирования может быть выражено в качестве индекса puIdx сканирования блока 1770 прогнозирования по сравнению с отсчетом на левом верхнем краю максимального блока 1760 кодирования.
Блок 1770 прогнозирования может быть разбит на по меньшей мере один раздел PU. Раздел 1790 PU из числа разделов PU блока 1770 прогнозирования может быть выражен в качестве индекса puPartIdx сканирования раздела 1790 PU по сравнению с отсчетом на левом верхнем краю блока 1770 прогнозирования. Блок 1770 прогнозирования может включать в себя по меньшей мере блоки TU преобразования. Блок 1780 преобразования из числа блоков 1770 преобразования блока 1770 прогнозирования может быть выражен в качестве индекса tuIdx сканирования блока 1780 преобразования по сравнению с отсчетом на левом верхнем краю блока 1770 прогнозирования.
Устройство 100 кодирования видео согласно примерному варианту осуществления может использовать местоположения и индексы сканирования блока кодирования, блока прогнозирования, раздела и блока преобразования, описанных выше со ссылкой на фиг. 17, для того чтобы выполнять кодирование видео. Устройство 200 декодирования видео согласно примерному варианту осуществления может декодировать кодированные данные изображения на основании блоков кодирования, имеющих древовидную структуру, посредством использования местоположений и индексов сканирования блока кодирования, блока прогнозирования, раздела и блока преобразования.
0
1
2
3
0
1
2
3
Фиг. 18 иллюстрирует индекс сканирования блока 1850 кодирования согласно примерному варианту осуществления. Со ссылкой на фиг. 18, блок 1850 кодирования имеет высоту CUSize и ширину CUSize, и в то время как глубина блока 1850 кодирования увеличивается на один уровень, блок 1850 кодирования может быть разбит на четыре блока кодирования, CU, CU, CU и CU, соответствующих более низкой глубине. Блоки CU, CU, CU, CU кодирования каждый имеет высоту CUSize/2 и ширину CUSize/2.
0
1
2
3
0
1
2
3
Индекс сканирования блока 1850 сканирования и индексы сканирования блоков CU, CU, CU и CU кодирования выражаются в качестве индексов сканирования минимальных блоков, расположенных на левых верхних краях блока 1850 кодирования и блоков CU, CU, CU и CU кодирования, а индекс сканирования минимального блока представляет порядок, в котором сканируется минимальный блок в максимальном блоке кодирования. Например, индекс cuIdx блока 1850 кодирования представляет индекс минимального блока на левом верхнем краю блока 1850 кодирования.
Размер блока данных, такого как максимальный блок кодирования, блок кодирования, блок прогнозирования, раздел или блок преобразования, может быть выражен в качестве количества его минимальных блоков. Например, количество минимальных блоков, скомпонованных по высоте (ширине) блока данных, может указывать высоту (ширину) блока данных.
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
0
1
2
3
Соответственно, поскольку индексы сканирования блоков CU, CU, CU и CU кодирования соответствуют местоположениям вдобавок к левому верхнему краю блока 1850 кодирования на блоки CU, CU, CU и CU кодирования, индексы блоков CU, CU, CU и CU кодирования могут быть выражены с использованием размеров блоков CU, CU, CU и CU кодирования, которые увеличиваются от индекса cuIdx сканирования блок 1850 кодирования в показателях количества минимальных блоков. Подробно, индексы сканирования блоков CU, CU, CU и CU кодирования могут быть определены, как изложено ниже:
0
0
0
(1) индексом сканирования блока CU кодирования является cuIdx. Таким образом, индекс сканирования блока CU кодирования является таким же, как у блока 1850 кодирования, который находится выше, чем блок CU кодирования в показателях глубин.
1
0
1
(2) Индекс сканирования блока CU кодирования увеличивается от индекса сканирования верхнего блока 1850 кодирования на количество минимальных блоков, CuSizeInSu/2, скомпонованных по ширине блока CU кодирования. Таким образом, индекс сканирования блока CU кодирования имеет значение cuIdx+Cu-SizeInSu/2.
2
0
2
(3) Индекс сканирования блока CU кодирования увеличивается от индекса сканирования верхнего блока 1850 кодирования на произведение количества минимальных блоков, CuSizeInSu/2, скомпонованных по высоте блока CU кодирования, и количества минимальных блоков, Lcu-SizeInSu, скомпонованных по ширине максимального блока кодирования. Таким образом, индекс сканирования блока CU кодирования имеет значение cuIdx + CuSizeInSu/2 * LcuSizeInSu.
3
2
2
3
(4) Индекс сканирования блока CU кодирования увеличивается от индекса сканирования блока CU кодирования на горизонтальный размер CuSizeInSu/2, блока CU кодирования. Таким образом, индекс сканирования блока CU кодирования имеет значение cuIdx + CuSizeInSu/2 + CuSizeInSu/2 * LcuSizeInSu.
Фиг. 19 иллюстрирует порядок сканирования блоков кодирования по индексам сканирования блоков кодирования, согласно примерному варианту осуществления. Со ссылкой на фиг. 19, блоки кодирования, имеющие древовидную структуру в пределах максимального блока 1900 кодирования, каждый может иметь такой же размер, как у минимального блока, или может повторно разбиваться, например, до тех пор, пока дополнительное разбиение не разрешено и не возможно. Блоки кодирования, имеющие древовидную структуру в пределах максимального блока 1900 кодирования, могут включать в себя блок 1970 кодирования, имеющий глубину 1, блоки 1910, 1912, 1914 и 1916 кодирования, имеющие глубину 2, блоки 1960, 1962, 1964 и 1966 кодирования, имеющие глубину 2, и блоки 1920, 1922, 1924, 1926, 1930, 1932, 1934, 1936, 1940, 1942, 1944, 1946, 1950, 1953, 1954 и 1956 кодирования, имеющие глубину 3.
Согласно настоящему примерному варианту осуществления, зигзагообразное сканирование выполняется среди всех из блоков кодирования, имеющих древовидную структуру, и также выполняется среди блоков кодирования, имеющих одинаковую глубину.
Соответственно, порядок сканирования и индексы сканирования блоков кодирования, имеющих древовидную структуру в пределах максимального блока 1900 кодирования, может быть определен в качестве порядка от блоков кодирования, имеющих глубину 2 (1910→ 1912→ 1914→ 1916), к блокам кодирования, имеющим глубину 3 (1920→ 1922→ 1924→ 1926), к блокам кодирования, имеющим глубину 3 (1930→ 1932→ 1934→ 1936), к блокам кодирования, имеющим глубину 3 (1940→ 1942→ 1944→ 1946), к блокам кодирования, имеющим глубину 3 (1950→ 1953→ 1954→ 1956), к блокам кодирования, имеющим глубину 2 (1960→ 1962→ 1964→ 1966), и до блоков 1970 кодирования, имеющих глубину 1.
Фиг. 20 иллюстрирует индексы сканирования разделов блока прогнозирования по типам разделов согласно примерному варианту осуществления. Со ссылкой на фиг. 20, разделы блока прогнозирования могут быть определены в качестве симметричных типов 2050, 2052, 2054 и 2056 раздела и асимметричных типов 2060, 2062, 2064 и 2066 раздела согласно отношениям, при которых разбивается по меньшей мере одна из высоты и ширины блока прогнозирования.
Местоположение блока прогнозирования может быть выражено в качестве индекса блока прогнозирования, который определен согласно размеру минимального блока. Номера 0, 1, 2 и 3, отмеченные в пределах симметричных типов 2050, 2052, 2054 и 2056 раздела, и асимметричных типов 2060, 2062, 2064 и 2066 раздела, являются индексами сканирования разделов блока прогнозирования.
Декодер 230 данных изображения согласно примерному варианту осуществления может выполнять поиск местоположений блока прогнозирования на основании индекса сканирования блока прогнозирования. Подробно, декодер 230 данных изображения может выполнять поиск относительного местоположения пикселя на левом верхнем краю блока прогнозирования по сравнению с отсчетом на левом верхнем краю максимального блока кодирования, используя индекс сканирования блока прогнозирования, высоты и ширины минимального блока, и размера максимального блока кодирования.
Декодер 230 данных изображения может выполнять поиск местоположения раздела PU на основании индекса сканирования раздела PU. Подробно, декодер 230 данных изображения может выполнять поиск относительного местоположения пикселя на левом верхнем краю раздела PU по сравнению с отсчетом на левом верхнем краю блока прогнозирования, используя индекс сканирования раздела PU, высоты и ширины минимального блока, и размера блока прогнозирования.
Подобным образом, декодер 230 данных изображения может выполнять поиск местоположения блока преобразования на основании индекса сканирования блока преобразования. Подробно, декодер 230 данных изображения может выполнять поиск относительного местоположения пикселя на левом верхнем краю блока преобразования по сравнению с отсчетом на левом верхнем краю блока прогнозирования, используя индекс сканирования блока преобразования, высоты и ширины минимального блока, и размера блока прогнозирования.
Фиг. 21 иллюстрирует блоки данных, которые могут использоваться в качестве информации об окрестности текущего блока данных, согласно примерному варианту осуществления. Со ссылкой на фиг. 21, устройство 100 кодирования видео и устройство 200 декодирования видео согласно примерным вариантам осуществления могут обращаться к блокам данным, смежным с текущим блоком 2170 данных при кодировании и декодировании текущего блока 2170 данных. Блок данных является максимальным блоком кодирования, блоком кодирования, блоком прогнозирования или разделом.
Блоки данных, смежные с текущим блоком X(2170) данных, могут быть левым блоком A(2180) данных, верхним блоком B(2182) данных, правым верхним блоком C(2184) данных, левым верхним блоком D(2186) данных и левым нижним блоком E(2188) данных.
Фиг. 22 иллюстрирует максимальные блоки кодирования, смежные с текущим максимальным блоком 2270 кодирования согласно примерному варианту осуществления. Со ссылкой на фиг. 22, устройство 100 кодирования видео согласно примерному варианту осуществления может обращаться к максимальным блокам кодирования, смежным с текущим максимальным блоком 2270 кодирования при кодировании текущего максимального блока 2270 кодирования. Устройство 200 декодирования видео согласно примерному варианту осуществления может обращаться к максимальным блокам кодирования, смежным с текущим максимальным блоком 2270 кодирования при декодировании текущего максимального блока 2270 кодирования.
Максимальные блоки кодирования, смежные с текущим максимальным блоком кодирования, могут быть левым максимальным блоком 2280 кодирования, верхним максимальным блоком 2282 кодирования, правым верхним максимальным блоком 2284 кодирования, левым верхним максимальным блоком 2286 кодирования и левым нижним максимальным блоком 2288 кодирования. Декодер 230 данных изображения устройства 200 декодирования видео может выполнять поиск адресов и применимости lcuAddrA, lcuAddrB, lcuAddrC, lcuAddrD, lcuAddrE смежных максимальных блоков 2280, 2282, 2284, 2286 и 2288 кодирования. Смежные максимальные блоки 2280, 2282, 2284, 2286 и 2288 кодирования могут быть выражены в качестве местоположений относительно адреса CurrLcuAddr текущего максимального блока 2270 кодирования.
Декодер 230 данных изображения устройства декодирования видео может проверять применимость каждого максимального блока кодирования. В случае, ином чем случай (i), где максимальный блок кодирования не включен в текущий кадр, случай (ii), где максимальный блок кодирования не включен в текущую серию последовательных макроблоков, и случае (iii), где адрес максимального блока кодирования находится позже, чем у текущего максимального блока кодирования в показателях порядка сканирования, данные максимального блока кодирования могут быть найдены применимыми.
Фиг. 23 иллюстрирует макроблоки, удовлетворяющие растровому способу сканирования. Кодек уровня техники, такой как H.264, использует макроблоки, каждый из которых имеет максимальный размер 16x16, чтобы служить в качестве блока, в котором закодированы данные. Со ссылкой на фиг. 23, хотя текущий макроблок 2010, существующий в кадре 2000, может декодироваться посредством обращения к окрестным макроблокам, существующим в том же самом кадре2000, поскольку макроблоки декодируются в растровом порядке сканирования, макроблок 2020, расположенный на левой нижней стороне текущего макроблока 2010, еще не был декодирован и, таким образом, к нему не может обращаться текущий макроблок 2010. В дальнейшем, когда к смежному блоку данных не может обращаться текущий блок кодирования, так как он еще не был декодирован, смежный блок данных определяется как неприменимый.
Фиг. 24 иллюстрирует текущий блок 2156 прогнозирования, удовлетворяющие зигзагообразному порядку сканирования, согласно примерному варианту осуществления. В способе кодирования, поскольку макроблоки сканируются согласно растровому способу сканирования, второй макроблок может не опираться на информацию о первом макроблоке, отсканированном позже, чем второй макроблок. Однако, устройство 100 кодирования видео согласно примерному варианту осуществления может обращаться к первому макроблоку в качестве окрестной информации второго макроблока, для того чтобы кодировать второй макроблок.
Со ссылкой на фиг. 24, беря в качестве примера кадр 2100, максимальный блок кодирования, имеющий размер 64×64, декодируется в зигзагообразном порядке сканирования блоков 2110, 2120, 2130 и 2140 кодирования, соответствующих глубине 1. Более того, блоки 2142, 2144, 2146 и 2148 кодирования, соответствующие глубине 2 в блоке 2140 кодирования, соответствующем глубине 1, также сканируются в зигзагообразном порядке.
В зигзагообразном порядке сканирования, после того, как декодирован блок 2140 кодирования глубины 1, декодируется блок 2150 кодирования глубины 1. Декодирование блока 2150 кодирования глубиной 1 выполняется в порядке блоков 2152, 2154 и 2156 кодирования, соответствующих глубине 2. Поскольку блок 2144 кодирования глубиной 2 существует на левой нижней стороне блока 2156 кодирования, имеющего глубину 2, и уже был декодирован согласно зигзагообразному порядку сканирования, к блоку 2144 кодирования глубиной 2 можно обращаться в качестве информации об окрестности блока 2156 кодирования глубиной 2. Если блок 2156 кодирования глубиной 2 больше не разбивается до более низкой глубины, блок 2156 кодирования становится блоком прогнозирования, и блок 2156 прогнозирования может декодироваться с прогнозированием посредством обращения к блоку 2144 кодирования глубиной 2.
Согласно растровому способу сканирования, блок 2144 кодирования декодируется позже, чем блок 2156 кодирования, и, таким образом, к информации о блоке 2144 кодирования можно обращаться при декодировании блока 2156 кодирования.
Фиг. 25 иллюстрирует минимальные блоки, смежные с текущим разделом, согласно примерному варианту осуществления. Со ссылкой на фиг. 25, существуют максимальные блоки 2210, 220 и 2230 кодирования, соответствующие глубине 0, и минимальный блок 2240 кодирования устанавливается, чтобы иметь глубину 3. Информация об окрестности текущего раздела 2250 текущего максимального блока 2210 кодирования указывает внешний минимальный блок, смежный с минимальным блоком в текущем разделе 2250.
Например, информация о левой окрестности, информация о верхней окрестности, и информация о левой верхней окрестности текущего раздела 2250 указывают минимальные блоки 2262, 2260 и 2266, расположенные на левой стороне, верхней стороне и левой верхней стороне минимального блока 2256, расположенного на левой верхней стороне текущего раздела 2250.
Информация о правой верхней окрестности текущего раздела 2250 указывают минимальный блок 2250, расположенный на правой верхней стороне минимального блока 2254, расположенного на правой верхней стороне текущего раздела 2250. Информация о левой нижней окрестности текущего раздела 2250 указывает минимальный блок 2268, расположенный на левой нижней стороне минимального блока 2256, расположенного на левой нижней стороне текущего раздела 2250.
Декодер 230 данных изображения устройства 200 декодирования видео согласно примерному варианту осуществления может проверять местоположение и применимость минимального блока или максимального блока кодирования, который является смежным с текущим разделом. Адрес смежного минимального блока или местоположение максимального блока кодирования может быть выражена в качестве индекса минимального блока, смежного с текущим разделом, или адреса максимального блока кодирования, включающего в себя соседний минимальный блок.
В случае, ином чем случай (i), где максимальный блок кодирования не включен в текущий кадр, случай (ii), где максимальный блок кодирования не включен в текущую серию последовательных макроблоков, случае (iii), где адрес максимального блока кодирования находится позже, чем у текущего максимального блока кодирования в показателях порядка сканирования, или случай (iv), где индекс минимального блока на левой верхней стороне более глубокого блока кодирования согласно зигзагообразному порядку сканирования находится позже, чем у текущего минимального блока согласно зигзагообразному порядку сканирования в показателях порядка сканирования, данные более глубокого блока кодирования могут быть найдены применимыми.
Для поиска информации об окрестности текущего раздела, может рассматриваться индекс минимального блока, расположенного на левой верхней стороне, правой верхней стороне или левой нижней стороне в пределах текущего раздела, и используются информация о типе разбиения и информация о текущей глубине. Если все разделы не одинаковы по размеру, используются индексы разделов для текущего блока прогнозирования.
Фиг. 26 - схема для пояснения способа прогнозирования вектора движения с использованием информации об окрестности, согласно примерному варианту осуществления. Устройство 100 кодирования видео и устройство 200 декодирования видео согласно примерным вариантам осуществления могут обращаться к вектору движения блока прогнозирования, смежного с текущим блоком прогнозирования, при выполнении прогнозирования движения на основании межкадрового режима.
То есть, как показано на фиг. 26, для прогнозирования информации о движении текущего блока 2300 прогнозирования можно обращаться к фрагментам информации MV_A(2310), MV_B(2320), MV_C(2330), MV_D(2340) и MV_E(2350) о движении блоков прогнозирования, смежных с текущим блоком 2300 прогнозирования. Фрагменты MV_A(2310), MV_B(2320), MV_C(2330), MV_D(2340) и MV_E(2350) информации о движении являются информацией об окрестности текущего блока 2300 прогнозирования, то есть информацией о блоках прогнозирования, расположенных на левой стороне, верхней стороне, правой верхней стороне, левой верхней стороне и левой нижней стороне текущего блока 2300 прогнозирования. Поиск фрагментов MV_A(2310), MV_B(2320), MV_C(2330), MV_D(2340) и MV_E(2350) информации о движении может быть выполнен посредством использования соответственной информации о кодировании минимальных блоков соответствующих блоков прогнозирования.
Фиг. 27 иллюстрирует способ интерполяции, использующий информацию об окрестности, согласно примерному варианту осуществления. Устройство 100 кодирования видео и устройство 200 декодирования видео согласно примерным вариантам осуществления могут обращаться к значению пикселя у пикселя на границе блока прогнозирования, смежного с текущим блоком прогнозирования при выполнении кодирования с прогнозированием на основании внутрикадрового режима.
То есть, как показано на фиг. 27, значение пикселя текущего блока 2400 прогнозирования может быть спрогнозировано посредством обращения к значениям пикселя у пикселей на границе блоков данных, смежных с текущим блоком 2400 прогнозирования, то есть контекстных пикселей 2410 и 2420. Контекстный пиксель 2430 является информацией об окрестности текущего блока 2400 прогнозирования, то есть информацией о пикселях, расположенных на левой нижней стороне текущего блока 2400 прогнозирования.
В кодеке из уровня техники, основанном на макроблоках, соответствующих растровому порядку сканирования, информация об окрестности, расположенной на левой нижней стороне текущего макроблока, то есть информация MV_E(2350) о движении или контекстный пиксель 2430, не могут использоваться в качестве информации об окрестности.
Однако устройство 100 кодирования видео и устройство 200 декодирования видео согласно примерным вариантам осуществления могут обращаться к информации об окрестности, расположенной на левой нижней стороне текущего блока данных, поскольку блоки кодирования согласно иерархическим глубинам кодируются и декодируются согласно зигзагообразному порядку сканирования. Таким образом, если устройство 100 кодирования видео и устройство 200 декодирования видео находят информацию об окрестности, расположенной на левой нижней стороне текущего применимого блока данных, устройство 100 кодирования видео и устройство 200 декодирования видео могут обращаться к информации об окрестности при кодировании или декодировании текущего блока данных.
Фиг. 28 - блок-схема последовательности операций способа, иллюстрирующая способ кодирования видео посредством обращения к информации об окрестности, согласно примерному варианту осуществления. Со ссылкой на фиг. 28, на операции 2510, текущий кадр разбивается на по меньшей мере один максимальный блок кодирования.
На операции 2520, по меньшей мере одна глубина кодирования определяется посредством кодирования данных изображения, соответствующих каждому максимальному блоку кодирования, на основании блоков кодирования, иерархически разбиваемых по мере того, как увеличивается глубина, и определяется блок кодирования согласно древовидной структуре. Максимальный блок кодирования пространственно разбивается всякий раз, когда возрастает глубина, и таким образом разбивается на блоки кодирования более низкой глубины. Каждый блок кодирования может разбиваться на блоки кодирования другой более низкой глубины, будучи пространственно разбиваемым независимо от смежных блоков кодирования. Кодирование повторно выполняется на каждом блоке кодирования согласно глубинам. К тому же, типы раздела и блоки преобразования, имеющие минимальную ошибку кодирования, определяются для каждого более глубокого блока кодирования. Для того чтобы определять глубину кодирования, имеющую минимальную ошибку кодирования, в каждом максимальном блоке кодирования, ошибки кодирования могут измеряться и сравниваться во всех более глубоких блоках кодирования по глубинам.
Данные изображения кодируются, принимая во внимание растровый порядок сканирования среди максимальных блоков кодирования и зигзагообразный порядок сканирования между более глубокими блоками кодирования, включенными в каждый из максимальных блоков кодирования. Данные изображения также могут кодироваться посредством обращения к применимой информации об окрестности, принимая во внимание порядок сканирования среди блоков данных.
На операции 2530, кодированные данные изображения заключительного результата кодирования согласно глубине кодирования выдаются для каждого максимального блока кодирования с кодированной информацией о глубине кодирования и режиме кодирования. Кодированная информация о режиме кодирования может включать в себя информацию о глубине кодирования или информацию о разбиении, информацию о типе разделения блока прогнозирования, режиме прогнозирования и размере блока преобразования. Кодированная информация о режиме кодирования может передаваться в декодер с кодированными данными изображения.
Фиг. 29 - блок-схема последовательности операций способа, иллюстрирующая способ декодирования видео посредством обращения к информации об окрестности, согласно примерному варианту осуществления. Со ссылкой на фиг. 29, на операции 2610, битовый поток кодированного видео принимается и синтаксически анализируется.
На операции 2620, кодированные данные изображения текущего кадра, назначенные в максимальный блок кодирования, получаются из синтаксически проанализированного битового потока, и информация о глубине кодирования и режиме кодирования по максимальным блокам кодирования извлекается из подвергнутого синтаксически проанализированного битового потока.
Глубина кодирования каждого максимального блока кодирования является глубиной, имеющей минимальную ошибку кодирования в каждом максимальном блоке кодирования. При кодировании каждого максимального кодового блока, данные изображения кодируются на основании по меньшей мере одного блока данных, полученного иерархическим разбиением каждого максимального кодового блока согласно глубинам.
Согласно информации о глубине кодирования и режиме кодирования, максимальный кодовый блок может быть разбит на блоки кодирования, имеющие древовидную структуру. Каждый из блоков кодирования, имеющих древовидную структуру, определен в качестве блока кодирования, соответствующего глубине кодирования, и оптимально кодируется в отношении выдачи минимальной ошибки кодирования. Соответственно, эффективность кодирования и декодирования изображения может быть улучшена декодированием каждого фрагмента кодированных данных изображения в блоках кодирования, имеющих древовидную структуру, после определения по меньшей мере одной глубины кодирования согласно блокам кодирования.
На операции 2530, кодированные данные изображения каждого максимального блока кодирования декодируются, принимая во внимание растровый порядок сканирования среди максимальных блоков кодирования и зигзагообразный порядок сканирования между более глубокими блоками кодирования, включенными в каждый из максимальных блоков кодирования. Может быть выполнен поиск местоположений максимальных блоков кодирования согласно растровому порядку сканирования и местоположения более глубоких блоков кодирования согласно зигзагообразному порядку сканирования, а индексы минимальных блоков согласно зигзагообразному порядку сканирования и индексы минимальных блоков согласно растровому порядку сканирования могут взаимно преобразовываться друг в друга.
Применимость информации об окрестности может быть проверена, и к информации об окрестности можно обращаться, чтобы декодировать заданный блок кодирования, принимая во внимание порядок сканирования различных иерархических блоков данных, такой как растровый порядок сканирования для максимальных блоков кодирования или блоков прогнозирования, либо зигзагообразный порядок сканирования или растровый порядок сканирования для минимальных блоков. Окрестная информация согласно примерному варианту осуществления может включать в себя информацию о блоках данных, расположенных на левой нижней стороне текущего блока данных.
Устройством воспроизведения могут воспроизводиться декодированные данные изображения, хранимые на запоминающем носителе или передаваемые через сеть, согласно одному или более примерных вариантов осуществления.
Более того, один или более примерных вариантов осуществления могут быть записаны в качестве компьютерных программ и могут быть реализованы в цифровых компьютерах общего применения, которые исполняют программы с использованием машиночитаемого носителя записи. Примеры машиночитаемого носителя записи включают в себя магнитные запоминающие носители (например, ПЗУ (постоянные запоминающие устройства, ROM), гибкие диски, жесткие диски, и т. д.) и оптические носители записи (например, CD-ROM (ПЗУ на компакт-дисках) или DVD (цифровые многофункциональные диски)).
Несмотря на то что примерные варианты осуществления были детально показаны и описаны, специалистам в данной области техники будет понятно, что могут быть произведены различные изменения по форме и содержанию, не выходящие за рамки сущности и объема настоящего изобретательского замысла, которые определены прилагаемой формулой изобретения. Примерные варианты осуществления должны рассматриваться только в описательном смысле, а не в целях ограничения. Поэтому объем настоящего изобретательского замысла определен не подробным описанием примерных вариантов осуществления, но прилагаемой формулой изобретения, а все отличия в пределах объема следует истолковывать как включенные в настоящий изобретательский замысел.