Перекрестная ссылка на родственную заявку на патент
[0001] Данная заявка испрашивает приоритет в соответствии с 35 U.S.C. §119 на дату подачи австралийской заявки на патент № 2019201653, поданной 11 марта 2019 года, настоящим полностью содержащуюся по ссылке как полностью изложенную в данном документе.
Область техники, к которой относится изобретение
[0002] Настоящее изобретение, в общем, относится к обработке цифровых видеосигналов и, в частности, к способу, оборудованию и системе для кодирования и декодирования дерева блоков видеовыборок. Настоящее изобретение также относится к компьютерному программному продукту, включающему в себя компьютерно-читаемый носитель, имеющий записанную компьютерную программу для кодирования и декодирования дерева блоков видеовыборок.
Уровень техники
[0003] В настоящее время предусмотрено множество вариантов применения для кодирования видео, включающих в себя варианты применения для передачи и хранения видеоданных. Также разработано множество стандартов кодирования видео, и другие в данный момент разрабатываются. Новейшие разработки в стандартизации кодирования видео привели к образованию группы, называемой "Объединенной экспертной группой по видео (JVET)". Объединенная экспертная группа по видео (JVET) включает в себя членов Исследовательской группы 16, вопрос 6 (SG16/Q6) сектора стандартизации связи (ITU-T) Международного союза по телекоммуникациям (ITU), также известной как "Экспертная группа в области кодирования видео (VCEG)", и членов объединенного технического комитета 1/подкомитета 29/рабочей группы 11 Международной организации по стандартизации/Международной электротехнической комиссии (ISO/IEC JTC1/SC29/WG11), также известной как "Экспертная группа по движущимся изображениям (MPEG)".
[0004] Объединенная экспертная группа по видео (JVET) организует конкурс заявок (CfP), причем ответы изучены на 10-ой конференции в Сан-Диего, США. Отправленные ответы демонстрируют характеристики сжатия видео, значительно превосходящие характеристики сжатия видео стандарта сжатия видео современного уровня техники, т.е.: "стандарта высокоэффективного кодирования видео (HEVC)". На основе этой опережающий динамики, решено запустить проект по разработке нового стандарта сжатия видео, который называется "стандартом универсального кодирования видео (VVC)". VVC предположительно должен удовлетворять непрерывный спрос на все более высокую производительность сжатия, в частности, по мере того, как характеристики видеоформатов улучшаются (например, с более высоким разрешением и более высокой частотой кадров), и удовлетворять растущий рыночный спрос на предоставление услуг по WAN, при которых затраты на полосу пропускания являются относительно высокими. Одновременно, VVC должен быть реализуемым в современных процессах в кристалле микросхемы и предлагать приемлемый компромисс между достигаемой производительностью по сравнению с затратами на реализацию (например, с точки зрения площади кристалла микросхемы, нагрузки CPU-процессора, использования запоминающего устройства и полосы пропускания).
[0005] Видеоданные включают в себя последовательность кадров данных изображений, каждый из которых включает в себя один или более цветовых каналов. В общем, требуются один первичный цветовой канал и два вторичных цветовых канала. Первичный цветовой канал, в общем, называется каналом «яркости», и вторичные цветовые каналы, в общем, называются каналами «цветности». Хотя видеоданные типично отображаются в цветовом пространстве на основе RGB (системы "красный-зеленый-синий"), это цветовое пространство имеет высокую степень корреляции между тремя соответствующими компонентами. Представление видеоданных, наблюдаемое посредством кодера или декодера, зачастую использует такое цветовое пространство, как YCbCr. YCbCr концентрирует яркость, преобразованную в "сигнал яркости" согласно передаточной функции, в Y-(первичном) канале и сигнал цветности в Cb- и Cr-(вторичных) каналах. Кроме того, Cb- и Cr-каналы могут дискретизироваться пространственно на меньшей скорости (субдискретизироваться) по сравнению с каналом сигнала яркости, например, половина горизонтально и половина вертикально, что известно как "формат сигнала цветности 4:2:0". Формат сигнала цветности 4:2:0 широко используется в "потребительских" вариантах применения, таких как потоковая Интернет-передача видео, широковещательное телевидение и хранение на Blu-RayTM-дисках. Субдискретизация Cb- и Cr-каналов с половинной скоростью горизонтально и отсутствие субдискретизации вертикально известно как "формат сигнала цветности 4:2:2". Формат сигнала цветности 4:2:2 типично используется в профессиональных вариантах применения, включающих в себя захват видеозаписи для кинематографического производства и т.п. Более высокая частота дискретизации формата сигнала цветности 4:2:2 делает результирующее видео более устойчивым к операциям редактирования, таким как цветокоррекция. До распространения потребителям, материал в формате сигнала цветности 4:2:2 зачастую преобразуется в формат сигнала цветности 4:2:0 и затем кодируется для распространения потребителям. В дополнение к формату сигнала цветности, видео также характеризуется посредством разрешения и частоты кадров. Примерные разрешения примера представляют собой сверхвысокую четкость (UHD) с разрешением 3840×2160 или "8K" с разрешением 7680×4320, и примерные частоты кадров составляют 60 или 120 Гц. Частоты дискретизации сигнала яркости могут колебаться приблизительно от 500 миллионов выборок в секунду до нескольких миллиардов выборок в секунду. Для формата сигнала цветности 4:2:0, частота дискретизации каждого канала сигнала цветности составляет одну четверть от частоты дискретизации сигнала яркости, а для формата сигнала цветности 4:2:2, частота дискретизации каждого канала сигнала цветности составляет одну половину от частоты дискретизации сигнала яркости.
[0006] VVC-стандарт представляет собой кодек "на основе блоков", в котором кадры сначала разделяются на квадратный массив областей, известных как "единицы дерева кодирования (CTU)". CTU, в общем, занимают относительно большую зону, к примеру, выборки сигнала яркости 128×128. Тем не менее, CTU на правом и нижнем краю каждого кадра могут занимать меньшую зону. С каждой CTU ассоциируется "дерево кодирования" для канала сигнала яркости и дополнительное дерево кодирования для каналов сигнала цветности. Дерево кодирования задает разложение зоны CTU на набор блоков, также называемых "блоками кодирования (CB)". Также одно дерево кодирования может указывать блоки как для канала сигнала яркости, так и для каналов сигнала цветности, причем в этом случае совокупности совместно размещенных блоков кодирования называются "единицами кодирования (CU)", т.е. каждая CU имеет блок кодирования для каждого цветового канала. CB обрабатываются для кодирования или декодирования в конкретном порядке. Как следствие использования формата сигнала цветности 4:2:0, CTU с деревом кодирования сигналов яркости для зоны выборок сигнала яркости 128×128 имеет соответствующее дерево кодирования сигналов цветности для зоны выборок сигнала цветности 64×64, совместно размещаемой с зоной выборок сигнала яркости 128×128. Когда одно дерево кодирования используется для канала сигнала яркости и каналов сигнала цветности, совокупности совместно размещенных блоков для данной зоны, в общем, называются "единицами", например, вышеуказанными CU, а также "единицами прогнозирования (PU)" и "единицами преобразования (TU)". Когда отдельные деревья кодирования используются для данной зоны, используются вышеуказанные CB, а также "блоки прогнозирования (PB)" и "блоки преобразования (TB)".
[0007] Несмотря на вышеуказанное различие между "единицами" и "блоками", термин "блок" может использоваться в качестве общего термина для зон или областей кадра, для которого операции применяются ко всем цветовым каналам.
[0008] Для каждой CU, формируется единица прогнозирования (PU) контента (выборочных значений) соответствующей зоны данных кадров ("единицы прогнозирования"). Дополнительно, формируется представление разности (или "остатка" в пространственной области) между прогнозированием и контентом зоны, наблюдаемой при вводе в кодер. Разность в каждом цветовом канале может преобразовываться и кодироваться в качестве последовательности остаточных коэффициентов, с формированием одной или более TU для данной CU. Применяемое преобразование может представлять собой дискретное косинусное преобразование (DCT) или другое преобразование, применяемое к каждому блоку остаточных значений. Это преобразование применяется разделимо, т.е. двумерное преобразование выполняется в два прохода. Блок, во-первых, преобразуется посредством применения одномерного преобразования к каждой строке выборок в блоке. Затем частичный результат преобразуется посредством применения одномерного преобразования к каждому столбцу частичного результата, чтобы формировать конечный блок коэффициентов преобразования, который практически декоррелирует остаточные выборки. Преобразования различных размеров поддерживаются посредством VVC-стандарта, включающие в себя преобразования блоков прямоугольной формы, при этом каждый боковой размер представляет собой степень двух. Коэффициенты преобразования квантуются для энтропийного кодирования в поток битов.
[0009] Когда пространственное прогнозирование ("внутреннее прогнозирование (предсказание)") используется для того, чтобы формировать PB, набор опорных выборок используется для того, чтобы формировать прогнозированные выборки для текущей PB. Опорные выборки включают в себя выборки, смежные с PB, которые уже "восстановлены" (суммирование остаточных выборок с внутренне прогнозированными выборками). Эти смежные выборки формируют строку выше PB и столбец слева от PB. Строка и столбец также протягиваются за пределы PB-границы с возможностью включать в себя дополнительные близлежащие выборки. Вследствие сканирования блоков при сканировании в Z-порядке, некоторые опорные выборки восстанавливаются в непосредственно предшествующем блоке. Использование выборок из непосредственно предшествующего блока приводит к зависимости с обратной связью, которая может ограничивать пропускную способность блоков через видеокодер или декодер. Дополнительно, если относительно небольшие блоки прогнозируются из других кадров ("внешнее прогнозирование (предсказание)"), пропускная способность запоминающего устройства для выборки опорных выборок может становиться чрезмерной, в частности, с учетом дополнительных выборок, требуемых для того, чтобы приспосабливать субпиксельную интерполяционную фильтрацию.
Сущность изобретения
[00010] Задача настоящего изобретения заключается в том, чтобы в значительной степени преодолевать или по меньшей мере снижать остроту одного или более недостатков существующих компоновок.
[00011] Один аспект настоящего раскрытия сущности предоставляет способ декодирования блока преобразования для цветового канала кадра с изображением из потока видеобитов, при этом способ содержит: определение формата сигнала цветности кадра с изображением, причем формат сигнала цветности имеет каналы сигнала цветности кадра с изображением, субдискретизируемые относительно канала сигнала яркости кадра с изображением; определение размера группы коэффициентов блока преобразования, причем размер группы коэффициентов составляет наибольшую зону блока преобразования вплоть до 16 выборок, причем размер группы коэффициентов определяется только на основе размера блока преобразования и независимо от (i) цветовой плоскости блока преобразования и (ii) субдискретизации в цветовой плоскости вследствие определенного формата сигнала цветности; и декодирование блока преобразования с использованием групп коэффициентов определенного размера из потока видеобитов.
[00012] Согласно другому аспекту, одна таблица используется для блоков преобразования, принадлежащих цветовым плоскостям сигнала яркости и сигнала цветности кадров с изображениями потока битов.
[00013] Согласно другому аспекту, размер группы коэффициентов выбирается с возможностью иметь соотношение сторон, ближайшее к 1:1 в пределах ограничений ширины и высоты блока преобразования.
[00014] Другой аспект настоящего раскрытия сущности предоставляет энергонезависимый компьютерно-читаемый носитель, имеющий компьютерную программу, сохраненную на нем, с тем чтобы реализовывать способ декодирования блоков кодирования единицы дерева кодирования для кадра с изображением из потока битов, причем программа содержит: код для определения формата сигнала цветности кадра с изображением, причем формат сигнала цветности имеет каналы сигнала цветности кадра с изображением, субдискретизируемые относительно канала сигнала яркости кадра с изображением; код для определения размера группы коэффициентов блока преобразования, причем размер группы коэффициентов составляет наибольшую зону блока преобразования вплоть до 16 выборок, причем размер группы коэффициентов определяется только на основе размера блока преобразования и независимо от (i) цветовой плоскости блока преобразования и (ii) субдискретизации в цветовой плоскости вследствие определенного формата сигнала цветности; и код для декодирования блока преобразования с использованием групп коэффициентов определенного размера из потока видеобитов.
[00015] Другой аспект настоящего раскрытия сущности предоставляет видеодекодер, выполненный с возможностью: принимать блок преобразования для цветового канала кадра с изображением из потока видеобитов; определять формат сигнала цветности кадра с изображением, причем формат сигнала цветности имеет каналы сигнала цветности кадра с изображением, субдискретизируемые относительно канала сигнала яркости кадра с изображением; определять размер группы коэффициентов блока преобразования, причем размер группы коэффициентов составляет наибольшую зону блока преобразования вплоть до 16 выборок, причем размер группы коэффициентов определяется только на основе размера блока преобразования и независимо от (i) цветовой плоскости блока преобразования и (ii) субдискретизации в цветовой плоскости вследствие определенного формата сигнала цветности; и декодировать блок преобразования с использованием групп коэффициентов определенного размера из потока видеобитов.
[00016] Другой аспект настоящего раскрытия сущности предоставляет систему, содержащую: запоминающее устройство; и процессор, при этом процессор выполнен с возможностью выполнять код, сохраненный на запоминающем устройстве, для реализации способа декодирования блока преобразования для цветового канала кадра с изображением из потока видеобитов, при этом способ содержит: определение формата сигнала цветности кадра с изображением, причем формат сигнала цветности имеет каналы сигнала цветности кадра с изображением, субдискретизируемые относительно канала сигнала яркости кадра с изображением; определение размера группы коэффициентов блока преобразования, причем размер группы коэффициентов составляет наибольшую зону блока преобразования вплоть до 16 выборок, причем размер группы коэффициентов определяется только на основе размера блока преобразования и независимо от (i) цветовой плоскости блока преобразования и (ii) субдискретизации в цветовой плоскости вследствие определенного формата сигнала цветности; и декодирование блока преобразования с использованием групп коэффициентов определенного размера из потока видеобитов.
[00017] Также раскрываются другие аспекты.
Краткое описание чертежей
[00018] Далее описывается, по меньшей мере, один примерный вариант осуществления настоящего изобретения со ссылкой на следующие чертежи и приложения, на которых:
[00019] Фиг. 1 является принципиальной блок-схемой, показывающей систему кодирования и декодирования видео;
[00020] Фиг. 2A и 2B формируют принципиальную блок-схему компьютерной системы общего назначения, в которой могут осуществляться на практике одна или обе из системы кодирования и декодирования видео по фиг. 1;
[00021] Фиг. 3 является принципиальной блок-схемой, показывающей функциональные модули видеокодера;
[00022] Фиг. 4 является принципиальной блок-схемой, показывающей функциональные модули видеодекодера;
[00023] Фиг. 5 является принципиальной блок-схемой, показывающей доступные разделения блока на один или более блоков в древовидной структуре стандарта универсального кодирования видео;
[00024] Фиг. 6 является схематичной иллюстрацией потока данных, чтобы достигать разрешенных разделений блока на один или более блоков в древовидной структуре стандарта универсального кодирования видео;
[00025] Фиг. 7A и 7B показывают примерное разделение единицы дерева кодирования (CTU) на определенное число единиц кодирования (CU);
[00026] Фиг. 8A, 8B и 8C показывают примерное разделение единицы дерева кодирования (CTU) на определенное число блоков кодирования (CB) в каналах сигнала яркости и сигнала цветности;
[00027] Фиг. 9 показывает совокупность размеров блоков преобразования и ассоциированных шаблонов сканирования;
[00028] Фиг. 10 показывает набор правил для формирования списков разрешенных разбиений в дереве кодирования сигналов яркости и дереве кодирования сигналов цветности;
[00029] Фиг. 11 показывает способ для кодирования деревьев кодирования кадра с изображением в поток видеобитов;
[00030] Фиг. 12 показывает способ для декодирования деревьев кодирования кадра с изображением из потока видеобитов;
[00031] Фиг. 13 показывает способ для кодирования дерева кодирования кадра с изображением в поток видеобитов;
[00032] Фиг. 14 показывает способ для декодирования дерева кодирования кадра с изображением из потока видеобитов;
[00033] Фиг. 15 показывает совокупность сегментаций на блоки преобразования внутренне прогнозированной единицы кодирования;
[00034] Фиг. 16 показывает способ для кодирования единицы кодирования кадра с изображением в поток видеобитов; и
[00035] Фиг. 17 показывает способ декодирования единицы кодирования кадра с изображением из потока видеобитов.
Подробное описание, включающее в себя оптимальный режим
[00036] Если на одном или более из прилагаемых чертежей содержится ссылка на этапы и/или признаки, которые имеют идентичные ссылки с номерами, эти этапы и/или признаки для целей этого описания имеют идентичную функцию(и) или операцию(и), если иное намерение не указано.
[00037] Как описано выше, использование выборок из непосредственно предшествующего блока приводит к зависимости с обратной связью, которая может ограничивать пропускную способность блоков через видеокодер или декодер. Желательно иметь способы для того, чтобы уменьшать серьезность результирующего контура зависимостей с обратной связью, чтобы обеспечивать то, что может поддерживаться высокая скорость обработки блоков, по мере необходимости для типичных вариантов приложений кодирования и декодирования в реальном времени. Контур зависимостей с обратной связью, в частности, является проблематичным для высоких частот дискретизации современных видеоформатов, например, от 500-4000 выборок в секунду, тогда как тактовые частоты ASIC (специализированной интегральной схемы) типично составляют сотни МГц.
[00038] Фиг. 1 является принципиальной блок-схемой, показывающей функциональные модули системы 100 кодирования и декодирования видео. Система 100 может использовать различные правила для разрешенных подразделений областей в деревьях кодирования сигнала яркости и сигнала цветности, чтобы уменьшать встречающуюся скорость блочной обработки по принципу наихудшего случая. Например, система 100 может работать таким образом, что блоки всегда имеют размер в качестве кратного числа 16 (шестнадцати) выборок, независимо от соотношения сторон блока. Кроме того, если дерево кодирования включает в себя разбиение, указывающее присутствие небольших блоков кодирования сигналов яркости, разбиение может запрещаться в канале сигнала цветности, приводя к одному CB сигналов цветности, совместно размещаемому с несколькими CB сигналов яркости. CB сигналов цветности может использовать один режим прогнозирования, к примеру, один режим внутреннего прогнозирования, независимо от режимов прогнозирования каждого из совместно размещенных CB сигналов яркости (в том числе если один или более CB сигналов яркости используют внешнее прогнозирование). Кодирование остаточных коэффициентов также может использовать кратное число размера в 16 блоков, в том числе в случае блоков, имеющих ширину или высоту в две выборки.
[00039] Система 100 включает в себя исходное устройство 110 и целевое устройство 130. Канал 120 связи используется для того, чтобы передавать кодированную видеоинформацию из исходного устройства 110 в целевое устройство 130. В некоторых компоновках, исходное устройство 110 и целевое устройство 130 могут содержать либо соответствующие мобильные телефонные трубки, либо "смартфоны", причем в этом случае канал 120 связи представляет собой беспроводной канал. В других компоновках, исходное устройство 110 и целевое устройство 130 могут содержать оборудование для проведения видеоконференций, причем в этом случае канал 120 связи типично представляет собой проводной канал, такой как Интернет-соединение. Кроме того, исходное устройство 110 и целевое устройство 130 могут содержать любые из широкого диапазона устройств, включающих в себя устройства, поддерживающие телевизионные широковещательные передачи по радиоинтерфейсу, кабельные телевизионные приложения, Интернет-видеоприложения (включающие в себя потоковую передачу) и приложения, в которых кодированные видеоданные захватываются на некотором компьютерно-читаемом носителе хранения данных, к примеру, на жестких дисках в файловом сервере.
[00040] Как показано на фиг. 1, исходное устройство 110 включает в себя видеоисточник 112, видеокодер 114 и передающее устройство 116. Видеоисточник 112 типично содержит источник захваченных данных видеокадров (показаны как 113), к примеру, датчик захвата изображений, ранее захваченной видеопоследовательности, сохраненной на энергонезависимом носителе записи, либо прямой видеотрансляции из удаленного датчика захвата изображений. Видеоисточник 112 также может представлять собой вывод компьютерной видеокарты, например, отображение видеовывода операционной системы и различных приложений, выполняемых на вычислительном устройстве, например, планшетном компьютере. Примеры исходных устройств 110, которые могут включать в себя датчик захвата изображений в качестве видеоисточника 112, включают в себя смартфоны, записывающие видеокамеры, профессиональные видеокамеры и сетевые видеокамеры.
[00041] Видеокодер 114 преобразует (или "кодирует") захваченные данные кадров (указываются посредством стрелки 113) из видеоисточника 112 в поток битов (указывается посредством стрелки 115), как подробнее описано со ссылкой на фиг. 3. Поток 115 битов передается посредством передающего устройства 116 по каналу 120 связи в качестве кодированных видеоданных (или "кодированной видеоинформации"). Также можно сохранять поток 115 битов в энергонезависимом устройстве 122 хранения данных, таком как "флэш"-память или жесткий диск, вплоть до последующей передаче по каналу 120 связи или вместо передачи по каналу 120 связи.
[00042] Целевое устройство 130 включает в себя приемное устройство 132, видеодекодер 134 и устройство 136 отображения. Приемное устройство 132 принимает кодированные видеоданные из канала 120 связи и передает принимаемые видеоданные в видеодекодер 134 в качестве потока битов (указывается посредством стрелки 133). Видеодекодер 134 затем выводит декодированные данные кадров (указываются посредством стрелки 135) в устройство 136 отображения. Декодированные данные 135 кадров имеют формат сигнала цветности, идентичный формату сигнала цветности данных 113 кадров. Примеры устройства 136 отображения включают в себя электронно-лучевую трубку, жидкокристаллический дисплей, к примеру, в смартфонах, планшетных компьютерах, компьютерных мониторах либо в автономных телевизионных приемниках. Также функциональность каждого из исходного устройства 110 и целевого устройства 130 может осуществляться в одном устройстве, примеры которого включают в себя мобильные телефонные трубки и планшетные компьютеры.
[00043] Несмотря на вышеупомянутые примерные устройства, каждое из исходного устройства 110 и целевого устройства 130 может быть сконфигурировано в вычислительной системе общего назначения, типично через комбинацию аппаратных и программных компонентов. Фиг. 2A иллюстрирует такую компьютерную систему 200, которая включает в себя: компьютерный модуль 201; устройства ввода, такие как клавиатура 202, указательное устройство 203 типа "мышь", сканер 226, камера 227, которая может быть сконфигурирована как видеоисточник 112 и микрофон 280; и устройства вывода, включающие в себя принтер 215, устройство 214 отображения, которое может быть сконфигурировано как устройство 136 отображения, и громкоговорители 217. Внешнее приемо-передающее устройство 216 типа "модулятор-демодулятор (модем)" может использоваться посредством компьютерного модуля 201 для обмена данными в/из сети 220 связи через соединение 221. Сеть 220 связи, которая может представлять канал 120 связи, может представлять собой глобальную вычислительную сеть (WAN), такую как Интернет, сеть сотовой связи или частная WAN. Когда соединение 221 представляет собой телефонную линию связи, модем 216 может представлять собой традиционный "коммутируемый" модем. Альтернативно, когда соединение 221 представляет собой соединение с высокой пропускной способностью (например, кабельное или оптическое), модем 216 может представлять собой широкополосный модем. Беспроводной модем также может использоваться для беспроводного соединения с сетью 220 связи. Приемо-передающее устройство 216 может предоставлять функциональность передающего устройства 116 и приемного устройства 132, и канал 120 связи может осуществляться в соединении 221.
[00044] Компьютерный модуль 201 типично включает в себя, по меньшей мере, один процессор 205 и запоминающее устройство 206. Например, запоминающее устройство 206 может иметь полупроводниковое оперативное запоминающее устройство (RAM) и полупроводниковое постоянное запоминающее устройство (ROM). Компьютерный модуль 201 также включает в себя определенное число интерфейсов ввода-вывода (I/O), включающих в себя: аудио-видеоинтерфейс 207, который соединяется с видеодисплеем 214, громкоговорителями 217 и микрофоном 280; интерфейс 213 ввода-вывода, который соединяется с клавиатурой 202, мышью 203, сканером 226, камерой 227 и опционально джойстиком или другим устройством с человеко-машинным интерфейсом (не проиллюстрировано); и интерфейс 208 для внешнего модема 216 и принтера 215. Сигнал из аудио-видеоинтерфейса 207 в компьютерный монитор 214, в общем, представляет собой вывод компьютерной видеокарты. В некоторых реализациях, модем 216 может быть включен внутри компьютерного модуля 201, например, внутри интерфейса 208. Компьютерный модуль 201 также имеет локальный сетевой интерфейс 211, который разрешает соединение компьютерной системы 200 через соединение 223 с локальной вычислительной сетью 222 связи, известной как локальная вычислительная сеть (LAN). Как проиллюстрировано на фиг. 2A, локальная сеть 222 связи также может соединяться с глобальной сетью 220 через соединение 224, которое типично должно включать в себя так называемое устройство "брандмауэра" или устройство с аналогичной функциональностью. Локальный сетевой интерфейс 211 может содержать печатную EthernetTM-плату, беспроводное BluetoothTM-устройство или беспроводное IEEE 802.11-устройство; тем не менее, множество других типов интерфейсов могут осуществляться на практике для интерфейса 211. Локальный сетевой интерфейс 211 также может предоставлять функциональность передающего устройства 116 и приемного устройства 132, и канал 120 связи также может осуществляться в локальной сети 222 связи.
[00045] Интерфейсы 208 и 213 ввода-вывода могут предоставлять одно или оба из последовательного и параллельного подключения, при этом первый типично реализуется согласно стандартам на основе универсальной последовательной шины (USB) и имеет соответствующие USB-разъемы (не проиллюстрированы). Устройства 209 хранения данных предоставляются и типично включают в себя жесткий диск 210 (HDD). Также могут использоваться другие устройства хранения данных, такие как накопитель на гибких дисках и накопитель на магнитной ленте (не проиллюстрированы). Накопитель 212 на оптических дисках типично предоставляется с возможностью выступать в качестве энергонезависимого источника данных. Портативные запоминающие устройства, такие оптические диски (например, CD-ROM, DVD, Blu-Ray-дискTM), USB-RAM, портативные внешние жесткие диски и гибкие диски, например, могут использоваться в качестве соответствующих источников данных для компьютерной системы 200. Типично, любое из HDD 210, накопителя на оптических дисках 212, сетей 220 и 222 также может быть выполнено с возможностью работать в качестве видеоисточника 112 или в качестве назначения для декодированных видеоданных, которые должны сохраняться для воспроизведения через дисплей 214. Исходное устройство 110 и целевое устройство 130 системы 100 могут осуществляться в компьютерной системе 200.
[00046] Компоненты 205-213 компьютерного модуля 201 типично обмениваются данными через соединительную шину 204 таким способом, который приводит к традиционному режиму работы компьютерной системы 200, известному специалистам в данной области техники. Например, процессор 205 соединяется с системной шиной 204 с использованием соединения 218. Аналогично, запоминающее устройство 206 и накопитель 212 на оптических дисках соединяются с системной шиной 204 посредством соединений 219. Примеры компьютеров, на которых могут осуществляться на практике описанные компоновки, включают в себя IBM PC и совместимые устройства, Sun SPARCstations, Apple MacTM или аналогичные компьютерные системы.
[00047] При необходимости, видеокодер 114 и видеодекодер 134, а также способы, описанные ниже, могут реализовываться с использованием компьютерной системы 200. В частности, видеокодер 114, видеодекодер 134 и способы, которые описываются, могут реализовываться как одна или более прикладных программ 233, выполняемых в компьютерной системе 200. В частности, видеокодер 114, видеодекодер 134 и этапы описанных способов осуществляются посредством инструкций 231 (см. фиг. 2B) в программном обеспечении 233, которые выполняются в компьютерной системе 200. Программные инструкции 231 могут формироваться в качестве одного или более кодовых модулей, каждый из которых служит для выполнения одной или более конкретных задач. Программное обеспечение также может быть разделено на две отдельных части, при этом первая часть и соответствующие кодовые модули выполняют описанные способы, а вторая часть и соответствующие кодовые модули управляют пользовательским интерфейсом между первой частью и пользователем.
[00048] Программное обеспечение может сохраняться на компьютерно-читаемом носителе, включающем в себя, например, устройства хранения данных, описанные ниже. Программное обеспечение загружается в компьютерную систему 200 из компьютерно-читаемого носителя и затем выполняется посредством компьютерной системы 200. Компьютерно-читаемый носитель, имеющий такое программное обеспечение или компьютерную программу, записанную на компьютерно-читаемом носителе, представляет собой компьютерный программный продукт. Использование компьютерного программного продукта в компьютерной системе 200 предпочтительно осуществляет преимущественное оборудование для реализации видеокодера 114, видеодекодера 134 и описанных способов.
[00049] Программное обеспечение 233 типично сохраняется на HDD 210 или в запоминающем устройстве 206. Программное обеспечение загружается в компьютерную систему 200 из компьютерно-читаемого носителя и выполняется посредством компьютерной системы 200. Таким образом, например, программное обеспечение 233 может сохраняться на оптическичитаемом дисковом носителе 225 хранения данных (например, CD-ROM), который считывается посредством накопителя 212 на оптических дисках.
[00050] В некоторых случаях, прикладные программы 233 могут предоставляться пользователю, кодироваться на одном или более CD-ROM 225 и считываться через соответствующий накопитель 212, или альтернативно, могут считываться пользователем из сетей 220 или 222. Еще дополнительно, программное обеспечение также может загружаться в компьютерную систему 200 из других компьютерно-читаемых носителей. Компьютерно-читаемые носители хранения данных означают любой энергонезависимый материальный носитель хранения данных, который предоставляет записанные инструкции и/или данные в компьютерную систему 200 для выполнения и/или обработки. Примеры таких носителей хранения данных включают в себя гибкие диски, магнитную ленту, CD-ROM, DVD, Blu-Ray-дискTM, жесткий диск, ROM или интегральную схему, запоминающее USB-устройство, магнитооптический диск или компьютерно-читаемую карту, такую как PCMCIA-карта и т.п., независимо от того, являются такие устройства внутренними или внешними относительно компьютерного модуля 201. Примеры энергозависимых или нематериальных компьютерно-читаемых сред передачи, которые также могут участвовать в предоставлении программного обеспечения, прикладных программ, инструкций и/или видеоданных или кодированных видеоданных в компьютерный модуль 401, включают в себя радиочастотные или инфракрасные каналы передачи, а также сетевое соединение с другим компьютером или сетевым устройством, и сети Интернет или intranet, включающие в себя передачи по электронной почте и информацию, записанную на веб-узлах, и т.п.
[00051] Вторая часть прикладной программы 233 и соответствующие вышеупомянутые кодовые модули могут выполняться, чтобы реализовывать один или более графических пользовательских интерфейсов (GUI), которые должны быть подготовлены посредством рендеринга или иным образом представлены на дисплее 214. Через управление типично с помощью клавиатуры 202 и мыши 203, пользователь компьютерной системы 200 и приложение могут управлять интерфейсом функционально адаптируемым способом таким образом, чтобы предоставлять команды управления и/или ввод в приложения, ассоциированные с GUI. Также могут реализовываться другие формы функционально адаптируемых пользовательских интерфейсов, такие как аудиоинтерфейс, использующий речевые подсказки, выводимые через громкоговорители 217, и пользовательские голосовые команды, вводимые через микрофон 280.
[00052] Фиг. 2B является подробной принципиальной блок-схемой процессора 205 и "запоминающего устройства" 234. Запоминающее устройство 234 представляет логическое агрегирование всех модулей запоминающих устройств (включающих в себя HDD 209 и полупроводниковое запоминающее устройство 206), к которым может осуществляться доступ посредством компьютерного модуля 201 на фиг. 2A.
[00053] Когда компьютерный модуль 201 первоначально включается, выполняется программа 250 самотестирования при включении питания (POST). POST-программа 250 типично сохраняется в ROM 249 полупроводникового запоминающего устройства 206 по фиг. 2A. Аппаратное устройство, такое как ROM 249, сохраняющее программное обеспечение, иногда называется "микропрограммным обеспечением". POST-программа 250 обследует аппаратные средства в компьютерном модуле 201, чтобы обеспечивать надлежащее функционирование, и типично проверяет процессор 205, запоминающее устройство 234 (209, 206) и программный модуль 251 базовой системы ввода-вывода (BIOS), также типично сохраняемый в ROM 249, на предмет корректной работы. После того, как POST-программа 250 успешно выполнена, BIOS 251 активирует накопитель 210 на жестких дисках по фиг. 2A. Активация накопителя 210 на жестких дисках инструктирует программе 252 начальной загрузки, которая постоянно размещается на накопителе 210 на жестких дисках, выполняться через процессор 205. Она загружает операционную систему 253 в оперативное запоминающее устройство 206, после чего операционная система 253 начинает работу. Операционная система 253 представляет собой приложение системного уровня, выполняемое посредством процессора 205, чтобы выполнять различные высокоуровневые функции, включающие в себя управление процессором, управление запоминающим устройством, управление устройствами, управление хранением данных, прикладной программный интерфейс и общий пользовательский интерфейс.
[00054] Операционная система 253 управляет запоминающим устройством 234 (209, 206), чтобы обеспечивать то, что каждый процесс или приложение, работающее на компьютерном модуле 201, имеет достаточный объем запоминающего устройства, в котором он может выполняться, без конфликта с запоминающим устройством, выделяемым другому процессу. Кроме того, различные типы запоминающего устройства, доступного в компьютерной системе 200 по фиг. 2A, должен использоваться надлежащим образом, так что каждый процесс может эффективно выполняться. Соответственно, агрегированное запоминающее устройство 234 не имеет намерение иллюстрировать то, как выделяются конкретные сегменты запоминающего устройства (если не указано иное), а вместо этого предоставляет общее представление запоминающего устройства, доступного посредством компьютерной системы 200, и того, как оно используется.
[00055] Как показано на фиг. 2B, процессор 205 включает в себя определенное число функциональных модулей, включающих в себя блок 239 управления, арифметико-логическое устройство 240 (ALU) и локальное или внутреннее запоминающее устройство 248, иногда называемое "кэш-памятью". Кэш-память 248 типично включает в себя определенное число регистров 244-246 хранения данных в секции регистров. Одна или более внутренних шин 241 функционально соединяют эти функциональные модули. Процессор 205 типично также имеет один или более интерфейсов 242 для обмена данными с внешними устройствами через системную шину 204 с использованием соединения 218. Запоминающее устройство 234 соединяется с шиной 204 с использованием соединения 219.
[00056] Прикладная программа 233 включает в себя последовательность инструкций 231, которые могут включать в себя инструкции условного перехода и цикла. Программа 233 также может включать в себя данные 232, которые используются при выполнении программы 233. Инструкции 231 и данные 232 сохраняются в местоположениях 228, 229, 230 и 235, 236, 237 запоминающего устройства, соответственно. В зависимости от относительного размера инструкций 231 и местоположений 228-230 запоминающего устройства, конкретная инструкция может сохраняться в одном местоположении запоминающего устройства, как проиллюстрировано посредством инструкции, показанной в местоположении 230 запоминающего устройства. Альтернативно, инструкция может сегментироваться на определенное число частей, каждая из которых сохраняется в отдельном местоположении запоминающего устройства, как проиллюстрировано посредством сегментов инструкций, показанных в местоположениях 228 и 229 запоминающего устройства.
[00057] В общем, в процессор 205 предоставляется набор инструкций, которые выполняются в нем. Процессор 205 ожидает последующего ввода, на который процессор 205 реагирует посредством выполнения другого набора инструкций. Каждый ввод может предоставляться из одного или более из определенного числа источников, включающих в себя данные, сформированные посредством одного или более устройств 202, 203 ввода, данные, принятые из внешнего источника через одну из сетей 220, 202, данные, извлеченные из одного из устройств 206, 209 хранения данных, или данные, извлеченные из носителя 225 хранения данных, вставленного в соответствующий модуль 212 считывания, все из которых проиллюстрированы на фиг. 2A. Выполнение набора инструкций в некоторых случаях может приводить к выводу данных. Выполнение также может заключать в себе сохранение данных или переменных в запоминающем устройстве 234.
[00058] Видеокодер 114, видеодекодер 134 и описанные способы могут использовать входные переменные 254, которые сохраняются в запоминающем устройстве 234 в соответствующих местоположениях 255, 256, 257 ячеек запоминающего устройства. Видеокодер 114, видеодекодер 134 и описанные способы формируют выходные переменные 261, которые сохраняются в запоминающем устройстве 234 в соответствующих местоположениях 262, 263, 264 ячеек запоминающего устройства. Промежуточные переменные 258 могут сохраняться в местоположениях 259, 260, 266 и 267 ячеек запоминающего устройства.
[00059] Ссылаясь на процессор 205 по фиг. 2B, регистры 244, 245, 246, арифметико-логическое устройство 240 (ALU) и блок 239 управления совместно работают с возможностью выполнять последовательности микроопераций, необходимые для того, чтобы выполнять циклы "выборки, декодирования и выполнения" для каждой инструкции в наборе инструкций, составляющем программу 233. Каждый цикл выборки, декодирования и выполнения содержит:
- операцию выборки, которая осуществляет выборку или считывает инструкцию 231 из местоположения 228, 229, 230 ячейки запоминающего устройства;
- операцию декодирования, в которой блок 239 управления определяет то, выборка какой инструкции осуществлена; и
- операцию выполнения, в которой блок 239 управления и/или ALU 240 выполняют инструкцию.
[00060] После этого, может выполняться дополнительный цикл выборки, декодирования и выполнения для следующей инструкции. Аналогично, может выполняться цикл запоминания, посредством которого блок 239 управления сохраняет или записывает значение в местоположение 232 запоминающего устройства.
[00061] Каждый этап или подпроцесс в способе по фиг. 10 и 11, который описывается, ассоциирован с одним или более сегментов программы 233 и типично выполняется посредством секции 244, 245, 247 регистров, ALU 240 и блока 239 управления в процессоре 205, совместно работающих с возможностью выполнять циклы выборки, декодирования и выполнения для каждой инструкции в наборе инструкций для отмеченных сегментов программы 233.
[00062] Фиг. 3 является принципиальной блок-схемой, показывающей функциональные модули видеокодера 114. Фиг. 4 является принципиальной блок-схемой, показывающей функциональные модули видеодекодера 134. Обычно, данные проходят между функциональными модулями в видеокодере 114 и видеодекодере 134 в группах выборок или коэффициентов, таких как разделения блоков в субблоки фиксированного размера, или в качестве массивов. Видеокодер 114 и видеодекодер 134 могут реализовываться с использованием компьютерной системы 200 общего назначения, как показано на фиг. 2A и 2B, при этом различные функциональные модули могут реализовываться посредством специализированных аппаратных средств в компьютерной системе 200 посредством программного обеспечения, выполняемого в компьютерной системе 200, к примеру, как одного или более программных кодовых модулей прикладной программы 233, постоянно размещающихся на жестком диске 205 и управляемых своем выполнении посредством процессора 205. Кроме того, видеокодер 114 и видеодекодер 134 могут реализовываться посредством комбинации специализированных аппаратных средств и программного обеспечения, выполняемого в компьютерной системе 200. Видеокодер 114, видеодекодер 134 и описанные способы альтернативно могут реализовываться в специализированных аппаратных средствах, к примеру, ка одна или боле интегральных схем, выполняющих функции или подфункции описанных способов. Такие специализированные аппаратные средства могут включать в себя графические процессоры (GPU), процессоры цифровых сигналов (DSP), специализированные стандартные продукты (ASSP), специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA) либо один или более микропроцессоров и ассоциированных запоминающих устройств. В частности, видеокодер 114 содержит модули 310-386, и видеодекодер 134 содержит модули 420-496, которые могут реализовываться как один или более программных кодовых модулей прикладной программы 233.
[00063] Хотя видеокодер 114 по фиг. 3 представляет собой пример конвейера кодирования видео на основе стандарта универсального кодирования видео (VVC), другие видеокодеки также могут использоваться для того, чтобы выполнять стадии обработки, описанные в данном документе. Видеокодер 114 принимает захваченные данные 113 кадров, к примеру, последовательность кадров, причем каждый кадр включает в себя один или более цветовых каналов. Данные 113 кадров могут иметь формату сигнала цветности 4:2:0 или формат сигнала цветности 4:2:2. Модуль 310 сегментации на блоки, во-первых, разделяет данные 113 кадров на CTU, в общем, имеющие квадратную форму и сконфигурированные таким образом, что используется конкретный размер для CTU. Размер CTU может представлять собой, например, выборки сигнала яркости 64×64, 128×128 или 256×256. Модуль 310 сегментации на блоки дополнительно разделяет каждую CTU на один или более CB согласно дереву кодирования сигналов яркости и дереву кодирования сигналов цветности. CB имеют множество размеров и могут включать в себя квадратные и неквадратные соотношения сторон. В дальнейшем подробно описывается работа модуля 310 сегментации на блоки со ссылкой на фиг. 10. Тем не менее, в VVC-стандарте, CB, CU, PU и TU всегда имеют боковые длины, которые составляют степени двух. Таким образом, текущий CB, представленный в качестве 312, выводится из модуля 310 сегментации на блоки, с продвижением в соответствии с итерацией по одному или более блоков CTU, в соответствии с деревом кодирования сигналов яркости и деревом кодирования сигналов цветности CTU. Ниже подробно описываются варианты для сегментации CTU на CB со ссылкой на фиг. 5 и 6.
[00064] CTU, получающиеся в результате первого разделения данных 113 кадров, могут сканироваться в порядке растрового сканирования и могут группироваться на один или более "срезов". Срез (слайс) может представлять собой "внутренний" (или "I-") срез. Внутренний срез (I-срез) указывает то, что каждая CU в срезе внутренне прогнозируется. Альтернативно, срез может унипрогнозироваться или бипрогнозироваться ("P-" или "B-"срез, соответственно), что указывает дополнительную доступность уни- и бипрогнозирования в срезе, соответственно.
[00065] Для каждой CTU, видеокодер 114 работает на двух стадиях. На первой стадии (называемой "стадией поиска"), модуль 310 сегментации на блоки тестирует различные потенциальные конфигурации дерева кодирования. Каждая потенциальная конфигурация дерева кодирования имеет ассоциированные "возможные варианты" CB. Первая стадия заключает в себе тестирование различных возможных вариантов CB, чтобы выбирать CB, предоставляющие высокую эффективность сжатия с низким искажением. Тестирование, в общем, заключает в себе лагранжеву оптимизацию, за счет которой возможный вариант CB оценивается на основе комбинирования со взвешиванием скорости (затрат на кодирование) и искажения (ошибки относительно данных 113 входных кадров). "Наилучшие" возможные варианты CB (CB с наименьшим оцененным искажением в зависимости от скорости передачи) выбираются для последующего кодирования в поток 115 битов. В себя в оценку возможных вариантов CB включается вариант, чтобы использовать CB для данной зоны или дополнительно разбивать зону согласно различным вариантам разбиения и кодировать каждую из меньших результирующих зон с дополнительными CB или разбивать зоны дополнительно. Как следствие, как CB, так и дерево кодирования сами выбираются на стадии поиска.
[00066] Видеокодер 114 формирует блок прогнозирования (PB), указываемый посредством стрелки 320, для каждого CB, например, CB 312. PB 320 представляет собой прогнозирование контента ассоциированного CB 312. Модуль 322 вычитания формирует разность, указываемую в качестве 324 (или "остаток", означающий разность, находящуюся в пространственной области), между PB 320 и CB 312. Разность 324 является разностью размера блока между соответствующими выборками в PB 320 и CB 312. Разность 324 преобразуется, квантуется и представляется в качестве блока преобразования (TB), указываемого посредством стрелки 336. PB 320 и ассоциированный TB 336 типично выбираются из одного из множества вероятных возможных вариантов CB, например, на основе оцененных затрат или искажения.
[00067] Возможный вариант блока кодирования (CB) представляет собой CB, получающийся в результате одного из режимов прогнозирования, доступных для видеокодера 114 для ассоциированного PB и результирующего остатка. Каждый возможный вариант CB приводит к одному или более соответствующих TB, как описано далее со ссылкой на фиг. 8. TB 336 является квантованным и преобразованным представлением разности 324. В комбинации с прогнозированным PB в видеодекодере 114, TB 336 уменьшает разность между декодированными CB и исходным CB 312 за счет дополнительной передачи служебных сигналов в потоке битов.
[00068] Каждый возможный вариант блока кодирования (CB), который представляет собой блок прогнозирования (PB) в комбинации с блоком преобразования (TB), в силу этого имеет ассоциированные затраты на кодирование (или "скорость передачи") и ассоциированную разность (или "искажение"). Скорость типично измеряется в битах. Искажение CB типично оценивается в качестве разности в выборочных значениях, к примеру, как сумма абсолютных разностей (SAD) или сумма квадратов разности (SSD). Оценка, получающаяся в результате каждого возможного варианта PB, определяется посредством модуля 386 выбора режима с использованием разности 324, чтобы определять режим внутреннего прогнозирования (представлен посредством стрелки 388). Оценка затрат на кодирование, ассоциированных с каждым возможным вариантом режима прогнозирования и соответствующим остаточным кодированием, может выполняться со значительно меньшими затратами, чем энтропийное кодирование остатка. Соответственно, число возможных вариантов режимов может оцениваться, чтобы определять оптимальный режим в смысле искажения в зависимости от скорости передачи.
[00069] Определение оптимального режима с точки зрения искажения в зависимости от скорости передачи типично достигается с использованием варьирования лагранжевой оптимизации. Выбор режима 388 внутреннего прогнозирования типично заключает в себе определение затрат на кодирование для остаточных данных, получающихся в результате применения конкретного режима внутреннего прогнозирования. Затраты на кодирование могут аппроксимироваться посредством использования "суммы абсолютных преобразованных разностей (SATD)", за счет чего относительно простое преобразование, к примеру, преобразование Адамара, используется для того, чтобы получать оцененные затраты преобразованного остатка. В некоторых реализациях с использованием относительно простых преобразований, затраты, получающиеся в результате упрощенного способа оценки, монотонно связываются с фактическими затратами, которые в противном случае должны определяться из полной оценки. В реализациях с монотонно связанными предполагаемыми затратами, упрощенный способ оценки может использоваться для того, чтобы принимать идентичное решение (т.е. режим внутреннего прогнозирования) с уменьшением сложности в видеокодере 114. Чтобы разрешать возможную немонотонность во взаимосвязи между оцененными и фактическими затратами, упрощенный способ оценки может использоваться для того, чтобы формировать список наилучших возможных вариантов. Немонотонность может получаться в результате, например, дополнительных решений по выбору режима, доступных для кодирования остаточных данных. Список наилучших возможных вариантов может иметь произвольное число. Более полный поиск может выполняться с использованием наилучших возможных вариантов, чтобы устанавливать варианты выбора оптимального режима для кодирования остаточных данных для каждого из возможных вариантов, обеспечивая конечный выбор режима внутреннего прогнозирования наряду с другими решениями по выбору режима.
[00070] Другие решения по выбору режима включают в себя способность пропускать прямое преобразование, известную как "пропуск преобразования". Пропуск преобразований подходит для остаточных данных, в которых отсутствует надлежащая корреляция уменьшенных затрат на кодирование через выражение в качестве базисных функций преобразования. Определенные типы контента, к примеру, относительно простая компьютерно-генерируемая графика, могут демонстрировать аналогичное поведение. Для "пропущенного преобразования", остаточные коэффициенты по-прежнему кодируются, даже если непосредственно преобразование не выполняется.
[00071] Лагранжева или аналогичная обработка оптимизации может использоваться для того, чтобы выбирать оптимальную сегментацию CTU на CB (посредством модуля 310 сегментации на блоки), а также для выбора наилучшего режима прогнозирования из множества возможностей. Через применение процесса лагранжевой оптимизации возможных вариантов режимов в модуле 386 выбора режима, режим внутреннего прогнозирования с измерением наименьших затрат выбирается в качестве "наилучшего" режима. Режим с наименьшими затратами представляет собой выбранный режим 388 внутреннего прогнозирования и также кодируется в потоке 115 битов посредством энтропийного кодера 338. Выбор режима 388 внутреннего прогнозирования посредством операции модуля 386 выбора режима расширяется на работу модуля 310 сегментации на блоки. Например, возможные варианты для выбора режима 388 внутреннего прогнозирования могут включать в себя режимы, применимые к данному блоку, и дополнительно, режимы, применимые к нескольким меньшим блокам, которые совместно размещаются с данным блоком. В случаях, включающих в себя режимы, применимые к данному блоку и меньшим совместно размещенным блокам, процесс выбора возможных вариантов неявно также представляет собой процесс определения наилучшего иерархического разложения CTU на CB.
[00072] На второй стадии работы видеокодера 114 (называемой "стадией "кодирования"), итерация по выбранному дереву кодирования сигналов яркости и выбранному дереву кодирования сигналов цветности и в силу этого каждому выбранному CB выполняется в видеокодере 114. В итерации, CB кодируются в поток 115 битов, как подробнее описано в данном документе.
[00073] Энтропийный кодер 338 поддерживает как кодирование переменной длины синтаксических элементов, так и арифметическое кодирование синтаксических элементов. Арифметическое кодирование поддерживается с использованием процесса контекстно-адаптивного двоичного арифметического кодирования. Арифметически кодированные синтаксические элементы состоят из последовательностей одного или более "элементов разрешения". Элементы разрешения, такие как биты, имеют значение "0" или "1". Тем не менее, элементы разрешения не кодируются в потоке 115 битов в качестве дискретных битов. Элементы разрешения имеют прогнозированное ассоциированное (либо "вероятное" или "наиболее вероятное") значение и ассоциированную вероятность, известную как "контекст". Когда фактический элемент разрешения, который должен кодироваться, совпадает с прогнозированным значением, "наиболее вероятный символ" (MPS) кодируется. Кодирование наиболее вероятного символа является относительно недорогим с точки зрения потребленных битов. Когда фактический элемент разрешения, который должен кодироваться, не соответствует вероятному значению, "наименее вероятный символ" (LPS) кодируется. Кодирование наименее вероятного символа имеет относительно высокие затраты с точки зрения потребленных битов. Технологии кодирования на основе элементов разрешения обеспечивают эффективное кодирование элементов разрешения, для которых вероятность "0" по сравнению с "1" скашивается. Для синтаксического элемента с двумя возможными значениями (т.е. для "флага"), надлежащим является один элемент разрешения. Для синтаксических элементов с множеством возможных значений, требуется последовательность элементов разрешения.
[00074] Присутствие более поздних элементов разрешения в последовательности может определяться на основе значения более ранних элементов разрешения в последовательности. Дополнительно, каждый элемент разрешения может быть ассоциирован более чем с одним контекстом. Выбор конкретного контекста может зависеть от более ранних элементов разрешения в синтаксическом элементе, значений элементов разрешения соседних синтаксических элементов (т.е. из соседних блоков) и т.п. Каждый раз, когда контекстно-кодированный элемент разрешения кодируется, контекст, который выбран для этого элемента разрешения (если имеется), обновляется способом, отражающим новое значение элемента разрешения. В связи с этим, считается, что схема двоичного арифметического кодирования является адаптивной.
[00075] Также посредством видеокодера 114 поддерживаются элементы разрешения, в которых отсутствует контекст ("обходные элементы разрешения"). Обходные элементы разрешения кодируются при условии равновероятного распределения между "0" и "1". Таким образом, каждый элемент разрешения занимает один бит в потоке 115 битов. Отсутствие контекста экономит объем запоминающего устройства и уменьшает сложность, и в силу этого используются обходные элементы разрешения, для которых распределение значений для конкретного элемента разрешения не скашивается. Один пример контекста использования энтропийного кодера и адаптации известен в данной области техники в качестве CABAC (контекстно-адаптивного двоичного арифметического кодера), и множество разновидностей этого кодера используются при кодировании видео.
[00076] Энтропийный кодер 338 кодирует режим 388 внутреннего прогнозирования с использованием комбинации элементов разрешения после контекстного кодирования и обходного кодирования. Типично, список "наиболее вероятных режимов" формируется в видеокодере 114. Список наиболее вероятных режимов типично имеет фиксированную длину, к примеру, в три или шесть режимов, и может включать в себя режимы, встречающиеся в более ранних блоках. Контекстно-кодированный элемент разрешения кодирует флаг, указывающий то, представляет или нет режим внутреннего прогнозирования собой один из наиболее вероятных режимов. Если режим 388 внутреннего прогнозирования представляет собой один из наиболее вероятных режимов, дополнительно кодируется передача служебных сигналов, с использованием элементов разрешения после обходного кодирования. Кодированная дополнительная передача служебных сигналов указывает то, какой наиболее вероятный режим соответствует режиму 388 внутреннего прогнозирования, например, с использованием усеченной унарной строки элементов разрешения. В противном случае, режим 388 внутреннего прогнозирования кодируется как "оставшийся режим". Кодирование в качестве оставшегося режима использует альтернативный синтаксис, к примеру, код фиксированной длины, также кодированный с использованием элементов разрешения после обходного кодирования, чтобы выражать режимы внутреннего прогнозирования, отличные от режимов, присутствующих в списке наиболее вероятных режимов.
[00077] Модуль 384 мультиплексирования выводит PB 320 согласно определенному наилучшему режиму 388 внутреннего прогнозирования, с выбором из тестированного режима прогнозирования каждого возможного варианта CB. Возможные варианты режимов прогнозирования не должны обязательно включать в себя каждый возможный режим прогнозирования, поддерживаемый посредством видеокодера 114.
[00078] Режимы прогнозирования в широком смысле распадаются на две категории. Первая категория представляет собой "внутрикадровое прогнозирование" (также называемое "внутренним прогнозированием"). При внутрикадровом прогнозировании, формируется прогнозирование для блока, и способ формирования может использовать другие выборки, полученные из текущего кадра. Для внутренне прогнозированного PB, можно использовать различные режимы внутреннего прогнозирования для сигнала яркости и сигнала цветности, и в силу этого внутреннее прогнозирование описывается главным образом с точки зрения операции на PB.
[00079] Вторая категория режимов прогнозирования представляет сбой "межкадровое прогнозирование" (также называемое "внешним прогнозированием"). При межкадровом прогнозировании, прогнозирование для блока формируется с использованием выборок из одного или двух кадров, предшествующих текущему кадру в порядке кодирования кадров в потоке битов. Кроме того, для межкадрового прогнозирования, одно дерево кодирования типично используется как для канала сигнала яркости, так и для каналов сигнала цветности. Порядок кодирования кадров в потоке битов может отличаться от порядка кадров при захвате или отображении. Когда один кадр используется для прогнозирования, считается, что блок "унипрогнозируется" и имеет один ассоциированный вектор движения. Когда два кадра используются для прогнозирования, считается, что блок "бипрогнозируется" и имеет два ассоциированных вектора движения. Для P-среза, каждая CU может внутренне прогнозироваться или унипрогнозироваться. Для B-среза, каждая CU может внутренне прогнозироваться, унипрогнозироваться или бипрогнозироваться. Кадры типично кодируются с использованием структуры на основе "групп кинокадров", предоставляющей временную иерархию кадров. Временная иерархия кадров обеспечивает возможность кадру ссылаться на предыдущий и последующий кинокадр в порядке отображения кадров. Изображения кодируются в порядке, требуемом для того, чтобы обеспечивать то, что зависимости для декодирования каждого кадра удовлетворяются.
[00080] Подкатегория внешнего прогнозирования называется "режимом пропуска". Режимы внешнего прогнозирования и пропуска описываются как два различных режима. Тем не менее, режим внешнего прогнозирования и режим пропуска заключает в себе векторы движения, ссылающиеся на блоки выборок из предшествующих кадров. Внешнее прогнозирование заключает в себе кодированную дельту вектора движения, указывающую вектор движения относительно предиктора вектора движения. Предиктор вектора движения получается из списка одного или более возможных вариантов векторов движения, выбранных с "индексом объединения". Кодированная дельта вектора движения предоставляет пространственное смещение для выбранного прогнозирования векторов движения. Внешнее прогнозирование также использует кодированный остаток в потоке 133 битов. Режим пропуска использует только индекс (также называемый "индексом объединения"), чтобы выбирать один из нескольких возможных вариантов векторов движения. Выбранный возможный вариант используется без дальнейшей передачи служебных сигналов. Кроме того, режим пропуска не поддерживает кодирование остаточных коэффициентов. Отсутствие кодированных остаточных коэффициентов, когда режим пропуска используется, означает то, что нет необходимости выполнять преобразования для режима пропуска. Следовательно, режим пропуска типично не приводит к проблемам конвейерной обработки. Проблемы конвейерной обработки могут иметь место для внутренне прогнозированных CU и внешне прогнозированных CU. Вследствие ограниченной передачи служебных сигналов режима пропуска, режим пропуска является полезным для достижения очень высокой производительности сжатия, когда относительно высококачественные опорные кадры доступны. Бипрогнозированные CU в более высоких временных слоях структуры на основе групп кинокадров произвольного доступа типично имеют высококачественные опорные кинокадры и возможные варианты векторов движения, которые точно отражают базовое движение.
[00081] Выборки выбираются согласно вектору движения и индексу опорного кинокадра. Вектор движения и индекс опорного кинокадра применяются ко всем цветовым каналам, и в силу этого внешнее прогнозирование описывается главным образом с точки зрения операции с PU, а не с PB. В каждой категории (т.е. для внутри- и межкадрового прогнозирования), различные технологии могут применяться, чтобы формировать PU. Например, внутреннее прогнозирование может использовать значения из смежных строк и столбцов ранее восстановленных выборок, в комбинации с направлением, чтобы формировать PU согласно предписанному процессу фильтрации и формирования. Альтернативно, PU может описываться с использованием небольшого числа параметров. Способы внешнего прогнозирования могут варьироваться по числу параметров движения и их точности. Параметры движения типично содержат индекс опорного кадра, указывающий то, какой опорный кадр(ы) из списков опорных кадров должен использоваться, плюс пространственное перемещение в пространстве для каждого из опорных кадров, но могут включать в себя большее число кадров, специальных кадров или комплексных афинных параметров, таких как масштабирование и вращение. Помимо этого, предварительно определенный процесс детализации движения может применяться, чтобы формировать плотные оценки движения на основе блоков выборок для ссылки.
[00082] После определения и выбора PB 320 и вычитания PB 320 из блока исходной выборки в вычитателе 322, остаток с наименьшими затратами на кодирование, представленными в качестве 324, получается и подвергается сжатию с потерями. Процесс сжатия с потерями содержит этапы преобразования, квантования и энтропийного кодирования. Модуль 326 прямого первичного преобразования применяет прямое преобразование к разности 324, с преобразованием разности 324 из пространственной области в частотную область и формированием коэффициентов первичного преобразования, представленных посредством стрелки 328. Коэффициенты 328 первичного преобразования передаются в модуль 330 прямого вторичного преобразования, чтобы формировать коэффициенты преобразования, представленные посредством стрелки 332, посредством выполнения операции неразделимого вторичного преобразования (NSST). Прямое первичное преобразование типично является разделимым, с преобразованием набора строк и затем набор столбцов каждого блока, типично с использованием DCT-2, хотя DST-7 и DCT-8 также могут быть доступными, например, горизонтально для ширин блока, не превышающих 16 выборок, и вертикально для высот блока, не превышающих 16 выборок. Преобразование каждого набора строк и столбцов выполняется посредством применения одномерных преобразований сначала к каждой строке блока, чтобы формировать частичный результат, а затем к каждому столбцу частичного результата, чтобы приводить к конечному результату. Прямое вторичное преобразование, в общем, представляет собой неразделимое преобразование, которое применяется только для остатка внутренне прогнозированных CU, и несмотря на это также может обходиться. Прямое вторичное преобразование работает либо для 16 выборок (размещаемых в качестве верхнего левого субблока 4×4 коэффициентов 328 первичного преобразования), либо для 64 выборок (размещаемых в качестве верхних левых коэффициентов 8×8, размещаемых в качестве четырех субблоков 4×4 коэффициентов 328 первичного преобразования). Кроме того, коэффициенты матрицы прямого вторичного преобразования выбираются из нескольких наборов согласно режиму внутреннего прогнозирования CU таким образом, что два набора коэффициентов доступны для использования. Использование одного из наборов коэффициентов матрицы или обход прямого вторичного преобразования, передается в служебных сигналах с помощью синтаксического элемента nsst_index, кодированный с использованием усеченного унарного преобразования в двоичную форму, чтобы выражать значения в нуль (вторичное преобразование не применяется), единицу (выбран первый набор коэффициентов матрицы) или два (выбран второй набор коэффициентов матрицы).
[00083] Коэффициенты 332 преобразования передаются в модуль 334 квантования. В модуле 334, квантование в соответствии с "параметром квантования" выполняется для того, чтобы формировать остаточные коэффициенты, представленные посредством стрелки 336. Параметр квантования является постоянным для данного TB, в силу этого приводит к равномерному масштабированию для формирования остаточных коэффициентов для TB. Неравномерное масштабирование также является возможным посредством применения "матрицы квантования", за счет чего коэффициент масштабирования, применяемый для каждого остаточного коэффициента, извлекается из комбинации параметра квантования и соответствующей записи в масштабирующей матрице, типично имеющей размер, равный размеру TB. Остаточные коэффициенты 336 подаются в энтропийный кодер 338 для кодирования в потоке 115 битов. Типично, остаточные коэффициенты каждого TB, по меньшей мере, с одним значимым остаточным коэффициентом TU сканируются, чтобы формировать упорядоченный список значений, согласно шаблону сканирования. Шаблон сканирования, в общем, сканирует TB в качестве последовательности "субблоков" 4×4, предоставляя регулярную операцию сканирования со степенью детализации в наборы 4×4 остаточных коэффициентов, причем компоновка субблоков зависит от размера TB. Дополнительно, режим 388 прогнозирования и соответствующая сегментация на блоки также кодируются в потоке 115 битов.
[00084] Как описано выше, видеокодеру 114 требуется доступ к представлению кадра, соответствующему представлению кадра, наблюдаемому в видеодекодере 134. Таким образом, остаточные коэффициенты 336 также обратные квантуются посредством модуля деквантования 340, чтобы формировать коэффициенты обратного преобразования, представленные посредством стрелки 342. Коэффициенты 342 обратного преобразования проходят через модуль 344 обратного вторичного преобразования, чтобы формировать коэффициенты промежуточного обратного преобразования, представленные посредством стрелки 346. Коэффициенты 346 промежуточного обратного преобразования передаются в модуль 348 обратного первичного преобразования, чтобы формировать остаточные выборки, представленные посредством стрелки 350, TU. Типы обратного преобразования, выполняемого посредством модуля 344 обратного вторичного преобразования, соответствуют типам прямого преобразования, выполняемого посредством модуля 330 прямого вторичного преобразования. Типы обратного преобразования, выполняемого посредством модуля 348 обратного первичного преобразования, соответствуют типам первичного преобразования, выполняемого посредством модуля 326 первичного преобразования. Модуль 352 суммирования суммирует остаточные выборки 350 и PU 320, чтобы формировать восстановленные выборки (указываются посредством стрелки 354) CU.
[00085] Восстановленные выборки 354 передаются в кэш 356 опорных выборок и модуль 368 внутриконтурной фильтрации. Кэш 356 опорных выборок, типично реализованный с использованием статического RAM на ASIC (в силу этого исключая затратный доступ к внемикросхемному запоминающему устройству), предоставляет минимальное хранилище выборок, требуемое для того, чтобы удовлетворять зависимостям для формирования внутрикадровых PB для последующих CU в кадре. Минимальные зависимости типично включают в себя "линейный буфер" выборок вдоль нижней части строки CTU для использования посредством следующей строки CTU и столбца, буферизующего степень, которой задается посредством высоты CTU. Кэш 356 опорных выборок предоставляет опорные выборки (представляются посредством стрелки 358) в фильтр 360 опорных выборок. Фильтр 360 выборок применяет операцию сглаживания, чтобы формировать фильтрованные опорные выборки (указываются посредством стрелки 362). Фильтрованные опорные выборки 362 используются посредством модуля 364 внутрикадрового прогнозирования, чтобы формировать внутренне прогнозированный блок выборок, представленных посредством стрелки 366. Для каждого возможного варианта режима внутреннего прогнозирования, модуль внутрикадрового прогнозирования 364 формирует блок выборок, т.е. 366.
[00086] Модуль 368 внутриконтурной фильтрации применяет несколько стадий фильтрации к восстановленным выборкам 354. Стадии фильтрации включают в себя "фильтр удаления блочности" (DBF), который применяет сглаживание, совмещенное с CU-границами, чтобы уменьшать артефакты, получающиеся в результате разрывностей. Другая стадия фильтрации, присутствующая в модуле 368 внутриконтурной фильтрации представляет собой "адаптивный контурный фильтр (ALF)", который применяет адаптивный фильтр Винер, чтобы дополнительно уменьшать искажение. Дополнительная доступная стадия фильтрации в модуле 368 внутриконтурной фильтрации представляет собой фильтр на основе "дискретизированного адаптивного смещения (SAO)". SAO-фильтр работает посредством сначала классификации восстановленных выборок на одну или более категорий и, согласно выделяемой категории, применения смещения на уровне выборки.
[00087] Фильтрованные выборки, представленные посредством стрелки 370, выводятся из модуля 368 внутриконтурной фильтрации. Фильтрованные выборки 370 сохраняются в буфере 372 кадров. Буфер 372 кадров типично имеет пропускную способность, чтобы сохранять несколько (например, до 16) кинокадров, и в силу этого сохраняется в запоминающем устройстве 206. Буфер 372 кадров типично не сохраняется с использованием внутримикросхемного запоминающего устройства вследствие требуемого большого потребления запоминающего устройства. В связи с этим, доступ к буферу 372 кадров является затратным с точки зрения пропускной способности запоминающего устройства. Буфер 372 кадров предоставляет опорные кадры (представлены посредством стрелки 374) в модуль 376 оценки движения и модуль 380 компенсации движения.
[00088] Модуль 376 оценки движения оценивает число "векторов движения" (указывается как 378), при этом каждый из них представляет собой декартово пространственное смещение от местоположения текущего CB, ссылающего на блок в одном из опорных кадров в буфере 372 кадров. Фильтрованный блок опорных выборок (представлен как 382) формируется для каждого вектора движения. Фильтрованные опорные выборки 382 формируют дополнительные возможные варианты режимов, доступные для потенциального выбора посредством модуля 386 выбора режима. Кроме того, для данной CU, PU 320 может формироваться с использованием одного ("унипрогнозированного") опорного блока или может формироваться с использованием двух ("бипрогнозированных") опорных блоков. Для выбранного вектора движения, модуль 380 компенсации движения формирует PB 320 в соответствии с процессом фильтрации, поддерживающим субпиксельную точность в векторах движения. В связи с этим, модуль 376 оценки движения (который работает для множества возможных вариантов векторов движения) может выполнять упрощенный процесс фильтрации по сравнению с процессом фильтрации модуля 380 компенсации движения (который работает только для выбранного возможного варианта), чтобы достигать уменьшенной вычислительной сложности.
[00089] Хотя видеокодер 114 по фиг. 3 описывается со ссылкой на стандарт универсального кодирования видео (VVC), другие стандарты кодирования видео или реализации также могут использовать стадии обработки модулей 310-386. Данные 113 кадров (и поток 115 битов) также могут считываться из (или записываться в/на) запоминающего устройства 206, накопителя 210 на жестких дисках, CD-ROM, Blu-Ray-дискаTM или другого компьютерно-читаемого носителя хранения данных. Дополнительно, данные 113 кадров (и поток 115 битов) могут приниматься (или передаваться) из/во внешний источник, такой как сервер, соединенный с сетью 220 связи, или радиочастотное приемное устройство.
[00090] Видеодекодер 134 показывается на фиг. 4. Хотя видеодекодер 134 по фиг. 4 представляет собой пример конвейера декодирования видео на основе стандарта универсального кодирования видео (VVC), другие видеокодеки также могут использоваться для того, чтобы выполнять стадии обработки, описанные в данном документе. Как показано на фиг. 4, поток 133 битов вводится в видеодекодер 134. Поток 133 битов может считываться из запоминающего устройства 206, накопителя 210 на жестких дисках, CD-ROM, Blu-Ray-дискаTM или другого энергонезависимого компьютерно-читаемого носителя хранения данных. Альтернативно, поток 133 битов может приниматься из внешнего источника, такого как сервер, соединенный с сетью 220 связи, или радиочастотное приемное устройство. Поток 133 битов содержит кодированные синтаксические элементы, представляющие захваченные данные кадров, которые должны декодироваться.
[00091] Поток 133 битов вводится в модуль 420 энтропийного декодера. Модуль 420 энтропийного декодера извлекает синтаксические элементы из потока 133 битов посредством декодирования последовательностей "элементов разрешения" и передает значения синтаксических элементов в другие модули в видеодекодере 134. Модуль 420 энтропийного декодера использует механизм арифметического декодирования для того, чтобы декодировать каждый синтаксический элемент в качестве последовательности одного или более элементов разрешения. Каждый элемент разрешения может использовать один или более "контекстов", при этом контекст описывает уровни вероятности, которые должны использоваться для кодирования значения "единица" и "нуль" для элемента разрешения. Если несколько контекстов доступны для данного элемента разрешения, этап "контекстного моделирования" или "выбора контекста" выполняется для того, чтобы выбирать один из доступных контекстов для декодирования элемента разрешения. Процесс декодирования элементов разрешения формирует последовательный контур обратной связи. Число операций в контуре обратной связи предпочтительно минимизируется, чтобы обеспечивать возможность энтропийному декодеру 420 достигать высокой пропускной способности в элементах разрешения/в секунду. Контекстное моделирование зависит от других свойств потока битов, известных видеодекодеру 134 во время выбора контекста, т.е. от свойств, предшествующих текущему элементу разрешения. Например, контекст может выбираться на основе глубины дерева квадрантов текущей CU в дереве кодирования. Зависимости предпочтительно основаны на свойствах, которые известны заранее декодирования элемента разрешения или определяются без необходимости длительных последовательных процессов. Глубина дерева квадрантов дерева кодирования представляет собой пример зависимости для контекстного моделирования, которая легко известна. Режим внутреннего прогнозирования представляет собой пример зависимости для контекстного моделирования, которую относительно сложно или вычислительно затратно определять. Режимы внутреннего прогнозирования кодируются либо в качестве индекса для списка "наиболее вероятных режимов (MPM)", либо в качестве индекса для списка "оставшихся режимов" с выбором между MPM и оставшимися режимами согласно декодированному intra_luma_mpm_flag. Когда MPM используется, синтаксический элемент intra_luma_mpm_idx декодируется, чтобы выбирать то, какой из наиболее вероятных режимов должен использоваться. В общем, предусмотрено шесть MPM. Когда оставшийся режим используется, синтаксический элемент intra_luma_remainder декодируется, чтобы выбирать то, какой из оставшихся (не-MPM)-режимов должен использоваться. Определение как наиболее вероятных режимов, так и оставшихся режимов требует значительного числа операций и включает в себя зависимости от режимов внутреннего прогнозирования соседних блоков. Например, соседние блоки могут представлять собой блоки выше и слева относительно текущего блока. Предпочтительно, контексты элементов разрешения каждой CU могут определяться, обеспечивая синтаксический анализ посредством механизма арифметического кодирования, без знания передаваемого в служебных сигналах режима внутреннего прогнозирования. Контур обратной связи, присутствующий в механизме арифметического кодирования для последовательного декодирования на основе элементов разрешения, за счет этого исключает зависимость от режима внутреннего прогнозирования. Определение режима внутреннего прогнозирования может отсрочиваться до последующей стадии обработки, с отдельным контуром обратной связи вследствие зависимости конструирования MPM-списков от режимов внутреннего прогнозирования соседних блоков. Соответственно, механизм арифметического декодирования модуля 420 энтропийного декодера имеет возможность синтаксически анализировать intra_luma_mpm_flag, intra_luma_mpm_idx, intra_luma_remainder без необходимости знать режимы внутреннего прогнозирования любого раннего (например, граничащего) блока. Модуль 420 энтропийного декодера применяет алгоритм арифметического кодирования, например, "контекстно-адаптивное двоичное арифметическое кодирование" (CABAC), для того, чтобы декодировать синтаксические элементы из потока 133 битов. Декодированные синтаксические элементы используются для того, чтобы восстанавливать параметры в видеодекодере 134. Параметры включают в себя остаточные коэффициенты (представлены посредством стрелки 424) и информацию выбора режима, такую как режим внутреннего прогнозирования (представлены посредством стрелки 458). Информация выбора режима также включает в себя такую информацию, как векторы движения и сегментация каждой CTU на один или более CB. Параметры используются для того, чтобы формировать PB, типично в комбинации с дискретизированными данными из ранее декодированных CB.
[00092] Остаточные коэффициенты 424 вводятся в модуль 428 деквантования. Модуль 428 деквантования выполняет обратное квантование (или "масштабирование") для остаточных коэффициентов 424, чтобы создавать восстановленные коэффициенты промежуточного преобразования, представленные посредством стрелки 432, согласно параметру квантования. Восстановленные коэффициенты 432 промежуточного преобразования передаются в модуль 436 обратного вторичного преобразования, в котором применяется вторичное преобразование либо отсутствие операции (обход), в соответствии с декодированным синтаксическим элементом nsst_index. Nsst_index декодируется из потока 133 битов посредством энтропийного декодера 420 при выполнении процессора 205. Как описано со ссылкой на фиг. 3, nsst_index декодируется из потока 133 битов в качестве усеченного унарного синтаксического элемента со значениями от нуля до двух. Модуль 436 обратного вторичного преобразования формирует восстановленные коэффициенты 440 преобразования. Независимо от того, должно или нет использование неравномерной матрицы обратного квантования указываться в потоке 133 битов, видеодекодер 134 считывает матрицу квантования из потока 133 битов в качестве последовательности коэффициентов масштабирования и размещает коэффициенты масштабирования в матрицу. Обратное масштабирование использует матрицу квантования в комбинации с параметром квантования, чтобы создавать восстановленные коэффициенты 432 промежуточного преобразования.
[00093] Восстановленные коэффициенты 440 преобразования передаются в модуль 444 обратного первичного преобразования. Модуль 444 преобразует коэффициенты из частотной области обратно в пространственную область. TB эффективно основан на значимых остаточных коэффициентах и значениях незначимых остаточных коэффициентов. Результат операции модуля 444 представляет собой блок остаточных выборок, представленных посредством стрелки 448. Остаточные выборки 448 равны по размеру с соответствующей CU. Остаточные выборки 448 подаются в модуль 450 суммирования. В модуле 450 суммирования остаточные выборки 448 суммируются с декодированным PB (представлен в качестве 452), чтобы формировать блок восстановленных выборок, представленных посредством стрелки 456. Восстановленные выборки 456 подаются в кэш 460 восстановленных выборок и модуль 488 внутриконтурной фильтрации. Модуль 488 внутриконтурной фильтрации формирует восстановленные блоки кадровых выборок, представленных в качестве 492. Кадровые выборки 492 записываются в буфер 496 кадров.
[00094] Кэш 460 восстановленных выборок работает аналогично кэшу 356 восстановленных выборок видеокодера 114. Кэш 460 восстановленных выборок предоставляет хранение для восстановленной выборки, требуемой для того, чтобы внутренне прогнозировать последующие CB, без запоминающего устройства 206 (например, посредством использования вместо этого данных 232, которые типично представляют собой внутримикросхемное запоминающее устройство). Опорные выборки, представленные посредством стрелки 464, получаются из кэша 460 восстановленных выборок и предоставляются в фильтр 468 опорных выборок, чтобы формировать фильтрованные опорные выборки, указываемые посредством стрелки 472. Фильтрованные опорные выборки 472 подаются в модуль 476 внутрикадрового прогнозирования. Модуль 476 формирует блок внутренне прогнозированных выборок, представленных посредством стрелки 480, в соответствии с параметром 458 режима внутреннего прогнозирования, передаваемым в служебных сигналах в потоке 133 битов и декодированным посредством энтропийного декодера 420.
[00095] Когда режим прогнозирования CB указывается в качестве внутреннего прогнозирования в потоке 133 битов, внутренне прогнозированные выборки 480 формируют декодированный PB 452 через модуль 484 мультиплексирования. Внутреннее прогнозирование формирует блок прогнозирования (PB) выборок, т.е. блок в одном цветовом компоненте, извлекаемый с использованием "соседних выборок" в идентичном цветовом компоненте. Соседние выборки представляют собой выборки, смежные с текущим блоком, и на основе предшествования в порядке блочного декодирования уже восстановлены. Если блоки сигналов яркости и сигналов цветности совместно размещаются, блоки сигналов яркости и сигналов цветности могут использовать различные режимы внутреннего прогнозирования. Тем не менее, два канала сигнала цветности совместно используют идентичный режим внутреннего прогнозирования. Внутреннее прогнозирование распадается на три типа. "Внутреннее DC-прогнозирование" заключает в себе заполнение PB с одним значением, представляющим среднее соседних выборок. "Планарное внутреннее прогнозирование" заключает в себе заполнение PB с выборками согласно плоскости, причем DC-смещение и вертикальный и горизонтальный градиент извлекаются из соседних выборок. "Угловое внутреннее прогнозирование" заключает в себе заполнение PB с соседними выборками, фильтрованными и распространяемыми через PB в конкретном направлении (или под конкретным "углом"). В VVC, 65 углов поддерживаются, с прямоугольными блоками, которые могут использовать дополнительные углы, не доступные для квадратных блоков, так что формируется в сумме 87 углов. Четвертый тип внутреннего прогнозирования доступен для PB сигналов цветности, за счет чего PB формируется из совместно размещенных восстановленных выборок сигнала яркости согласно "режиму на основе кросскомпонентной линейной модели (CCLM)". Три различных CCLM-режима доступны, каждый из которых использует различную модель, извлекаемую из соседних выборок сигнала яркости и сигнала цветности. Извлеченная модель затем используется для того, чтобы формировать блок выборок для PB сигналов цветности из совместно размещенных выборок сигнала яркости.
[00096] Когда режим прогнозирования CB указывается как внешнее прогнозирование в потоке 133 битов, модуль 434 компенсации движения формирует блок внешне прогнозированных выборок, представленных в качестве 438, с использованием вектора движения и индекса опорного кадра, чтобы выбирать и фильтровать блок выборок из буфера 496 кадров. Блок выборок 498 получается из ранее декодированного кадра, сохраненного в буфере 496 кадров. Для бипрогнозирования, два блока выборок формируются и смешиваются между собой, чтобы формировать выборки для декодированного PB 452. Буфер 496 кадров заполняется с фильтрованными блочными данными 492 из модуля 488 внутриконтурной фильтрации. Аналогично модулю 368 внутриконтурной фильтрации видеокодера 114, модуль 488 внутриконтурной фильтрации применяет, по меньшей мере, любые или все из операций DBF-, ALF- и SAO-фильтрации. Обычно, вектор движения применяется к каналам сигнала яркости и сигнала цветности, хотя процессы фильтрации для подвыборочного интерполяционного канала сигнала яркости и сигнала цветности отличаются. Когда разбиение на дерево кодирования приводит к совокупности относительно небольших блоков сигналов яркости, и соответствующая область сигналов цветности не разделяется на соответствующие небольшие блоки сигналов цветности, блоки кодируются и декодируются, как описано со ссылкой на фиг. 13 и 14, соответственно. В частности, если какой-либо из небольших блоков сигналов яркости прогнозируется с использованием внешнего прогнозирования, операция внешнего прогнозирования выполняется только для CB сигналов яркости, но не для любой части соответствующего CB сигналов цветности. Модуль 368 внутриконтурной фильтрации формирует фильтрованные блочные данные 492 из восстановленных выборок 456.
[00097] Фиг. 5 является принципиальной блок-схемой, показывающей совокупность 500 доступных разделений или разбиения области на одну или более подобластей в древовидной структуре стандарта универсального кодирования видео. Разделения, показанные в совокупности 500, доступны для модуля 310 сегментации на блоки кодера 114, чтобы разделять каждую CTU на одну или более CU или CB согласно дереву кодирования, как определено посредством лагранжевой оптимизации, как описано со ссылкой на фиг. 3.
[00098] Хотя совокупность 500 показывает только квадратные области, разделяемые на другие, возможно неквадратные подобласти, следует понимать, что схема 500 показывает потенциальные разделения, но без обязательности того, охватывающая область является квадратной. Если охватывающая область является неквадратной, размерности блоков, получающихся в результате разделения, масштабируются согласно соотношению сторон охватывающего блока. После того как область дополнительно не разбивается, т.е. в узле-листе дерева кодирования, CU занимает эту область. Конкретное подразделение CTU на одну или более CU посредством модуля 310 сегментации на блоки называется "деревом кодирования" CTU.
[00099] Процесс подразделения областей на подобласти должен завершаться, когда результирующие подобласти достигают минимального CU-размера. В дополнение к ограничению CU таким образом, чтобы запрещать блочные зоны, меньшие предварительно определенного минимального размера, например, 16 выборками, CU ограничены таким образом, что они имеют минимальную ширину или высоту в четыре. Другие минимумы, с точки зрения ширины и высоты либо с точки зрения ширины или высоты, также являются возможными. Процесс подразделения также может завершаться до самого глубокого уровня разложения, приводя к CU, большей минимального CU-размера. Отсутствие разбиения может возникать, приводя к одной CU, занимающей всю CTU. Одна CU, занимающая всю CTU, является наибольшим доступным размером единицы кодирования. Кроме того, CU, в которых возникает отсутствие разбиения, превышают размер области обработки. Как результат двоичного или троичного разбиения на самом верхнем уровне дерева кодирования, возможны такие CU-размеры, как 64×128, 128×64, 32×128 и 128×32, каждый из которых также превышает размер области обработки. В дальнейшем подробно описываются примеры CU, больших размера области обработки, со ссылкой на фиг. 10A-10F. Вследствие использования субдискретизированных форматов сигнала цветности, к примеру, 4:2:0, компоновки видеокодера 114 и видеодекодера 134 могут завершать разбиение областей в каналах сигнала цветности раньше, чем в каналах сигнала яркости.
[000100] В узлах-листьях дерева кодирования, существуют CU без дополнительного подразделения. Например, узел-лист 510 содержит одну CU. В узлах-нелистьях дерева кодирования существует разбиение на два или более дополнительных узлов, каждый из которых может либо содержать узел-лист, так что в силу этого одну CU, либо содержать дополнительные разбиения на меньшие области. В каждом узле-листе дерева кодирования, один блок кодирования существует для каждого цветового канала. Завершение разбиения на идентичной глубине для сигналов яркости и сигналов цветности приводит к трем совместно размещенным CB. Завершение разбиения на большей глубине для сигнала яркости, чем для сигнала цветности, приводит ко множеству CB сигналов яркости, совместно размещаемых с CB каналов сигнала цветности.
[000101] Разбиение 512 на дерево квадрантов разделяет охватывающую область на четыре области равного размера, как показано на фиг. 5. По сравнению с HEVC, стандарт универсального кодирования видео (VVC) достигает дополнительной гибкости за счет добавления горизонтального двоичного разбиения 514 и вертикального двоичного разбиения 516. Каждое из разбиений 514 и 516 разделяет охватывающую область на две области равного размера. Разделение выполняется либо вдоль горизонтальной границы (514), либо вдоль вертикальной границы (516) в пределах охватывающего блока.
[000102] Дополнительная гибкость достигается в стандарте универсального кодирования видео за счет добавления троичного горизонтального разбиения 518 и троичного вертикального разбиения 520. Троичные разбиения 518 и 520 разделяют блок на три области, ограниченные горизонтально (518) или вертикально (520) вдоль 1/4 и 3/4 области или высоты охватывающей области. Комбинация дерева квадрантов, двоичного дерева и троичного дерева называется "QTBTTT". Корень дерева включает в себя нуль или более разбиений на дерево квадрантов ("QT-секция" дерева). После того как QT-секция завершается, нуль или более двоичных или троичных разбиений могут возникать ("мультидерево" или "MT-секция" дерева), с полным завершением в CB или CU в узлах-листьях дерева. Если дерево описывает все цветовые каналы, узлы-листья дерева представляют собой CU. Если дерево описывает канал сигнала яркости или каналы сигнала цветности, узлы-листья дерева представляют собой CB.
[000103] По сравнению с HEVC, которое поддерживает только дерево квадрантов, и в силу этого поддерживает только квадратные блоки, QTBTTT приводит к гораздо большему числу возможных CU-размеров, в частности, с учетом возможного рекурсивного применения разбиений на двоичное дерево и/или троичное дерево. Потенциал для необычных (неквадратных) размеров блоков может уменьшаться за счет ограничения вариантов разбиения таким образом, чтобы исключать разбиения, которые приводят к ширине или высоте блока либо меньшей четырех выборок, либо не кратной четырех выборам. Обычно, ограничение должно применяться при учете выборок сигнала яркости. Тем не менее, в описанных компоновках, ограничение может применяться отдельно к блокам для каналов сигнала цветности. Применение ограничения к вариантам разбиения для каналов сигнала цветности может приводить к отличающимся минимальным размерам блоков для сигнала яркости по сравнению с сигналом цветности, например, когда данные кадров имеют формат сигнала цветности 4:2:0 или формат сигнала цветности 4:2:2. Каждое разбиение формирует подобласти с боковыми размерами, неизменными, разделенными на две или разделенными на четыре, относительно охватывающей область. Затем, поскольку CTU-размер представляет собой степень двух, боковые размеры всех CU также составляют степени двух.
[000104] Фиг. 6 является блок-схемой последовательности операций, иллюстрирующей поток 600 данных структуры на основе QTBTTT (или "дерева кодирования"), используемой в стандарте универсального кодирования видео. QTBTTT-структура используется для каждой CTU, чтобы задавать разделение CTU на одну или более CU. QTBTTT-структура каждой CTU определяется посредством модуля 310 сегментации на блоки в видеокодере 114 и кодируется в поток 115 битов или декодируется из потока 133 битов посредством энтропийного декодера 420 в видеодекодере 134. Поток 600 данных дополнительно характеризует допустимые комбинации, доступные для модуля 310 сегментации на блоки для разделения CTU на одну или более CU, согласно разделениям, показанным на фиг. 5.
[000105] Начиная с верхнего уровня иерархии, т.е. в CTU, нуль или более разделений на дерево квадрантов сначала выполняются. В частности, решение 610 по разбиению на дерево квадрантов (QT) принимается посредством модуля 310 сегментации на блоки. Решение на 610, возвращающее символ "1", указывает решение разбивать текущий узел на четыре подузла согласно разбиению 512 на дерево квадрантов. Результат представляет собой формирование четырех новых узлов, к примеру, на 620 и для каждого нового узла, рекурсивный возврат в решение 610 по QT-разбиению. Каждый новый узел учитывается в порядке растрового (или Z-сканирования). Альтернативно, если решение 610 по QT-разбиению указывает то, что дополнительное разбиение не должно выполняться (возвращает символ "0"), сегментация на основе дерева квадрантов прекращается, и после этого учитывается разбиение на мультидерево (MT).
[000106] Во-первых, решение 612 по MT-разбиению принимается посредством модуля 310 сегментации на блоки. На 612, указывается решение выполнять MT-разбиение. Возврат символа "0" в решении 612 указывает то, что дополнительное разбиение узла на подузлы не должно выполняться. Если дополнительное разбиение узла не должно выполняться, то узел представляет собой узел-лист дерева кодирования и соответствует CU. Узел-лист выводится на 622. Альтернативно, если MT-разбиение 612 указывает решение выполнять MT-разбиение (возвращает символ "1"), модуль 310 сегментации на блоки переходит к решению 614 по направлению.
[000107] Решение 614 по направлению указывает направление MT-разбиения как горизонтальное ("H" или "0") или вертикальное ("V" или "1"). Модуль 310 сегментации на блоки переходит к решению 616, если решение 614 возвращает "0", указывающий горизонтальное направление. Модуль 310 сегментации на блоки переходит к решению 618, если решение 614 возвращает "1", указывающий вертикальное направление.
[000108] В каждом из решений 616 и 618, число сегментов для MT-разбиения указывается как либо два (двоичное разбиение или "BT-узел"), либо три (троичное разбиение или "TT") в BT/TT-разбиении. Таким образом, решение 616 по BT/TT-разбиению принимается посредством модуля 310 сегментации на блоки, когда указываемое направление из 614 является горизонтальным, и решение 618 по BT/TT-разбиению принимается посредством модуля 310 сегментации на блоки, когда указываемое направление от 614 является вертикальным.
[000109] Решение 616 по BT/TT-разбиению указывает то, представляет собой горизонтальное разбиение или нет двоичное разбиение 514, что указывается посредством возврата "0", или троичное разбиение 518, что указывается посредством возврата "1". Когда решение 616 по BT/TT-разбиению указывает двоичное разбиение, на этапе 625 формирования HBT CTU-узлов, два узла формируются посредством модуля 310 сегментации на блоки, согласно двоичному горизонтальному разбиению 514. Когда BT/TT-разбиение 616 указывает троичное разбиение на этапе 626 формирования HTT CTU-узлов, три узла формируются посредством модуля 310 сегментации на блоки, согласно троичному горизонтальному разбиению 518.
[000110] Решение 618 по BT/TT-разбиению указывает то, представляет собой вертикальное разбиение или нет двоичное разбиение 516, что указывается посредством возврата "0", или троичное разбиение 520, что указывается посредством возврата "1". Когда BT/TT-разбиение 618 указывает двоичное разбиение, на этапе 627 формирования VBT CTU-узлов, два узла формируются посредством модуля 310 сегментации на блоки, согласно вертикальному двоичному разбиению 516. Когда BT/TT-разбиение 618 указывает троичное разбиение на этапе 628 формирования VTT CTU-узлов, три узла формируются посредством модуля 310 сегментации на блоки, согласно вертикальному троичному разбиению 520. Для каждого узла, получающийся в результате этапов 625-628, рекурсия потока 600 данных обратно в решение 612 по MT-разбиению применяется, в порядке слева направо или сверху вниз, в зависимости от направления 614. Как следствие, разбиения на двоичное дерево и троичное дерево могут применяться, чтобы формировать CU, имеющие множество размеров.
[000111] Наборы разрешенных и запрещенных разбиений в каждом узле дерева кодирования дополнительно описываются со ссылкой на фиг. 9.
[000112] Фиг. 7A и 7B предоставляют примерное разделение 700 CTU 710 на определенное число CU или CB. Примерная CU 712 показывается на фиг. 7A. Фиг. 7A показывает пространственную компоновку CU в CTU 710. Примерное разделение 700 также показывается в качестве дерева 720 кодирования на фиг. 7B.
[000113] В каждом узле-нелисте в CTU 710 по фиг. 7A, например, узлы 714, 716 и 718, вложенные узлы (которые могут дополнительно разделяться или могут представлять собой CU), сканируются или проходятся в "Z-порядке", чтобы создавать списки узлов, представленных в качестве столбцов в дереве 720 кодирования. Для разбиения на дерево квадрантов, сканирование Z-порядка приводит к сверху слева направо, а далее к порядку снизу слева направо. Для горизонтальных и вертикальных разбиений, сканирование Z-порядка (обход) упрощается до сканирования сверху вниз и сканирования слева направо, соответственно. Дерево 720 кодирования по фиг. 7B перечисляет все узлы и CU согласно применяемому порядку сканирования. Каждое разбиение формирует список из двух, трех или четырех новых узлов на следующем уровне дерева до тех пор, пока не достигается узел-лист (CU).
[000114] После разложения изображения на CTU и дополнительно на CU посредством модуля 310 сегментации на блоки и с использованием CU, чтобы формировать каждый остаточный блок (324), как описано со ссылкой на фиг. 3, остаточные блоки подвергаются прямому преобразованию и квантованию посредством видеокодера 114. Результирующие TB 336 затем сканируются, чтобы формировать последовательный список остаточных коэффициентов, в качестве части работы модуля 338 энтропийного кодирования. Эквивалентный процесс выполняется в видеодекодере 134, чтобы получать TB из потока 133 битов.
[000115] Пример по фиг. 7A и 7B описывает дерево кодирования, применимое как к каналу сигнала яркости, так и к каналу сигнала цветности. Тем не менее, пример по фиг. 7A и 7B также иллюстрирует поведение с точки зрения обхода дерева кодирования, применимого только к каналу сигнала яркости, или дерева кодирования, применимого только к каналам сигнала цветности. Для деревьев кодирования со многими вложенными разбиениями, доступные варианты разбиения на более глубоких уровнях ограничены посредством ограничений на доступные размеры блоков для соответствующих небольших областей. Ограничения на доступные размеры блоков для небольших областей налагаются, чтобы предотвращать наихудший случай скорости блочной обработки, настолько высокой, что она налагает необоснованную нагрузку на реализации. В частности, такое ограничение, что размеры блоков должны составлять кратное 16 (шестнадцати) выборок в сигнале цветности, обеспечивает возможность реализациям обрабатывать выборки со степенью детализации в 16 (шестнадцать) выборок. Ограничение размеров блоков кратными числами в шестнадцать выборок, в частности, является релевантным для контура обратной связи по "внутреннему восстановлению", который представляет собой тракт в видеодекодере 134 по фиг. 4, предусматривающий модули 450, 460, 468, 476 и 484, и эквивалентный тракт в видеокодере 114. В частности, ограничение размера блока кратным числом 16 (шестнадцати) выборок помогает в поддержании пропускной способности в режиме внутреннего прогнозирования. Например, архитектуры "микропроцессора с одновременным потоком данных и несколькими потоками инструкций (SIMD)" обычно работают с длинными словами, которые могут содержать 16 выборок. Кроме того, аппаратные архитектуры могут использовать широкие шины, к примеру, шины с шириной 16 выборок, чтобы передавать выборки вдоль контура обратной связи по внутреннему восстановлению. Если использован меньший размер блока, например, в четыре выборки, то шина недостаточно используется, например, только одна четверть ширины шины, содержащей дискретизированные данные. Хотя недостаточно используемая шина может обрабатывать меньшие блоки (т.е. меньше шестнадцати выборок), в худших вариантах, к примеру, когда многие или все блоки имеют относительно небольшой размер, недоиспользование может приводить к предотвращению работы в режиме реального времени кодера (114) или декодера (134). Для внешнего прогнозирования, каждый блок зависит от опорных выборок, полученных из буфера кадров (к примеру, буфера 372 или 496). Поскольку буфер кадров заполняется с опорными выборками при обработке предшествующего кадра, отсутствует контур зависимостей с обратной связью, что влияет на поблочную операцию для формирования внешне прогнозированных блоков. В дополнение к контуру зависимостей с обратной связью, который связан с внутрикадровым восстановлением, существует дополнительный и параллельный контур обратной связи, который связан с определением режима 458 внутреннего прогнозирования. Режим 458 внутреннего прогнозирования определяется посредством выбора режима из списка наиболее вероятных режимов или выбора режима из оставшегося списка режима. Определение списка наиболее вероятных режимов и списка оставшихся режимов требует режимов внутреннего прогнозирования соседних блоков. Когда относительно небольшие размеры блоков используются, список наиболее вероятных режимов и список оставшихся режимов должны определяться более часто, т.е. на частоте, отрегулированной посредством размера блока в выборках и частоты дискретизации канала.
[000116] Фиг. 8A, 8B и 8C предоставляют примерное разделение CTU 800 (8A) согласно дереву 820 кодирования (фиг. 8B) с разбиениями сигнала цветности, завершаемыми до разбиений сигнала яркости, и с использованием формата сигнала цветности 4:2:0. Если разбиение сигнала цветности завершается, пара CB используется, по одному для каждого канала сигнала цветности. Для иллюстративного удобства, CTU 800 имеет размер выборок сигнала яркости 64×64. CTU 800 является эквивалентной CTU-размеру 128×128, и включается дерево кодирования, имеющее одно дополнительное разбиение на дерево квадрантов. Разбиение на дерево квадрантов применяется к области 814 сигналов яркости 8×8. Область 814 сигналов яркости 8×8 разбивается на четыре CB сигналов яркости 4×4; тем не менее, отсутствие разбиения возникает в каналах сигнала цветности. Вместо этого, предварительно определенный пара CB сигналов цветности минимального размера (16 в описанном примере) используется, один из них соответствует каждому каналу сигнала цветности. Пара CB сигналов цветности типично имеет минимальный размер, который соответствует минимальной степени детализации для числа выборок, которые предпочтительно могут обрабатываться одновременно. Например, множество реализаций видеокодера 114 и видеокодера 134 должны работать с наборами по 16 выборок, например, вследствие использования, соответственно, широкой внутренней шины в аппаратной реализации. Дополнительно, каждый CB сигналов яркости, получающийся в результате перекрытий разбиения, по меньшей мере, частично с парой CB сигналов цветности и совместных CB сигналов яркости, полностью перекрывает пару CB сигналов цветности. В примере области 814, формируется пара CB сигналов цветности 4×4. Фиг. 8C показывает примеры того, как связаны результирующие CB сигналов яркости и CB сигналов цветности.
[000117] Возвращаясь в 8A, вертикальное двоичное разбиение применяется к области 810 сигналов яркости 16×4. Область 810 сигналов яркости 16×4 разбивается на два CB сигналов яркости 8×4; тем не менее, отсутствие разбиения возникает в каналах сигнала цветности, приводя к паре CB сигналов цветности 8×2. Вертикальное троичное разбиение применяется к области 812 сигналов яркости 16×4. Область 812 сигналов яркости 16×4 разбивается на CB сигналов яркости 4×4, 4×8 и 4×4; тем не менее, отсутствие разбиения возникает в каналах сигнала цветности, приводя к паре CB сигналов цветности 8×2. Горизонтальное двоичное разбиение применяется к области 816 сигналов яркости 8×16. Область 816 сигналов яркости 8×16 разбивается на CB сигналов яркости 8×4, 8×8 и 8×4; тем не менее, отсутствие разбиения возникает в каналах сигнала цветности, приводя к паре CB сигналов цветности 4×8. Соответственно, CB сигналов цветности составляют, по меньшей мере, 16 выборок в зоне.
[000118] Фиг. 8C показывает часть CTU 800 с тремя цветовыми плоскостями, показанными способом по частям (или с разделением), чтобы примерно иллюстрировать различные блочные структуры в различных плоскостях. Показаны плоскость 850 выборок сигнала яркости, первая плоскость 852 выборок сигналов цветности и вторая плоскость 854 выборок сигналов цветности. Когда "цветовое YCbCr-пространство" используется, плоскость 850 выборок сигнала яркости содержит Y-выборки кадра с изображением, первая плоскость 852 выборок сигналов цветности содержит Cb-выборки кадра с изображением, и вторая плоскость 854 выборок сигналов цветности содержит Cr-выборки кадра с изображением. Использование формата сигнала цветности 4:2:0 приводит к первой плоскости 852 выборок сигналов цветности и второй плоскости 854 выборок сигналов цветности, имеющей половину примерной плотности горизонтально и вертикально относительно плоскости 850 выборок сигнала яркости. Как следствие, размерности CB блоков сигналов цветности в выборках типично составляют половину размерности соответствующего CB сигналов яркости. Таким образом, для формата сигнала цветности 4:2:0, ширина и высота CB сигналов цветности составляют половину от ширины и высоты совместно размещенного CB сигналов яркости. Для формата сигнала цветности 4:2:2, высота CB сигналов цветности составляет половину от высоты совместно размещенного CB сигналов яркости, тогда как ширина является идентичной ширине совместно размещенного CB сигналов яркости. Для понятности, показаны только родительские разбиения на дерево кодирования области 816 сигналов яркости 8×16, и только показаны разбиения в плоскости 850 выборок сигнала яркости. Когда разбиение сигнала цветности завершается, множество CB сигналов яркости совместно размещаются с парой CB сигналов цветности. Например, дерево кодирования CTU 800 включает в себя горизонтальное троичное разбиение, применяемое к области 816 сигналов яркости 8×16. Горизонтальное троичное разбиение приводит к CB 860 сигналов яркости 8×4, CB 862 сигналов яркости 8×8 и CB 864 сигналов яркости 8×4, присутствующих в плоскости 850 выборок сигнала яркости. Поскольку область 816 сигналов яркости 8×16 соответствует зоне выборок сигналов цветности 4×8 в плоскостях (852 и 854) выборок сигналов цветности, троичное разбиение дерева кодирования не применяется для плоскостей (852 и 854) выборок сигналов цветности. Соответственно, зона выборок сигналов цветности 4×8 формирует узел-лист для сигнала цветности, приводя к паре CB сигналов цветности, т.е. CB 866 сигналов цветности для первой плоскости 852 выборок сигналов цветности и CB 868 сигналов цветности для второй плоскости 854 выборок сигналов цветности. В примере горизонтального троичного разбиения, применяемого в плоскости сигналов яркости только, достигается минимальный размер CB сигналов цветности в 32 выборки. Другие примерные зоны (810, 812 и 814) сигналов яркости приводят к минимальному размеру CB сигналов цветности в 16, который соответствует минимальному размеру блока сигналов яркости и требуемой степени детализации примерной обработки.
[000119] Фиг. 9 показывает совокупность 900 размеров блоков преобразования и ассоциированных шаблонов сканирования для каналов сигнала цветности, которые получаются в результате использования формата сигнала цветности 4:2:0. Совокупность 900 также может использоваться для формата сигнала цветности 4:2:2. Описанные компоновки являются подходящими для использования с кадрами с изображениями, имеющими формат сигнала цветности, в котором каналы сигнала цветности кадра с изображением субдискретизируются относительно канала сигнала яркости кадра с изображением, в частности, для форматов 4:2:0 и 4:2:2. Совокупность 900 не включает в себя все возможные размеры блоков преобразования сигналов цветности. Только блоки преобразования сигналов цветности с шириной, меньшей или равной шестнадцати, или с высотой, меньшей или равной восьми, показаны на фиг. 9. Блок сигналов цветности с большей шириной и высотой может возникать, но не показан на фиг. 9 для простоты ссылки.
[000120] Набор запрещенных размеров 910 преобразования включает в себя размеры 2×2, 2×4 и 4×2 блоков преобразования, все из которых имеют зоны менее чем в шестнадцать выборок. Другими словами, в примере по фиг. 9, минимальный размер преобразования 16 (шестнадцати) выборок сигнала цветности получается в результате работы описанных компоновок, в частности, для внутренне прогнозированных CB. Случаи запрещенных размеров 910 преобразования исключаются посредством определения вариантов разбиения, как описано со ссылкой на фиг. 10. Остаточные коэффициенты в преобразованиях сканируются в двухслойном подходе, в котором преобразование разделяется на "субблоки" (или "группы коэффициентов"). Сканирование осуществляется вдоль тракта сканирования от последнего значимого (ненулевого) коэффициента обратно к (левому верхнему) DC-коэффициенту. Тракт сканирования задается как продвижение в каждом субблоке ("нижний слой") и продвижение от одного субблока к следующему ("верхний слой"). В совокупности 900, TB 920 8×2 использует субблок 8×2, т.е. субблок, содержащий шестнадцать остаточных коэффициентов. TB 922 2×8 использует субблок 2×8, т.е. также содержащий шестнадцать остаточных коэффициентов.
[000121] TB, имеющие ширину или высоту в два и другую размерность, кратную восьми, используют несколько субблоков 2×8 или 8×2. Соответственно, блоки сигналов цветности, в некоторых случаях имеющие ширину в две выборки, кодируются с использованием разделения блока на субблоки, каждый из которых имеет размер выборок 2×8, и блоки сигналов цветности, имеющие высоту двух выборок, в некоторых случаях кодируются с использованием разделения блока на субблоки, каждый из которых имеет размер выборок 8×2. Например, TB 16×2 916 имеет два субблока 8×2, причем каждый субблок сканируется так, как показано для в TB 920. Продвижение сканирования от одного субблока к следующему показано в продвижении 917 по субблокам.
[000122] TB 2×32 (не показан на фиг. 9) использует четыре субблока 2×8, размещаемые в качестве массива "один-на-четыре". Остаточные коэффициенты в каждом субблоке сканируются, как показано для TB 922 2×8, с продвижением по субблокам от наименьшего субблока к крайнему верхнему субблоку массива "один-на-четыре".
[000123] Большие TB придерживаются аналогичного продвижения при сканировании. Для всех TB с шириной и высотой, большей или равной четырем, используется сканирование субблоков 4×4. Например, TB 923 4×8 использует сканирование 924 субблоков 4×4 с продвижением от более низкого субблока до верхнего субблока. TB 925 4×4 может сканироваться аналогичным образом. TB 929 8×8 использует продвижение 930 для четырех субблоков 4×4. Во всех случаях, сканирование в субблоке и продвижение от субблока к субблоку придерживается обратного диагонального сканирования, т.е. сканирование продвигается от "последнего" значимого остаточного коэффициента обратно к левому верхнему остаточному коэффициенту TB. Фиг. 9 также показывает порядок сканирования, например, по TB 932 8×4, TB 934 16×4 и TB 936 16×8. Кроме того, в зависимости от позиции последнего значимого коэффициента вдоль тракта сканирования, только часть субблока, содержащая последний значимый остаточный коэффициент от позиции последнего значимого коэффициента обратно к левому верхнему остаточному коэффициенту субблока, должна сканироваться. Субблоки дополнительно вдоль тракта сканирования в прямом направлении (т.е. ближе к правой нижней части относительно блока) не должны сканироваться. Совокупность 900 и, в частности, запрещенные размеры 910 преобразования налагают ограничения на способность разбивать области (или узлы) дерева кодирования в сигнале цветности на подобласти (или подузлы), как описано со ссылкой на фиг. 10.
[000124] В VVC-системе с использованием TB 2×2, 2×4 и 4×2 (набор TB 910), субблок 2×2 может использоваться для TB ширины и/или высоты в две выборки. Как описано выше, использование TB 910 увеличивает пропускную способность ограничения в контуре зависимостей с обратной связью по внутреннему восстановлению. Кроме того, использование субблока только с четырьмя коэффициентами увеличивает сложность синтаксического анализа остаточных коэффициентов при более высокой пропускной способности. В частности, для каждого субблока, "карта значимости" указывает значимость каждого остаточного коэффициента, содержащегося в нем. Кодирование флага значимости с единичным значением устанавливает абсолютную величину остаточного коэффициента в качестве, меньшей мере, единицы, и кодирование нульзначного флага устанавливает абсолютную величину остаточного коэффициента в качестве нуля. Абсолютная величина остаточного коэффициента (от единицы и выше) и знак кодируются только для "значимых" остаточных коэффициентов. Бит значимости не кодируется, и абсолютная величина (от нуля) всегда кодируется для DC-коэффициента. Кодеры и декодеры с высокой пропускной способностью, возможно, должны кодировать или декодировать несколько элементов разрешения карты значимости в расчете на тактовый цикл, чтобы поддерживать работу в режиме реального времени. Сложность кодирования и декодирования на основе множества элементов разрешения в расчете на цикл увеличивается, когда зависимости между элементами разрешения являются более многочисленными, например, когда используется меньший размер субблока. В системе 100, размеры субблоков равны 16 (несмотря на исключение субблока, содержащего последний значимый коэффициент), независимо от размера блока.
[000125] Фиг. 10 показывает набор 1000 правил для формирования списков разрешенных разбиений на дерево кодирования сигналов цветности. Другие кадры могут обеспечивать возможность смеси внешне прогнозированных и внутренне прогнозированных блоков. Хотя полный набор доступных разбиений дерева кодирования описывается со ссылкой на фиг. 6, ограничения на доступные размеры преобразования налагают ограничения на конкретные варианты разбиения для данного размера области. Как описано ниже, варианты разбиения для каждого из каналов сигнала цветности определяются согласно размерностям области соответствующей единицы дерева кодирования.
[000126] Правила 1020 для области сигналов цветности показывают разрешенные разбиения различных областей. Разрешенные разбиения правил 1020 выражаются в единицах выборок сигнала яркости, даже если учитываются каналы сигнала цветности, поскольку могут использоваться различные форматы сигнала цветности.
[000127] В прохождении по узлам дерева кодирования, список разрешенных разбиений для сигнала цветности получается посредством проверки доступности набора вариантов разбиения с размером области дерева кодирования. Варианты разбиения, которые приводят к областям, которые могут кодироваться с использованием CB, добавляются в список разрешенных разбиений. Для области, которая должна кодироваться с использованием CB, размер области должен обеспечивать кодирование с целым числом преобразований конкретного размера из совокупности 900. Конкретный размер выбирается в качестве наибольшего размера, который не превышает размер области (с учетом как ширины, так и высоты). В связи с этим, для меньших областей одно преобразование используется. Если размер области превышает размер области наибольшего доступного преобразования, наибольшее доступное преобразование разбивается на плитки, чтобы занимать всю область.
[000128] С учетом узла в дереве кодирования, которое имеет данную зону (выражается в выборках сигнала яркости), способность выполнять данный тип разбиения определяется согласно типу разбиения и зоне области сигналов цветности. Как показано на фиг. 10, вариант разбиения тестируется касательно размера области, чтобы определять то, приводит или нет вариант разбиения к подобластям запрещенного размера. Варианты разбиения, приводящие к подобластям разрешенных размеров, считаются разрешенным разбиением 1070 сигнала цветности.
[000129] Например, как показано в качестве правила 1021a для областей сигналов цветности, в QT-режиме (соответствующем решению 610 по фиг. 6), разбиения на дерево квадрантов не разрешаются, если область имеет размер 8×8 в формате 4:2:0 или 8×8 в формате 4:2:2, поскольку разбиение приводит к размерам преобразования 2×2 или 2×4, соответственно, для каналов сигнала цветности. Размеры областей, которые являются допустимыми, указываются посредством стрелки 1021. Аналогично, другие допустимые разбиения для набора 1020 правил для сигнала цветности указываются посредством стрелок 1022, 1023, 1024, 1025 и 1026 и, как пояснено относительно фиг. 13 и 14 ниже. Стрелки 1021, 1022, 1023, 1024, 1025 и 1026 ссылаются на список 1070 разрешенных разбиений сигнала цветности.
[000130] Размеры областей для каналов сигнала цветности описываются с точки зрения сетки выборок сигнала яркости. Например, область 8×4 соответствует преобразованию 4×2 для каналов сигнала цветности, когда используется формат сигнала цветности 4:2:0. Когда используется формат сигнала цветности 4:2:2, область 8×4 соответствует преобразованию 4×4 в сигнале цветности. Когда используется формат сигнала цветности 4:4:4, сигнал цветности не субдискретизируется относительно сигнала яркости, и таким образом, размер преобразования в сигнале цветности соответствует размеру области.
[000131] Ниже подробно описываются допустимые варианты разбиения относительно фиг. 13 и 14.
[000132] Фиг. 11 показывает способ 1100 для кодирования деревьев кодирования кадра с изображением в поток видеобитов. Способ 1100 может осуществляться посредством оборудования, такого как сконфигурированная FPGA, ASIC или ASSP. Дополнительно, способ 1100 может осуществляться посредством видеодекодера 114 при выполнении процессора 205. В связи с этим, способ 1100 может сохраняться на компьютерно-читаемом носителе хранения данных и/или в запоминающем устройстве 206. Способ 1100 начинается на этапе 1105 определения формата сигнала цветности.
[000133] На этапе 1105 определения формата сигнала цветности, процессор 205 определяет формат сигнала цветности данных 113 кадров в качестве одного из формата сигнала цветности 4:2:0 или формата сигнала цветности 4:2:2. Формат сигнала цветности представляет собой свойство данных кадров и не изменяется в ходе работы способа 1100. Способ 1100 продолжается под управлением процессора 205 от этапа 1105 к этапу 1110 разделения кадра на CTU.
[000134] На этапе 1110 разделения кадра на CTU, модуль 310 сегментации на блоки, при выполнении процессора 205, разделяет текущий кадр данных 113 кадров на массив CTU. Продвижение кодирования по CTU, получающимся в результате разделения, начинается. Управление в процессоре продвигается от этапа 1110 к этапу 1120 определения дерева кодирования.
[000135] На этапе 1120 определения дерева кодирования, видеокодер 114, при выполнении процессора 205, тестирует различные режимы прогнозирования и варианты разбиения в комбинации, которая поступает в дерево кодирования для CTU. Также извлекаются режимы прогнозирования и остаточные коэффициенты для каждой CU дерева кодирования для CTU. Обычно, лагранжева оптимизация выполняется для того, чтобы выбирать оптимальное дерево кодирования и CU для CTU. При оценке использования внешнего прогнозирования, вектор движения выбирается из набора возможных вариантов векторов движения. Возможные варианты векторов движения формируются согласно шаблону поиска. Когда тестирование искажения подвергнутых выборке опорных блоков для возможных вариантов векторов движения оценивается, учитывается применение запрещенного разбиения сигнала цветности в дереве кодирования. Когда разбиение запрещается в сигнале цветности и разрешается в сигнале яркости, результирующие CB сигналов яркости могут использовать внешнее прогнозирование. Компенсация движения применяется только к каналу сигнала яркости, и таким образом, вычисление искажения учитывает искажение сигнала яркости, а не искажение сигнала цветности. Искажение сигнала цветности не учитывается, поскольку компенсация движения не выполняется в канале сигнала цветности, когда запрещено разбиение сигнала цветности. Для сигнала цветности, учитывается искажение, получающееся в результате учитываемого режима внутреннего прогнозирования и кодированного TB сигналов цветности (если имеется). С учетом сигнала яркости и сигнала цветности, поиск внешнего прогнозирования может во-первых выбирать вектор движения на основе искажения сигнала яркости и затем "детализировать" вектор движения, также с учетом искажения сигнала цветности. Детализация, в общем, учитывает небольшое варьирование значения вектора движения, к примеру, субпиксельные смещения. Когда разбиение сигнала цветности запрещается, и оценка внешнего прогнозирования для небольших блоков сигналов яркости выполняется, детализация сигнала цветности не нужна. Управление в процессоре 205 продвигается от этапа 1120 к этапу 1130 кодирования дерева кодирования.
[000136] На этапе 1130 кодирования дерева кодирования, видеокодер 114, при выполнении процессора 205, осуществляет способ 1300, который описывается относительно фиг. 13, чтобы кодировать дерево кодирования текущей CTU в поток 115 битов. Этап 1130 выполняется для того, чтобы кодировать текущую CTU в поток битов. Управление в процессоре 205 продвигается от этапа 1130 к этапу 1140 тестирования последней CTU.
[000137] На этапе 1140 тестирования последней CTU, процессор 205 тестирует то, является или нет текущая CTU последней CTU в срезе или кадре. Если нет ("Нет" на этапе 1140), видеокодер 114 переходит к следующей CTU в кадре, и управление в процессоре 205 продвигается от этапа 1140 обратно на этап 1120, чтобы продолжать обработку оставшихся CTU в кадре. Если CTU является последней в кадре или срезе, этап 1140 возвращает "Да", и способ 1100 завершается. Как результат способа 1100, полный кадр с изображением кодируется как последовательность CTU в поток битов.
[000138] Фиг. 12 показывает способ 1200 для декодирования деревьев кодирования кадра с изображением из потока видеобитов. Способ 1200 может осуществляться посредством оборудования, такого как сконфигурированная FPGA, ASIC или ASSP. Дополнительно, способ 1200 может выполняться посредством видеодекодера 134 при выполнении процессора 205. В связи с этим, способ 1200 может сохраняться на компьютерно-читаемом носителе хранения данных и/или в запоминающем устройстве 206. Способ 1200 начинается на этапе 1205 определения формата сигнала цветности.
[000139] На этапе 1205 определения формата сигнала цветности, процессор 205 определяет формат сигнала цветности данных 113 кадров в качестве одного из формата сигнала цветности 4:2:0 или формата сигнала цветности 4:2:2. Формат сигнала цветности представляет собой свойство данных кадров и не изменяется в ходе работы способа 1200. Видеодекодер 134 может определять формат сигнала цветности на основе профиля потока 133 битов. Профиль задает набор инструментальных средств кодирования, которые могут использоваться посредством конкретного потока 133 битов и могут ограничивать формат сигнала цветности конкретными значениями, к примеру, 4:2:0. Профиль определяется посредством декодирования, например, синтаксического элемента profile_idc из потока 133 битов или посредством декодирования одного или более флагов ограничения из потока 133 битов, каждый из которых ограничивает использование конкретных инструментальных средств в потоке 133 битов. Если формат сигнала цветности не полностью указывается посредством профиля, дополнительный синтаксис, такой как chroma_format_idc может декодироваться, чтобы определять формат сигнала цветности. Способ 1200 продолжается при выполнении процессора 205 от этапа 1205 к этапу 1210 разделения кадра на CTU.
[000140] На этапе 1210 разделения кадра на CTU, видеодекодер 134, при выполнении процессора 205, определяет разделение текущего кадра данных 133 кадров, который должен декодироваться, в массив CTU. Продвижение декодирования по CTU, получающимся в результате определенного разделения, начинается. Управление в процессоре продвигается от этапа 1210 к этапу 1220 декодирования дерева кодирования.
[000141] На этапе 1220 декодирования дерева кодирования, видеодекодер 134, при выполнении процессора 205, осуществляет способ 1400 для текущей CTU, чтобы декодировать дерево кодирования текущей CTU из потока 133 битов. Текущая CTU представляет сбой выбранную одну из CTU, получающихся в результате выполнения этапа 1210. Управление в процессоре 205 продвигается от этапа 1220 к этапу 1240 тестирования последней CTU.
[000142] На этапе 1240 тестирования последней CTU, процессор 205 тестирует то, является или нет текущая CTU последней в срезе или кадре. Если не ("Нет" на этапе 1240), видеодекодер 134 переходит к следующей CTU в кадре, и управление в процессоре 205 продвигается от этапа 1240 обратно на этап 1220, чтобы продолжать CTU декодирования из потока битов. Если CTU является последней в кадре или срезе, этап 1240 возвращает "Да", и способ 1300 завершается.
[000143] Фиг. 13 показывает способ 1300 кодирования дерева кодирования кадра с изображением в поток видеобитов. Способ 1300 может осуществляться посредством оборудования, такого как сконфигурированная FPGA, ASIC или ASSP. Дополнительно, способ 1300 может осуществляться посредством видеокодера 114 при выполнении процессора 205. В связи с этим, способ 1300 может сохраняться на компьютерно-читаемом носителе хранения данных и/или в запоминающем устройстве 206. Способ 1300 приводит к кодированию блоков в поток 115 битов таким образом, что каждый блок представляет собой, по меньшей мере, минимальную зону. Описанные компоновки используют предварительно определенный минимальный размер выборок. Минимальный размер, используемый в описанных примерах, равен 16 выборкам, что является предпочтительным с точки зрения некоторых аппаратных и программных реализаций. Тем не менее, другой минимальный размер может несмотря на это использоваться. Например, степень детализации обработки в 32 или 64 и соответствующая минимальная блочная зона в 32 или 64 выборки, соответственно, является возможной. Блоки кодирования, которые имеют минимальную зону, являются преимущественными для осуществимости реализации, в аппаратных и в программных реализациях. Для программных реализаций, минимальная зона 16 выборок совмещается с типичными наборами инструкций с одним потоком инструкций и несколькими потоками данных (SIMD), такими как AVX-2 и SSE4. Способ 1300, активируемый первоначально в корневом узле дерева кодирования текущей CTU, начинается на этапе 1310 кодирования режима разбиения.
[000144] На этапе 1310 кодирования режима разбиения, энтропийный кодер 338, при выполнении процессора 205, кодирует режим разбиения в текущем узле дерева кодирования в поток 115 битов. Режим разбиения представляет собой одно из разбиений, как описано со ссылкой на фиг. 5, и этап кодирования режима разбиения разрешает только кодирование разбиений, которые являются возможными. Например, разбиение 512 на дерево квадрантов является возможным только в корневом узле дерева кодирования или под другими разбиениями на дерево квадрантов в дереве кодирования. Разбиения, которые должны приводить к CB сигналов яркости, имеющему ширину или высоту менее чем в четыре выборки, запрещаются, как показано относительно набора 910. Другие ограничения относительно максимальной глубины двоичных и/или троичных разбиений также могут иметь силу, например, на основе набора 1010 правил. Управление в процессоре 205 продвигается от этапа 1310 к этапу 1320 тестирования отсутствия разбиения.
[000145] На этапе 1320 тестирования отсутствия разбиения, процессор 205 тестирует то, представляет собой текущее разбиение или нет "отсутствие разбиения" (т.е. 510). Если текущее разбиение представляет собой отсутствие 510 разбиения ("Да" на этапе 1320), управление в процессоре 205 продвигается от этапа 1320 к этапу 1330 кодирования CU. В противном случае, если текущее разбиение представляет собой 510 ("Нет" на этапе 1320), управление в процессоре 205 продвигается к этапу 1340 тестирования запрета разбиения сигнала цветности.
[000146] На этапе 1330 кодирования CU, энтропийный кодер 338, при выполнении процессора 205, кодирует режим прогнозирования CU и остаток CU в поток 115 битов. Поскольку этап 1330 достигается в каждом узле-листе дерева кодирования, способ 1300 завершается после этапа 1330 завершения, возвращаясь к родительской активации в обходе дерева кодирования. После того как все узлы дерева кодирования проходятся, вся CTU кодируется в потоке 115 битов, и управление возвращается в способ 1100, переходя к следующей CTU в кадре с изображением.
[000147] На этапе 1340 тестирования запрета разбиения сигнала цветности, процессор 205 определяет то, разрешается или нет применение разбиения для текущего узла в дереве кодирования, согласно этапу 1310, к каналу сигнала цветности, в соответствии с набором правил разбиения области 1020 сигналов цветности по фиг. 10. Если текущий узел в дереве кодирования покрывает зону сигналов яркости в 128 выборок сигнала яркости (32×4 или 4×32 или 16×8 или 8×16), то троичное разбиение в соответствующей области сигналов цветности (выборки сигналов цветности 16×2, 2×16, 8×4, 4×8, соответственно) запрещается, как показано в наборе 1020 правил. Если троичное разбиение разрешается, то результирующие размеры блоков включают в себя запрещенные размеры блоков (например, 2×4 или 4×2). Когда текущий узел в дереве кодирования покрывает зону сигналов яркости в 64 выборки сигнала яркости, то разбиения на двоичное дерево, троичное дерево на дерево квадрантов запрещаются, как показано в наборе 1020 правил. Реализация разбиений на двоичное дерево, троичное дерево на дерево квадрантов для зоны сигналов яркости в 64 выборки сигнала яркости приводит к запрещенным размерам блоков сигналов цветности (2×2, 2×4, 4×2). Если разбиение не запрещается (т.е. разбиение представляет собой разрешенное разбиение сигнала цветности списка 1070), этап 1340 возвращает "Нет", и управление в процессоре 205 продвигается от этапа 1340 к этапу 1350 выполнения разбиения сигнала яркости и сигнала цветности. В противном случае, если разбиение запрещается ("Да" в 1 340), управление в процессоре 205 продвигается к этапу 13100 выполнения разбиения сигнала яркости.
[000148] На этапе 1350 выполнения разбиения сигнала яркости и сигнала цветности, процессор 205 применяет разбиение, чтобы разделять текущую область, ассоциированную с текущим узлом дерева кодирования, на подобласти, ассоциированные с подузлами дерева кодирования. Разбиение применяется в соответствии с описанием по фиг. 5 и 6. Управление в процессоре 205 продвигается от этапа 1350 к этапу 1360 выбора области.
[000149] На этапе 1360 выбора области, процессор выбирает одну из подобластей, получающихся в результате этапа 1350. Подобласть выбирается в соответствии со сканированием в Z-порядке областей. Выбор продвигается через подобласти на последующих итерациях этапа 1360. Управление в процессоре 205 продвигается от этапа 1360 к этапу 1370 кодирования дерева кодирования.
[000150] На этапе 1370 кодирования дерева кодирования, процессор 205 рекурсивно активирует способ 1300 для выбранной области, получающейся в результате этапа 1360. Этап 1370 дополнительно работает с возможностью кодировать блоки сигналов яркости и сигналов цветности и ассоциированные режимы прогнозирования и остаточные коэффициенты для каждой области в поток битов. Управление в процессоре 205 продвигается от этапа 1370 к этапу 1380 тестирования последней области.
[000151] На этапе 1380 тестирования последней области, процессор 205 тестирует то, является или нет выбранная область, выбранная на этапе 1360, последней из областей, получающихся в результате разделения согласно режиму разбиения, реализованному на этапе 1350. Если область не является последней областью ("Нет" на этапе 1380) управление в процессоре 205 продвигается от этапа 1380 к этапу 1360, чтобы продолжать продвижение вперед через области разбиения. В противном случае, этап 1380 возвращает "Да", способ 1300 завершается, и управление в процессоре 205 продвигается к родительской активации способа 1300.
[000152] На этапе 13100 выполнения разбиения сигнала яркости, режим разбиения, кодированный на этапе 1310, выполняется только в канале сигнала яркости посредством процессора 205. Как следствие, текущий узел дерева кодирования разделяется на несколько CB сигналов яркости в соответствии с режимом разбиения. Только пара CB сигналов цветности, т.е. один CB сигналов цветности в расчете на канал сигнала цветности формируется. Каждый результирующий CB сигналов яркости частично перекрывается (совместно размещается) с парой CB сигналов цветности, и совместно результирующие CB сигналов яркости полностью перекрываются с зоной пары CB сигналов цветности. Совместные CB сигналов яркости точно покрывают зону пары CB сигналов цветности. Кроме того, наименьшая зона каждого CB сигналов яркости и CB сигналов цветности имеет минимальный размер, например, в 16 выборок.
[000153] Этапы 13100 и 1350 работают с возможностью определять размер блока кодирования сигналов цветности для каналов Cb и Cr сигнала цветности. На этапе 1350, размер блока кодирования сигналов цветности для канала сигнала цветности определяется на основе режима разбиения, определенного на этапе 1310. На этапе 13100, размер блока кодирования сигналов цветности для канала сигнала цветности определяется на основе предварительно определенного минимального размера блока сигналов цветности. Как описано выше, этап 1350 реализуется на основе запрета разбиения сигнала цветности для единицы дерева кодирования. Как указано в наборе 1020 правил по фиг. 10, допустимые разбиения и, соответственно, размер блока кодирования сигналов цветности определяются на основе формата сигнала цветности, определенного на этапе 1105.
[000154] Управление в процессоре 205 продвигается от этапа 13100 к этапу 13110 выбора CB сигналов яркости.
[000155] На этапе 13110 выбора CB сигналов яркости, процессор 205 выбирает следующий CB сигналов яркости CB, получающихся в результате этапа 13100. Способ 13100 первоначально выбирает первый CB, который является левым верхним CB сигналов яркости из CB, получающихся в результате разбиения сигнала яркости. При последующей активации этапа 13110, каждый "следующий" CB сигналов яркости выбирается в соответствии со сканированием в Z-порядке по CB сигналов яркости, получающимся в результате этапа 13100. Управление в процессоре 205 продвигается от этапа 13110 к этапу 13120 кодирования CB сигналов яркости.
[000156] На этапе 13120 кодирования CB сигналов яркости, энтропийный кодер 338, при выполнении процессора 205, кодирует выбранный CB сигналов яркости в поток 115 битов. Обычно, режим прогнозирования и остаточные коэффициенты кодируются для выбранного CB сигналов яркости. Режим прогнозирования, кодированный для CB сигналов яркости, может использовать внешнее прогнозирование или внутреннее прогнозирование. Например, cu_skip_flag кодируется, чтобы указывать использование внешнего прогнозирования без остатка, в противном случае pred_mode_flag и опционально pred_mode_ibc_flag кодируются, чтобы указывать использование внутреннего прогнозирования, внешнего прогнозирования или внутриблочного копирования, каждое из которых имеет необязательные остаточные коэффициенты. Когда остаток может присутствовать, фаг cu_cbf передает в служебных сигналах присутствие, по меньшей мере, одного значимого (ненулевого) остаточного коэффициента в любом TB CB. Когда CB указывается таким образом, чтобы использовать внешнее прогнозирование, ассоциированный вектор движения является применимым только к CB сигналов яркости. Таким образом, вектор движения также не применяется, чтобы формировать любой PB, ассоциированный с любыми частично совместно размещенными CB сигналов цветности. Когда CB указывается таким образом, чтобы использовать внутриблочное копирование, ассоциированный блочный вектор ассоциирован только с CB сигналов яркости, а не с любыми частично совместно размещенными CB сигналов цветности. Управление в процессоре 205 продвигается от этапа 13120 к этапу 13130 тестирования последнего CB сигналов яркости.
[000157] На этапе 13130 тестирования последнего CB сигналов яркости, процессор 205 тестирует то, является или нет, выбранный на этапе 13110, последним CB сигналов яркости, согласно итерации в Z-порядке CB сигналов яркости разбиения, выполняемого на этапе 13100. Если выбранный CB сигналов яркости не является последним ("Нет" на этапе 13130), управление в процессоре 205 продвигается от этапа 13130 к этапу 13120. В противном случае, этап 13130 возвращает "Да", и управление в процессоре 205 продвигается к этапу 13140 определения режима внутреннего прогнозирования сигналов цветности.
[000158] При определении 13140 режима внутреннего прогнозирования сигналов цветности, видеокодер 114, при выполнении процессора 205, определяет режим внутреннего прогнозирования для пары CB сигналов цветности, совместно размещаемых с CB сигналов яркости этапа 13100. Этап 13140 эффективно определяет то, что блок сигналов цветности кодируется с использованием внутреннего прогнозирования. Выполняется определение в отношении того, дополнительно разбивается или нет область, занимаемая посредством CB сигналов цветности, на канал сигнала яркости в несколько CB сигналов яркости. Размер блока сигналов цветности для канала составляет предварительно определенный минимум (например, в 16 выборок), определенный посредством операции этапа 1350. Режим внутреннего прогнозирования для пары CB сигналов цветности определяется, даже если соответствующие CB сигналов яркости кодированы с использованием внешнего прогнозирования на этапе 13120. В одной компоновке, один режим прогнозирования, к примеру, внутреннее DC-прогнозирование, применяется к каждому CB сигналов цветности. Использование одного режима прогнозирования обеспечивает возможность определения режима на основе запрета разбиения сигнала цветности ("результат Да" на этапе 1340) и не влечет за собой дополнительное выполнение поиска, чтобы определять то, какой один режим из нескольких возможных режимов должен использоваться. Кроме того, поток битов 115 не требует дополнительной передачи служебных сигналов для этого случая, т.е. нет необходимости кодировать дополнительный синтаксический элемент intra_chroma_pred_mode. Тем не менее, компоновки позволяют достигать более высокой производительности сжатия посредством передачи в служебных сигналах одного режима внутреннего прогнозирования из нескольких возможных режимов внутреннего прогнозирования посредством включения синтаксического элемента intra_chroma_pred_mode в потоке битов 115, когда разбиение сигнала цветности запрещено ("Да" на этапе 1340). Видеокодер 114 определяет то, какой режим внутреннего прогнозирования должен использоваться. Режим внутреннего прогнозирования, в общем, определяется с учетом затрат на кодирование по сравнению с искажением. Тем не менее, более высокая производительность сжатия, в общем, получается по сравнению с использованием одного режима внутреннего прогнозирования для таких CB сигналов цветности. Управление в процессоре 205 продвигается от этапа 13140 к этапу 13150 кодирования CB сигналов цветности.
[000159] На этапе 13150 кодирования CB сигналов цветности, энтропийный кодер 338, при выполнении процессора 205, кодирует режим внутреннего прогнозирования для CB сигналов цветности в поток 115 битов, с использованием синтаксического элемента intra_chroma_pred_mode, когда несколько режимов внутреннего прогнозирования доступны для использования. Когда один режим внутреннего прогнозирования, например, внутреннее DC-прогнозирование, является возможным, intra_chroma_pred_mode не кодируется в поток 115 битов. Доступные режимы внутреннего прогнозирования для внутреннего прогнозирования сигналов цветности могут включать в себя DC-, планарный и следующие режимы углового прогнозирования: горизонтальный, вертикальный, вверх и вправо по диагонали. Доступные режимы внутреннего прогнозирования также могут включать в себя "прямой режим" (DM_CHROMA), за счет чего режим внутреннего прогнозирования сигналов цветности получается из совместно размещенного CB сигналов яркости, в общем, самого нижнего и самого правого из CB сигналов яркости, получающихся в результате этапа 13100. Когда внутреннее прогнозирование "кросскомпонентной линейной модели" доступно, CB сигналов цветности может прогнозироваться из выборок из CB сигналов яркости. Остаточные коэффициенты TB сигналов цветности, ассоциированных с CB сигналов цветности, также могут кодироваться в поток 115 битов, как описано со ссылкой на этап 14150 по фиг. 14. После того как этап 13150 выполняется посредством процессора 205, способ 1300 завершается, и управление в процессоре 205 возвращается к родительской активации способа 1300.
[000160] Фиг. 14 показывает способ 1400 декодирования дерева кодирования кадра с изображением из потока видеобитов, реализованный на этапе 1220 способа 1200. Способ 1400 может осуществляться посредством оборудования, такого как сконфигурированная FPGA, ASIC или ASSP. Дополнительно, способ 1400 может осуществляться посредством видеодекодера 134 при выполнении процессора 205. В связи с этим, способ 1400 может сохраняться на компьютерно-читаемом носителе хранения данных и/или в запоминающем устройстве 206. Способ 1400 приводит к блокам декодирования из потока 133 битов таким образом, что каждый блок не меньше минимальной зоны, к примеру, в 16 выборок, что является преимущественным для осуществимости реализации, как в аппаратном случае, таки в программном случае. Для программного случая, минимальная зона 16 выборок совмещается с типичными наборами инструкций с одним потоком инструкций и несколькими потоками данных (SIMD), такими как AVX-2 и SSE4. Способ 1400, активируемый первоначально в корневом узле дерева кодирования текущей CTU, начинается на этапе 1410 декодирования режима разбиения.
[000161] На этапе 1410 декодирования режима разбиения, энтропийный декодер 420, при выполнении процессора 205, декодирует режим разбиения в текущем узле дерева кодирования в поток 133 битов. Режим разбиения представляет собой одно из разбиений, как описано со ссылкой на фиг. 5, и способ кодирования режима разбиения разрешает только кодирование разбиений, которые разрешаются, т.е. разрешается в канале сигнала яркости, даже если разбиение запрещается в каналах сигнала цветности. Например, разбиение 512 на дерево квадрантов является возможным только в корневом узле дерева кодирования или под другими разбиениями на дерево квадрантов в дереве кодирования. Запрещаются разбиения, которые приводят к CB сигналов яркости, имеющему ширину или высоту менее чем в четыре выборки. В связи с этим, CB-размер сигнала минимальной яркости равен 16 выборкам. Другие ограничения относительно максимальной глубины двоичных и/или троичных разбиений также могут иметь силу. Управление в процессоре 205 продвигается от этапа 1410 к этапу 1420 тестирования отсутствия разбиения.
[000162] На этапе 1420 тестирования отсутствия разбиения, процессор 205 тестирует то, представляет собой текущее разбиение или нет "отсутствие разбиения" (т.е. 510). Если текущее разбиение представляет собой отсутствие 510 разбиения ("Да" на 1420), управление в процессоре 205 продвигается от этапа 1420 к этапу 1430 декодирования CU. В противном случае, этап 1420 возвращает "Нет", и управление в процессоре 205 продвигается к этапу 1440 тестирования запрета разбиения сигнала цветности.
[000163] На этапе 1430 декодирования CU, энтропийный декодер 420, при выполнении процессора 205, декодирует режим прогнозирования CU и остаточные коэффициенты CU потока 115 битов. Этап 1430 работает с возможностью декодировать единицу кодирования с использованием остаточных коэффициентов и режима прогнозирования, определенных из потока битов посредством энтропийного декодера 420. Поскольку этап 1430 достигается в каждом узле-листе дерева кодирования, способ 1400 завершается после завершения этапа 1430, возвращаясь к родительской активации в обходе дерева кодирования. После того как все узлы дерева кодирования проходятся, вся CTU декодируется из потока 133 битов, и управление возвращается в способ 1200, переходя к следующей CTU в кадре с изображением.
[000164] На этапе 1440 тестирования запрета разбиения сигнала цветности, процессор 205 определяет то, разрешается или нет применение разбиения для текущего узла в дереве кодирования, согласно этапу 1410, к каналу сигнала цветности, в соответствии с набором правил разбиения области 1020 сигналов цветности по фиг. 10. Этап 1440 определяет то, запрещается или нет тест разбиения, аналогично этапу 1340 способа 1300. Операция этапа 1440 предотвращает возникновение запрещенных размеров блоков. Когда область сигналов цветности уже имеет минимальный размер, например, в 16 выборок сигнала цветности, дополнительное разбиение любого типа не разрешается, поскольку число результирующих областей составляет меньше разрешенного минимума. Когда размер области сигналов цветности равен 32 выборкам, и соответствующее разбиение представляет собой троичное разбиение (независимо от того, представляет оно собой горизонтальное или вертикальное троичное разбиение), дополнительное разбиение также запрещается, чтобы исключать блоки сигналов цветности зоны 8 выборок сигнала цветности. Если разбиение не запрещается (т.е. разбиение разрешается), этап 1450 возвращает "Нет", и управление в процессоре 205 продвигается от этапа 1440 к этапу 1450 выполнения разбиения сигнала яркости и сигнала цветности. В противном случае, если разбиение запрещается ("Да" на этапе 1450), управление в процессоре 205 продвигается к этапу 14100 определения режима внутреннего прогнозирования сигналов цветности.
[000165] На этапе 1450 выполнения разбиения сигнала яркости и сигнала цветности, процессор 205 применяет разбиение, чтобы разделять текущую область, ассоциированную с текущим узлом дерева кодирования, на подобласти, ассоциированные с подузлами дерева кодирования. Разбиение применяется, как описано относительно фиг. 5 и 6.
[000166] Этапы 14100 и 1450 работают с возможностью определять размер блока кодирования сигналов цветности для каналов Cb и Cr сигнала цветности. На этапе 1450, размер блока кодирования сигналов цветности для канала сигнала цветности определяется на основе режима разбиения, декодированного на этапе 1410. На этапе 14100, размер блока кодирования сигналов цветности для канала сигнала цветности определяется на основе предварительно определенного минимального размера блока сигналов цветности. Как описано выше, этап 1450 реализуется на основе запрета разбиения сигнала цветности для единицы дерева кодирования, которая соответствует минимальному размеру CB сигналов цветности 16 (и 32 в случае троичного разбиения зоны сигналов яркости в 128 выборок). Как указано в наборе 1020 правил по фиг. 10, допустимые разбиения и, соответственно, размер блока кодирования сигналов цветности определяются на основе формата сигнала цветности, определенного на этапе 1205.
[000167] Управление в процессоре 205 продвигается от этапа 1450 к этапу 1460 выбора области.
[000168] На этапе 1460 выбора области, процессор 205 выбирает одну из подобластей, получающихся в результате этапа 1450, в соответствии со сканированием в Z-порядке областей. Этап 1460 управляет выбором продвижения через подобласти на последующих итерациях. Управление в процессоре 205 продвигается от этапа 1460 к этапу 1470 декодирования дерева кодирования.
[000169] На этапе 1470 декодирования дерева кодирования, процессор 205 рекурсивно активирует способ 1400 для выбранной области, получающейся в результате операции этапа 1460. Этап 1470 дополнительно работает с возможностью декодировать каждую область дерева кодирования с использованием остаточных коэффициентов и режима прогнозирования, определенных из потока битов. Управление в процессоре 205 продвигается от этапа 1470 к этапу 1480 тестирования последней области.
[000170] На этапе 1480 тестирования последней области, процессор 205 тестирует то, является или нет выбранная область, предварительно выбранная при последней итерации этапа 1460, последней из областей, получающихся в результате разделения согласно режиму разбиения, реализованного на этапе 1450. Если область не является последней областью ("Нет" на этапе 1480), управление в процессоре 205 продвигается от этапа 1480 к этапу 1460, чтобы продолжать продвижение вперед через области разбиения. В противном случае, этап 1480 возвращает "Да", способ 1400 завершается, и управление в процессоре 205 продвигается к родительской активации способа 1400.
[000171] На этапе 14100 выполнения разбиения сигнала яркости, режим разбиения, кодированный на этапе 1410, выполняется только в канале сигнала яркости посредством процессора 205. Как следствие, текущий узел дерева кодирования разделяется на несколько CB сигналов яркости в соответствии с режимом разбиения. Этап 14100 работает с возможностью формировать только пару CB сигналов цветности, т.е. один CB сигналов цветности в расчете на канал сигнала цветности. Каждый результирующий CB сигналов яркости частично перекрывается (по меньшей мере, частично совместно размещается) с парой CB сигналов цветности, и совместно CB сигналов яркости полностью перекрывают пару CB сигналов цветности. Кроме того, наименьшая зона каждого CB сигналов яркости и CB сигналов цветности равна 16 выборкам. Управление в процессоре 205 продвигается от этапа 14100 к этапу 14110 выбора CB сигналов яркости.
[000172] На этапе 14110 выбора CB сигналов яркости, процессор 205 выбирает следующий CB сигналов яркости CB, получающихся в результате этапа 14100. Выбор следующего CB сигналов яркости начинается с первого CB, который является левым верхним CB сигналов яркости CB, получающихся в результате разбиения сигнала яркости. При последующей активации этапа 14110, каждый "следующий" CB сигналов яркости выбирается в соответствии со сканированием в Z-порядке по CB сигналов яркости, получающимся в результате этапа 14100. Управление в процессоре 205 продвигается от этапа 14110 к этапу 14120 декодирования CB сигналов яркости.
[000173] На этапе 14120 декодирования CB сигналов яркости, энтропийный декодер 420, при выполнении процессора 205, декодирует выбранный CB сигналов яркости в поток 115 битов. Обычно, режим прогнозирования и остаток декодируются для выбранного CB сигналов яркости. Например, cu_skip_flag декодируется, чтобы указывать использование внешнего прогнозирования без остатка, в противном случае pred_mode_flag, и опционально pred_mode_ibc_flag декодируются, чтобы указывать использование внутреннего прогнозирования, внешнего прогнозирования или внутриблочного копирования, каждое из которых имеет необязательные остаточные коэффициенты. Когда остаток может присутствовать, фаг cu_cbf передает в служебных сигналах присутствие, по меньшей мере, одного значимого (ненулевого) остаточного коэффициента в любом TB CB. Когда CB указывается таким образом, чтобы использовать внешнее прогнозирование, ассоциированный вектор движения является применимым только к CB сигналов яркости, т.е. вектор движения также не применяется, чтобы формировать любой PB, ассоциированный с любыми частично совместно размещенными CB сигналов цветности. Когда CB таким образом, чтобы использовать внутриблочное копирование, ассоциированный блочный вектор ассоциирован только с CB сигналов яркости, а не с любыми частично совместно размещенными CB сигналов цветности. Управление в процессоре 205 продвигается от этапа 14120 к этапу 14130 тестирования последнего CB сигналов яркости.
[000174] На этапе 14130 тестирования последнего CB сигналов яркости, процессор 205 тестирует то, является или нет CB сигналов яркости, выбранный на этапе 14110, последним CB сигналов яркости согласно итерации в Z-порядке CB сигналов яркости разбиения, выполняемого на этапе 14100. Если выбранный CB сигналов яркости не является последним, управлением в процессоре 205 продвигается от этапа 14130 к этапу 14110. В противном случае, управление в процессоре 205 продвигается к этапу 14140 определения режима внутреннего прогнозирования сигналов цветности.
[000175] При определении 14140 режима внутреннего прогнозирования сигналов цветности, видеодекодер 134, при выполнении процессора 205, определяет режим внутреннего прогнозирования для пары CB сигналов цветности, совместно размещаемых с CB сигналов яркости этапа 14100. Этап 14140 эффективно определяет то, что блок сигналов цветности кодирован с использованием внутреннего прогнозирования и, соответственно, должен декодироваться с использованием внутреннего прогнозирования, если блок сигналов цветности представляет собой результат прекращения разбиения дерева кодирования для сигнала цветности, в то время как разбиение дерева кодирования для сигнала яркости осуществляется, как определено посредством операции этапа 1440. Режим внутреннего прогнозирования для пары CB сигналов цветности определяется, даже если соответствующие CB сигналов яркости декодированы с использованием внешнего прогнозирования на этапе 14120. В одной компоновке, один режим прогнозирования, к примеру, внутреннее DC-прогнозирование, применяется к каждому CB сигналов цветности. Использование одного режима прогнозирования обеспечивает возможность определения режима на основе запрета разбиения сигнала цветности ("результат Да" на этапе 1440) и не влечет за собой дополнительное выполнение поиска, чтобы определять то, какой один режим из нескольких возможных режимов должен использоваться. Кроме того, поток 134 битов не требует дополнительной передачи служебных сигналов для этого случая, т.е. нет необходимости кодировать дополнительный синтаксический элемент intra_chroma_pred_mode. Тем не менее, компоновки позволяют достигать более высокой производительности сжатия посредством передачи в служебных сигналах одного режима внутреннего прогнозирования из нескольких возможных режимов внутреннего прогнозирования посредством включения синтаксического элемента intra_chroma_pred_mode в потоке 134 битов, когда разбиение сигнала цветности запрещено ("Да" на этапе 1440). Видеодекодер 134 должен определять то, какой режим внутреннего прогнозирования должен использоваться, с использованием энтропийного декодера 420, для того, чтобы декодировать синтаксический элемент intra_chroma_pred_mode из потока 134 битов. Управление в процессоре 205 продвигается от этапа 14140 к этапу 14150 декодирования CB сигналов цветности.
[000176] На этапе 14150 декодирования CB сигналов цветности, энтропийный декодер 420, при выполнении процессора 205, определяет режим внутреннего прогнозирования для CB сигналов цветности из потока 420 битов, в общем, согласно декодированному синтаксическому элементу intra_chroma_pred_mode. Декодирование intra_chroma_pred_mode выполняется, когда несколько режимов внутреннего прогнозирования доступны. Когда только один режим внутреннего прогнозирования доступен, например, внутреннее DC-прогнозирование, режим логически выводится без декодирования дополнительных синтаксических элементов из потока 133 битов. Доступные режимы внутреннего прогнозирования для внутреннего прогнозирования сигналов цветности могут включать в себя DC-, планарный, следующие режимы углового прогнозирования: горизонтальный, вертикальный, вверх и вправо по диагонали. Доступные режимы внутреннего прогнозирования также могут включать в себя "прямой режим" (DM_CHROMA), за счет чего режим внутреннего прогнозирования сигналов цветности получается из совместно размещенного CB сигналов яркости, в общем, самого нижнего и самого правого из CB сигналов яркости, получающихся в результате этапа 14100. Когда внутреннее прогнозирование "кросскомпонентной линейной модели" доступно, CB сигналов цветности может прогнозироваться из выборок из CB сигналов яркости. Для пары CB сигналов цветности, фаг cu_cbf передает в служебных сигналах присутствие, по меньшей мере, одного значимого остаточного коэффициента в любом одном из пары CB сигналов цветности. Если, по меньшей мере, один значимый остаточный коэффициент присутствует в любом одном пары CB сигналов цветности, то tu_cbf_cb и tu_cbf_cr передают в служебных сигналах присутствие, по меньшей мере, одного значимого коэффициента в CB сигналов цветности для Cb- и Cr-каналов, соответственно. Для CB сигналов цветности, имеющих, по меньшей мере, один значимый остаточный коэффициент, последовательность синтаксических элементов residual_coding декодируется, чтобы определять остаточные коэффициенты соответствующего CB сигналов цветности. Синтаксис остаточного кодирования кодирует остаточные коэффициенты в качестве последовательности значений, заполняющих блок преобразования от позиции последнего значимого коэффициента до позиции левого верхнего ("DC-") коэффициента согласно обратному диагональному сканированию. Обратное диагональное сканирование выполняет сканирование блока преобразования в качестве последовательности "субблоков" (или "групп коэффициентов"), в общем, размера 4×4, но размеры 2×2, 2×4, 2×8, 8×2, 4×2 также быть возможны. Сканирование в каждой группе коэффициентов выполняется в обратном диагональном направлении, и сканирование от одного субблока к следующему субблоку также выполняется в обратном диагональном направлении. После того как этап 14150 выполняется посредством процессора 205, способ 1400 завершается, и управление в процессоре 205 возвращается к родительской активации способа 1400.
[000177] Подход на основе дерева кодирования способов 1300 и 1400, за счет которое минимальная блочная зона в 16 выборок поддерживается для видеоданных формата сигнала цветности 4:2:0, упрощает реализацию с высокой пропускной способностью как в программном обеспечении, так и аппаратных средствах. Кроме того, ограничение внешнего прогнозирования CB сигналов яркости для небольших CB-размеров уменьшает пропускную способность запоминающего устройства этого наихудшего случая для пропускной способности запоминающего устройства для компенсации движения посредством исключение необходимости также осуществлять выборку выборок для формирования CB сигналов цветности с компенсацией движения. В частности, если минимальный размер CB сигналов цветности составляет 2×2, и дополнительные выборки требуются для того, чтобы предоставлять поддержку фильтра для подвыборочной интерполяции CB сигналов цветности, то существенное увеличение пропускной способности запоминающего устройства должно наблюдаться только по сравнению с выполнением внешнего прогнозирования в канале сигнала яркости для небольших размеров блоков. Усиление при кодировании компенсации движения появляется практически в канале сигнала яркости, так что опускание небольших блоков из компенсации движения позволяет достигать уменьшения пропускной способности запоминающего устройства при относительно небольшом влиянии на производительность кодирования. Кроме того, уменьшение пропускной способности запоминающего устройства способствует осуществимости выполнения компенсации движения для CB сигналов яркости 4×4 и достижения результирующего усиления при кодировании.
[000178] В одной компоновке видеокодера 114 и видеодекодера 134, более одного разбиения сигнала яркости может возникать в дереве кодирования с момента времени, в который разбиение сигнала цветности дерева кодирования завершается. Например, зона сигналов яркости 8×16 не разбивается в каналах сигнала цветности, приводя к паре CB сигналов цветности 4×8. В канале сигнала яркости, зона сигналов яркости 8×16 сначала разбивается с горизонтальным троичным разбиением, и затем один из результирующих CB сигналов яркости дополнительно разбивается. Например, результирующий CB сигналов яркости 8×4 вертикально двоично разбивается на два CB сигналов яркости 4×4. Компоновки более чем с одним разбиением сигнала яркости на дерево кодирования с момента времени, в который разбиение сигнала цветности дерева кодирования завершается, повторно активируют способы 1300 и 1400 в видеокодере 114 и видеодекодере 134, соответственно, в зоне запрета разбиения сигнала цветности, с такой модификацией, что при последующих активациях не требуются дополнительные CB сигналов цветности. При активации способов 1300 и 1400, в которых пара CB сигналов цветности создается, вся зона сигналов цветности покрывается созданными CB сигналов цветности, так что рекурсивные активации способов 1300 и 1400 не должны создавать дополнительные CB сигналов цветности.
[000179] Фиг. 15 показывает совокупность 1500 сегментаций на блоки преобразования внутренне прогнозированной единицы кодирования. CB сигналов яркости может сегментироваться на один TB сигналов яркости идентичного размера (ISP_NO_SPLIT). CB сигналов яркости размера 4×4 имеют зону в 16 выборок и дополнительно не сегментируются, приводя к одному TB сигналов яркости также размера 4×4. CB сигналов яркости, имеющие зону в 32 выборки, могут сегментироваться на два сегмента. Например, CB 1510 сигналов яркости 8×4 может сегментироваться либо горизонтально (ISP_HOR_SPLIT) на два TB 1520 сигналов яркости 8×2, либо вертикально (ISP_VER_SPLIT) на два TB 1530 сигналов яркости 4×4. Если CB 1510 сигналов яркости представляет собой CB сигналов яркости 4×8, блок может сегментироваться горизонтально на два TB сигналов яркости 4×4 на 1520 или вертикально на два TB сигналов яркости 2×8 на 1530.
[000180] CB сигналов яркости зоны в 64 выборки или больший сегментируются на один сегмент для четырех сегментов. CB 1550 сигналов яркости ширины W и высоты H, имеющий зону в 64 выборки и большее, может сегментироваться горизонтально на четыре TB 1560 сигналов яркости размера Wx(H/4) или может сегментироваться вертикально на четыре TB 1570 сигналов яркости (W/4)xH. Как показано в совокупности 1500, разделение CB сигналов яркости на несколько сегментов приводит к большему числу и меньшим TB сигналов яркости. Внутреннее прогнозирование выполняется для того, чтобы формировать PB для каждого TB сигналов яркости, и процесс внутреннего восстановления выполняется в CB сигналов яркости от одного сегмента к следующему сегменту.
[000181] Фиг. 16 показывает способ 1600 для кодирования единицы кодирования кадра с изображением в поток 115 видеобитов. Способ 1600 может осуществляться посредством такого оборудования, как сконфигурированная FPGA, ASIC или ASSP. Дополнительно, способ 1600 может осуществляться посредством видеокодера 114 при выполнении процессора 205. В связи с этим, способ 1600 может сохраняться на компьютерно-читаемом носителе хранения данных и/или в запоминающем устройстве 206. Способ 1600 приводит к кодированию блоков в поток 115 битов таким образом, что размер группы коэффициентов определяется только на основе размера блока преобразования и дополнительно не различается между каналами сигнала яркости и сигнала цветности. Поскольку энтропийное кодирование представляет собой критический контур обратной связи в видеокодере 114, сокращение доступа к запоминающему устройству или вычислений, требуемых для определения размеров групп коэффициентов, является преимущественным. Способ 1600, активированный для каждой единицы кодирования в дереве кодирования, т.е. активированный на этапе 1330 по фиг. 13, начинается на этапе 1610 кодирования pred_mode. Как описано выше, этап 1330 выполняется, когда этап 1320 определяет то, что текущее разбиение представляет собой отсутствие 510 разбиения.
[000182] На этапе 1610 кодирования pred_mode, энтропийный кодер 338, при выполнении процессора 205, кодирует режим прогнозирования CU в поток 115 битов. Управление в процессоре 205 продвигается от этапа 1610 к этапу 1620 тестирования внутреннего прогнозирования.
[000183] На этапе 1620 тестирования внутреннего прогнозирования, процессор 205 тестирует режим прогнозирования CU. Если режим прогнозирования представляет собой внутреннее прогнозирование ("Да" на этапе 1620) управление процессоре 205 продвигается от этапа 1620 к этапу 1650 кодирования в режиме внутренних субсегментов. Иначе, если режим прогнозирования не представляет собой внутреннее прогнозирование ("Нет" на этапе 1620), управление процессоре 205 продвигается от этапа 1620 к этапу 1630 кодирования флагов и индексов объединения.
[000184] На этапе 1630 кодирования флагов и индексов объединения, энтропийный кодер 338, при выполнении процессора 205, кодирует флаг объединения в поток 115 битов, передающий в служебных сигналах использование (или нет) "режима объединения" для внешнего прогнозирования. Режим объединения приводит к тому, что вектор движения CU получается из пространственно (или временно) соседнего блока из набора возможных вариантов пространственно (или временно) соседних блоков. Если режим объединения используется, один возможный вариант выбирается с соответствующим "индексом объединения". Индекс объединения кодируется в потоке 115 битов наряду с флагом объединения. Аналогичное кодирование выполняется, если "прогнозирование векторов движения" используется, за счет чего один из нескольких вероятных возможных вариантов векторов движения передается в служебных сигналах в качестве предиктора с использованием флага. Управление в процессоре 205 продвигается от этапа 1630 к этапу 1640 кодирования дельт векторов движения.
[000185] На этапе 1640 кодирования дельт векторов движения, энтропийный кодер 338, при выполнении процессора 205, кодирует дельту вектора движения в поток 115 битов. Этап 1640 выполняется, когда прогнозирование векторов движения используется для CU. Дельта вектора движения указывает дельту между предиктором вектора движения, кодированным на этапе 1630, и вектором движения, который должен использоваться для компенсации движения. Управление в процессоре 205 продвигается от этапа 1640 к этапу 1660 тестирования кодированных остатков. Если прогнозирование векторов движения не используется для CU, этап 1640 не реализуется, и способ 1600 переходит непосредственно к этапу 1660.
[000186] На этапе 1650 кодирования в режиме внутренних субсегментов, энтропийный кодер 338, при выполнении процессора 205, кодирует решение в отношении того, следует или нет использовать внутренние субсегменты в потоке 115 битов с контекстно-кодированным синтаксическим элементом intra_subpartitions_mode_flag. Внутренние субсегменты доступны для канала сигнала яркости, когда размер CB сигналов яркости превышает минимальный размер блока преобразования сигналов яркости, т.е. превышает 16 выборок сигнала яркости. Внутренние субсегменты разделяют единицу кодирования на несколько блоков преобразования сигналов яркости, как показано в совокупности 1500. Если CB сигналов яркости сегментируется на несколько TB, intra_subpartitions_split_flag передает в служебных сигналах то, разделение CB сигналов яркости на несколько TB сигналов яркости возникает горизонтально или вертикально. Совместно, intra_subpartitions_mode_flag и intra_subpartitions_split_flag кодируют три возможных сегмента, перечисляемые в качестве ISP_NO_SPLIT, ISP_HOR_SPLIT и ISP_VER_SPLIT. Управление в процессоре 205 продвигается от этапа 1650 к этапу 1660 тестирования кодированных остатков.
[000187] На этапе 1660 тестирования кодированных остатков, процессор 205 определяет то, является или нет, по меньшей мере, один остаточный коэффициент в каком-либо блоке преобразования блока кодирования значимым. Определение включает в себя все TB сигналов яркости, получающиеся в результате применения внутренних субсегментов, и пару TB сигналов цветности, ассоциированных с двумя каналами сигнала цветности. Если, по меньшей мере, один остаточный коэффициент в каких-либо из TB сигналов яркости и сигналов цветности является значимым, энтропийный кодер 338, при выполнении процессора 205, арифметически кодирует "единицу" для синтаксического элемента cu_cbf, этап 1660 возвращает "Да", и процессор 205 продвигается к этапу 1670 определения размеров групп коэффициентов сигналов яркости. Если значимые остаточные коэффициенты не присутствуют ни в одном TB CU, этап 1660 возвращает "Нет", "нуль" арифметически кодируется для cu_cbf, и способ 1600 завершается тем, что процессор 205 продвигается к следующей CU в CTU.
[000188] На этапе 1670 определения размеров групп коэффициентов сигналов яркости, процессор определяет размер группы коэффициентов для одного или более TB (блоков преобразования) сигналов яркости, ассоциированных с CU. Если внутренние субсегменты не используются, присутствует один TB сигналов яркости. Если внутренние субсегменты используются, присутствуют два или четыре TB сигналов яркости. Размер TB сигналов яркости зависит от того, внутренняя субсегментация выполняется горизонтально или вертикально, и числа TB сигналов яркости, и, соответственно, зависит от CU-размера сигналов яркости, как показано в совокупности 1500.
[000189] Размер группы коэффициентов определяется с использованием ширины и высоты TB сигналов яркости, как показано в нижеприведенной таблице 1. Таблица 1 показывает таблицу преобразования размеров блоков преобразования (TB) в группы коэффициентов для каналов сигнала яркости и сигнала цветности, имеющих группы коэффициентов идентичного размера для TB, независимо от того, предназначен TB для канала сигнала яркости или для канала сигнала цветности. Ширина и высота TB составляют степени двух, и в силу этого таблица 1 рассматривает log2 по ширине и высоте TB, т.е. log2TBwidth и log2TBheight формируют первые два индекса в трех размерностях таблицы 1. Конечная размерность таблицы отличает ширину и высоту групп коэффициентов. Размеры групп коэффициентов сохраняются в качестве log2 по ширине и log2 по высоте. Например, TB размера 16×16 приводит к индексации (4, 4) в таблице 1, что возвращает (2, 2), указывающий размер группы коэффициентов в 4×4. TB размера (2×32) приводит к индексации (1, 5) в таблице 1, что возвращает (1, 3), указывающий размер группы коэффициентов в 2×8. Минимальная зона TB сигналов яркости равна 16 выборки, и в силу этого случаи, в которых log2width+log2height меньше четырех в таблице 1, не оцениваются. Если внутренние субсегменты используются для CU, каждый TB сигналов яркости имеет идентичный размер, и в силу этого определение размеров групп коэффициентов для TB сигналов яркости выполняется однократно для CU.
[000190] Нижеприведенная таблица 2 показывает преобразование размера блока преобразования (TB) в размер группы коэффициентов для каналов сигнала яркости и сигнала цветности, имеющих различные размеры групп коэффициентов для TB идентичного размера в сигнале яркости по сравнению с сигналом цветности. Если таблица 2 должна использоваться, то требуется дополнительная размерность, т.е. различение сигнала яркости от сигнала цветности, и размер таблицы удваивается по сравнению с таблицей 1. Размеры групп коэффициентов, заданные в таблице 1, приводят к тому, что размеры составляют наибольший возможный размер, который соответствует ширине и высоте TB при том, что он превышает 16 выборок в зоне. Таблица 1 предоставляет набор размеров групп коэффициентов, из которого выбирается размер группы коэффициентов. Выбранное соотношение сторон группы коэффициентов ширины по сравнению с высотой сохраняется максимально возможно близким к 1:1 в пределах ограничений в виде ширины и высоты TB. Управление в процессоре 205 продвигается от этапа 1670 к этапу 1680 кодирования TB сигналов яркости.
[000191] На этапе 1680 кодирования TB сигналов яркости, энтропийный кодер 338, при выполнении процессора 205, кодирует остаточные коэффициенты одного или более TB сигналов яркости CU в поток 115 битов. Определенный размер группы коэффициентов этапа 1670 используется для каждого TB сигналов яркости. Для каждого TB сигналов яркости, флаг кодированного блока кодируется в поток 115 битов, указывающий присутствие, по меньшей мере, одного значимого коэффициента в TB сигналов яркости. Если, по меньшей мере, один значимый коэффициент присутствует в TB сигналов яркости, то последняя значимая позиция кодируется в поток битов. Последняя значимая позиция задается как последний значимый коэффициент вдоль тракта сканирования, продвигающегося от (левого верхнего) DC-коэффициента к правому нижнему коэффициенту TB. Тракт сканирования задается как диагональное сканирование в пределах разделения TB на массив неперекрывающихся субблоков, каждый из которых имеет размер в качестве размера группы коэффициентов и полностью занимает TB. Продвижение от одного субблока к следующему в порядке сканирования также придерживается диагонального сканирования. Для каждой группы коэффициентов, за исключением левой верхней группы коэффициентов и группы коэффициентов, содержащей последний значимый коэффициент, энтропийный кодер 338 кодирует "флаг кодированного субблока". Флаг кодированного субблока указывает присутствие, по меньшей мере, одного значимого остаточного коэффициента в субблоке. Если отсутствуют значимые остаточные коэффициенты в субблоке, диагональное сканирование остаточных коэффициентов в TB пропускает этот субблок. Если имеется, по меньшей мере, один значимый остаточный коэффициент в субблоке затем, все местоположения в этом субблоке сканируются, и абсолютная величина каждого остаточного коэффициента кодируется, и знак каждого значимого остаточного коэффициента кодируется. Управление в процессоре 205 продвигается от этапа 1680 к этапу 1690 определения размеров групп коэффициентов сигналов цветности.
[000192] На этапе 1690 определения размеров групп коэффициентов сигналов цветности, процессор 205 определяет размер группы коэффициентов для пары блоков преобразования сигналов цветности, ассоциированных с CU. Один CB сигналов цветности для каждого канала сигнала цветности ассоциирован с CU, независимо от того, разделяется CB сигналов яркости на несколько TB сигналов яркости или нет. Размер группы коэффициентов определяется с использованием ширины и высоты TB сигналов цветности, как показано в таблице 1. Ширина и высота TB составляют степени двух, и в силу этого таблица 1 рассматривает log2 по ширине и высоте TB, т.е. log2TBwidth и log2TBheight формируют первые два индекса в трех размерностях таблицы 1. Конечная размерность таблицы отличает ширину и высоту групп коэффициентов. Размеры групп коэффициентов сохраняются в качестве log2 по ширине и log2 по высоте. Например, TB размера 16×16 приводит к индексации (4, 4) в таблице 1, что возвращает (2, 2), указывающий размер группы коэффициентов в 4×4. TB размера (2×32) приводит к индексации (1, 5) в таблице 1, что возвращает (1, 3), указывающий размер группы коэффициентов в 2×8. Каждый TB сигналов цветности имеет идентичный размер, и в силу этого определение размеров групп коэффициентов для пары TB сигналов цветности выполняется однократно для CU. Если таблица 2 должна использоваться, то требуется дополнительная размерность, т.е. различение сигнала яркости от сигнала цветности, и размер таблицы удваивается по сравнению с размером таблицы 1.
[000193] Как описано относительно этапов 1670 и 1690, размер группы коэффициентов определяется только на основе размера блока преобразования и дополнительно не различается между каналами сигнала яркости и сигнала цветности. Размер группы коэффициентов, соответственно, определяется независимо от того, представляет формат сигнала цветности собой 4:2:2 или 4:2:0. Как описано относительно таблицы 1, размер группы коэффициентов основан на наибольшей зоне группы коэффициентов, составляющей вплоть до 16 выборок. Этап 1690 работает с возможностью определять размер группы коэффициентов для TB независимо от цветовой плоскости (Y- или Cb-, или Cr-) блока преобразования либо субдискретизации в цветовой плоскости (применимой к Cb- и Cr-каналам) вследствие формата сигнала цветности. Таблица 1 используется как на этапе 1670, так и на этапе 1690. Соответственно, одна таблица используется для блоков преобразования, принадлежащих плоскости сигналов яркости и каждой из цветовых плоскостей сигнала цветности. Управление в процессоре 205 продвигается от этапа 1690 к этапу 16100 кодирования TB сигналов цветности.
[000194] На этапе 16100 кодирования TB сигналов цветности, энтропийный кодер 338, при выполнении процессора 205, кодирует остаточные коэффициенты пары TB сигналов цветности CU в поток 115 битов. Определенный размер группы коэффициентов этапа 1690 используется для пары TB сигналов цветности. Для каждого TB сигналов цветности, флаг кодированного блока кодируется в поток 115 битов, указывающий присутствие, по меньшей мере, одного значимого коэффициента в TB сигналов цветности. Оставшийся этап кодирования для каждого TB сигналов цветности согласуется с процессом кодирования для TB сигналов яркости, как описано со ссылкой на этап 1680. Способ 1600 завершается при выполнении этапа 16100, и управление в процессоре 205 продвигается к следующей CU CTU.
[000195] Фиг. 17 показывает способ 1700 декодирования единицы кодирования кадра с изображением из потока 133 видеобитов. Способ 1700 может осуществляться посредством такого оборудования, как сконфигурированная FPGA, ASIC или ASSP. Дополнительно, способ 1700 может осуществляться посредством видеодекодера 134 при выполнении процессора 205. В связи с этим, способ 1700 может сохраняться на компьютерно-читаемом носителе хранения данных и/или в запоминающем устройстве 206. Способ 1700 приводит к декодированию блоков из потока 133 битов таким образом, что размер группы коэффициентов определяется только на основе размера блока преобразования и дополнительно не различается между каналами сигнала яркости и сигнала цветности. Поскольку энтропийное декодирование представляет собой критический контур обратной связи в видеокодере 134, сокращение доступа к запоминающему устройству или вычислений, требуемых для определения размеров групп коэффициентов, является преимущественным. Способ 1700, активированный для каждой единицы кодирования в дереве кодирования, т.е. активированный на этапе 1430 по фиг. 14. Как описано выше, этап 1430 выполняется, если текущее разбиение представляет собой отсутствие 510 разбиения. Способ 1700 начинается на этапе 1710 декодирования pred_mode.
[000196] На этапе 1710 декодирования pred_mode, энтропийный декодер 420, при выполнении процессора 205, декодирует режим прогнозирования CU из потока 133 битов. Управление в процессоре 205 продвигается от этапа 1710 к этапу 1720 тестирования внутреннего прогнозирования.
[000197] На этапе 1720 тестирования внутреннего прогнозирования, процессор 205 тестирует режим прогнозирования CU, декодированной на этапе 1710. Если режим прогнозирования представляет собой внутреннее прогнозирование, этап 1720 возвращает "Да" и управление процессоре 205 продвигается от этапа 1720 к этапу 1750 декодирования в режиме внутренних субсегментов. В противном случае, если не представляет собой внутреннее прогнозирование, этап 1720 возвращает "Нет", и управление процессоре 205 продвигается от этапа 1720 к этапу 1730 декодирования флагов и индексов объединения.
[000198] На этапе 1730 декодирования флагов и индексов объединения, энтропийный декодер 420, при выполнении процессора 205, декодирует флаг объединения из потока 133 битов, передающего в служебных сигналах то, используется или нет "режим объединения" в потоке битов для внешнего прогнозирования. Режим объединения приводит к тому, что вектор движения CU получается из пространственно (или временно) соседнего блока из набора возможных вариантов пространственно или временно соседних блоков. Если режим объединения используется, один возможный вариант выбирается с "индексом объединения", также декодированным из потока 133 битов. Аналогичное декодирование выполняется, если "прогнозирование векторов движения" используется, за счет чего один из нескольких вероятных возможных вариантов векторов движения передается в служебных сигналах в качестве предиктора посредством флага в потоке битов. Управление в процессоре 205 продвигается от этапа 1730 к этапу 1740 декодирования дельт векторов движения.
[000199] На этапе 1740 декодирования дельт векторов движения, энтропийный декодер 420, при выполнении процессора 205, декодирует дельту вектора движения из потока 133 битов. Этап 1740 выполняется, когда прогнозирование векторов движения используется для CU. Дельта вектора движения указывает дельту между предиктором вектора движения, кодированным на этапе 1730, и вектором движения, который должен использоваться для компенсации движения. Управление в процессоре 205 продвигается от этапа 1740 к этапу 1760 тестирования кодированных остатков. Если прогнозирование векторов движения не используется для CU, этап 1740 не реализуется, и управление в процессоре 205 продвигается непосредственно к этапу 1760.
[000200] На этапе 1750 декодирования в режиме внутренних субсегментов, энтропийный декодер 420, при выполнении процессора 205, декодирует решение в отношении того, следует или нет использовать внутренние субсегменты из потока 133 битов с использованием контекстно-кодированного синтаксического элемента intra_subpartitions_mode_flag. Внутренние субсегменты доступны для канала сигнала яркости, когда размер CB сигналов яркости превышает минимальный размер блока преобразования сигналов яркости, т.е. превышает 16 выборок сигнала яркости. Внутренние субсегменты разделяют единицу кодирования на несколько блоков преобразования сигналов яркости, как показано в совокупности 1500. Если CB сигналов яркости сегментируется на несколько TB, intra_subpartitions_split_flag передает в служебных сигналах то, разделение CB сигналов яркости на несколько TB сигналов яркости возникает горизонтально или вертикально. Совместно, intra_subpartitions_mode_flag и intra_subpartitions_split_flag кодируют три возможных сегмента, перечисляемые в качестве ISP_NO_SPLIT, ISP_HOR_SPLIT и ISP_VER_SPLIT. Управление в процессоре 205 продвигается от этапа 1750 к этапу 1760 тестирования кодированных остатков.
[000201] На этапе 1760 тестирования кодированных остатков, процессор 205 определяет то, является или нет, по меньшей мере, один остаточный коэффициент в каком-либо блоке преобразования блока кодирования значимым. Определение включает в себя все TB сигналов яркости, получающиеся в результате применения внутренних субсегментов, и пару TB сигналов цветности, ассоциированных с двумя каналами сигнала цветности. Энтропийный кодер 420, при выполнении процессора 205, арифметически декодирует синтаксический элемент cu_cbf, и процессор 205 определяет то, является или нет, по меньшей мере, один остаточный коэффициент в каких-либо из TB CU значимым. Если, по меньшей мере, один остаточный коэффициент в каких-либо из TB сигналов яркости и сигналов цветности является значимым, этап 1760 возвращает "Да", и управление в процессоре 205 продвигается к этапу 1770 определения размеров групп коэффициентов сигналов яркости. Если значимые остаточные коэффициенты не присутствуют ни в одном TB CU, как указано посредством "нуля", арифметически декодируемого для cu_cbf, этап 1760 возвращает "Нет", и способ 1700 завершается тем, что процессор 205 продвигается к следующей CU в CTU.
[000202] На этапе 1770 определения размеров групп коэффициентов сигналов яркости, процессор 205 определяет размер группы коэффициентов для одного или более блоков преобразования сигналов яркости, ассоциированных с CU. Определение этапа 1770 работает идентично определению этапа 1670. Управление в процессоре 205 продвигается от этапа 1770 к этапу 1780 декодирования TB сигналов яркости.
[000203] На этапе 1780 декодирования TB сигналов яркости, энтропийный декодер 420, при выполнении процессора 205, декодирует остаточные коэффициенты одного или более TB сигналов яркости CU из потока 133 битов. Определенный размер группы коэффициентов этапа 1770 используется для каждого TB сигналов яркости. Для каждого TB сигналов яркости, флаг кодированного блока декодируется из потока 133 битов, указывающего присутствие, по меньшей мере, одного значимого коэффициента в TB сигналов яркости. Если, по меньшей мере, один значимый коэффициент присутствует в TB сигналов яркости, то последняя значимая позиция декодируется из потока битов. Последняя значимая позиция задается как последний значимый коэффициент вдоль тракта сканирования, продвигающегося от (левого верхнего) DC-коэффициента к правому нижнему коэффициенту TB. Тракт сканирования задается как диагональное сканирование в пределах разделения TB на массив неперекрывающихся субблоков, каждый из которых имеет размер в качестве размера группы коэффициентов и полностью занимает TB. Продвижение от одного субблока к следующему в порядке сканирования также придерживается диагонального сканирования. Для каждой группы коэффициентов, за исключением левой верхней группы коэффициентов и группы коэффициентов, содержащей последний значимый коэффициент, энтропийный кодер 338 кодирует "флаг кодированного субблока". Флаг кодированного субблока указывает присутствие, по меньшей мере, одного значимого остаточного коэффициента в субблоке. Если отсутствуют значимые остаточные коэффициенты в субблоке, диагональное сканирование остаточных коэффициентов в TB пропускает этот субблок. Если имеется, по меньшей мере, один значимый остаточный коэффициент в субблоке затем, все местоположения в этом субблоке сканируются, и абсолютная величина каждого остаточного коэффициента кодируется, и знак каждого значимого остаточного коэффициента кодируется. Управление в процессоре 205 продвигается от этапа 1780 к этапу 1790 определения размеров групп коэффициентов сигналов цветности.
[000204] На этапе 1790 определения размеров групп коэффициентов сигналов цветности, процессор 205 определяет размер группы коэффициентов для пары блоков преобразования сигналов цветности, ассоциированных с CU. Определение, выполняемое на этапе 1790, работает идентично определению, выполняемому на этапе 1690.
[000205] Аналогично этапу 1690, размер группы коэффициентов определяется на этапе 1790 на основе размера блока преобразования и дополнительно не различается между каналами сигнала яркости и сигнала цветности. Размер группы коэффициентов, соответственно, определяется независимо от того, представляет формат сигнала цветности собой 4:2:2 или 4:2:0, либо соответствующей субдискретизации в каждой цветовой плоскости. Как описано относительно таблицы 1, размер группы коэффициентов основан на наибольшей зоне TB, составляющей вплоть до 16 выборок. Этап 1690 работает с возможностью определять размер группы коэффициентов для TB независимо от цветовой плоскости (Cb- или Cr-) блока преобразования. Управление в процессоре 205 продвигается от этапа 1790 к этапу 17100 декодирования TB сигналов цветности.
[000206] На этапе 17100 декодирования TB сигналов цветности, энтропийный декодер 420, при выполнении процессора 205, декодирует остаточные коэффициенты пары TB сигналов цветности CU из потока 133 битов. Определенный размер группы коэффициентов этапа 1790 используется для пары TB сигналов цветности. Для каждого TB сигналов цветности, флаг кодированного блока декодируется из потока 133 битов, указывающего присутствие, по меньшей мере, одного значимого коэффициента в TB сигналов цветности. Оставшийся процесс декодирования для каждого TB сигналов цветности работает идентично TB сигналов яркости, как описано со ссылкой на этап 1780. Способ 1700 завершается при выполнении этапа 17100, и управление в процессоре 205 продвигается к следующей CU CTU.
[000207] Таблица 3 показывает результаты производительности кодирования, полученные согласно конфигурации на основе стандартов JVET "Общие тестовые условия (CTC) - Полностью внутренний главный профиль 10" при использовании таблицы 1. Результаты таблицы 3 получены с помощью программного обеспечения "тестовой VVC-модели (VTM)", реализующего способы 1600 и 1700, по сравнению с базовым VTM-4.0, которое не реализует способы 1600 и 1700. В целом, отсутствует влияние на кодирование в силу изменения, и даже некоторое небольшое усиление замечается в каналах сигнала цветности, что демонстрирует то, упрощение таблицы преобразования размеров блоков преобразования в размеры групп коэффициентов не затрагивает негативно производительность кодирования.
[000208] Видеокодер 115 и видеодекодер 134, с использованием способов 1600 и 1700, соответственно, достигают уменьшения объема запоминающего устройства в процессе остаточного кодирования/декодирования посредством согласования размера группы коэффициентов TB сигналов яркости и TB сигналов цветности. Как следствие, TB сигналов цветности имеют доступ к таким размерам групп коэффициентов, как 2×8, 8×2, 2×4, 4×2 вместо только 2×2 и 4×4. Для TB сигналов яркости, размеры в 16×1 и 1×16 являются возможными, когда используются внутренние субсегменты. Хотя размеры в 16×1 и 1×16 доступны для сигнала цветности в силу своего присутствия в таблице 1, минимальная ширина и высота блоков сигналов цветности составляет две выборки, и за счет этого размеры в 16×1 и 1×16 не используются в TB сигналов цветности. Поскольку остаточное кодирование и декодирование представляет собой часть контура обратной связи в проектировании, уменьшение объема запоминающего устройства соответствует повышению, например, производительности кэша в программных реализациях или сокращению критического пути в аппаратных реализациях.
uint32_t g_log2SbbSize[mAX_CU_DEPTH+1][mAX_CU_DEPTH+1][2] =
//=====сигнал яркости/сигнал цветности=====
{
{ { 0,0 },{ 0,1 },{ 0,2 },{ 0,3 },{ 0,4 },{ 0,4 },{ 0,4 },{ 0,4 } },
{ { 1,0 },{ 1,1 },{ 1,2 },{ 1,3 },{ 1,3 },{ 1,3 },{ 1,3 },{ 1,3 } },
{ { 2,0 },{ 2,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } },
{ { 3,0 },{ 3,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } },
{ { 4,0 },{ 3,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } },
{ { 4,0 },{ 3,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } },
{ { 4,0 },{ 3,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } },
{ { 4,0 },{ 3,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } }
};
Таблица 1. Таблица преобразования размеров блоков преобразования в группы коэффициентов для каналов сигнала яркости и сигнала цветности (имеющих группы коэффициентов идентичного размера для TB, независимо от того, предназначен TB для канала сигнала яркости или для канала сигнала цветности)
uint32_t g_log2SbbSize[2][MAX_CU_DEPTH+1][MAX_CU_DEPTH+1][2] =
{
// ===== сигнал яркости =====
{
{ {0,0}, {0,1}, {0,2}, {0,3}, {0,4}, {0,4}, {0,4}, {0,4} },
{ {1,0}, {1,1}, {1,2}, {1,3}, {1,3}, {1,3}, {1,3}, {1,3} },
{ {2,0}, {2,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} },
{ {3,0}, {3,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} },
{ {4,0}, {3,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} },
{ {4,0}, {3,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} },
{ {4,0}, {3,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} },
{ {4,0}, {3,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} }
},
// ===== сигнал цветности =====
{
{ {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0}, {0,0} },
{ {0,0}, {1,1}, {1,1}, {1,1}, {1,1}, {1,1}, {1,1}, {1,1} },
{ {0,0}, {1,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} },
{ {0,0}, {1,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} },
{ {0,0}, {1,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} },
{ {0,0}, {1,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} },
{ {0,0}, {1,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} },
{ {0,0}, {1,1}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2}, {2,2} }
},
};
Таблица 2. Традиционное преобразование размера блока преобразования в размер группы коэффициентов для каналов сигнала яркости и сигнала цветности (имеющих различные размеры групп коэффициентов для TB идентичного размера в сигнале яркости по сравнению с сигналом цветности)
Таблица 3. Производительность кодирования, получающаяся в результате наличия групп коэффициентов идентичного размера для TB независимо от того, предназначен TB для канала сигнала яркости или для канала сигнала цветности.
Промышленная применимость
[000209] Описанные компоновки являются применимыми к компьютерным отраслям и отраслям обработки данных и, в частности, для обработки цифровых сигналов для кодирования декодирования сигналов, к примеру, видеосигналов и сигналов изображений, достигая высокой эффективности сжатия.
[000210] В отличие от HEVC, VVC-системы обеспечивают возможность использования отдельных деревьев кодирования для каналов сигнала яркости и сигнала цветности для повышенной гибкости. Тем не менее, как пояснено выше, результирующая проблема может возникать вследствие использования меньших блоков сигналов цветности, затрагивающих пропускную способность. Компоновки, описанные в данном документе, определяют соответствующие правила по мере того, как каждая единица дерева кодирования обрабатывается, чтобы помогать в исключении проблем по пропускной способности. Дополнительно, как описано выше, описанные компоновки могут помогать в предоставлении повышенной эффективности и точности арифметического кодирования контекстно-кодированных элементов разрешения, используемых для того, чтобы описывать каждое из деревьев кодирования, с учетом правил для исключения проблем по пропускной способности.
[000211] Выше описаны только некоторые варианты осуществления настоящего изобретения, и модификации и/или изменения могут вноситься в них без отступления от объема и сущности изобретения, при этом варианты осуществления являются иллюстративными, а не ограничивающими.
Изобретение относится к обработке цифровых видеосигналов. Технический результат заключается в обеспечении высокой скорости обработки блоков для типичных вариантов приложений кодирования и декодирования в реальном времени. Такой результат достигается за счет того, что осуществляют определение формата сигнала цветности кадра с изображением, причем формат сигнала цветности имеет каналы сигнала цветности кадра с изображением, субдискретизируемые относительно канала сигнала яркости кадра с изображением; определение размера группы коэффициентов блока преобразования, причем размер группы коэффициентов составляет наибольшую зону блока преобразования вплоть до 16 выборок, причем размер группы коэффициентов определяется только на основе размера блока преобразования и независимо от (i) цветовой плоскости блока преобразования и (ii) субдискретизации в цветовой плоскости вследствие определенного формата сигнала цветности; и декодирование блока преобразования с использованием групп коэффициентов определенного размера из потока видеобитов. 6 н. и 6 з.п. ф-лы, 21 ил., 3 табл.
1. Способ декодирования, из потока битов, блока преобразования, который представляет собой блок преобразования сигналов яркости или блок преобразования сигналов цветности кадра с изображением, при этом способ содержит этапы, на которых:
- определяют формат сигнала цветности кадра с изображением из множества форматов сигнала цветности, включающих в себя формат сигнала цветности 4:2:0 и формат сигнала цветности 4:2:2, причем каждый из формата сигнала цветности 4:2:0 и формата сигнала цветности 4:2:2 имеет каналы сигнала цветности кадра с изображением, субдискретизированные относительно канала сигнала яркости кадра с изображением;
- определяют субблок блока преобразования таким образом, что размер субблока соответствует 16 выборкам, при этом субблок представляет собой единицу для сканирования коэффициентов в блоке преобразования; и
- декодируют блок преобразования, из потока битов, с использованием субблока,
при этом блок преобразования декодируется на основе (i) размера блока преобразования, (ii) того, представляет блок преобразования собой блок преобразования сигналов яркости или блок преобразования сигналов цветности, и (iii) формата сигнала цветности кадра с изображением, и субблок блока преобразования определяется непосредственно из (i) размера блока преобразования и независимо как от того, (ii) представляет блок преобразования собой блок преобразования сигналов яркости или блок преобразования сигналов цветности, так и от (iii) формата сигнала цветности кадра с изображением.
2. Способ по п. 1, в котором одна таблица используется для блоков преобразования, принадлежащих цветовым каналам сигнала яркости и сигнала цветности кадров с изображениями потока битов.
3. Способ по п. 1, в котором субблок выбирается с возможностью иметь соотношение сторон, ближайшее к 1:1 в пределах ограничения ширины и высоты блока преобразования.
4. Способ по п. 1, в котором блок преобразования представляет собой блок преобразования сигналов цветности.
5. Оборудование для декодирования, из потока битов, блока преобразования, который представляет собой блок преобразования сигналов яркости или блок преобразования сигналов цветности кадра с изображением, причем оборудование содержит:
- первый модуль определения, выполненный с возможностью определять формат сигнала цветности кадра с изображением из множества форматов сигнала цветности, включающих в себя формат сигнала цветности 4:2:0 и формат сигнала цветности 4:2:2, причем каждый из формата сигнала цветности 4:2:0 и формата сигнала цветности 4:2:2 имеет каналы сигнала цветности кадра с изображением, субдискретизированные относительно канала сигнала яркости кадра с изображением;
- второй модуль определения, выполненный с возможностью определять субблок блока преобразования таким образом, что размер субблока соответствует 16 выборкам, при этом субблок представляет собой единицу для сканирования коэффициентов в блоке преобразования; и
- модуль декодирования, выполненный с возможностью декодировать блок преобразования, из потока битов, с использованием субблока,
при этом блок преобразования декодируется на основе (i) размера блока преобразования, (ii) того, представляет блок преобразования собой блок преобразования сигналов яркости или блок преобразования сигналов цветности, и (iii) формата сигнала цветности кадра с изображением, и субблок блока преобразования определяется непосредственно из (i) размера блока преобразования и независимо как от того, (ii) представляет блок преобразования собой блок преобразования сигналов яркости или блок преобразования сигналов цветности, так и от (iii) формата сигнала цветности кадра с изображением.
6. Энергонезависимый компьютерно-читаемый носитель хранения данных, сохраняющий компьютерную программу, которая, при выполнении на компьютере, инструктирует компьютеру осуществлять способ по п. 1.
7. Способ кодирования, в поток битов, блока преобразования, который представляет собой блок преобразования сигналов яркости или блок преобразования сигналов цветности кадра с изображением, при этом способ содержит этапы, на которых:
- определяют формат сигнала цветности кадра с изображением из множества форматов сигнала цветности, включающих в себя формат сигнала цветности 4:2:0 и формат сигнала цветности 4:2:2, причем каждый из формата сигнала цветности 4:2:0 и формата сигнала цветности 4:2:2 имеет каналы сигнала цветности кадра с изображением, субдискретизированные относительно канала сигнала яркости кадра с изображением;
- определяют субблок блока преобразования таким образом, что размер субблока соответствует 16 выборкам, при этом субблок представляет собой единицу для сканирования коэффициентов в блоке преобразования; и
- кодируют блок преобразования в поток битов с использованием субблока,
при этом блок преобразования кодируется на основе (i) размера блока преобразования, (ii) того, представляет блок преобразования собой блок преобразования сигналов яркости или блок преобразования сигналов цветности, и (iii) формата сигнала цветности кадра с изображением, и субблок блока преобразования определяется непосредственно из (i) размера блока преобразования и независимо как от того, (ii) представляет блок преобразования собой блок преобразования сигналов яркости или блок преобразования сигналов цветности, так и от (iii) формата сигнала цветности кадра с изображением.
8. Способ по п. 7, в котором одна таблица используется для блоков преобразования, принадлежащих цветовым каналам сигнала яркости и сигнала цветности кадров с изображениями потока битов.
9. Способ по п. 7, в котором субблок выбирается с возможностью иметь соотношение сторон, ближайшее к 1:1 в пределах ограничения ширины и высоты блока преобразования.
10. Способ по п. 7, в котором блок преобразования представляет собой блок преобразования сигналов цветности.
11. Оборудование для кодирования, в поток битов, блока преобразования, который представляет собой блок преобразования сигналов яркости или блок преобразования сигналов цветности кадра с изображением, причем оборудование содержит:
- первый модуль определения, выполненный с возможностью определять формат сигнала цветности кадра с изображением из множества форматов сигнала цветности, включающих в себя формат сигнала цветности 4:2:0 и формат сигнала цветности 4:2:2, причем каждый из формата сигнала цветности 4:2:0 и формата сигнала цветности 4:2:2 имеет каналы сигнала цветности кадра с изображением, субдискретизированные относительно канала сигнала яркости кадра с изображением;
- второй модуль определения, выполненный с возможностью определять субблок блока преобразования таким образом, что размер субблока соответствует 16 выборкам, при этом субблок представляет собой единицу для сканирования коэффициентов в блоке преобразования; и
- модуль кодирования, выполненный с возможностью кодировать блок преобразования в поток битов с использованием субблока,
при этом блок преобразования кодируется на основе (i) размера блока преобразования, (ii) того, представляет блок преобразования собой блок преобразования сигналов яркости или блок преобразования сигналов цветности, и (iii) формата сигнала цветности кадра с изображением, и субблок блока преобразования определяется непосредственно из (i) размера блока преобразования и независимо как от того, (ii) представляет блок преобразования собой блок преобразования сигналов яркости или блок преобразования сигналов цветности, так и от (iii) формата сигнала цветности кадра с изображением.
12. Энергонезависимый компьютерно-читаемый носитель хранения данных, сохраняющий компьютерную программу, которая, при выполнении на компьютере, инструктирует компьютеру осуществлять способ по п. 7.
US 20150092862 A1, 02.04.2015 | |||
WO 2016205999 A1, 29.12.2016 | |||
US 20170272748 A1, 21.09.2017 | |||
CN 104604225 B, 26.01.2018 | |||
СПОСОБ ВИДЕОКОДИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ БЛОЧНОГО РАЗБИЕНИЯ ПО БИНАРНОМУ ДЕРЕВУ | 2015 |
|
RU2665311C1 |
Авторы
Даты
2022-03-16—Публикация
2020-01-20—Подача