СПОСОБ КОДИРОВАНИЯ ВИДЕО И УСТРОЙСТВО КОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ БЛОКОВ ПРЕДСКАЗАНИЯ НА ОСНОВАНИИ БЛОКОВ КОДИРОВАНИЯ, ОПРЕДЕЛЕННЫХ В СООТВЕТСТВИИ С ДРЕВОВИДНОЙ СТРУКТУРОЙ, И СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕО И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ БЛОКОВ ПРЕДСКАЗАНИЯ НА ОСНОВАНИИ БЛОКОВ КОДИРОВАНИЯ, ОПРЕДЕЛЕННЫХ В СООТВЕТСТВИИ С ДРЕВОВИДНОЙ СТРУКТУРОЙ
METHOD OF VIDEO CODING AND VIDEO CODING DEVICE WITH USE OF PREDICTION BLOCKS ON THE BASIS OF CODING UNITS DEFINED IN ACCORDANCE WITH THE ANCIENT STRUCTURE, AND THE METHOD OF DECODING VIDEO AND DECODING DEVICE WITH THE USE OF PREDICTION BLOCKS ON THE BASIS OF CODING UNITS DEFINED IN ACCORDANCE WITH THE ANCIENT STRUCTURE

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к кодированию видео и декодированию видео, которые выполняют преобразование между пространственной областью и областью преобразования.
УРОВЕНЬ ТЕХНИКИ
В то время как продолжают разрабатываться и поставляться аппаратные средства для воспроизведения и хранения видеоконтента высокого разрешения или высокого качества, продолжает возрастать необходимость в видеокодеке для эффективного кодирования или декодирования видеоконтента высокого разрешения или высокого качества. В традиционном видеокодеке, видео кодируется согласно ограниченному способу кодирования, основанному на макроблоке, имеющем предварительно определенный размер. К тому же, традиционный видеокодек выполняет преобразование и обратное преобразование над макроблоком посредством использования блока, имеющего одинаковый размер, и таким образом кодирует и декодирует видеоданные.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
Настоящее изобретение предусматривает кодирование видео и декодирование видео, которые выполняют преобразование между пространственной областью и областью преобразования посредством использования иерархического разделения предсказания.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
Согласно аспекту настоящего изобретения, предусмотрен способ декодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру, причем способ включает в себя операции: приема битового потока в отношении кодированного видео и синтаксического анализа битового потока; извлечения информации о структуре блока кодирования, указывающей размер и переменную глубину блока кодирования, то есть блока данных для декодирования картинки видео, информации о кодовой глубине и режиме кодирования в отношении блоков кодирования, имеющих древовидную структуру упомянутой картинки, из битового потока; и определения блоков кодирования, имеющих древовидную структуру, на основании информации о структуре блока кодирования и информации о кодовой глубине и режиме кодирования, определения типа раздела на основании глубины текущего блока кодирования, и декодирования упомянутой картинки на основании блоков кодирования и типа раздела.
ПОЛЕЗНЫЕ ЭФФЕКТЫ
Эффективность сжатия изображения может быть увеличена, поскольку блок кодирования регулируется иерархически наряду с учетом характеристик изображения при увеличении максимального размера блока кодирования наряду с учетом размера изображения. Поскольку кодер передает кодированные видеоданные с информацией о кодовой глубине и режиме кодирования, декодер может декодировать каждый фрагмент кодированных данных изображения после определения по меньшей мере одной кодовой глубины согласно блокам кодирования, имеющим древовидную структуру, так что может быть улучшена эффективность кодирования и декодирования изображения.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 - структурная схема устройства для кодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
Фиг. 2 - структурная схема устройства для декодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
Фиг. 3 - схема для описания концепции блоков кодирования согласно варианту осуществления настоящего изобретения.
Фиг. 4 - структурная схема кодера изображения, основанного на блоках кодирования, согласно варианту осуществления настоящего изобретения.
Фиг. 5 - структурная схема декодера изображения, основанного на блоках кодирования, согласно варианту осуществления настоящего изобретения.
Фиг. 6 - схема, иллюстрирующая более глубокие блоки кодирования по глубинам и разделы согласно варианту осуществления настоящего изобретения.
Фиг. 7 - схема для описания взаимосвязи между блоком кодирования и блоками преобразования согласно варианту осуществления настоящего изобретения.
Фиг. 8 - схема для описания информации о кодировании блоков кодирования, соответствующей кодовой глубине, согласно варианту осуществления настоящего изобретения.
Фиг. 9 - схема более глубоких блоков кодирования по глубинам согласно варианту осуществления настоящего изобретения.
Фиг. 10-12 - схемы для описания взаимосвязи между блоками кодирования, блоками предсказания и блоками преобразования согласно варианту осуществления настоящего изобретения.
Фиг. 13 - схема для описания взаимосвязи между блоком кодирования, блоком предсказания или разделом, и блоком преобразования согласно информации о режиме кодирования по таблице 1.
Фиг. 14 - блок-схема, иллюстрирующая способ кодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
Фиг. 15 - блок-схема, иллюстрирующая способ декодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
НАИЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Согласно аспекту настоящего изобретения, предусмотрен способ декодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру, причем способ включает в себя операции: приема битового потока в отношении кодированного видео и синтаксического анализа битового потока; извлечения информации о структуре блока кодирования, указывающей размер и переменную глубину блока кодирования, то есть блока данных для декодирования картинки видео, информации о кодовой глубине и режиме кодирования в отношении блоков кодирования, имеющих древовидную структуру упомянутой картинки из битового потока; и определения блоков кодирования, имеющих древовидную структуру, на основании информации о структуре блока кодирования и информации о кодовой глубине и режиме кодирования, определения типа раздела на основании глубины текущего блока кодирования, и декодирования упомянутой картинки на основании блоков кодирования и типа раздела.
Тип раздела может включать в себя блок данных, имеющий такой же размер, как текущий блок кодирования, и частичный блок данных, полученный разбиением одной из высоты и ширины текущего блока кодирования.
Согласно еще одному аспекту настоящего изобретения, предусмотрен способ кодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру, причем способ включает в себя операции: разбиения картинки видео на один или более максимальных блоков кодирования, которые являются блоками кодирования, имеющими максимальный размер; кодирования упомянутой картинки на основании блоков кодирования согласно глубинам, которые получены иерархическим разбиением каждого из одного или более максимальных блоков кодирования по глубинам в каждом из одного или более максимальных блоков кодирования и на основании типа раздела, определенного согласно глубинам блоков кодирования по глубинам, определения блоков кодирования согласно кодовым глубинам в отношении каждого из блоков кодирования по глубинам, и таким образом, определения блоков кодирования, имеющих древовидную структуру; и вывода данных, которые кодированы на основании типа раздела и блоков кодирования, имеющих древовидную структуру, информации о кодовых глубинах и режиме кодирования и информации о структуре блока кодирования, указывающей размер и переменную глубину блока кодирования.
Согласно еще одному аспекту настоящего изобретения, предусмотрено устройство декодирования видео, включающее в себя процессор декодирования видео и использующее блок предсказания на основании блоков кодирования, имеющих древовидную структуру, причем устройство декодирования видео включает в себя приемник для приема битового потока в отношении кодированного видео, а затем синтаксического анализа битового потока; модуль извлечения для извлечения информации о структуре блока кодирования, указывающей размер и переменную глубину блока кодирования, то есть блока данных для декодирования картинки видео, информации о кодовой глубине и режиме кодирования в отношении блоков кодирования, имеющих древовидную структуру упомянутой картинки из битового потока; и декодер для определения блоков кодирования, имеющих древовидную структуру, на основании информации о структуре блока кодирования и информации о кодовой глубине и режиме кодирования, определения типа раздела на основании глубины текущего блока кодирования, и декодирования упомянутой картинки на основании блоков кодирования и типа раздела, ассоциированный с процессором декодирования видео.
Согласно еще одному аспекту настоящего изобретения, предусмотрено устройство кодирования видео, включающее в себя процессор кодирования видео и использующее блок предсказания на основании блоков кодирования, имеющих древовидную структуру, причем устройство кодирования видео включает в себя модуль разбиения на максимальные блоки кодирования для разбиения картинки видео на один или более максимальных блоков кодирования, которые являются блоками кодирования, имеющими максимальный размер; определитель блока кодирования для кодирования упомянутой картинки на основании блоков кодирования согласно глубинам, которые получены иерархическим разбиением каждого из одного или более максимальных блоков кодирования по глубинам в каждом из одного или более максимальных блоков кодирования и на основании типа раздела, определенного согласно глубинам блоков кодирования по глубинам, определения блоков кодирования согласно кодовым глубинам в отношении каждого из блоков кодирования по глубинам, и таким образом, определения блоков кодирования, имеющих древовидную структуру, ассоциированный с процессором кодирования видео; и модуль вывода для вывода данных, которые кодированы на основании типа раздела и блоков кодирования, имеющих древовидную структуру, информации о кодовых глубинах и режиме кодирования и информации о структуре блока кодирования, указывающей размер и переменную глубину блока кодирования.
Согласно еще одному аспекту настоящего изобретения, предусмотрен компьютерно-читаемый носитель записи, содержащий записанную на нем программу для исполнения способа кодирования видео посредством использования компьютера. Согласно еще одному аспекту настоящего изобретения, предусмотрен компьютерно-читаемый носитель записи, содержащий записанную на нем программу для исполнения способа декодирования видео посредством использования компьютера.
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
В дальнейшем, настоящее изобретение будет полнее описано со ссылкой на прилагаемые чертежи, на которых показаны примерные варианты осуществления изобретения. В вариантах осуществления изобретения, термин ‘изображение’ может совместно указывать не только на неподвижное изображение, но также на движущуюся картинку, такую как видео.
В дальнейшем, устройства и способы кодирования и декодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру, будут подробно описаны со ссылкой на фиг. 1-15.
Фиг. 1 - структурная схема устройства для кодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру 100, согласно варианту осуществления настоящего изобретения.
Устройство для кодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру 100, включает в себя модуль 110 разбиения на максимальные блоки кодирования, определитель 120 блока кодирования и модуль 130 вывода. В дальнейшем, для удобства описания, устройство для кодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру 100, указывается ссылкой как ‘устройство 100 кодирования видео’.
Модуль 110 разбиения на максимальные блоки кодирования может разбивать текущую картинку на основании максимального блока кодирования для текущей картинки изображения. Если текущая картинка является большей, чем максимальный блок кодирования, данные изображения текущей картинки могут разбиваться на по меньшей мере один максимальный блок кодирования. Максимальный блок кодирования согласно варианту осуществления настоящего изобретения может быть блоком данных, имеющим размер 32x32, 64x64, 128x128, 256x256, и т. д., при этом формой блока данных является квадрат, имеющий ширину и высоту в качестве квадратов 2. Данные изображения могут выдаваться в определитель 120 блока кодирования согласно по меньшей мере одному максимальному блоку кодирования.
Блок кодирования согласно варианту осуществления настоящего изобретения может характеризоваться максимальным размером и глубиной. Глубина обозначает количество раз, которое блок кодирования подвергнут пространственному разбиению из максимального блока кодирования и, по мере как глубина увеличивается, более глубокие блоки кодирования согласно глубинам могут разбиваться от максимального блока кодирования до минимального блока кодирования. Глубина максимального блока кодирования является самой верхней глубиной, а глубина минимального блока кодирования является самой низкой глубиной. Поскольку размер блока кодирования, соответствующего каждой глубине, уменьшается по мере того, как увеличивается глубина максимального блока кодирования, блок кодирования, соответствующий верхней глубине, может включать в себя множество блоков кодирования, соответствующих более низким глубинам.
Как описано выше, данные изображения текущей картинки разбиваются на максимальные блоки кодирования согласно максимальному размеру блока кодирования, и каждый из максимальных блоков кодирования может включать в себя более глубокие блоки кодирования, которые разбиты по глубинам. Поскольку максимальный блок кодирования согласно варианту осуществления настоящего изобретения разбивается по глубинам, данные изображения пространственной области, включенные в максимальный блок кодирования, могут иерархически классифицироваться согласно глубинам.
Могут быть предварительно определены максимальная глубина и максимальный размер блока кодирования, которые ограничивают суммарное количество раз, которое иерархически разбиваются высота и ширина максимального блока кодирования.
Определитель 120 блока кодирования кодирует по меньшей мере одну область разбиения, полученную разбиением области максимального блока кодирования по глубинам, и определяет глубину для вывода окончательно кодированных данных изображения в по меньшей мере одну область разбиения.
Другими словами, определитель 120 блока кодирования определяет кодовую глубину, кодируя данные изображения в более глубоких блоках кодирования по глубинам, согласно максимальному блоку кодирования текущей картинки, и выбирая глубину, имеющую меньшую ошибку кодирования. Таким образом, в заключение выводятся кодированные данные изображения блока кодирования, соответствующего определенной кодовой глубине. К тому же, блоки кодирования, соответствующие кодовой глубине, могут рассматриваться в качестве кодированных блоков кодирования.
Определенная кодовая глубина и кодированные данные изображения согласно определенной кодовой глубине выдаются в модуль 130 вывода.
Данные изображения в максимальном блоке кодирования кодируются на основании более глубоких блоков кодирования, соответствующих по меньшей мере одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображения сравниваются на основании каждого из более глубоких блоков кодирования. Глубина, имеющая меньшую ошибку кодирования, может выбираться после сравнения ошибок кодирования более глубоких блоков кодирования. По меньшей мере одна кодовая глубина может выбираться для каждого максимального блока кодирования.
Размер максимального блока кодирования разбивается по мере того, как блок кодирования иерархически разбивается по глубинам, и по мере того, как увеличивается количество блоков кодирования. К тому же, даже если блоки кодирования соответствуют одной и той же глубине в одном максимальном блоке кодирования, следует ли разбивать каждый из блоков кодирования, соответствующих одной и той же глубине, до более низких глубин, определяется посредством измерения ошибки кодирования данных изображения каждого блока кодирования в отдельности. Соответственно, даже когда данные изображения включены в один максимальный блок кодирования, данные изображения разбиваются на области по глубинам, и ошибки кодирования могут различаться согласно областям в одном максимальном блоке кодирования, и таким образом, кодовые глубины могут различаться по областям в данных изображения. Таким образом, одна или более кодовых глубин могут определяться в одном максимальном блоке кодирования, а данные изображения максимального блока кодирования могут разбиваться по блокам кодирования по меньшей мере одной кодовой глубины.
Соответственно, определитель 120 блока кодирования может определять блоки кодирования, имеющие древовидную структуру, включенные в максимальный блок кодирования. ‘Блоки кодирования, имеющие древовидную структуру’, согласно варианту осуществления настоящего изобретения, включают в себя блоки кодирования, соответствующие глубине, определенной, чтобы быть кодовой глубиной, из числа всех более глубоких блоков кодирования, включенных в максимальный блок кодирования. Блок кодирования кодовой глубины может иерархически определяться согласно глубинам в одной и той же области максимального блока кодирования и может независимо определяться в разных областях. Подобным образом, кодовая глубина в текущей области может независимо определяться по кодовой глубине в другой области.
Максимальная глубина согласно варианту осуществления настоящего изобретения является индексом, имеющим отношение к количеству раз разбиения от максимального блока кодирования до минимального блока кодирования. Максимальная глубина согласно варианту осуществления настоящего изобретения может обозначать общее количество раз разбиения от максимального блока кодирования до минимального блока кодирования. Например, когда глубина максимального блока кодирования имеет значение 0, глубина блока кодирования, на которой максимальный блок кодирования разбит один раз, может быть установлена в 1, а глубина блока кодирования, при которой максимальный блок кодирования разбит дважды, может быть установлена в 2. Здесь, если максимальный блок кодирования является блоком кодирования, в котором максимальный блок кодирования разбит четыре раза, существует 5 уровней глубины, по глубинам 0, 1, 2, 3 и 4, и таким образом, максимальная глубина может быть установлена в 4.
Кодирование с предсказанием и преобразование могут выполняться согласно максимальному блоку кодирования. Кодирование с предсказанием и преобразование также выполняются на основании более глубоких блоков кодирования согласно глубине, равной, или глубинам, меньшим чем максимальная глубина, согласно максимальному блоку кодирования. Преобразование может выполняться согласно способу частотного преобразования, ортогонального преобразования или целочисленного преобразования.
Поскольку количество более глубоких блоков кодирования увеличивается всякий раз, когда максимальный блок кодирования разбивается согласно глубинам, кодирование, включающее в себя кодирование с предсказанием и преобразование, выполняется над всеми из более глубоких блоков кодирования по мере того, как углубляется глубина. Для удобства описания, кодирование с предсказанием и преобразование далее будут описаны на основании блока кодирования текущей глубины, в максимальном блоке кодирования.
Устройство 100 кодирования видео может по-разному выбирать размер или форму блока данных для кодирования данных изображения. Для того чтобы кодировать данные изображения, выполняются такие операции, как кодирование с предсказанием, преобразование и энтропийное кодирование, и, в это время, один и тот же блок данных может использоваться для всех операций, или разные блоки данных могут использоваться для каждой операции.
Например, устройство 100 кодирования видео может выбирать не только блок кодирования для кодирования данных изображения, но также блок данных, отличный от блока кодирования, с тем чтобы выполнять кодирование с предсказанием над данными изображения в блоке кодирования.
Для того чтобы выполнять кодирование с предсказанием в максимальном блоке кодирования, кодирование с предсказанием может выполняться на основании блока кодирования, соответствующего кодовой глубине, то есть на основании блока кодирования, который больше не разбивается на блоки кодирования, соответствующие более низкой глубине. В дальнейшем, блок кодирования, который больше не разбивается и становится базовым блоком для кодирования с предсказанием, далее будет указываться ссылкой как ‘блок предсказания’. Раздел, полученный разбиением блока предсказания, может включать в себя блок предсказания или блок данных, полученные разбиением по меньшей мере одной из высоты и ширины блока предсказания.
Например, когда блок кодирования 2Nx2N (где N - положительное целое число) больше не разбивается и становится блоком предсказания 2Nx2N, размером раздела могут быть 2Nx2N, 2NxN или Nx2N. Примеры типа раздела включают в себя симметричные разделы, которые получены симметричным разбиением высоты или ширины блока предсказания, разделы, полученные асимметричным разбиением высоты или ширины блока предсказания, таким как 1:n или n:1, разделы, которые получены геометрическим разбиением блока предсказания, и разделы, имеющие произвольные формы.
Размер типа раздела или блока предсказания блока кодирования может определяться согласно тому, выполняется ли разбиение над текущим блоком кодирования с текущей глубиной или более низкой глубиной.
Когда тип раздела текущего блока кодирования является симметричным типом раздела, симметричный тип раздела текущего блока кодирования может включать в себя раздел, имеющий такой же размер, как текущий блок кодирования, и раздел, полученный делением высоты или ширины текущего блока кодирования на два. То есть симметричный тип раздела блока кодирования, имеющего размер 2Nx2N, может включать в себя разделы 2Nx2N, 2NxN или Nx2N.
Когда текущий блок кодирования больше не разбивается на блоки кодирования более низкой глубины, симметричный тип раздела текущего блока кодирования может включать в себя разделы, имеющие такой же размер, как блоки кодирования более низкой глубины. То есть, когда текущий блок кодирования является минимальным блоком кодирования, который не может разбиваться на блоки кодирования более низкой глубины, и который из числа текущих максимальных блоков кодирования, симметричный тип раздела текущего блока кодирования может включать в себя не только разделы 2Nx2N, 2NxN и Nx2N, но также может включать в себя раздел, имеющий размер NxN.
Подобным образом, когда текущий блок кодирования является блоком кодирования самой низкой глубины из числа текущих максимальных блоков кодирования, симметричный тип разбиения текущего блока кодирования может включать в себя не только разделы 2Nx2N, 2NxN и Nx2N, но также может включать в себя раздел, имеющий размер NxN.
Например, когда блок кодирования, имеющий текущую глубину и размер 2Nx2N, разбит один раз и, таким образом, разделен на блоки кодирования, имеющие более низкую глубину и размер NxN, внутрикадровое предсказание и межкадровое предсказание могут выполняться над блоком кодирования, имеющим размер NxN, посредством раздела, имеющего размер NxN. Таким образом, для того чтобы избежать повторения излишней последовательности операций, в структуре иерархических блоков кодирования согласно настоящему варианту осуществления, тип раздела, имеющий размер NxN, может не устанавливаться для блока кодирования, имеющего размер 2Nx2N.
Однако, когда текущий блок кодирования, имеющий размер 2Nx2N, является минимальным блоком кодирования, текущий блок кодирования больше не разбивается на блоки кодирования, имеющие размер NxN, так что внутрикадровое предсказание или межкадровое предсказание могут выполняться над текущим блоком кодирования посредством использования разделов, имеющих размер NxN. Таким образом, тип раздела минимального блока кодирования, имеющего размер 2Nx2N, может включать в себя разделы 2Nx2N, 2NxN, Nx2N и NxN.
Режим предсказания блока предсказания может быть по меньшей мере одним из внутрикадрового режима, межкадрового режима и режима пропуска. Например, кодирование с предсказанием во внутрикадровом режиме и межкадровом режиме может выполняться над разделом 2Nx2N, 2NxN или Nx2N.
То есть в по меньшей мере одном из случаев, в котором текущий блок кодирования не является минимальным блоком кодирования, в котором текущий блок кодирования разбит на блоки кодирования более низкой глубины, и в котором текущий блок кодирования не является блоком кодирования самой низкой глубины из числа текущих максимальных блоков кодирования, внутрикадровое предсказание и межкадровое предсказание, которые выполняются посредством использования раздела NxN, могут пропускаться.
Однако, когда текущий блок кодирования является минимальным блоком кодирования, поскольку внутрикадровое предсказание и межкадровое предсказание не могут выполняться над блоком кодирования более низкой глубины, внутрикадровое предсказание и межкадровое предсказание могут выполняться над минимальным блоком кодирования посредством использования разделов 2Nx2N, 2NxN, Nx2N и NxN.
К тому же, режим пропуска может выполняться только над разделом 2Nx2N. Кодирование выполняется независимо над одним блоком предсказания в блоке кодирования, тем самым, выбирая режим предсказания, вызывающий наименьшую ошибку кодирования.
Устройство 100 кодирования видео также может выполнять преобразование над данными изображения в блоке кодирования не только на основании блока кодирования для кодирования данных изображения, но также на основании блока данных, который отличен от блока кодирования.
Для того чтобы выполнять преобразование в блоке кодирования, преобразование может выполняться на основании блока преобразования, имеющего размер, меньший чем или равный блоку кодирования. Например, блок преобразования для преобразования может включать в себя блок преобразования для внутрикадрового режима и блок преобразования для межкадрового режима.
Подобно блоку кодирования, имеющему древовидную структуру, блок преобразования в блоке кодирования может соответственно разбиваться на области с меньшим размером. Таким образом, остаточные данные в блоке кодирования могут быть разбиты согласно преобразованию, имеющему древовидную структуру по глубинам преобразования.
Глубина преобразования, указывающая количество раз разбиения, чтобы достичь блока преобразования посредством разбиения высоты и ширины блока кодирования, также может устанавливаться в блоке преобразования. Например, в текущем блоке кодирования 2Nx2N, глубина преобразования может иметь значение 0, когда размером блока преобразования также является 2Nx2N, может иметь значение 1, когда размером блока преобразования, таким образом, является NxN, и может иметь значение 2, когда размер блока преобразования, таким образом, является N/2xN/2. То есть блок преобразования может устанавливаться согласно иерархической древовидной структуре согласно иерархическим характеристикам глубин преобразования.
Информация о кодировании согласно блокам кодирования, соответствующим кодовой глубине, требует не только информации о кодовой глубине, но также об информации, имеющей отношение к кодированию с предсказанием и преобразованию. Соответственно, определитель 120 блока кодирования не только определяет кодовую глубину, имеющую минимальную ошибку кодирования, но также определяет тип раздела в блоке предсказания, режим предсказания согласно блокам предсказания и размер блока преобразования для преобразования.
Блоки кодирования согласно древовидной структуре в максимальном блоке кодирования и способ определения раздела, согласно вариантам осуществления настоящего изобретения, позже будут описаны подробно со ссылкой на фиг. 3-13.
Определитель 120 блока кодирования может измерять ошибку кодирования более глубоких блоков кодирования согласно глубине, используя оптимизацию случайного искажения, основанную на коэффициентах Лагранжа.
Модуль 130 вывода выдает данные изображения максимального блока кодирования, которые кодированы на основании по меньшей мере одной кодовой глубины, определенной определителем 120 блока кодирования, и информацию о режиме кодирования согласно кодовой глубине, в битовых потоках.
Кодированные данные изображения могут быть получены кодированием остаточных данных изображения.
Информация о режиме кодирования согласно кодовой глубине может включать в себя информацию о кодовой глубине, о типе раздела в блоке предсказания, режиме предсказания и размере блока преобразования.
Информация о кодовой глубине может определяться посредством использования информации о разбиении по глубинам, которая указывает, выполняется ли кодирование на блоках кодирования более низкой глубины вместо текущей глубины. Если текущая глубина текущего блока кодирования является кодовой глубиной, данные изображения в текущем блоке кодирования кодируются и выдаются, и, таким образом, информация о разбиении может быть определена, чтобы не разбивать текущий блок кодирования до более низких глубин. В качестве альтернативы, если текущая глубина текущего блока кодирования не является кодовой глубиной, кодирование выполняется над блоком кодирования более низкой глубины и, таким образом, информация о разбиении может быть определена, чтобы разбивать текущий блок кодирования для получения блоков кодирования более низкой глубины.
Если текущая глубина не является кодовой глубиной, кодирование выполняется над блоком кодирования, который разбит на блок кодирования более низкой глубины. Поскольку по меньшей мере один блок кодирования более низкой глубины существует в одном блоке кодирования текущей глубины, кодирование выполняется повторно над каждым блоком кодирования более низкой глубины и, таким образом, кодирование может выполняться рекурсивно для блоков кодирования, имеющих одинаковую глубину.
Поскольку блоки кодирования, имеющие древовидную структуру, определены для одного максимального блока кодирования, и информация о по меньшей мере одном режиме кодирования определена для блока кодирования кодовой глубины, информация о по меньшей мере одном режиме кодирования может быть определена для одного максимального блока кодирования. К тому же, глубина данных изображения максимального блока кодирования может быть разной по местоположениям, поскольку данные изображения иерархически разбиваются согласно глубинам, и таким образом, информация о кодовой глубине и режиме кодирования может устанавливаться для данных изображения.
Соответственно, модуль 130 вывода может назначать информацию о кодировании касательно соответствующей кодовой глубины и режима кодирования на по меньшей мере один из блока кодирования, блока предсказания и минимального блока, включенных в максимальный блок кодирования. Модуль 130 вывода может вставлять информацию о соответствующей кодовой глубине и соответствующем режиме кодирования в заголовок битового потока для передачи кодированных видеоданных, набора параметров последовательности (SPS) или набора параметров картинки (PPS), и может выводить их.
Минимальный блок согласно варианту осуществления настоящего изобретения может быть прямоугольным блоком данных, полученным разбиением минимального блока кодирования, составляющего самую нижнюю глубину, на 4. Минимальный блок согласно варианту осуществления настоящего изобретения может быть максимальным прямоугольным блоком данных, который может быть включен во все из блоков кодирования, блоков предсказания, блоков разбиения и блоков преобразования, включенных в максимальный блок кодирования.
Например, информация о кодировании, выдаваемая через модуль 130 вывода, может классифицироваться на информацию о кодировании по блокам кодирования и информацию о кодировании по блокам предсказания. Информация о кодировании по блокам кодирования включает в себя информацию о режиме предсказания и информацию о размере разделов. Информация о кодировании согласно блокам предсказания может включать в себя информацию об оцененном направлении межкадрового режима, об индексе опорного изображения межкадрового режима, о векторе движения, о составляющей цветности внутрикадрового режима и о способе интерполяции внутрикадрового режима.
К тому же, информация о структуре блока кодирования касательно размера и переменной глубины блока кодирования, определенных согласно последовательностям, картинкам, вырезкам или GOP, может вставляться в SPS, PPS или заголовок битового потока.
Переменная глубина может указывать не только максимальную допустимую глубину текущих блоков кодирования, имеющих древовидную структуру, но также может указывать самую низкую глубину блока кодирования, имеющего минимальный размер, количество уровней глубины или изменение глубины.
Количество уровней глубины может указывать количество уровней глубины или более глубоких блоков кодирования согласно глубинам, которые могут существовать в текущих блоках кодирования, имеющих древовидную структуру. Изменение глубины может указывать величину изменения более глубоких блоков кодирования согласно глубинам, которые могут существовать в текущих блоках кодирования, имеющих древовидную структуру.
Информация о переменной глубине может быть установлена согласно последовательностям, картинкам, вырезкам или GOP. То есть информация о переменной глубине и информация о максимальном размере или информация о минимальном размере блока кодирования из числа текущих блоков кодирования, имеющих древовидную структуру, может устанавливаться для каждого из блоков данных последовательностей, картинок, вырезок или GOP.
Таким образом, модуль 130 вывода может учитывать информацию о кодировании, включающую в себя, в качестве информации о структуре блока кодирования, по меньшей мере две из информации о переменной глубине, информации о максимальном размере блока кодирования и информации о минимальном размере блока кодирования, может вставлять информацию о кодировании в заголовок битового потока, то есть SPS или PPS, а затем может выводить битовый поток. Переменная глубина, максимальный размер и минимальный размер блока кодирования определяются согласно последовательностям, картинкам, вырезкам или GOP, соответственно. В дополнение, информация о кодировании, выведенная из модуля 130 вывода, может включать в себя индексы преобразования. Информация об индексе преобразования может указывать информацию о структуре блока преобразования, который используется для преобразования текущего блока кодирования. Информация об индексе преобразования может указывать, разбивается ли текущий блок преобразования на более низкоуровневые блоки преобразования.
В устройстве 100 кодирования видео, более глубокий блок кодирования может быть блоком кодирования, полученным посредством деления на два высоты или ширины блока кодирования более высокой глубины, который находится на один уровень выше. Другими словами, когда размер блока кодирования текущей глубины имеет значение 2Nx2N, размер блока кодирования более низкой глубины имеет значение NxN. К тому же, блок кодирования текущей глубины, имеющий размер 2Nx2N, может включать в себя максимум 4 из блока кодирования более низкой глубины.
Соответственно, устройство 100 кодирования видео может формировать блоки кодирования, имеющие древовидную структуру, определяя блоки кодирования, имеющие оптимальную форму и оптимальный размер, для каждого максимального блока кодирования, на основании размера максимального блока кодирования и максимальной глубины, определенные с учетом характеристик текущей картинки. К тому же, поскольку кодирование может выполняться над каждым максимальным блоком кодирования посредством использования любого одного из различных режимов предсказания и преобразований, оптимальный режим кодирования может определяться с учетом характеристик блока кодирования различных размеров изображения.
Таким образом, если изображение, имеющее высокое разрешение или большой объем данных, кодируется в традиционном макроблоке, количество макроблоков на каждую картинку чрезмерно увеличивается. Соответственно, возрастает количество фрагментов сжатой информации, сформированной для каждого макроблока, и, таким образом, затруднительно передавать сжатую информацию, а эффективность сжатия данных снижается. Однако, посредством использования устройства 100 кодирования видео, эффективность сжатия изображения может быть увеличена, поскольку блок кодирования регулируется наряду с учетом характеристик изображения при увеличении максимального размера блока кодирования наряду с учетом размера изображения.
Фиг. 2 - структурная схема устройства для декодирования видео посредством использования блока предсказания на основании блоков кодирования по древовидной структуре 200, согласно варианту осуществления настоящего изобретения.
Устройство для декодирования видео посредством использования блока предсказания на основании блоков кодирования по древовидной структуре 200, включает в себя приемник 210, модуль 220 извлечения данных изображения и информации о кодировании и декодер 230 данных изображения. В дальнейшем, для удобства описания, устройство для декодирования видео посредством использования блока предсказания на основании блоков кодирования по древовидной структуре 200, указывается ссылкой как ‘устройство 200 декодирования видео’.
Определения различных терминов, таких как блок кодирования, глубина, блок предсказания, блок преобразования и информация о различных режимах кодирования, для различных операций устройства 200 декодирования видео идентичны описанным со ссылкой на фиг. 1 и устройство 100 кодирования видео.
Приемник 210 принимает и синтаксически анализирует битовый поток кодированного видео. Модуль 220 извлечения данных изображения и информации о кодировании извлекает кодированные данные изображения для каждого блока кодирования из синтаксически анализируемого битового потока, при этом блоки кодирования имеют древовидную структуру согласно каждому максимальному блоку кодирования, и выдает извлеченные данные изображения в декодер 230 данных изображения. Модуль 220 извлечения данных изображения и информации о кодировании может извлекать информацию о структуре блока кодирования касательно размера и переменной глубины блока кодирования текущей картинки, информацию о кодовой глубине и режиме кодирования из по меньшей мере одного из заголовка, SPS и PPS в отношении текущей картинки из принятого битового потока.
Модуль 220 извлечения данных изображения и информации о кодировании может извлекать информацию о переменной глубине и одну из информации о максимальном допустимом размере и информации о минимальном допустимом размере блока кодирования из числа блоков кодирования, имеющих древовидную структуру, для каждого из блоков данных последовательностей, картинок, вырезок или GOP, из информации о кодировании. Декодер 230 данных изображения может определять максимальный допустимый размер и минимальный допустимый размер блока кодирования из числа блоков кодирования, имеющих древовидную структуру, для каждого из блоков данных последовательностей, картинок, вырезок или GOP, посредством использования по меньшей мере двух фрагментов из информации о переменной глубине, информации о максимальном размере блока кодирования и информации о минимальном размере блока кодирования.
По меньшей мере два фрагмента из информации о переменной глубине, информации о максимальном размере блока кодирования и информации о минимальном размере блока кодирования, которые определены для каждого из картинок, вырезок или GOP, могут извлекаться из информации о кодировании, и максимальный допустимый размер и минимальный допустимый размер текущего блока данных могут определяться на основании считанной информации. К тому же, Модуль 220 извлечения данных изображения и информации о кодировании извлекает информацию о кодовой глубине и режиме кодирования для блоков кодирования, имеющих древовидную структуру, согласно каждому максимальному блоку кодирования, из синтаксически анализируемого битового потока. Извлеченная информация о кодовой глубине и режиме кодирования выдается в декодер 230 данных изображения. Другими словами, данные изображения в битовом потоке разбиваются на максимальный блок кодирования, так что декодер 230 данных изображения декодирует данные изображения для каждого максимального блока кодирования.
Информация о кодовой глубине и режиме кодирования согласно максимальному блоку кодирования может устанавливаться для информации о по меньшей мере одном блоке кодирования, соответствующем кодовой глубине, а информация о режиме кодирования может включать в себя информацию о типе раздела соответствующего блока кодирования, соответствующего кодовой глубине, о режиме предсказания и размере блока преобразования. К тому же, информация о разбиении по глубинам может извлекаться в качестве информации о кодовой глубине.
К тому же, декодер 230 данных изображения может считывать информацию об индексах преобразования из информации о кодировании, которая извлекается из синтаксически анализируемого битового потока. Декодер 230 данных изображения может конфигурировать блок преобразования текущего блока кодирования на основании данных изображения и информации об индексе преобразования, извлеченных модулем 220 извлечения данных изображения и информации о кодировании, может выполнять обратное преобразование текущего блока кодирования на основании блока преобразования и, таким образом, может декодировать кодированные данные. В результате декодирования блоков кодирования, может восстанавливаться текущая картинка.
Информация о кодовой глубине и режиме кодирования согласно каждому максимальному блоку кодирования, извлеченная модулем 220 извлечения данных изображения и информации о кодировании, является информацией о кодовой глубине и режиме кодирования, определенных для формирования минимальной ошибки кодирования, когда кодер, такой как устройство 100 кодирования видео, повторно выполняет кодирование для каждого более глубокого блока кодирования согласно глубинам по каждому максимальному блоку кодирования. Соответственно, устройство 200 декодирования видео может восстанавливать изображение, декодируя данные изображения согласно кодовой глубине и режиму кодирования, которые порождают минимальную ошибку кодирования.
Поскольку информация о кодировании касательно кодовой глубины и режима кодирования может быть назначена на предварительно определенный блок данных из числа соответствующего блока кодирования, блока предсказания и минимального блока, модуль 220 извлечения данных изображения и информации о кодировании может извлекать информацию о кодовой глубине и режиме кодирования согласно предварительно определенным блокам данных. Предварительно определенные блоки данных, на которые назначена одна и та же информация о кодовой глубине и режиме кодирования, могут подразумеваться блоками данных, включенными в один и тот же максимальный блок кодирования.
Декодер 230 данных изображения восстанавливает текущую картинку, декодируя данные изображения в каждом максимальном блоке кодирования на основании информации о кодовой глубине и режиме кодирования согласно максимальным блокам кодирования. Другими словами, декодер 230 данных изображения может декодировать кодированные данные изображения на основании извлеченной информации о типе раздела, режиме предсказания и блоке преобразования для каждого блока кодирования из числа блоков кодирования, имеющих древовидную структуру, включенную в каждый максимальный блок кодирования. Последовательность операций декодирования может включать в себя предсказание, в том числе внутрикадровое предсказание и компенсацию движения, и обратное преобразование. Обратное преобразование может выполняться согласно способу обратного ортогонального преобразования или обратного целочисленного преобразования.
Декодер 230 данных изображения может выполнять внутрикадровое предсказание или компенсацию движения согласно разделу и режиму предсказания каждого блока кодирования на основании информации о типе раздела и режиме предсказания блока предсказания из блока кодирования согласно кодовым глубинам.
К тому же, декодер 230 данных изображения может выполнять обратное преобразование согласно каждому блоку преобразования в блоке кодирования, считывая блок преобразования согласно древовидной структуре, и информацию о размере блока преобразования блока кодирования по кодовым глубинам, с тем чтобы выполнять обратное преобразование согласно максимальным блокам кодирования.
Декодер 230 данных изображения может определять по меньшей мере одну кодовую глубину текущего максимального блока кодирования посредством использования информации о разбиении по глубинам. Если информация о разбиении указывает, что данные изображения больше не разбиваются на текущей глубине, текущая глубина является кодовой глубиной. Соответственно, декодер 230 данных изображения может декодировать кодированные данные по меньшей мере одного блока кодирования, соответствующего каждой кодовой глубине в текущем максимальном блоке кодирования, используя информацию о типе раздела блока предсказания, режиме предсказания и размере блока преобразования для каждого блока кодирования, соответствующего кодовой глубине, и выдает данные изображения текущего максимального блока кодирования.
Другими словами, блоки данных, содержащие в себе информацию о кодировании, в том числе одинаковую информацию о разбиении, могут объединяться посредством обнаружения набора информации о кодировании, назначенного на предварительно определенный блок данных из числа блока кодирования, блока предсказания и минимального блока, и объединенные блоки данных могут считаться одним блоком данных, который должен декодироваться декодером 230 данных изображения в одном и том же режиме кодирования.
Устройство 200 декодирования видео может получать информацию о по меньшей мере одном блоке кодирования, который порождает минимальную ошибку кодирования, когда кодирование выполняется рекурсивно для каждого максимального блока кодирования, и может использовать информацию для декодирования текущей картинки. Другими словами, могут декодироваться блоки кодирования, имеющие древовидную структуру, определенные являющимися оптимальными блоками кодирования в каждом максимальном блоке кодирования. К тому же, максимальный размер блока кодирования определяется с учетом разрешения и объема данных изображения.
Соответственно, даже если данные изображения имеют высокое разрешение и большое количество данных, данные изображения могут эффективно декодироваться и восстанавливаться посредством использования размера блока кодирования и способа кодирования, которые адаптивно определяются согласно характеристикам данных изображения, используя информацию об оптимальном режиме кодирования, принятую из кодера.
Способ определения блоков кодирования, имеющих древовидную структуру, блок предсказания и блок преобразования, согласно варианту осуществления настоящего изобретения, далее будет описан со ссылкой на фиг. 3-13.
Фиг. 3 - схема для описания концепции блоков кодирования согласно варианту осуществления настоящего изобретения.
Размер блока кодирования может выражаться в единицах ширины на высоту, и может иметь значение 64x64, 32x32, 16x16 и 8x8.
В видеоданных 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 уровня разбиением максимального блока кодирования три раза. По мере того, как глубина увеличивается, может точно выражаться подробная информация.
Типы раздела, имеющего размеры 64x64, 64x32, и 32x64, могут устанавливаться для блоков кодирования, имеющих размер 64x64. Поскольку блок кодирования, имеющий размер 64x64, не является минимальным блоком кодирования в отношении множества фрагментов видеоданных 310, 320 и 330, тип раздела, имеющий размер 32x32, может не устанавливаться.
Типы раздела, имеющего размеры 32x32, 32x16, и 16x32, могут устанавливаться для блоков кодирования, имеющих размер 32x32. Поскольку блок кодирования, имеющий размер 32x32, не является минимальным блоком кодирования в отношении множества фрагментов видеоданных 310, 320 и 330, тип раздела, имеющий размер 16x16, может не устанавливаться.
Типы раздела, имеющего размеры 16x16, 16x8, и 8x16, могут устанавливаться для блоков кодирования, имеющих размер 16x16. Поскольку блок кодирования, имеющий размер 16x16, является минимальным блоком декодирования в отношении видеоданных 310, может устанавливаться тип раздела, имеющий размер 8x8. Однако, блок кодирования, имеющий размер 16x16, не является минимальным блоком декодирования в отношении множества фрагментов видеоданных 320 и 330, тип раздела, имеющий размер 8x8, может не устанавливаться.
В этом отношении, поскольку блок кодирования, имеющий размер 8x8, является минимальным блоком декодирования в отношении множества фрагментов видеоданных 310, 320 и 330, также могут устанавливаться не только типы раздела, имеющие размер 8x8, 8x4 и 4x8, но, к тому же, тип раздела, имеющий размер 4x4.
Фиг. 4 - структурная схема кодера 400 изображения, основанного на блоках кодирования, согласно варианту осуществления настоящего изобретения.
Кодер 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 изображения, основанного на блоках кодирования, согласно варианту осуществления настоящего изобретения.
Синтаксический анализатор 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, внутрикадровый предсказатель 530, компенсатор 560 движения, модуль 570 деблокирования и модуль 580 контурной фильтрации выполняли операции на основании блоков кодирования, имеющих древовидную структуру, для каждого максимального блока кодирования.
Более точно, внутрикадровый предсказатель 550 и компенсатор 560 движения выполняют операции на основании разделов и режима предсказания для каждого из блоков кодирования, имеющих древовидную структуру, а обратный преобразователь 540 выполняет операции на основании размера блока преобразования для каждого блока кодирования.
Фиг. 6 - схема, иллюстрирующая более глубокие блоки кодирования по глубинам и разделы согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические блоки кодирования, в тем чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина блоков кодирования могут адаптивно определяться согласно характеристикам изображения, или могут по-разному устанавливаться пользователем. Размеры более глубоких блоков кодирования согласно глубинам могут определяться согласно предварительно определенному максимальному размеру блока кодирования.
В иерархической структуре 600 блоков кодирования, согласно варианту осуществления настоящего изобретения, каждая из максимальной высоты и максимальной ширины блоков кодирования имеет значение 64, а максимальная глубина имеет значение 3. Здесь, максимальная глубина указывает общее количество разбиений блока кодирования согласно глубинам от максимального блока кодирования до минимального блока кодирования. Когда глубина увеличивается вдоль вертикальной оси иерархической структуры 600, разбивается каждая из высоты и ширины более глубокого блока кодирования.
К тому же, блок предсказания и разделы, которые являются базами для кодирования с предсказанием каждого более глубокого блока кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
Другими словами, блок 610 кодирования является максимальным блоком кодирования в иерархической структуре 600, при этом глубина имеет значение 0, а его размер, то есть высота на ширину имеет значение 64x64. Глубина увеличивается вдоль вертикальной оси, и существуют блок 620 кодирования, имеющий размер 32x32 и глубину 1, блок 630 кодирования, имеющий размер 16x16 и глубину 2, блок 640 кодирования, имеющий размер 8x8 и глубину 3. Блок 640 кодирования, имеющий размер 8x8 и глубину 3, является минимальным блоком кодирования.
Блок предсказания и разделы блока кодирования скомпонованы вдоль горизонтальной оси согласно каждой глубине. Другими словами, если блок 610 кодирования, имеющий размер 64x64 и глубину 0, является блоком предсказания, блок предсказания может быть разбит на разделы, включенные в блок 610 кодирования, то есть раздел 610, имеющий размер 64x64, разделы 612, имеющие размер 64x32, и разделы 614, имеющие размер 32x64. Поскольку блок 610 кодирования, имеющий размер 64x64, не является минимальным блоком кодирования, разделы, имеющие размер 32x32, не установлены.
Подобным образом, блок предсказания блока 620 кодирования, имеющего размер 32x32 и глубину 1, может быть разбит на разделы, включенные в блок 620 кодирования, то есть раздел 620, имеющий размер 32x32, разделы 622, имеющие размер 32x16, и разделы 624, имеющие размер 16x32. Поскольку блок 620 кодирования, имеющий размер 32x32, не является минимальным блоком кодирования, разделы, имеющие размер 16x16, не установлены.
Подобным образом, блок предсказания блока 630 кодирования, имеющего размер 16x16 и глубину 2, может быть разбит на разделы, включенные в блок 630 кодирования, то есть раздел, имеющий размер 16x16, включенный в блок 630 кодирования, разделы 632, имеющие размер 16x8 и разделы 634, имеющие размер 8x16. Поскольку блок 630 кодирования, имеющий размер 16x16, не является минимальным блоком кодирования, разделы, имеющие размер 8x8, не установлены.
В заключение, блок предсказания блока 640 кодирования, имеющего размер 8x8 и глубину 3, является минимальным блоком кодирования и имеет самую низкую глубину, и таким образом, может быть разбит на разделы, включенные в блок 640 кодирования, то есть раздел, имеющий размер 8x8, включенный в блок 640 кодирования, разделы 642, имеющие размеры 8x4, разделы 644, имеющие размер 4x8, и разделы 646, имеющие размер 4x4.
Для того чтобы определять по меньшей мере одну кодовую глубину блоков кодирования, составляющих максимальный блок 610 кодирования, определитель 120 блока кодирования устройства 100 кодирования видео выполняет кодирование для блоков кодирования, соответствующих каждой глубине, включенной в максимальный блок 610 кодирования.
Количество более глубоких блоков кодирования согласно глубинам, включающим в себя данные в том же самом диапазоне и того же самого размера, увеличивается по мере того, как увеличивается глубина. Например, четыре блока кодирования, соответствующих глубине 2, требуются для покрытия данных, которые включены в один блок кодирования, соответствующий глубине 1. Соответственно, для того чтобы сравнивать результаты кодирования одних и тех же данных согласно глубинам, кодируются каждые из блока кодирования, соответствующего глубине 1, и четырех блоков кодирования, соответствующих глубине 2.
Для того чтобы выполнять кодирование для текущей глубины из числа глубин, минимальная ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждого блока предсказания в блоках кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. В качестве альтернативы, минимальная ошибка кодирования может отыскиваться сравнением минимальных ошибок кодирования по глубинам, выполнением кодирования для каждой глубины по мере того, как глубина углубляется вдоль вертикальной оси иерархической структуры 600. Глубина и раздел, имеющие минимальную ошибку кодирования в блоке 610 кодирования, могут выбираться в качестве кодовой глубины и типа раздела блока 610 кодирования.
Фиг. 7 - схема для описания взаимосвязи между блоком 710 кодирования и блоками 720 преобразования согласно варианту осуществления настоящего изобретения.
Устройство 100 или 200 кодирования видео кодирует или декодирует изображение по блокам кодирования, имеющим размеры, меньшие чем или равные максимальному блоку кодирования, для каждого максимального блока кодирования. Размеры блоков преобразования для преобразования во время кодирования могут выбираться на основании блоков данных, которые являются не большими, чем соответствующий блок кодирования.
Например, в устройстве 100 или 200 кодирования видео, если размером блока 710 кодирования является 64x64, преобразование может выполняться посредством использования блоков 720 преобразования, имеющих размер 32x32.
К тому же, данные блока 710 кодирования, имеющего размер 64x64, могут кодироваться посредством выполнения преобразования над каждым из блоков преобразования, имеющих размер 32x32, 16x16, 8x8 и 4x4, которые являются меньшими, чем 64x64, а затем может выбираться блок преобразования, имеющий наименьшую ошибку кодирования.
Фиг. 8 - схема для описания информации о кодировании блоков кодирования, соответствующей кодовой глубине, согласно варианту осуществления настоящего изобретения.
Модуль 130 вывода устройства 100 кодирования видео может кодировать и передавать информацию 800 о типе раздела, информацию 810 о режиме предсказания и информацию 820 о размере блока преобразования для каждого блока кодирования, соответствующего кодовой глубине, в качестве информации о режиме кодирования.
Информация 800 указывает информацию о форме раздела, полученного разбиением блока предсказания текущего блока кодирования, при этом раздел является блоком данных для кодирования с предсказанием текущего блока кодирования. Например, текущий блок CU_0 кодирования, имеющий размер 2Nx2N, может быть разбит на любой один из раздела 802, имеющего размер 2Nx2N, раздела 804, имеющего размер 2NxN и раздела 806, имеющего размер Nx2N. Здесь, информация 800 о типе раздела устанавливается, чтобы указывать один из раздела 804, имеющего размер 2NxN, и раздела 806, имеющего размер Nx2N. Однако, когда текущий блок CU_0 кодирования, имеющий размер 2Nx2N, является минимальным блоком кодирования, информация 800 о типе раздела может включать в себя раздел 808, имеющий размер NxN.
Информация 810 указывает режим предсказания каждого раздела. Например, информация 810 может указывать режим кодирования с предсказанием, выполняемого над разделом, указанным информацией 800, то есть внутрикадровый режим 812, межкадровый режим 814 или режим 816 пропуска.
Информация 820 указывает блок преобразования, на котором следует основываться, когда выполняется преобразование над текущим блоком кодирования. Например, блок преобразования может быть первым блоком 822 внутрикадрового преобразования, вторым блоком 824 внутрикадрового преобразования, первым блоком 826 межкадрового преобразования или вторым блоком 828 межкадрового преобразования.
Модуль 220 извлечения данных изображения и информации о кодировании устройства 200 декодирования видео может извлекать и использовать информацию 800, 810 и 820 для декодирования согласно блоку кодирования каждой глубины.
Фиг. 9 - схема более глубоких блоков кодирования по глубинам согласно варианту осуществления настоящего изобретения.
Информация о разбиении может использоваться для указания изменения глубины. Информация о разбиении указывает, разбивается ли блок кодирования текущей глубины на блоки кодирования более низкой глубины.
Блок 910 предсказания для кодирования с предсказанием блока 900 кодирования, имеющего глубину 0 и размер 2N_0x2N_0, может включать в себя разделы типа 912 раздела, имеющего размер 2N_0x2N_0, типа 914 раздела, имеющего размер 2N_0xN_0, и типа 916 раздела, имеющего размер N_0x2N_0. Фиг. 9 иллюстрирует только типы 912-916 раздела, которые получены симметричным разбиением блока 910 предсказания, но тип раздела не ограничен таковыми, и разделы блока 910 предсказания могут включать в себя асимметричные разделы, разделы, имеющие произвольную форму, и разделы, имеющие геометрическую форму.
Кодирование с предсказанием выполняется повторно на одном разделе, имеющем размер 2N_0x2N_0, двух разделах, имеющих размер 2N_0xN_0, и двух разделах, имеющих размер N_0x2N_0, согласно каждому типу раздела. Кодирование с предсказанием во внутрикадровом режиме и межкадровом режиме может выполняться над разделами, имеющими размеры 2N_0x2N_0, N_0x2N_0 и 2N_0xN_0. Кодирование с предсказанием в режиме пропуска выполняется только над разделом, имеющим размер 2N_0x2N_0.
Если ошибка кодирования является наименьшей в одном из типов 912-916 раздела, имеющих размеры 2N_0x2N_0, N_0x2N_0 и 2N_0xN_0, блок 910 предсказания может не разбиваться до более низких глубин. Однако, если ошибка кодирования является наименьшей в блоках 930 кодирования, имеющих размер N_0xN_0, глубина изменяется с 0 на 1, чтобы выполнять разбиение (операцию 920), и кодирование выполняется повторно над блоками 930 кодирования, имеющими глубину 1 и размер N_0xN_0, чтобы отыскивать минимальную ошибку кодирования.
Блок 940 предсказания для кодирования с предсказанием блока 930 кодирования, имеющего глубину 1 и размер 2N_1x2N_1 (=N_0xN_0), может включать в себя разделы типа 942 раздела, имеющего размер 2N_1x2N_1, типа 944 раздела, имеющего размер 2N_1xN_1, и типа 946 раздела, имеющего размер N_1x2N_1.
Если ошибка кодирования является наименьшей в блоках 960 кодирования, имеющих размер N_2xN_2, по сравнению с ошибками кодирования в типах 942-946 раздела, имеющих размеры 2N_1xN_1, N_1x2N_1 и 2N_1xN_1, глубина изменяется с 1 на 2, чтобы выполнять разбиение (операцию 950), и кодирование выполняется повторно над блоками 960 кодирования, имеющими глубину 2 и размер N_2xN_2, чтобы отыскивать минимальную ошибку кодирования.
Когда максимальная глубина имеет значение d-1, блок кодирования согласно каждой глубине может разбиваться вплоть до того, когда глубина становится d-1, и информация о разбиении может кодироваться вплоть до того, когда глубина является одной из от 0 до d-2. Другими словами, когда кодирование выполняется вплоть до того, когда глубина имеет значение d-1, после того, как блок кодирования, соответствующий глубине d-2, разбит в операции 970, блок 990 предсказания для кодирования с предсказанием блока 980 кодирования, имеющего глубину d-1 и размер 2N_(d-1 )x2N_(d-1), может включать в себя разделы типа 922 раздела, имеющего размер 2N_(d-1)x2N_(d-1), типа 994 раздела, имеющего размер 2N_(d-1)xN_(d-1), типа 996 раздела, имеющего размер N_(d-1)x2N_(d-1), и типа 998 раздела, имеющего размер N_(d-1)xN_(d-1). Кодирование с предсказанием может выполняться повторно на одном разделе, имеющем размер 2N_(d-1)x2N_(d-1), двух разделах, имеющих размер 2N_(d-1)xN_(d-1), двух разделах, имеющих размер N_(d-1)x2N_(d-1), четырех разделах, имеющих размер N_(d-1)xN_(d-1) из числа типов 992-998 раздела для отыскивания типа раздела, имеющего минимальную ошибку кодирования.
Даже когда тип 998 раздела имеет минимальную ошибку кодирования, поскольку максимальная глубина имеет значение d-1, блок CU_(d-1) кодирования, имеющий глубину d-1 больше не разбивается до более низкой глубины, и кодовая глубина для блоков кодирования, составляющих текущий максимальный блок 900 кодирования, определяется, чтобы иметь значение d-1, а тип раздела текущего максимального блока 900 кодирования может определяться имеющим значение N_(d-1)xN_(d-1). К тому же, поскольку максимальная глубина имеет значение d-1, а минимальный блок 980 кодирования, имеющий самую нижнюю глубину d-1 больше не разбивается до более низкой глубины, информация о разбиении для минимального блока 980 кодирования не устанавливается.
Поскольку блок 900 кодирования, имеющий глубину 0 и размер 2N_0x2N_0, и блок 930 кодирования, имеющий глубину 1 и размер 2N_1x2N_1 не являются минимальными блоками кодирования, блок 910 предсказания для блока 900 кодирования, имеющего размер 2N_0x2N_0, может не включать в себя тип раздела, имеющий размер N_0xN_0, а блок 940 предсказания для блока 930 кодирования, имеющего размер 2N_1x2N_1, может не включать в себя тип раздела, имеющий размер N_1xN_1.
Однако, блок 990 предсказания для кодирования с предсказанием блока 980 кодирования, имеющего глубину d-1, который является минимальным блоком кодирования, может включать в себя тип 998 раздела, имеющий размер N_(d-1)xN_(d-1).
Блок 999 данных может быть ‘минимальным блоком‘ для текущего максимального блока кодирования. Минимальный блок согласно варианту осуществления настоящего изобретения может быть прямоугольным блоком данных, полученным разбиением минимального блока 980 кодирования на 4. Посредством повторного выполнения кодирования, устройство 100 кодирования видео может выбирать глубину, имеющую минимальную ошибку кодирования, сравнивая ошибки кодирования по глубинам блока 900 кодирования, чтобы определять кодовую глубину и устанавливать соответствующий тип разбиения и режим предсказания в качестве режима кодирования кодовой глубины.
По существу, минимальные ошибки кодирования согласно глубинам сравниваются на всех из глубин от 1 до d, и глубина, имеющая наименьшую ошибку кодирования, может быть определена в качестве кодовой глубины. Кодовая глубина, тип раздела блока предсказания и режим предсказания могут кодироваться и передаваться в качестве информации о режиме кодирования. К тому же, поскольку блок кодирования разбивается с глубины 0 до кодовой глубины, только информация о разбиении кодовой глубины устанавливается в 0, а информация о разбиении глубин, включая кодовую глубину, устанавливается в 1.
Модуль 220 извлечения данных изображения и информации о кодировании устройства 200 декодирования видео может извлекать и использовать информацию о кодовой глубине и блоке предсказания блока 900 кодирования для декодирования раздела 912. Устройство 200 декодирования видео может определять глубину, на которой информация о разбиении имеет значение 0, в качестве кодовой глубины, используя информацию о разбиении согласно глубинам, и использовать информацию о режиме кодирования кодовой глубины для декодирования блока кодирования, соответствующего кодовой глубине.
Фиг. 10-12 - схемы для описания взаимосвязи между блоками 1010 кодирования, блоками 1060 предсказания и блоками 1070 преобразования согласно варианту осуществления настоящего изобретения.
Блоки 1010 кодирования являются блоками кодирования, имеющими древовидную структуру, соответствующими кодовым глубинам, определенным устройством 100 кодирования видео, в максимальном блоке кодирования. Блоки 1060 предсказания являются разделами блоков предсказания каждого из блоков 1010 кодирования, а блоки 1070 преобразования являются блоками преобразования каждого из блоков 1010 кодирования.
Когда глубина максимального блока кодирования имеет значение 0 в блоках 1010 кодирования, глубины блоков 1012 и 1054 кодирования имеют значение 1, глубины блоков 1014, 1016, 1018, 1028, 1050 и 1052 кодирования имеют значение 2, глубины блоков 1020, 1022, 1024, 1026, 1030, 1032 и 1048 кодирования имеют значение 3, а глубины блоков 1040, 1042, 1044 и 1046 кодирования имеют значение 4.
В блоках 1060 предсказания, некоторые блоки 1014, 1016, 1022, 1032, 1048, 1050, 1052 и 1054 кодирования получаются разбиением блоков кодирования среди блоков 1010 кодирования. Другими словами, типы раздела в блоках 1014, 1022, 1050 и 1054 кодирования имеют размер 2NxN, типы раздела в блоках 1016, 1048 и 1052 кодирования имеют размер Nx2N, а тип раздела блока 1032 кодирования имеет размер NxN. Тип раздела, имеющий размер NxN, может устанавливаться, только когда блок 1032 кодирования является минимальным блоком кодирования. Блоки предсказания и разделы блоков 1010 кодирования являются меньшими чем или равными каждому блоку кодирования.
Преобразование или обратное преобразование выполняется над данными изображения блока 1052 кодирования в блоках 1070 преобразования в блоках данных, которые меньше, чем блок 1052 кодирования. К тому же, блоки 1014, 1016, 1022, 1032, 1048, 1050 и 1052 кодирования в блоках 1070 преобразования отличны от таковых в блоках 1060 предсказания в показателях размеров и форм. Другими словами, устройства 100 и 200 кодирования и декодирования видео могут выполнять внутрикадровое предсказание, оценку движения, компенсацию движения, преобразование и обратное преобразование по отдельности над блоком данных в одном и том же блоке кодирования.
Соответственно, кодирование выполняется рекурсивно над каждым из блоков кодирования, имеющих иерархическую структуру в каждой области максимального блока кодирования, чтобы определять оптимальный блок кодирования и, таким образом, могут получаться блоки кодирования, имеющие рекурсивную древовидную структуру. Информация о кодировании может включать в себя одну из информации о разбиении касательно блока кодирования, информации о типе раздела, информации о режиме предсказания и информации о размере блока преобразования. Таблица 1 показывает информацию о кодировании, которая может устанавливаться устройствами 100 и 200 кодирования и декодирования видео.
Таблица 1
Информация 0 о разбиении(кодирование на блоке кодирования, имеющем размер 2Nx2N и +текущую глубину d)
Информация 1 о разбиении
Режим предсказания
Тип раздела
Размер блока преобразования
Повторно кодировать блоки кодирования, имеющие более низкую глубинуd+1
ВнутрикадровоеМежкадровоеПропуск(Только 2Nx2N)
Симметричный тип раздела
Асимметричный тип раздела
Информация 0 о разбиении блока преобразования
Информация 1 о разбиении блокапреобразования
2Nx2N2NxNNx2NNxN
2NxnU2NxnDnLx2NnRx2N
2Nx2N
NxN (симметричный тип раздела)N/2xN/2 (асимметричный тип радела)
Модуль 130 вывода устройства 100 кодирования видео может выдавать информацию о кодировании касательно блоков кодирования, имеющих древовидную структуру, а модуль 220 извлечения данных изображения и информации о кодировании устройства 200 декодирования видео может извлекать информацию о кодировании касательно блоков кодирования, имеющих древовидную структуру, из принимаемого битового потока.
Информация о разбиении указывает, разбит ли текущий блок кодирования на блоки кодирования более низкой глубины. Если информация о разбиении текущей глубины d имеет значение 0, глубина, на которой текущий блок кодирования больше не разбивается на более низкую глубину, является кодовой глубиной, и таким образом, информация о типе раздела, режиме предсказания и размере блока преобразования может определяться для кодовой глубины. Если текущий блок кодирования дополнительно разбит согласно информации о разбиении, кодирование выполняется независимо на четырех блоках кодирования разбиения более низкой глубины.
Режим предсказания может быть одним из внутрикадрового режима, межкадрового режима и режима пропуска. Внутрикадровый режим и межкадровый режим могут определяться на всех типах раздела, а режим пропуска определяется только в типе раздела, имеющем размер 2Nx2N.
Информация о типе раздела может указывать симметричные типы раздела, имеющие размеры 2Nx2N, 2NxN, Nx2N и NxN, которые получены симметричным разбиением высоты или ширины блока предсказания, и асимметричные типы раздела, имеющие размеры 2NxnU, 2NxnD, nLx2N и nRx2N, которые получены асимметричным разбиением высоты или ширины блока предсказания. Асимметричные типы разбиения, имеющие размеры 2NxnU и 2NxnD, могут соответственно получаться разбиением высоты блока предсказания в 1:3 и 3:1, а асимметричные типы разбиения, имеющие размеры nLx2N и nRx2N, могут соответственно получаться разбиением ширины блока предсказания в 1:3 и 3:1. Симметричный тип раздела NxN может устанавливаться, только когда текущий блок 2Nx2N кодирования является минимальным блоком кодирования.
Размер блока преобразования может устанавливаться, чтобы быть двумя типами при внутрикадровом режиме и двумя типами при межкадровом режиме. Другими словами, если информация о разбиении блока преобразования имеет значение 0, размером блока преобразования может быть 2Nx2N, который является размером текущего блока кодирования. Если информация о разбиении блока преобразования имеет значение 1, блоки преобразования могут быть получены разбиением текущего блока кодирования. К тому же, если тип раздела текущего блока кодирования, имеющего размер 2Nx2N, является симметричным типом раздела, размером блока преобразования может быть NxN, а если тип раздела текущего блока кодирования является асимметричным типом раздела, размером блока преобразования может быть N/2xN/2.
Информация о кодировании касательно блоков кодирования, имеющих древовидную структуру, может включать в себя по меньшей мере один из блока кодирования, соответствующего кодовой глубине, блока предсказания и минимального блока. Блок кодирования, соответствующий кодовой глубине, может содержать в себе по меньшей мере один из блока предсказания и минимального блока, включающего в себя такую же информацию о кодировании.
Соответственно, определяется, включены ли смежные блоки данных в один и тот же блок кодирования, соответствующий кодовой глубине, посредством сравнения информации о кодировании смежных блоков данных. К тому же, соответствующий блок данных, соответствующий кодовой глубине, определяется посредством использования информации о кодировании блока данных и, таким образом, может определяться распределение кодовых глубин в максимальном блоке кодирования.
Соответственно, если текущий блок кодирования предсказан на основании информации о кодировании смежных блоков данных, информация о кодировании блоков данных в более глубоких блоках кодирования, смежных с текущим блоком кодирования, может непосредственно подвергаться обращению и использоваться.
В качестве альтернативы, если текущий блок кодирования предсказан на основании информации о кодировании смежных блоков данных, блоки данных, смежные с текущим блоком кодирования, отыскиваются с использованием кодированной информации блоков данных, и найденные смежные блоки кодирования могут подвергаться обращению для предсказания текущего блока кодирования.
Фиг. 13 - схема для описания взаимосвязи между блоком кодирования, блоком предсказания или разделом, и блоком преобразования согласно информации о режиме кодирования по таблице 1.
Максимальный блок 1300 кодирования включает в себя блоки 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодирования кодовых глубин. Здесь, поскольку блок 1318 кодирования является блоком кодирования кодовой глубины, информация о разбиении может быть установлена в 0. Информация о типе раздела блока 1318 кодирования, имеющего размер 2Nx2N, может быть установлена, чтобы быть одним из типа 1322 раздела, имеющего размер 2Nx2N, типа 1324 раздела, имеющего размер 2NxN, типа 1326 раздела, имеющего размер Nx2N, типа 1332 раздела, имеющего размер 2NxnU, типа 1334 раздела, имеющего размер 2NxnD, типа 1336 раздела, имеющего размер nLx2N, и типа 1338 раздела, имеющего размер nRx2N. Когда блок 1318 кодирования, имеющий размер 2Nx2N, является минимальным блоком кодирования, информация о типе раздела может устанавливаться в тип 1328 раздела, имеющий размер NxN.
Информация о разбиении (флаг размера TU) блока преобразования является типом индекса преобразования, а размер блока преобразования, который соответствует индексу преобразования, может изменяться согласно типу блока предсказания или типу раздела блока кодирования.
Когда тип раздела установлен симметричным, то есть типом 1322, 1324, 1326 или 1328 раздела, блок 1342 преобразования, имеющий размер 2Nx2N, устанавливается, если информация о разбиении блока преобразования имеет значение 0, и устанавливается блок 1344 преобразования, имеющий размер NxN, если флаг размера TU имеет значение 1.
Когда тип раздела установлен асимметричным, то есть типом 1332, 1334, 1336 или 1338 раздела, блок 1352 преобразования, имеющий размер 2Nx2N, устанавливается, если флаг размера TU имеет значение 0, и устанавливается блок 1354 преобразования, имеющий размер N/2xN/2, если флаг размера TU имеет значение 1.
Со ссылкой на фиг. 13, флаг размера TU является флагом, имеющим значение либо 0, либо 1, но флаг размера TU не ограничен 1 битом, и блок преобразования может иерархически разбиваться, имея древовидную структуру, в то время как флаг размера TU возрастает от 0. Информация о разбиении блока преобразования может использоваться в качестве примера индекса преобразования.
В этом случае, если информация о разбиении блока преобразования используется вместе с максимальным размером блока преобразования и минимальным размером блока преобразования, может быть выражен размер блока преобразования, который используется фактически. Устройство 100 кодирования видео может кодировать информацию о максимальном размере блока преобразования, информацию о минимальном размере блока преобразования и информацию о максимальном разбиении блока преобразования. Кодированная информация о максимальном размере блока преобразования, кодированная информация о минимальном размере блока преобразования и кодированная информация о максимальном разбиении блока преобразования могут быть вставлены в SPS. Устройство 200 декодирования видео может декодировать видео посредством использования информации о максимальном размере блока преобразования, информации о минимальном размере блока преобразования и информации о максимальном разбиении блока преобразования.
Например, (a) если размер текущего блока кодирования имеет значение 64x64, а максимальный размер блока преобразования имеет значение 32x32, (a-1) размер блока преобразования может быть установлен в 32x32, когда информация о разбиении блока преобразования имеет значение 0, (a-2) размер блока преобразования может устанавливаться в 16x16, когда информация о разбиении блока преобразования имеет значение 1, и (a-3) размер блока преобразования может устанавливаться в 8x8, когда информация о разбиении блока преобразования имеет значение 2.
В еще одном примере, (b) если размер текущего блока кодирования имеет значение 32x32, а минимальный размер блока преобразования имеет значение 32x32, (b-1) размер блока преобразования может быть установлен в 32x32, когда информация о разбиении блока преобразования имеет значение 0, и поскольку размер блока преобразования не может быть меньшим, чем размер 32x32, информация о разбиении блока преобразования не может устанавливаться сверх того.
В еще одном примере, (c) если размер текущего блока кодирования имеет значение 64x64, и информация о максимальном разбиении блока преобразования имеет значение 1, информация о разбиении блока преобразования может иметь значение 0 или 1, а другая информация о разбиении блока преобразования не может быть установлена.
∧
Таким образом, если определено, что флагом максимального размера TU является 'MaxTransformSizeIndex', минимальным размером блока преобразования является 'MinTransformSize', а размером блока преобразования является 'RootTuSize', когда флаг размера TU имеет значение 0, то текущий минимального размер 'CurrMinTuSize' блока преобразования, который может быть определен в текущем блоке кодирования, может определяться согласно уравнению (1): CurrMinTuSize = max(MinTransformSize, RootTuSize/(2MaxTransformSizeIndex)) (1)
∧
∧
По сравнению с текущим размером 'CurrMinTuSize' минимального блока преобразования, который может быть определен в текущем блоке кодирования, размер 'RootTuSize' блока преобразования, когда флаг размера TU имеет значение 0, может обозначать максимальный размер блока преобразования, который может быть выбран в системе. В уравнении (1), 'RootTuSize/(2MaxTransformSizeIndex)' обозначает размер блока преобразования, когда размер '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 - блок-схема, иллюстрирующая способ кодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
При операции 1210, текущая картинка разбивается на по меньшей мере один максимальный блок кодирования. Максимальная глубина, указывающая общее количество раз возможного разбиения, может быть предварительно определена.
При операции 1220, кодовая глубина для вывода заключительного результата кодирования согласно по меньшей мере одной области разбиения, которая получена разбиением области каждого максимального блока кодирования по глубинам, определяется кодированием по меньшей мере одной области разбиения, и определяются блоки кодирования согласно древовидной структуре.
Максимальный блок кодирования пространственно разбивается всякий раз, когда углубляется глубина, и, таким образом, разбивается на блоки кодирования более низкой глубины. Каждый блок кодирования может разбиваться на блоки кодирования другой, более низкой глубины, будучи пространственно разбиваемым независимо от смежных блоков кодирования. Кодирование повторно выполняется на каждом блоке кодирования согласно глубинам.
К тому же, блок преобразования согласно типам раздела, имеющий наименьшую ошибку кодирования, определяется для каждого более глубокого блока кодирования. Для того чтобы определять кодовую глубину, имеющую минимальную ошибку кодирования, в каждом максимальном блоке кодирования, ошибки кодирования могут измеряться и сравниваться во всех более глубоких блоках кодирования по глубинам.
Когда блок преобразования определен, может определяться блок преобразования для преобразования блока кодирования. Блок преобразования согласно настоящему варианту осуществления может определяться в качестве блока данных, чтобы минимизировать ошибку, навлеченную блоком преобразования для преобразования блока кодирования.
В каждом максимальном блоке кодирования, картинка кодируется на основании типа раздела, который определен на основании блоков кодирования по глубинам, и глубин блоков кодирования по глубинам, и блоки кодирования кодовых глубин определяются независимо для каждого из блоков кодирования по глубинам, так что могут определяться блоки кодирования, имеющие древовидную структуру.
В по меньшей мере одном из случаев, в котором текущий блок кодирования больше не разбивается на блоки кодирования более низкой глубины, в котором текущий блок кодирования является максимальным блоком кодирования из числа текущих максимальных блоков кодирования, и в котором текущий блок кодирования является блоком кодирования самой низкой глубины из числа текущих максимальных блоков кодирования, тип раздела текущего блока кодирования дополнительно может включать в себя раздел, имеющий такой же размер, как блок кодирования более низкой глубины. Тип раздела может включать в себя симметричные разделы, которые получаются симметричным разбиением высоты или ширины текущего блока кодирования, разделы, полученные асимметричным разбиением высоты или ширины текущего блока кодирования, разделы, которые получены геометрическим разбиением текущего блока кодирования, или разделы, имеющие произвольные формы. Кодирование с предсказанием может выполняться на основании типа раздела и режима предсказания блока предсказания в отношении текущего блока кодирования.
Соответственно, в по меньшей мере одном из случаев, в котором текущий блок кодирования больше не разбивается на блоки кодирования более низкой глубины, в котором текущий блок кодирования является минимальным блоком кодирования из числа текущих максимальных блоков кодирования, и в котором текущий блок кодирования является блоком кодирования самой низкой глубины из числа текущих максимальных блоков кодирования, кодирование с предсказанием может выполняться посредством использования не только симметричных разделов, которые получаются симметричным разбиением высоты или ширины текущего блока кодирования, разделов, полученных асимметричным разбиением высоты или ширины текущего блока кодирования, разделов, которые получены геометрическим разбиением текущего блока кодирования, и разделов, имеющих произвольные формы, но также посредством использования раздела, имеющего такой же размер, как блок кодирования более низкой глубины.
В дополнение, в по меньшей мере одном из случаев, в котором текущий блок кодирования может быть разбит на блоки кодирования более низкой глубины, в котором текущий блок кодирования не является блоком кодирования самой низкой глубины из числа текущих максимальных блоков кодирования, и в котором текущий блок кодирования является блоком кодирования самой низкой глубины из числа текущих максимальных блоков кодирования, внутрикадровое предсказание и межкадровое предсказание, которые выполняются посредством использования раздела, имеющего такой же размер, как блок кодирования более низкой глубины, могут пропускаться.
При операции 1230, кодированные данные изображения, составляющие заключительный результат кодирования согласно кодовой глубине выдаются для каждого максимального блока кодирования с информацией о кодировании касательно кодовой глубины и режима кодирования. Информация о режиме кодирования может включать в себя информацию о кодовой глубине или информацию о разбиении, информацию о типе раздела блока предсказания, информацию о режиме предсказания, информацию о размере блока преобразования, информацию об индексе преобразования, и тому подобное.
Информация о структуре блока кодирования касательно размера и переменной глубины блока кодирования, определенных согласно блоку данных, такому как последовательности, картинки, вырезки или GOP, может вставляться в заголовок битового потока, SPS или PPS, а затем может выводиться.
Кодированная информация о режиме кодирования и информация о структуре блока кодирования касательно размера и переменной глубины блока кодирования, может вставляться в заголовок битового потока, SPS или PPS, а затем может передаваться в декодер с кодированными данными изображения.
Фиг. 15 - блок-схема, иллюстрирующая способ декодирования видео посредством использования блока предсказания на основании блоков кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
При операции 1310, битовый поток кодированного видео принимается и синтаксически анализируется.
При операции 1320, кодированные данные изображения текущей картинки, назначенные на максимальный блок кодирования, и информация о кодовой глубине и режиме кодирования согласно максимальным блокам кодирования, и информация о структуре блока кодирования касательно размера и переменной глубины блока кодирования, извлекаются из синтаксически анализируемого битового потока. Информация о кодовой глубине и режиме кодирования, информация о структуре блока кодирования касательно размера и переменной глубины блока кодирования, и информация разбиения может извлекаться из заголовка битового потока, SPS или PPS.
Кодовая глубина каждого максимального блока кодирования является глубиной, имеющей минимальную ошибку кодирования в каждом максимальном блоке кодирования. При кодировании каждого максимального блока кодирования, данные изображения кодируются на основании по меньшей мере одного блока данных, полученного иерархическим разбиением каждого максимального кодового блока согласно глубинам.
Согласно информации о кодовой глубине и режиме кодирования, максимальный блок кодирования может быть разбит на блоки кодирования, имеющие древовидную структуру. Каждый из блоков кодирования, имеющих древовидную структуру, определен в качестве блока кодирования, соответствующего кодовой глубине, и оптимально кодируется в отношении выдачи минимальной ошибки кодирования. Соответственно, эффективность кодирования и декодирования изображения может быть улучшена декодированием каждого фрагмента кодированных данных изображения в блоках кодирования после определения по меньшей мере одной кодовой глубины согласно блокам кодирования.
Максимальный размер и минимальный размер блока кодирования из числа текущих блоков кодирования, имеющих древовидную структуру, могут определяться на основании информации о кодировании, включающей в себя по меньшей мере две из информации о переменной глубине текущих блоков кодирования, имеющих древовидную структуру, информации о максимальном размере блока кодирования и информации о минимальном размере блока кодирования.
К тому же, блоки преобразования согласно древовидной структуре в блоках кодирования могут определяться на основании индекса преобразования из информации о кодировании.
Тип раздела может определяться на основании глубины текущего блока кодирования, а декодирование с предсказанием выполняется на основании блоков кодирования и типа раздела, так что картинка может декодироваться. Тип разбиения согласно настоящему варианту осуществления может включать в себя по меньшей мере один из разделов, имеющих такой же размер, как текущий блок кодирования, разделов, которые получены делением высоты или ширины текущего блока кодирования на два, симметричных разделов, которые получены симметричным разбиением высоты или ширины текущего блока кодирования, разделов, полученных асимметричным разбиением высоты или ширины текущего блока кодирования, разделов, которые получены геометрическим разбиением текущего блока кодирования, и разделов, имеющих произвольные формы.
В по меньшей мере одном из случаев, в котором текущий блок кодирования больше не разбивается на блоки кодирования более низкой глубины, в котором текущий блок кодирования является минимальным блоком кодирования из числа текущих максимальных блоков кодирования, и в котором текущий блок кодирования является блоком кодирования самой низкой глубины из числа текущих максимальных блоков кодирования, тип раздела текущего блока кодирования дополнительно может включать в себя раздел, имеющий такой же размер, как блок кодирования более низкой глубины.
При операции 1330, данные изображения каждого максимального блока кодирования декодируются на основании информации о кодовой глубине и режиме кодирования согласно максимальным блокам кодирования.
Максимальный размер и минимальный размер блоков кодирования могут считываться на основании информации о структуре блока кодирования и информации о разбиении, и таким образом, могут определяться блоки, имеющие древовидную структуру. Информация о типе раздела и режиме предсказания блока предсказания из блока кодирования может считываться из информации о режиме кодирования, а декодирование с предсказанием может выполняться в отношении блоков кодирования на основании информации о типе раздела и режиме предсказания, так чтобы мог декодироваться текущий блок кодирования.
Например, в по меньшей мере одном из случаев, в котором текущий блок кодирования может быть разбит на блоки кодирования более низкой глубины, в котором текущий блок кодирования не является блоком кодирования самой низкой глубины из числа текущих максимальных блоков кодирования, и в котором текущий блок кодирования является блоком кодирования самой низкой глубины из числа текущих максимальных блоков кодирования, внутрикадровое предсказание или межкадровое предсказание/компенсация, которые выполняются посредством использования раздела, имеющего такой же размер, как блок кодирования более низкой глубины, могут пропускаться.
Однако, в по меньшей мере одном из случаев, в котором текущий блок кодирования больше не разбивается на блоки кодирования более низкой глубины, в котором текущий блок кодирования является минимальным блоком кодирования из числа текущих максимальных блоков кодирования, и в котором текущий блок кодирования является блоком кодирования самой низкой глубины из числа текущих максимальных блоков кодирования, внутрикадровое предсказание или межкадровое предсказание/компенсация могут выполняться посредством использования не только разделов, имеющих такой же размер, как текущий блок кодирования, разделов, полученных делением высоты или ширины текущего блока кодирования на два, и разделов, полученных асимметричным разбиением высоты или ширины текущего блока кодирования, но также посредством использования раздела, имеющего такой же размер, как блок кодирования, имеющий глубину, более низкую, чем у текущего блока кодирования.
Устройством воспроизведения могут воспроизводиться декодированные данные изображения, хранимые на запоминающем носителе или передаваемые через сеть.
Варианты осуществления настоящего изобретения могут быть записаны в качестве компьютерных программ и могут быть реализованы в цифровых компьютерах общего назначения, которые исполняют программы с использованием компьютерно-читаемого носителя записи. Примеры компьютерно-читаемого носителя записи включают в себя магнитные запоминающие носители (например, ROM, гибкие диски, жесткие диски, и т. д.) и оптические носители записи (например, CD-ROM или DVD).
Несмотря на то что это изобретение было подробно показано и описано со ссылкой на его предпочтительные варианты осуществления, специалисты в данной области техники должны понимать, что в нем могут быть произведены различные изменения по форме и содержанию, не отступая от сущности и объема изобретения, который определен прилагаемой формулой изобретения. Предпочтительные варианты осуществления должны рассматриваться только в описательном смысле, а не в целях ограничения. Поэтому объем изобретения определен не подробным описанием изобретения, а прилагаемой формулой изобретения, а все отличия в пределах объема будут истолковываться в качестве являющихся включенными в настоящее изобретение.