РАЗДЕЛЕНИЕ ГРАНИЧНЫХ БЛОКОВ ПРИ КОДИРОВАНИИ ВИДЕО
BOUNDARY BLOCK SEPARATION IN VIDEO ENCODING

Область техники, к которой относится изобретение
Варианты осуществления настоящего изобретения в целом относятся к области кодирования видео и, в частности, к разделению и разбиению блока кодирования.
Уровень техники
Объем видеоданных, необходимых для визуализации даже относительно короткого видео, может быть значительным, что может вызвать значительную нагрузку на среду передачи информации, когда данные должны передаваться в режиме потоковой передачи или иным образом передаваться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные перед передачей обычно сжимаются по современным сетям связи. Размер видео также должен учитываться при передаче информации, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное обеспечение и/или аппаратное обеспечение на источнике для кодирования видеоданных перед передачей или хранением, тем самым, уменьшая количество данных, необходимых для представления цифровых видеоизображений. Затем сжатые данные принимаются на стороне назначения устройством распаковки видео, которое декодирует видеоданные. С ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео требуется использовать улучшенные способы сжатия и распаковки, которые улучшают степень сжатия с минимальными потерями в качестве изображения или без них.
Раскрытие сущности изобретения
Варианты осуществления настоящего изобретения обеспечивают устройства и способы для кодирования и декодирования.
Первый аспект относится к способу разделения, содержащему определение, является ли текущий блок изображения граничным блоком и превышает ли размер текущего блока минимально допустимый размер листового узла дерева квадрантов; и, если текущий блок является граничным блоком и размер текущего блока не превышает минимально допустимый размер (MinQTSize) листового узла дерева квадрантов, применение принудительного разделения двоичного дерева (BT) к текущему блоку.
В первой форме реализации способа согласно первому аспекту как таковому принудительное разделение двоичного дерева является рекурсивным горизонтальным принудительным двоичным разделением в случае, если текущий блок расположен на нижней границе изображения или рекурсивным вертикальным принудительным граничным разделением в случае, если текущий блок расположен на правой границе изображения.
Во второй форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта принудительное разделение двоичного дерева продолжается, пока блок листового узла не окажется в пределах изображения.
В третьей форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, принудительное двоичное разделение содержит рекурсивное разделение текущего блока с помощью горизонтального принудительного граничного разделения до тех пор, пока не будет подразделение текущего блока находится у нижней границы изображения; и рекурсивное разделение подразделения с помощью вертикального принудительного граничного разделения до тех пор, пока листовой узел не будет полностью расположен на правой границе изображения.
В четвертой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью вертикального принудительного граничного разделения, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения с помощью горизонтального принудительного граничного разделения, пока листовой узел не окажется полностью на правой границе.
В пятой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, способ дополнительно содержит применение минимально допустимого размера листового узла дерева квадрантов для управления разделением неграничного блока.
В шестой форме реализации способа согласно первому аспекту как таковому или любой предшествующей форме реализации первого аспекта, граничный блок представляет собой блок, который не полностью находится внутри изображения и не полностью вне изображения.
Второй аспект относится к способу декодирования для декодирования блока путем разделения блока в соответствии с первым аспектом как таковым или любой предшествующей формой реализации первого аспекта.
В первой форме реализации способа согласно второму аспекту как таковому способ дополнительно содержит прием минимально допустимого размера листового узла дерева квадрантов через набор параметров последовательности (SPS).
Третий аспект относится к способу кодирования для кодирования блока путем разделения блока в соответствии с первым аспектом как таковым или любой предшествующей формой реализации первого аспекта.
В первой форме реализации способа согласно третьему аспекту как таковому способ дополнительно содержит передачу минимально допустимого размера листового узла дерева квадрантов через набор параметров последовательности (SPS).
Четвертый аспект относится к устройству декодирования, содержащему логическую схему, выполненную с возможностью декодировать блок путем разделения блока в соответствии со способом разделения первого аспекта как таковым или любой предшествующей формой реализации первого аспекта.
В первой форме реализации устройства для декодирования согласно четвертому аспекту как таковому логическая схема дополнительно выполнена с возможностью принимать минимально допустимый размер листового узла дерева квадрантов через набор параметров последовательности (SPS).
Пятый аспект относится к устройству кодирования, содержащему логическую схему, выполненную с возможностью кодирования блока путем разделения блока согласно способу разделения первого аспекта как такового или любой предшествующей форме реализации первого аспекта.
В первой форме реализации устройства декодирования в соответствии с пятым аспектом как такового, логическая схема дополнительно выполнена с возможностью передавать минимально допустимый размер листового узла дерева квадрантов через набор параметров последовательности (SPS).
Шестой аспект относится к энергонезависимому носителю данных для хранения инструкций, которые при выполнении процессором вызывают выполнение процессором любого из первого, второго или третьего аспекта как такового или любой предшествующей формы реализации первого, второго или третьего аспекта.
Седьмой аспект относится к способу, содержащему определение, что текущий блок изображения является граничным блоком и что размер текущего блока меньше или равен минимально допустимому размеру (MinQTSize) листового узла дерева квадрантов (QT); и применение, в ответ на определение, принудительного разделения двоичного дерева (BT) к текущему блоку.
В первой форме реализации способа согласно седьмому аспекту как таковому текущий блок расположен на нижней границе изображения и в котором принудительное разделение BT является рекурсивным горизонтальным принудительным разделением BT.
Во второй форме реализации способа согласно седьмому аспекту как таковому или любой предшествующей форме реализации седьмого аспекта текущий блок расположен на правой границе изображения, и в котором принудительное разделение BT является рекурсивным вертикальным принудительным разделением BT.
В третьей форме реализации способа согласно седьмому аспекту как таковому или любой предшествующей форме реализации седьмого аспекта, принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью горизонтального принудительного граничного разделения до тех пор, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения посредством вертикального принудительного граничного разделения до тех пор, пока листовой узел не будет полностью расположен на правой границе.
В четвертой форме реализации способа согласно седьмому аспекту как таковому или любой предшествующей форме реализации седьмого аспекта, принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью вертикального принудительного граничного разделения до тех пор, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения с помощью горизонтального принудительного граничного разделения до тех пор, пока листовой узел не окажется полностью на правой границе.
В пятой форме реализации способа согласно седьмому аспекту как таковой или любой предшествующей форме реализации седьмого аспекта способ дополнительно содержит применение MinQTSize для управления разделением неграничного блока.
В шестой форме реализации способа согласно седьмому аспекту как таковой или любой предшествующей форме реализации седьмого аспекта способ дополнительно содержит прием MinQTSize через набор параметров последовательности (SPS).
В седьмой форме реализации способа согласно седьмому аспекту как таковой или любой предшествующей форме реализации седьмого аспекта способ дополнительно содержит передачу MinQTSize через набор параметров последовательности (SPS).
Восьмой аспект относится к устройству, содержащему память; и процессор, соединенный с памятью и выполненный с возможностью определять, является ли текущий блок изображения граничным блоком, определять, когда текущий блок является граничным блоком, превышает ли размер текущего блока минимально допустимый размер (MinQTSize) листового узла дерева квадрантов (QT), и применять, когда размер текущего блока не превышает MinQTSize, принудительное разделение двоичного дерева (BT) на текущий блок.
В первой форме реализации устройства в соответствии с восьмым аспектом как таковое принудительное разделение BT является рекурсивным горизонтальным принудительным разделением BT, когда текущий блок расположен на нижней границе изображения, или рекурсивным принудительным вертикальным разделением BT, когда текущий блок расположен на правой границе изображения.
Во второй форме реализации устройства согласно восьмому аспекту как таковому или любой предшествующей форме реализации восьмого аспекта, принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью горизонтального принудительного граничного разделения до тех пор, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения посредством вертикального принудительного граничного разделения до тех пор, пока листовой узел не будет полностью расположен на правой границе.
В третьей форме реализации устройства согласно восьмому аспекту как таковому или любой предшествующей форме реализации восьмого аспекта принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью вертикального принудительного граничного разделения до тех пор, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения с помощью горизонтального принудительного граничного разделения до тех пор, пока листовой узел не окажется полностью на правой границе.
В четвертой форме реализации устройства согласно восьмому аспекту как таковому или любой предшествующей форме реализации восьмого аспекта процессор дополнительно выполнен с возможностью применять MinQTSize для управления разделением неграничного блока.
В пятой форме реализации устройства в соответствии с восьмым аспектом как таковым или любой предшествующей форме реализации восьмого аспекта устройство дополнительно содержит приемник, подключенный к процессору и выполненный с возможностью принимать MinQTSize через набор параметров последовательности (SPS).
В шестой форме реализации устройства в соответствии с восьмым аспектом как таковым или любой предшествующей формой реализации восьмого аспекта устройство дополнительно содержит передатчик, соединенный с процессором и выполненный с возможностью передавать MinQTSize через набор параметров последовательности (SPS).
Девятый аспект относится к компьютерному программному продукту, содержащему исполняемые компьютером инструкции, хранящиеся на энергонезависимом носителе, которые при выполнении процессором побуждает устройство определять, является ли текущий блок изображения граничным блоком; определять, когда текущий блок является граничным блоком, превышает ли размер текущего блока минимально допустимый размер (MinQTSize) листового узла дерева квадрантов (QT); и применять, когда размер текущего блока 0 не превышает MinQTSize, принудительное разделение двоичного дерева (BT) к текущему блоку.
В первой форме реализации устройства в соответствии с восьмым аспектом как таковым принудительное разделение BT является рекурсивным горизонтальным принудительным разделением BT, когда текущий блок расположен на нижней границе изображения, или рекурсивным вертикальным принудительным разделением BT. когда текущий блок расположен на правой границе изображения.
Во второй форме реализации устройства согласно девятому аспекту как таковому или любой предшествующей форме реализации девятого аспекта принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью горизонтального принудительного граничного разделения, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения посредством вертикального принудительного граничного разделения, пока листовой узел не будет полностью расположен на правой границе.
В третьей форме реализации устройства согласно девятому аспекту как таковому или любой предшествующей форме реализации девятого аспекта принудительное разделение BT содержит рекурсивное разделение текущего блока с помощью вертикального принудительного граничного разделения, пока подразделение текущего блока не будет находится на нижней границе; и рекурсивное разделение подразделения с помощью горизонтального принудительного граничного разделения, пока листовой узел не окажется полностью на правой границе.
В четвертой форме реализации устройства в соответствии с девятым аспектом как таковой или в любой предшествующей форме реализации девятого аспекта инструкции дополнительно побуждают устройство применять MinQTSize для управления разделением неграничного блока.
В пятой форме реализации устройства согласно девятому аспекту как таковому или любой предшествующей форме реализации девятого аспекта инструкции дополнительно побуждает устройство принимать MinQTSize через набор параметров последовательности (SPS).
В шестой форме реализации устройства в соответствии с девятым аспектом как таковым или любой предшествующей формой реализации девятого аспекта инструкции дополнительно побуждает устройство передавать MinQTSize через набор параметров последовательности (SPS).
Для более ясного изложения любой из раскрытых здесь вариантов осуществления может быть объединен с любым одним или более другими вариантами осуществления для формирования нового варианта осуществления в пределах объема настоящего изобретения.
Эти и другие признаки будут более понятны из следующего подробного описания вместе с прилагаемыми чертежами и формулой изобретения.
Краткое описание чертежей
Для более полного понимания настоящего изобретения будет сделана ссылка на следующее краткое описание, совместно с прилагаемыми чертежами и подробным описанием, в котором одинаковые ссылочные позиции представляют одинаковые части.
Фиг.1A является блок-схемой, иллюстрирующей примерную систему кодирования, которая может реализовывать варианты осуществления настоящего изобретения.
Фиг.1B является блок-схемой, иллюстрирующей другой пример системы кодирования, которая может реализовывать варианты осуществления настоящего изобретения.
Фиг.2 является блок-схемой, иллюстрирующей пример видеокодера, который может реализовывать варианты осуществления настоящего изобретения.
Фиг.3 является блок-схемой, иллюстрирующей пример видеодекодера, который может реализовывать варианты осуществления настоящего изобретения.
Фиг.4 является схемой сетевого устройства согласно варианту осуществления настоящего изобретения.
Фиг.5 представляет собой упрощенную блок-схему устройства, которое может использоваться как устройство 12 источника и устройство 14 назначения, или как оба, по фиг.1A согласно примерному варианту осуществления.
Фиг.6 A-F показаны различные режимы разбиения CU в VVC.
Фиг.7A показывает принудительное разделение QT нижней границы CTU (128x128) HD (1920x1080).
Фиг.7B показывает принудительное разделение BT (128x128) нижней границы CTU HD (1920 x 1080) согласно варианту осуществления изобретения.
Фиг.8 показывает пример определения границы.
Фиг.9A показывает пример принудительного разделения QTBT ситуации в углу согласно варианту осуществления настоящего изобретения.
Фиг.9B показывает пример принудительного разделения QTBT для блока, расположенного в углу, согласно варианту осуществления настоящего изобретения.
Фиг.10 показан вариант определения границы.
Осуществление изобретения
Вначале следует понимать, что, хотя ниже представлена иллюстративная реализация одного или более вариантов осуществления, раскрытые системы и/или способы могут быть реализованы с использованием любого количества способов, известных в настоящее время или существующих. Настоящее изобретение никоим образом не должно ограничиваться иллюстративными реализациями, чертежами и технологиями, проиллюстрированными ниже, включающие в себя иллюстративные конструкции и реализации, проиллюстрированные и описанные в настоящем документе, но может быть изменено в пределах объема прилагаемой формулы изобретения вместе с полным объемом их эквивалентов.
Фиг.1A является блок-схемой, иллюстрирующей примерную систему 10 кодирования, например, систему 10 кодирования видео, которая может реализовывать варианты осуществления настоящего изобретения. Система 10 кодирования может использовать способы предсказания, например, способы двунаправленного предсказания. Как показано на фиг.1A, система 10 кодирования включает в себя устройство 12 источника, которое предоставляет закодированные видеоданные для декодирования в более позднее время с помощью устройства 14 назначения. В частности, устройство 12 источника может предоставлять видеоданные в устройство 14 назначения посредством машиночитаемого носителя 16. Устройство 12 источника и устройство 14 назначения могут содержать или быть любым из широкого диапазона устройств, включающие в себя настольные компьютеры, ноутбуки (то есть, портативные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные трубки, так называемые «умные» телефоны, так называемые «умные» планшеты, телевизоры, камеры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства для потоковой передачи видео и т.п. В некоторых случаях устройство 12 источника и устройство 14 назначения могут быть оборудованы для беспроводной связи.
Устройство 14 источника может принимать кодированные видеоданные для декодирования через машиночитаемый носитель 16. Машиночитаемый носитель 16 может содержать любой тип носителя или устройства, выполненного с возможностью перемещать закодированные видеоданные из устройства 12 источника в устройство 14 назначения. В одном примере машиночитаемый носитель 16 может содержать среду связи, позволяющую устройству 12 источника передавать закодированные видеоданные непосредственно в устройство 14 назначения в реальном времени. Закодированные видеоданные могут быть модулированы согласно стандарту связи, например, протоколу беспроводной связи, и переданы в устройство 14 назначения. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр или одну или несколько физических линий передачи. Среда связи может образовывать часть сети с пакетной передачей, такой как локальная сеть, региональная сеть или глобальная сеть, такая как интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть выполнено с возможностью обеспечивать связь от устройства 12 источника в устройство 14 назначения.
В некоторых примерах закодированные данные могут выводиться через интерфейс 22 вывода в устройство хранения. Точно так же к закодированным данным можно получить доступ с устройства хранения через интерфейс 28 ввода. Устройство хранения может включать в себя любой из множества распределенных или локально доступных носителей данных, таких как жесткий диск, диски Blu-ray, цифровые видеодиски (DVDs), постоянное запоминающее устройство на компакт-диске (CD-ROM), флэш-память, энергозависимая или энергонезависимая память или любой другой подходящий цифровой носитель для хранения закодированных видеоданных. В дополнительном примере устройство хранения может соответствовать файловому серверу или другому промежуточному устройству хранения, которое может хранить закодированное видео, сгенерированное устройством 12 источника. Устройство 14 назначение может осуществлять доступ к сохраненным видеоданным из устройства хранения посредством потоковой передачи или загрузки. Файловым сервером может быть любой тип сервера, выполненный с возможностью хранить закодированные видеоданные и передавать эти закодированные видеоданные в устройство 14 назначения. Примеры файловых серверов включают в себя веб-сервер (например, для веб-сайта), сервер протокола передачи файлов (FTP), сетевые устройства хранения (NAS) или локальный диск. Устройство 14 назначения может получить доступ к закодированным видеоданным через любое стандартное соединение для передачи данных, включающее в себя соединение с интернетом. Это может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, цифровую абонентскую линию (DSL), кабельный модем и т.д.) или их комбинацию, которая подходит для доступа к сохраненным кодированным видеоданным на файловом сервере. Передача закодированных видеоданных из устройства хранения может быть потоковой передачей, загрузкой или их комбинацией.
Способы настоящего изобретения не обязательно ограничиваются беспроводными приложениями или настройками. Эти способы могут применяться к кодированию видео для поддержки любого из множества мультимедийных приложений, таких как эфирное телевещание, передачи кабельного телевидения, передачи спутникового телевидения, потоковые передачи видео через интернет, такие как динамическая адаптивная потоковая передача по протоколу HTTP (DASH), цифровое видео, которое закодировано на носителе данных, декодирование цифрового видео, хранящегося на носителе данных, или другие приложения. В некоторых примерах система 10 кодирования может быть выполнена с возможностью поддерживать одностороннюю или двустороннюю передачи видео для поддержки таких приложений, как потоковая передача видео, воспроизведение видео, широковещательная передача видео и/или видео телефония.
В примере на фиг.1A, устройство 12 источника включает в себя источник 18 видео, видеокодер 20 и интерфейс 22 вывода. Устройство 14 назначения включает в себя интерфейс 28 ввода, видеодекодер 30 и устройство 32 отображения. В соответствии с этим изобретением, видеокодер 20 устройства 12 источника и/или видеодекодер 30 устройства 14 назначения может быть выполнен с возможностью применять способ предсказания, например, двунаправленное предсказание. В других примерах устройство 12 источника и устройство 14 назначения могут включать в себя другие компоненты или компоновки. Например, устройство 12 источника может принимать видеоданные из внешнего источника видео, такого как внешняя камера. Аналогично, устройство 14 назначения может взаимодействовать с внешним устройством отображения, а не включать в себя встроенное устройство отображения.
Иллюстрированная система 10 кодирования на фиг.1A является всего лишь одним примером. Способы предсказания, например, двунаправленное предсказание может выполняться любым устройством кодирования и/или декодирования цифрового видео. Хотя способы этого настоящего изобретения обычно выполняются устройством для кодирования видео, способы также могут выполняться кодером/декодером видео, обычно называемым «CODEC». Более того, способы настоящего изобретения также могут выполняться препроцессором видео. Видеокодер и/или декодер могут быть графическим процессором (GPU) или аналогичным устройством.
Устройство 12 источника и устройство 14 назначения являются просто примерами таких устройств для кодирования, в которых устройство 12 источника генерирует кодированные видеоданные для передачи в устройство 14 назначения. В некоторых примерах устройство 12 источника и устройство 14 назначения может работать, по существу, симметрично, так что каждое из устройства 12 источника и устройства 14 назначения включает в себя компоненты кодирования и декодирования видео. Следовательно, система 10 кодирования может поддерживать одностороннюю или двустороннюю передачу видео между видеоустройствами 12, 14, например, для потоковой передачи видео, воспроизведения видео, широковещательной передачи видео или видео телефонии.
Источник 18 видео устройства 12 источника может включать в себя устройство захвата видео, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, и/или интерфейс видеопотока для приема видео от поставщика видеоконтента. В качестве дополнительной альтернативы источник 18 видео может генерировать данные на основе компьютерной графики как исходное видео или комбинацию видео в реальном времени, архивированного видео и видео, сгенерированного компьютером.
В некоторых случаях, когда источником 18 видео является видеокамера, устройство 12 источника и устройство 14 назначения могут образовывать так называемые телефоны с камерой или видеотелефоны. Однако, как упомянуто выше, способы, описанные в настоящем изобретении, могут быть применимы к кодированию видео в целом и могут применяться к беспроводным и/или проводным приложениям. В каждом случае захваченное, предварительно захваченное или сгенерированное компьютером видео может быть закодировано видеокодером 20. Закодированная видеоинформация затем может выводиться через интерфейс 22 вывода на машиночитаемый носитель 16.
Машиночитаемый носитель 16 может включать в себя временные носители, такие как беспроводное вещание или передача по проводной сети, или машиночитаемый носитель 16 может включать в себя постоянные носители данных, такие как жесткий диск, флэш-накопитель, компакт-диск, цифровые видеодиск, диск Blu-ray или другой машиночитаемый носитель. В некоторых примерах сетевой сервер (не показан) может принимать закодированные видеоданные из устройства 12 источника и предоставлять закодированные видеоданные в устройство 14 назначения, например, посредством сетевой передачи. Точно так же вычислительное устройство производственного процесса, такого как средство штамповки диска, может принимать закодированные видеоданные от устройства 12 источника и производить диск, содержащий закодированные видеоданные. Следовательно, можно понимать, что машиночитаемый носитель 16 включает в себя один или несколько машиночитаемых носителей различных форм в различных примерах.
Интерфейс 28 ввода устройства 14 назначения принимает информацию машиночитаемого носителя 16. Информация машиночитаемого носителя 16 может включать в себя синтаксическую информацию, определенную видеокодером 20, которая также используется видеодекодером 30, который включает в себя элементы синтаксиса, которые описывают характеристики и/или обработку блоков и других кодированных единиц, например, группу изображений (GOP). Устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, органический светоизлучающий диод (OLED) или другое устройство отображения.
Видеокодер 20 и видеодекодер 30 могут работать в соответствии со стандартом кодирования видео, таким как стандарт высокоэффективного кодирования видео (HEVC), который в настоящее время разрабатывается, и могут соответствовать тестовой модели HEVC (HM). В качестве альтернативы видеокодер 20 и видеодекодер 30 могут работать в соответствии с другими частными или отраслевыми стандартами, такими как стандарт H.264 сектора стандартизации электросвязи Международного союза электросвязи (ITU-T), также называемый группой экспертов по движущимся изображениям (MPEG)-4, Часть 10, усовершенствованное кодирование видео (AVC), H.265/HEVC, проект стандарта универсального кодирования видео (VVC), который в настоящее время разрабатывается ITU-T и MPEG, или расширения таких стандартов. Однако способы настоящего изобретения не ограничиваются каким-либо конкретным стандартом кодирования. Другие примеры стандартов кодирования видео включают в себя MPEG-2 и ITU-T H.263. Хотя это не показано на фиг.1A, в некоторых аспектах, видеокодер 20 и видеодекодер 30 могут быть интегрированы с аудиокодером и декодером и могут включать в себя соответствующие блоки мультиплексора-демультиплексора (MUX-DEMUX) или другое аппаратное и программное обеспечение для обработки кодирования как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, MUX-DEMUX блоки могут соответствовать ITU-T H.223 протоколу мультиплексора или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).
Видеокодер 20 и видеодекодер 30, каждый, могут быть реализованы как любая из множества подходящих схем кодера или декодера, или в виде общей логической схемы или схемы кодера, например, один или несколько микропроцессоров, процессоров цифровых сигналов (DSP), специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA), дискретная логика, графические процессоры (GPU), процессоры (например, программируемые, например, программно-программируемые), программное обеспечение, аппаратное обеспечение, встроенное программное обеспечение или любые их комбинации. Когда способы частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем постоянном машиночитаемом носителе и выполнять инструкции в аппаратных средствах, используя один или несколько процессоров для выполнения способов настоящего изобретения. Каждый из видеокодера 20 и видеодекодера 30 может содержаться в одном или нескольких кодеров или декодеров, каждый из которых может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в соответствующем устройстве. Устройство, включающее в себя видеокодер 20 и/или видеодекодер 30, может содержать интегральную схему, микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон.
Фиг.1B является иллюстративной схемой примерной системы 40 кодирования видео, включающей в себя видеокодер 20 на фиг.2 и/или видеодекодер 30 на фиг.3 в соответствии с примерным вариантом осуществления. Система 40 кодирования видео может реализовывать способы настоящего изобретения. В проиллюстрированной реализации система 40 кодирования видео может включать в себя устройство (устройства) 41 формирования изображения, видеокодер 20, видеодекодер 30 (и/или видеокодер, реализованный посредством логической схемы 47 блока (блоков) 46 обработки), антенну 42, один или несколько процессоров 43, одно или несколько памяти или хранилищ 44 памяти и/или устройство 45 отображения. Как показано, устройство (устройства) 41 формирования изображения, антенна 42, блок (блоки) 46 обработки, логическая схема 47, видеокодер 20, видеодекодер 30, процессор (процессоры) 43, памяти и/или хранилище 44 памяти и/или устройство 45 отображения могут быть выполнены с возможностью взаимодействовать друг с другом. Как обсуждалось, хотя фиг.1B показывает и видеокодер 20, и видеодекодер 30, система 40 кодирования видео может включать в себя только видеокодер 20 или только видеодекодер 30 в различных примерах.
Как показано, в некоторых примерах система 40 кодирования видео может включать в себя антенну 42. Антенна 42 может быть выполнена с возможностью, например, передавать или принимать закодированный битовый поток видеоданных. Кроме того, в некоторых примерах система 40 кодирования видео может включать в себя устройство 45 отображения.
Устройство 45 отображения может быть выполнено с возможностью представлять видеоданные. Как показано, в некоторых примерах, логическая схема 47 может быть реализована посредством блока (блоков) 46 обработки. Блок (блоки) 46 обработки может включать в себя логику специализированной интегральной схемы (ASIC), графический процессор (процессоры) общего назначения. процессор (процессоры) или подобное. Система 40 кодирования видео также может включать в себя дополнительный процессор (процессоры) 43, который аналогичным образом может включать в себя логику специализированной интегральной схемы (ASIC), графический процессор (процессоры), процессор (процессоры) общего назначения и т.п. В некоторых примерах логическая схема 47 может быть реализована с помощью аппаратного обеспечения, специализированного оборудования для кодирования видео и т.п., и процессор (процессоры) 43 может быть реализован с помощью программного обеспечения общего назначения, операционных систем и т.п. Дополнительно, память 44 может быть любым типом памяти, например энергозависимой памятью (например, статической памятью с произвольным доступом (SRAM), динамической памятью с произвольным доступом (DRAM) и т. д.) или энергонезависимой памятью (например, флэш-память и т. д.) и т. д. В неограничивающем примере память 44 может быть реализована посредством кэш-памяти. В некоторых примерах логическая схема 47 может обращаться к памяти 44 (например, для реализации буфера изображения). В других примерах логическая схема 47 и/или блок (блоки) 46 обработки могут включать в себя хранилища памяти (например, кэш и т.п.) для реализации буфера изображений или т.п.
Блок обработки графики может включать в себя видеокодер 20, реализованный посредством логической схемы 47, для воплощения различных модулей, как описано со ссылкой на фиг.2 и/или любой другой кодирующей системе или подсистеме, описанной в настоящем документе. Логическая схема 47 может быть выполнена с возможностью выполнения различных операций, обсуждаемых в данном документе. Видеодекодер 30 может быть реализован аналогично тому, как реализован с помощью логической схемы 47, для воплощения различных модулей, как описано в отношении декодера 30 на фиг. 3 и/или любую другую систему или подсистему декодера, описанную в настоящем документе. В некоторых примерах видеокодер 20 и видеодекодер 30 могут быть реализованы с помощью логической схемы и могут включать в себя буфер изображения (например, посредством блока (блоков) 46 обработки или памяти 44) и графического процессора. (GPU) (например, через процессор (процессоры) 46). Блок обработки графики может быть коммуникативно связан с буфером изображения. Блок обработки графики может включать в себя видеодекодер 30, реализованный через логическую схему 47, для воплощения различных модулей, как обсуждалось со ссылкой на фиг.3 и/или любую другую систему или подсистему декодера, описанную в настоящем документе.
В некоторых примерах антенна 42 системы 40 кодирования видео может быть выполнена с возможностью принимать закодированный битовый поток видеоданных. Как обсуждалось, кодированный битовый поток может включать в себя данные, индикаторы, значения индексов, данные выбора режима и т.п., связанные с кодированием видеокадра, как обсуждалось в данном документе, например, данные, связанные с разделом кодирования (например, коэффициенты преобразования или квантованные коэффициенты преобразования, возможные индикаторы (как обсуждалось) и/или данные, определяющие раздел кодирования). Система 40 кодирования видео может также включать в себя видеодекодер 30, подключенный к антенне 42 и выполненный с возможностью декодировать кодированный битовый поток. Устройство 45 отображения выполнено с возможностью представлять видеокадры.
Фиг.2 является блок-схемой, иллюстрирующей пример видеокодера 20, который может реализовывать способы настоящего изобретения. Видеокодер 20 может выполнять внутреннее кодирование и внешнее кодирование блоков видео в сегментах видео. Внутреннее кодирование полагается на пространственное предсказание для уменьшения или удаления пространственной избыточности в видео в пределах данного видеокадра или изображения. Внешнее кодирование основывается на временном прогнозировании для уменьшения или удаления временной избыточности в видео в соседних кадрах или изображениях последовательности видео. Режим (режим I) внутреннего предсказания может относиться к любому из нескольких режимов пространственного кодирования. Режимы внешнего предсказания, такие как однонаправленное предсказание (режим P) или двунаправленное предсказание (режим B), могут относиться к любому из нескольких режимов кодирования, основанные на времени.
Как показано на фиг.2, видеокодер 20 принимает текущий блок видео в видеокадре, который должен быть кодирован. В примере на фиг.2, видеокодер 20 включает в себя блок 40 выбора режима, память 64 опорных кадров, сумматор 50, блок 52 обработки преобразования, блок 54 квантования и блок 56 энтропийного кодирования. Блок 40 выбора режима включает в себя блок 44 компенсации движения, блок 42 оценки движения, блок 46 внутреннего предсказания и блок 48 разделения. Для восстановления блока видео видеокодер 20 также включает в себя блок 58 обратного квантования, блок 60 обратного преобразования и сумматор 62. Фильтр удаления блочности (не показан на фиг. 2) также может быть включен для фильтрации границ блоков для удаления артефактов блочности из восстановленного видео. Желательно (например, активирован или реализован вообще), фильтр удаления блочности фильтрует выходной сигнал сумматора 62. Дополнительные фильтры (в контуре или после контура) также могут использоваться в дополнение к фильтру удаления блочности. Такие фильтры не показаны для краткости, но при желании могут фильтровать, например, выходной сигнал сумматора 50 (как внутриконтурный фильтр).
Во время процесса кодирования видеокодер 20 принимает видеокадр или сегмент, подлежащий кодированию. Кадр или сегмент можно разделить на несколько блоков видео. Блок 42 оценки движения и Блок 44 компенсации движения выполняют кодирование с внешним предсказанием принятого блока видео относительно одного или нескольких блоков в одном или нескольких опорных кадрах для временного предсказания. Блок 46 внутреннего предсказания может альтернативно выполнять кодирование с внутренним предсказанием принятого блока видео относительно одного или нескольких соседних блоков в том же кадре или сегменте, что и блок, который должен быть кодирован, для обеспечения пространственного предсказания. Видеокодер 20 может выполнять несколько проходов кодирования, например, для выбора соответствующего режима кодирования для каждого блока видеоданных.
Кроме того, блок 48 разделения может разделять блоки видеоданных на подблоки или разделы на основе оценки предшествующих схем разделения в предшествующих проходах или этапах кодирования. Например, блок 48 разделения может первоначально разделить кадр или сегмент на наибольшие блоки кодирования (LCUs) и разделить каждый из LCUs на блоки субкодирования (sub-CUs) на основе анализа искажения скорости (например, оптимизация скорость-искажение). Блок 40 выбора режима может дополнительно формировать структуру данных дерева квадрантов, указывающую или указывающую разделение LCU на суб-CUs. CUs листового узла дерева квадрантов могут включать в себя один или несколько блоков предсказания (PUs) и один или несколько блоков преобразования (TUs).
В настоящем изобретении используется термин «блок» для обозначения любого из CU, PU или TU, например, в контексте HEVC или VVC, или аналогичных структур данных в контексте других стандартов (например, макроблоков и их подблоки в H.264/AVC). CU включает в себя, например, узел кодирования, PUs и TUs, ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и имеет, например, квадратную форму. Размер CU может варьироваться от 8 × 8 пикселей до размера древовидного блока с максимумом 64 × 64 пикселей или больше, например, 128x128 пикселей. Каждый CU может содержать один или несколько PUs и один или несколько TUs. Данные синтаксиса, ассоциированные с CU, могут описывать, например, разделение CU на один или несколько PUs. Режимы разделения могут различаться в зависимости от того, кодируется ли CU в режиме пропуска или в прямом режиме, в режиме внутреннего предсказания или в режиме внешнего предсказания. PUs могут быть разделены на части, имеющие неквадратную форму. Данные синтаксиса, ассоциированные с CU, также могут описывать, например, разделение CU на один или несколько TUs согласно дереву квадратов. В варианте осуществления CU, PU или TU могут иметь квадратную или неквадратную форму (например, прямоугольную).
Блок 40 выбора режима может выбрать один из режимов кодирования, внутреннее или внешнее, например, на основе результатов ошибок, и предоставить результирующий режим внутреннего или внешнего кодирования в сумматор 50 для генерации данных остаточного блока и сумматор 62 для восстановления кодированного блока для использования в качестве опорного кадра. Блок 40 выбора режима также предоставляет элементы синтаксиса, такие как векторы движения, индикаторы режима внутреннего кодирования, информацию о разделах и/или другую такую информацию синтаксиса, в блок 56 энтропийного кодирования.
Блок 42 оценки движения и блок 44 компенсации движения могут иметь высокую степень интеграции, но в концептуальных целях показаны отдельно. Оценка движения, выполняемая блоком 42 оценки движения, представляет собой процесс генерирования векторов движения, которые оценивают движение для блоков видео. Вектор движения, например, может указывать на перемещение PU блока видео в пределах текущего кадра видео или изображения по отношению к блоку предсказания в опорном кадре (или другой кодированный блок) по отношению к текущему блоку, кодируемый в пределах текущего кадра (или другой кодированный блок). Блок предсказания является блоком, который, как установлено, близко соответствует блоку, который должен быть закодирован, с точки зрения разности пикселей, которая может определяться суммой абсолютной разности (SAD), суммой разницы квадратов (SSD) или другими показателями разности. В некоторых примерах видеокодер 20 может вычислять значения для позиций субцелочисленных пикселей опорных изображений, сохраненных в памяти 64 опорных кадров. Например, видеокодер 20 может интерполировать значения позиций одной четверти пикселя, позиций одной восьмой пикселя, или другие дробные позиции пикселей опорного кадра. Следовательно, блок 42 оценки движения может выполнять поиск движения относительно полных позиций пикселей и позиций дробных пикселей и выводить вектор движения с точностью до дробных пикселей.
Блок 42 оценки движения вычисляет вектор движения для PU блока видео в сегменте, закодированном с внешним предсказанием, сравнивая позицию PU с позицией блока предсказания опорного изображения. Опорное изображение может быть выбрано из первого списка опорных изображений (List 0) или из второго списка опорных изображений (List 1), каждый из которых идентифицирует одно или более опорные изображения, сохраненных в памяти 64 опорного кадра. Блок 42 оценки движения отправляет вычисленный вектор движения в блок 56 энтропийного кодирования и блок 44 компенсации движения.
Компенсация движения, выполняемая блоком 44 компенсации движения, может включать в себя выборку или генерирование блока предсказания на основании вектора движения, определенного блоком 42 оценки движения. Опять же, в некоторых примерах блок 42 оценки движения и блок 44 компенсации движения могут быть функционально интегрированы. После приема вектора движения для PU текущего блока видео блок 44 компенсации движения может определять местонахождение блока предсказания, на который указывает вектор движения, в одном из списков опорных изображений. Сумматор 50 формирует остаточный блок видео путем вычитания значений пикселей блока предсказания из значений пикселей текущего кодируемого блока видео, формируя значения разности пикселей, как описано ниже. В общем, блок 42 оценки движения выполняет оценку движения относительно компонентов яркости и блок 44 компенсации движения использует векторы движения, вычисленные на основе компонентов яркости как для компонентов цветности, так и для компонентов яркости. Блок 40 выбора режима также может генерировать элементы синтаксиса, ассоциированные с блоком видео и сегментом видео, для использования видеодекодером 30 при декодировании блоков видео сегмента видео.
Блок 46 внутреннего предсказания может внутреннее предсказывать текущий блок в качестве альтернативы внешнему предсказанию, выполняемому блоком 42 оценки движения и блоком 44 компенсации движения, как описано выше. В частности, блок 46 внутреннего предсказания может определять режим внутреннего предсказания для использования для кодирования текущего блока. В некоторых примерах блок 46 внутреннего предсказания может кодировать текущий блок с использованием различных режимов внутреннего предсказания, например, во время отдельных проходов или этапов кодирования, и блок 46 внутреннего предсказания (или блок 40 выбора режима в некоторых примерах) может выбрать подходящий режим внутреннего предсказания для использования из протестированных режимов.
Например, блок 46 внутреннего предсказания может вычислять значения искажения скорости с использованием анализа искажения скорости для различных протестированных режимов внутреннего предсказания и выбирать режим внутреннего предсказания, имеющий наилучшие характеристики соотношение скорость-искажение среди тестированных режимов. Анализ искажения скорости обычно определяет величину искажения (или ошибки) между закодированным блоком и исходным некодированным блоком, который был закодирован для генерирования закодированного блока, а также битрейт (то есть, количество битов) используется для генерирования закодированного блока. Блок 46 внутреннего предсказания может вычислять отношения искажений и скоростей для различных кодированных блоков для определения, какой режим внутреннего предсказания показывает наилучшее значение искажения скорости для блока.
Дополнительно, блок 46 внутреннего предсказания может быть выполнен с возможностью кодировать блоки глубины карты глубины с использованием режима моделирования глубины (DMM). Блок 40 выбора режима может определять, предоставляет ли доступный режим DMM лучшие результаты кодирования, чем режим внутреннего предсказания и другие режимы DMM, например, используя оптимизацию скорости-искажения (RDO). Данные для изображения текстуры, соответствующего карте глубины, могут храниться в памяти 64 опорных кадров. Блок 42 оценки движения и блок 44 компенсации движения также могут быть выполнены с возможностью внешнего предсказания блоков глубины карты глубины.
После выбора режима внутреннего предсказания для блока (например, обычного режима внутреннего предсказания или одного из режимов DMM), блок 46 внутреннего предсказания может предоставить информацию, указывающую на выбранный режим внутреннего предсказания для блока в блок 56 энтропийного кодирования. Блок 56 энтропийного кодирования может кодировать информацию, указывающую выбранный режим внутреннего предсказания. Видеокодер 20 может включать в себя передаваемые данные конфигурации битового потока, которые могут включать в себя множество таблиц индексов режима внутреннего предсказания и множество модифицированных таблиц индексов режима внутреннего предсказания (также называемых таблицами отображения кодовых слов), определения контекстов кодирования для различных блоков и индикаторов наиболее вероятного режима внутреннего предсказания, таблицы индексов режима внутреннего предсказания и модифицированной таблицы индексов режима внутреннего предсказания для использования в каждом из контекстов.
Видеокодер 20 формирует остаточный блок видео путем вычитания данных предсказания из блока 40 выбора режима из исходного кодируемого блока видео. Сумматор 50 представляет компонент или компоненты, которые выполняют эту операцию вычитания.
Блок 52 обработки преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование, к остаточному блоку, формируя блок видео, содержащий значения коэффициентов остаточного преобразования. Блок 52 обработки преобразования может выполнять другие преобразования, которые концептуально аналогичны DCT. Также могут использоваться вейвлет-преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований.
Блок 52 обработки преобразования применяет преобразование к остаточному блоку, формируя остаточный блок коэффициентов преобразования. Преобразование может преобразовывать остаточную информацию из области значений пикселей в область преобразования, такую как частотная область. Блок 52 обработки преобразования может отправлять результирующие коэффициенты преобразования в блок 54 квантования. Блок 54 квантования квантует коэффициенты преобразования, чтобы дополнительно снизить скорость передачи битов. Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть изменена путем регулировки параметра квантования. В некоторых примерах блок 54 квантования может затем выполнить сканирование матрицы, включающую в себя квантованные коэффициенты преобразования. В качестве альтернативы сканирование может выполнять блок 56 энтропийного кодирования.
После квантования блок 56 энтропийного кодирования энтропийно кодирует квантованные коэффициенты преобразования. Например, блок 56 энтропийного кодирования может выполнять контекстно-адаптивное кодирование с переменной длиной (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), контекстно-адаптивное двоичное арифметическое кодирование на основе синтаксиса (SBAC), энтропийное кодирование с разделением интервала вероятности (PIPE), или другой способ энтропийного кодирования. В случае энтропийного кодирования на основе контекста контекст может быть основан на соседних блоках. После энтропийного кодирования блоком 56 энтропийного кодирования закодированный битовый поток может быть передан на другое устройство (например, видеодекодер 30) или заархивирован для последующей передачи или поиска.
Блок 58 обратного квантования и блок 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, для восстановления остаточного блока в пиксельной области, например, для последующего использования в качестве опорного блока. Блок 44 компенсации движения может определять блок предсказания (также называемый блоком предсказания), например, блок предсказания с компенсацией движения на основании вектора движения и соответствующего опорного блока, например, полученный из опорного кадра одного из кадров памяти 64 опорного кадра. Блок 44 компенсации движения может также применять один или несколько фильтров интерполяции для расчета значения суб-целого числа пикселей опорного блока для использования в оценке движения или компенсации. Сумматор 62 добавляет восстановленный остаточный блок к (с компенсацией движения) блоку предсказания, сформированного блоком 44 компенсации движения для генерирования восстановленного блока видео для хранения в памяти 64 опорных кадров. Восстановленный блок видео может использоваться блоком 42 оценки движения и блоком 44 компенсация движения в качестве опорного блока для блока внешнего кодирования в последующем видеокадре.
Для кодирования видеопотока могут использоваться другие структурные вариации видеокодера 20. Например, видеокодер 20 без преобразования может квантовать остаточный сигнал напрямую без блока 52 обработки преобразования для определенных блоков или кадров. В другой реализации кодер 20 может иметь блок 54 квантования и блок 58 обратного квантования, объединенные в один блок.
Фиг.3 является блок-схемой, иллюстрирующей пример видеодекодера 30, который может реализовывать способы настоящего изобретения. В примере на фиг.3, видеодекодер 30 включает в себя блок 70 энтропийного декодирования, блок 72 компенсации движения, блок 74 внутреннего предсказания, блок 76 обратного квантования, блок 78 обратного преобразования, память 82 опорных кадров и сумматор 80. Видеодекодер 30 может, в некоторых примерах, выполнять проход или путь декодирования, в целом, обратный проходу или пути кодирования, описанному относительно видеокодера 20 на фиг.2. Блок 72 компенсации движения может генерировать данные предсказания на основании векторов движения, принятых из блока 70 энтропийного декодирования, в то время, как блок 74 внутреннего предсказания может генерировать данные предсказания на основании индикаторов режима внутреннего предсказания, принятых из блока 70 энтропийного декодирования.
Во время процесса декодирования видеодекодер 30 принимает закодированный битовый поток видео, который представляет блок видео и закодированного сегмента видео и ассоциированные с ними элементы синтаксиса, сгенерированные видеокодером 20. Блок 70 энтропийного декодирования видеодекодера 30 выполняет энтропийное декодирование битового потока для генерирования квантованных коэффициентов, векторов движения или индикаторов режима внутреннего предсказания и других элементов синтаксиса. Блок 70 энтропийного декодирования пересылает векторы движения и другие элементы синтаксиса в блок 72 компенсации движения. Видеодекодер 30 может принимать элементы синтаксиса на уровне сегмента видео и/или уровне блока видео.
Когда сегмент видео кодируется как сегмент с внутренним кодированием (I), блок 74 внутреннего предсказания может сгенерировать данные предсказания для блока видео текущего сегмента видео на основании сигнального режима внутреннего предсказания и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется как сегмент с внешним кодированием (то есть, B, P или GPB), блок 72 компенсации движения формирует блоки предсказания для блока видео текущего сегмента видео на основании векторов движения и других принятых элементов синтаксиса из блока 70 энтропийного декодирования. Блоки предсказания могут быть сформированы из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может формировать списки опорных кадров, список 0 и список 1, используя способы построения по умолчанию на основе опорных изображений, сохраненных в памяти 82 опорных кадров.
Блок 72 компенсации движения определяет информацию предсказания для блока видео текущего сегмента видео путем анализа векторов движения и других элементов синтаксиса и использует информацию предсказания для формирования блоков предсказания для текущего декодируемого блока видео. Например, блок 72 компенсации движения использует некоторые из принятых элементов синтаксиса для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодирования блоков видео сегмента видео, типа сегмента с внешним предсказанием (например, B-сегмент, P-сегмент или GPB-сегмент), информации о структуре для одного или нескольких списков опорных изображений для сегмента, векторы движения для каждого блока видео с внешним кодированием сегмента видео, статуса внешнего предсказания для каждого блока видео с внешним кодированием сегмента и другой информации для декодирования блоков видео в текущем сегменте.
Блок 72 компенсации движения также может выполнять интерполяцию на основе фильтров интерполяции. Блок 72 компенсации движения может использовать фильтры интерполяции, которые используются видеокодером 20 во время кодирования блоков видео, для вычисления интерполированного значения для субцелочисленных пикселей опорных блоков. В этом случае блок 72 компенсации движения может определять фильтры интерполяции, используемые видеокодером 20, из принятых элементов синтаксиса и использовать фильтры интерполяции для формирования блоков предсказания.
Данные для изображения текстуры, соответствующего карте глубины, могут храниться в памяти 82 опорных кадров. Блок 72 компенсации движения также может быть сконфигурирован для взаимного предсказания блоков глубины карты глубины.
Возвращаясь к фиг.1A, система 10 кодирования видео может использоваться для реализации различных способов кодирования видео или сжатия. Некоторые способы сжатия видео, такие как внешнее предсказание, внутреннее предсказание и контурные фильтры, продемонстрировали свою эффективность. Поэтому способы сжатия видео были приняты в различные стандарты кодирования видео, такие как H.264/AVC и H.265/HEVC.
Для предсказания векторов движения (MV) и повышения эффективности внешнего предсказания и, следовательно, общей эффективности сжатия видео могут использоваться различные инструменты кодирования, такие как адаптивное предсказание вектора движения (AMVP) и режим объединения (MERGE).
Вышеупомянутые MVs могут использоваться в двунаправленном предсказании. В операции двунаправленного предсказания формируются два блока предсказания. Один блок предсказания формируется с использованием MV список 0 (именуемого здесь MV0). Другой блок предсказания формируется с использованием MV списка 1 (в данном документе именуемого MV1). Затем два блока предсказания объединяются (например, усредняются) для формирования единого сигнала предсказания (например, блок предсказания или блок предиктора).
Для декодирования сжатого битового потока могут использоваться другие варианты видеодекодера 30. Например, декодер 30 может формировать выходной видеопоток без блока контурной фильтрации. Например, декодер 30, не основанный на преобразовании, может выполнить обратное квантование остаточного сигнала напрямую без блока 78 обработки обратного преобразования для определенных блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 76 обратного квантования и блок 78 обработки обратного преобразования, объединенные в один блок.
Фиг.4 является схемой сетевого устройства 400 (например, устройства для кодирования) согласно варианту осуществления настоящего изобретения. Сетевое устройство 400 подходит для реализации раскрытых вариантов осуществления, как описано в настоящем документе. В варианте осуществления сетевое устройство 400 может быть декодером, таким как видеодекодер 30 на фиг.1A и 3, или кодером, такой как видеокодер 20 на фиг.1A и 2. В варианте осуществления сетевое устройство 400 может быть одним или более компонентами видеодекодера 30 по фиг.1A и 3 или видеокодером 20 по фиг.1A и 2, как описано выше.
Сетевое устройство 400 содержит входные порты 410 и блоки (Rx) 420 приемника для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки (Tx) 440 передатчика и выходные порты 450 для передачи данных; и память 460 для хранения данных. Сетевое устройство 400 может также содержать оптико-электрические (OE) компоненты и электрические-оптические (EO) компоненты, подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для вывода или ввода оптических или электрических сигналов.
Процессор 430 может быть реализован аппаратным обеспечением и программным обеспечением. Процессор 430 может быть реализован как одна или несколько микросхем CPU, ядер (например, как многоядерный процессор), FPGA, ASIC и DSP. Процессор 430 связан с входными портами 410, блоками 420 приемника, блоками 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 содержит модуль 470 кодирования. Модуль 470 кодирования реализует раскрытые варианты осуществления, описанные выше. Например, модуль 470 кодирования реализует, обрабатывает, подготавливает или предоставляет различные операции кодирования. Таким образом, использование модуля 470 кодирования обеспечивает существенное улучшение функциональности сетевого устройства 400 и в результате преобразовывает сетевое устройство 400 в другое состояние. В качестве альтернативы модуль 470 кодирования реализован как инструкции, хранящиеся в памяти 460 и выполняемые процессором 430.
Память 460 содержит один или несколько дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве запоминающего устройства для переполнения данных, для хранения программ, когда такие программы выбраны для выполнения, а также для хранения инструкций и данных, которые читаются во время выполнения программы. Память 460 может быть энергозависимой и/или энергонезависимой и может представлять собой постоянную память (ROM), оперативную память (RAM), троичную память с адресацией по содержимому (TCAM) и/или статическую память с произвольным доступом (SRAM).
Фиг.5 является упрощенной блок-схемой устройства 500, которое может использоваться как устройство 12 источника и устройство 14 назначения, или как оба, на фиг.1A согласно примерному варианту осуществления. Устройство 500 может реализовывать способы настоящего изобретения. Устройство 500 может быть в виде вычислительной системы, включающей в себя несколько вычислительных устройств, или в виде одного вычислительного устройства, например, мобильного телефона, планшетного компьютера, портативного компьютера, портативного компьютера, настольного компьютера и подобное, аналогичное, похожее.
Процессор 502 в устройстве 500 может быть центральным процессором. В качестве альтернативы процессор 502 может быть устройством любого другого типа или множеством устройств, выполненных с возможностью манипулировать или обрабатывать информацию, существующую в настоящее время или разработанную в будущем. Хотя раскрытые реализации могут быть реализованы с одним процессором, как показано, например, с процессором 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более чем одного процессора.
Память 504 в устройстве 500 может быть постоянным запоминающим устройством (ROM) или устройством оперативной памяти (RAM) в реализации. В качестве памяти 504 может использоваться любой другой подходящий тип запоминающего устройства. Память 504 может включать в себя код и данные 506, к которым обращается процессор 502 с использованием шины 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, и прикладные программы 510 включают в себя, по меньшей мере, одну программу, которая позволяет процессору 502 выполнять описанные здесь способы. Например, прикладные программы 510 могут включать в себя приложения с 1 по N, которые дополнительно включают в себя приложение кодирования видео, которое выполняет описанные здесь способы. Устройство 500 также может включать в себя дополнительную память в виде вторичного запоминающего устройства 514, которым может быть, например, карта памяти, используемая с мобильным вычислительным устройством. Поскольку сеансы видеосвязи могут содержать значительный объем информации, они могут быть сохранены полностью или частично во вторичном запоминающем устройстве 514 и загружены в память 504 по мере необходимости для обработки.
Устройство 500 также может включать в себя одно или несколько устройств вывода, например дисплей 518. Дисплей 518 может быть, в одном примере, сенсорным дисплеем, который объединяет дисплей с сенсорным элементом, который может работать как сенсорный ввод. Дисплей 518 может быть подключен к процессору 502 через шину 512. Другие устройства вывода, которые позволяют пользователю программировать или иным образом использовать устройство 500, могут быть предоставлены в дополнение к дисплею 518 или в качестве альтернативы ему. Когда устройство вывода работает или включает в себя дисплей, дисплей может быть реализован различными способами, в том числе с помощью жидкокристаллического дисплея (LCD), дисплея с электронно-лучевой трубкой (CRT), плазменного дисплея или дисплея на светоизлучающих диодах (LED), например, органического светодиодного дисплея (OLED).
Устройство 500 также может включать в себя устройство 520 формирования изображений или взаимодействовать с ним, например, камеру или любое другое устройство 520 формирования изображений, существующее в настоящее время или разработанное в будущем, которое может воспринимать изображение, такое как изображение пользователя, работающего с устройством 500. Устройство 520 формирования изображений может быть расположено так, чтобы оно было направлено к пользователю, работающему с устройством 500. В примере положение и оптическая ось устройства 520 формирования изображений могут быть сконфигурированы так, чтобы поле зрения включает в себя область, которая непосредственно примыкает к дисплею 518 и из которой виден дисплей 518.
Устройство 500 также может включать в себя устройство 522 захвата звука или взаимодействовать с ним, например, микрофон или любое другое существующее или разрабатываемое в настоящее время звуковое устройство, которое может воспринимать звуки рядом с устройством 500. Устройство 522 захвата звука может быть расположено так, чтобы оно было направлено на пользователя, управляющего устройством 500, и может быть выполнено с возможностью принимать звук, например, речь или другие звуки, издаваемые пользователем, когда пользователь управляет устройством 500.
Хотя на фиг.5 показан процессор 502 и память 504 устройства 500 как интегрированные в единый блок, можно использовать другие конфигурации. Операции процессора 502 могут быть распределены между несколькими машинами (каждая машина имеет один или несколько процессоров), которые могут быть связаны напрямую или через локальную область или другую сеть. Память 504 может быть распределена по нескольким машинам, таким как сетевая память или память на нескольких машинах, выполняющих операции устройства 500. Хотя здесь изображена как одна шина, шина 512 устройства 500 может состоять из нескольких шин. Дополнительно, вторичное запоминающее устройство 514 может быть напрямую связано с другими компонентами устройства 500 или может быть доступно через сеть и может содержать один интегрированный блок, такой как карта памяти, или несколько блоков, таких как несколько карт памяти. Таким образом, устройство 500 может быть реализовано в широком разнообразии конфигураций.
Стандарт следующего поколения универсального кодирования видео (VVC) является последним совместным видеопроектом группы экспертов по кодированию видео (VCEG) Международного союза электросвязи (ITU-T) и Международной организации по стандартизации/Международной электротехнической комиссии. (ISO/IEC) организации по стандартизации группы экспертов по движущемуся изображению (MPEG), работающие вместе в рамках партнерства, известного как Joint Video Exploration Team (JVET). В VVC структура сегментации с несколькими древовидными типами (двоичное/тройное/четвертичное) (BT/TT/QT или двоичное дерево/тройное дерево/четвертичное дерево) заменяет или может заменить концепцию типов блоков раздела множественного разделения, т.е. удаляет концепции разделения CU, PU и TU за исключением случаев, когда это необходимо для CUs, размер которых слишком велик для максимальной длины преобразования, и поддерживает большую гибкость для форм разделения CU. [JVET-J1002].
Фиг.6A-F иллюстрируют, в качестве примера, режимы разделения, используемые в настоящее время в VTM. Фиг.6A показывает неразделенный блок (no split), фиг.6Bb показывает четвертичное разделение или дерево квадратов (QT), фиг.6C показывает горизонтальное двоичное разделение или двоичного дерева (BT), фиг.6D показывает вертикальное двоичное разделение или двоичного дерева (BT), фиг.6E показывает горизонтальное троичное разделение или троичного дерева (TT), фиг.6F показывает вертикальное троичное разделение или троичное дерево (TT) блока, такого как CU или CTU. Варианты осуществления могут быть сконфигурированы для реализации режимов разделения, как показано на фиг.6А-6F.
В вариантах осуществления могут быть определены следующие параметры и указаны элементами синтаксиса набора параметров последовательности (SPS) для схемы дерева кодирования BT/TT/QT:
CTU размер: размер корневого узла четвертичного дерева.
MinQTSize: минимально допустимый размер листового узла четвертичного дерева
MaxBTTSize: максимально допустимый размер корневого узла двоичного и троичного дерева.
MaxBTTDepth: максимально допустимая глубина двоичного и троичного дерева, и
MinBTTSize: минимально допустимый размер листового узла двоичного и тройного дерева.
В других вариантах осуществления минимально допустимый размер MinQTSize листового узла четвертичного дерева может также содержаться в других заголовках или наборах, например, в заголовке сегмента (SH) или наборе параметров изображения (PPS).
В стандарте HEVC блоки дерева кодирования (CTU) или блоки кодирования (CU), которые расположены на границах сегмента/изображения, будут принудительно разделены с использованием дерева квадратов (QT) до тех пор, пока правая нижняя выборка листового узла не будет расположена в пределах границы сегмента/изображения. О принудительном разделе QT или разделении не требуется сигнализировать в битовом потоке, потому что и кодер, и декодер, например, и видеокодер 20, и видеодекодер 30 знают, когда применять принудительный QT. Цель принудительного разделения сделать возможной границу CTU / CU с помощью видеокодера 20/видеодекодера 30.
Международная патентная публикация номер WO 2016/090568 раскрывает структуру QTBT (дерево квадратов плюс двоичное дерево) и также в VTM 1.0 процесс принудительного разделения CTU/CU на границе унаследован от HEVC. Это означает, что CTU/CU, расположенный на границе кадра, принудительно разделяется структурой дерева квадратов (QT) без учета оптимизации соотношения скорость-искажение (RD) до тех пор, пока весь текущий CU не окажется внутри границы изображения. Эти принудительные разделы не передаются в битовом потоке.
Фиг.7A показан пример принудительного разделения для CTU нижней границы (128x128) высокого разрешения (HD) (1920x1080 пикселей) посредством принудительного разделения QT. На фиг.7, изображение HD имеет или имеет размер 1920x1080 пикселей и CTU имеет или имеет размер 128x128 пикселей.
В SubCE2 (обработка границ изображения) CE1 (разделение) на совещании в Сан-Диего (04.2018) [JVET-J1021] было предложено 15 тестов для обработки границ изображения с использованием BT, TT или ABT (асимметричный BT). Например, в JVET-K0280 и JVET-K0376 граница определяется, как показано на фиг.8. На фиг.8 границы изображения показаны пунктирными линиями и области граничных случаев проиллюстрированы прямыми линиями, а именно, случай нижней границы, случай угловой границы и случай правой границы. Нижняя граница может быть разделена горизонтальным принудительным BT или принудительным QT, правая граница может быть разделена вертикальным принудительным BT или принудительным QT, угловой случай может быть разделен только принудительным QT, при этом решение об использовании любого из принудительных BT или принудительное разделение QT основано на критерии оптимизации искажения скорости и передается в битовом потоке. Принудительное разделение означает, что блок должен быть разделен, например, принудительное разделение применяется к граничным блокам, которые нельзя закодировать с использованием «без разделения», как показано на фиг.6A.
Если принудительное разделение QT используется в принудительном граничном разделении, ограничение разделения MinQTSize игнорируется. Например, на фиг.9A, если MinQTSize передается как 32 в SPS, чтобы соответствовать границе с принудительным способом QT, будет необходимо разделение QT до размера блока 8x8, что игнорирует ограничение MinQTSize, равное 32.
Согласно вариантам осуществления изобретения, если для разделения границ изображения используется принудительный QT, то обязательно используется принудительное разделение QT, например, не игнорирует ограничение разделения, как указано, например, в SPS. Если необходимо дополнительное принудительное разделение, используется только принудительный BT, который в комбинации также может называться принудительным QTBT. В вариантах реализации изобретения, например, ограничение разделения MinQTSize учитывается для принудительного разделения QT на границах изображения, и никакой дополнительной сигнализации для принудительного разделения BT не требуется. Варианты осуществления также позволяют согласовывать разделение для нормальных (не граничных) блоков и граничных блоков. Например в традиционных решениях требуются два параметра «MinQTSize»: один для нормального разделения блоков и другой для граничного разделения блоков. Варианты осуществления требуют только одного общего параметра «MinQTSize» для нормального разделения блоков и граничных блоков, который может гибко устанавливаться между кодером и декодером, например, сигнализируя один параметр «MinQTSize». Кроме того, варианты осуществления требуют меньше разделов, чем, например, принудительный QT.
Решения для случая нижней границы и случая правой границы
В случае нижней и правой границы, если размер блока больше MinQTSize, то режим разделения для граничного разделения изображения может быть выбран между принудительным разделением BT и принудительным разделением QT, например, на основе RDO. В противном случае (т.е. если размер блока равен или меньше, чем MinQTSize), для разделения границ изображения используется только принудительное разделение BT, более конкретно, принудительное горизонтальное разделение BT используется для нижней границы соответственно для граничного блока, расположенного на нижней границе изображения. изображение, и вертикальное принудительное BT используется для правой границы, соответственно, для граничного блока, расположенного на правой границе изображения.
Принудительное разделение BT может содержать рекурсивное разделение текущего блока с помощью горизонтального принудительного граничного разделения до тех пор, пока подраздел текущего блока не окажется на нижней границе изображения, и рекурсивное разделение подраздела посредством вертикального принудительного граничного разделения до тех пор, пока листовой узел полностью не окажется на правой границе изображения. В качестве альтернативы принудительное разделение BT может содержать рекурсивное разделение текущего блока с помощью вертикального принудительного граничного разделения до тех пор, пока подраздел текущего блока не окажется на нижней границе, и рекурсивное разделение подраздела с помощью горизонтального принудительного граничного разделения до тех пор, пока листовой узел целиком не будет расположен на правой границе. MinQTSize может применяться также для управления разделением неграничного блока.
Например, в случае, показанном на фиг.7A, если MinQTSize равен или ограничен 32, в то время, как для соответствия границе изображения необходим размер прямоугольного (неквадратного) блока высотой или шириной 8 выборок, принудительное разделение BT будет использоваться для разделения 32x32 граничного расположенного блока. Разделы BT могут быть дополнительно разделены с помощью принудительного разделения BT того же типа, например, в случае применения принудительного вертикального разделения BT применяется только дополнительное принудительное вертикальное разделение BT, а в случае применения принудительного горизонтального разделения BT применяется только дополнительное принудительное горизонтальное разделение BT. Принудительное разделение BT продолжается до тех пор, пока листовой узел полностью не окажется в пределах изображения.
Фиг.7B показывает примерное разделение CTU нижней границы с размером 128x128 выборок согласно варианту осуществления изобретения. Нижний граничный CTU, который образует корневой блок или корневой узел дерева разделения, разбит на более мелкие разделы, например, блоки меньшего размера квадратного или прямоугольного размера. Эти меньшие разделы или блоки могут быть дополнительно разделены на еще меньшие разделы или блоки. На фиг.7B, CTU является первым деревом квадратов, разделенным на четыре квадратных блока 710, 720, 730 и 740, каждый из которых имеет размер 64x64 выборок. Из этих блоков блоки 710 и 720 снова являются нижними граничными блоками, тогда как блоки 730 и 740 находятся вне изображения (соответственно, находятся вне изображения) и не обрабатываются.
Блок 710 дополнительно разделяется с использованием четырехугольного дерева на четыре квадратных блока 750, 760, 770 и 780, каждый из которых имеет размер 32x32 отсчета. Блоки 750 и 760 расположены внутри изображения, тогда как блоки 770 и 780 снова образуют нижние граничные блоки. Поскольку размер блока 770 не превышает MinQTSize, который, например, равен 32, рекурсивное горизонтальное принудительное двоичное разделение применяется к блоку 770 до тех пор, пока листовой узел не окажется полностью в пределах или полностью внутри изображения, например, пока блок 772 листовых узлов, прямоугольный неквадратный блок, имеющий 32x16 отсчетов, находится внутри изображения (после одного горизонтального двоичного разделения), или блок 774 листового узла, прямоугольный неквадратный блок, расположенный на нижней границе изображения и имеющий 32x8 выборок находятся внутри изображения (после двух горизонтальных двоичных разбиений). То же самое касается блока 780.
Варианты осуществления настоящего изобретения позволяют согласовать разделение для нормальных блоков, полностью расположенных внутри изображения, и разделение граничных блоков. Граничные блоки представляют собой блоки, которые не полностью находятся внутри изображения и не полностью вне изображения. Иными словами, граничные блоки являются блоками, которые содержат часть, которая расположена внутри изображения, и часть, которая расположена за пределами изображения. Кроме того, варианты осуществления настоящего изобретения позволяют уменьшить сигнализацию, поскольку не требуется сигнализация о принудительном разделении BT на уровне MinQTSize или ниже.
Решения для углового случая
В угловом случае некоторые подходы допускают только принудительное разделение QT, которое также игнорирует ограничение MinQTSize. Варианты осуществления настоящего изобретения обеспечивают два решения для углового случая.
Решение 1:
Угловой случай рассматривается как нижний граничный случай или как правый граничный случай. Фиг.10 показывает вариант определения границы. Фиг.10 показывает пунктирными линиями границы изображения и области граничных случаев показывает прямыми линиями. Как показано, угловой случай определяется как нижний граничный случай. Таким образом, решение является таким же, как описано выше для случая нижней границы и случая правой границы. Другими словами, сначала применяется горизонтальное разделение (как описано для случая нижней границы) до тех пор, пока блоки или разделы не будут полностью внутри изображения (в вертикальном направлении) и затем применяется вертикальное разделение (как описано для случая правой границы), пока листовые узлы полностью не окажутся внутри изображения (в горизонтальном направлении).
Решение 2:
Определение граничных случаев остается как есть. Если принудительный QT ограничен MinQTSize (текущий размер блока равен или меньше MinQTSize), использовать принудительное горизонтальное BT для соответствия нижней границе, когда нижняя граница совпадает, использовать принудительную вертикальную BT для соответствия правой границе.
Например, на фиг.9A, на котором показан вариант принудительного QTBT для блока, расположенного в углу изображения, если MinQTSize равен или ограничен 32 для принудительного разделения QT углового случая, дополнительное разделение BT будет использоваться после разделения блока 32x32, пока принудительное разделение не будет завершено.
Фиг.9B показывает дополнительные детали примерного разделения граничного CTU в или в углу изображения согласно варианту осуществления изобретения, в котором CTU имеет размер 128x128 выборок. CTU является первым деревом квадратов, разделенное на четыре квадратных блока, каждый размером 64x64 выборок. Из этих блоков только верхний левый блок 910 является граничным блоком, тогда как остальные три расположены вне (полностью вне) изображения и не обрабатываются дополнительно. Блок 910 дополнительно разделяется с использованием разделения дерева квадратов на четыре квадратных блока 920, 930, 940 и 950, каждый из которых имеет размер 32x32 выборок. Блок 920 расположен внутри изображения, тогда как блоки 930, 940 и 950 снова образуют граничные блоки. Поскольку размер этих блоков 930, 940 и 950 не больше, чем MinQTSize, который равен 32, к блокам 930, 940 и 950 применяется принудительное двоичное разделение.
Блок 930 расположен на правой границе и разделяется с использованием рекурсивного вертикального принудительного двоичного разделения до тех пор, пока листовой узел не окажется внутри изображения, например, блок 932, расположенный на правой границе изображения (здесь после двух вертикальных двоичных разбиений).
Блок 940 расположен на нижней границе и разделяется с использованием рекурсивного горизонтального принудительного двоичного разделения до тех пор, пока листовой узел не окажется внутри изображения, например, блок 942, расположенный на правой границе изображения (здесь после двух горизонтальных двоичных разбиений).
Блок 950 расположен на угловой границе и разделяется с использованием первого рекурсивного горизонтального принудительного двоичного разделения до тех пор, пока подразделение или блок, здесь блок 952, не окажется на нижней границе изображения (здесь после двух горизонтальных двоичных разделений) и затем выполняется рекурсивное разделение с помощью вертикального принудительного граничного разделения до листового узла или блока, например, блока 954, расположенного на правой границе изображения (здесь после двух вертикальных двоичных разделений) или, соответственно, до тех пор, пока листовой узел не окажется внутри изображения.
Вышеупомянутые подходы могут применяться как к декодированию, так и к кодированию. Для декодирования MinQTSize может быть принят через SPS. Для кодирования MinQTSize может передаваться через SPS. Варианты осуществления могут использовать определения границ, как показано на фиг.8 или фиг.10 или другие определения границ.
Далее представлены дополнительные варианты осуществления настоящего изобретения. Следует отметить, что нумерация, используемая в следующем разделе, не обязательно должна соответствовать нумерации, используемой в предшествующих разделах.
Вариант 1 осуществления: способ разделения, содержащий:
определение, является ли текущий блок изображения граничным блоком;
если текущий блок является граничным, определение, превышает ли размер текущего блока минимально допустимый размер листового узла дерева квадрантов;
если размер текущего блока не превышает минимально допустимый размер листового узла дерева квадрантов, применение принудительного разделения двоичного дерева к текущему блоку.
Вариант 2 осуществления: способ разделения по варианту 1 осуществления, в котором принудительное разделение двоичного дерева представляет собой рекурсивное горизонтальное принудительное двоичное разделение в случае, если текущий блок находится на нижней границе изображения, или является рекурсивным вертикальным принудительным граничным разделением в случае, если текущий блок расположен на правой границе изображения.
Вариант 3 осуществления: способ разделения по вариантам 1 или 2 осуществления, в котором принудительное двоичное разделение содержит рекурсивное разделение текущего блока посредством горизонтального принудительного граничного разделения до тех пор, пока подразделение текущего блока не будет расположено непосредственно на нижней границе изображения, и рекурсивное разделение подразделения с помощью вертикального принудительного граничного разделения до тех пор, пока листовой узел не будет полностью расположен непосредственно на правой границе изображения, или наоборот.
Вариант 4 осуществления: способ разделения по любому из вариантов 1-3 осуществления, в котором минимально допустимый размер листового узла дерева квадрантов является минимально допустимым размером листового узла дерева квадрантов, также применяемым для управления разделением неграничного блока.
Вариант 5 осуществления: способ декодирования для декодирования блока путем разделения блока согласно способу разделения любого из вариантов 1-4 осуществления.
Вариант 6 осуществления: способ декодирования согласно варианту 5 осуществления, в котором минимально допустимый размер листового узла дерева квадрантов принимается через SPS.
Вариант 7 осуществления: способ кодирования для кодирования блока путем разделения блока в соответствии со способом разделения любого из вариантов осуществления с 1 по 4.
Вариант 8 осуществления: способ кодирования по варианту 7 осуществления, в котором минимально допустимый размер листового узла дерева квадрантов передается через SPS.
Вариант 9 осуществления: устройство декодирования, содержащее логическую схему, выполненную с возможностью реализации любого из способов по вариантам 5 или 6 осуществления.
Вариант 10 осуществления: устройство кодирования, содержащее логическую схему, выполненную с возможностью реализации любого из способов по вариантам 7 или 8 осуществления.
Вариант 11 осуществления: энергонезависимый носитель данных для хранения инструкций, вызывающих, при исполнении процессором, выполнение, процессором, способа по любому из вариантов 1-8 осуществления.
В одном или более примерах описанные функции могут быть реализованы в аппаратном обеспечении, программном обеспечении, встроенном программном обеспечении или любой их комбинации. Если реализованы в программном обеспечении, функции могут храниться или передаваться в виде одной или нескольких инструкций или кода на машиночитаемом носителе и выполняться аппаратным блоком обработки. Машиночитаемый носитель может включать в себя машиночитаемый носитель данных, который соответствует материальному носителю, например, носителю данных, или носителю связи, включающему в себя любой носитель, который облегчает передачу компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, машиночитаемые носители обычно могут соответствовать (1) материальным машиночитаемым носителям данных, которые являются энергонезависимыми, или (2) средам связи, таким как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может получить доступ один или несколько компьютеров или один или несколько процессоров для извлечения инструкций, кода или структур данных для реализации способов, описанных в настоящем изобретении. Компьютерный программный продукт может включать в себя машиночитаемый носитель.
В качестве примера, а не ограничения, такие машиночитаемые носители данных могут содержать RAM, ROM, электрически стираемое программируемое постоянное запоминающее устройство (EEPROM), CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске и т.н. магнитные запоминающие устройства, флэш-память или любой другой носитель, который можно использовать для хранения желаемого программного кода в форме инструкций или структур данных, и к которым может получить доступ компьютер. Дополнительно, любое соединение правильно называть машиночитаемым носителем. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасный порт, радио и сигнал микроволнового диапазона, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасный порт, радио и сигнал микроволнового диапазона определены как среда связи. Однако следует понимать, что машиночитаемые носители данных и носители данных не включают в себя соединения, несущие волны, сигналы или другие временные носители, а вместо этого направлены на постоянные материальные носители данных. Диск и диск, используемые в данном документе, включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), дискету и диск Blu-ray, где диски обычно воспроизводят данные магнитным способом, и диски воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в список машиночитаемых носителей.
Инструкции могут выполняться одним или более процессорами, такими как один или несколько процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые логические матрицы (FPGA) или другие эквивалентные интегрированные или дискретная логическая схема. Соответственно, термин «процессор», используемый в данном документе, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации описанных здесь способов. Дополнительно, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в рамках выделенных аппаратных и/или программных модулей, выполненных с возможностью кодировать и декодировать или содержащиеся в комбинированном кодеке. Кроме того, способы могут быть полностью реализованы в одной или нескольких схемах или логических элементах.
Способы настоящего изобретения могут быть реализованы в большом количестве устройств или устройств, включающие в себя беспроводной телефон, интегральную схему (IC) или набор IC (например, набор микросхем). В настоящем изобретении описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнять раскрытые способы, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или обеспечены набором взаимодействующих аппаратных блоков, включающие в себя один или несколько процессоров, как описано выше, в сочетании с подходящим программным обеспечением и/или встроенным программным обеспечением.
Устройство содержит элемент памяти; и элемент процессора, связанный с элементом памяти и выполненный с возможностью определять, является ли текущий блок изображения граничным блоком, определять, когда текущий блок является граничным блоком, определять, превышает ли размер текущего блока минимально допустимый размер (MinQTSize) листового узла дерева квадрантов (QT) и применять, когда размер текущего блока не превышает MinQTSize, принудительное разделение двоичного дерева (BT) к текущему блоку.
Хотя в настоящем изобретении представлено несколько вариантов осуществления, следует понимать, что раскрытые системы и способы могут быть воплощены во многих других конкретных формах без отступления от сущности или объема настоящего изобретения. Настоящие примеры следует рассматривать как иллюстративные, а не как ограничительные, и намерение не ограничиваться приведенными здесь деталями. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или определенные функции могут быть опущены или не реализованы.
Дополнительно, способы, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как отдельные могут быть объединены или интегрированы с другими системами, модулями, технологиями или способами без выхода за рамки настоящего изобретения. Другие элементы, показанные или обсуждаемые как связанные или непосредственно связанные или взаимодействующие друг с другом, могут быть косвенно связаны или взаимодействовать через некоторый интерфейс, устройство или промежуточный компонент, электрически, механически или иным образом. Другие примеры изменений, замен и переделок могут быть установлены специалистом в данной области техники и могут быть сделаны без отступления от сущности и объема настоящего изобретения.
Определения сокращений и глоссарий
HEVC - высокоэффективное кодирование видео
VVC - универсальное кодирование видео
VTM - VVC тестовая модель
JEM - модель совместного исследования
CTU - блок дерева кодирования
CU - блок кодирования
BT - двоичное дерево
TT - тернарное дерево
QT - дерево квадратов или четвертичное дерево
ABT - асимметричное BT
МТТ - многотипное дерево
AMP - асимметричный раздел
SH - заголовок сегмента
SPS - набор параметров последовательности
PPS - набор параметров изображения
CE - основной эксперимент
SubCE – подосновной эксперимент (часть основного эксперимента)