СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО ПУТЕМ ИСПОЛЬЗОВАНИЯ ИНДЕКСА ПРЕОБРАЗОВАНИЯ, А ТАКЖЕ СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ВИДЕО ПУТЕМ ИСПОЛЬЗОВАНИЯ ИНДЕКСА ПРЕОБРАЗОВАНИЯ
METHOD AND APPARATUS FOR ENCODING VIDEO USING TRANSFORMATION INDEX AND METHOD AND APPARATUS FOR DECODING VIDEO USING TRANSFORMATION INDEX

Область техники, к которой относится изобретение
Примерные варианты осуществления изобретения относятся к кодированию видео и декодированию видео, где выполняется преобразование между пространственной областью и областью преобразования.
Уровень техники
По мере развития и поставки на рынок аппаратных средств для воспроизведения и хранения видеоконтента с высоким разрешением или высоким качеством возрастает потребность в видеокодеке для эффективного кодирования или декодирования видеоконтента с высоким разрешением или высоким качеством. В общепринятом видеокодеке видео кодируется в соответствии с ограниченным способом кодирования на основе макроблока, имеющего предварительно определенный размер. В общепринятом видеокодеке видеоданные кодируют и декодируют путем выполнения преобразования и обратного преобразования на макроблоках с использованием блоков, каждый из которых имеет один и тот же размер.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Техническая задача
Примерные варианты осуществления изобретения относятся к кодированию видео и декодированию видео, где выполняется преобразование между пространственной областью и областью преобразования.
РЕШЕНИЕ ЗАДАЧИ
Согласно одному аспекту примерного варианта осуществления изобретения обеспечивается способ кодирования видео, включающий в себя: определение единицы преобразования, то есть единицы данных, в которой преобразуется текущая единица кодирования, причем единица кодирования представляет собой единицу данных, в которой кодируется текущее изображение видео; преобразование данных текущей единицы кодирования на основе определенной единицы преобразования для кодирования данных текущей единицы кодирования; и вывод кодированных данных текущей единицы кодирования, информации о режиме кодирования, которая указывает режим кодирования кодированных данных текущей единицы кодирования, и информации об индексе преобразования, которая указывает структуру единицы преобразования, преобразующей данные текущей единицы кодирования в виде битового потока.
ПОЛОЖИТЕЛЬНЫЕ ЭФФЕКТЫ ИЗОБРЕТЕНИЯ
Устройство кодирования видео согласно примерному варианту изобретения и устройство декодирования видео согласно примерному варианту осуществления изобретения могут эффективно кодировать и декодировать информацию, используемую для определения различных размеров и форм единиц преобразования, имеющих древовидную структуру, что необходимо для выполнения преобразования и обратного преобразования во время кодирования и декодирования видео на основе различных размеров и форм единиц кодирования, путем использования индекса преобразования согласно примерному варианту осуществления.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 - блок-схема устройства кодирования видео, в котором используется индекс преобразования, согласно примерному варианту осуществления;
фиг. 2 - блок-схема устройства декодирования видео, в котором используется индекс преобразования, согласно примерному варианту осуществления;
фиг. 3 – схема, иллюстрирующая структуру единицы преобразования и индекса преобразования, согласно примерному варианту осуществления;
фиг. 4 - схема, иллюстрирующая структуру единицы преобразования и индекса преобразования, согласно примерному варианту осуществления;
фиг. 5 и 6 – схемы, иллюстрирующие примеры использования индекса преобразования, согласно примерному варианту осуществления;
фиг. 7 – блок-схема алгоритма, иллюстрирующая способ кодирования видео, в котором используется индекс преобразования, согласно примерному варианту осуществления;
фиг. 8 - блок-схема алгоритма, иллюстрирующая способ декодирования видео, в котором используется индекс преобразования, согласно примерному варианту осуществления;
фиг. 9 – блок-схема устройства кодирования видео, где используются единицы кодирования, имеющие древовидную структуру, и индекс преобразования, согласно примерному варианту осуществления;
фиг. 10 - блок-схема устройства декодирования видео, где используются единицы кодирования, имеющие древовидную структуру, и индекс преобразования, согласно примерному варианту осуществления;
фиг. 11 – схема для описания идеи единиц кодирования согласно примерному варианту осуществления;
фиг. 12 – блок-схема кодера изображения на основе единиц кодирования согласно примерному варианту осуществления;
фиг. 13 – блок-схема декодера изображения на основе единиц кодирования согласно примерному варианту осуществления;
фиг. 14 - схема, иллюстрирующая более глубокие единицы кодирования согласно глубинам, а также сегменты, согласно примерному варианту осуществления;
фиг. 15 – схема для описания взаимосвязи между единицей кодирования и единицами преобразования согласно примерному варианту осуществления;
фиг. 16 – схема для описания информации о единицах кодирования, соответствующих кодированной глубине, согласно примерному варианту осуществления;
фиг. 17 – схема более глубоких единиц кодирования, соответствующих глубинам, согласно примерному варианту осуществления;
фиг. 18-20 – схемы для описания взаимосвязи между единицами кодирования, единицами предсказания и единицами преобразования, согласно примерному варианту осуществления;
фиг. 21 – схема для описания взаимосвязи между единицей кодирования, единицей или сегментом предсказания и единицей преобразования, в соответствии с информацией о режиме кодирования в Таблице 1;
фиг. 22 – блок-схема алгоритма, иллюстрирующая способ кодирования видео, в котором используется индекс преобразования, на основе единиц кодирования и единиц преобразования, имеющих древовидную структуру, согласно примерному варианту осуществления;
фиг. 23 - блок-схема алгоритма, иллюстрирующая способ декодирования видео, в котором используется индекс преобразования, на основе единиц кодирования и единиц преобразования, имеющих древовидную структуру, согласно примерному варианту осуществления.
НАИЛУЧШЕЕ ТЕХНИЧЕСКОЕ ВОПЛОЩЕНИЕ ИЗОБРЕТЕНИЯ
Согласно одному аспекту примерного варианта осуществления обеспечивается способ кодирования видео, включающий в себя: определение единицы преобразования, то есть единицы данных, в которой преобразуется текущая единица кодирования, причем единица кодирования представляет собой единицу данных, в которой кодируется текущее изображение видео; преобразование данных текущей единицы кодирования на основе определенной единицы преобразования для кодирования данных текущей единицы кодирования; и вывод кодированных данных текущей единицы кодирования, информации о режиме кодирования, которая указывает режим кодирования кодированных данных текущей единицы кодирования, и информации об индексе преобразования, которая указывает структуру единицы преобразования, преобразующей данные текущей единицы кодирования в виде битового потока.
Согласно другому аспекту примерного варианта осуществления обеспечивается способ декодирования кодированного видео, включающий в себя: прием битового потока кодированного видео и синтаксический анализ принятого битового потока; извлечение из проанализированного битового потока кодированных данных текущей единицы кодирования, то есть единицы данных, в которой закодировано текущее изображение кодированного видео, информации о режиме кодирования, которая указывает режим кодирования кодированных данных текущей единицы кодирования, и информации об индексе преобразования, которая указывает структуру единицы преобразования, то есть единицы данных, в которой преобразуются данные текущей единицы кодирования; и выполнение обратного преобразования на кодированных данных текущей единицы кодирования на основе информации об индексе преобразования для декодирования кодированных данных текущей единицы кодирования, преобразованной в единице преобразования.
Согласно другому аспекту примерного варианта осуществления обеспечено устройство кодирования видео, включающее в себя процессор, причем устройство включает в себя: определитель единицы преобразования, который определяет единицу преобразования, то есть единицу данных, в которой преобразуется текущая единица кодирования, причем единица кодирования представляет собой единицу данных, в которой кодируется текущее изображение принятого видео; модуль кодирования, который преобразует данные текущей единицы кодирования на основе определенной единицы преобразования для кодирования данных текущей единицы кодирования; и модуль вывода кодированных данных, который выводит кодированные данные текущей единицы кодирования, информацию о режиме кодирования, которая указывает режим кодирования кодированных данных текущей единицы кодирования, и информацию об индексе преобразования, которая указывает структуру единицы преобразования, преобразующей данные текущей единицы кодирования.
Согласно другому аспекту примерного варианта осуществления обеспечено устройство декодирования видео, включающее в себя процессор, причем устройство включает в себя: приемник, который принимает битовый поток кодированного видео и выполняет синтаксический анализ принятого битового потока; модуль извлечения, который извлекает из проанализированного битового потока кодированные данные текущей единицы кодирования, то есть единицы данных, в которой закодировано текущее изображение кодированного видео, информацию о режиме кодирования, которая указывает режим кодирования кодированных данных текущей единицы кодирования, и информацию об индексе преобразования, которая указывает структуру единицы преобразования, то есть единицы данных, в которой преобразуют текущую единицу кодирования; и декодер, который выполняет обратное преобразование на кодированных данных текущей единицы кодирования на основе информации об индексе преобразования для декодирования кодированных данных текущей единицы кодирования, преобразованной в единице преобразования.
Согласно другому аспекту примерного варианта осуществления обеспечено устройство кодирования видео, включающее в себя процессор, причем устройство включает в себя: делитель максимальной единицы кодирования, который разделяет текущее изображение по меньшей мере на одну максимальную единицу кодирования; определитель единицы кодирования, который определяет единицы кодирования, имеющие древовидную структуру, и включающие в себя единицы кодирования кодированной глубины, являющиеся иерархическими в соответствии с глубинами в одной и той же области по меньшей мере одной максимальной единицы кодирования, и независимыми в разных областях, путем независимого определения единицы кодирования кодированной глубины для вывода результата кодирования для каждой более глубокой единицы кодирования из числа всех более глубоких единиц кодирования, иерархически выстроенных в соответствии с глубинами, которые указывают, какое количество раз пространственно разделяется по меньшей мере одна максимальная единица кодирования, для каждой из по меньшей мере одной максимальной единицы кодирования, и определения единицы преобразования, являющейся единицей данных, в которой преобразуется текущая единица кодирования, из числа единиц кодирования, имеющих древовидную структуру, для кодирования текущей единицы кодирования путем включения преобразования на основе единицы преобразования; и модуль вывода, который кодирует и выводит кодированные данные текущего изображения, информацию о кодированной глубине единиц кодирования, имеющих древовидную структуру, и режиме кодирования, и информацию об индексе преобразования, касающуюся структуры единиц преобразования единиц кодирования кодированной глубины, для каждой из максимальных единиц кодирования.
Согласно другому аспекту примерного варианта осуществления обеспечено устройство декодирования видео, включающее в себя процессор, причем устройство включает в себя: приемник, который принимает битовый поток кодированного видео и выполняет синтаксический анализ принятого битового потока; модуль извлечения данных изображения и кодированной информации, который извлекает из проанализированного битового потока кодированные данные изображения, информацию о кодированной глубине и режиме кодирования и информацию об индексе преобразования, которая указывает структуру единиц преобразования единиц кодирования кодированной глубины, в соответствии с единицами кодирования, имеющими древовидную структуру, включенными в каждую из множества максимальных единиц кодирования, на которые разделено изображение; и декодер данных изображения, который декодирует кодированные данные путем выполнения обратного преобразования на единицах кодирования кодированной глубины на основе единиц преобразования, полученных на основе информации об индексе преобразования для каждой из множества максимальных единиц кодирования, причем единицы кодирования, имеющие древовидную структуру, содержат единицы кодирования, соответствующие кодированной глубине, определенной для вывода результата кодирования, из числа более глубоких единиц кодирования, иерархически выстроенных в соответствии с глубинами, которые указывают, сколько раз пространственно разделяется максимальная единица кодирования при кодировании по меньшей мере одной из множества максимальных единиц кодирования.
Согласно другому аспекту примерного варианта осуществления изобретения обеспечен считываемый компьютером носитель записи, имеющий записанную на нем программу для выполнения способа кодирования видео.
Согласно еще одному аспекту примерного варианта осуществления изобретения обеспечен считываемый компьютером носитель записи, имеющий записанную на нем программу для выполнения способа декодирования видео.
ТЕХНИЧЕСКОЕ ВОПЛОЩЕНИЕ ИЗОБРЕТЕНИЯ
Далее будут более подробно описаны примерные варианты осуществления изобретения со ссылками на сопроводительные чертежи, на которых они показаны. В этих примерных вариантах осуществления термин «единица» может, но не обязательно, относится к единице размера, в зависимости от контекста, а термин «изображение» может обозначать неподвижное изображение для видео или движущееся изображение, то есть само видео.
Далее термин «единица кодирования» относится к единице кодирования данных, в которой кодируют данные изображения на стороне кодера, а также к единице закодированных данных, где закодированные данные изображения декодируют на стороне декодера согласно примерным вариантам осуществления изобретения. Также термин «кодированная глубина» указывает глубину кодирования единицы кодирования.
Кодирование и декодирование видео путем использования индекса преобразования на основе единиц преобразования, имеющих древовидную структуру, согласно примерному варианту осуществления изобретения описываются со ссылками на фиг. 1-8. Кодирование и декодирование видео путем использования индекса преобразования на основе единиц кодирования и единиц преобразования, имеющих древовидную структуру, согласно примерному варианту осуществления изобретения описываются со ссылками на фиг. 9-23.
Сначала со ссылками на фиг. 1-8 описывается способ и устройство для кодирования видео путем использования индекса преобразования, а также способ и устройство для декодирования видео путем использования индекса преобразования согласно примерному варианту осуществления изобретения.
На фиг. 1 представлена блок-схема устройства 10 кодирования видео с использованием индекса преобразования согласно примерному варианту осуществления изобретения.
Обратимся к фиг. 1, где устройство 10 кодирования видео, использующее индекс преобразования, включает в себя определитель 12 единицы преобразования, модуль 14 кодирования и модуль 16 вывода кодированных данных. Для удобства объяснения устройство кодирования видео, использующее индекс преобразования, далее называется «устройством 10 кодирования видео». Управление операциями, выполняемыми определителем 12 единицы преобразования, модулем 14 кодирования и модулем 16 вывода кодированных данных, входящих в устройство 10 кодирования видео, может согласованно осуществляться процессором кодирования видео (не показан), центральным процессором (CPU), модулем обработки графики (GPU) или т.п.
Устройство 10 кодирования видео разделяет текущее изображение из принятого видео на единицы данных, где каждая единица имеет предварительно определенный размер, и выполняет кодирование на каждой единице данных для кодирования текущего изображения. Далее единица данных, в которой кодируется текущее изображение, называется «единицей кодирования». Устройство 10 кодирования видео может кодировать текущее изображение путем выполнения кодирования с предсказанием, включающего в себя внешнее предсказание и внутреннее предсказание, преобразование и квантование, а также энтропийное кодирование на каждой единице кодирования.
Определитель 12 единицы преобразования определяет единицу преобразования, то есть единицу данных, в которой преобразуется текущая единица кодирования из числа единиц кодирования текущего изображения. Единица преобразования может содержаться в текущей единице кодирования или может быть определена как единица данных, размер которой меньше или равен текущей единице кодирования. Определитель 12 единицы преобразования может генерировать единицу преобразования путем уменьшения вдвое высоты и ширины текущей единицы кодирования, то есть уменьшения вчетверо текущей единицы кодирования.
Определитель 12 единицы преобразования может генерировать единицы преобразования более низкого уровня путем уменьшения вдвое высоты и ширины единицы преобразования. Определитель 12 единицы преобразования может разделить текущую единицу кодирования на единицы преобразования, каждая из которых будет иметь один и тот же размер, путем разделения всех единиц преобразования на единицы преобразования более низкого уровня. Поскольку высоту и ширину каждой единицы преобразования уменьшают вдвое, текущую единицу кодирования можно разделить на единицы преобразования, каждая из которых будет иметь один и тот же размер, а общее количество единиц преобразования более низкого уровня составит 4 в степени, равной положительному целому числу.
Определитель 12 единицы преобразования может определить единицы преобразования, имеющие древовидную структуру, для преобразования текущей единицы кодирования. Единицы преобразования, имеющие древовидную структуру, включают в себя конечные единицы преобразования, чьи результаты преобразования определяют в качестве выходных данных из числа единиц преобразования текущей единицы кодирования.
Чтобы определить единицы преобразования, имеющие древовидную структуру, определитель 12 единицы преобразования может генерировать единицы преобразования более низкого уровня путем повторного уменьшения вдвое высоты и ширины единицы преобразования из числа единиц преобразования текущей единицы кодирования. Определитель 12 единицы преобразования может определить, следует ли разделять каждую единицу преобразования на единицы преобразования более низкого уровня, независимо от других единиц преобразования на том же самом уровне, что и уровень каждой единицы преобразования.
Определитель 12 единицы преобразования может выбрать единицы преобразования того уровня, где ошибка преобразования минимизирована, путем многократного преобразования единиц преобразования каждого из всех уровней, имеющих иерархическую структуру в текущей единице кодирования. Единицу преобразования уровня, обеспечивающего минимальную ошибку преобразования, можно определить как конечную единицу преобразования, результат преобразования которой подлежит выводу. Соответственно, определитель 12 единицы преобразования может определить единицы преобразования, имеющие древовидную структуру, согласно примерному варианту осуществления изобретения, куда включены конечные единицы преобразования, результаты преобразования которых определяют как подлежащие выводу.
Модуль 14 кодирования кодирует текущую единицу кодирования путем генерирования остаточных данных текущей единицы кодирования и преобразования остаточных данных на основе единиц преобразования, определенных определителем 12 единицы преобразования. «Преобразование» для кодирования видео согласно примерному варианту осуществления изобретения обозначает технологию обработки данных для преобразования данных пространственной области видео в данные области преобразования видео. Примеры преобразования, выполняемого для кодирования видео модулем 14 кодирования, могут включать в себя частотное преобразование, ортогональное преобразование, целочисленное преобразование и т.п.
Модуль 16 вывода кодированных данных выводит кодированные данные текущей единицы кодирования, информацию, которая указывает режим кодирования, и информацию об индексе преобразования, в виде битового потока.
Информация о режиме кодирования может включать в себя информацию о различных способах и т.п., используемых для кодирования текущей единицы кодирования.
Информацией об индексе преобразования может являться информация о структуре единицы преобразования, используемой для преобразования текущей единицы кодирования. Например, информация об индексе преобразования может включать в себя количество разделений текущей единицы кодирования для превращения в единицы преобразования конечного уровня и информацию о размерах и формах единиц преобразования.
Информация об индексе преобразования может показывать, разделена ли текущая единица преобразования на единицы преобразования более низкого уровня. Например, в качестве информации об индексе преобразования можно использовать бит разделения единицы преобразования, соответствующий 1-битовым данным, который указывает, разделена ли текущая единица преобразования на единицы преобразования более низкого уровня.
Информация об индексе преобразования согласно первому примерному варианту осуществления изобретения может указывать, разделена ли текущая единица преобразования на единицы преобразования, каждая из которых имеет один и тот же размер. Например, информация об индексе преобразования согласно первому примерному варианту осуществления изобретения может указывать на однократное уменьшение вдвое высоты и ширины текущей единицы кодирования, для получения четырех единиц преобразования, либо указывать на то, что высота и ширина уменьшены вдвое дважды для получения 16 единиц преобразования. Другими словами, информация об индексе преобразования согласно первому примерному варианту осуществления изобретения может представлять число 4 в степени, равной положительному целому числу единиц преобразования, каждая из которых имеет один и тот же размер, на которое разделена текущая единица преобразования.
Информация об индексе преобразования согласно второму примерному варианту осуществления изобретения может указывать, разделена ли текущая единица кодирования на единицы преобразования, имеющие разные размеры согласно древовидной структуре в соответствии с примерным вариантом осуществления.
Размер единицы преобразования можно определить на основе индекса преобразования и типа единицы предсказания либо типа сегмента текущей единицы кодирования. Например, размер единицы преобразования, соответствующий индексу преобразования, может изменяться в зависимости от типа единицы предсказания или типа сегмента единицы кодирования.
Если текущая единица преобразования разделена на единицы преобразования, имеющие одинаковый размер, то текущий размер единицы преобразования можно определить на основе индекса преобразования и типа единицы предсказания или типа сегмента соответствующей единицы кодирования. Также, если текущая единица кодирования разделена на единицы преобразования, имеющие разные размеры в соответствии с древовидной структурой, то размер текущей единицы преобразования можно определить на основе индекса преобразования и типа единицы предсказания или типа сегмента текущей единицы кодирования.
Согласно примерному варианту осуществления изобретения максимальный размер единицы преобразования может быть равен размеру текущей единицы кодирования. Согласно другому примерному варианту осуществления изобретения максимальный размер единицы преобразования можно определить на основе типа единицы предсказания или типа сегмента текущей единицы предсказания. Например, максимальный размер текущей единицы предсказания может указывать размер максимального квадрата, включенного в текущую единицу предсказания или текущий сегмент.
Например, информация об индексе преобразования согласно второму примерному варианту осуществления изобретения может быть представлена в виде строки бит, полученной путем компоновки бит разделения единиц преобразования соответствующих уровней, которые получают, пока текущая единица кодирования не будет разделена на единицы преобразования, имеющие древовидную структуру. Информация об индексе преобразования согласно второму примерному варианту осуществления изобретения может включать в себя строку бит, полученную путем компоновки бит разделения соседних единиц преобразования одного и того же уровня в последовательности, в которой единицы преобразования сканируют зигзагообразным образом. Когда предварительно определенную единицу преобразования можно разделить на единицы преобразования более низкого уровня, имеющие иерархическую структуру, информация об индексе преобразования согласно второму примерному варианту осуществления изобретения может включать в себя строку бит, полученную путем компоновки бит разделения единиц преобразования более низкого уровня в последовательности, в которой единицы преобразования сканируют зигзагообразным образом.
На фиг. 2 представлена блок-схема устройства декодирования видео, использующего индекс преобразования, согласно примерному варианту осуществления изобретения.
Обратимся к фиг. 2, где устройство 20 декодирования видео, использующее индекс преобразования, включает в себя приемник 22, модуль 24 извлечения и декодер 26. Для удобства объяснения устройство 20 декодирования видео, использующее индекс преобразования, далее называется «устройством 20 декодирования видео». Операции, выполняемые приемником 22, модулем 24 извлечения и декодером 26 устройства 20 декодирования видео, могут выполняться под управлением процессора декодирования видео (не показан), CPU, GPU или т.п.
Для декодирования текущего изображения принятого видео устройство 20 декодирования видео может декодировать текущее изображение путем выполнения энтропийного декодирования, деквантования, обратного преобразования и декодирования с предсказанием, включая внешнее предсказание/компенсацию и внутреннее предсказание/компенсацию на каждой единице кодирования текущего изображения.
Приемник 22 осуществляет прием и синтаксический анализ битового потока для кодированного видео. Модуль 24 извлечения извлекает кодированные данные каждой единицы кодирования текущего изображения, информацию о режиме кодирования, а также информацию об индексе преобразования текущей единицы кодирования из битового потока, проанализированного приемником 22.
Декодер 26 декодирует кодированные данные путем генерирования единиц преобразования текущей единицы кодирования в соответствии с информацией об индексе преобразования, извлеченной модулем 24 извлечения, и выполнения обратного преобразования на текущей единице кодирования на основе единиц преобразования. В результате декодирования единиц кодирования может быть восстановлено текущее изображение.
Идея единицы преобразования аналогична идее, описанной выше в связи с устройством 10 кодирования видео по фиг. 1. Другими словами, единица преобразования согласно примерному варианту осуществления изобретения может представлять собой единицу преобразования, полученную путем уменьшения вдвое высоты и ширины текущей единицы кодирования, или единицы преобразования более высокого уровня. Все единицы преобразования, включенные в текущую единицу кодирования, согласно примерному варианту осуществления изобретения могут иметь одинаковый размер. Единица преобразования согласно другому примерному варианту осуществления изобретения является единицей преобразования одного уровня из числа единиц преобразования текущей единицы кодирования, имеющих древовидную структуру, причем единица преобразования может быть разделена на единицы преобразования более низкого уровня посредством многократного разделения для каждого уровня единицы преобразования, или может быть разделена на единицы преобразования более низкого уровня посредством независимого разделения между соседними единицами преобразования.
Декодер 26 может считывать информацию, которая указывает количество разделений текущей единицы кодирования для превращения в единицы преобразования конечного уровня, информацию о размерах и форме единиц преобразования и т.п. исходя из информации об индексе преобразования.
Декодер 26 может считывать информацию, которая указывает, разделять ли текущую единицу преобразования на единицы преобразования более низкого уровня, исходя из информации об индексе преобразования.
Декодер 26 может считывать информацию, которая указывает уровень единицы преобразования, из индекса преобразования, согласно первому примерному варианту осуществления изобретения. В этом случае, поскольку текущая единица кодирования разделена на единицы преобразования одинаковых размеров для каждого уровня, пока не будут получены единицы преобразования конечного уровня, декодер 26 может определить единицы преобразования конечного уровня, имеющие одинаковый размер, путем определения конечного уровня единиц преобразования согласно индексу преобразования и уменьшения вдвое высоты и ширины всех единиц преобразования более высокого уровня, когда текущая единица кодирования разделена на единицы преобразования конечного уровня.
Декодер 26 может определить размер единицы преобразования на основе индекса преобразования и типа единицы предсказания или типа сегмента текущей единицы кодирования. Например, размер единицы преобразования, соответствующий индексу преобразования, может изменяться в зависимости от типа единицы предсказания или типа сегмента единицы кодирования.
Если декодер 26 может разделить текущую единицу кодирования, а затем определить текущие единицы преобразования, имеющие одинаковый размер, размер текущей единицы преобразования можно определить на основе индекса преобразования и типа единицы предсказания, либо типа сегмента текущей единицы кодирования. Также, если текущая единица кодирования разделена на единицы преобразования, имеющие разные размеры согласно древовидной структуре, размер текущей единицы преобразования можно определить на основе индекса преобразования и типа единицы предсказания, либо типа сегмента текущей единицы кодирования.
Декодер 26 может определить единицы преобразования, полученные в соответствии с древовидной структурой, на основе информации об индексе преобразования согласно второму примерному варианту осуществления изобретения. Например, строка бит информации об индексе преобразования согласно второму примерному варианту осуществления изобретения может представлять собой строку бит, полученную путем компоновки бит разделения единицы преобразования для единиц преобразования каждого уровня. Декодер 26 может определить единицы преобразования, на которые разделена текущая единица кодирования в соответствии с древовидной структурой, путем считывания строки бит информации об индексе преобразования согласно второму примерному варианту осуществления изобретения и разделения текущей единицы кодирования, так что между единицами преобразования на одном и том же уровне выполняется независимое разделение, а также выполняется многократное разделение между уровнями.
В то же время декодер 26 может считывать биты разделения единиц преобразования на одном и том же уровне из информации об индексе преобразования согласно второму примерному варианту осуществления изобретения и может разделить единицы преобразования на более высоком уровне на единицы преобразования более низкого уровня, используя зигзагообразное сканирование. Когда единица преобразования более высокого уровня разделена на единицы преобразования более низкого уровня, декодер 26 может считать биты разделения единиц преобразования более низкого уровня, которые включены в единицу преобразования более высокого уровня, используя зигзагообразное сканирование.
Обратное преобразование, выполняемое для декодирования видео декодером 26, можно назвать процессом преобразования данных из области преобразования в данные пространственной области. Примеры обратного преобразования, выполняемого декодером 26, могут включать в себя частотное обратное преобразование, ортогональное обратное преобразование, целочисленное обратное преобразование и т.п.
Устройство 10 кодирования видео и устройство 20 декодирования видео могут эффективно кодировать и декодировать информацию, используемую для определения различных размеров и форм единиц преобразования, имеющих древовидную структуру, которые необходимы для выполнения преобразования и обратного преобразования во время кодирования и декодирования видео на основе различных размеров и форм единиц кодирования путем использования индекса преобразования согласно примерному варианту осуществления изобретения.
На фиг. 3 представлена схема, иллюстрирующая структуру единицы преобразования и индекс преобразования согласно первому примерному варианту осуществления изобретения.
Группа 32 единиц преобразования уровня 0, группа 34 единиц преобразования уровня 1 и группа 36 единиц преобразования уровня 2 показаны в соответствии с индексом преобразования в виде структуры единиц преобразования согласно первому варианту осуществления, который включает в себя единицы трансформации одинаковых размеров для преобразования единицы кодирования CU0 30. Индекс преобразования согласно первому примерному варианту осуществления изобретения может представлять количество разделений единицы CU0 30 кодирования для превращения в группу единиц преобразования текущего уровня, то есть номер уровня.
Другими словами, группа 32 единиц преобразования уровня 0 включает в себя единицу TU0 преобразования, которая имеет такой же размер, как и единица CU0 30 кодирования, путем разделения высоты и ширины единицы CU0 30 кодирования ноль раз. В этом случае индекс преобразования группы 32 единиц преобразования уровня 0 составляет 0.
Группа 34 единиц преобразования уровня 1 включает в себя единицы TU10, TU11, TU12 и TU13 преобразования, у которых высота и ширина составляет половину от высоты и ширины единицы CU0 30 кодирования, благодаря однократному разделению высоты и ширины единицы CU0 30 кодирования. В этом случае индекс преобразования группы 34 единиц преобразования уровня 1 составляет 1.
Группа 36 единиц преобразования уровня 2 включает в себя единицы TU20, TU21, TU22, TU23, TU24, TU25, TU26, TU27, TU28, TU29, TU2A, TU2B, TU2C, TU2D, TU2E и TU2F преобразования, у которых высота и размер составляет четверть от высоты и размера единицы CU0 30 кодирования, благодаря двукратному разделению высоты и ширины единицы CU0 30 кодирования. В этом случае индекс преобразования группы 36 единиц преобразования уровня 2 составляет 2.
На фиг. 4 представлена схема, иллюстрирующая структуру единицы преобразования и индекса преобразования согласно второму примерному варианту осуществления изобретения.
Группа 40 единиц преобразования показана в виде структуры единиц преобразования согласно второму примерному варианту осуществления изобретения, которая включает в себя единицы преобразования, имеющие древовидную структуру, для преобразования единицы CU0 30 кодирования. Индекс преобразования согласно второму примерному варианту осуществления изобретения может быть представлен в виде строки бит разделения единицы преобразования для каждого используемого уровня, пока из единицы CU0 30 кодирования не будут получены единицы преобразования, имеющие древовидную структуру.
Другими словами, поскольку единица преобразования уровня 0, имеющая тот же размер, что и единица CU0 30 кодирования, разделена на единицы TU40, TU41, TU42 и TU43 преобразования уровня 1, может быть сгенерирован бит 1 разделения единиц преобразования для уровня 1, который вводится в индекс преобразования. Поскольку биты разделения единиц преобразования для единиц преобразования на одинаковом уровне скомпонованы в последовательности зигзагообразного сканирования, биты разделения единиц преобразования для уровня 0 могут быть скомпонованы в последовательности бит разделения единиц преобразования для единиц TU40, TU41, TU42 и TU43 преобразования. Поскольку единицы TU40 и TU41 преобразования не разделены, могут быть последовательно сгенерированы биты 0 и 0 разделения единиц преобразования для единиц TU40 и TU41 преобразования, которые вводят в индекс преобразования.
Единицу TU42 преобразования уровня 1 далее разделяют на единицы TU50, TU51, TU52 и TU53 преобразования уровня 2. Соответственно, может быть сгенерирован бит 1 разделения единицы преобразования для единицы TU42 преобразования уровня 1. При разделении единицы преобразования текущего уровня на единицы преобразования более низкого уровня в индекс преобразования могут быть включены биты разделения единиц преобразования более низкого уровня. Соответственно, в индекс преобразования могут быть последовательно введены бит 0 разделения единицы TU50 преобразования уровня 2, бит 1 разделения единицы TU51 преобразования уровня 2, бит 0 разделения единицы TU52 преобразования уровня 2 и бит 0 разделения единицы TU53 преобразования уровня 2. Далее единица TU51 преобразования уровня 2 разделяется на единицы TU60, TU61, TU62 и TU63 преобразования уровня 3. Единица преобразования уровня 3 является минимальной единицей преобразования или минимальной единицей, то есть эта единица преобразования уровня 3 далее не разделяется.
Другими словами, если бит разделения единицы преобразования для единицы преобразования текущего уровня равен 1 и единицы преобразования более низкого уровня не являются минимальными единицами преобразования, или минимальной единицей, то биты разделения единицы преобразования для единиц преобразования более низкого уровня могут быть последовательно скомпонованы после бита разделения единицы преобразования для единицы преобразования текущего уровня.
Наконец, поскольку единицу TU43 преобразования уровня 1 не разделяют, в индекс преобразования может быть включен бит 0 разделения единицы преобразования.
Соответственно, индекс преобразования согласно второму примерному варианту осуществления изобретения для единицы CU030 кодирования может быть определен как 1,0,0,1,0,1,0,0,0. Если биты разделения единицы преобразования для единиц преобразования более низкого уровня последовательно равны 0, следует понимать, что эти единицы преобразования более низкого уровня далее не разделяются.
Сгенерированные таким образом биты разделения единицы преобразования компонуют, начиная с единицы преобразования уровня 0, имеющей такой же размер, как единица кодирования, таким образом, что биты разделения единиц преобразования на одном и том же уровне компонуются в последовательности зигзагообразного сканирования, и таким образом, что если единица преобразования предварительно определенного уровня разделена на единицы преобразования более низкого уровня с иерархической структурой, то биты разделения для единиц преобразования более низкого уровня компонуют в последовательности зигзагообразного сканирования, в результате чего может быть определен индекс преобразования согласно второму примерному варианту осуществления изобретения.
На фиг. 5 и 6 представлены схемы, иллюстрирующие примеры использования индекса преобразования согласно второму примерному варианту осуществления изобретения.
Как было описано выше со ссылками на фиг. 4, если единица преобразования больше не разделяется, то биты разделения единиц преобразования далее не генерируются. Таким образом, индекс преобразования согласно второму примерному варианту осуществления изобретения может быть установлен в соответствии с размером минимальной единицы преобразования, или минимальной единицы.
Когда минимальная единица 52 преобразования единицы 50 кодирования размером 2N×2N имеет размер N×N, единица 50 кодирования может разделяться только до тех пор, пока не будут получены единицы преобразования N×N, и тогда индекс преобразования единицы 50 кодирования для группы 54 единиц преобразования может быть установлен равным 1.
С другой стороны, когда минимальная единица 62 преобразования единицы 60 кодирования размером 2N×2N имеет размер (N/2)×(N/2), единицы преобразования размером N×N в группе 64 единиц преобразования могут каждый разделяться больше, чем один раз. Соответственно, индекс преобразования единицы 60 кодирования для группы 64 единиц преобразования может включать в себя не только бит 1 разделения единицы преобразования для единицы преобразования уровня 0, но также и биты 0,0,0 и 0 разделения единицы преобразования для единиц преобразования уровня 1 в группе 64 единиц преобразования.
Единицы преобразования, описанные выше со ссылками на фиг. 3-6, могут быть определены определителем 12 единиц преобразования в устройстве 10 кодирования видео, а индекс преобразования может быть закодирован модулем 14 вывода кодированных данных. Модуль 24 извлечения устройства 20 декодирования видео может извлечь информацию об индексе преобразования, а его декодер 26 может сформировать единицу преобразования путем считывания индекса преобразования и может выполнить обратное преобразование на единице преобразования.
На фиг. 7 представлена блок-схема алгоритма, иллюстрирующая способ кодирования видео, в котором используется индекс преобразования, согласно примерному варианту осуществления изобретения.
В операции 72 определяют единицу преобразования, то есть единицу данных, в которой выполняется преобразование текущей единицы кодирования из числа единиц кодирования текущего изображения. Единицу преобразования можно определить как единицу данных, имеющую размер, меньший или равный текущей единице кодирования, так что единица преобразования включена в текущую единицу кодирования, причем единица преобразования может быть сгенерирована путем уменьшения в два раза высоты и ширины единицы кодирования. Поскольку единица преобразования может образовать иерархическую структуру, единицы преобразования более низкого уровня можно сгенерировать, уменьшив в два раза высоту и ширину единицы преобразования более высокого уровня. Например, все единицы преобразования предварительно определенного уровня в текущей единице кодирования можно разделить на единицы преобразования более низкого уровня, так что может быть сгенерировано столько единиц преобразования одного и того же размера, сколько составляет число 4 в степени, равной положительному целому числу.
Единица преобразования может включать в себя конечные единицы преобразования, чьи результаты преобразования определяют как подлежащие выводу, из числа единиц преобразования текущей единицы кодирования.
Иерархическая структура единиц преобразования согласно примерному варианту осуществления изобретения может представлять собой древовидную структуру. При многократном уменьшении вдвое высоты и ширины текущей единицы преобразования из числа единиц преобразования текущей единиц кодирования определяют, выполнять ли указанное уменьшение вдвое независимо от других единиц преобразования, и таким образом генерируют единицы преобразования более низкого уровня. Единицы преобразования на каждом уровне в одной и той же области могут образовать иерархическую структуру. Конечные единицы преобразования определяют из числа единиц преобразования, сгенерированных указанным путем, так чтобы выполнить вывод результатов преобразования, и получить единицы преобразования, имеющие древовидную структуру согласно примерному варианту осуществления изобретения.
В качестве конечных единиц преобразования, результаты которого поступают на выход, могут быть выбраны единицы преобразования того уровня, где минимизирована ошибка из-за преобразования для каждой единицы преобразования, путем многократного выполнения преобразования на каждом уровне для единиц преобразования, имеющих иерархическую структуру в текущей единице кодирования, и сравнения результатов преобразований друг с другом.
В операции 74 выполняется кодирование текущей единицы кодирования, в том числе преобразование на основе единицы преобразования. В операции 76 осуществляется вывод кодированных данных текущей единицы кодирования, информации о режиме кодирования и информации об индексе преобразования.
Информация об индексе преобразования, относящаяся к структуре единицы преобразования согласно примерному варианту осуществления изобретения, может указывать, разделена ли текущая единица преобразования на единицы преобразования более низкого уровня. Информация об индексе преобразования, касающаяся структуры единицы преобразования согласно примерному варианту осуществления изобретения, может включать в себя количество разделений текущей единицы кодирования для превращения в единицы преобразования конечного уровня, а также информацию о размерах и формах единиц преобразования.
Информация об индексе преобразования согласно первому примерному варианту осуществления изобретения может указывать уровень, который идентифицирует общее количество разделений из текущей единицы кодирования до единицы кодирования конечного уровня. Единицы преобразования каждого уровня могут иметь одинаковые размеры.
Информация об индексе преобразования согласно второму примерному варианту осуществления изобретения может указывать, многократно ли разделяется текущая единица кодирования для получения единиц преобразования, имеющих древовидную структуру. Согласно второму примерному варианту осуществления изобретения информация об индексе преобразования может быть в виде строки бит, получаемых путем компоновки бит разделения единицы преобразования, которые указывают, разделена ли единица преобразования каждого уровня на единицы преобразования более низкого уровня. Строку бит информации об индексе преобразования можно получить путем компоновки бит разделения единицы преобразования соседних единиц преобразования одинакового уровня в последовательности, где сканирование единиц преобразования выполняется зигзагообразным образом. Когда текущая единица преобразования включает в себя единицы преобразования более низкого уровня, имеющие иерархическую структуру, строку бит информации об индексе преобразования можно определить так, чтобы биты разделения единиц преобразования более низкого уровня были скомпонованы в последовательности, где единицы преобразования сканируются зигзагообразным образом.
На фиг. 8 показана блок-схема алгоритма, иллюстрирующая способ декодирования видео с использованием индекса преобразования согласно примерному варианту осуществления изобретения.
В операции 82 принимают и подвергают синтаксическому анализу битовый поток для кодированного видео.
В операции 84 из проанализированного битового потока извлекают кодированные данные текущей единицы кодирования текущего изображения, информацию о режиме кодирования и информацию об индексе преобразования.
В операции 86 выполняют обратное преобразование на текущей единице кодирования на основе единиц преобразования, полученных в соответствии с информацией об индексе преобразования, таким образом, происходит декодирование закодированных данных. В результате декодирования каждой единицы кодирования может быть восстановлено текущее изображение. Факт разделения текущей единицы преобразования на единицы преобразования более низкого уровня можно установить на основе считывания информации об индексе преобразования, касающейся структуры единицы преобразования, согласно примерному варианту осуществления изобретения, и таким образом можно определить единицы преобразования. Обратное преобразование на текущей единице кодирования может выполняться на основе единиц преобразования.
Количество разделений текущей единицы кодирования, пока не будут получены единицы преобразования конечного уровня, а также информация о размерах, формах и т.п. единиц преобразования, можно получить путем считывания информации об индексе преобразования, касающейся структуры единицы преобразования, согласно примерному варианту осуществления изобретения.
Уровень, который указывает общее количество разделений от текущей единицы кодирования до единицы преобразования конечного уровня, может быть считан из информации об индексе преобразования, согласно первому примерному варианту осуществления изобретения. Уровень единицы преобразования указывает количество разделений текущей единицы кодирования для получения 4 единиц преобразования, имеющих одинаковый размер. Соответственно, может быть определена структура единиц преобразования, в которой текущая единица кодирования разделяется на единицы преобразования, имеющие одинаковый размер.
Строка бит разделения единицы преобразования, которая указывает, разделена ли единица преобразования каждого уровня на единицы преобразования более низкого уровня, считывается из информации об индексе преобразования, согласно второму примерному варианту осуществления изобретения, пока не будет многократно разделена текущая единица кодирования для получения единиц преобразования, имеющих древовидную структуру. Таким образом, можно определить структуру единиц преобразования, согласно которой разделяется текущая единица кодирования в соответствии с древовидной структурой.
Например, биты разделения соседних единиц преобразования на одном и том же уровне из информации об индексе преобразования согласно второму примерному варианту осуществления изобретения могут быть считаны в последовательности, при которой единицы преобразования считываются зигзагообразным образом. Кроме того, биты разделения единиц преобразования более низкого уровня, имеющих иерархическую структуру, включенную в единицу преобразования предварительно определенного уровня из информации об индексе преобразования согласно другому примерному варианту осуществления изобретения, могут считываться в последовательности, где единицы преобразования более низкого уровня сканируются зигзагообразным образом.
Сначала со ссылками на фиг. 9-23 будет описан способ и устройство для кодирования видео путем использования единицы кодирования, имеющей древовидную структуру, и индекса преобразования, а также способ и устройство для декодирования видео путем использования единицы кодирования, имеющей древовидную структуру, и индекса преобразования согласно примерному варианту осуществления изобретения.
На фиг. 9 изображена блок-схема устройства 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. Здесь, если минимальной единицей кодирования является единица кодирования, при которой максимальная единица кодирования разделяется четыре раза, существуют пять уровней глубины 0, 1, 2, 3 и 4, и, следовательно, первая максимальная глубина может быть установлена равной 4, а вторая максимальная глубина может быть установлена равной 5.
Кодирование с предсказанием и преобразование могут выполняться в соответствии с максимальной единицей кодирования. Кодирование с предсказанием и преобразование также выполняют на основе более глубоких единиц кодирования, соответствующих глубине, меньшей или равной максимальной глубине в соответствии с максимальной единицей кодирования. Преобразование может выполняться в соответствии с методом ортогонального преобразования или целочисленного преобразования.
Поскольку количество более глубоких единиц кодирования возрастает всякий раз, когда максимальная единица кодирования разделяется согласно глубинам, кодирование, в том числе кодирование с предсказанием и преобразование, выполняется на всех более глубоких единицах кодирования, сгенерированных в ходе нарастания глубины. Для удобства описания далее кодирование с предсказанием и указанное преобразование описывается на основе единицы кодирования текущей глубины в максимальной единице кодирования.
Устройство 100 кодирования видео может по-разному выбирать размер или форму единицы данных для кодирования данных изображения. Чтобы закодировать данные изображения, выполняются такие операции, как кодирование с предсказанием, преобразование и энтропийное кодирование, причем одновременно может использоваться одна и та же единица данных для всех операций, либо для каждой операции могут использоваться разные единицы данных.
Например, устройство 100 кодирования видео может выбрать не только единицу кодирования для кодирования данных изображения, но также единицу данных, отличную от упомянутой единицы кодирования, для выполнения кодирования с предсказанием на данных изображения в единице кодирования.
Выполнение кодирования с предсказанием в максимальной единице кодирования можно реализовать на основе единицы кодирования, соответствующей кодированной глубине, то есть на основе единицы кодирования, которая далее не разделена, до единиц кодирования, соответствующих большей глубине. Далее единица кодирования, которая больше не разделяется и становится базовой единицей для кодирования с предсказанием, называется «единица предсказания». Сегмент, полученный путем разделения единицы предсказания, может включать в себя единицу предсказания или единицу данных, полученную путем разделения по меньшей мере одного из параметров: высоты и/или ширины единицы предсказания.
Например, когда единица кодирования 2N×2N (где N-положительное целое число) больше не разделяется и становится единицей предсказания 2N×2N, размер сегмента может быть представлен как 2N×2N, 2N×N, N×2N или N×N. Примеры типов сегментов включают в себя: симметричные сегменты, которые получают путем симметричного разделения высоты или ширины единицы предсказания; сегменты, полученные путем асимметричного разделения высоты или ширины единицы предсказания, например, 1:n или n:1; сегменты, которые получают путем геометрического разделения единицы предсказания, и сегменты, имеющие произвольные формы.
Режимом предсказания единицы предсказания может быть по меньшей мере один из следующих режимов: внутренний режим, внешний режим и режим пропуска. Например, внутренний режим или внешний режим может выполняться на сегменте 2N×2N, 2N×N, N×2N или N×N. Также режим с пропуском может выполняться только на сегменте 2N×2N. Кодирование выполняется независимо на одной единице предсказания в единице кодирования, в результате чего выбирается режим предсказания, имеющий наименьшую ошибку кодирования.
Устройство 100 кодирования видео также может выполнять преобразование на данных изображения в единице кодирования на основе не только единицы кодирования для кодирования данных изображения, но также на основе единицы данных, которая отличается от единицы кодирования.
Как было описано выше со ссылками на фиг. 1-8, выполнять преобразование в единице кодирования можно на основе единицы данных, имеющей размер, меньший или равный единице кодирования. Например, единица данных для преобразования может включать в себя единицу данных для внутреннего режима и единицу данных для внешнего режима.
∧
∧
Единица данных, используемая в качестве базы преобразования, называется далее «единица преобразования». В единице преобразования также может быть установлена глубина преобразования, которая указывает количество разделений для достижения единицы преобразования путем разделения высоты и ширины единицы кодирования. Например, в текущей единице кодирования 2N×2N глубина преобразования может быть равна 0, когда размер единицы преобразования также составляет 2N×2N; может составлять 1, когда высота и ширина текущей единицы кодирования разделяется на две равные части, всего разделяется на 41 единиц преобразования, и таким образом размер единицы преобразования составит N×N; и может быть равным 2, когда высота и ширина текущей единицы кодирования разделяется на четыре равные части, всего разделяется на 42 единиц преобразования, и тогда размер единицы преобразования составит N/2×N/2. Единица преобразования может быть установлена, например, в соответствии с иерархической древовидной структурой, в которой единицы преобразования с меньшей глубиной преобразования разделяется на четыре единицы преобразования с большей глубиной преобразования в соответствии с иерархическими характеристиками глубины преобразования.
По аналогии с единицей кодирования единица преобразования в единице кодирования может рекурсивно разделяться на области меньшего размера, так что единицу преобразования можно будет определить независимо в единицах областей. Таким образом, остаточные данные в единице кодирования можно разбить в соответствии с преобразованием, имеющим древовидную структуру, в соответствии с глубинами преобразования.
Для кодирования информации согласно единицам кодирования, соответствующим кодированной глубине, требуется не только информация о кодированной глубине, но также информация, относящаяся к кодированию с предсказанием и преобразованию. Соответственно, определитель 120 единицы кодирования не только определяет кодированную глубину, имеющую минимальную ошибку кодирования, но также определяет тип сегмента в единице предсказания, режим предсказания, соответствующий единицам предсказания, а также размер единицы преобразования для преобразования.
Далее со ссылками на фиг. 11 и 12 подробно описываются единицы кодирования, соответствующие древовидной структуре, в максимальной единице кодирования, а также способ определения сегмента согласно примерным вариантам осуществления изобретения.
Определитель 120 единицы кодирования может измерить ошибку кодирования более глубоких единиц кодирования согласно глубинам путем использования оптимизации искажений с учетом скорости передачи бит на основе множителей Лагранжа.
Модуль 130 вывода выводит в битовых потоках данные изображения максимальной единицы кодирования, которая кодируется на основе по меньшей мере одной кодированной глубины, определенной определителем 120 единицы кодирования, и информацию о режиме кодирования согласно кодированной глубине.
Кодированные данные изображения можно получить путем кодирования остаточных данных изображения.
Информация о режиме кодирования, соответствующем кодированной глубине, может включать в себя информацию о кодированной глубине, о типе сегмента в единице предсказания, режиме предсказания и размере единицы преобразования.
Информацию о кодированной глубине можно определить, используя информацию о разделении в соответствии с глубинами, которая указывает, выполняется ли кодирование на единицах кодирования большей глубины вместо текущей глубины. Если текущая глубина текущей единицы кодирования является кодированной глубиной, выполняется кодирование и вывод данных изображения в текущей единице кодирования, и, таким образом, информацию о разделении можно определить без разделения текущей единицы кодирования на большую глубину. В качестве альтернативы, если текущая глубина текущей единицы кодирования не является кодированной глубиной, то кодирование выполняют на единице кодирования большей глубины, и, таким образом, информацию о разделении можно определить для разделения текущей единицы кодирования с целью получения единиц кодирования с большей глубиной.
Если текущая глубина не является кодированной глубиной, то кодирование выполняют на единице кодирования, которая разделена на единицы кодирования с большей глубиной. Поскольку в одной единице кодирования с текущей глубиной имеется по меньшей мере одна единица кодирования с большей глубиной, то кодирование выполняют многократно на каждой единице кодирования с большей глубиной, и, следовательно, кодирование может рекурсивно выполняться для единиц кодирования, имеющих одинаковую глубину.
Поскольку единицы кодирования, имеющие древовидную структуру, определены для одной максимальной единицы кодирования, и информацию по меньшей мере об одном режиме кодирования определяют для единицы кодирования с кодированной глубиной, можно определить информацию по меньшей мере об одном режиме кодирования для одной максимальной единицы кодирования. Также кодированная глубина данных изображения максимальной единицы кодирования может быть разной в зависимости от местоположения, поскольку данные изображения разделяют иерархически в соответствии с глубинами, и, следовательно, для данных изображения можно установить информацию о кодированной глубине и режиме кодирования.
Соответственно, модуль 130 вывода может распределить информацию кодирования о соответствующей кодированной глубине и режиме кодирования по меньшей мере для одной из единиц: единицы кодирования, единицы предсказания и минимальной единицы, содержащейся в максимальной единице кодирования.
Минимальная единица согласно примерному варианту осуществления изобретения представляет собой прямоугольную единицу данных, полученную путем разделения минимальной единицы кодирования, образующей максимальную глубину, на 4 части. В качестве альтернативы, минимальная единица может представлять собой максимальную прямоугольную единицу данных, которая может входить в состав всех перечисленных единиц: единиц кодирования, единиц предсказания, единиц сегмента и единиц преобразования, содержащихся в максимальной единице кодирования.
Например, информацию о кодировании, выводимую через модуль 130 вывода, можно классифицировать на информацию о кодировании согласно единицам кодирования и информацию о кодировании согласно единицам предсказания. Информация о кодировании согласно единицам кодирования может включать в себя информацию о режиме предсказания и о размере сегментов. Информация о кодировании согласно единицам предсказания может включать в себя информацию об оцененном направлении внешнего режима, об индексе опорного изображения внешнего режима, о векторе движения, о цветовой компоненте внутреннего режима и о способе интерполяции внутреннего режима. Также в набор параметров последовательности (SPS) или в заголовок битового потока может быть введена информация о максимальном размере единицы кодирования, определенная в соответствии с изображениями, их частями или группами изображений (GOP), а также информация о максимальной глубине. Кроме того, информация о кодировании, выводимая через модуль 130 вывода, может включать в себя информацию об индексе преобразования, касающуюся структуры единицы преобразования согласно примерному варианту осуществления изобретения, как было описано выше со ссылками на фиг. 1-8.
В устройстве 100 кодирования видео более глубокая единица кодирования может представлять собой единицу кодирования, полученную путем деления на два высоты или ширины единицы кодирования меньшей глубины, которая находится на один уровень выше. Другими словами, когда размер единицы кодирования текущей глубины составляет 2N×2N, то размер единицы кодирования большей глубины составляет N×N. Также единица кодирования текущей глубины, имеющая размер 2N×2N, может включать в себя максимум 4 единицы кодирования большей глубины.
Соответственно, устройство 100 кодирования видео может формировать единицы кодирования, имеющие древовидную структуру, путем определения единиц кодирования, имеющих оптимальную форму и оптимальный размер для каждой максимальной единицы кодирования, на основе размера максимальной единицы кодирования и максимальной глубины, определяемой с учетом характеристик текущего изображения. Также, поскольку кодирование может выполняться на каждой максимальной единице кодирования путем использования любого из разнообразных режимов предсказания и разных преобразований, оптимальный режим кодирования можно определить, учитывая характеристики единицы кодирования с различными размерами изображения.
Таким образом, если в стандартном макроблоке кодируют изображение, имеющее высокое разрешение или большой объем данных, количество макроблоков на одно изображение чрезмерно возрастает. Соответственно, возрастает количество фрагментов сжатой информации, генерируемых для каждого макроблока, и, следовательно, затрудняется передача сжатой информации, и снижается эффективность сжатия данных. Однако благодаря использованию устройства 100 кодирования видео эффективность сжатия изображения может быть увеличена, поскольку единица кодирования подбирается с учетом характеристик изображения при увеличении максимального размера единицы кодирования с учетом размера изображения.
На фиг. 10 представлена блок-схема устройства 200 декодирования видео, где используются единицы кодирования, имеющие древовидную структуру, и индекс преобразования согласно примерному варианту осуществления изобретения.
Устройство 200 декодирования видео включает в себя приемник 210, модуль 220 извлечения данных изображения и информации о кодировании и декодер 230 данных изображения. Различные термины, такие как «единица кодирования», «глубина», «единица предсказания», «единица преобразования» и информация о различных режимах кодирования, для различных операций устройства 200 декодирования видео идентичны терминам, описанным со ссылками на фиг. 9 и устройство 100 кодирования видео.
Приемник 210 осуществляет прием и синтаксический анализ битового потока кодированного видео. Модуль 220 извлечения данных изображения и информации о кодировании извлекает кодированные данные изображения для каждой единицы кодирования из проанализированного битового потока, где единицы кодирования имеют древовидную структуру согласно каждой максимальной единице кодирования, и выводит извлеченные данные изображения в декодер 230 данных изображения. Модуль 220 извлечения данных изображения и информации о кодировании может извлекать информацию о максимальном размере единицы кодирования текущего изображения из заголовка текущего изображения или набора SPS.
Также модуль 220 извлечения данных изображения и информации о кодировании извлекает из проанализированного битового потока информацию о кодированной глубине и режиме кодирования для единиц кодирования, имеющих древовидную структуру, в соответствии с каждой максимальной единицей кодирования. Извлеченная информация о кодированной глубине и режиме кодирования выводится в декодер 230 данных изображения. Другими словами, данные изображения в битовом потоке разделяют на максимальные единицы кодирования, так что декодер 230 данных изображения декодирует данные изображения для каждой максимальной единицы кодирования.
Информация о кодированной глубине и режиме кодирования согласно максимальной единице кодирования может быть установлена для информации по меньшей мере об одной единице кодирования, соответствующей кодированной глубине, а информация о режиме кодирования может включать в себя информацию о типе сегмента соответствующей единицы кодирования, соответствующей кодированной глубине, информацию о режиме предсказания и размере единицы преобразования. Также в качестве информации о кодированной глубине может быть извлечена информация о разделении согласно глубинам. Кроме того, модуль 220 извлечения данных изображения и информации о кодировании может извлекать информацию об индексе преобразования, касающуюся структуры единиц преобразования, согласно варианту осуществления, описанному выше со ссылками на фиг. 1-8, в качестве извлеченной информации о кодированной глубине и режиме кодирования.
Информация о кодированной глубине и режиме кодирования согласно каждой максимальной единице кодирования, извлеченной модулем 220 извлечения данных изображения и информации о кодировании, представляет собой информацию о кодированной глубине и режиме кодирования, определенную для генерирования минимальной ошибки кодирования, когда кодер, такой как устройство 100 кодирования видео, многократно выполняет кодирование для каждой более глубокой единицы кодирования согласно глубинам и в соответствии с каждой максимальной единицей кодирования. Соответственно, устройство 200 декодирования видео может восстановить изображение путем декодирования данных изображения согласно кодированной глубине и режиму кодирования, который генерирует минимальную ошибку кодирования.
Поскольку информация о кодировании, касающаяся кодированной глубины и режима кодирования, может быть присвоена предварительно определенной единице данных из числа соответствующей единицы кодирования, единицы предсказания и минимальной единицы, модуль 220 извлечения данных изображения и информации о кодировании может извлечь информацию о кодированной глубине и режиме кодирования в соответствии с предварительно определенными единицами данных. Можно предполагать, что предварительно определенные единицы данных, которым присваивается одинаковая информация о кодированной глубине и режиме кодирования, являются единицами данных, включенными в одну и ту же максимальную единицу кодирования.
Декодер 230 данных изображения восстанавливает текущее изображение путем декодирования данных изображения в каждой максимальной единице кодирования на основе информации о кодированной глубине и режиме кодирования согласно максимальным единицам кодирования. Другими словами, декодер 230 данных изображения может декодировать кодированные данные изображения на основе извлеченной информации о типе сегмента, режиме предсказания и единице преобразования для каждой единицы кодирования из числа единиц кодирования, имеющих древовидную структуру, которые включены в каждую максимальную единицу кодирования. Процесс декодирования может включать в себя предсказание, в том числе внутреннее предсказание и компенсацию движения, а также обратное преобразование. Обратное преобразование может выполняться в соответствии со способом обратного ортогонального преобразования или обратного целочисленного преобразования.
Декодер 230 данных изображения может выполнить внутреннее предсказание или компенсацию движения в соответствии с сегментом и режимом предсказания каждой единицы кодирования на основе информации о типе сегмента и режиме предсказания данной единицы предсказания единицы кодирования в соответствии с кодированными глубинами.
Также декодер 230 данных изображения может выполнить обратное преобразование в соответствии с каждой единицей преобразования в единице кодирования на основе информации о размере единицы преобразования единицы кодирования, соответствующей кодированным глубинам, для выполнения обратного преобразования в соответствии с максимальными единицами кодирования.
Декодер 230 данных изображения может определить по меньшей мере одну кодируемую глубину текущей максимальной единицы кодирования путем использования информации о разделении, соответствующей глубинам. Если информация о разделении указывает, что данные изображения больше не разделяются на текущей глубине, то текущая глубина становится кодированной глубиной. Соответственно, декодер 230 данных изображения может декодировать кодированные данные по меньшей мере одной единицы кодирования, соответствующей каждой кодированной глубине в текущей максимальной единице кодирования, путем использования информации о типе сегмента единицы предсказания, режиме предсказания и размере единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, и может вывести данные изображения текущей максимальной единицы кодирования.
Другим словами, можно собрать вместе единицы данных, содержащие информацию о кодировании, указывающие одинаковую информацию о разделении, путем просмотра набора информации о кодировании, присвоенного предварительно определенной единице данных из числа следующих единиц: единицы кодирования, единицы предсказания, и минимальной единицы, причем собранные единицы данных можно рассматривать как одну единицу данных, подлежащую декодированию декодером 230 данных изображения в том же самом режиме кодирования.
Устройство 200 декодирования видео может получать информацию по меньшей мере об одной единице кодирования, которая генерирует минимальную ошибку кодирования при рекурсивном выполнении кодирования для каждой максимальной единицы кодирования и может использовать эту информацию для декодирования текущего изображения. Другими словами, могут быть декодированы единицы кодирования, имеющие древовидную структуру и определенные таким образом, что они являются оптимальными единицами кодирования в каждой максимальной единице кодирования. Также определяют максимальный размер единицы кодирования с учетом разрешения и объема данных изображения.
Соответственно, если даже данные изображения имеют высокое разрешение и представлены в большом объеме, эти данные изображения можно эффективно декодировать или восстановить путем использования размера единицы кодирования и режима кодирования, которые адаптивно определяются в соответствии с характеристиками данных изображения, путем использования информации об оптимальном режиме кодирования, принятой от кодера.
Далее со ссылками на фиг. 11-21 описывается способ определения единиц кодирования, имеющих древовидную структуру, единиц предсказания и единиц преобразования согласно примерному варианту осуществления изобретения.
На фиг. 11 представлена схема для описания идеи иерархических единиц кодирования согласно примерному варианту осуществления изобретения.
Размер единицы кодирования может быть выражен в формате «ширина×высота» и может составлять 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. Максимальная глубина, показанная на фиг. 11, обозначает общее количество разделений от максимальной единицы кодирования до минимальной единицы декодирования.
Если разрешение высокое, или объем данных велик, то максимальный размер единицы кодирования может быть большим, что не только повышает эффективность кодирования, но также точно отражает особенности изображения. Соответственно, максимальный размер единицы кодирования видеоданных 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, поскольку глубины увеличились до трех уровней посредством тройного разделения максимальной единицы кодирования. При увеличении глубины можно обеспечить точное представление детализированной информации.
На фиг. 12 представлена блок-схема кодера 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 определяет размер единицы преобразования в каждой единице кодирования, из числа единиц кодирования, имеющих древовидную структуру.
На фиг. 13 представлена блок-схема декодера 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 выполняет операции на основе размера единицы преобразования для каждой единицы кодирования.
На фиг. 14 представлена схема, иллюстрирующая более глубокие единицы кодирования согласно глубинам, а также сегмента согласно примерному варианту осуществления изобретения.
Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические единицы кодирования для учета характеристик изображения. Максимальную высоту, максимальную ширину и максимальную глубину единиц кодирования можно адаптивно определить в соответствии с характеристиками изображения или можно установить в индивидуальном порядке в соответствии с вводом пользователя. Размеры более глубоких единиц кодирования, соответствующих тем или иным глубинам, можно определить в соответствии с предварительно определенным максимальным размером единицы кодирования.
В иерархической структуре 600 единиц кодирования согласно примерному варианту осуществления изобретения максимальная высота и максимальная ширина единиц кодирования составляет 64, а максимальная глубина равна 4. Поскольку глубина растет вдоль вертикальной оси иерархической структуры 600, высота и ширина более глубокой единицы кодирования подвергается разделению. Также вдоль горизонтальной оси иерархической структуры 600 показаны единица предсказания и сегменты, являющиеся основой для кодирования с предсказанием каждой более глубокой единицы кодирования.
Другими словами, единица 610 кодирования является максимальной единицей кодирования в иерархической структуре 600, где глубина равна 0, а размер, то есть высота на ширину, составляет 64×64. Глубина растет вдоль вертикальной оси, и имеют место единица 620 кодирования, имеющая размер 32×32 и глубину 1, единица 630 кодирования, имеющая размер 16×16 и глубину 2, единица 640 кодирования, имеющая размер 8×8 и глубину 3 и единица 650 кодирования, имеющая размер 4×4 и глубину 4. Единица 650 кодирования, имеющая размер 4×4 и глубину 4, является минимальной единицей кодирования.
Единица предсказания и сегменты единицы кодирования скомпонованы вдоль горизонтальной оси в соответствии с каждой глубиной. Другими словами, если единица 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.
Единица 650 кодирования, имеющая размер 4×4 и глубину 4, является минимальной единицей кодирования, а также единицей кодирования, имеющей самую большую глубину. Единица предсказания единицы 650 кодирования присваивается только тому сегменту, который имеет размер 4×4. Также единицу предсказания единицы 650 кодирования можно разделить на сегменты 652, имеющие размер 4×2, сегменты 654, имеющие размер 2×4, и сегменты 656, имеющие размер 2×2.
Чтобы определить по меньшей мере одну кодированную глубину единиц кодирования, образующих максимальную единицу 610 кодирования, определитель 120 единицы кодирования, входящий в устройство 100 кодирования видео, выполняет кодирование для единиц кодирования, соответствующих каждой глубине, включенной в максимальную единицу 610 кодирования.
Количество более глубоких единиц кодирования, соответствующих глубинам, в том числе данные в том же самом диапазоне значений и том же размере, возрастает с увеличением глубины. Например, для покрытия данных, которые включены в одну единицу кодирования, соответствующую глубине 1, потребуется четыре единицы кодирования, соответствующие глубине 2. Соответственно, чтобы сравнить результаты кодирования одних и тех же данных согласно глубинам, кодируют единицу кодирования, соответствующую глубине 1, и четыре единицы кодирования, соответствующие глубине 2.
Чтобы выполнить кодирование для текущей глубины из числа различных глубин, можно выбрать минимальную ошибку кодирования для текущей глубины, выполнив кодирование для каждой единицы предсказания в единицах кодирования, соответствующих этой текущей глубине, вдоль горизонтальной оси иерархической структуры 600. В качестве альтернативы можно искать минимальную ошибку кодирования, сравнивая минимальные ошибки кодирования, соответствующие глубинам, путем выполнения кодирования для каждой глубины по мере роста глубины вдоль вертикальной оси иерархической структуры 600. В качестве кодированной глубины и типа сегмента единицы 610 кодирования можно выбрать глубину и сегмент, имеющие минимальную ошибку кодирования в единице 610 кодирования.
На фиг. 15 представлена схема для описания взаимосвязи между единицей 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, а затем можно выбрать единицу преобразования, имеющую минимальную ошибку кодирования.
На фиг. 16 показана схема для описания информации о единицах кодирования, соответствующих кодированной глубине, согласно примерному варианту осуществления изобретения.
Модуль 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 для декодирования в соответствии с каждой более глубокой единицей кодирования.
На фиг. 17 представлена схема более глубоких единиц кодирования, соответствующих тем или иным глубинам, согласно примерному варианту осуществления изобретения.
Для указания на изменение глубины можно использовать информацию о разделении. Информация о разделении указывает, разделяется ли единица кодирования текущей глубины на единицы кодирования большей глубины.
Модуль 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, может быть выполнена операция разделения в соответствии с каждой глубиной вплоть до момента, когда глубина станет равной 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, единица CU_(d-1) кодирования, имеющая глубину d-1, далее не разделяется на большую глубину, и кодированную глубину для единиц кодирования, образующих максимальную единицу 900 кодирования, определяют как d-1, а тип сегмента текущей максимальной единицы 900 кодирования может быть определен как N_(d-1)×N_(d-1). Также, поскольку максимальная глубина составляет d и минимальная единица 980 кодирования, имеющая максимальную глубину d-1, далее не разделяется на большую глубину, информация о разделении для минимальной единицы 480 кодирования не устанавливается.
Единица 999 данных может представлять минимальную единицу для текущей максимальной единицы кодирования. Минимальная единица согласно примерному варианту осуществления изобретения может представлять собой прямоугольную единицу данных, полученную путем разделения минимальной единицы 980 кодирования на 4. Путем выполнения многократного кодирования устройство 100 кодирования видео может выбрать глубину, имеющую минимальную ошибку кодирования, путем сравнения ошибок кодирования согласно глубинам единицы 900 кодирования для определения кодированной глубины, и установки соответствующего типа сегмента и режима предсказания в качестве режима кодирования кодированных данных.
Таким образом, минимальные ошибки кодирования согласно глубинам сравнивают по всем глубинам от 1 до d, и в качестве кодированной глубины может быть определена глубина, имеющая минимальную ошибку кодирования. Кодированную глубину, тип сегмента единицы предсказания и режим предсказания можно закодировать и передать в качестве информации о режиме кодирования. Также, поскольку единица кодирования разделяется, начиная с глубины 0, и до кодированной глубины, только информацию о разделении кодированной глубины устанавливают равной 0, а информацию о разделении глубин, исключая кодированную глубину, устанавливают равной 1.
Модуль 220 извлечения данных изображения и информации о кодировании, находящийся в устройстве 200 декодирования видео, может извлечь и использовать информацию о кодированной глубине и единице предсказания единицы 900 кодирования для декодирования сегмента 912. Устройство 200 декодирования видео может определить глубину, на которой информация о разделении равна 0, в качестве кодированной глубины путем использования информации о разделении согласно глубинам и использовать информацию о режиме кодирования соответствующей глубины в целях декодирования.
На фиг. 18, 19 и 20 представлены схемы для описания взаимосвязи между единицами 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.
Информация о кодировании, касающаяся единиц кодирования, имеющих древовидную структуру, может включать в себя по меньшей мере одну из следующих единиц: единицу кодирования, соответствующую кодированной глубине; единицу преобразования; и минимальную единицу. Единица кодирования, соответствующая кодированной глубине, может включать в себя по меньшей мере единицу предсказания или минимальную единицу, содержащую аналогичную информацию о кодировании, или ту и другую единицу.
Соответственно определяют, включены ли соседние единицы данных в одну и ту же единицу кодирования, соответствующую упомянутой кодированной глубине, путем сравнения информации о кодировании соседних единиц данных. Также определяют соответствующую единицу кодирования, соответствующую кодированной глубине путем использования информации о кодировании из единицы данных, в результате чего можно определить распределение кодированных глубин в максимальной единице кодирования.
Соответственно, если предсказание текущей единицы кодирования основано на информации о кодировании соседних единиц данных, то можно непосредственно обратиться и использовать информацию о кодировании единиц данных в более глубоких единицах кодирования, смежных по отношению к текущей единице кодирования.
В альтернативном варианте, если предсказание текущей единицы кодирования основано на информации о кодировании смежных единиц кодирования, то осуществляется поиск единиц данных, смежных по отношению к текущей единице кодирования, с использованием кодированной информации единиц данных, и найденные смежные единицы кодирования можно будет использовать для предсказания текущей единицы кодирования.
На фиг. 21 представлена схема для описания взаимосвязей между единицей кодирования, единицей предсказания или сегментом и единицей преобразования согласно информации о режиме кодирования, имеющейся в таблице 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, устанавливается, если значение флага размера TU равно 0, и единицу 1344 преобразования, имеющую размер N×N, устанавливают, если значение флага размера TU равно 1.
С другой стороны, в том случае, когда сегмент относится к асимметричному типу, то есть к типу 1332, 1334, 1336 или 1338, единица 1352 преобразования, имеющая размер 2N×2N, устанавливается, если значение флага размера TU равно 0, и единицу 1354 преобразования, имеющую размер N/2×N/2, устанавливают, если значение флага размера TU равно 1.
Соответственно, размер единицы преобразования, соответствующей индексу преобразования, может изменяться в соответствии с типом единицы предсказания или типом сегмента единицы кодирования.
Обратимся к фиг. 21, где флагом размера ТU является флаг, имеющий значение 0 либо 1, но флаг размера TU не обязательно является однобитовым, то есть единица преобразования может быть иерархически разделена согласно древовидной структуре при увеличении значения флага размера TU с нулевого значения.
В этом случае размер единицы преобразования, которая в действительности использовалась, может быть представлен с использованием флага размера TU единицы преобразования согласно примерному варианту осуществления изобретения вместе с максимальным размером и минимальным размером единицы преобразования. Согласно примерному варианту осуществления изобретения устройство 100 кодирования видео способно кодировать информацию о максимальном размере единицы преобразования, информацию о минимальном размере единицы преобразования и максимальный флаг размера TU. Результат кодирования информации о максимальном размере единицы преобразования, информации о минимальном размере единицы преобразования и максимальный флаг размера TU, может быть введен в набор SPS. Согласно примерному варианту осуществления изобретения устройство 200 декодирования видео может декодировать видео, используя информацию о максимальном размере единицы преобразования, информацию о минимальном размере единицы преобразования и максимальный флаг размера TU.
Например, если размер текущей единицы кодирования составляет 64×64, а максимальный размер единицы преобразования составляет 32×32, то тогда размер единицы преобразования может составить 32×32, когда значение флага размера TU равно 0, может составить 16×16, когда значение флага размера TU равно 1, и может составить 8×8, когда значение флага размера TU равно 2.
В другом примере, если размер текущей единицы кодирования составляет 32×32 и минимальный размер единицы преобразования составляет 32×32, то тогда размер единицы преобразования может составить 32×32, когда значение флага размера TU равно 0. Здесь значение флага размера TU не может быть установлено отличным от 0, поскольку размер единицы преобразования не может быть меньше, чем 32×32.
Еще в одном примере, если размер текущей единицы кодирования составляет 64×64 и максимальное значение флага размера ТU равно 1, то значение флага размера ТU может быть 0 или 1. Здесь значение флага размера TU не может быть установлено отличным от 0 или 1.
Таким образом, если определено, что максимальное значение флага размера TU составляет «MaxTransformSizeIndex», минимальный размер единицы преобразования составляет «MinTransformSize», и размер единицы преобразования составляет «RootTuSize», когда значение флага размера TU равно 0, то тогда текущий минимальный размер единицы преобразования «CurrMinTuSize», который может быть определен в текущей единице кодирования, можно определить с помощью уравнения 1.
[Уравнение 1]
∧
CurrMinTuSize=max(MinTransformSize, RootTuSize/(2MaxTransformSizeIndex).
∧
∧
По сравнению с текущим минимальным размером единиц преобразования и «CurrMinTuSize», который можно определить в текущей единице кодирования, размер «RootTuSize» единицы преобразования при значении флага размера TU, равным 0, может обозначать максимальный размер единицы преобразования, который можно выбрать в данной системе. В уравнении 1 «RootTuSize/(2 MaxTransformSizeIndex)» обозначает размер единицы преобразования, когда размер «RootTuSize» единицы преобразования при нулевом значении флага размера TU разделяется столько раз, каково максимальное значение флага размера TU, а «MinTransformSize» обозначает минимальный размер преобразования. Таким образом, текущий минимальный размер «CurrMinTuSize» единицы преобразования может иметь меньшее значение из «RootTuSize/(2MaxTransformSizeIndex)» и «MinTransformSize», которое можно определить в текущей единице кодирования.
Согласно примерному варианту осуществления изобретения максимальный размер единицы преобразования RootTuSize может изменяться в соответствии с типом режима предсказания.
Например, если текущим режимом предсказания является внешний режим, то тогда «RootTuSize» можно определить путем использования уравнения 2, приведенного ниже. В уравнении 2 «MaxTransformSize» обозначает максимальный размер единицы преобразования, а «PUSize» обозначает текущий размер единицы предсказания.
[Уравнение 2]
RootTuSize=min(MaxTransformSize, PUSize).
То есть, если текущим режимом предсказания является внешний режим, то размер «RootTuSize» единицы преобразования при нулевом значении флага размера TU может представлять собой меньшее значение из двух размеров: максимального размера единицы преобразования и текущего размера единицы предсказания.
Если режимом предсказания для текущего сегмента является внутренний режим, то «RootTuSize» можно определить с использованием уравнения 3, приведенного ниже. В уравнении 3 «PartitionSize» обозначает размер текущего сегмента.
[Уравнение 3]
RootTuSize=min(MaxTransformSize, PartitionSize).
То есть, если текущим режимом предсказания является внутренний режим, то размер «RootTuSize» единицы преобразования при нулевом значении флага размера TU может представлять собой меньшее значение из двух размеров: максимального размера единицы преобразования и размера текущего сегмента.
Однако текущий максимальный размер «RootTuSize» единицы преобразования, который изменяется в соответствии с типом режима предсказания в сегменте, является просто примером, а не ограничением.
Согласно примерному варианту осуществления изобретения текущий максимальный размер «RootTuSize» единицы преобразования может быть равен размеру текущей единицы кодирования. Согласно другому примерному варианту осуществления текущий максимальный размер «RootTuSize» единицы преобразования можно определить на основе типа единицы предсказания или типа сегмента текущей единицы предсказания. Например, текущий максимальный размер «RootTuSize» единицы преобразования может указывать размер максимального квадрата, содержащегося в текущей единице предсказания или сегменте.
На фиг. 22 представлена блок-схема алгоритма, иллюстрирующая способ кодирования видео, где используется индекс преобразования на основе единиц кодирования и единиц преобразования, имеющих древовидную структуру, согласно примерному варианту осуществления изобретения.
В операции 1210 текущее изображение разделяют по меньшей мере на одну максимальную единицу кодирования. Максимальная глубина, указывающая общее количество возможных разделений, может быть задана предварительно.
В операции 1220 определяют кодированную глубину для вывода конечного результата кодирования согласно по меньшей мере одной области разделения, которую получают путем разделения области каждой максимальной единицы кодирования согласно глубинам, посредством кодирования по меньшей мере одной области разделения, и определяют единицу кодирования в соответствии с древовидной структурой.
Максимальную единицу кодирования пространственно разделяют с каждым увеличением глубины, и таким образом она разделяется на единицы кодирования с большей глубиной. Каждая единица кодирования может разделяться на единицы кодирования с другой большей глубиной посредством пространственного разделения, выполняемого независимо от соседних единиц кодирования. Кодирование выполняется многократно на каждой единице кодирования согласно глубинам.
Также для каждой более глубокой единицы кодирования определяют единицу преобразования в соответствии с типами сегментов, имеющих минимальную ошибку кодирования. Для определения кодированной глубины с минимальной ошибкой кодирования в каждой максимальной единице кодирования можно измерить ошибки кодирования и сравнить их для всех более глубоких единиц кодирования в соответствии с глубинами.
При определении единицы кодирования, можно определить единицы преобразования, представляющие собой единицы данных, в которых преобразуется единица кодирования. Единицы преобразования можно определить как единицу данных, где минимизируется ошибка из-за преобразования на единице кодирования. Единицы преобразования можно определить таким образом, чтобы они имели одинаковый размер в одной единице кодирования. В результате выполнения преобразования на каждом уровне согласно глубине преобразования в текущей единице кодирования можно определить единицы преобразования на основе древовидной структуры, которые образуют иерархическую структуру между единицами преобразования в одной и той же области в соответствии с глубинами преобразования и не зависят от единиц преобразования в другой области.
В операции 1230 кодированные данные изображения, образующие конечный результат кодирования согласно кодированной глубине, выводят для каждой максимальной единицы кодирования вместе с информацией о кодировании, касающейся кодированной глубины и режима кодирования. Информация о режиме кодирования может включать в себя: информацию, которая указывает кодированную глубину, или информацию о разделении; информацию, которая указывает тип сегмента единицы предсказания; информацию, которая указывает режим предсказания; информацию, которая указывает размер единицы преобразования, а также индекс преобразования. Кодированная информация о режиме кодирования может быть передана в декодер вместе с кодированными данными изображения.
На фиг. 23 представлена блок-схема алгоритма, иллюстрирующая способ декодирования видео, где используется индекс преобразования на основе единиц кодирования и единиц преобразования, имеющих древовидную структуру, согласно примерному варианту осуществления изобретения.
В операции 1310 выполняется прием и синтаксический анализ битового потока кодированного видео.
В операции 1320 из проанализированного битового потока извлекают кодированные данные текущего изображения, выделенные для максимальной единицы кодирования, и информацию о кодированной глубине и режиме кодирования в соответствии с максимальными единицами кодирования. Кодированная глубина каждой максимальной единицы кодирования представляет собой глубину с минимальной ошибкой кодирования в каждой максимальной единице кодирования. При кодировании каждой максимальной единицы кодирования данные изображения кодируют на основе по меньшей мере одной единицы данных, полученной посредством иерархического разделения каждой максимальной единицы кодирования согласно глубинам.
В соответствии с информацией, которая указывает кодированную глубину и режим кодирования, максимальную единицу кодирования можно разделить на единицы кодирования, имеющие древовидную структуру. Каждую из единиц кодирования, имеющих древовидную структуру, определяют в качестве единицы кодирования, соответствующей кодированной глубине, и выполняют оптимальное кодирование, с тем чтобы обеспечить на выходе минимальную ошибку кодирования. Соответственно, можно повысить эффективность кодирования и декодирования изображения посредством декодирования каждого фрагмента кодированных данных изображения в единицах кодирования после определения по меньшей мере одной кодированной глубины в соответствии с единицами кодирования.
В соответствии с индексом преобразования, включенным в информацию о режиме кодирования, можно определить единицы преобразования, имеющие древовидную структуру, в единице кодирования. Например, из индекса преобразования можно считать количество разделений от текущей единицы кодирования до единицы преобразования. В другом варианте осуществления изобретения можно определить, разделяется ли текущая единица кодирования на единицы преобразования более низкого уровня, и тогда структура единиц преобразования, имеющих древовидную структуру, может быть окончательно считана из строки бит, которая указывает, выполняется ли разделение от единицы преобразования самого верхнего уровня до единицы преобразования более низкого уровня для каждой области текущей единицы кодирования.
В операции 1330 данные изображения из каждой максимальной единицы кодирования декодируют на основе информации о кодированной глубине и режиме кодирования в соответствии с максимальными единицами кодирования. Декодированные данные изображения могут воспроизводиться устройством воспроизведения, могут быть сохранены на носителе данных или переданы через сеть.
Приведенные в качестве примера варианты осуществления изобретения могут быть записаны в виде компьютерных программ и могут быть реализованы в цифровых компьютерах общего назначения, которые исполняют эти программы, используя считываемый компьютером носитель записи. Примеры считываемого компьютером носителя записи включают в себя магнитные запоминающие среды (например, ПЗУ (ROM), гибкие диски, жесткие диски и т.д.) и оптические носители записи (например, CD-ROM или DVD). В качестве альтернативы примерные варианты осуществления изобретения могут быть воплощены в виде считываемых компьютером сигналов в среде передачи, таких как сигналы данных, для передачи по компьютерной сети, например Интернет.
Устройства кодирования видео или устройства декодирования видео согласно приведенным в качестве примера вариантам осуществления изобретения могут включать в себя шину, подсоединенную к каждому модулю указанного устройства, по меньшей мере один процессор, соединенный с указанной шиной, который исполняет программные команды, и память, подсоединенную к шине, в которой хранятся команды, принятые сообщения и созданные сообщения.
Хотя данное изобретение было подробно показано и описано со ссылками на примерные варианты его осуществления, специалистам в данной области техники должно быть очевидно, что в него могут быть внесены различные изменения по форме и в деталях при том условии, что они не выходят за рамки существа и объема изобретения, определенного прилагаемой формулой изобретения. Приведенные в качестве примера варианты осуществления изобретения следует рассматривать лишь в описательной смысле, но не как ограничения. Таким образом, объем изобретения определяется не вышеприведенным подробным описанием изобретения, а прилагаемой формулой изобретения, причем все разночтения в указанном объеме следует трактовать как входящие в состав настоящего изобретения.