СПОСОБ КОДИРОВАНИЯ ВИДЕО И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО НА ОСНОВЕ ЕДИНИЦ КОДИРОВАНИЯ, ОПРЕДЕЛЕННЫХ В СООТВЕТСТВИИ С ДРЕВОВИДНОЙ СТРУКТУРОЙ, И СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕО И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ВИДЕО НА ОСНОВЕ ЕДИНИЦ КОДИРОВАНИЯ, ОПРЕДЕЛЕННЫХ В СООТВЕТСТВИИ С ДРЕВОВИДНОЙ СТРУКТУРОЙ
METHOD FOR CODING VIDEO AND DEVICE FOR VIDEO CODING ON BASIS OF CODING UNITS DEFINED IN ACCORDANCE WITH TREE-LIKE STRUCTURE, AND METHOD FOR DECODING VIDEO AND DEVICE FOR DECODING VIDEO ON BASIS OF CODING UNITS DEFINED IN ACCORDANCE WITH TREE-LIKE 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 разбиения на максимальные единицы кодирования может разбивать текущее изображение на основе максимальной единицы кодирования для текущей картины изображения. Если текущее изображение превышает максимальную единицу кодирования, данные изображений текущего изображения могут разбиваться, по меньшей мере, на одну максимальную единицу кодирования. Максимальная единица кодирования согласно варианту осуществления настоящего изобретения может быть единицей данных, имеющей размер 32×32, 64×64, 128×128, 256×256 и т.д., при этом форма единицы данных является квадратом, имеющим ширину и длину в квадратах по 2. Данные изображений могут выводиться в модуль 120 определения единиц кодирования согласно, по меньшей мере, одной максимальной единице кодирования.
Единица кодирования согласно варианту осуществления настоящего изобретения может отличаться посредством максимального размера и глубины. Глубина обозначает число раз, которое единица кодирования пространственно разбивается от максимальной единицы кодирования, и по мере того, как глубина увеличивается, более глубокие единицы кодирования согласно глубинам могут разбиваться от максимальной единицы кодирования до минимальной единицы кодирования. Глубина максимальной единицы кодирования является самой верхней глубиной, а глубина минимальной единицы кодирования является самой нижней глубиной. Поскольку размер единицы кодирования, соответствующей каждой глубине, снижается по мере того, как глубина максимальной единицы кодирования увеличивается, единица кодирования, соответствующая верхней глубине, может включать в себя множество единиц кодирования, соответствующих нижним глубинам.
Как описано выше, данные изображений текущего изображения разбиваются на максимальные единицы кодирования согласно максимальному размеру единицы кодирования, и каждая из максимальных единиц кодирования может включать в себя более глубокие единицы кодирования, которые разбиваются согласно глубинам. Поскольку максимальная единица кодирования согласно варианту осуществления настоящего изобретения разбивается согласно глубинам, данные изображений пространственной области, включенные в максимальную единицу кодирования, могут быть иерархически классифицированы согласно глубинам.
Может быть предварительно определена максимальная глубина и максимальный размер единицы кодирования, которые ограничивают общее число раз, сколько высота и ширина максимальной единицы кодирования иерархически разбиваются.
Модуль 120 определения единиц кодирования кодирует, по меньшей мере, одну область разбиения, полученную посредством разбиения области максимальной единицы кодирования согласно глубинам, и определяет глубину, чтобы выводить конечные кодированные данные изображений согласно, по меньшей мере, одной области разбиения. Другими словами, модуль 120 определения единиц кодирования определяет кодированную глубину посредством кодирования данных изображений в более глубоких единицах кодирования согласно глубинам, согласно максимальной единице кодирования текущего изображения и выбора глубины, имеющей наименьшую ошибку кодирования. Таким образом, кодированные данные изображений единицы кодирования, соответствующей определенной кодированной глубине, в завершение выводятся. Кроме того, единицы кодирования, соответствующие кодированной глубине, могут рассматриваться в качестве кодированных единиц кодирования.
Определенная кодированная глубина и кодированные данные изображений согласно определенной кодированной глубине выводятся в модуль 130 вывода.
Данные изображений в максимальной единице кодирования кодируются на основе более глубоких единиц кодирования, соответствующих, по меньшей мере, одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображений сравниваются на основе каждой из более глубоких единиц кодирования. Глубина, имеющая наименьшую ошибку кодирования, может быть выбрана после сравнения ошибок кодирования более глубоких единиц кодирования. По меньшей мере, одна кодированная глубина может быть выбрана для каждой максимальной единицы кодирования.
Размер максимальной единицы кодирования разбивается по мере того, как единица кодирования иерархически разбивается согласно глубинам, и по мере того, как число единиц кодирования увеличивается. Кроме того, даже если единицы кодирования соответствуют идентичной глубине в одной максимальной единице кодирования, определяется то, разбивать или нет каждую из единиц кодирования, соответствующих идентичной глубине, до нижней глубины посредством измерения ошибки кодирования данных изображений каждой единицы кодирования, отдельно. Соответственно, даже когда данные изображений включаются в одну максимальную единицу кодирования, данные изображений разбиваются на области согласно глубинам, ошибки кодирования могут отличаться согласно областям в одной максимальной единице кодирования, и, таким образом, кодированные глубины могут отличаться согласно областям в данных изображений. Таким образом, одна или более кодированных глубин могут быть определены в одной максимальной единице кодирования, и данные изображений максимальной единицы кодирования могут разбиваться согласно единицам кодирования, по меньшей мере, одной кодированной глубины.
Соответственно, модуль 120 определения единиц кодирования может определять единицы кодирования, имеющие древовидную структуру, включенные в максимальную единицу кодирования. "Единицы кодирования, имеющие древовидную структуру" согласно варианту осуществления настоящего изобретения включают в себя единицы кодирования, соответствующие глубине, определенной как кодированная глубина, из всех более глубоких единиц кодирования, включенных в максимальную единицу кодирования. Единица кодирования кодированной глубины может быть иерархически определена согласно глубинам в идентичной области максимальной единицы кодирования и может быть независимо определена в различных областях. Аналогично, кодированная глубина в текущей области может быть независимо определена из кодированной глубины в другой области.
Максимальная глубина согласно варианту осуществления настоящего изобретения является индексом, связанным с числом разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Максимальная глубина согласно варианту осуществления настоящего изобретения может обозначать общее число разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Например, когда глубина максимальной единицы кодирования равна 0, глубина единицы кодирования, на которую максимальная единица кодирования разбивается один раз, может задаваться равной 1, а глубина единицы кодирования, на которую максимальная единица кодирования разбивается два раза, может задаваться равной 2. Здесь, если минимальная единица кодирования является единицей кодирования, на которую максимальная единица кодирования разбивается четыре раза, имеется 5 уровней глубины из глубин 0, 1, 2, 3 и 4, и тем самым максимальная глубина может задаваться равной 4.
Прогнозирующее кодирование и преобразование может выполняться согласно максимальной единице кодирования. Прогнозирующее кодирование и преобразование также выполняются на основе более глубоких единиц кодирования согласно глубине, равной, или глубинам, меньшим максимальной глубины, согласно максимальной единице кодирования. Преобразование может выполняться согласно способу преобразования частоты, ортогонального преобразования или целочисленного преобразования.
Поскольку число более глубоких единиц кодирования увеличивается каждый раз, когда максимальная единица кодирования разбивается согласно глубинам, кодирование, включающее в себя прогнозирующее кодирование и преобразование, выполняется для всех более глубоких единиц кодирования, сформированных по мере того, как глубина увеличивается. Для удобства описания, прогнозирующее кодирование и преобразование далее описываются на основе единицы кодирования текущей глубины в максимальной единице кодирования.
Устройство 100 кодирования видео может по-разному выбирать размер или форму единицы данных для кодирования данных изображений. Чтобы кодировать данные изображений, выполняются такие операции, как прогнозирующее кодирование, преобразование и энтропийное кодирование, и в это время идентичная единица данных может использоваться для всех операций, или различные единицы данных могут использоваться для каждой операции.
Например, устройство 100 кодирования видео может выбирать не только единицу кодирования для кодирования данных изображений, но также и единицу данных, отличающуюся от единицы кодирования, с тем чтобы выполнять прогнозирующее кодирование для данных изображений в единице кодирования.
Чтобы выполнять прогнозирующее кодирование в максимальной единице кодирования, прогнозирующее кодирование может выполняться на основе единицы кодирования, соответствующей кодированной глубине, т.е. на основе единицы кодирования, которая более не разбивается на единицы кодирования, соответствующие нижней глубине. В дальнейшем в этом документе, единица кодирования, которая более не разбивается и становится базисной единицей для прогнозирующего кодирования, далее упоминается как "единица прогнозирования". Сегмент, полученный посредством разбиения единицы прогнозирования, может включать в себя единицу данных, полученную посредством разбиения, по меньшей мере, одной из высоты и ширины единицы прогнозирования.
Например, когда единица кодирования в 2N×2N (где N является положительным целым числом) более не разбивается и становится единицей прогнозирования в 2N×2N, размер сегмента может составлять 2N×2N, 2N×N, N×2N или N×N. Примеры типа сегмента включают в себя симметричные сегменты, которые получаются посредством симметричного разбиения высоты или ширины единицы прогнозирования, сегменты, полученные посредством асимметричного разбиения высоты или ширины единицы прогнозирования, к примеру, 1:n или n:1, сегменты, которые получаются посредством геометрического разбиения единицы прогнозирования, и сегменты, имеющие произвольные формы.
Режим прогнозирования единицы прогнозирования может быть, по меньшей мере, одним из внутреннего режима, взаимного режима и режима пропуска. Например, внутренний режим или взаимный режим могут выполняться для сегмента в 2N×2N, 2N×N, N×2N или N×N. Кроме того, режим пропуска может выполняться только для сегмента в 2N×2N. Кодирование независимо выполняется для одной единицы прогнозирования в единице кодирования, тем самым выбирая режим прогнозирования, вызывающий наименьшую ошибку кодирования.
Устройство 100 кодирования видео также может выполнять преобразование для данных изображений в единице кодирования на основе не только для единицы кодирования для кодирования данных изображений, но также и на основе единицы данных, которая отличается от единицы кодирования.
Чтобы выполнять преобразование в единице кодирования, преобразование может выполняться на основе единицы преобразования, имеющей размер, меньший или равный единице кодирования. Например, единица преобразования для преобразования может включать в себя единицу преобразования для внутреннего режима и единицу преобразования для взаимного режима.
Аналогично единице кодирования, имеющей древовидную структуру, единица преобразования в единице кодирования может рекурсивно разбиваться на области меньших размеров. Таким образом, остаточные данные в единице кодирования могут разбиваться согласно преобразованию, имеющему древовидную структуру согласно глубинам преобразования.
Глубина преобразования, указывающая число разбиений, чтобы достигать единицы преобразования посредством разбиения высоты и ширины единицы кодирования, также может задаваться в единице преобразования. Например, в текущей единице кодирования 2N×2N, глубина преобразования может быть равна 0, когда размер единицы преобразования также составляет 2N×2N, может быть равна 1, когда размер единицы преобразования тем самым составляет N×N, и может быть равна 2, когда размер единицы преобразования тем самым составляет N/2×N/2. Например, единица преобразования может задаваться согласно иерархической древовидной структуре согласно иерархическим характеристикам глубин преобразования.
Информация кодирования согласно единицам кодирования, соответствующим кодированной глубине, требует не только информацию относительно кодированной глубины, но также и информацию, связанную с прогнозирующим кодированием и преобразованием. Соответственно, модуль 120 определения единиц кодирования не только определяет кодированную глубину, имеющую наименьшую ошибку кодирования, но также и определяет тип сегмента в единице прогнозирования, режим прогнозирования согласно единицам прогнозирования и размер единицы преобразования для преобразования.
Ниже подробно описываются единицы кодирования согласно древовидной структуре в максимальной единице кодирования и способ определения сегмента согласно вариантам осуществления настоящего изобретения со ссылкой на фиг. 3-13.
Модуль 120 определения единиц кодирования может измерять ошибку кодирования более глубоких единиц кодирования согласно глубинам посредством использования оптимизации искажения в зависимости от скорости передачи на основе множителей Лагранжа.
Модуль 130 вывода выводит данные изображений максимальной единицы кодирования, которая кодируется на основе, по меньшей мере, одной кодированной глубины, определенной посредством модуля 120 определения единиц кодирования, информации относительно режима кодирования согласно кодированной глубине и информации структуры единиц кодирования относительно размера и переменной глубины единицы кодирования в потоках битов.
Кодированные данные изображений могут быть получены посредством кодирования остаточных данных изображения.
Информация относительно режима кодирования согласно кодированной глубине может включать в себя информацию относительно кодированной глубины, относительно типа сегмента в единице прогнозирования, режима прогнозирования и размера единицы преобразования.
Информация относительно кодированной глубины может быть задана посредством использования информации разбиения согласно глубинам, которая указывает, выполняется или нет кодирование для единиц кодирования нижней глубины вместо текущей глубины. Если текущая глубина текущей единицы кодирования является кодированной глубиной, данные изображений в текущей единице кодирования кодируется и выводятся, и тем самым информация разбиения может быть задана так, чтобы не разбивать текущую единицу кодирования до нижней глубины. Альтернативно, если текущая глубина текущей единицы кодирования не является кодированной глубиной, кодирование выполняется для единицы кодирования нижней глубины, и тем самым информация разбиения может быть задана так, чтобы разбивать текущую единицу кодирования, чтобы получать единицы кодирования нижней глубины.
Если текущая глубина не является кодированной глубиной, кодирование выполняется для единицы кодирования, которая разбивается на единицу кодирования нижней глубины. Поскольку, по меньшей мере, одна единица кодирования нижней глубины существует в одной единице кодирования текущей глубины, кодирование многократно выполняется для каждой единицы кодирования нижней глубины, и тем самым кодирование может быть рекурсивно выполнено для единиц кодирования, имеющих идентичную глубину.
Поскольку единицы кодирования, имеющие древовидную структуру, определяются для одной максимальной единицы кодирования, и информация, по меньшей мере, относительно одного режима кодирования определяется для единицы кодирования кодированной глубины, информация, по меньшей мере, относительно одного режима кодирования может быть определена для одной максимальной единицы кодирования. Кроме того, кодированная глубина данных изображений максимальной единицы кодирования может отличаться согласно местоположениям, поскольку данные изображений иерархически разбиваются согласно глубинам, и тем самым информация относительно кодированной глубины и режима кодирования может задаваться для данных изображений.
Соответственно, модуль 130 вывода может назначать информацию кодирования относительно соответствующей кодированной глубины и режима кодирования, по меньшей мере, одной из единицы кодирования, единицы прогнозирования и минимальной единицы, включенной в максимальную единицу кодирования. Модуль 130 вывода может вставлять информацию относительно соответствующей кодированной глубины и соответствующего режима кодирования в заголовок потока битов, набор параметров последовательности (SPS) или набор параметров изображения (PPS) и может выводить их.
Минимальная единица согласно варианту осуществления настоящего изобретения является прямоугольной единицей данных, полученной посредством разбиения минимальной единицы кодирования, составляющей самую нижнюю глубину, на 4. Минимальная единица согласно варианту осуществления настоящего изобретения может быть максимальной прямоугольной единицей данных, которая может быть включена во все из единиц кодирования, единиц прогнозирования, единиц сегментирования и единиц преобразования, включенных в максимальную единицу кодирования.
Например, информация кодирования, выводимая через модуль 130 вывода, может классифицироваться на информацию кодирования согласно единицам кодирования и информацию кодирования согласно единицам прогнозирования. Информация кодирования согласно единицам кодирования может включать в себя информацию относительно режима прогнозирования и относительно размера сегментов. Информация кодирования согласно единицам прогнозирования может включать в себя информацию относительно оцененного направления взаимного режима, относительно индекса опорного изображения взаимного режима, относительно вектора движения, относительно компонента сигнала цветности внутреннего режима и относительно способа интерполяции внутреннего режима.
Кроме того, информация структуры единиц кодирования относительно размера и переменной глубины единицы кодирования, заданной согласно последовательностям, изображениям, сериям последовательных макроблоков или GOP, может быть вставлена в SPS, PPS или заголовок потока битов.
Переменная глубина может указывать не только разрешенную максимальную глубину текущих единиц кодирования, имеющих древовидную структуру, но также и может указывать наименьшую глубину единицы кодирования, имеющей минимальный размер, число уровней глубины или варьирование глубины.
Число уровней глубины может указывать число уровней глубины более глубоких единиц кодирования согласно глубинам, которые могут существовать в текущих единицах кодирования, имеющих древовидную структуру.
Варьирование глубины может указывать число варьирований более глубоких единиц кодирования согласно глубинам, которые могут существовать в текущих единицах кодирования, имеющих древовидную структуру. Например, варьирование глубины может указывать число варьирований уровней глубины единицы кодирования, имеющей минимальный размер и единицы кодирования, имеющей максимальный размер, из текущих единиц кодирования, имеющих древовидную структуру, т.е. число варьирований уровней глубины от наименьшей глубины до наибольшей глубины. Альтернативно, варьирование глубины текущих единиц кодирования, имеющих древовидную структуру, может указывать число варьирований уровней глубины единицы кодирования, имеющей максимальный размер, и единицы кодирования, имеющей минимальный размер, из текущих единиц кодирования, имеющих древовидную структуру, т.е. число варьирований уровней глубины от наибольшей глубины до наименьшей глубины.
В дальнейшем в этом документе описывается переменная глубина в отношении случая, в котором максимальный размер и минимальный размер единицы кодирования, которые определяются в текущих единицах кодирования, имеющих древовидную структуру, равны 128×128 и 16×16, соответственно.
Как описано выше, максимальная глубина может указывать общее число разбиений единицы кодирования согласно глубинам от максимальной единицы кодирования до минимальной единицы декодирования. В этом случае, поскольку единица кодирования разбивается 3 раза от 128×128 до 64×64, от 64×64 до 32×32 и от 32×32 до 16×16, максимальная глубина может задаваться равной 3.
В этом случае, глубины единиц кодирования 128×128, 64×64, 32×32 и 16×16 равны 0, 1, 2 и 3, соответственно, так что число уровней глубины может составлять 4.
В этом случае, варьирование глубины может указывать число варьирований уровней глубины единиц кодирования 128×128, 64×64, 32×32 и 16×16 из текущих единиц кодирования, имеющих древовидную структуру. Иными словами, поскольку глубина единицы кодирования изменяется 3 раза от глубины в 0 до глубин в 1, 2 и 3 или от глубины в 3 до глубин в 2, 1 и 0, варьирование глубины может составлять 3.
Соответственно, когда максимальный размер и минимальный размер единицы кодирования из текущих единиц кодирования, имеющих древовидную структуру, равны 128×128 и 16×16, соответственно, варьирование глубины может указывать одно из 3, т.е. максимальной глубины, разрешенной для текущей единицы кодирования, 3, т.е. наименьшей глубины единицы кодирования, имеющей минимальный размер, 4, т.е. числа уровней глубины, и 3, т.е. варьирования глубины.
Информация относительно переменной глубины может задаваться согласно последовательностям, изображениям, сериям последовательных макроблоков или GOP. Иными словами, информация относительно переменной глубины и информация относительно максимального размера или информация относительно минимального размера единицы кодирования из текущих единиц кодирования, имеющих древовидную структуру, может задаваться для каждой из единиц данных последовательностей, изображений, серий последовательных макроблоков или GOP.
Таким образом, модуль 130 вывода может включать в себя информацию кодирования, включающую в себя, в качестве информации структуры единиц кодирования, по меньшей мере, два элемента из информации относительно переменной глубины, информации относительно максимального размера единицы кодирования и информации относительно минимального размера единицы кодирования, может вставлять информацию кодирования в заголовок потока битов, т.е. SPS или PPS, и затем может выводить поток битов. Переменная глубина, максимальный размер и минимальный размер единицы кодирования определяются согласно последовательностям, изображениям, сериям последовательных макроблоков или GOP, соответственно.
Например, информация кодирования может включать в себя комбинацию информации относительно переменной глубины и информации относительно максимального размера единицы кодирования из текущих единиц кодирования, имеющих древовидную структуру.
Например, информация кодирования может включать в себя комбинацию информации относительно переменной глубины и информации относительно минимального размера единицы кодирования из текущих единиц кодирования, имеющих древовидную структуру. Иными словами, информация кодирования может включать в себя информацию относительно минимального размера единицы кодирования из текущих единиц кодирования, имеющих древовидную структуру, и также может включать в себя информацию относительно переменной глубины, которая указывает одно из максимальной глубины, наименьшей глубины единицы кодирования, имеющей минимальный размер, числа уровней глубины и варьирования глубины.
Например, информация кодирования может включать в себя комбинацию информации относительно переменной глубины и информации относительно максимального размера единицы кодирования из текущих единиц кодирования, имеющих древовидную структуру. Иными словами, информация кодирования может включать в себя информацию относительно максимального размера единицы кодирования из текущих единиц кодирования, имеющих древовидную структуру, и также может включать в себя информацию относительно переменной глубины, которая указывает одно из максимальной глубины, наименьшей глубины единицы кодирования, имеющей максимальный размер, числа уровней глубины и варьирования глубины.
Помимо этого, информация кодирования, выводимая из модуля 130 вывода, может указывать индексы преобразования. Информация индексов преобразования может указывать информацию относительно структуры единицы преобразования, которая используется для того, чтобы преобразовывать текущую единицу кодирования. Например, информация индексов преобразования может включать в себя информацию относительно общего числа разбиений единицы кодирования от текущей единицы кодирования до единицы преобразования конечного уровня и информацию относительно размера и форме единицы преобразования.
Информация индексов преобразования может указывать то, разбивается или нет текущая единица преобразования на единицы преобразования низшего уровня. Например, бит разбиения единицы преобразования, который представляет собой однобитовые данные, указывающие то, разбивается или нет единица преобразования на единицы преобразования низшего уровня, может быть использован в качестве информации индексов преобразования.
В устройстве 100 кодирования видео, более глубокая единица кодирования может быть единицей кодирования, полученной посредством деления высоты или ширины единицы кодирования верхней глубины, которая на один уровень выше, на два. Другими словами, когда размер единицы кодирования текущей глубины равен 2N×2N, размер единицы кодирования нижней глубины равен N×N. Кроме того, единица кодирования текущей глубины, имеющей размер 2N×2N, может включать в себя максимум 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 является схемой для описания принципа единиц кодирования согласно варианту осуществления настоящего изобретения.
Размер единицы кодирования может выражаться как "ширина×высота" и может составлять 64×64, 32×32, 16×16 и 8×8. Единица кодирования в 64×64 может разбиваться на сегменты в 64×64, 64×32, 32×64 или 32×32, и единица кодирования в 32×32 может разбиваться на сегменты в 32×32, 32×16, 16×32 или 16×16, единица кодирования в 16×16 может разбиваться на сегменты в 16×16, 16×8, 8×16 или 8×8, и единица кодирования в 8×8 может разбиваться на сегменты в 8×8, 8×4, 4×8 или 4×4.
В видеоданных 310, разрешение составляет 1920×1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 2. В видеоданных 320, разрешение составляет 1920×1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 3. В видеоданных 330, разрешение составляет 352×288, максимальный размер единицы кодирования равен 16, и максимальная глубина равна 1. Максимальная глубина, показанная на фиг. 3, обозначает общее число разбиений от максимальной единицы кодирования до минимальной единицы декодирования.
Если разрешение является высоким, или объем данных является большим, максимальный размер единицы кодирования может быть большим, с тем чтобы не только повышать эффективность кодирования, но также и точно отражать характеристики изображения. Соответственно, максимальный размер единицы кодирования видеоданных 310 и 320, имеющих более высокое разрешение, чем видеоданные 330, может составлять 64.
Поскольку максимальная глубина видеоданных 310 равна 2, единицы 315 кодирования видеоданных 310 могут включать в себя максимальную единицу кодирования, имеющую размер продольной оси в 64, и единицы кодирования, имеющие размеры продольной оси в 32 и 16, поскольку глубины увеличиваются на два уровня посредством разбиения максимальной единицы кодирования два раза. Между тем, поскольку максимальная глубина видеоданных 330 равна 1, единицы кодирования 335 видеоданных 330 могут включать в себя максимальную единицу кодирования, имеющую размер продольной оси в 16, и единицы кодирования, имеющие размер продольной оси в 8, поскольку глубины увеличиваются на один уровень посредством разбиения максимальной единицы кодирования один раз.
Поскольку максимальная глубина видеоданных 320 равна 3, единицы 325 кодирования видеоданных 320 могут включать в себя максимальную единицу кодирования, имеющую размер продольной оси в 64, и единицы кодирования, имеющие размеры продольной оси в 32, 16 и 8, поскольку глубины увеличиваются на 3 уровня посредством разбиения максимальной единицы кодирования три раза. По мере того, как глубина увеличивается, подробная информация может точно выражаться.
Фиг. 4 является блок-схемой кодера 400 изображений на основе единиц кодирования согласно варианту осуществления настоящего изобретения.
Кодер 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, модуль 550 внутреннего прогнозирования, модуль 560 компенсации движения, модуль 570 удаления блочности и модуль 580 контурной фильтрации выполняют операции на основе единиц кодирования, имеющих древовидную структуру, для каждой максимальной единицы кодирования.
В частности, модуль 550 внутреннего прогнозирования и модуль 560 компенсации движения выполняют операции на основе сегментов и режима прогнозирования для каждой из единиц кодирования, имеющих древовидную структуру, а обратный преобразователь 540 выполняет операции на основе размера единицы преобразования для каждой единицы кодирования.
Фиг. 6 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и сегментам, согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические единицы кодирования с тем, чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина единиц кодирования могут быть адаптивно определены согласно характеристикам изображения или могут быть по-другому заданы пользователем. Размеры более глубоких единиц кодирования согласно глубинам могут быть определены согласно предварительно определенному максимальному размеру единицы кодирования.
В иерархической структуре 600 единиц кодирования, согласно варианту осуществления настоящего изобретения, максимальная высота и максимальная ширина единиц кодирования равны 64, а максимальная глубина равна 3. Здесь, максимальная глубина указывает общее число разбиений единицы кодирования согласно глубинам от максимальной единицы кодирования до минимальной единицы декодирования. Поскольку глубина увеличивается вдоль вертикальной оси иерархической структуры 600, разбиваются высота и ширина более глубокой единицы кодирования. Кроме того, единица прогнозирования и сегменты, которые являются базисами для прогнозирующего кодирования каждой более глубокой единицы кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
Другими словами, единица 610 кодирования является максимальной единицей кодирования в иерархической структуре 600, в которой глубина равна 0, а размер, т.е. высота на ширину, равен 64×64. Глубина увеличивается вдоль вертикальной оси, и существуют единица 620 кодирования, имеющая размер 32×32 и глубину 1, единица 630 кодирования, имеющая размер 16×16 и глубину 2, и единица 640 кодирования, имеющая размер 8×8 и глубину 3. Единица 640 кодирования, имеющая размер 8×8 и глубину 3, является минимальной единицей кодирования.
Единица прогнозирования и сегменты единицы кодирования размещаются вдоль горизонтальной оси согласно каждой глубине. Другими словами, если единица 610 кодирования, имеющая размер 64×64 и глубину 0, является единицей прогнозирования, единица прогнозирования может разбиваться на сегменты, включенные в единицу 610 кодирования, т.е. на сегмент 610, имеющий размер 64×64, сегменты 612, имеющие размер 64×32, сегменты 614, имеющие размер 32×64, или сегменты 616, имеющие размер 32×32.
Аналогично, единица прогнозирования единицы 620 кодирования, имеющей размер 32×32 и глубину в 1, может разбиваться на сегменты, включенные в единицу 620 кодирования, т.е. на сегмент 620, имеющий размер 32×32, сегменты 622, имеющие размер 32×16, сегменты 624, имеющие размер 16×32, и сегменты 626, имеющие размер 16×16.
Аналогично, единица прогнозирования единицы 630 кодирования, имеющей размер 16×16 и глубину в 2, может разбиваться на сегменты, включенные в единицу 630 кодирования, т.е. на сегмент, имеющий размер 16×16, включенный в единицу 630 кодирования, сегменты 632, имеющие размер 16×8, сегменты 634, имеющие размер 8×16, и сегменты 636, имеющие размер 8×8.
Наконец, единица прогнозирования единицы 640 кодирования, имеющей размер 8×8 и глубину 3, может разбиваться на сегменты, включенные в единицу 640 кодирования, т.е. на сегмент, имеющий размер 8×8, включенный в единицу 640 кодирования, сегменты 642, имеющие размер 8×4, сегменты 644, имеющие размер 4×8, и сегменты 646, имеющие размер 4×4.
Чтобы определять, по меньшей мере, одну кодированную глубину единиц кодирования, составляющих максимальную единицу 610 кодирования, модуль 120 определения единиц кодирования устройства 100 кодирования видео выполняет кодирование для единиц кодирования, соответствующих каждой глубине, включенной в максимальную единицу 610 кодирования.
Число более глубоких единиц кодирования согласно глубинам, включающим в себя данные в идентичном диапазоне и идентичного размера, увеличивается по мере того, как глубина увеличивается. Например, четыре единицы кодирования, соответствующие глубине 2, требуются, чтобы охватывать данные, которые включаются в одну единицу кодирования, соответствующую глубине 1. Соответственно, чтобы сравнивать результаты кодирования идентичных данных согласно глубинам, кодируются единица кодирования, соответствующая глубине 1, и четыре единицы кодирования, соответствующие глубине 2.
Чтобы выполнять кодирование для текущей глубины из глубин, наименьшая ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждой единицы прогнозирования в единицах кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, минимальная ошибка кодирования может находиться посредством сравнения наименьших ошибок кодирования согласно глубинам, посредством выполнения кодирования для каждой глубины по мере того, как глубина увеличивается вдоль вертикальной оси иерархической структуры 600. Глубина и сегмент, имеющие минимальную ошибку кодирования в единице 610 кодирования, могут быть выбраны в качестве кодированной глубины и типа сегмента единицы 610 кодирования.
Относительно иерархической структуры 600 единиц кодирования, поскольку общее число разбиений единиц кодирования согласно глубинам от максимального размера 64×64 до минимального размера 4×4 равно 4, максимальная глубина может задаваться равной 4.
Кроме того, поскольку глубины единиц кодирования в 64×64, 32×32, 16×16, 8×8 и 4×4 равны 0, 1, 2, 3 и 4, соответственно, так что число уровней глубины может составлять 5.
Кроме того, поскольку глубина единицы кодирования может быть изменена 4 раза от глубины в 0 до глубин в 1, 2, 3 и 4 или от глубины в 4 до глубин в 3, 2, 1 и 0, варьирование глубины может составлять 4.
Таким образом, информация относительно переменной глубины относительно текущих единиц кодирования, имеющих древовидную структуру, иерархической структуры 600 единиц кодирования может указывать одно из 4, т.е. максимальной глубины, 4, т.е. наименьшей глубины минимального размера единицы кодирования, 5, т.е. числа уровней глубины, и 4, т.е. варьирования глубины.
Соответственно, устройство 100 кодирования видео согласно настоящему варианту осуществления может включать в себя информацию кодирования, включающую в себя, по меньшей мере, два фрагмента информации из информации, указывающей переменную глубину 4 или 5 относительно текущих единиц кодирования, имеющих древовидную структуру, информации, указывающей 64×64, т.е. максимальный размер единицы кодирования, и информации, указывающей 4×4, т.е. минимальный размер единицы кодирования, может вставлять информацию кодирования в заголовок потока битов, т.е. SPS, PPS и т.п. и затем может выводить поток битов.
Устройство 200 декодирования видео может извлекать информацию кодирования из заголовка потока битов, SPS, PPS и т.п., может считывать, по меньшей мере, два фрагмента информации из информации, указывающей переменную глубину 4 или 5 относительно текущих единиц кодирования, имеющих древовидную структуру, информации, указывающей 64×64, т.е. максимальный размер единицы кодирования, и информации, указывающей 4×4, т.е. минимальный размер единицы кодирования из информации кодирования, и тем самым может определять то, что максимальный размер и минимальный размер текущих единиц кодирования, имеющих древовидную структуру, составляет 64×64 и 4×4, соответственно.
Фиг. 7 является схемой для описания взаимосвязи между единицей 710 кодирования и единицами 720 преобразования, согласно варианту осуществления настоящего изобретения.
Устройство 100 или 200 кодирования видео кодирует или декодирует изображение согласно единицам кодирования, имеющим размеры, меньшие или равные максимальной единице кодирования для каждой максимальной единицы кодирования. Размеры единиц преобразования для преобразования во время кодирования могут быть выбраны на основе единиц данных, которые не больше соответствующей единицы кодирования.
Например, в устройство 100 или 200 кодирования видео, если размер единицы 710 кодирования составляет 64×64, преобразование может выполняться посредством использования единиц 720 преобразования, имеющих размер 32×32.
Кроме того, данные единицы 710 кодирования, имеющей размер 64×64, могут быть кодированы посредством выполнения преобразования для каждой из единиц преобразования, имеющих размер 32×32, 16×16, 8×8 и 4×4, которые меньше 64×64, а затем может быть выбрана единица преобразования, имеющая наименьшую ошибку кодирования.
Фиг. 8 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно варианту осуществления настоящего изобретения.
Модуль 130 вывода устройства 100 кодирования видео может кодировать и передавать информацию 800 относительно типа сегмента, информацию 810 относительно режима прогнозирования и информацию 820 относительно размера единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, в качестве информации относительно режима кодирования.
Информация 800 указывает информацию относительно формы сегмента, полученного посредством разбиения единицы прогнозирования текущей единицы кодирования, при этом сегмент является единицей данных для прогнозирующего кодирования текущей единицы кодирования. Например, текущая единица кодирования CU_0, имеющая размер 2N×2N, может разбиваться на любой из сегмента 802, имеющего размер 2N×2N, сегмента 804, имеющего размер 2N×N, сегмента 806, имеющего размер N×2N, и сегмента 808, имеющего размер N×N. Здесь, информация 800 относительно типа сегмента задается так, что она указывает одно из сегмента 804, имеющего размер 2N×N, сегмента 806, имеющего размер N×2N, и сегмента 808, имеющего размер N×N.
Информация 810 указывает режим прогнозирования каждого сегмента. Например, информация 810 может указывать режим прогнозирующего кодирования, выполненного для сегмента, указываемого посредством информации 800, т.е. внутренний режим 812, взаимный режим 814 или режим 816 пропуска.
Информация 820 указывает единицу преобразования, на которой следует базироваться, когда преобразование выполняется для текущей единицы кодирования. Например, единица преобразования может быть первой единицей 822 внутреннего преобразования, второй единицей 824 внутреннего преобразования, первой единицей 826 взаимного преобразования или второй единицей 828 внутреннего преобразования.
Модуль 220 извлечения данных изображений и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию 800, 810 и 820 для декодирования, согласно каждой более глубокой единице кодирования.
Фиг. 9 является схемой более глубоких единиц кодирования согласно глубинам, согласно варианту осуществления настоящего изобретения.
Информация разбиения может быть использована для того, чтобы указывать изменение глубины. Информация разбиения указывает, разбивается или нет единица кодирования текущей глубины на единицы кодирования нижней глубины.
Единица 910 прогнозирования для прогнозирующего кодирования единицы 900 кодирования, имеющей глубину 0 и размер 2N_0×2N_0, может включать в себя сегменты типа 912 сегмента, имеющего размер 2N_0×2N_0, типа 914 сегмента, имеющего размер 2N_0×N_0, типа 916 сегмента, имеющего размер N_0×2N_0, и типа 918 сегмента, имеющего размер N_0×N_0. Фиг. 9 иллюстрирует только типы 912-918 сегментов, которые получаются посредством симметричного разбиения единицы 910 прогнозирования, но тип сегмента не ограничен этим, и сегменты единицы 910 прогнозирования могут включать в себя асимметричные сегменты, сегменты, имеющие произвольную форму, и сегменты, имеющие геометрическую форму.
Прогнозирующее кодирование многократно выполняется для одного сегмента, имеющего размер 2N_0×2N_0, двух сегментов, имеющих размер 2N_0×N_0, двух сегментов, имеющих размер N_0×2N_0, и четырех сегментов, имеющих размер N_0×N_0, согласно каждому типу сегмента. Прогнозирующее кодирование во внутреннем режиме и взаимном режиме может выполняться для сегментов, имеющих размеры 2N_0×2N_0, N_0×2N_0, 2N_0×N_0 и N_0×N_0. Прогнозирующее кодирование в режиме пропуска выполняется только для сегмента, имеющего размер 2N_0×2N_0.
Ошибки кодирования, включающего в себя прогнозирующее кодирование, в типах 912-918 сегментов сравниваются, и определяется наименьшая ошибка кодирования для типов сегментов. Если ошибка кодирования является наименьшей в одном из типов 912-916 сегментов, единица 910 прогнозирования может не разбиваться на нижнюю глубину.
Если ошибка кодирования является наименьшей в типе 918 сегмента, глубина изменяется с 0 на 1, чтобы разбивать тип 918 сегмента, на этапе 920, и кодирование многократно выполняется для единиц 930 кодирования, имеющих глубину в 2 и размер N_0×N_0, чтобы выполнять поиск минимальной ошибки кодирования.
Единица 940 прогнозирования для прогнозирующего кодирования единицы 930 кодирования, имеющей глубину в 1 и размер 2N_1×2N_1 (=N_0×N_0), может включать в себя сегменты типа 942 сегмента, имеющего размер 2N_1×2N_1, типа 944 сегмента, имеющего размер 2N_1×N_1, типа 946 сегмента, имеющего размер N_1×2N_1, и типа 948 сегмента, имеющего размер N_1×N_1.
Если ошибка кодирования является наименьшей в типе 948 сегмента, глубина изменяется от 1 до 2, чтобы разбивать тип 948 сегмента, на этапе 950, и кодирование многократно выполняется для единиц 960 кодирования, которые имеют глубину в 2 и размер N_2×N_2, чтобы выполнять поиск минимальной ошибки кодирования.
Когда максимальная глубина составляет d-1, единица кодирования согласно каждой глубине может разбиваться вплоть до того, когда глубина становится равной d-1, и информация разбиения может быть кодирована вплоть до того, когда глубина составляет одно из 0–d-2. Другими словами, когда кодирование выполняется вплоть до того, когда глубина составляет d-1 после того, как единица кодирования, соответствующая глубине d-2, разбивается на этапе 970, единица 990 прогнозирования для прогнозирующего кодирования единицы 980 кодирования, имеющей глубину d-1 и размер 2N_(d-1)×2N_(d-1) может включать в себя сегменты типа 992 сегмента, имеющего размер 2N_(d-1)×2N_(d-1), типа 994 сегмента, имеющего размер 2N_(d-1)×N_(d-1), типа 996 сегмента, имеющего размер N_(d-1)×2N_(d-1), и типа 998 сегмента, имеющего размер N_(d-1)×N_(d-1).
Прогнозирующее кодирование может многократно выполняться для одного сегмента, имеющего размер 2N_(d-1)×2N_(d-1), двух сегментов, имеющих размер 2N_(d-1)×N_(d-1), двух сегментов, имеющих размер N_(d-1)×2N_(d-1), четырех сегментов, имеющих размер N_(d-1)×N_(d-1), из типов 992-998 сегментов, чтобы выполнять поиск типа сегмента, имеющего минимальную ошибку кодирования.
Даже когда тип 998 сегмента имеет минимальную ошибку кодирования, поскольку максимальная глубина составляет d-1, единица кодирования CU_(d-1), имеющая глубину d-1, более не разбивается до нижней глубины, и кодированная глубина для единиц кодирования, составляющих текущую максимальную единицу 900 кодирования, определяется как d-1, и тип сегмента текущей максимальной единицы 900 кодирования может быть определен как N_(d-1)×N_(d-1). Кроме того, поскольку максимальная глубина составляет d-1, и минимальная единица 980 кодирования, имеющая самую нижнюю глубину d-1, более не разбивается до нижней глубины, информация разбиения для минимальной единицы 980 кодирования не задается.
Единица 999 данных может быть "минимальной единицей" для текущей максимальной единицы кодирования. Минимальная единица согласно варианту осуществления настоящего изобретения может быть прямоугольной единицей данных, полученной посредством разбиения минимальной единицы 980 кодирования на 4. Посредством многократного выполнения кодирования, устройство 100 кодирования видео может выбирать глубину, имеющую наименьшую ошибку кодирования, посредством сравнения ошибок кодирования согласно глубинам единицы 900 кодирования, чтобы определять кодированную глубину и задавать соответствующий тип сегмента и режим прогнозирования в качестве режима кодирования кодированной глубины.
Также, минимальные ошибки кодирования согласно глубинам сравниваются во всех глубинах 1-d, и глубина, имеющая наименьшую ошибку кодирования, может быть определена в качестве кодированной глубины. Кодированная глубина, тип сегмента единицы прогнозирования и режим прогнозирования могут быть кодированы и переданы в качестве информации относительно режима кодирования. Кроме того, поскольку единица кодирования разбивается от глубины в 0 до кодированной глубины, только информация разбиения кодированной глубины задается равной 0, а информация разбиения глубин за исключением кодированной глубины задается равной 1.
Модуль 220 извлечения данных изображений и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию относительно кодированной глубины и единицы прогнозирования единицы 900 кодирования, чтобы декодировать сегмент 912. Устройство 200 декодирования видео может определять глубину, при которой информация разбиения равна 0, в качестве кодированной глубины посредством использования информации разбиения согласно глубинам и использовать информацию относительно режима кодирования кодированной глубины для декодирования единицы кодирования, соответствующей кодированной глубине.
Фиг. 10-12 являются схемами для описания взаимосвязи между единицами 1010 кодирования, единицами 1060 прогнозирования и единицами 1070 преобразования, согласно варианту осуществления настоящего изобретения.
Единицы 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 кодирования имеют размер 2N×N, типы сегментов в единицах 1016, 1048 и 1052 кодирования имеют размер N×2N, и тип сегмента единицы 1032 кодирования имеет размер N×N. Единицы прогнозирования и сегменты единиц 1010 кодирования меньше или равны каждой единицы кодирования.
Преобразование или обратное преобразование выполняется для данных изображений единицы 1052 кодирования в единицах 1070 преобразования в единице данных, которая меньше единицы 1052 кодирования. Кроме того, единицы 1014, 1016, 1022, 1032, 1048, 1050 и 1052 кодирования в единицах 1070 преобразования отличаются единиц кодирования в единицах 1060 прогнозирования с точки зрения размеров и форм. Другими словами, устройства 100 и 200 кодирования и декодирования видео могут выполнять внутреннее прогнозирование, оценку движения, компенсацию движения, преобразование и обратное преобразование по отдельности для единицы данных в идентичной единице кодирования.
Соответственно, кодирование рекурсивно выполняется для каждой из единиц кодирования, имеющих иерархическую структуру в каждой области максимальной единицы кодирования, чтобы определять оптимальную единицу кодирования, и тем самым могут быть получены единицы кодирования, имеющие рекурсивную древовидную структуру. Информация кодирования может включать в себя информацию разбиения относительно единицы кодирования, информацию относительно типа сегмента, информацию относительно режима прогнозирования и информацию относительно размера единицы преобразования. Таблица 1 показывает информацию кодирования, которая может задаваться посредством устройств 100 и 200 кодирования и декодирования видео.
Таблица 1
Информация 0 разбиения(кодирование для единицы кодирования, имеющей размер 2N×2N и текущую глубину d)
Информация 1 разбиения
Режим прогнози-рования
Тип сегмента
Размер единицы преобразования
Многократ-ное коди-рование единиц кодирова-ния, имеющих нижнюю глубину d+1
ВнутреннийВзаимныйПропуск (только 2N×2N)
Тип симмет-ричного сегмента
Тип асиммет-ричного сегмента
Информация 0 разбиения единицы преобразо-вания
Информация 1 разбиения единицы преобразо-вания
2N×2N2N×NN×2NN×N
2N×nU2N×nDnL×2NnR×2N
2N×2N
N×N(симметрич-ный тип)N/2×N/2(асиммет-ричный тип)
Модуль 130 вывода устройства 100 кодирования видео может выводить информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, и модуль 220 извлечения данных изображений и информации кодирования устройства 200 декодирования видео может извлекать информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, из принимаемого потока битов.
Информация разбиения указывает, разбивается или нет текущая единица кодирования на единицы кодирования нижней глубины. Если информация разбиения текущей глубины d равна 0, глубина, при которой текущая единица кодирования более не разбивается в нижнюю глубину, является кодированной глубиной, и тем самым информация относительно типа сегмента, режима прогнозирования и размера единицы преобразования может быть задана для кодированной глубины. Если текущая единица кодирования дополнительно разбивается согласно информации разбиения, кодирование независимо выполняется для четырех единиц кодирования разбиения нижней глубины.
Режим прогнозирования может быть одним из внутреннего режима, взаимного режима и режима пропуска. Внутренний режим и взаимный режим могут быть заданы во всех типах сегментов, а режим пропуска задается только в типе сегмента, имеющем размер 2N×2N.
Информация относительно типа сегмента может указывать типы симметричных сегментов, имеющие размеры 2N×2N, 2N×N, N×2N и N×N, которые получаются посредством симметричного разбиения высоты или ширины единицы прогнозирования, и типы асимметричных сегментов, имеющих размеры 2N×nU, 2N×nD, nL×2N и nR×2N, которые получаются посредством асимметричного разбиения высоты или ширины единицы прогнозирования. Типы асимметричных сегментов, имеющие размеры 2N×nU и 2N×nD, могут быть, соответственно, получены посредством разбиения высоты единицы прогнозирования в 1:3 и 3:1, а типы асимметричных сегментов, имеющие размеры nL×2N, и nR×2N могут быть, соответственно, получены посредством разбиения ширины единицы прогнозирования в 1:3 и 3:1.
Размер единицы преобразования может задаваться как два типа во внутреннем режиме и два типа во взаимном режиме. Другими словами, если информация разбиения единицы преобразования равна 0, размер единицы преобразования может составлять 2N×2N, что является размером текущей единицы кодирования. Если информация разбиения единицы преобразования равна 1, единицы преобразования могут быть получены посредством разбиения текущей единицы кодирования. Кроме того, если типом сегмента текущей единицы кодирования, имеющей размер 2N×2N, является тип симметричного сегмента, размер единицы преобразования может составлять N×N, а если типом сегмента текущей единицы кодирования является тип асимметричного сегмента, размер единицы преобразования может составлять N/2×N/2.
Информация кодирования относительно единиц кодирования, имеющих древовидную структуру, может включать в себя, по меньшей мере, одну из единицы кодирования, соответствующей кодированной глубине, единицы прогнозирования и минимальной единицы. Единица кодирования, соответствующая кодированной глубине, может включать в себя, по меньшей мере, одну из единицы прогнозирования и минимальной единицы, содержащей идентичную информацию кодирования.
Соответственно, определяется то, включаются или нет смежные единицы данных в идентичную единицу кодирования, соответствующую кодированной глубине, посредством сравнения информации кодирования смежных единиц данных. Кроме того, соответствующая единица кодирования, соответствующая кодированной глубине, определяется посредством использования информации кодирования единицы данных, и тем самым может быть определено распределение кодированных глубин в максимальной единице кодирования.
Соответственно, если текущая единица кодирования прогнозируется на основе информации кодирования смежных единиц данных, можно обращаться непосредственно к информации кодирования единиц данных в более глубоких единицах кодирования, смежных с текущей единицей кодирования, и она может использоваться.
Альтернативно, если текущая единица кодирования прогнозируется на основе информации кодирования смежных единиц данных, единицы данных, смежные с текущей единицей кодирования, ищутся с использованием кодированной информации единиц данных, и к искомым смежным единицам кодирования можно обращаться для прогнозирования текущей единицы кодирования.
Фиг. 13 является схемой для описания взаимосвязи между единицей кодирования, единицей прогнозирования или сегментом и единицей преобразования, согласно информации режима кодирования по таблице 1.
Максимальная единица 1300 кодирования включает в себя единицы 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодирования кодированных глубин. Здесь, поскольку единица 1318 кодирования является единицей кодирования кодированной глубины, информация разбиения может задаваться равной 0. Информация относительно типа сегмента единицы 1318 кодирования, имеющей размер 2N×2N, может задаваться как одно из типа 1322 сегмента, имеющего размер 2N×2N, типа 1324 сегмента, имеющего размер 2N×N, типа 1326 сегмента, имеющего размер N×2N, типа 1328 сегмента, имеющего размер N×N, типа 1332 сегмента, имеющего размер 2N×nU, типа 1334 сегмента, имеющего размер 2N×nD, типа 1336 сегмента, имеющего размер nL×2N, и типа 1338 сегмента, имеющего размер nR×2N.
Информация разбиения (флаг TU-размера) единицы преобразования является типом индекса преобразования, и размер единицы преобразования, которая соответствует индексу преобразования, может быть изменен согласно типу единицы прогнозирования или типу сегмента единицы кодирования.
Например, когда тип сегмента задается как симметричный, т.е. тип 1322, 1324, 1326 или 1328 сегмента, единица 1342 преобразования, имеющая размер 2N×2N, задается, если информация разбиения единицы преобразования равна 0, и единица 1344 преобразования, имеющая размер N×N, задается, если флаг TU-размера равен 1.
Когда тип сегмента задается как асимметричный, т.е. тип 1332, 1334, 1336 или 1338 сегмента, единица 1352 преобразования, имеющая размер 2N×2N, задается, если флаг TU-размера равен 0, и единица 1354 преобразования, имеющая размер N/2×N/2 задается, если флаг TU-размера равен 1.
Ссылаясь на фиг. 13, флаг TU-размера является флагом, имеющим значение 0 или 1, но флаг TU-размера не ограничивается 1 битом, и единица преобразования может иерархически разбиваться при наличии древовидной структуры, в то время как флаг TU-размера увеличивается от 0. Информация разбиения единицы преобразования может быть использована в качестве примера индекса преобразования.
В этом случае, если информация разбиения единицы преобразования используется вместе с максимальным размером единицы преобразования и минимальным размером единицы преобразования, может выражаться размер единицы преобразования, которая фактически используется. Устройство 100 кодирования видео может кодировать информацию максимального размера единицы преобразования, информацию минимального размера единицы преобразования и информацию максимального разбиения единицы преобразования. Кодированная информация максимального размера единицы преобразования, кодированная информация минимального размера единицы преобразования и кодированная информация максимального разбиения единицы преобразования могут быть вставлены в SPS. Устройство 200 декодирования видео может декодировать видео посредством использования информации максимального размера единицы преобразования, информации минимального размера единицы преобразования и информации максимального разбиения единицы преобразования.
В примере, (a) если размер текущей единицы кодирования равен 64×64, и максимальный размер единицы преобразования равен 32×32, (a-1) размер единицы преобразования может задаваться равным 32×32, когда информация разбиения единицы преобразования равна 0, (a-2) размер единицы преобразования может задаваться равным 16×16, когда информация разбиения единицы преобразования равна 1, и (a-3) размер единицы преобразования может задаваться равным 8×8, когда информация разбиения единицы преобразования равна 2.
В другом примере, (b) если размер текущей единицы кодирования равен 32×32, и минимальный размер единицы преобразования равен 32×32, (b-1) размер единицы преобразования может задаваться равным 32×32, когда информация разбиения единицы преобразования равна 0, и поскольку размер единицы преобразования не может быть меньше размера 32×32, информация разбиения единицы преобразования не может быть дополнительно задана.
В другом примере, (c) если размер текущей единицы кодирования равен 64×64, а информация максимального разбиения единицы преобразования равна 1, информация разбиения единицы преобразования быть равна 0 или 1, а другая информация разбиения единицы преобразования не может задаваться.
Таким образом, если задается то, что флагом максимального TU-размера является MaxTransformSizelndex, размером минимальной единицы преобразования является MinTransformSize, а размером единицы преобразования является RootTuSize, когда флаг TU-размера равен 0, то текущий размер минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования, может быть задан посредством уравнения (1):
CurrMinTuSize=max(MinTransformSize, RootTuSize/(2^MaxTransformSizeIndex)) (1)
По сравнению с размером текущей минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может обозначать размер максимальной единицы преобразования, который может быть выбран в системе. В уравнении (1), RootTuSize/(2^MaxTransformSizeIndex) обозначает размер единицы преобразования, когда размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, разбивается число раз, соответствующее флагу максимального TU-размера, а MinTransformSize обозначает минимальный размер преобразования. Таким образом, меньшее значение из RootTuSize/(2^MaxTransformSizeIndex) и MinTransformSize может быть размером текущей минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования.
Согласно варианту осуществления настоящего изобретения, размер максимальной единицы преобразования RootTuSize может варьироваться согласно типу режима прогнозирования.
Например, если текущим режимом прогнозирования является взаимный режим, то RootTuSize может быть определен посредством использования нижеприведенного уравнения (2). В уравнении (2), MaxTransformSize обозначает размер максимальной единицы преобразования, и PUSize обозначает размер текущей единицы прогнозирования.
RootTuSize=min(MaxTransformSize, PUSize) (2)
Иными словами, если текущим режимом прогнозирования является взаимный режим, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может быть меньшим значением из размера максимальной единицы преобразования и размера текущей единицы прогнозирования.
Если режимом прогнозирования текущей единицы сегментирования является внутренний режим, RootTuSize может быть определен посредством использования нижеприведенного уравнения (3). В уравнении (3), PartitionSize обозначает размер текущей единицы сегментирования.
RootTuSize=min(MaxTransformSize, PartitionSize) (3)
Иными словами, если текущим режимом прогнозирования является внутренний режим, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может быть меньшим значением из размера максимальной единицы преобразования и размера текущей единицы сегментирования.
Тем не менее размер текущей максимальной единицы преобразования RootTuSize, который варьируется согласно типу режима прогнозирования в единице сегментирования, является просто примером, и настоящее изобретение не ограничено этим.
Фиг. 14 является блок-схемой последовательности операций, иллюстрирующей способ кодирования видео на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
На этапе 1210, текущее изображение разбивается, по меньшей мере, на одну максимальную единицу кодирования. Максимальная глубина, указывающая общее число возможных разбиений, может быть предварительно определена.
На этапе 1220, посредством кодирования определяется кодированная глубина, чтобы выводить конечный результат кодирования, согласно, по меньшей мере, одной области разбиения, которая получается посредством разбиения области каждой максимальной единицы кодирования согласно глубинам, по меньшей мере, одной области разбиения, и определяются единицы кодирования согласно древовидной структуре.
Максимальная единица кодирования пространственно разбивается каждый раз, когда глубина увеличивается, и тем самым разбивается на единицы кодирования нижней глубины. Каждая единица кодирования может разбиваться на единицы кодирования другой нижней глубины посредством пространственного разбиения независимо от смежных единиц кодирования. Кодирование многократно выполняется для каждой единицы кодирования согласно глубинам.
Кроме того, единица преобразования согласно типам сегментов, имеющим наименьшую ошибку кодирования, определяется для каждой более глубокой единицы кодирования. Чтобы определять кодированную глубину, имеющую минимальную ошибку кодирования в каждой максимальной единице кодирования, ошибки кодирования могут измеряться и сравниваться во всех более глубоких единицах кодирования согласно глубинам.
Когда определяется единица преобразования, может быть определена единица преобразования для преобразования единицы кодирования. Единица преобразования согласно настоящему варианту осуществления может быть определена в качестве единицы данных, чтобы минимизировать ошибку, обусловленную посредством единицы преобразования для преобразования единицы кодирования.
На этапе 1230, кодированные данные изображений, составляющие конечный результат кодирования согласно кодированной глубине, выводятся для каждой максимальной единицы кодирования с информацией кодирования относительно кодированной глубины и режима кодирования. Информация относительно режима кодирования может включать в себя информацию относительно кодированной глубины или информацию разбиения, информацию относительно типа сегмента единицы прогнозирования, информацию относительно режима прогнозирования, информацию относительно размера единицы преобразования, информацию индексов преобразования и т.п.
Информация структуры единиц кодирования относительно размера и переменной глубины единицы кодирования, заданной согласно единице данных, такой как последовательности, изображения, серии последовательных макроблоков или GOP, может быть вставлена в заголовок потока битов, SPS или PPS. Информация структуры единиц кодирования относительно размера и переменной глубины единицы кодирования может включать в себя информацию относительно переменной глубины, информацию относительно максимального размера единицы кодирования и информацию относительно минимального размера единицы кодирования. Переменная глубина может включать в себя не только разрешенную максимальную глубину текущей единицы кодирования, но также и может включать в себя, по меньшей мере, одно из наименьшей глубины единицы кодирования, имеющей минимальный размер, числа уровней глубины и варьирования глубины.
Кодированная информация относительно режима кодирования, информация структуры единиц кодирования относительно размера и переменной глубины единицы кодирования и информация разбиения может вставляться в заголовок потока битов, SPS или PPS и затем может передаваться в декодер с кодированными данными изображений.
Фиг. 15 является блок-схемой последовательности операций, иллюстрирующей способ декодирования видео на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
На этапе 1310, поток битов кодированного видео принимается и синтаксически анализируется.
На этапе 1320, кодированные данные изображений текущего изображения, назначаемого максимальной единице кодирования, а также информация относительно кодированной глубины и режима кодирования согласно максимальным единицам кодирования и информация структуры единиц кодирования относительно размера и переменной глубины единицы кодирования извлекаются из синтаксически проанализированного потока битов. Информация относительно кодированной глубины и режима кодирования, информация структуры единиц кодирования относительно размера и переменной глубины единицы кодирования и информация разбиения может быть извлечена из заголовка потока битов, SPS или PPS.
Кодированная глубина каждой максимальной единицы кодирования является глубиной, имеющей наименьшую ошибку кодирования в каждой максимальной единице кодирования. При кодировании каждой максимальной единицы кодирования данные изображений кодируются на основе, по меньшей мере, одной единицы данных, полученной посредством иерархического разбиения каждой максимальной единицы кодирования согласно глубинам.
Согласно информации относительно кодированной глубины и режима кодирования, максимальная единица кодирования может разбиваться на единицы кодирования, имеющие древовидную структуру. Каждая из единиц кодирования, имеющих древовидную структуру, определяется в качестве единицы кодирования, соответствующей кодированной глубине, и оптимально кодируется так, что она выводит наименьшую ошибку кодирования. Соответственно, эффективность кодирования и декодирования изображения может быть повышена посредством декодирования каждого фрагмента кодированных данных изображений в единицах кодирования после определения, по меньшей мере, одной кодированной глубины согласно единицам кодирования.
По меньшей мере, два фрагмента информации относительно переменной глубины, информации относительно максимального размера единицы кодирования и информации структуры единиц кодирования относительно минимального размера единицы кодирования, которые определяются для каждого из изображений, серий последовательных макроблоков или GOP, могут быть извлечены из информации относительно размера и переменной глубины единицы кодирования. Переменная глубина согласно настоящему варианту осуществления может указывать не только разрешенную максимальную глубину текущей единицы кодирования, но также и может указывать, по меньшей мере, одно из наименьшей глубины единицы кодирования, имеющей минимальный размер, числа уровней глубины и варьирования глубины.
Максимальный размер и минимальный размер единицы кодирования из текущих единиц кодирования, имеющих древовидную структуру, могут быть определены на основе информации кодирования, включающей в себя, по меньшей мере, два элемента из информации относительно переменной глубины текущих единиц кодирования, имеющих древовидную структуру, информации относительно максимального размера единицы кодирования и информации относительно минимального размера единицы кодирования.
Кроме того, единицы преобразования согласно древовидной структуре в единицах кодирования могут быть определены на основе индекса преобразования информации кодирования.
На этапе 1330, данные изображений каждой максимальной единицы кодирования декодируются на основе информации относительно кодированной глубины и режима кодирования согласно максимальным единицам кодирования. Декодированные данные изображений могут быть воспроизведены посредством устройства воспроизведения, сохранены на носителе хранения данных или переданы через сеть.
Варианты осуществления настоящего изобретения могут быть записаны в качестве компьютерной программы и могут быть реализованы в цифровых компьютерах общего назначения, которые выполняют программы с использованием машиночитаемого носителя записи. Примеры машиночитаемого носителя записи включают в себя магнитные носители хранения данных (например, ROM, гибкие диски, жесткие диски и т.д.) и оптические носители записи (например, CD-ROM или DVD).
Хотя это изобретение конкретно показано и описано со ссылкой на его предпочтительные варианты осуществления, специалисты в данной области техники должны понимать, что различные изменения по форме и содержанию могут быть сделаны без отступления от сущности и объема изобретения, заданных посредством прилагаемой формулы изобретения. Предпочтительные варианты осуществления должны рассматриваться только в описательном смысле, а не в целях ограничения. Следовательно, объем изобретения задается не посредством подробного описания изобретения, а посредством прилагаемой формулы изобретения, и любые отличия в пределах объема должны истолковываться как включенные в настоящее изобретение.