СПОСОБ КОДИРОВАНИЯ ВИДЕО С ИСПОЛЬЗОВАНИЕМ РЕГУЛИРОВАНИЙ СМЕЩЕНИЯ СОГЛАСНО КЛАССИФИКАЦИИ ПИКСЕЛОВ И УСТРОЙСТВО ДЛЯ ЭТОГО, СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ВИДЕО ДЛЯ ЭТОГО
METHOD OF VIDEO CODING USING OFFSET REGULATIONS ACCORDING TO PIXEL CLASSIFICATION AND DEVICE FOR THIS, METHOD AND DEVICE OF VIDEO DECODING FOR THIS

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к кодированию и декодированию видео, которые выполняются таким образом, чтобы минимизировать ошибку между исходным изображением и восстановленным изображением.
УРОВЕНЬ ТЕХНИКИ
По мере того как разрабатываются и предоставляются аппаратные средства для воспроизведения и сохранения высококачественного видеоконтента высокого разрешения, растет потребность в видеокодеке для эффективного кодирования или декодирования высококачественного видеоконтента высокого разрешения. В традиционном видеокодеке видео кодируется согласно ограниченному способу кодирования на основе макроблока, имеющего предварительно определенный размер.
Данные изображений пространственной области преобразуются в коэффициенты частотной области посредством использования преобразования частоты. Видеокодек разбивает изображение на блоки, имеющие предварительно определенные размеры, выполняет дискретное косинусное преобразование (DCT) для каждого блока и кодирует частотные коэффициенты в единицах блоков, чтобы выполнять быструю арифметическую операцию преобразования частоты. Коэффициенты частотной области являются легко сжимаемыми типами по сравнению с данными изображений пространственной области. В частности, пикселное значение изображения пространственной области выражается как ошибка прогнозирования через взаимное прогнозирование или внутреннее прогнозирование видеокодека, и таким образом, если преобразование частоты выполняется для ошибки прогнозирования, данные могут быть преобразованы в 0. Видеокодек заменяет данные, которые возникают непрерывно и многократно, на данные, имеющие небольшие размеры, за счет этого уменьшая объем данных.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
Настоящее изобретение предоставляет способ и устройство кодирования видео, а также способ и устройство декодирования видео для того, чтобы формировать восстановленное изображение, имеющее минимальную ошибку относительно исходного изображения.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
Согласно аспекту настоящего изобретения предусмотрен способ декодирования видео, включающий в себя: синтаксический анализ информации объединения смещений, указывающей то, являются или нет параметры смещения текущего блока и, по меньшей мере, одного соседнего блока из числа блоков видео идентичными друг другу, из принимаемого потока битов; восстановление типа смещения и значений смещения из числа параметров смещения текущего блока на основе информации объединения смещений; определение класса края или полосы пикселных значений восстановленного пиксела текущего блока на основе типа края или типа полосы пикселных значений текущего блока, указывающего тип смещения; и определение значения смещения, соответствующего классу края или полосе пикселных значений восстановленного пиксела, из значений смещения и регулирование пикселного значения восстановленного пиксела согласно значению смещения.
ПРЕИМУЩЕСТВА ИЗОБРЕТЕНИЯ
В ходе кодирования видео и декодирования видео, пикселы классифицируются согласно характеристике изображения, такой тип края, смещение определяется посредством использования среднего значения ошибки между пикселами, имеющими идентичную характеристику в идентичной группе, и восстановленные пикселы регулируются на предмет смещения, за счет чего минимизируется ошибка между исходным изображением и восстановленным изображением.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Вышеописанные и другие признаки и преимущества настоящего изобретения должны становиться более очевидными посредством подробного описания примерных вариантов осуществления со ссылкой на прилагаемые чертежи, из которых:
Фиг. 1 является блок-схемой устройства кодирования видео согласно варианту осуществления настоящего изобретения;
Фиг. 2 является блок-схемой устройства декодирования видео согласно варианту осуществления настоящего изобретения;
Фиг. 3 является таблицей типов краев и длин для классификации пикселов согласно варианту осуществления настоящего изобретения;
Фиг. 4 является блок-схемой последовательности операций способа, иллюстрирующей процесс кодирования значений смещения, согласно варианту осуществления настоящего изобретения;
Фиг. 5 является схемой возможных вариантов опорных блоков, используемых для того, чтобы объединять параметры смещения, согласно варианту осуществления настоящего изобретения;
Фиг. 6 является блок-схемой последовательности операций способа, иллюстрирующей способ кодирования видео, согласно варианту осуществления настоящего изобретения;
Фиг. 7 является блок-схемой последовательности операций способа, иллюстрирующей способ декодирования видео, согласно варианту осуществления настоящего изобретения;
Фиг. 8 является блок-схемой устройства кодирования видео на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения;
Фиг. 9 является блок-схемой устройства декодирования видео на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения;
Фиг. 10 является схемой для описания принципа единиц кодирования согласно варианту осуществления настоящего изобретения;
Фиг. 11 является блок-схемой кодера изображений на основе единиц кодирования согласно варианту осуществления настоящего изобретения;
Фиг. 12 является блок-схемой декодера изображений на основе единиц кодирования согласно варианту осуществления настоящего изобретения;
Фиг. 13 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и сегменты согласно варианту осуществления настоящего изобретения;
Фиг. 14 является схемой для описания взаимосвязи между единицей кодирования и единицами преобразования согласно варианту осуществления настоящего изобретения;
Фиг. 15 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно варианту осуществления настоящего изобретения;
Фиг. 16 является схемой более глубоких единиц кодирования согласно глубинам, согласно варианту осуществления настоящего изобретения;
Фиг. 17-19 являются схемами для описания взаимосвязи между единицами кодирования, единицами прогнозирования и единицами преобразования согласно варианту осуществления настоящего изобретения; и
Фиг. 20 является схемой для описания взаимосвязи между единицей кодирования, единицей прогнозирования или сегментом и единицей преобразования согласно информации режима кодирования по таблице 1.
ОПТИМАЛЬНЫЙ РЕЖИМ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Согласно аспекту настоящего изобретения предусмотрен способ декодирования видео, включающий в себя: синтаксический анализ информации объединения смещений, указывающей то, являются или нет параметры смещения текущего блока и, по меньшей мере, одного соседнего блока из числа блоков видео идентичными друг другу, из принимаемого потока битов; восстановление типа смещения и значений смещения из числа параметров смещения текущего блока на основе информации объединения смещений; определение класса края или полосы пикселных значений восстановленного пиксела текущего блока на основе типа края или типа полосы пикселных значений текущего блока, указывающего тип смещения; и определение значения смещения, соответствующего классу края или полосе пикселных значений восстановленного пиксела, из значений смещения и регулирование пикселного значения восстановленного пиксела согласно значению смещения.
Согласно аспекту настоящего изобретения определение класса края или полосы пикселных значений восстановленного пиксела может включать в себя: в случае, если тип смещения текущего блока представляет собой тип края, сравнение пикселных значений текущего восстановленного пиксела и соседних пикселов относительно текущего восстановленного пиксела, расположенного согласно типу края и размеру края, и определение класса края, указывающего то, является или нет текущий восстановленный пиксел краевым пикселом, при этом регулирование пикселного значения восстановленного пиксела согласно значению смещения включает в себя: в случае, если значения смещения содержат значения смещения, соответствующие классам краев, выделяемым текущему типу смещения, определение значения смещения, соответствующего классу края текущего восстановленного пиксела, из значений смещения.
Согласно аспекту настоящего изобретения определение класса края или полосы пикселных значений восстановленного пиксела может включать в себя: в случае, если тип смещения текущего блока представляет собой тип полосы пикселных значений, определение полосы пикселных значений, указывающей диапазон пикселных значений, которому принадлежит пикселное значение текущего восстановленного пиксела, из множества полос, при этом регулирование пикселного значения восстановленного пиксела согласно значению смещения включает в себя: в случае, если значения смещения включают в себя значения смещения, соответствующие полосам пикселных значений, выделяемым текущему типу смещения, определение значения смещения, соответствующего полосе пикселных значений текущего восстановленного пиксела, из значений смещения.
Согласно аспекту настоящего изобретения восстановление типа смещения и значений смещения может включать в себя: если, по меньшей мере, один параметр смещения левого блока и верхнего блока относительно текущего блока является идентичным параметру смещения текущего блока на основе информации объединения смещений, восстановление параметра смещения текущего блока как идентичного, по меньшей мере, одному параметру смещения левого блока и верхнего блока относительно текущего блока.
Согласно аспекту настоящего изобретения восстановление типа смещения и значений смещения может включать в себя: если, по меньшей мере, один параметр смещения левого блока и верхнего блока относительно текущего блока отличается от параметра смещения текущего блока на основе информации объединения смещений, синтаксический анализ и восстановление параметра смещения текущего блока из принимаемого потока битов.
Согласно аспекту настоящего изобретения восстановление типа смещения и значений смещения содержит: выполнение прогнозирования и восстановления для параметров смещения, по меньшей мере, одного цветового компонента из компонента сигнала яркости и компонентов сигнала цветности текущего блока посредством обращения к параметрам смещения друг друга из параметров смещения. Согласно аспекту настоящего изобретения, значение смещения является средним значений разностей между восстановленными пикселами и исходными пикселами, включенными в идентичный класс края или идентичную полосу пикселных значений.
Согласно другому аспекту настоящего изобретения предусмотрен способ кодирования видео, содержащий: определение класса края согласно типу края текущего блока из числа блоков видео или полосы пикселных значений согласно его типу полосы пикселных значений; определение значения смещения, соответствующего классу края или полосе пикселных значений, посредством использования значений разностей между восстановленными пикселами и исходными пикселами, включенными в класс края или полосу пикселных значений; и когда параметр смещения каждого блока содержит тип смещения, указывающий тип края или тип полосы пикселных значений, и смещение, соответствующее классу края или полосе пикселных значений, на основе идентификационных данных между параметрами смещения текущего блока и, по меньшей мере, одного соседнего блока, кодирование информации объединения смещений текущего блока, указывающей то, кодируется или нет параметр смещения текущего блока.
Согласно аспекту настоящего изобретения определение класса края и полосы пикселных значений содержит: в случае, если смещение текущего блока определяется согласно типу края, сравнение пикселных значений текущего восстановленного пиксела и соседних пикселов относительно текущего восстановленного пиксела, расположенного согласно типу края и размеру края, и определение класса края, указывающего то, является или нет текущий восстановленный пиксел краевым пикселом.
Согласно аспекту настоящего изобретения определение класса края и полосы пикселных значений содержит: в случае, если смещение текущего блока определяется согласно типам полос пикселных значений восстановленных пикселов, определение полосы пикселных значений, указывающей диапазон пикселных значений, которому принадлежит пикселное значение текущего восстановленного пиксела, из множества полос.
Согласно аспекту настоящего изобретения кодирование информации объединения смещений текущего блока содержит: если, по меньшей мере, один параметр смещения левого блока и верхнего блока относительно текущего блока является идентичным параметру смещения текущего блока, кодирование информации объединения смещений за исключением параметра смещения текущего блока.
Согласно аспекту настоящего изобретения определение значения смещения, соответствующего классу края или полосе пикселных значений, содержит: определение значения смещения, которое является средним значений разностей между восстановленными пикселами и исходными пикселами, включенными в идентичный класс края или идентичную полосу пикселных значений.
Согласно другому аспекту настоящего изобретения предусмотрено устройство декодирования видео, содержащее: модуль синтаксического анализа параметров смещения для синтаксического анализа информации объединения смещений, указывающей то, являются или нет параметры смещения текущего блока и, по меньшей мере, одного соседнего блока из числа блоков видео идентичными друг другу, из принимаемого потока битов, восстановления типа смещения и значений смещения из числа параметров смещения текущего блока на основе информации объединения смещений; и модуль регулирования смещения для определения класса края или полосы пикселных значений восстановленного пиксела на основе типа края или типа полосы пикселных значений текущего блока, указывающего тип смещения, и определения значения смещения, соответствующего классу края или полосе пикселных значений восстановленного пиксела, из значений смещения и регулирование пикселного значения восстановленного пиксела согласно значению смещения.
Согласно другому аспекту настоящего изобретения предусмотрено устройство кодирования видео, содержащее: модуль определения смещения для определения класса края согласно типу края текущего блока из числа блоков видео или полосы пикселных значений согласно его типу полосы пикселных значений и определения значения смещения, соответствующего классу края или полосе пикселных значений, посредством использования значений разностей между восстановленными пикселами и исходными пикселами, включенными в класс края или полосу пикселных значений; и модуль кодирования параметров смещения для, когда параметр смещения каждого блока содержит тип смещения, указывающий тип края или тип полосы пикселных значений, и смещение, соответствующее классу края или полосе пикселных значений, на основе идентификационных данных между параметрами смещения текущего блока и, по меньшей мере, одного соседнего блока, кодирования информации объединения смещений текущего блока, указывающей то, кодируется или нет параметр смещения текущего блока.
Согласно другому аспекту настоящего изобретения предусмотрен машиночитаемый носитель записи, имеющий записанную программу для осуществления способа декодирования видео.
Согласно другому аспекту настоящего изобретения предусмотрен машиночитаемый носитель записи, имеющий записанную программу для осуществления способа кодирования видео.
ОПТИМАЛЬНЫЙ РЕЖИМ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Далее настоящее изобретение описывается более подробно со ссылкой на прилагаемые чертежи, на которых показаны примерные варианты осуществления изобретения.
При использовании в данном документе, термин "и/или" включает в себя все без исключения комбинации одного или нескольких ассоциированных перечисленных элементов.
Ниже описываются способ кодирования видео и способ декодирования видео, которые осуществляются посредством регулирования смещения согласно классификации пикселов согласно варианту осуществления со ссылкой на фиг. 1-7. Кроме того, ниже описывается вариант осуществления, в котором способ кодирования видео и способ декодирования видео на основе единиц кодирования, имеющих древовидную структуру, используют регулирование смещения согласно классификации пикселов согласно варианту осуществления, в отношении типов пикселных смещений или пикселных полос и фиг. 20. В дальнейшем в этом документе, "изображение" может означать неподвижное изображение видео, его движущееся изображение, т.е. само видео.
Во-первых, ниже описываются способ кодирования видео и способ декодирования видео, которые осуществляются посредством регулирования смещения согласно классификации пикселов согласно варианту осуществления, со ссылкой на фиг. 1-7.
Фиг. 1 является блок-схемой устройства 10 кодирования видео согласно варианту осуществления настоящего изобретения.
Устройство 10 кодирования видео согласно варианту осуществления включает в себя модуль 12 определения смещения и модуль 14 кодирования параметров смещения.
Устройство 10 кодирования видео согласно варианту осуществления принимает изображения видео, разбивает каждое изображение на блоки и кодирует изображения для каждого блока. Тип блока может представлять собой квадрат или прямоугольник и может представлять собой произвольную геометрическую форму. Тип блока не ограничивается единицей данных, имеющей равномерный размер. Блок согласно варианту осуществления может быть максимальной единицей кодирования, единицей кодирования и т.д., из единиц кодирования в древовидной структуре. Ниже описываются способы кодирования и декодирования видео на основе единиц кодирования в древовидной структуре со ссылкой на фиг. 8-20.
Устройство 10 кодирования видео согласно варианту осуществления может выполнять внутреннее прогнозирование, взаимное прогнозирование, преобразование и квантование для каждого блока изображений, формировать выборки, выполнять энтропийное кодирование для выборок и выводить выборки в потоке битов.
Устройство 10 кодирования видео согласно варианту осуществления может кодировать значение смещения, указывающее значение разности между пикселом исходного изображения (исходным пикселом) и пикселом восстановленного изображения (восстановленным пикселом), чтобы минимизировать ошибку между исходным пикселом и восстановленным пикселом.
Устройство 10 кодирования видео согласно варианту осуществления может определять значение смещения для каждой предварительно определенной единицы данных, такой как изображение, серия последовательных макроблоков, блок и т.д. Параметр смещения, включающий в себя значение смещения и тип смещения, может быть кодирован для каждой предварительно определенной единицы данных.
Модуль 12 определения смещения согласно варианту осуществления определяет тип края или тип полосы пикселных значений текущего блока. Модуль 12 определения смещения может определять то, целесообразно или нет классифицировать пикселы текущего блока на основе типа края или типа полосы пикселных значений, согласно пикселной характеристике текущего блока.
Тип края согласно варианту осуществления может указывать направления и размеры краев, сформированных посредством восстановленного пиксела и соседних пикселов. Кроме того, когда общая полоса диапазона пикселных значений текущего блока разбивается на предварительно определенное число полос, тип полосы пикселных значений согласно варианту осуществления может указывать общее число полос пикселных значений, диапазон каждой полосы и т.д.
В случае если значение смещения текущего блока определяется согласно типу края, модуль 12 определения смещения согласно варианту осуществления может определять класс края, который принадлежит каждому восстановленному пикселу. Класс края согласно варианту осуществления указывает то, является или нет текущий восстановленный пиксел пикселом края. Например, класс края может указывать то, текущий восстановленный пиксел является экстремальной точкой края, является краевым пикселом, составляющим край, или не является пикселом, составляющим край, и т.д.
В случае если значение смещения текущего блока определяется согласно типу края, модуль 12 определения смещения согласно варианту осуществления может сравнивать пикселное значение текущего восстановленного пиксела с пикселными значениями соседних пикселов, расположенных рядом с текущим восстановленным пикселом согласно направлениям и размерам краев, и определять класс края, указывающий то, является или нет текущий восстановленный пиксел краевым пикселом.
В случае если значение смещения текущего блока определяется согласно типу полосы пикселных значений, модуль 12 определения смещения согласно варианту осуществления может определять полосу пикселных значений, которая принадлежит каждому восстановленному пикселу. Полоса пикселных значений согласно варианту осуществления указывает полосу пикселных значений, которой принадлежит пикселное значение текущего восстановленного пиксела, из множества полос пикселных значений. Множество полос пикселных значений может разбиваться согласно равному диапазону пикселных значений. Кроме того, множество полос пикселных значений может разбиваться согласно неравному диапазону пикселных значений. Иными словами, модуль 12 определения смещения может определять полосу пикселных значений, указывающую диапазон пикселных значений, которому принадлежит пикселное значение текущего восстановленного пиксела, из множества полос пикселных значений.
Модуль 12 определения смещения согласно варианту осуществления определяет значение смещения, соответствующее классу края или полосе пикселных значений восстановленного пиксела, посредством использования значений разностей между восстановленными пикселами и исходными пикселами, включенными в класс края или полосу пикселных значений, идентичный классу края или полосе пикселных значений восстановленного пиксела.
Модуль 12 определения смещения согласно варианту осуществления может среднее значений разностей между восстановленными пикселами и исходными пикселами, включенными в класс края, идентичный текущему классу края, или в полосу пикселных значений, идентичную текущей полосе пикселных значений, т.е. среднюю ошибку восстановленных пикселов, в качестве значения смещения, соответствующего текущему классу края или текущей полосе пикселных значений.
Модуль 12 определения смещения может определять класс края или полосу пикселных значений для каждого восстановленного пиксела в текущем блоке. Соответственно, модуль 12 определения смещения может определять каждое значение смещения, соответствующее каждому классу края блока. Кроме того, модуль 12 определения смещения может определять каждое значение смещения, соответствующее каждой полосе пикселных значений блока.
Модуль 14 кодирования параметров смещения согласно варианту осуществления может кодировать тип смещения и значение смещения каждого блока. Тип смещения согласно варианту осуществления указывает тип края каждого блока или его тип полосы пикселных значений.
Параметр смещения каждого блока может включать в себя тип смещения и значение смещения каждого блока. Если тип смещения представляет собой тип края, параметр смещения может включать в себя значения смещения, соответствующие каждому классу края. Кроме того, если тип смещения представляет собой тип полосы пикселных значений, параметр смещения может включать в себя значения смещения, соответствующие каждой полосе пикселных значений. Иными словами, модуль 14 кодирования параметров смещения может кодировать параметр смещения для каждого блока.
Модуль 14 кодирования параметров смещения согласно варианту осуществления может кодировать информацию объединения смещений текущего блока, указывающую то, кодировать или нет параметр смещения текущего блока, на основе идентификационных данных параметров смещения текущего блока и, по меньшей мере, одного соседнего блока.
Если, по меньшей мере, один из параметров смещения левого блока и правого блока относительно текущего блока является идентичным параметру смещения текущего блока, модуль 14 кодирования параметров смещения согласно варианту осуществления может кодировать информацию объединения смещений за исключением параметра смещения текущего блока.
Если параметры смещения левого блока и правого блока относительно текущего блока отличаются от параметра смещения текущего блока, модуль 14 кодирования параметров смещения согласно варианту осуществления может кодировать информацию объединения смещений и параметр смещения текущего блока.
Если частичная информация параметров смещения соседнего блока является идентичной параметру смещения текущего блока, модуль 14 кодирования параметров смещения согласно варианту осуществления может кодировать информацию объединения смещений в один бит и кодировать только информацию параметра смещения текущего блока за исключением идентичной частичной информации параметров смещения соседнего блока для параметра смещения текущего блока. Например, если текущий блок и соседний блок являются идентичными с точки зрения значений смещения, информация объединения смещений в один бит и тип смещения могут быть кодированы для текущего блока.
Модуль 14 кодирования параметров смещения согласно варианту осуществления может кодировать разностную информацию между значениями смещения соседнего блока и текущим смещением.
Если смещение равно 0, модуль 14 кодирования параметров смещения согласно варианту осуществления может кодировать параметр смещения, отличный от смещения.
Модуль 14 кодирования параметров смещения согласно варианту осуществления может прогнозировать и кодировать, по меньшей мере, один цветовой компонент из компонента сигнала яркости и компонентов сигнала цветности текущего блока посредством обращения к параметрам смещения других цветовых компонентов. Например, параметры смещения компонент сигнала яркости и компоненты сигнала цветности прогнозируются и кодируются посредством совместного использования или взаимного обращения к параметрам смещения. В качестве другого примера, параметры смещения первого компонента сигнала цветности и второго компонента сигнала цветности прогнозируются и кодируются посредством совместного использования или взаимного обращения к параметрам смещения.
Устройство 10 кодирования видео согласно варианту осуществления может включать в себя центральный процессор (не показан), который, в общем, управляет модулем 12 определения смещения и модулем 14 кодирования параметров смещения. Альтернативно, модуль 12 определения смещения и модуль 14 кодирования параметров смещения могут управляться посредством соответствующих процессоров (не показаны), которые работают интерактивно, и за счет этого устройство 10 кодирования видео может работать в целом. Альтернативно, модуль 12 определения смещения и модуль 14 кодирования параметров смещения могут управляться посредством управления внешнего процессора (не показан) устройства 10 кодирования видео согласно варианту осуществления.
Устройство 10 кодирования видео согласно варианту осуществления может включать в себя, по меньшей мере, один модуль хранения данных (не показан), который сохраняет входные и выходные данные модуля 12 определения смещения и модуля 14 кодирования параметров смещения. Устройство 10 кодирования видео может включать в себя модуль управления запоминающим устройством (не показан), который управляет вводом и выводом данных модуля хранения данных (не показан).
Устройство 10 кодирования видео согласно варианту осуществления может управляться в связи с внутренним процессором кодирования видео, установленным в нем, или внешним процессором кодирования видео так, чтобы выводить результат кодирования видео, в силу этого выполняя операцию кодирования видео, включающую в себя преобразование. Внутренний процессор кодирования видео устройства 10 кодирования видео согласно варианту осуществления может включать в себя отдельный процессор, а также устройство 10 кодирования видео, центральное управляющее устройство или графическое управляющее устройство может включать в себя модуль обработки кодирования видео для того, чтобы реализовывать базовые операции кодирования видео.
Фиг. 2 является блок-схемой устройства 20 декодирования видео согласно варианту осуществления настоящего изобретения.
Устройство 20 декодирования видео согласно варианту осуществления включает в себя модуль 22 синтаксического анализа параметров смещения и модуль 24 регулирования смещения.
Устройство 20 декодирования видео согласно варианту осуществления принимает поток битов, включающий в себя кодированные видеоданные. Устройство 20 декодирования видео может синтаксически анализировать видеовыборки, кодированные из принимаемого потока битов, выполнять энтропийное кодирование, обратное квантование, обратное преобразование и прогнозирование и компенсацию движения для каждого блока изображений, формировать восстановленные пикселы и формировать полученное в результате восстановленное изображение. Кроме того, устройство 20 декодирования видео согласно варианту осуществления может принимать значение смещения, указывающее значение разности между исходным пикселом и восстановленным пикселом, чтобы минимизировать ошибку между исходным изображением и восстановленным изображением.
Модуль 22 синтаксического анализа параметров смещения согласно варианту осуществления может синтаксически анализировать информацию объединения смещений, указывающую то, являются или нет параметры смещения текущего блока и, по меньшей мере, одного соседнего блока из числа блоков видео идентичными друг другу, из потока битов.
Модуль 22 синтаксического анализа параметров смещения согласно варианту осуществления может восстанавливать типы смещений и значения смещения из параметров смещения текущего блока на основе информации объединения смещений текущего блока.
Например, модуль 22 синтаксического анализа параметров смещения может синтаксически анализировать и восстанавливать параметр смещения текущего блока из потока битов, если параметры смещения текущего блока и, по меньшей мере, одного соседнего блока отличаются друг от друга на основе информации объединения смещений текущего блока. Тем не менее, модуль 22 синтаксического анализа параметров смещения может восстанавливать параметр смещения текущего блока посредством использования параметра смещения, по меньшей мере, одного соседнего блока без синтаксического анализа параметра смещения текущего блока из потока битов, если параметры смещения текущего блока и, по меньшей мере, одного соседнего блока являются идентичными друг другу на основе информации объединения смещений текущего блока.
Модуль 24 регулирования смещения согласно варианту осуществления может определять класс края или полосу пикселных значений восстановленного пиксела на основе типа края или типа полосы пикселных значений текущего блока, указывающего тип смещения текущего блока.
Модуль 24 регулирования смещения согласно варианту осуществления может определять значение смещения, соответствующее классу края или полосе пикселных значений восстановленного пиксела, из значений смещения текущего блока. Модуль 24 регулирования смещения может регулировать пикселное значение восстановленного пиксела посредством смещения.
Модуль 24 регулирования смещения согласно варианту осуществления может определять класс края или полосу пикселных значений для каждого восстановленного пиксела текущего блока. Соответственно, модуль 24 регулирования смещения может определять значение смещения, соответствующее определенному классу края или полосе пикселных значений для каждого восстановленного пиксела, из восстановленных значений смещения и регулировать каждый восстановленный пиксел посредством смещения.
Если тип смещения текущего блока представляет собой тип края, модуль 24 регулирования смещения согласно варианту осуществления может сравнивать пикселные значения пиксела текущего блока и соседние пикселы относительно текущего восстановленного пиксела, расположенного согласно направлению края и размеру края, и определять класс края текущего восстановленного пиксела. Соответственно, модуль 24 регулирования смещения может определять значение смещения, соответствующее классу края текущего восстановленного пиксела, из значений смещения. Модуль 24 регулирования смещения может вычислять среднее значений разностей между восстановленными пикселами, включенными в класс края, идентичный текущему классу края, и исходными пикселами и определять среднее в качестве смещения, соответствующего текущему восстановленному пикселу.
Если тип смещения текущего блока представляет собой тип полосы пикселных значений, модуль 24 регулирования смещения согласно варианту осуществления может определять полосу пикселных значений, которой принадлежит пикселное значение текущего восстановленного пиксела, из множества полос. Соответственно, модуль 24 регулирования смещения может определять значение смещения, соответствующее полосе пикселных значений текущего восстановленного пиксела, из числа восстановленных значений смещения. Значение смещения, выбранное посредством модуля 24 регулирования смещения из восстановленных значений смещения, может быть средним значений разностей между восстановленными пикселами, включенными в полосу пикселных значений, идентичную текущей полосе пикселных значений, и исходными пикселами.
Если говорить подробнее о модуле 22 регулирования параметров смещения, если, по меньшей мере, один из параметров смещения левого блока и правого блока относительно текущего блока является идентичным параметру смещения текущего блока на основе информации объединения смещений, параметр смещения текущего блока может быть восстановлен как идентичный, по меньшей мере, одному из параметров смещения левого блока и правого блока относительно текущего блока. Блок, имеющий параметр смещения, к которому следует обращаться, может быть определен из числа соседних блоков, на основе информации объединения смещений.
Кроме того, если параметры смещения левого блока и правого блока относительно текущего блока отличаются от параметра смещения текущего блока на основе информации объединения смещений, модуль 22 регулирования параметров смещения может синтаксически анализировать и восстанавливать параметр смещения текущего блока из потока битов.
Кроме того, если информация объединения смещений в один бит, синтаксически проанализированная из потока битов, указывает то, что частичная информация параметров смещения соседнего блока является идентичной параметру смещения текущего блока, модуль 22 регулирования параметров смещения может восстанавливать частичную информацию параметра смещения текущего блока посредством использования частичной информации параметров смещения соседнего блока. Оставшаяся информация параметра смещения текущего блока может быть синтаксически проанализирована и восстановлена из потока битов.
Кроме того, модуль 22 регулирования параметров смещения может синтаксически анализировать и восстанавливать дифференциальные значения для значений смещения из потока битов. В этом случае, модуль 22 регулирования параметров смещения может комбинировать разностную информацию между значениями смещения соседнего блока и значениями смещения текущего блока и прогнозировать и восстанавливать значения смещения текущего блока.
Кроме того, модуль 22 регулирования параметров смещения может восстанавливать значение смещения в 0, если параметр смещения не включает в себя, по меньшей мере, одно значение смещения.
Модуль 22 синтаксического анализа параметров смещения согласно варианту осуществления может прогнозировать и восстанавливать параметр смещения, по меньшей мере, одного цветового компонента из компонента сигнала яркости и компонентов сигнала цветности текущего блока посредством взаимно-обратного обращения к параметрам смещения цветовых компонентов. Например, параметры смещения компонента сигнала яркости и компонентов сигнала цветности могут быть восстановлены посредством совместного использования или обращения к параметрам смещения. В качестве другого примера, параметры смещения первого компонента сигнала цветности и второго компонента сигнала цветности могут быть прогнозированы и восстановлены посредством совместного использования или обращения к параметрам смещения.
Устройство 20 декодирования видео согласно варианту осуществления может включать в себя центральный процессор (не показан), который, в общем, управляет модулем 22 синтаксического анализа параметров смещения и модулем 24 регулирования смещения. Альтернативно, модуль 22 синтаксического анализа параметров смещения и модуль 24 регулирования смещения могут управляться посредством соответствующих процессоров (не показаны), которые работают интерактивно, и за счет этого устройство 20 декодирования видео может работать в целом. Альтернативно, модуль 22 синтаксического анализа параметров смещения и модуль 24 регулирования смещения могут управляться посредством управления внешнего процессора (не показан) устройства 20 декодирования видео согласно варианту осуществления.
Устройство 20 декодирования видео согласно варианту осуществления может включать в себя, по меньшей мере, один модуль хранения данных (не показан), который сохраняет входные и выходные данные модуля 22 синтаксического анализа параметров смещения и модуля 24 регулирования смещения. Устройство 20 декодирования видео может включать в себя модуль управления запоминающим устройством (не показан), который управляет вводом и выводом данных модуля хранения данных (не показан).
Устройство 20 декодирования видео согласно варианту осуществления может управляться в связи с внутренним процессором декодирования видео, установленным в нем, или внешним процессором декодирования видео для того, чтобы восстанавливать видео через декодирование видео, в силу этого выполняя операцию декодирования видео. Внутренний процессор декодирования видео устройства 20 декодирования видео согласно варианту осуществления может включать в себя отдельный процессор, а также устройство 20 декодирования видео, центральное управляющее устройство или графическое управляющее устройство может включать в себя модуль обработки декодирования видео для того, чтобы реализовывать базовые операции декодирования видео.
Устройство 10 кодирования видео и устройство 20 декодирования видео согласно варианту осуществления используют дискретизированное адаптивное смещение (SAO) таким образом, чтобы минимизировать ошибку между исходным пикселом и восстановленным пикселом. Посредством использования SAO согласно варианту осуществления, устройство 10 кодирования видео классифицирует пикселы каждого блока изображений на предварительно определенные группы пикселов, выделяет каждый пиксел для соответствующей группы пикселов и кодирует значение смещения, указывающее среднее значение ошибок между исходными пикселами и восстановленными пикселами, включенными в идентичную группу пикселов.
Выборки кодируются и передаются между устройством 10 кодирования видео и устройством 20 декодирования видео. Иными словами, устройство 10 кодирования видео может кодировать выборки и передавать кодированные выборки в качестве типов потоков битов, и устройство 20 декодирования видео может синтаксически анализировать и восстанавливать выборки из принимаемого потока битов. Устройство 10 кодирования видео и устройство 20 декодирования видео согласно варианту осуществления регулируют значения восстановленных пикселов согласно значению смещения, определенному через классификацию пикселов, и кодируют/декодируют параметры смещения таким образом, чтобы минимизировать ошибку между исходным пикселом и восстановленным пикселом. Передача служебных сигналов, которая заключает в себе кодирование, передачу, прием и декодирование значений смещения в качестве параметров смещения, выполняется между устройством 10 кодирования видео и устройством 20 декодирования видео.
Следовательно, посредством использования SAO согласно варианту осуществления, устройство 20 декодирования видео может декодировать принимаемый поток битов, формировать восстановленные пикселы для каждого блока изображений, восстанавливать значения смещения из потока битов и регулировать восстановленные пикселы посредством соответствующих смещений, за счет этого формируя восстановленное изображение, имеющее минимальную ошибку относительно исходного изображения.
В дальнейшем в этом документе описываются варианты осуществления классификации пикселов в группы пикселов для SAO согласно варианту осуществления. Посредством использования SAO согласно варианту осуществления пикселы могут быть классифицированы (i) согласно типам краев, составляющим восстановленные пикселы, или (ii) согласно их типам полос пикселных значений. То, классифицировать пикселы согласно типам краев или согласно типам полос пикселных значений, может быть задано посредством типов смещений согласно варианту осуществления.
Далее описывается вариант осуществления классификации пикселов согласно типам краев посредством использования SAO согласно варианту осуществления.
Класс края каждого восстановленного пиксела, включенного в текущий блок, может быть определен согласно текущему типу края, определенному для текущего блока. Иными словами, классы краев текущих восстановленных пикселов могут быть заданы посредством сравнения пикселных значений текущих восстановленных пикселов и соседних пикселов.
Например, класс края может быть определен согласно нижеприведенному процессу 1.
Процесс 1
Class=0;
для i, j∈Ω
если Rec(i, j)<Rec(x, y) тогда Class++
если Rec(i, j)<Rec(x, y) тогда Class--,
x и y текущего восстановленного пиксела Rec(x, y) обозначают горизонтальную координату и вертикальную координату, соответственно; i и j соседнего пиксела Rec(i, j), граничащего с текущим восстановленным пикселом Rec(x, y), обозначают горизонтальную координату и вертикальную координату, соответственно; Ω обозначает пространственный диапазон, в котором располагается соседний пиксел Rec(i, j), который является целью сравнения текущего восстановленного пиксела Rec(x, y). Иными словами, согласно вышеприведенному процессу 1, класс Class края текущего восстановленного пиксела Rec(x, y) может быть определен согласно числу соседних пикселов Rec(i, j). Для соседнего пиксела Rec(i, j), расположенного в предварительно определенном пространственном диапазоне, класс Class края может увеличиваться согласно числу соседних пикселов Rec(i, j), имеющих большее пикселное значение, чем текущий восстановленный пиксел Rec(x, y), и класс Class края может снижаться согласно числу соседних пикселов Rec(i, j), имеющих меньшее пикселное значение, чем текущий восстановленный пиксел Rec(x, y).
Пространственный диапазон Ω соседних пикселов, в котором располагается соседний пиксел Rec(i, j), может задаваться так, как представлено ниже:
Максимальный диапазон соседних пикселов
(i, j)∈Ω, но (i, j)≠(x, y)
x-M≤i≤x+M, и y-M≤j≤y+M
M обозначает максимальное горизонтальное и вертикальное расстояние от текущего восстановленного пиксела Rec(x, y) до соседнего пиксела Rec(i, j). Таким образом, максимальный диапазон соседних пикселов может включать в себя максимальное число (4M^2+4M) соседних пикселов, расположенных около текущего восстановленного пиксела Rec(x, y). В этом случае, класс Class края может быть в диапазоне от -(4M^2+4M) минимум до (4M^2+4M) максимум. Центральное значение диапазона класса Class края может указывать то, что текущий восстановленный пиксел Rec(x, y) является пикселом, расположенным около края, отличным от краевого пиксела. Число соседних пикселов Rec(i, j) в пространственном диапазоне Ω соседних пикселов может увеличиваться или снижаться согласно типу края. M может быть равно 1, чтобы минимизировать объем вычислений.
Например, в случае если тип края является вертикальным краем, текущий восстановленный пиксел Rec(x, y) может сравниваться с соседним пикселом, расположенным в горизонтальном направлении, с точки зрения пикселного значения. Иными словами, пространственный диапазон Ω соседних пикселов вертикального края может определяться так, как представлено ниже:
Пространственный диапазон Ω соседних пикселов для вертикального края
(i, j)∈Ω, но (i, j)≠(x, y)
x-M≤i≤x+M, и j=y
Тип и размер пространственного диапазона Ω соседних пикселов могут быть определены согласно типу края, такому как вертикальный край, горизонтальный край, диагональный край, строгий максимум и строгий минимум, сформированный посредством пикселов в пространственном диапазоне Ω соседних пикселов. Значение класса края указывает то, включается пиксел в край или располагается около края. Таким образом, может быть определено смещение для коррекции пикселных значений, составляющих край, согласно комбинации типа края и класса края, и в силу этого группа пикселов может быть задана согласно комбинации типа края и класса края.
Число соседних пикселов, включенных в пространственный диапазон Ω соседних пикселов, может быть определено согласно типу края. Значение класса края может быть определено в рамках диапазона числа соседних пикселов. Следовательно, устройство 10 кодирования видео и устройство 20 декодирования видео могут кодировать и передавать и принимать соответствующее значение смещения для каждого класса края текущего типа края и регулировать восстановленный пиксел согласно значению смещения. В дальнейшем в этом документе, коэффициенты классов краев согласно предварительно определенному типу края упоминаются в качестве длин значения смещения, которое должно быть кодировано и передано в устройство 20 декодирования видео.
В случае если значение смещения, используемое для предварительно определенной комбинации типа края и класса края, т.е. значение смещения для класса N края текущего типа края, заранее определяется как равное 0, нет необходимости кодировать и передавать значение смещения в устройство 20 декодирования видео. В этом случае длина для предварительно определенной комбинации типа края и класса края может быть уменьшена.
Следовательно, устройство 10 кодирования видео и устройство 20 декодирования видео могут классифицировать пикселы согласно характеристике изображения, такой как тип края, определять среднее значение ошибки между пикселами, имеющими идентичную характеристику, в качестве смещения и регулировать восстановленные пикселы согласно смещению, за счет этого минимизируя ошибку между исходным изображением и восстановленным изображением.
Фиг. 3 является таблицей типов 31, 32, 33, 34, 35 и 36 краев и длин для классификации пикселов согласно варианту осуществления настоящего изобретения.
Индексы 5, 4, 0, 1, 2 и 3 могут последовательно выделяться типам 31, 32, 33, 34, 35 и 36 краев. Чем выше процент возникновения типов 31, 32, 33, 34, 35 и 36 краев, тем меньшие индексы 5, 4, 0, 1, 2 и 3 могут выделяться типам 31, 32, 33, 34, 35 и 36 краев. Класс края текущего восстановленного пиксела X0 может быть определен посредством сравнения пикселных значений текущего восстановленного пиксела X0 и восьми соседних пикселов X1, X2, X3, X4, X5, X6, X7 и X8, смежных с текущим восстановленным пикселом X0 относительно типа 31 края индекса 5. В этом случае число классов краев, выделяемых текущему восстановленному пикселу X0, равно 17, и в силу этого длина может быть определена как равная 17.
Как описано выше, число классов краев определяется как равное 9 посредством сравнения значений текущих восстановленных пикселов для текущего восстановленного пиксела X0 и четырех соседних пикселов X1, X2, X3 и X4, горизонтально и вертикально смежных с текущим восстановленным пикселом X0 относительно типа 32 края индекса 4, и в силу этого длина может быть определена как равная 9.
Кроме того, число классов краев определяется как равное 5 посредством сравнения значений текущих восстановленных пикселов для текущего восстановленного пиксела X0 и двух соседних пикселов X1 и X2, горизонтально смежных с текущим восстановленным пикселом X0 относительно типа 33 края индекса 0, и в силу этого длина может быть определена как равная 5.
Кроме того, число классов краев определяется как равное 5 посредством сравнения значений текущих восстановленных пикселов для текущего восстановленного пиксела X0 и двух соседних пикселов X3 и X4, горизонтально смежных с текущим восстановленным пикселом X0 относительно типа 34 края индекса 1, и в силу этого длина может быть определена как равная 5.
Кроме того, число классов краев определяется как равное 5 посредством сравнения значений текущих восстановленных пикселов для текущего восстановленного пиксела X0 и двух соседних пикселов X5 и X8, смежных с текущим восстановленным пикселом X0 в диагональном направлении в 135° относительно типа 35 края индекса 2, и в силу этого длина может быть определена как равная 5.
Кроме того, число классов краев определяется как равное 5 посредством сравнения значений текущих восстановленных пикселов для текущего восстановленного пиксела X0 и двух соседних пикселов X6 и X7, смежных с текущим восстановленным пикселом X0 в диагональном направлении в 45° относительно типа 36 края индекса 3, и в силу этого длина может быть определена как равная 5.
Например, в случае если тип края является вертикальным краем, таким как тип 33 края индекса 0, и сравниваются пикселные значения текущего восстановленного пиксела X0 и двух соседних пикселов X1 и X2, горизонтально смежных с текущим восстановленным пикселом X0, класс Class края текущего восстановленного пиксела X0 может быть определен согласно нижеприведенному процессу.
Процесс 2
(1) Если (X0>X1 и X0<X2) тогда Class=2
(2) Если (X0>X1 и X1==X2) или (X0==X1 и X1>X2) тогда Class=1;
(3) Если (X0==X1 и X1==X2) или (X0==X1 и X1==X2) тогда Class=0;
(4) Если (X0<X1 и X1==X2) или (X0==X1 и X1<X2) тогда Class=-1;
(5) Если (X0<X1 и X0<X2) тогда Class=-2;
Согласно вышеприведенному процессу 2, в случае если текущий восстановленный пиксел X0 представляет собой: (1) точку локального максимума края, (2) пиксел края блока, (3) пиксел, отличную от края, (4) пиксел вогнутого края и (5) точку локального минимума края, соответственно, может быть определен соответствующий класс края. В случае если значение класса края равно 0, поскольку значение смещения с очень большой вероятностью должно быть равно 0, класс края восстановленного пиксела не может быть кодирован.
Далее описывается вариант осуществления классификации пикселов согласно типам полос пикселных значений посредством использования SAO согласно варианту осуществления.
k
0
1
1
2
2
3
K-1
K
K-1
K
Пикселные значения восстановленных пикселов могут принадлежать одной из полос пикселных значений согласно варианту осуществления. Например, минимальное значение Min и максимальное значение Max пикселных значений могут иметь полный диапазон 0, ..., 2^(p-1) согласно p-битовой дискретизации. Диапазон (Min, Max) пикселных значений может разбиваться на K полос пикселных значений. В случае если B обозначает максимальное значение k-той полосы пикселных значений, k-тая полоса пикселных значений может разбиваться на [B, B-1], [B, B-1], [B, B-1], ..., [B, B]. В случае если пикселное значение текущего восстановленного пиксела Rec(x, y) принадлежит [B, B], текущая полоса пикселных значений может быть определена в качестве k.
-1
Полосы пикселных значений могут разбиваться на равные типы или неравные типы. Такие типы полос пикселных значений могут быть определены с учетом фактического минимального значения Min и максимального значения Max. В этом случае опорные данные по разбиению полос пикселных значений могут кодироваться и передаваться или приниматься и декодироваться между устройством 10 кодирования видео и устройством 20 декодирования видео. В случае если полосы пикселных значений разбиваются согласно теоретическому диапазону {0, ..., 2p} пикселных значений, тип полосы пикселных значений может быть определен без необходимости кодирования. Такой тип полосы пикселных значений может задаваться как тип смещения.
Полоса пикселных значений, которой принадлежит каждое пикселное значение для каждого восстановленного пиксела, может быть определена из множества полос пикселных значений, классифицированных согласно типам полос пикселных значений. Кроме того, значение смещения, указывающее среднее ошибок между исходным пикселом и восстановленным пикселом, может быть определено для каждой полосы пикселных значений.
Следовательно, устройство 10 кодирования видео и устройство 20 декодирования видео могут кодировать и передавать и принимать соответствующее значение смещения для каждой из полос пикселных значений, классифицированных согласно текущему типу полосы пикселных значений, и регулировать восстановленный пиксел согласно смещению. Кроме того, длина значения смещения может быть идентичной числу полос пикселных значений. Устройство 10 кодирования видео может кодировать длину и передавать длину в устройство 20 декодирования видео.
В случае если значение смещения, используемое для предварительно определенной комбинации типа края и класса края, т.е. значение смещения для k-той полосы пикселных значений текущего типа полосы пикселных значений, заранее определяется как равное 0, нет необходимости кодировать и передавать значение смещения в устройство 20 декодирования видео. В этом случае длина для предварительно определенной комбинации типа края и класса края может быть уменьшена.
Например, в случае если тип классификации пикселного значения является 8-битовой равной полосой, пикселные значения могут разбиваться на 32 полосы пикселных значений. Более конкретно, пикселные значения могут разбиваться на полосы пикселных значений [0, 7], [8, 15], ..., [240, 247], [248, 255]. В этом случае, длина равна 32.
В случае если общее число полос пикселных значений, т.е. длина, является степенью 2, объем вычислений для классификации пикселов согласно типам полос пикселных значений согласно варианту осуществления может быть минимизирован.
Следовательно, устройство 10 кодирования видео и устройство 20 декодирования видео могут классифицировать пикселы согласно характеристике изображения, такой как тип полосы пикселных значений, определять среднее значение ошибки между пикселами, имеющими идентичную характеристику, в качестве смещения и регулировать восстановленные пикселы согласно смещению, за счет этого минимизируя ошибку между исходным изображением и восстановленным изображением.
Устройство 10 кодирования видео и устройство 20 декодирования видео согласно варианту осуществления могут определять тип смещения и значение смещения для каждой предварительно определенной области. Устройство 10 кодирования видео может определять ошибку между значением исходного пиксела и значением восстановленного пиксела для каждого пиксела, включенного в предварительно определенные области, и определять среднее пикселных ошибок в качестве значения смещения. Для быстрой работы, устройство 10 кодирования видео и устройство 20 декодирования видео могут определять и передавать или принимать значение смещения для каждого блока.
Тип смещения может быть определен согласно характеристике изображения каждого блока. Например, блок, включающий в себя вертикальный край, горизонтальный край, диагональный край и т.д., является предпочтительным для того, чтобы классифицировать пикселные значения согласно типам краев и определять значение смещения для коррекции значения края. В случае если блок не является краевым блоком, значение смещения может быть предпочтительно определено согласно классификации полос. Таким образом, устройство 10 кодирования видео и устройство 20 декодирования видео могут передавать или принимать тип смещения для каждого блока.
Параметр смещения согласно варианту осуществления может включать в себя тип смещения, значения смещения, длину и класс смещения. Длина может быть определена согласно типам смещений.
Устройство 10 кодирования видео и устройство 20 декодирования видео согласно варианту осуществления могут определять класс смещения, соответствующий типу смещения.
Следовательно, устройство 10 кодирования видео согласно варианту осуществления может кодировать и передавать тип смещения и значения смещения параметра смещения в устройство 20 декодирования видео. Устройство 20 декодирования видео может принимать тип смещения и значения смещения и определять длину и класс смещения на основе типа смещения. Кроме того, устройство 20 декодирования видео может выбирать значение смещения, соответствующее длине или классу смещения, из принимаемых значений смещения и регулировать восстановленные пикселы согласно значению смещения.
Устройство 10 кодирования видео согласно варианту осуществления может определять индекс типа смещения согласно проценту возникновения типа смещения, с тем чтобы кодировать тип смещения. Например, чем выше процент возникновения типа смещения индекса в типах смещений, тем короче кодовое слово индекса может кодироваться.
Устройство 10 кодирования видео и устройство 20 декодирования видео могут иметь следующие примеры индексов типа смещения, выбираемых из числа типов смещений, включающих в себя классификацию пикселов согласно типу края и типу полосы пикселных значений:
(i) В случае если SAO не используется, тип смещения равен -1;
(ii) В случае типа края, включающего в себя три пиксела в вертикальном направлении, тип смещения равен 0;
(iii) В случае типа края, включающего в себя три пиксела в горизонтальном направлении, тип смещения равен 1;
(iv) В случае типа края, включающего в себя три пиксела в диагональном направлении в 135°, тип смещения равен 2;
(v) В случае типа края, включающего в себя три пиксела в диагональном направлении в 45°, тип смещения равен 3;
(vi) Тип смещения типа полосы пикселных значений равен 4.
В случае если (ii) тип смещения равен 0, класс края может быть кодирован в {-2,-1, 1, 2}. Класс 0 края не может быть кодирован, и в силу этого длина может быть равна 4. В случае если (vi) тип смещения равен 4, и число полос пикселных значений равно 32, длина может быть равна 32.
Фиг. 4 является блок-схемой последовательности операций способа, иллюстрирующей процесс кодирования значений смещения, согласно варианту осуществления настоящего изобретения.
Значение смещения, которое должно кодироваться и декодироваться, с очень большой вероятностью должно быть равно 0 для передачи и приема между устройством 10 кодирования видео и устройством 20 декодирования видео согласно варианту осуществления настоящего изобретения. Значение смещения, отличное от 0, имеет положительный или отрицательный знак. Таким образом, устройство 10 кодирования видео согласно варианту осуществления определяет то, равно или нет текущее значение смещения 0 (этап 41), и если текущее значение смещения не равно 0, определяет то, превышает или нет текущее значение смещения 0 (этап 42). Если текущее значение смещения превышает 0, кодируется знаковый бит "0" (этап 44). Если текущее значение смещения не превышает 0, кодируется знаковый бит "1" (этап 43). После того, как кодируется знаковый бит, может дополнительно кодироваться скорость передачи битов, сформированная посредством выполнения унарного двоичного кодирования для значения, полученного посредством уменьшения абсолютного значения для значения смещения на 1 (этап 45). Устройство 10 кодирования видео может в завершение кодировать текущее значение смещения "0", если текущее значение смещения равно 0 (этап 46), и полностью кодировать значение смещения.
Устройство 20 декодирования видео может принимать значение смещения, определять то, равно или нет значение смещения 0, и если значение смещения не равно 0, синтаксически анализировать знаковый бит и значение, полученное посредством уменьшения абсолютного значения для значения смещения на 1, и восстанавливать текущее значение смещения.
Параметр смещения согласно варианту осуществления может определяться и передаваться и приниматься для каждого блока. Например, устройство 10 кодирования видео и устройство 20 декодирования видео могут определять и передавать и принимать параметр смещения для каждого изображения или каждой серии последовательных макроблоков. Альтернативно, устройство 10 кодирования видео и устройство 20 декодирования видео могут определять и передавать и принимать параметр смещения для каждой единицы кодирования или максимальной единицы кодирования древовидной структуры. Далее подробнее описываются операции кодирования/декодирования видео на основе единиц кодирования древовидной структуры, включающих в себя максимальную единицу кодирования, а также единицы кодирования древовидной структуры согласно варианту осуществления со ссылкой на фиг. 8-20.
Тип смещения и/или значение смещения каждого блока с очень большой вероятностью должны быть идентичными между смежными блоками. В случае если параметр смещения текущего блока сравнивается с параметрами смещения соседних блоков и является идентичным им, устройство 10 кодирования видео согласно варианту осуществления может объединять и кодировать параметры смещения текущего блока и соседних блоков в один параметр смещения. Если параметры смещения соседних блоков сначала кодируются, параметр смещения текущего блока не может быть кодирован, но информация объединения смещений текущего блока может быть кодирована.
Устройство 20 декодирования видео согласно варианту осуществления может сначала синтаксически анализировать информацию объединения смещений и определять то, проанализирован синтаксически или нет параметр смещения, до синтаксического анализа параметра смещения из принимаемого потока битов. Устройство 20 декодирования видео может определять то, существует или нет блок, имеющий параметр смещения, идентичный параметру смещения текущего блока в параметрах смещения соседних блоков, на основе информации объединения смещений текущего блока.
Например, если определено то, что существует блок, имеющий параметр смещения, идентичный параметру смещения текущего блока в параметрах смещения соседних блоков, на основе информации объединения смещений текущего блока, устройство 20 декодирования видео может не синтаксически анализировать параметр смещения текущего блока, но может восстанавливать параметр смещения текущего блока как идентичный восстановленному параметру смещения соседнего блока. Кроме того, соседний блок, имеющий параметр смещения, к которому следует обращаться, может быть определен из числа соседних блоков, на основе информации объединения смещений.
Например, в случае если параметры смещения соседних блоков отличаются от параметра смещения текущего блока на основе информации объединения смещений, устройство 20 декодирования видео может синтаксически анализировать и восстанавливать параметр смещения текущего блока из потока битов.
Фиг. 5 является схемой возможных вариантов опорных блоков, используемых для того, чтобы объединять параметры смещения, согласно варианту осуществления настоящего изобретения.
Устройство 10 кодирования видео согласно варианту осуществления может определять список возможных вариантов соседних блоков, которые являются опорными целями параметров смещения текущего блока 50, из числа соседних блоков, восстановленных до текущего блока. Устройство 10 кодирования видео может сравнивать соседние блоки списка возможных вариантов с параметрами смещения текущего блока 50.
Список возможных вариантов согласно варианту осуществления может включать в себя соседние блоки, расположенные в текущем кадре 57, который является идентичным текущему блоку 50. Более конкретно, левый блок 51, верхний блок 52, левый верхний блок 53 и правый верхний блок 54 могут быть включены в список возможных вариантов.
Устройство 10 кодирования видео согласно другому варианту осуществления может обращаться к параметрам смещения блоков 55 и 56, включенных в соседние кадры 58 и 59, восстановленные до текущего кадра 57. Блоки 55 и 59, включенные в соседние кадры 58 и 59, могут быть блоками, расположенными временно в предыдущих и последующих кадрах 58 и 59 относительно текущего кадра 57 и пространственно в области, идентичной области текущего блока 50. В этом случае, список возможных вариантов может включать в себя соседние блоки 51, 52, 53 и 54, включенные в текущий кадр 57, и блоки 55 и 59, включенные в соседние кадры 58 и 59.
Следовательно, устройство 10 кодирования видео согласно варианту осуществления может сравнивать параметры смещения соседних блоков, включенных в список возможных вариантов, с параметрами смещения текущего блока 50 согласно предварительно определенной опорной последовательности. Например, параметры смещения соседних блоков могут сравниваться с параметрами смещения текущего блока 50 согласно опорной последовательности из левого блока 51, верхнего блока 52, левого верхнего блока 53, правого верхнего блока 54, предыдущего блока 55 и последующего блока 56. Соседний блок, имеющий параметр смещения, идентичный параметру смещения текущего блока 50 из числа сравниваемых соседних блоков, может быть определен в качестве опорного блока.
Устройство 10 кодирования видео и устройство 20 декодирования видео могут прогнозировать и обращаться, а также кодировать и передавать или принимать и декодировать параметры смещения между смежными блоками на основе идентичного списка возможных вариантов. Устройство 20 декодирования видео согласно варианту осуществления может определять соседний блок, имеющий параметр смещения, идентичный параметру смещения текущего блока 50, из списка возможных вариантов на основе информации объединения смещений, и обращаться к параметру смещения соответствующего соседнего блока, чтобы восстанавливать параметр смещения текущего блока 50, имеющий значение, идентичное значению параметра смещения соответствующего соседнего блока.
Например, предполагается использование списка возможных вариантов, включающего в себя левый блок 51 и верхний блок 52. Модуль 14 кодирования параметров смещения согласно варианту осуществления может кодировать, в качестве информации объединения смещений, информацию объединения смещений влево, указывающую то, является или нет параметр смещения левого блока 51 идентичным параметру смещения текущего блока 50, и информацию объединения смещений вверх, указывающую то, является или нет параметр смещения верхнего блока 52 идентичным параметру смещения текущего блока 50. В этом случае, текущий блок 50 может сравниваться с левым блоком 51, чтобы определять то, являются или нет их параметры смещения идентичными друг другу, и затем текущий блок 50 может сравниваться с верхним блоком 52, чтобы определять то, являются или нет их параметры смещения идентичными друг другу. Информация объединения смещений может быть определена согласно результатам сравнения.
Если, по меньшей мере, один параметр смещения левого блока 51 и верхнего блока 52 является идентичным параметру смещения текущего блока 50, модуль 14 кодирования параметров смещения может кодировать соответствующую информацию объединения смещений влево и информацию объединения смещений вверх, но может не кодировать параметр смещения текущего блока 50.
Если параметры смещения левого блока 51 и верхнего блока 52 отличаются от параметра смещения текущего блока 50, модуль 14 кодирования параметров смещения может кодировать соответствующую информацию объединения смещений влево и информацию объединения смещений вверх и параметр смещения текущего блока 50.
Если параметры смещения левого блока 51 и верхнего блока 52 отличаются от параметра смещения текущего блока 50, модуль 14 кодирования параметров смещения согласно варианту осуществления может кодировать информацию объединения смещений и параметр смещения текущего блока 50.
В качестве другого примера, если частичная информация параметров смещения соседних блоков является идентичной параметру смещения текущего блока 50, модуль 14 кодирования параметров смещения согласно варианту осуществления может кодировать информацию объединения смещений в один бит и оставшуюся информацию текущего параметра смещения за исключением идентичной частичной информации параметров смещения соседних блоков. Например, если текущий блок 50 и соседние блоки являются идентичными друг другу с точки зрения значения смещения, информация объединения смещений в один бит и значение типа смещения могут быть кодированы для текущего блока 50.
Устройство 10 кодирования видео и устройство 20 декодирования видео согласно варианту осуществления могут сравнивать типы смещений и значения смещения между текущим блоком 50 и соседними блоками, и если существует соседний блок, имеющий тип смещения и значение смещения, идентичные типу смещения и значению смещения текущего блока 50, могут передавать и принимать информацию объединения смещений.
В качестве другого примера, типы смещений сравниваются между параметрами смещения текущего блока 50 и соседних блоков, и если существует соседний блок, имеющий тип смещения, идентичный типу смещения текущего блока 50, информация объединения типа смещения соответствующего соседнего блока может быть передана и принята.
В качестве другого примера, значения смещения сравниваются между параметрами смещения текущего блока 50 и соседних блоков, и если существует соседний блок, имеющий значение смещения, идентичное значению смещения текущего блока 50, информация объединения значения смещения соответствующего соседнего блока может быть передана и принята.
Если смежные блоки являются идентичными с точки зрения длины, хотя типы смещений отличаются между смежными блоками, значения смещения смежных блоков могут быть аналогичными. Например, смежные блоки с очень большой вероятностью должны составлять идентичную область объекта для объектов, указываемых посредством изображения. Таким образом, хотя тип края текущего блока 50, который является вертикальным краем, отличается от типа края соседнего блока, который является диагональным краем, пикселы текущего блока 50 и соседнего блока могут составлять идентичную область объекта. Таким образом, значение смещения текущего блока 50 и значение смещения соседнего блока могут зачастую являются аналогичными. Соответственно, список возможных вариантов соседних блоков для текущего блока 50 может включать в себя соседние блоки, имеющие только идентичную длину типа края.
Устройство 10 кодирования видео и устройство 20 декодирования видео согласно варианту осуществления могут прогнозировать параметр смещения текущего блока 50 посредством обращения к параметрам смещения соседних блоков между блоками, имеющими идентичную длину.
В случае если прогнозирующее кодирование выполняется для параметра смещения, устройство 10 кодирования видео и устройство 20 декодирования видео могут передавать в служебных сигналах список возможных вариантов прогнозирования, включающих в себя соседние блоки, к которым можно обращаться, чтобы выполнять прогнозирующее кодирование для параметра смещения. Альтернативно, всегда обращаются к параметру смещения блока, который является ближайшим смежным к текущему блоку 50, и в силу этого ближайший смежный блок, включенный в список возможных вариантов прогнозирования, не может ни передаваться, ни приниматься.
Список возможных вариантов прогнозирования, включающих в себя ближайший смежный блок относительно текущего блока 50 согласно варианту осуществления, может (i) включать в себя возможные варианты блоков, размещаемые в опорной последовательности (ii) из возможных вариантов блоков, которые восстанавливаются до текущего блока 50 и имеют идентичную длину, (iii) за исключением возможных вариантов блоков, имеющих идентичный параметр смещения. Первый ранжированный возможный вариант блока из списка возможных вариантов прогнозирования может быть ближайшим смежным блоком. Например, если список возможных вариантов прогнозирования включает в себя левый блок 51 и верхний блок 52, расположенные на идентичном расстоянии от текущего блока 50, левый блок 51, имеющий меньший объем вычислений, необходимый для доступа из текущего блока 50, чем верхний блок 52, может быть ближайшим смежным блоком.
После того, как определяется список возможных вариантов прогнозирования, прогнозирующее кодирование может быть выполнено для значений смещения текущего блока 50 посредством обращения к значениям смещения ближайшего смежного блока. Значения разностей между значениями смещения текущего блока 50 и значениями смещения ближайшего смежного блока могут кодироваться и передаваться или приниматься.
ПРОГНОЗНОЕ ЗНАЧЕНИЕ СМЕЩЕНИЯ
Offset[i]-Offset_prediction[i], O≤i≤Length-1
Иными словами, согласно прогнозному значению смещения, значения Offset[i]-Offset_prediction[i] разностей между значениями Offset[i] смещения текущего блока 50 и значениями Offset_prediction[i] смещения ближайшего смежного блока могут кодироваться и передаваться или приниматься для каждого класса i края (или каждой полосы пикселных значений) между текущим блоком 50 и ближайшим смежным блоком, имеющими идентичную длину Length. Каждый раз, когда изменяется класс i края (или полоса пикселных значений), дифференциальное значение прогнозирования относительно соответствующего класса края (или соответствующей полосы пикселных значений) может быть передано или принято.
Устройство 10 кодирования видео и устройство 20 декодирования видео согласно варианту осуществления могут ограниченно выполнять объединяющее кодирование или прогнозирующее кодирование для параметра смещения. Например, чтобы кодировать параметры смещения текущего блока 50 согласно типу полосы пикселных значений, хотя два соседних блока имеют идентичную длину, т.е. идентичное число полос пикселных значений, максимальные и минимальные значения соседних блоков и максимальные и минимальные значения текущего блока 50 отличаются, и таким образом, если полный диапазон пикселных значений отличается между соседними блоками и текущим блоком 50, параметры смещения соседних блоков и параметры смещения текущего блока 50 не имеют взаимосвязи согласно типу полосы пикселных значений. Следовательно, если соседние блоки и текущий блок 50 отличаются с точки зрения характеристики типа смещения, устройство 10 кодирования видео и устройство 20 декодирования видео предпочтительно не должны объединять и выполнять прогнозирующее кодирование для параметров смещения между смежными блоками.
Устройство 10 кодирования видео и устройство 20 декодирования видео согласно варианту осуществления могут выполнять прогнозирующее кодирование для параметров смещения для каждого цветового компонента.
Например, SAO может применяться как к блоку сигнала яркости, так и к блокам сигнала цветности цветового YUV-формата. Тип смещения и/или значения смещения блока сигнала яркости Y-компонента могут быть в достаточной степени аналогичными типам смещений и/или значениям смещения блоков сигнала цветности U- и V-компонентов.
Например, устройство 10 кодирования видео и устройство 20 декодирования видео добавляют блок сигнала яркости в местоположении, идентичном местоположению текущего блока сигнала цветности, в список возможных вариантов текущего блока сигнала цветности, и за счет этого параметр смещения текущего блока сигнала цветности может быть прогнозирован посредством обращения к параметру смещения блока сигнала яркости. Наивысший приоритет может выделяться блоку сигнала яркости из опорного списка блоков, включенных в список возможных вариантов.
В качестве другого примера, устройство 10 кодирования видео и устройство 20 декодирования видео могут кодировать параметры смещения на основе предварительно определенных взаимосвязей между параметрами смещения компонента сигнала яркости и компонентов сигнала цветности. В общем, блоки сигнала цветности являются более плоскими, чем блок сигнала яркости, и абсолютные значения для значений смещения согласно максимальным и минимальным значениям, классов краев и полос пикселных значений блоков сигнала цветности меньше абсолютных значений блока сигнала яркости.
Нижеприведенное уравнение прогнозирования смещения сигнала цветности поясняет вариант осуществления для выполнения прогнозирующего кодирования значений смещения блоков сигнала цветности в случае, если значения смещения блоков сигнала цветности определяются на основе значения смещения блока сигнала яркости.
УРАВНЕНИЕ ПРОГНОЗИРОВАНИЯ СМЕЩЕНИЯ СИГНАЛА ЦВЕТНОСТИ
Value_to_be_encoded[i]=Offset[i]-F(Offset_prediction[i]);
где F(x)=A*x+B;
В этом отношении, i обозначает текущий класс края (полосу пикселных значений) в рамках диапазона длины, и значение ошибки Value_to_be_encoded[i] между прогнозным значением F(Offset_prediction[i]) и значениями Offset[i] смещения блоков сигнала цветности, определенными на основе значения Offset_prediction[i] смещения блока сигнала яркости, к которому обращаются блоки сигнала цветности, может быть передано или принято между устройством 10 кодирования видео и устройством 20 декодирования видео.
В F(x), A и B обозначают параметры корреляции между блоком сигнала яркости и блоками сигнала цветности. Параметры A и B корреляции могут быть отдельно заданы для U-компонента и Y-компонента. Альтернативно, U-компонент и Y-компонент могут совместно использовать параметры A и B корреляции.
Устройство 10 кодирования видео и устройство 20 декодирования видео согласно варианту осуществления могут кодировать и передавать или принимать и декодировать параметры A и B корреляции, чтобы выполнять прогнозирующее кодирование для значений смещения между блоком сигнала яркости и блоками сигнала цветности на основе корреляций между цветовыми компонентами. Параметры A и B корреляции могут быть заранее фиксированно заданы в качестве предварительно определенных значений согласно варианту осуществления. Параметры A и B корреляции согласно варианту осуществления могут быть определены для каждой предварительно определенной единицы данных, такой как блок, изображение, серия последовательных макроблоков, видеопоследовательность и т.д., и могут быть переданы или приняты после включения в параметры для каждого блока, набора параметров изображения (PPS), заголовка серии последовательных макроблоков и набора параметров последовательности (SPS).
Фиг. 6 является блок-схемой последовательности операций способа, иллюстрирующей способ кодирования видео, согласно варианту осуществления настоящего изобретения.
На этапе 61, может быть определен класс края согласно типу края текущего блока из числа блоков видео, либо может быть определена полоса пикселных значений согласно типу полосы пикселных значений.
В случае если смещение текущего блока определяется согласно типу края, класс края, указывающий то, является или нет текущий восстановленный пиксел экстремальной точкой из числа соседних пикселов относительно текущего восстановленного пиксела, расположенного согласно направлению края и размеру края, может быть определен посредством сравнения пикселных значений текущего восстановленного пиксела и соседних пикселов.
Кроме того, в случае если смещение текущего блока определяется согласно типам полос пикселных значений восстановленных пикселов, полоса пикселных значений, указывающая диапазон пикселных значений, которому принадлежит пикселное значение текущего восстановленного пиксела, может быть определена из множества полос.
На этапе 63, смещение, соответствующее текущему классу края или полосе пикселных значений, определяется посредством использования значений разностей между восстановленными пикселами и исходными пикселами, включенными в класс края или полосу пикселных значений. Среднее значение для значений разностей между восстановленными пикселами и исходными пикселами, включенными в идентичный класс края или идентичную полосу пикселных значений, может быть определено в качестве значения смещения.
На этапе 65, параметр смещения каждого блока кодируется. Параметр смещения может включать в себя тип смещения соответствующего блока, его значение смещения, его длину, а также его класс края и полосу пикселных значений.
Тип смещения каждого блока указывает тип края или тип полосы пикселных значений соответствующего блока. Восстановленные пикселы каждого блока классифицируются на множество классов краев согласно типу края каждого блока, и каждое значение смещения определяется для каждого класса края, и за счет этого определяется множество значений смещения, соответствующих множеству классов краев. Альтернативно, восстановленные пикселы каждого блока классифицируются на множество полос пикселных значений согласно типу края каждого блока, и каждое значение смещения определяется для каждой полосы пикселных значений, и за счет этого определяется множество значений смещения, соответствующих множеству полос пикселных значений. Длина определяется согласно типу края каждого блока или его полосе пикселных значений. Таким образом, могут кодироваться только тип смещения и значения смещения из параметров смещения каждого блока.
Информация объединения смещений текущего блока может быть кодирована на основе идентификационных данных между параметрами смещения текущего блока и, по меньшей мере, одного соседнего блока. Информация объединения смещений может указывать то, кодируется или нет параметр смещения текущего блока. Иными словами, если соседние блоки включают в себя блок, имеющий параметр смещения, идентичный параметру смещения текущего блока, только информация объединения смещений текущего блока может быть кодирована, а его параметр смещения не может быть кодирован.
Разностная информация между параметрами смещения соседних блоков и параметром смещения текущего блока может быть кодирована посредством выполнения прогнозирования для параметров смещения соседних блоков и параметра смещения текущего блока. Прогнозирующее кодирование может быть выполнено, по меньшей мере, для одного цветового компонента из блока сигнала яркости и блоков сигнала цветности текущего блока посредством обращения к параметрам смещения друг друга.
Фиг. 7 является блок-схемой последовательности операций способа, иллюстрирующей способ декодирования видео, согласно варианту осуществления настоящего изобретения.
На этапе 71, информация объединения смещений, указывающая то, являются или нет параметры смещения текущего блока и, по меньшей мере, одного соседнего блока из числа блоков видео идентичными друг другу, синтаксически анализируется из принимаемого потока битов.
На этапе 73, типы смещений и значения смещения из параметров смещения текущего блока восстанавливаются на основе информации объединения смещений.
На этапе 75, класс края восстановленного пиксела или его полоса пикселных значений определяется на основе типа края текущего блока или его типа полосы пикселных значений, указывающего тип смещения. На этапе 77, значение смещения, соответствующее классу края восстановленного пиксела или его полосе пикселных значений, определяется из значений смещения, и пикселное значение восстановленного пиксела регулируется согласно значению смещения.
В случае если тип смещения текущего блока представляет собой тип края на этапе 75, класс края текущего восстановленного пиксела может быть определен посредством сравнения пикселных значений текущего восстановленного пиксела и соседних пикселов относительно текущего восстановленного пиксела, расположенного согласно направлению края и размеру края. В этом случае, на этапе 77, смещение, соответствующее классу края текущего восстановленного пиксела, может быть выбрано из принимаемых значений смещения.
Кроме того, в случае если тип смещения текущего блока представляет собой тип полосы пикселных значений на этапе 75, полоса пикселных значений текущего восстановленного пиксела может быть определена, и на этапе 77, смещение, соответствующее полосе пикселных значений текущего восстановленного пиксела, может быть выбрано из значений смещения.
Если, по меньшей мере, один параметр смещения левого блока и верхнего блока относительно текущего блока является идентичным параметру смещения текущего блока на основе информации объединения смещений на этапе 71, параметр смещения текущего блока может быть восстановлен как идентичный, по меньшей мере, одному параметру смещения левого блока и верхнего блока относительно текущего блока. Кроме того, если, по меньшей мере, один параметр смещения левого блока и верхнего блока относительно текущего блока отличается от параметра смещения текущего блока на основе информации объединения смещений, параметр смещения текущего блока может быть синтаксически проанализирован из принимаемого потока битов и может быть восстановлен.
Если дифференциальные значения для значений смещения синтаксически анализируются из потока битов на этапе 71, прогнозирующее восстановление может быть выполнено для значений смещения текущего блока посредством комбинирования разностной информации между значениями смещения и информацией смещения соседних блоков.
Прогнозирующее восстановление может быть выполнено, по меньшей мере, для одного цветового компонента из компонента сигнала яркости и компонентов сигнала цветности текущего блока посредством обращения к параметрам смещения друг друга на этапе 71.
Следовательно, устройство 10 кодирования видео и устройство 20 декодирования видео с использованием SAO согласно варианту осуществления классифицируют пикселные значения согласно характеристике изображения, такой как типы краев блоков изображений или типы полос пикселных значений, кодируют и передают или принимают и декодируют значение смещения, которое является средним значением ошибки между классифицированными пикселными значениями, имеющими идентичную характеристику, и регулируют пикселные значения, которые не ожидаются в восстановленных пикселах согласно значению смещения, за счет этого минимизируя ошибку между исходным изображением и восстановленным изображением.
Устройство 10 кодирования видео и устройство 20 декодирования видео согласно варианту осуществления могут разбивать блоки, которые разбиваются из видеоданных, на единицы кодирования древовидной структуры и определять смещение, заданное согласно классификации пикселов для каждой максимальной единицы кодирования или каждой единицы кодирования, как описано выше. Ниже описываются способ и устройство кодирования видео, а также способ и устройство декодирования видео на основе единиц кодирования и единиц преобразования, имеющих древовидную структуру, согласно варианту осуществления, со ссылкой на фиг. 7-20.
Фиг. 8 является блок-схемой устройства 100 кодирования видео на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео, заключающее в себе прогнозирование видео на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления, включает в себя модуль 110 разбиения на максимальные единицы кодирования, модуль 120 определения единиц кодирования и модуль 130 вывода. Для удобства описания, устройство 100 кодирования видео, заключающее в себе прогнозирование видео на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления, в дальнейшем упоминается как "устройство 100 кодирования видео".
Модуль 110 разбиения на максимальные единицы кодирования может разбивать текущее изображение на основе максимальной единицы кодирования для текущей картины изображения. Если текущее изображение превышает максимальную единицу кодирования, данные изображений для текущего изображения могут разбиваться, по меньшей мере, на одну максимальную единицу кодирования. Максимальная единица кодирования согласно варианту осуществления настоящего изобретения может быть единицей данных, имеющей размер 32x32, 64x64, 128x128, 256x256 и т.д., при этом форма единицы данных является квадратом, имеющим ширину и длину в квадратах по 2. Данные изображений могут выводиться в модуль 120 определения единиц кодирования согласно, по меньшей мере, одной максимальной единице кодирования.
Единица кодирования согласно варианту осуществления настоящего изобретения может отличаться посредством максимального размера и глубины. Глубина обозначает число раз, которое единица кодирования пространственно разбивается от максимальной единицы кодирования, и по мере того, как увеличивается глубина, более глубокие единицы кодирования согласно глубинам могут разбиваться от максимальной единицы кодирования до минимальной единицы кодирования. Глубина максимальной единицы кодирования является самой верхней глубиной, а глубина минимальной единицы кодирования является самой нижней глубиной. Поскольку размер единицы кодирования, соответствующей каждой глубине, снижается по мере того, как увеличивается глубина максимальной единицы кодирования, единица кодирования, соответствующая верхней глубине, может включать в себя множество единиц кодирования, соответствующих нижним глубинам.
Как описано выше, данные изображений для текущего изображения разбиваются на максимальные единицы кодирования согласно максимальному размеру единицы кодирования, и каждая из максимальных единиц кодирования может включать в себя более глубокие единицы кодирования, которые разбиваются согласно глубинам. Поскольку максимальная единица кодирования согласно варианту осуществления настоящего изобретения разбивается согласно глубинам, данные изображений пространственной области, включенные в максимальную единицу кодирования, могут быть иерархически классифицированы согласно глубинам.
Может быть предварительно определена максимальная глубина и максимальный размер единицы кодирования, которые ограничивают общее число раз, сколько высота и ширина максимальной единицы кодирования иерархически разбиваются.
Модуль 120 определения единиц кодирования кодирует, по меньшей мере, одну область разбиения, полученную посредством разбиения области максимальной единицы кодирования согласно глубинам, и определяет глубину, чтобы выводить конечные кодированные данные изображений согласно, по меньшей мере, одной области разбиения. Другими словами, модуль 120 определения единиц кодирования определяет кодированную глубину посредством кодирования данных изображений в более глубоких единицах кодирования согласно глубинам, согласно максимальной единице кодирования текущего изображения и выбора глубины, имеющей наименьшую ошибку кодирования. Таким образом, кодированные данные изображений единицы кодирования, соответствующей определенной кодированной глубине, в завершение выводятся. Кроме того, единицы кодирования, соответствующие кодированной глубине, могут рассматриваться в качестве кодированных единиц кодирования.
Определенная кодированная глубина и кодированные данные изображений согласно определенной кодированной глубине выводятся в модуль 130 вывода.
Данные изображений в максимальной единице кодирования кодируются на основе более глубоких единиц кодирования, соответствующих, по меньшей мере, одной глубине, равной или ниже максимальной глубины, и результаты кодирования данных изображений сравниваются на основе каждой из более глубоких единиц кодирования. Глубина, имеющая наименьшую ошибку кодирования, может быть выбрана после сравнения ошибок кодирования более глубоких единиц кодирования. По меньшей мере, одна кодированная глубина может быть выбрана для каждой максимальной единицы кодирования.
Размер максимальной единицы кодирования разбивается по мере того, как единица кодирования иерархически разбивается согласно глубинам, и по мере того, как увеличивается число единиц кодирования. Кроме того, даже если единицы кодирования соответствуют идентичной глубине в одной максимальной единице кодирования, определяется то, разбивать или нет каждую из единиц кодирования, соответствующих идентичной глубине, до нижней глубины посредством измерения ошибки кодирования данных изображений каждой единицы кодирования, отдельно. Соответственно, даже когда данные изображений включаются в одну максимальную единицу кодирования, данные изображений разбиваются на области согласно глубинам, ошибки кодирования могут отличаться согласно областям в одной максимальной единице кодирования, и, таким образом, кодированные глубины могут отличаться согласно областям в данных изображений. Таким образом, одна или более кодированных глубин могут быть определены в одной максимальной единице кодирования, и данные изображений максимальной единицы кодирования могут быть разделены согласно единицам кодирования, по меньшей мере, одной кодированной глубины.
Соответственно, модуль 120 определения единиц кодирования может определять единицы кодирования, имеющие древовидную структуру, включенные в максимальную единицу кодирования. "Единицы кодирования, имеющие древовидную структуру" согласно варианту осуществления настоящего изобретения включают в себя единицы кодирования, соответствующие глубине, определенной как кодированная глубина, из всех более глубоких единиц кодирования, включенных в максимальную единицу кодирования. Единица кодирования кодированной глубины может быть иерархически определена согласно глубинам в идентичной области максимальной единицы кодирования и может быть независимо определена в различных областях. Аналогично, кодированная глубина в текущей области может быть независимо определена из кодированной глубины в другой области.
Максимальная глубина согласно варианту осуществления настоящего изобретения является индексом, связанным с числом разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Первая максимальная глубина согласно варианту осуществления настоящего изобретения может обозначать общее число разбиений от максимальной единицы кодирования до минимальной единицы кодирования. Вторая максимальная глубина согласно варианту осуществления настоящего изобретения может обозначать общее число уровней глубины от максимальной единицы кодирования до минимальной единицы кодирования. Например, когда глубина максимальной единицы кодирования равна 0, глубина единицы кодирования, на которую максимальная единица кодирования разбивается один раз, может задаваться равной 1, а глубина единицы кодирования, на которую максимальная единица кодирования разбивается два раза, может задаваться равной 2. Здесь, если минимальная единица кодирования является единицей кодирования, на которую максимальная единица кодирования разбивается четыре раза, имеется 5 уровней глубины с глубинами 0, 1, 2, 3 и 4, и за счет этого первая максимальная глубина может задаваться равной 4, а вторая максимальная глубина может задаваться равной 5.
Прогнозирующее кодирование и преобразование может выполняться согласно максимальной единице кодирования. Прогнозирующее кодирование и преобразование также выполняются на основе более глубоких единиц кодирования согласно глубине, равной, или глубинам, меньшим максимальной глубины, согласно максимальной единице кодирования. Преобразование может выполняться согласно способу ортогонального преобразования или целочисленного преобразования.
Поскольку число более глубоких единиц кодирования увеличивается каждый раз, когда максимальная единица кодирования разбивается согласно глубинам, кодирование, включающее в себя прогнозирующее кодирование и преобразование, выполняется для всех более глубоких единиц кодирования, сформированных по мере того, как увеличивается глубина. Для удобства описания, прогнозирующее кодирование и преобразование далее описываются на основе единицы кодирования текущей глубины в максимальной единице кодирования.
Устройство 100 кодирования видео может по-разному выбирать размер или форму единицы данных для кодирования данных изображений. Чтобы кодировать данные изображений, выполняются такие операции, как прогнозирующее кодирование, преобразование и энтропийное кодирование, и в это время, идентичная единица данных может использоваться для всех операций, или различные единицы данных могут использоваться для каждой операции.
Например, устройство 100 кодирования видео может выбирать не только единицу кодирования для кодирования данных изображений, но также и единицу данных, отличающуюся от единицы кодирования, с тем чтобы выполнять прогнозирующее кодирование для данных изображений в единице кодирования.
Чтобы выполнять прогнозирующее кодирование в максимальной единице кодирования, прогнозирующее кодирование может выполняться на основе единицы кодирования, соответствующей кодированной глубине, т.е. на основе единицы кодирования, которая более не разбивается на единицы кодирования, соответствующие нижней глубине. В дальнейшем в этом документе, единица кодирования, которая более не разбивается и становится базисной единицей для прогнозирующего кодирования, далее упоминается как "единица прогнозирования". Сегмент, полученный посредством разбиения единицы прогнозирования, может включать в себя единицу данных, полученную посредством разбиения, по меньшей мере, одной из высоты и ширины единицы прогнозирования. Сегмент представляет собой единицу данных, разделенную из единицы прогнозирования единицы кодирования, и единица прогнозирования может быть сегментом, имеющим тот же размер, что и единица кодирования.
Например, когда единица кодирования в 2Nx2N (где N является положительным целым числом) более не разбивается и становится единицей прогнозирования в 2Nx2N, размер сегмента может составлять 2Nx2N, 2NxN, Nx2N или NxN. Примеры типа сегмента включают в себя симметричные сегменты, которые получаются посредством симметричного разбиения высоты или ширины единицы прогнозирования, сегменты, полученные посредством асимметричного разбиения высоты или ширины единицы прогнозирования, к примеру, 1:n или n:1, сегменты, которые получаются посредством геометрического разбиения единицы прогнозирования, и сегменты, имеющие произвольные формы.
Режим прогнозирования единицы прогнозирования может быть, по меньшей мере, одним из внутреннего режима, взаимного режима и режима пропуска. Например, внутренний режим или взаимный режим могут выполняться для сегмента в 2Nx2N, 2NxN, Nx2N или NxN. Кроме того, режим пропуска может выполняться только для сегмента в 2Nx2N. Кодирование независимо выполняется для одной единицы прогнозирования в единице кодирования, в силу этого выбирая режим прогнозирования, имеющий наименьшую ошибку кодирования.
Устройство 100 кодирования видео также может выполнять преобразование для данных изображений в единице кодирования на основе не только единицы кодирования для кодирования данных изображений, но также и на основе единицы данных, которая отличается от единицы кодирования.
Чтобы выполнять преобразование в единице кодирования, преобразование может выполняться на основе единицы данных, имеющей размер, меньший или равный единице кодирования. Например, единица данных может включать в себя единицу данных для внутреннего режима и единицу преобразования для взаимного режима.
1
2
Глубина преобразования, указывающая число разбиений, чтобы достигать единицы преобразования посредством разбиения высоты и ширины единицы кодирования, также может задаваться в единице преобразования. Например, в текущей единице кодирования в 2Nx2N, глубина преобразования может составлять 0, когда размер единицы преобразования также составляет 2Nx2N, может составлять 1, когда каждая из высоты и ширины текущей единицы кодирования разбивается на две равные части, полностью разбивается на 4 единицу преобразования, и размер единицы преобразования тем самым составляет NxN, и может составлять 2, когда каждая из высоты и ширины текущей единицы кодирования разбивается на четыре равные части, полностью разбивается на 4 единицы преобразования, и размер единицы преобразования тем самым составляет N/2xN/2. Например, единица преобразования может задаваться согласно иерархической древовидной структуре, в которой единица преобразования верхней глубины преобразования разбивается на четыре единицы преобразования с более низкой глубиной преобразования согласно иерархическим характеристикам глубины преобразования.
Аналогично единице кодирования, единица преобразования в единице кодирования может рекурсивно разбиваться на области меньших размеров, так что единица преобразования может быть определена независимо в единицах областей. Таким образом, остаточные данные в единице кодирования могут быть разделены согласно преобразованию, имеющему древовидную структуру согласно глубинам преобразования.
Информация кодирования согласно единицам кодирования, соответствующим кодированной глубине, требует не только информацию относительно кодированной глубины, но также и информацию, связанную с прогнозирующим кодированием и преобразованием. Соответственно, модуль 120 определения единиц кодирования не только определяет кодированную глубину, имеющую наименьшую ошибку кодирования, но также и определяет тип сегмента в единице прогнозирования, режим прогнозирования согласно единицам прогнозирования и размер единицы преобразования для преобразования.
Ниже подробно описывается способ определения единицы кодирования согласно древовидной структуре в максимальной единице кодирования, единицы прогнозирования, сегмента и единицы преобразования согласно вариантам осуществления настоящего изобретения, со ссылкой на фиг. 7-19.
Модуль 120 определения единиц кодирования может измерять ошибку кодирования более глубоких единиц кодирования согласно глубинам посредством использования оптимизации искажения в зависимости от скорости передачи на основе множителей Лагранжа.
Модуль 130 вывода выводит данные изображений максимальной единицы кодирования, которая кодируется на основе, по меньшей мере, одной кодированной глубины, определенной посредством модуля 120 определения единиц кодирования, и информации относительно режима кодирования согласно кодированной глубине в потоках битов.
Кодированные данные изображений могут быть получены посредством кодирования остаточных данных изображения.
Информация относительно режима кодирования согласно кодированной глубине может включать в себя информацию относительно кодированной глубины, относительно типа сегмента в единице прогнозирования, режима прогнозирования и размера единицы преобразования.
Информация относительно кодированной глубины может быть задана посредством использования информации разбиения согласно глубинам, которая указывает то, выполняется или нет кодирование для единиц кодирования нижней глубины вместо текущей глубины. Если текущая глубина текущей единицы кодирования является кодированной глубиной, данные изображений в текущей единице кодирования кодируется и выводятся, и тем самым информация разбиения может быть задана так, чтобы не разбивать текущую единицу кодирования до нижней глубины. Альтернативно, если текущая глубина текущей единицы кодирования не является кодированной глубиной, кодирование выполняется для единицы кодирования нижней глубины, и тем самым информация разбиения может быть задана так, чтобы разбивать текущую единицу кодирования, чтобы получать единицы кодирования нижней глубины.
Если текущая глубина не является кодированной глубиной, кодирование выполняется для единицы кодирования, которая разбивается на единицу кодирования нижней глубины. Поскольку, по меньшей мере, одна единица кодирования нижней глубины существует в одной единице кодирования текущей глубины, кодирование многократно выполняется для каждой единицы кодирования нижней глубины, и за счет этого кодирование может быть рекурсивно выполнено для единиц кодирования, имеющих идентичную глубину.
Поскольку единицы кодирования, имеющие древовидную структуру, определяются для одной максимальной единицы кодирования, и информация, по меньшей мере, относительно одного режима кодирования определяется для единицы кодирования кодированной глубины, информация, по меньшей мере, относительно одного режима кодирования может быть определена для одной максимальной единицы кодирования. Кроме того, кодированная глубина данных изображений максимальной единицы кодирования может отличаться согласно местоположениям, поскольку данные изображений иерархически разбиваются согласно глубинам, и тем самым информация относительно кодированной глубины и режима кодирования может задаваться для данных изображений.
Соответственно, модуль 130 вывода может назначать информацию кодирования относительно соответствующей кодированной глубины и режима кодирования, по меньшей мере, одной из единицы кодирования, единицы прогнозирования и минимальной единицы, включенной в максимальную единицу кодирования.
Минимальная единица согласно варианту осуществления настоящего изобретения является прямоугольной единицей данных, полученной посредством разбиения минимальной единицы кодирования, составляющей самую нижнюю глубину, на 4. Альтернативно, минимальная единица может быть максимальной прямоугольной единицей данных, которая может быть включена во все из единиц кодирования, единиц прогнозирования, единиц сегментирования и единиц преобразования, включенных в максимальную единицу кодирования.
Например, информация кодирования, выводимая через модуль 130 вывода, может классифицироваться на информацию кодирования согласно единицам кодирования и информацию кодирования согласно единицам прогнозирования. Информация кодирования согласно единицам кодирования может включать в себя информацию относительно режима прогнозирования и относительно размера сегментов. Информация кодирования согласно единицам прогнозирования может включать в себя информацию относительно оцененного направления взаимного режима, относительно индекса опорного изображения взаимного режима, относительно вектора движения, относительно компонента сигнала цветности внутреннего режима и относительно способа интерполяции внутреннего режима. Кроме того, информация относительно максимального размера единицы кодирования, заданного согласно изображениям, сериям последовательных макроблоков или GOP, и информация относительно максимальной глубины могут вставляться в заголовок потока битов, набор параметров последовательности или набор параметров изображения.
Кроме того, информация касательно максимального размера единицы преобразования, разрешенного относительно текущего видео, и информация касательно минимального размера единицы преобразования может выводиться через заголовок потока битов, набор параметров последовательности или набор параметров изображения. Модуль 130 вывода может кодировать и выводить ссылочную информацию, информацию двунаправленного прогнозирования, информацию типа серии последовательных макроблоков, включающую в себя четвертый тип серии последовательных макроблоков, и т.д., связанную с прогнозированием, описанным со ссылкой на фиг. 1-6.
В устройстве 100 кодирования видео, более глубокая единица кодирования может быть единицей кодирования, полученной посредством деления высоты или ширины единицы кодирования верхней глубины, которая на один слой выше, на два. Другими словами, когда размер единицы кодирования текущей глубины равен 2Nx2N, размер единицы кодирования нижней глубины равен NxN. Кроме того, единица кодирования текущей глубины, имеющей размер 2Nx2N, может включать в себя максимум 4 единицы кодирования нижней глубины.
Соответственно, устройство 100 кодирования видео может формировать единицы кодирования, имеющие древовидную структуру, посредством определения единиц кодирования, имеющих оптимальную форму и оптимальный размер для каждой максимальной единицы кодирования, на основе размера максимальной единицы кодирования и максимальной глубины, определенной с учетом характеристик текущего изображения. Кроме того, поскольку кодирование может выполняться для каждой максимальной единицы кодирования посредством использования любого из различных режимов прогнозирования и преобразований, оптимальный режим кодирования может быть определен с учетом характеристик единицы кодирования различных размеров изображения.
Таким образом, если изображение, имеющее высокое разрешение или большой объем данных, кодируется в традиционном макроблоке, число макроблоков в расчете на изображение чрезмерно увеличивается. Соответственно, число фрагментов сжатой информации, сформированной для каждого макроблока, увеличивается, и в силу этого трудно передавать сжатую информацию, и эффективность сжатия данных снижается. Тем не менее, посредством использования устройства 100 кодирования видео, эффективность сжатия изображений может быть повышена, поскольку единица кодирования регулируется с учетом характеристик изображения при увеличении максимального размера единицы кодирования с учетом размера изображения.
Устройство 100 кодирования видео по фиг. 8 может выполнять операции устройства 10 кодирования видео, описанного выше со ссылкой на фиг. 1.
Модуль 120 определения единиц кодирования может выполнять операции модуля 12 определения смещения устройства 10 кодирования видео. Модуль 120 определения единиц кодирования может определять значение смещения для каждого класса края посредством классификации пикселных значений согласно типам краев для каждой максимальной единицы кодирования или определять значение смещения для каждой полосы пикселных значений посредством классификации пикселных значений согласно типам полос пикселных значений. Значение смещения каждой группы пикселов, к примеру, класс края или полоса пикселных значений может быть средним значением ошибки между восстановленными пикселами и исходными пикселами, включенными в соответствующую группу пикселов. В качестве другого примера, класс края и значение смещения или полоса пикселных значений и значение смещения могут быть определены для каждой предварительно определенной единицы данных, такой как единица кодирования, единица прогнозирования и единица преобразования.
Модуль 130 вывода может кодировать тип смещения и значения смещения из параметров смещения, определенных для каждой максимальной единицы кодирования. В случае если параметр смещения определяется для каждой предварительно определенной единицы данных, такой как единица кодирования, единица прогнозирования и единица преобразования, тип смещения и значения смещения могут быть кодированы как параметры соответствующей единицы данных.
Модуль 130 вывода может выполнять прогнозирующее кодирование для текущего параметра смещения текущей максимальной единицы кодирования посредством обращения к соседним параметрам смещения соседних максимальных единиц кодирования. Модуль 130 вывода может кодировать информацию объединения смещений для текущей максимальной единицы кодирования без кодирования текущего параметра смещения, если, по меньшей мере, один из соседних параметров смещения является идентичным текущему параметру смещения. Модуль 130 вывода может кодировать информацию объединения смещений и текущий параметр смещения для текущей максимальной единицы кодирования, если соседние параметры смещения и текущий параметр смещения отличаются друг от друга.
Фиг. 9 является блок-схемой устройства 200 декодирования видео на основе единиц кодирования, имеющих древовидную структуру, согласно варианту осуществления настоящего изобретения.
Устройство 200 декодирования видео, заключающее в себе прогнозирование видео на основе единиц кодирования, имеющих древовидную структуру согласно варианту осуществления, включает в себя приемное устройство 210, модуль 220 извлечения данных изображений и информации кодирования и декодер 230 данных изображений. Для удобства описания, устройство 200 декодирования видео, заключающее в себе прогнозирование видео на основе единиц кодирования, имеющих древовидную структуру согласно варианту осуществления, в дальнейшем упоминается как "устройство 200 декодирования видео".
Определения различных терминов, таких как единица кодирования, глубина, единица прогнозирования, единица преобразования и информация относительно различных режимов кодирования, для различных операций устройства 200 декодирования видео являются идентичными определениям, описанным со ссылкой на фиг. 7 и устройство 100 кодирования видео.
Приемное устройство 210 принимает и синтаксически анализирует поток битов кодированного видео. Модуль 220 извлечения данных изображений и информации кодирования извлекает кодированные данные изображений для каждой единицы кодирования из синтаксически проанализированного потока битов, при этом единицы кодирования имеют древовидную структуру согласно каждой максимальной единице кодирования, и выводит извлеченные данные изображений в декодер 230 данных изображений. Модуль 220 извлечения данных изображений и информации кодирования может извлекать информацию относительно максимального размера единицы кодирования текущего изображения из заголовка относительно текущего изображения или SPS.
Кроме того, модуль 220 извлечения данных изображений и информации кодирования извлекает информацию относительно кодированной глубины и режима кодирования для единиц кодирования, имеющих древовидную структуру, согласно каждой максимальной единице кодирования из синтаксически проанализированного потока битов. Извлеченная информация относительно кодированной глубины и режима кодирования выводится в декодер 230 данных изображений. Другими словами, данные изображений в потоке битов разбиваются на максимальные единицы кодирования так, что декодер 230 данных изображений декодирует данные изображений для каждой максимальной единицы кодирования.
Информация относительно кодированной глубины и режима кодирования согласно максимальной единице кодирования может задаваться для информации относительно, по меньшей мере, одной единицы кодирования, соответствующей кодированной глубине, и информация относительно режима кодирования может включать в себя информацию относительно типа сегмента соответствующей единицы кодирования, соответствующей кодированной глубине, относительно режима прогнозирования и размера единицы преобразования. Кроме того, информация разбиения согласно глубинам может быть извлечена в качестве информации относительно кодированной глубины.
Информация относительно кодированной глубины и режима кодирования согласно каждой максимальной единице кодирования, извлеченной посредством модуля 220 извлечения данных изображений и информации кодирования, является информацией относительно определенной кодированной глубины и режима кодирования, чтобы формировать минимальную ошибку кодирования, когда кодер, такой как устройство 100 кодирования видео, многократно выполняет кодирование для каждой более глубокой единицы кодирования согласно глубинам согласно каждой максимальной единице кодирования. Соответственно, устройство 200 декодирования видео может восстанавливать изображение посредством декодирования данных изображений согласно кодированной глубине и режиму кодирования, который формирует минимальную ошибку кодирования.
Поскольку информация кодирования относительно кодированной глубины и режима кодирования может назначаться предварительно определенной единице данных из соответствующей единицы кодирования, единицы прогнозирования и минимальной единицы, модуль 220 извлечения данных изображений и информации кодирования может извлекать информацию относительно кодированной глубины и режима кодирования согласно предварительно определенным единицам данных. Предварительно определенные единицы данных, которым назначается идентичная информация относительно кодированной глубины и режима кодирования, могут логически выводиться как единицы данных, включенные в идентичную максимальную единицу кодирования.
Декодер 230 данных изображений восстанавливает текущее изображение посредством декодирования данных изображений в каждой максимальной единице кодирования на основе информации относительно кодированной глубины и режима кодирования согласно максимальным единицам кодирования. Другими словами, декодер 230 данных изображений может декодировать кодированные данные изображений на основе извлеченной информации относительно типа сегмента, режима прогнозирования и единицы преобразования для каждой единицы кодирования из единиц кодирования, имеющих в себя древовидную структуру, включенных в каждую максимальную единицу кодирования. Процесс декодирования может включать в себя прогнозирование, включающее в себя внутреннее прогнозирование и компенсацию движения, а также обратное преобразование. Обратное преобразование может выполняться согласно способу обратного ортогонального преобразования или обратного целочисленного преобразования.
Декодер 230 данных изображений может выполнять внутреннее прогнозирование или компенсацию движения согласно сегменту и режиму прогнозирования каждой единицы кодирования на основе информации относительно типа сегмента и режима прогнозирования единицы прогнозирования единицы кодирования согласно кодированным глубинам.
Кроме того, декодер 230 данных изображений может выполнять обратное преобразование согласно каждой единице преобразования в единице кодирования на основе информации относительно размера единицы преобразования единицы кодирования согласно кодированным глубинам, с тем чтобы выполнять обратное преобразование согласно максимальным единицам кодирования.
Декодер 230 данных изображений может определять, по меньшей мере, одну кодированную глубину текущей максимальной единицы кодирования посредством использования информации разбиения согласно глубинам. Если информация разбиения указывает то, что данные изображений более не разбиваются при текущей глубине, текущая глубина является кодированной глубиной. Соответственно, декодер 230 данных изображений может декодировать кодированные данные, по меньшей мере, одной единицы кодирования, соответствующей каждой кодированной глубине в текущей максимальной единице кодирования, посредством использования информации относительно типа сегмента единицы прогнозирования, режима прогнозирования и размера единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, и выводить данные изображений текущей максимальной единицы кодирования.
Другими словами, единицы данных, содержащие информацию кодирования, включающую в себя идентичную информацию разбиения, могут собираться посредством наблюдения набора информации кодирования, назначаемого для предварительно определенной единицы данных из единицы кодирования, единицы прогнозирования и минимальной единицы, и собранные единицы данных могут рассматриваться как одна единица данных, которая должна быть декодирована посредством декодера 230 данных изображений в одном режиме кодирования. Декодирование в текущей единице декодирования может быть выполнено посредством получения информации касательно режима кодирования для единицы кодирования, определенной так, как описано выше.
Кроме того, устройство 200 декодирования видео по фиг. 9 может выполнять операции устройства 20 декодирования видео, описанного выше со ссылкой на фиг. 2.
Приемное устройство 210 и модуль 220 извлечения данных изображений и информации кодирования могут выполнять операции модуля 22 синтаксического анализа параметров смещения устройства 20 декодирования видео. Декодер 230 данных изображений может выполнять операции модуля 24 регулирования смещения устройства 20 декодирования видео.
Модуль 220 извлечения данных изображений и информации кодирования может восстанавливать текущий параметр смещения, идентичный, по меньшей мере, одному из соседних параметров смещения, в случае если информация объединения смещений только синтаксически анализируется из потока битов без параметра смещения для текущей максимальной единицы кодирования. Параметр, к которому следует обращаться из числа соседних параметров смещения, может быть определен на основе информации объединения смещений. Модуль 220 извлечения данных изображений и информации кодирования может синтаксически анализировать и восстанавливать текущий параметр смещения для текущей максимальной единицы кодирования из потока битов, если определяется, что соседние параметры смещения и текущий параметр смещения отличаются друг от друга, на основе информации объединения смещений для текущей максимальной единицы кодирования, синтаксически проанализированной из потока битов.
Модуль 220 извлечения данных изображений и информации кодирования может выполнять прогнозирующее восстановление для текущего параметра смещения в текущей максимальной единице кодирования посредством обращения к соседним параметрам смещения соседних максимальных единиц кодирования.
Декодер 230 данных изображений может синтаксически анализировать параметр смещения для каждой максимальной единицы кодирования из потока битов. То, представляет собой тип смещения текущей максимальной единицы кодирования тип края или тип полосы пикселных значений, может быть определено из восстановленных параметров смещения. Если тип смещения текущей максимальной единицы кодирования представляет собой тип края, может быть определен класс края для каждого восстановленного пиксела, и значение смещения, соответствующее классу края каждого восстановленного пиксела, может быть выбрано из значений смещения параметров смещения. Если тип смещения текущей максимальной единицы кодирования представляет собой тип полосы пикселных значений, может быть определена каждая полоса пикселных значений для каждого восстановленного пиксела, и значение смещения, соответствующее полосе пикселных значений каждого восстановленного пиксела, может быть выбрано из значений смещения, синтаксически проанализированных и включенных в параметры смещения.
Декодер 230 данных изображений может формировать восстановленный пиксел, имеющий минимальную ошибку относительно исходного пиксела, посредством регулирования соответствующего восстановленного пикселного значения посредством значения смещения, соответствующего каждому восстановленному пикселу. В качестве другого примера, в случае если параметр смещения синтаксически анализируется для каждой предварительно определенной единицы данных, такой как единица кодирования, единица прогнозирования и единица преобразования, значение смещения, соответствующее каждому классу края, может быть восстановлено для соответствующей единицы данных, или значение смещения, соответствующее каждой полосе пикселных значений, может быть восстановлено.
В заключение, устройство 200 декодирования видео может получать информацию относительно, по меньшей мере, одной единицы кодирования, которая формирует минимальную ошибку кодирования, когда кодирование рекурсивно выполняется для каждой максимальной единицы кодирования, и может использовать эту информацию для того, чтобы декодировать текущее изображение. Другими словами, могут быть декодированы единицы кодирования, имеющие древовидную структуру, определенные как оптимальные единицы кодирования в каждой максимальной единице кодирования. Кроме того, максимальный размер единицы кодирования определяется с учетом разрешения и объема данных изображений.
Соответственно, даже если данные изображений имеют высокое разрешение и большой объем данных, данные изображений могут быть эффективно декодированы и восстановлены посредством использования размера единицы кодирования и режима кодирования, которые адаптивно определяются согласно характеристикам данных изображений, посредством использования информации относительно оптимального режима кодирования, принимаемой из кодера.
Фиг. 10 является схемой для описания принципа единиц кодирования согласно варианту осуществления настоящего изобретения.
Размер единицы кодирования может выражаться как "ширина x высота" и может составлять 64x64, 32x32, 16x16 и 8x8. Единица кодирования в 64x64 может разбиваться на сегменты в 64x64, 64x32, 32x64 или 32x32, и единица кодирования в 32x32 может разбиваться на сегменты в 32x32, 32x16, 16x32 или 16x16, единица кодирования в 16x16 может разбиваться на сегменты в 16x16, 16x8, 8x16 или 8x8, и единица кодирования в 8x8 может разбиваться на сегменты в 8x8, 8x4, 4x8 или 4x4.
В видеоданных 310, разрешение составляет 1920x1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 2. В видеоданных 320, разрешение составляет 1920x1080, максимальный размер единицы кодирования равен 64, и максимальная глубина равна 3. В видеоданных 330, разрешение составляет 352x288, максимальный размер единицы кодирования равен 16, и максимальная глубина равна 1. Максимальная глубина, показанная на фиг. 10, обозначает общее число разбиений от максимальной единицы кодирования до минимальной единицы кодирования.
Если разрешение является высоким, или объем данных является большим, максимальный размер единицы кодирования может быть большим, с тем чтобы не только повышать эффективность кодирования, но также и точно отражать характеристики изображения. Соответственно, максимальный размер единицы кодирования видеоданных 310 и 320, имеющих более высокое разрешение, чем видеоданные 330, может составлять 64.
Поскольку максимальная глубина видеоданных 310 равна 2, единицы 315 кодирования видеоданных 310 могут включать в себя максимальную единицу кодирования, имеющую размер продольной оси в 64, и единицы кодирования, имеющие размеры продольной оси в 32 и 16, поскольку глубины увеличиваются на два уровня посредством разбиения максимальной единицы кодирования два раза. Между тем, поскольку максимальная глубина видеоданных 330 равна 1, единицы кодирования 335 видеоданных 330 могут включать в себя максимальную единицу кодирования, имеющую размер продольной оси в 16, и единицы кодирования, имеющие размер продольной оси в 8, поскольку глубины увеличиваются на один уровень посредством разбиения максимальной единицы кодирования один раз.
Поскольку максимальная глубина видеоданных 320 равна 3, единицы 325 кодирования видеоданных 320 могут включать в себя максимальную единицу кодирования, имеющую размер продольной оси в 64, и единицы кодирования, имеющие размеры продольной оси в 32, 16 и 8, поскольку глубины увеличиваются на 3 уровня посредством разбиения максимальной единицы кодирования три раза. По мере того, как увеличивается глубина, подробная информация может точно выражаться.
Фиг. 11 является блок-схемой кодера 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 определяет размер единицы преобразования в каждой единице кодирования из единиц кодирования, имеющих древовидную структуру.
Кодер 400 изображений может классифицировать пикселы согласно типу края (или полосе пикселных значений) для каждой максимальной единицы кодирования опорного кадра 495, определять класс края (или полосу пикселных значений) для каждого восстановленного пиксела и определять среднее значение ошибки восстановленных пикселов, которые принадлежат каждому классу края (или каждой полосе пикселных значений). Типы смещений и значения смещения для каждой максимальной единицы кодирования могут быть кодированы и переданы или приняты и декодированы.
Фиг. 12 является блок-схемой декодера 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 выполняет операции на основе размера единицы преобразования для каждой единицы кодирования.
Декодер 500 изображений может извлекать параметры смещения максимальных единиц кодирования из потока битов и регулировать каждый восстановленный пиксел для каждой максимальной единицы кодирования восстановленного кадра 595 посредством значения смещения, соответствующего соответствующему классу края или полосе пикселных значений, посредством использования типов смещений и значений смещения, включенных в параметры смещения.
Фиг. 13 является схемой, иллюстрирующей более глубокие единицы кодирования согласно глубинам и сегменты согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические единицы кодирования с тем, чтобы учитывать характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина единиц кодирования могут быть адаптивно определены согласно характеристикам изображения или могут быть по-другому заданы пользователем. Размеры более глубоких единиц кодирования согласно глубинам могут быть определены согласно предварительно определенному максимальному размеру единицы кодирования.
В иерархической структуре 600 единиц кодирования, согласно варианту осуществления настоящего изобретения, максимальная высота и максимальная ширина единиц кодирования равны 64, а максимальная глубина равна 4. Поскольку глубина увеличивается вдоль вертикальной оси иерархической структуры 600, высота и ширина более глубокой единицы кодирования разбиваются. Кроме того, единица прогнозирования и сегменты, которые являются базисами для прогнозирующего кодирования каждой более глубокой единицы кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
Другими словами, единица 610 кодирования является максимальной единицей кодирования в иерархической структуре 600, в которой глубина равна 0, а размер, т.е. высота на ширину, равен 64x64. Глубина увеличивается вдоль вертикальной оси, и существуют единица кодирования 620, имеющая размер 32x32 и глубину в 1, единица кодирования 630, имеющая размер 16x16 и глубину в 2, единица 640 кодирования, имеющая размер 8x8 и глубину 3, и единица кодирования 650, имеющая размер 4x4 и глубину 4. Единица 650 кодирования, имеющая размер 4x4 и глубину 4, является минимальной единицей кодирования.
Единица прогнозирования и сегменты единицы кодирования размещаются вдоль горизонтальной оси согласно каждой глубине. Другими словами, если единица 610 кодирования, имеющая размер 64x64 и глубину 0, является единицей прогнозирования, единица прогнозирования может разбиваться на сегменты, включенные в единицу 610 кодирования, т.е. на сегмент 610, имеющий размер 64x64, сегменты 612, имеющие размер 64x32, сегменты 614, имеющие размер 32x64, или сегменты 616, имеющие размер 32x32.
Аналогично, единица прогнозирования единицы 620 кодирования, имеющей размер 32x32 и глубину в 1, может разбиваться на сегменты, включенные в единицу 620 кодирования, т.е. на сегмент 620, имеющий размер 32x32, сегменты 622, имеющие размер 32x16, сегменты 624, имеющие размер 16x32, и сегменты 626, имеющие размер 16x16.
Аналогично, единица прогнозирования единицы 630 кодирования, имеющей размер 16x16 и глубину в 2, может разбиваться на сегменты, включенные в единицу 630 кодирования, т.е. на сегмент, имеющий размер 16x16, включенный в единицу 630 кодирования, сегменты 632, имеющие размер 16x8, сегменты 634, имеющие размер 8x16, и сегменты 636, имеющие размер 8x8.
Аналогично, единица прогнозирования единицы 640 кодирования, имеющей размер 8x8 и глубину 3, может разбиваться на сегменты, включенные в единицу 640 кодирования, т.е. на сегмент, имеющий размер 8x8, включенный в единицу 640 кодирования, сегменты 642, имеющие размер 8x4, сегменты 644, имеющие размер 4x8, и сегменты 646, имеющие размер 4x4.
Единица 650 кодирования, имеющая размер 4x4 и глубину 4, является минимальной единицей кодирования и единицей кодирования самой нижней глубины. Единица прогнозирования единицы 650 кодирования назначается только сегменту, имеющему размер 4x4.
Чтобы определять, по меньшей мере, одну кодированную глубину единиц кодирования, составляющих максимальную единицу 610 кодирования, модуль 120 определения единиц кодирования устройства 100 кодирования видео выполняет кодирование для единиц кодирования, соответствующих каждой глубине, включенной в максимальную единицу 610 кодирования.
Число более глубоких единиц кодирования согласно глубинам, включающим в себя данные в идентичном диапазоне и идентичного размера, увеличивается по мере того, как увеличивается глубина. Например, четыре единицы кодирования, соответствующие глубине 2, требуются для того, чтобы охватывать данные, которые включаются в одну единицу кодирования, соответствующую глубине 1. Соответственно, чтобы сравнивать результаты кодирования идентичных данных согласно глубинам, кодируются единица кодирования, соответствующая глубине 1, и четыре единицы кодирования, соответствующие глубине 2.
Чтобы выполнять кодирование для текущей глубины из глубин, наименьшая ошибка кодирования может быть выбрана для текущей глубины посредством выполнения кодирования для каждой единицы прогнозирования в единицах кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, минимальная ошибка кодирования может находиться посредством сравнения наименьших ошибок кодирования согласно глубинам, посредством выполнения кодирования для каждой глубины по мере того, как глубина увеличивается вдоль вертикальной оси иерархической структуры 600. Глубина и сегмент, имеющие минимальную ошибку кодирования в единице 610 кодирования, могут быть выбраны в качестве кодированной глубины и типа сегмента единицы 610 кодирования.
Фиг. 14 является схемой для описания взаимосвязи между единицей 710 кодирования и единицами 720 преобразования, согласно варианту осуществления настоящего изобретения.
Устройство 100 или 200 кодирования видео кодирует или декодирует изображение согласно единицам кодирования, имеющим размеры, меньшие или равные максимальной единице кодирования для каждой максимальной единицы кодирования. Размеры единиц преобразования для преобразования во время кодирования могут быть выбраны на основе единиц данных, которые не больше соответствующей единицы кодирования.
Например, в устройстве 100 или 200 кодирования видео, если размер единицы 710 кодирования составляет 64x64, преобразование может выполняться посредством использования единиц 720 преобразования, имеющих размер 32x32.
Кроме того, данные единицы 710 кодирования, имеющей размер 64x64, могут быть кодированы посредством выполнения преобразования для каждой из единиц преобразования, имеющих размер 32x32, 16x16, 8x8 и 4x4, которые меньше 64x64, а затем может быть выбрана единица преобразования, имеющая наименьшую ошибку кодирования.
Фиг. 15 является схемой для описания информации кодирования единиц кодирования, соответствующих кодированной глубине, согласно варианту осуществления настоящего изобретения.
Модуль 130 вывода устройства 100 кодирования видео может кодировать и передавать информацию 800 относительно типа сегмента, информацию 810 относительно режима прогнозирования и информацию 820 относительно размера единицы преобразования для каждой единицы кодирования, соответствующей кодированной глубине, в качестве информации относительно режима кодирования.
Информация 800 указывает информацию относительно формы сегмента, полученного посредством разбиения единицы прогнозирования текущей единицы кодирования, при этом сегмент является единицей данных для прогнозирующего кодирования текущей единицы кодирования. Например, текущая единица кодирования CU_0, имеющая размер 2Nx2N, может разбиваться на любой из сегмента 802, имеющего размер 2Nx2N, сегмента 804, имеющего размер 2NxN, сегмента 806, имеющего размер Nx2N, и сегмента 808, имеющего размер NxN. Здесь, информация 800 относительно типа сегмента задается так, что она указывает одно из сегмента 804, имеющего размер 2NxN, сегмента 806, имеющего размер Nx2N, и сегмента 808, имеющего размер NxN.
Информация 810 указывает режим прогнозирования каждого сегмента. Например, информация 810 может указывать режим прогнозирующего кодирования, выполняемого для сегмента, указываемого посредством информации 800, т.е. внутренний режим 812, взаимный режим 814 или режим 816 пропуска.
Информация 820 указывает единицу преобразования, на которой следует базироваться, когда преобразование выполняется для текущей единицы кодирования. Например, единица преобразования может быть первой единицей 822 внутреннего преобразования, второй единицей 824 внутреннего преобразования, первой единицей взаимного преобразования 826 или второй единицей 828 взаимного преобразования.
Модуль 220 извлечения данных изображений и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию 800, 810 и 820 для декодирования согласно каждой более глубокой единице кодирования.
Фиг. 16 является схемой более глубоких единиц кодирования согласно глубинам, согласно варианту осуществления настоящего изобретения.
Информация разбиения может быть использована для того, чтобы указывать изменение глубины. Информация разбиения указывает то, разбивается или нет единица кодирования текущей глубины на единицы кодирования нижней глубины.
Единица 910 прогнозирования для прогнозирующего кодирования единицы 900 кодирования, имеющей глубину 0 и размер 2N_0x2N_0, может включать в себя сегменты типа 912 сегмента, имеющего размер 2N_0x2N_0, типа 914 сегмента, имеющего размер 2N_0xN_0, типа 916 сегмента, имеющего размер N_0x2N_0, и типа 918 сегмента, имеющего размер N_0xN_0. Фиг. 16 иллюстрирует только типы 912-918 сегментов, которые получаются посредством симметричного разбиения единицы 910 прогнозирования, но тип сегмента не ограничен этим, и сегменты единицы 910 прогнозирования могут включать в себя асимметричные сегменты, сегменты, имеющие предварительно определенную форму, и сегменты, имеющие геометрическую форму.
Прогнозирующее кодирование многократно выполняется для одного сегмента, имеющего размер 2N_0x2N_0, двух сегментов, имеющих размер 2N_0xN_0, двух сегментов, имеющих размер N_0x2N_0, и четырех сегментов, имеющих размер N_0xN_0, согласно каждому типу сегмента. Прогнозирующее кодирование во внутреннем режиме и взаимном режиме может выполняться для сегментов, имеющих размеры 2N_0x2N_0, N_0x2N_0, 2N_0xN_0 и N_0xN_0. Прогнозирующее кодирование в режиме пропуска выполняется только для сегмента, имеющем размер 2N_0x2N_0.
Ошибки кодирования, включающего в себя прогнозирующее кодирование, в типах 912-918 сегментов сравниваются, и определяется наименьшая ошибка кодирования для типов сегментов. Если ошибка кодирования является наименьшей в одном из типов 912-916 сегментов, единица 910 прогнозирования может не разбиваться на нижнюю глубину.
Если ошибка кодирования является наименьшей в типе 918 сегмента, глубина изменяется с 0 на 1, чтобы разбивать тип 918 сегмента, на этапе 920, и кодирование многократно выполняется для единиц 930 кодирования, имеющих глубину в 2 и размер N_0xN_0, чтобы выполнять поиск минимальной ошибки кодирования.
Единица 940 прогнозирования для прогнозирующего кодирования единицы 930 кодирования, имеющей глубину в 1 и размер 2N_1x2N_1 (=N_0xN_0), может включать в себя сегменты типа 942 сегмента, имеющего размер 2N_1x2N_1, типа 944 сегмента, имеющего размер 2N_1xN_1, типа 946 сегмента, имеющего размер N_1x2N_1, и типа 948 сегмента, имеющего размер N_1xN_1.
Если ошибка кодирования является наименьшей в типе 948 сегмента, глубина изменяется от 1 до 2, чтобы разбивать тип 948 сегмента, на этапе 950, и кодирование многократно выполняется для единиц 960 кодирования, которые имеют глубину в 2 и размер N_2xN_2, чтобы выполнять поиск минимальной ошибки кодирования.
Когда максимальная глубина составляет d, операция разбиения согласно каждой глубине может выполняться до того, когда глубина становится d-1, и информация разбиения может быть кодирована до того, когда глубина составляет одно из 0-d-2. Другими словами, когда кодирование выполняется до того, когда глубина составляет d-1, после того как единица кодирования, соответствующая глубине d-2, разбивается на этапе 970, единица 990 прогнозирования для прогнозирующего кодирования единицы 980 кодирования, имеющей глубину d-1 и размер 2N_(d-1)x2N_(d-1), может включать в себя сегменты типа 992 сегмента, имеющего размер 2N_(d-1)x2N_(d-1), типа 994 сегмента, имеющего размер 2N_(d-1)xN_(d-1), типа 996 сегмента, имеющего размер N_(d-1)x2N_(d-1), и типа 998 сегмента, имеющего размер N_(d-1)xN_(d-1).
Прогнозирующее кодирование может многократно выполняться для одного сегмента, имеющего размер 2N_(d-1)x2N_(d-1), двух сегментов, имеющих размер 2N_(d-1)xN_(d-1), двух сегментов, имеющих размер N_(d-1)x2N_(d-1), четырех сегментов, имеющих размер N_(d-1)xN_(d-1), из типов 992-998 сегментов, чтобы выполнять поиск типа сегмента, имеющего минимальную ошибку кодирования.
Даже когда тип 998 сегмента имеет минимальную ошибку кодирования, поскольку максимальная глубина составляет d, единица кодирования CU_(d-1), имеющая глубину d-1, более не разбивается до нижней глубины, и кодированная глубина для единиц кодирования, составляющих текущую максимальную единицу 900 кодирования, определяется как d-1, и тип сегмента текущей максимальной единицы 900 кодирования может быть определен как N_(d-1)xN_(d-1). Кроме того, поскольку максимальная глубина составляет d, и минимальная единица 980 кодирования, имеющая самую нижнюю глубину d-1, более не разбивается до нижней глубины, информация разбиения для минимальной единицы 980 кодирования не задается.
Единица 999 данных может быть "минимальной единицей" для текущей максимальной единицы кодирования. Минимальная единица согласно варианту осуществления настоящего изобретения может быть прямоугольной единицей данных, полученной посредством разбиения минимальной единицы 980 кодирования на 4. Посредством многократного выполнения кодирования, устройство 100 кодирования видео может выбирать глубину, имеющую наименьшую ошибку кодирования, посредством сравнения ошибок кодирования согласно глубинам единицы 900 кодирования, чтобы определять кодированную глубину и задавать соответствующий тип сегмента и режим прогнозирования в качестве режима кодирования кодированной глубины.
Также, минимальные ошибки кодирования согласно глубинам сравниваются во всех глубинах 1-d, и глубина, имеющая наименьшую ошибку кодирования, может быть определена в качестве кодированной глубины. Кодированная глубина, тип сегмента единицы прогнозирования и режим прогнозирования могут быть кодированы и переданы в качестве информации относительно режима кодирования. Кроме того, поскольку единица кодирования разбивается от глубины в 0 до кодированной глубины, только информация разбиения кодированной глубины задается равной 0, а информация разбиения глубин за исключением кодированной глубины задается равной 1.
Модуль 220 извлечения данных изображений и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию относительно кодированной глубины и единицы прогнозирования единицы 900 кодирования, чтобы декодировать сегмент 912. Устройство 200 декодирования видео может определять глубину, при которой информация разбиения равна 0, в качестве кодированной глубины посредством использования информации разбиения согласно глубинам и использовать информацию относительно режима кодирования соответствующей глубины для декодирования.
Фиг. 17-18 являются схемами для описания взаимосвязи между единицами 1010 кодирования, единицами 1060 прогнозирования и единицами 1070 преобразования, согласно варианту осуществления настоящего изобретения.
Единицы 1010 кодирования являются единицами кодирования, имеющими древовидную структуру согласно кодированным глубинам, определенным посредством устройства 100 кодирования видео, в максимальной единице кодирования. Единицы 1060 прогнозирования являются сегментами единиц прогнозирования каждой из единиц 1010 кодирования, и единицы 1070 преобразования являются единицами преобразования каждой из единиц 1010 кодирования.
Когда глубина максимальной единицы кодирования равна 0 в единицах 1010 кодирования, глубины единиц 1012 и 1054 кодирования равны 1, глубины единиц 1014, 1016, 1018, 1028, 1050 и 1052 кодирования равны 2, глубины единиц 1020, 1022, 1024, 1026, 1030, 1032 и 1048 кодирования равны 3, а глубины единиц 1040, 1042, 1044 и 1046 кодирования равны 4.
В единицах прогнозирования 1060, некоторые единицы 1014, 1016, 1022, 1032, 1048, 1050, 1052 и 1054 кодирования получаются посредством разбиения единиц кодирования в единицах 1010 кодирования. Другими словами, типы сегментов в единицах 1014, 1022, 1050 и 1054 кодирования имеют размер 2NxN, типы сегментов в единицах 1016, 1048 и 1052 кодирования имеют размер Nx2N, и тип сегмента единицы 1032 кодирования имеет размер NxN. Единицы прогнозирования и сегменты единиц 1010 кодирования меньше или равны каждой единицы кодирования.
Преобразование или обратное преобразование выполняется для данных изображений единицы 1052 кодирования в единицах 1070 преобразования в единице данных, которая меньше единицы 1052 кодирования. Кроме того, единицы 1014, 1016, 1022, 1032, 1048, 1050 и 1052 кодирования в единицах 1070 преобразования отличаются от единиц кодирования в единицах 1060 прогнозирования с точки зрения размеров и форм. Другими словами, устройства 100 и 200 кодирования и декодирования видео могут выполнять внутреннее прогнозирование, оценку движения, компенсацию движения, преобразование и обратное преобразование по отдельности для единицы данных в идентичной единице кодирования.
Соответственно, кодирование рекурсивно выполняется для каждой из единиц кодирования, имеющих иерархическую структуру в каждой области максимальной единицы кодирования, чтобы определять оптимальную единицу кодирования, и за счет этого могут быть получены единицы кодирования, имеющие рекурсивную древовидную структуру. Информация кодирования может включать в себя информацию разбиения относительно единицы кодирования, информацию относительно типа сегмента, информацию относительно режима прогнозирования и информацию относительно размера единицы преобразования. Таблица 1 показывает информацию кодирования, которая может задаваться посредством устройств 100 и 200 кодирования и декодирования видео.
<b>Таблица 1</b>
Информация 0 разбиения (кодирование для единицы кодирования, имеющей размер 2Nx2N и текущую глубину d)
Информация 1 разбиения
Режим прогнози-рования
Тип сегмента
Размер единицы преобразования
Многократное кодирование единиц кодирования, имеющих нижнюю глубину d+1
ВнутреннийВзаимныйПропуск (только 2Nx2N)
Тип симметрич-ного сегмента
Тип асимметричного сегмента
Информация 0 разбиения единицы преобразования
Информация 1 разбиения единицы преобразования
2Nx2N2NxNNx2NNxN
2NxnU2NxnDnLx2NnRx2N
2Nx2N
NxN(симметричный тип)N/2xN/2(асимметричный тип)
Модуль 130 вывода устройства 100 кодирования видео может выводить информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, и модуль 220 извлечения данных изображений и информации кодирования устройства 200 декодирования видео может извлекать информацию кодирования относительно единиц кодирования, имеющих древовидную структуру, из принимаемого потока битов.
Информация разбиения указывает то, разбивается или нет текущая единица кодирования на единицы кодирования нижней глубины. Если информация разбиения текущей глубины d равна 0, глубина, при которой текущая единица кодирования более не разбивается в нижнюю глубину, является кодированной глубиной, и тем самым информация относительно типа сегмента, режима прогнозирования и размера единицы преобразования может быть задана для кодированной глубины. Если текущая единица кодирования дополнительно разбивается согласно информации разбиения, кодирование независимо выполняется для четырех единиц кодирования разбиения нижней глубины.
Режим прогнозирования может быть одним из внутреннего режима, взаимного режима и режима пропуска. Внутренний режим и взаимный режим могут быть заданы во всех типах сегментов, а режим пропуска задается только в типе сегмента, имеющем размер 2Nx2N.
Информация относительно типа сегмента может указывать типы симметричных сегментов, имеющие размеры 2Nx2N, 2NxN, Nx2N и NxN, которые получаются посредством симметричного разбиения высоты или ширины единицы прогнозирования, и типы асимметричных сегментов, имеющих размеры 2NxnU, 2NxnD, nLx2N и nRx2N, которые получаются посредством асимметричного разбиения высоты или ширины единицы прогнозирования. Типы асимметричных сегментов, имеющих размеры 2NxnU и 2NxnD, могут быть получены, соответственно, посредством разбиения высоты единицы прогнозирования в 1:3 и 3:1, а типы асимметричных сегментов, имеющих размеры nLx2N, и nRx2N, могут быть получены, соответственно, посредством разбиения ширины единицы прогнозирования в 1:3 и 3:1.
Размер единицы преобразования может задаваться как два типа во внутреннем режиме и два типа во взаимном режиме. Другими словами, если информация разбиения единицы преобразования равна 0, размер единицы преобразования может составлять 2Nx2N, что является размером текущей единицы кодирования. Если информация разбиения единицы преобразования равна 1, единицы преобразования могут быть получены посредством разбиения текущей единицы кодирования. Кроме того, если типом сегмента текущей единицы кодирования, имеющей размер 2Nx2N, является тип симметричного сегмента, размер единицы преобразования может составлять NxN, а если типом сегмента текущей единицы кодирования является тип асимметричного сегмента, размер единицы преобразования может составлять N/2xN/2.
Информация кодирования относительно единиц кодирования, имеющих древовидную структуру, может включать в себя, по меньшей мере, одну из единицы кодирования, соответствующей кодированной глубине, единицы прогнозирования и минимальной единицы. Единица кодирования, соответствующая кодированной глубине, может включать в себя, по меньшей мере, одну из единицы прогнозирования и минимальной единицы, содержащей идентичную информацию кодирования.
Соответственно, определяется то, включаются или нет смежные единицы данных в идентичную единицу кодирования, соответствующую кодированной глубине, посредством сравнения информации кодирования смежных единиц данных. Кроме того, соответствующая единица кодирования, соответствующая кодированной глубине, определяется посредством использования информации кодирования единицы данных, и за счет этого может быть определено распределение кодированных глубин в максимальной единице кодирования.
Соответственно, если текущая единица кодирования прогнозируется на основе информации кодирования смежных единиц данных, можно обращаться непосредственно к информации кодирования единиц данных в более глубоких единицах кодирования, смежных с текущей единицей кодирования, и она может использоваться.
Альтернативно, если текущая единица кодирования прогнозируется на основе информации кодирования смежных единиц данных, единицы данных, смежные с текущей единицей кодирования, ищутся с использованием кодированной информации единиц данных, и к искомым смежным единицам кодирования можно обращаться для прогнозирования текущей единицы кодирования.
Фиг. 20 является схемой для описания взаимосвязи между единицей кодирования, единицей прогнозирования или сегментом и единицей преобразования, согласно информации режима кодирования по таблице 1.
Максимальная единица 1300 кодирования включает в себя единицы 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодирования кодированных глубин. Здесь, поскольку единица 1318 кодирования является единицей кодирования кодированной глубины, информация разбиения может задаваться равной 0. Информация относительно типа сегмента единицы 1318 кодирования, имеющей размер 2Nx2N, может задаваться как одно из типа 1322 сегмента, имеющего размер 2Nx2N, типа 1324 сегмента, имеющего размер 2NxN, типа 1326 сегмента, имеющего размер Nx2N, типа 1328 сегмента, имеющего размер NxN, типа 1332 сегмента, имеющего размер 2NxnU, типа 1334 сегмента, имеющего размер 2NxnD, типа 1336 сегмента, имеющего размер nLx2N, и типа 1338 сегмента, имеющего размер nRx2N.
Информация разбиения (флаг TU-размера) единицы преобразования представляет собой вид индекса преобразования. Размер единицы преобразования, соответствующей индексу преобразования, может изменяться согласно типу единицы прогнозирования или типу сегмента единицы кодирования.
Когда тип сегмента задается как симметричный, т.е. тип 1322, 1324, 1326 или 1328 сегмента, единица 1342 преобразования, имеющая размер 2Nx2N, задается, если информация разбиения (флаг TU-размера) единицы преобразования равен 0, и единица преобразования 1344, имеющая размер NxN, задается, если флаг TU-размера равен 1.
Когда тип сегмента задается как асимметричный, т.е. тип 1332, 1334, 1336 или 1338 сегмента, единица 1352 преобразования, имеющая размер 2Nx2N, задается, если флаг TU-размера равен 0, и единица 1354 преобразования, имеющая размер N/2xN/2 задается, если флаг TU-размера равен 1.
Ссылаясь на фиг. 20, флаг TU-размера является флагом, имеющим значение 0 или 1, но флаг TU-размера не ограничивается 1 битом, и единица преобразования может иерархически разбиваться при наличии древовидной структуры, в то время как флаг TU-размера увеличивается от 0. Информация разбиения (флаг TU-размера) единицы преобразования может быть использована в качестве варианта осуществления индекса преобразования.
В этом случае, размер единицы преобразования, которая фактически использована, может выражаться посредством использования флага TU-размера единицы преобразования, согласно варианту осуществления настоящего изобретения, вместе с максимальным размером и минимальным размером единицы преобразования. Согласно варианту осуществления настоящего изобретения, устройство 100 кодирования видео допускает кодирование информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера. Результат кодирования информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера может быть вставлен в SPS. Согласно варианту осуществления настоящего изобретения, устройство 200 декодирования видео может декодировать видео посредством использования информации размера максимальных единиц преобразования, информации размера минимальных единиц преобразования и флага максимального TU-размера.
Например, если размер текущей единицы кодирования равен 64x64, и размер максимальной единицы преобразования равен 32x32, то размер единицы преобразования может составлять 32x32, когда флаг TU-размера равен 0, может составлять 16x16, когда флаг TU-размера равен 1, и может составлять 8x8, когда флаг TU-размера равен 2.
В качестве другого примера, если размер текущей единицы кодирования равен 32x32, и размер минимальной единицы преобразования равен 32x32, то размер единицы преобразования может составлять 32x32, когда флаг TU-размера равен 0. Здесь, флаг TU-размера не может задаваться равным значению, отличному от 0, поскольку размер единицы преобразования не может составлять меньше 32x32.
В качестве другого примера, если размер текущей единицы кодирования равен 64x64, и флаг максимального TU-размера равен 1, то флаг TU-размера может составлять 0 или 1. Здесь, флаг TU-размера не может задаваться равным значению, отличному от 0 или 1.
Таким образом, если задается то, что флагом максимального TU-размера является MaxTransformSizelndex, размером минимальной единицы преобразования является MinTransformSize, а размером единицы преобразования является RootTuSize, когда флаг TU-размера равен 0, то текущий размер минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования, может быть задан посредством уравнения (1):
CurrMinTuSize=max(MinTransformSize, RootTuSize/(2^MaxTransformSizeIndex)) (1)
По сравнению с размером текущей минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может обозначать размер максимальной единицы преобразования, который может быть выбран в системе. В уравнении (1), RootTuSize/(2^MaxTransformSizeIndex) обозначает размер единицы преобразования, когда размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, разбивается число раз, соответствующее флагу максимального TU-размера, а MinTransformSize обозначает минимальный размер преобразования. Таким образом, меньшее значение из RootTuSize/(2^MaxTransformSizeIndex) и MinTransformSize может быть размером текущей минимальной единицы преобразования CurrMinTuSize, который может быть определен в текущей единице кодирования.
Согласно варианту осуществления настоящего изобретения размер максимальной единицы преобразования RootTuSize может варьироваться согласно типу режима прогнозирования.
Например, если текущим режимом прогнозирования является взаимный режим, то RootTuSize может быть определен посредством использования нижеприведенного уравнения (2). В уравнении (2), MaxTransformSize обозначает размер максимальной единицы преобразования, и PUSize обозначает размер текущей единицы прогнозирования.
RootTuSize=min(MaxTransformSize, PUSize) (2)
Иными словами, если текущим режимом прогнозирования является взаимный режим, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может быть меньшим значением из размера максимальной единицы преобразования и размера текущей единицы прогнозирования.
Если режимом прогнозирования текущей единицы сегментирования является внутренний режим, RootTuSize может быть определен посредством использования нижеприведенного уравнения (3). В уравнении (3), PartitionSize обозначает размер текущей единицы сегментирования.
RootTuSize=min(MaxTransformSize, PartitionSize) (3)
Иными словами, если текущим режимом прогнозирования является внутренний режим, размер единицы преобразования RootTuSize, когда флаг TU-размера равен 0, может быть меньшим значением из размера максимальной единицы преобразования и размера текущей единицы сегментирования.
Тем не менее, размер текущей максимальной единицы преобразования RootTuSize, который варьируется согласно типу режима прогнозирования в единице сегментирования, является просто примером, и настоящее изобретение не ограничено этим.
Согласно способу кодирования видео на основе единиц кодирования древовидной структуры, описанному выше со ссылкой на фиг. 8-20, данные изображений пространственной области могут быть кодированы для каждой единицы кодирования древовидной структуры, и данные изображений пространственной области могут быть восстановлены, когда декодирование выполняется для каждой максимальной единицы кодирования согласно способу декодирования видео на основе единиц кодирования древовидной структуры, и за счет этого может быть восстановлено видео, которое включает в себя изображение и последовательность изображений. Восстановленное видео может воспроизводиться посредством устройства воспроизведения, сохраняться на носителе хранения данных или передаваться по сети.
Кроме того, параметр смещения может быть кодирован и передан или принят и декодирован для каждого изображения, каждой серии последовательных макроблоков или каждой максимальной единицы кодирования либо для каждой единицы кодирования древовидной структуры или единицы прогнозирования единицы кодирования, или единицы преобразования единицы кодирования. Например, восстановленные пикселные значения максимальных единиц кодирования регулируются посредством использования восстановленных значений смещения на основе параметра смещения, принимаемого для каждой максимальной единицы кодирования, и за счет этого может быть восстановлен восстановленный блок, имеющий минимальную ошибку относительно исходного блока.
Варианты осуществления настоящего изобретения могут быть записаны в качестве компьютерной программы и могут быть реализованы в цифровых компьютерах общего назначения, которые выполняют программы с использованием машиночитаемого носителя записи. Примеры машиночитаемого носителя записи включают в себя магнитные носители хранения данных (например, ROM, гибкие диски, жесткие диски и т.д.) и оптические носители записи (например, CD-ROM или DVD).
Хотя это изобретение конкретно показано и описано со ссылкой на его предпочтительные варианты осуществления, специалисты в данной области техники должны понимать, что различные изменения по форме и содержанию могут быть сделаны без отступления от сущности и объема изобретения, заданных посредством прилагаемой формулы изобретения. Предпочтительные варианты осуществления должны рассматриваться только в описательном смысле, а не в целях ограничения. Следовательно, объем изобретения задается не посредством подробного описания изобретения, а посредством прилагаемой формулы изобретения, и любые отличия в пределах объема должны истолковываться как включенные в настоящее изобретение.