ПРОГНОЗИРОВАНИЕ ВО ВНУТРЕННЕМ DC-РЕЖИМЕ ПРИ КОДИРОВАНИИ ВИДЕО Российский патент 2024 года по МПК H04N19/105 H04N19/176 H04N19/593 H04N19/70 

Описание патента на изобретение RU2817294C2

Родственная заявка

[0001] Данная заявка испрашивает приоритет заявки на патент США за номером 16/905352, поданной 18 июня 2020 года, которая испрашивает приоритет предварительной заявки на патент США за номером 62/864422, поданной 20 июня 2019 года, и предварительной заявки на патент США за номером 62/866325, поданной 25 июня 2019 года, содержимое каждой из которых полностью содержится в данном документе по ссылке.

Область техники, к которой относится изобретение

[0002] Данное раскрытие относится к кодированию видео и декодированию видео.

Уровень техники

[0003] Поддержка цифрового видео может быть включена в широкий диапазон устройств, включающих в себя цифровые телевизионные приемники, системы цифровой прямой широковещательной передачи, беспроводные широковещательные системы, персональные цифровые устройства (PDA), переносные или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые камеры, цифровые записывающие устройства, цифровые мультимедийные проигрыватели, устройства видеоигр, консоли для видеоигр, сотовые или спутниковые радиотелефоны, так называемые "смартфоны", устройства видеоконференц-связи, устройства потоковой передачи видео и т.п. Цифровые видеоустройства реализуют такие технологии кодирования видео, как технологии кодирования видео, описанные в стандартах, заданных посредством стандартов MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), ITU-T H.265/стандарта высокоэффективного кодирования видео (HEVC), и расширений таких стандартов. Видеоустройства могут передавать, принимать, кодировать, декодировать и/или сохранять цифровую видеоинформацию более эффективно посредством реализации таких технологий кодирования видео.

[0004] Технологии кодирования видео включают в себя пространственное (внутрикадровое) прогнозирование и/или временное (межкадровое) прогнозирование для того, чтобы уменьшать или удалять избыточность, внутренне присущую в видеопоследовательностях. Для кодирования видео на основе блоков, видеосрез (например, видеокадр или часть видеокадра) может сегментироваться на видеоблоки, которые также могут называться "единицами дерева кодирования (CTU)", "единицами кодирования (CU)" и/или "узлами кодирования". Видеоблоки во внутреннем (I-) срезе кадра кодируются с использованием пространственного прогнозирования относительно опорных выборок в соседних блоках в идентичном кадре. Видеоблоки во взаимно кодированном (P- или B-) срезе кадра могут использовать пространственное прогнозирование относительно опорных выборок в соседних блоках в идентичном кадре или временное прогнозирование относительно опорных выборок в других опорных кадрах. Кадры могут называться "кадрами", и опорные кадры могут называться "опорными кадрами".

Сущность изобретения

[0005] В общем, это раскрытие описывает технологии для прогнозирования во внутреннем DC-режиме, включающие в себя улучшения для определения выборок для прогнозирования во внутреннем DC-режиме. Например, в одном или более примеров, для прогнозирования во внутреннем DC-режиме, видеокодер (например, видеокодер или видеодекодер) может использовать одну или более выборок в строке или столбце, который не является непосредственно смежным с кодируемым (например, кодируемым или декодируемым) текущим блоком. Это раскрытие описывает примерные технологии, в которых выборки в несмежной строке или столбце совмещаются с текущим блоком.

[0006] В качестве одного примера, выборки несмежной строки совмещаются с текущим блоком, когда последняя выборка в несмежной строке имеет координату X, идентичную координате X последнего столбца текущего блока. В качестве одного примера, выборки несмежного столбца совмещаются с текущим блоком, когда последняя выборка в несмежном столбце имеет координату Y, идентичную координате Y последней строки текущего блока. В некоторых примерах, первая выборка в несмежной строке имеет координату X, идентичную координате X первого столбца текущего блока, и первая выборка в несмежном столбце имеет координату Y, идентичную координате Y первой строки текущего блока.

[0007] Посредством использования выборок из несмежных строк или столбцов, которые совмещаются с текущим блоком, могут быть предусмотрены улучшения процесса кодирования видео. В качестве одного примера, для прогнозирования во внутреннем DC-режиме, выборки из несмежных строк или столбцов, которые совмещаются с текущим блоком, в общем, могут формировать лучший блок прогнозирования (например, с точки зрения меньших остаточных значений), чем выборки из несмежных строк или столбцов, которые не совмещаются.

[0008] Кроме того, могут быть предусмотрены преимущества по пропускной способности запоминающего устройства. Если совмещенные выборки используются для прогнозирования во внутреннем DC-режиме, то схема для выполнения прогнозирования во внутреннем DC-режиме не должна осуществлять выборку выборок, которые находятся слева сверху от из текущего блока для прогнозирования во внутреннем DC-режиме с несмежными строками или столбцами. Поскольку осуществление выборки происходит в порциях, неосуществление доступа к левым верхним выборкам может быть полезным для уменьшения объема данных, которые считываются. Соответственно, в некоторых примерах, могут быть предусмотрена эффективность вычислений, вследствие того, что видеокодер осуществляет доступ к меньшему количеству выборок из запоминающего устройства для прогнозирования во внутреннем DC-режиме. Таким образом, примерные технологии, описанные в этом раскрытии сущности, предоставляют техническое решение технической проблемы, которое улучшает операции видеокодера и процесс кодирования видео с практическим вариантом применения для применения внутреннего DC-прогнозирования для текущего блока.

[0009] В одном примере, раскрытие описывает способ декодирования видеоданных, при этом способ содержит определение выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом определение выборок содержит определение множества выборок по меньшей мере в одном из следующего: несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок находится более чем на одну строку выше текущего блока, или несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок находится более чем на один столбец слева от текущего блока, и декодирование текущего блока с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок.

[0010] В одном примере, раскрытие описывает способ кодирования видеоданных, при этом способ содержит определение выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом определение выборок содержит определение множества выборок по меньшей мере в одном из следующего: несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок находится более чем на одну строку выше текущего блока, или несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок находится более чем на один столбец слева от текущего блока, и кодирование текущего блока с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок.

[0011] В одном примере, раскрытие описывает устройство для декодирования видеоданных, причем устройство содержит запоминающее устройство, выполненное с возможностью сохранять одну или более выборок строк и столбцов, которые являются несмежными относительно текущего блока, и схему обработки, выполненную с возможностью определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при том для того, чтобы определять выборки, схема обработки выполнена с возможностью определять множество выборок по меньшей мере в одном из следующего: несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок находится более чем на одну строку выше текущего блока, или несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок находится более чем на один столбец слева от текущего блока, и декодировать текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок.

[0012] В одном примере, раскрытие описывает устройство для кодирования видеоданных, причем устройство содержит запоминающее устройство, выполненное с возможностью сохранять одну или более выборок строк и столбцов, которые являются несмежными относительно текущего блока, и схему обработки, выполненную с возможностью определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при том для того, чтобы определять выборки, схема обработки выполнена с возможностью определять множество выборок по меньшей мере в одном из следующего: несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок находится более чем на одну строку выше текущего блока, или несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок находится более чем на один столбец слева от текущего блока, и кодировать текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок.

[0013] В одном примере, раскрытие описывает компьютерно-читаемый носитель хранения данных, сохраняющий инструкции, которые при выполнении инструктируют одному или более процессоров определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом инструкции, которые инструктируют одному или более процессоров определять выборки, содержат инструкции, которые инструктируют одному или более процессоров определять множество выборок по меньшей мере в одном из следующего: несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок находится более чем на одну строку выше текущего блока, или несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок находится более чем на один столбец слева от текущего блока, и декодировать текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок.

[0014] В одном примере, раскрытие описывает устройство для декодирования видеоданных, устройство, содержащее средство для определения выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом средство для определения выборок содержит средство для определения множества выборок по меньшей мере в одном из следующего: несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок находится более чем на одну строку выше текущего блока, или несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок находится более чем на один столбец слева от текущего блока, и средство для декодирования текущего блока с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок.

[0015] Подробности одного или более примеров изложены на прилагаемых чертежах и в нижеприведенном описании. Другие признаки, цели и преимущества должны становиться очевидными из описания, чертежей и формулы изобретения.

Краткое описание чертежей

[0016] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему кодирования и декодирования видео, которая может выполнять технологии этого раскрытия сущности.

[0017] Фиг. 2A и 2B являются концептуальными схемами, иллюстрирующими примерную структуру в виде дерева квадрантов и двоичного дерева (QTBT) и соответствующую единицу дерева кодирования (CTU).

[0018] Фиг. 3 является блок-схемой, иллюстрирующей примерный видеокодер, который может выполнять технологии этого раскрытия сущности.

[0019] Фиг. 4 является блок-схемой, иллюстрирующей примерный видеодекодер, который может выполнять технологии этого раскрытия сущности.

[0020] Фиг. 5 является концептуальной схемой, иллюстрирующей направления внутреннего прогнозирования со стрелками, указывающими на опорные выборки.

[0021] Фиг. 6 является концептуальной схемой, иллюстрирующей пример прямоугольного блока 8×4, который внутренне прогнозируется.

[0022] Фиг. 7A-7C являются концептуальными схемами, иллюстрирующими процесс преобразования режимов для режимов за рамками диапазона диагональных направлений.

[0023] Фиг. 8 является концептуальной схемой, иллюстрирующей широкие углы (-1 - -10 и 67-76) в дополнение к 65 угловым режимам.

[0024] Фиг. 9 является концептуальной схемой, иллюстрирующей широкие углы (-1 - -14 и 67-80) за рамками режимов 2 и 6 для 93 угловых режимов в сумме.

[0025] Фиг. 10 является таблицей преобразования для определения угловых углов для внутреннего прогнозирования.

[0026] Фиг. 11 является концептуальной схемой, иллюстрирующей опорные выборки из нескольких опорных линий, которые могут использоваться для внутреннего прогнозирования блока кодирования.

[0027] Фиг. 12 является концептуальной схемой, иллюстрирующей опорные выборки из непосредственно смежной строки и столбца.

[0028] Фиг. 13-15 являются концептуальными схемами, иллюстрирующими опорные выборки из несмежной строки и столбца с неправильным совмещением с текущим блоком.

[0029] Фиг. 16-19 являются концептуальными схемами, иллюстрирующими опорные выборки из несмежной строки и столбца с совмещением с текущим блоком.

[0030] Фиг. 20 является блок-схемой последовательности операций, иллюстрирующей примерный способ кодирования видеоданных.

[0031] Фиг. 21 является блок-схемой последовательности операций, иллюстрирующей примерный способ декодирования видеоданных.

Подробное описание изобретения

[0032] При кодировании видео, видеокодер формирует блок прогнозирования для текущего блока и определяет остаточный блок (например, разность) между текущим блоком и блоком прогнозирования. Видеокодер передает в служебных сигналах информацию, указывающую остаточный, блок и информацию режима прогнозирования, указывающую способ, которым видеокодер формирует блок прогнозирования. Видеодекодер принимает информацию остаточного блока и информацию режима прогнозирования. Видеодекодер формирует блок прогнозирования на основе информации режима прогнозирования таким образом, что блок прогнозирования, сформированный посредством видеодекодера, является идентичным блоку прогнозирования, сформированному посредством видеокодера. Видеодекодер суммирует блок прогнозирования с остаточным блоком, чтобы восстанавливать текущий блок.

[0033] Один пример режима прогнозирования представляет собой режим внутреннего DC-прогнозирования. В режиме внутреннего DC-прогнозирования, видеокодер (например, видеокодер и/или видеодекодер) формирует блок прогнозирования с использованием выборок в идентичном кадре с текущим блоком. Например, для режима внутреннего DC-прогнозирования, видеокодер может использовать выборки в смежной строке (например, в строке непосредственно выше) и/или в смежном столбце (например, в столбце непосредственно слева) от текущего блока, чтобы формировать блок прогнозирования.

[0034] В некоторых примерах, режим внутреннего DC-прогнозирования использует выборки из несмежного столбца или строки. В качестве одного примера, несмежная строка выборок находится более чем на одну строку выше текущего блока, и несмежный столбец выборок находится более чем на один столбец слева от текущего блока. В качестве другого примера, несмежная строка выборок находится более чем на три строки выше текущего блока, и несмежный столбец выборок находится более чем на три столбца слева от текущего блока. В качестве другого примера, несмежная строка выборок находится более чем на две строки выше текущего блока, и несмежный столбец выборок находится более чем на два столбца слева от текущего блока.

[0035] Видеокодер может передавать в служебных сигналах информацию, которую принимает видеодекодер, указывающую то, какую строку и/или столбец следует использовать для внутреннего DC-прогнозирования. Например, информация может указывать то, должны или нет выборки в строке и/или столбце, который является смежным с текущим блоком, использоваться для внутреннего DC-прогнозирования, то, должны или нет выборки в строке и/или столбце, который на одну строку или на один столбец отстоит от текущего блока (например, один пример несмежной строки или столбца), либо то, должны или нет выборки в строке и/или столбце, который на три строки или на три столбца отстоит от текущего блока (например, другой пример несмежной строки или столбца). В другом случае, информация может указывать то, должны или нет выборки в строке и/или столбце, который является смежным с текущим блоком, использоваться для внутреннего DC-прогнозирования, то, должны или нет выборки в строке и/или столбце, который на одну строку или на один столбец отстоит от текущего блока (например, один пример несмежной строки или столбца), либо то, должны или нет выборки в строке и/или столбце, который на две строки или на два столбца отстоит от текущего блока (например, другой пример несмежной строки или столбца).

[0036] Это раскрытие описывает примерные технологии, чтобы определять то, какие выборки в несмежной строке и/или столбце должны использоваться для формирования блока прогнозирования. Выборки в несмежной строке и/или столбце могут совмещаться с текущим блоком. Например, последняя выборка из выборок в несмежной строке (например, самая дальняя правая выборка), которая может использоваться для внутреннего DC-прогнозирования, может совмещаться с последним столбцом (например, самым дальним правым столбцом) текущего блока. Последняя выборка из выборок в несмежном столбце (например, самая нижняя выборка), которая может использоваться для внутреннего DC-прогнозирования, может совмещаться с последней строкой (например, самой нижней строкой) текущего блока. В некоторых примерах, первая выборка из выборок в несмежной строке (например, самая дальняя левая выборка), которая может использоваться для внутреннего DC-прогнозирования, может совмещаться с первым столбцом (например, самым дальним левым столбцом) текущего блока, и первая из выборка из выборок в несмежном столбце (например, самая верхняя выборка), которая может использоваться для внутреннего DC-прогнозирования, может совмещаться с первой строкой (например, самой верхней строкой) текущего блока.

[0037] В одном или более примеров, использование выборок из несмежных строк или столбцов, которые совмещаются с текущим блоком, может приводить к лучшему блоку прогнозирования (например, с точки зрения наличия меньших остаточных значений в остаточном блоке) по сравнению с использованием выборок из несмежных строк или столбцов, которые не совмещаются с текущим блоком. Кроме того, в некоторых примерах, схема видеокодера, используемого для внутреннего DC-прогнозирования, возможно, не должна осуществлять доступ к выборкам, расположенным сверху и слева от текущего блока, что уменьшает объем данных, которые считываются. Таким образом, примерные технологии могут улучшать общую работу видеокодера и улучшать процесс кодирования видео. Например, примерные технологии предоставляют практический вариант применения для того, чтобы улучшать операции видеокодера и видеодекодера при выполнении внутреннего DC-прогнозирования текущего блока.

[0038] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему 100 кодирования и декодирования видео, которая может выполнять технологии этого раскрытия сущности. Технологии этого раскрытия сущности, в общем, направлены на кодирование (кодирование и/или декодирование) видеоданных. В общем, видеоданные включают в себя любые данные для обработки видео. Таким образом, видеоданные могут включать в себя необработанное некодированное видео, кодированное видео, декодированное (например, восстановленное) видео и видеометаданные, такие как служебные данные.

[0039] Как показано на фиг. 1, система 100 включает в себя исходное устройство 102, которое предоставляет кодированные видеоданные, которые должны декодироваться и отображаться посредством целевого устройства 116, в этом примере. В частности, исходное устройство 102 предоставляет видеоданные в целевое устройство 116 через компьютерно-читаемый носитель 110. Исходное устройство 102 и целевое устройство 116 могут содержать любые из широкого диапазона устройств, включающих в себя настольные компьютеры, ноутбуки (т.е. переносные компьютеры), планшетные компьютеры, абонентские приставки, телефонные трубки, к примеру, смартфоны, телевизионные приемники, камеры, устройства отображения, цифровые мультимедийные проигрыватели, консоли для видеоигр, устройство потоковой передачи видео и т.п. В некоторых случаях, исходное устройство 102 и целевое устройство 116 могут оснащаться возможностями беспроводной связи и в силу этого могут называться "устройствами беспроводной связи".

[0040] В примере по фиг. 1, исходное устройство 102 включает в себя видеоисточник 104, запоминающее устройство 106, видеокодер 200 и интерфейс 108 вывода. Целевое устройство 116 включает в себя интерфейс 122 ввода, видеодекодер 300, запоминающее устройство 120 и устройство 118 отображения. В соответствии с этим раскрытием сущности, видеокодер 200 исходного устройства 102 и видеодекодер 300 целевого устройства 116 могут быть выполнены с возможностью применять технологии для определения того, какие выборки следует использовать для прогнозирования во внутреннем DC-режиме, к примеру, если выборки находятся в несмежных строках или столбцах и совмещаются с кодируемым (например, кодируемым или декодируемым) текущим блоком. Таким образом, исходное устройство 102 представляет пример устройства кодирования видео, в то время как целевое устройство 116 представляет пример устройства декодирования видео. В других примерах, исходное устройство и целевое устройство могут включать в себя другие компоненты или компоновки. Например, исходное устройство 102 может принимать видеоданные из внешнего видеоисточника, такого как внешняя камера. Аналогично, целевое устройство 116 может взаимодействовать с внешним устройством отображения вместо включения в себя интегрированного устройства отображения.

[0041] Система 100, как показано на фиг. 1, представляет собой просто один пример. В общем, любое устройство кодирования и/или декодирования цифрового видео может выполнять технологии для определения того, какие выборки следует использовать для прогнозирования во внутреннем DC-режиме, к примеру, если выборки находятся в несмежных строках или столбцах и совмещаются с кодируемым (например, кодируемым или декодируемым) текущим блоком. Исходное устройство 102 и целевое устройство 116 представляют собой просто примеры таких устройств кодирования, в которых исходное устройство 102 формирует кодированные видеоданные для передачи в целевое устройство 116. Это раскрытие обозначает устройство "кодирования" в качестве устройства, которое выполняет кодирование (кодирование и/или декодирование) данных. Таким образом, видеокодер 200 и видеодекодер 300 представляют примеры устройств кодирования, в частности, видеокодера и видеодекодера, соответственно. В некоторых примерах, устройства 102, 116 могут работать практически симметрично, так что каждое из устройств 102, 116 включает в себя компоненты кодирования и декодирования видео. Следовательно, система 100 может поддерживать одностороннюю и двухстороннюю передачу видео между видеоустройствами 102, 116, к примеру, для потоковой передачи видео, воспроизведения видео, широковещательной передачи видео или видеотелефонии.

[0042] В общем, видеоисточник 104 представляет источник видеоданных (т.е. необработанных некодированных видеоданных) и предоставляет последовательную серию кадров (также называемых "кадрами") видеоданных в видеокодер 200, который кодирует данные для кадров. Видеоисточник 104 исходного устройства 102 может включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное необработанное видео, и/или интерфейс прямой видеотрансляции, чтобы принимать видео от поставщика видеосодержимого. В качестве дополнительной альтернативы, видеоисточник 104 может формировать данные компьютерной графики в качестве исходного видео либо комбинацию передаваемого вживую видео, архивного видео и машиногенерируемого видео. В каждом случае, видеокодер 200 кодирует захваченные, предварительно захваченные или машиногенерируемые видеоданные. Видеокодер 200 может перекомпоновывать кадры из порядка приема (иногда называемого "порядком отображения") в порядок кодирования для кодирования. Видеокодер 200 может формировать поток битов, включающий в себя кодированные видеоданные. Исходное устройство 102 затем может выводить кодированные видеоданные через интерфейс 108 вывода на компьютерно-читаемый носитель 110 для приема и/или извлечения, например, посредством интерфейса 122 ввода целевого устройства 116.

[0043] Запоминающее устройство 106 исходного устройства 102 и запоминающее устройство 120 целевого устройства 116 представляют запоминающие устройства общего назначения. В некоторых примерах, запоминающие устройства 106, 120 могут сохранять необработанные видеоданные, например, необработанное видео из видеоисточника 104 и необработанные декодированные видеоданные из видеодекодера 300. Дополнительно или альтернативно, запоминающие устройства 106, 120 могут сохранять программные инструкции, выполняемые, например, посредством видеокодера 200 и видеодекодера 300, соответственно. Хотя показаны отдельно от видеокодера 200 и видеодекодера 300 в этом примере, следует понимать, что видеокодер 200 и видеодекодер 300 также могут включать в себя внутренние запоминающие устройства для функционально аналогичных или эквивалентных целей. Кроме того, запоминающие устройства 106, 120 могут сохранять кодированные видеоданные, например, выводимые из видеокодера 200 и вводимые в видеодекодер 300. В некоторых примерах, части запоминающих устройств 106, 120 могут выделяться в качестве одного или более видеобуферов, например, чтобы сохранять необработанные, декодированные и/или кодированные видеоданные.

[0044] Компьютерно-читаемый носитель 110 может представлять любой тип носителя или устройства, допускающего транспортировку кодированных видеоданных из исходного устройства 102 в целевое устройство 116. В одном примере, компьютерно-читаемый носитель 110 представляет среду связи, чтобы обеспечивать возможность исходному устройству 102 передавать кодированные видеоданные непосредственно в целевое устройство 116 в реальном времени, например, через радиочастотную сеть или компьютерную сеть. Интерфейс 108 вывода может модулировать передаваемый сигнал, включающий в себя кодированные видеоданные, и интерфейс 122 ввода может демодулировать принимаемый сигнал передачи, согласно стандарту связи, такому как протокол беспроводной связи. Среда связи может содержать любую беспроводную или проводную среду связи, такую как радиочастотный (RF) спектр либо одна или более физических линий передачи. Среда связи может формировать часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть либо глобальная сеть, такая как Интернет. Среда связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезным для того, чтобы упрощать передачу из исходного устройства 102 в целевое устройство 116.

[0045] В некоторых примерах, исходное устройство 102 может выводить кодированные данные из интерфейса 108 вывода в устройство 112 хранения данных. Аналогично, целевое устройство 116 может осуществлять доступ к кодированным данным из устройства 112 хранения данных через интерфейс 122 ввода. Устройство 112 хранения данных может включать в себя любые из множества распределенных или локально доступных носителей хранения данных, таких как жесткий диск, Blu-Ray-диски, DVD, CD-ROM, флэш-память, энергозависимое или энергонезависимое запоминающее устройство либо любые другие подходящие цифровые носители хранения данных для сохранения кодированных видеоданных.

[0046] В некоторых примерах, исходное устройство 102 может выводить кодированные видеоданные на файловый сервер 114 или другое промежуточное устройство хранения данных, которое может сохранять кодированное видео, сформированное посредством исходного устройства 102. Целевое устройство 116 может осуществлять доступ к сохраненным видеоданным из файлового сервера 114 через потоковую передачу или загрузку.

[0047] Файловый сервер 114 может представлять собой любой тип серверного устройства, допускающего сохранение кодированных видеоданных и передачу этих кодированных видеоданных в целевое устройство 116. Файловый сервер 114 может представлять веб-сервер (например, для веб-узла), сервер, выполненный с возможностью предоставлять услуги по протоколу передачи файлов (к примеру, по протоколу передачи файлов (FTP) или по протоколу доставки файлов при однонаправленной транспортировке (FLUTE)), устройство для работы в сети доставки контента (CDN), сервер с поддержкой протокола передачи гипертекста (HTTP), сервер с поддержкой услуги широковещательной и многоадресной передачи мультимедиа (MBMS) или усовершенствованной MBMS (eMBMS) и/или устройство по протоколу системы хранения данных с подключением по сети (NAS). Файловый сервер 114, дополнительно или альтернативно, может реализовывать один или более протоколов потоковой HTTP-передачи, таких как динамическая адаптивная потоковая передача по HTTP (DASH), потоковая HTTP-передача вживую (HLS), протокол потоковой передачи в реальном времени (RTSP), динамическая потоковая HTTP-передача и т.п.

[0048] Целевое устройство 116 может осуществлять доступ к кодированным видеоданным из файлового сервера 114 через любое стандартное соединение для передачи данных, включающее в себя Интернет-соединение. Оно может включать в себя беспроводной канал (например, Wi-Fi-соединение), проводное соединение (например, цифровую абонентскую линию (DSL), кабельный модем и т.д.) либо комбинация означенного, которая является подходящей для осуществления доступа к кодированным видеоданным, сохраненным на файловом сервере 114. Интерфейс 122 ввода может быть выполнен с возможностью работать согласно любому одному или более различных протоколов, поясненных выше для извлечения или приема мультимедийных данных из файлового сервера 114, или других таких протоколов для извлечения мультимедийных данных.

[0049] Интерфейс 108 вывода и интерфейс 122 ввода могут представлять беспроводные передающие устройства/приемные устройства, модемы, проводные сетевые компоненты (например, Ethernet-карты), компоненты беспроводной связи, которые работают согласно любым из множества IEEE 802.11-стандартов, либо другие физические компоненты. В примерах, в которых интерфейс 108 вывода и интерфейс 122 ввода содержат беспроводные компоненты, интерфейс 108 вывода и интерфейс 122 ввода могут быть выполнены с возможностью передавать данные, к примеру, кодированные видеоданные, согласно стандарту сотовой связи, такому как 4G, 4G LTE (стандарт долгосрочного развития), усовершенствованный стандарт LTE, 5G и т.п. В некоторых примерах, в которых интерфейс 108 вывода содержит беспроводное передающее устройство, интерфейс 108 вывода и интерфейс 122 ввода могут быть выполнены с возможностью передавать данные, к примеру, кодированные видеоданные, согласно другим стандартам беспроводной связи, таким как IEEE 802.11-спецификация, IEEE 802.15-спецификация (например, ZigBee™), стандарт Bluetooth™ и т.п. В некоторых примерах, исходное устройство 102 и/или целевое устройство 116 могут включать в себя соответствующие внутримикросхемные (SoC) устройства. Например, исходное устройство 102 может включать в себя SoC-устройство, чтобы выполнять функциональность, приписываемую видеокодеру 200 и/или интерфейсу 108 вывода, и целевое устройство 116 может включать в себя SoC-устройство, чтобы выполнять функциональность, приписываемую видеодекодеру 300 и/или интерфейсу 122 ввода.

[0050] Технологии этого раскрытия могут применяться к кодированию видео в поддержку любых из множества мультимедийных вариантов применения, таких как телевизионные широковещательные передачи по радиоинтерфейсу, кабельные телевизионные передачи, спутниковые телевизионные передачи, потоковые передачи видео по Интернету, такие как динамическая адаптивная потоковая передача по HTTP (DASH), цифровое видео, которое кодируется на носитель хранения данных, декодирование цифрового видео, сохраненного на носителе хранения данных, или другие варианты применения.

[0051] Интерфейс 122 ввода целевого устройства 116 принимает кодированный поток видеобитов из компьютерно-читаемого носителя 110 (например, устройства 112 хранения данных, файлового сервера 114 и т.п.). Кодированный поток видеобитов может включать в себя служебную информацию, заданную посредством видеокодера 200, которая также используется посредством видеодекодера 300, такую как синтаксические элементы, имеющие значения, которые описывают характеристики и/или обработку видеоблоков либо других кодированных единиц (например, срезов, кадров, групп кадров, последовательностей и т.п.). Устройство 118 отображения отображает декодированные кадры декодированных видеоданных пользователю. Устройство 118 отображения может представлять любое из множества устройств отображения, таких как дисплей на электронно-лучевой трубке (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.

[0052] Хотя не показано на фиг. 1, в некоторых примерах, видеокодер 200 и видеодекодер 300 могут быть интегрированы с аудиокодером и/или аудиодекодером и могут включать в себя соответствующие модули мультиплексора-демультиплексора либо другие аппаратные средства и программное обеспечение для того, чтобы обрабатывать мультимедийные потоки, включающие в себя как аудио, так и видео в общем потоке данных. Если применимо, модули мультиплексора-демультиплексора могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).

[0053] Видеокодер 200 и видеодекодер 300 могут реализовываться как любая из множества надлежащих схем кодера и/или декодера, к примеру, как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), как дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение либо как любые комбинации вышеозначенного. Когда технологии реализуются частично в программном обеспечении, устройство может сохранять инструкции для программного обеспечения на подходящем энергонезависимом компьютерно-читаемом носителе и выполнять инструкции в аппаратных средствах с использованием одного или более процессоров, чтобы осуществлять технологии этого раскрытия сущности. Каждый из видеокодера 200 и видеодекодера 300 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем устройстве. Устройство, включающее в себя видеокодер 200 и/или видеодекодер 300, может содержать интегральную схему, микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон.

[0054] Далее описывается некоторые примерные стандарты кодирования видео. Стандарты кодирования видео включают в себя ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный как ISO/IEC MPEG-4 AVC), включающий в себя расширения масштабируемого кодирования видео (SVC) и кодирования многовидового видео (MVC).

[0055] Стандарт кодирования видео предшествующего уровня техники, а именно, стандарт высокоэффективного кодирования видео (HEVC), завершен посредством Объединенной группы для совместной работы над видеостандартами (JCT-VC) Экспертной группы в области кодирования видео (VCEG) ITU-T и Экспертной группы по киноизображению (MPEG) ISO/IEC в апреле 2013 года. Объединенная экспертная группа по видеостандартам (JVET), совместная команда, сформированная посредством MPEG и исследовательской группы 16 ITU-T VCEG, работает над новым стандартом кодирования видео, известным как стандарт универсального кодирования видео (VVC). Главная цель VVC состоит в том, чтобы предоставлять существенное повышение производительности сжатия по сравнению с существующим HEVC-стандартом, что способствует развертыванию более высококачественных услуг передачи видео и новых вариантов применения, таких как всенаправленное иммерсивное мультимедиа на 360° и видео с расширенным динамическим диапазоном (HDR). Разработка VVC-стандарта предположительно должна завершаться в 2020 году. Последний проект VVC-стандарта описывается в работе авторов Bross и др. "Versatile Video Coding (Draft 5)", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 14-ая конференция: Женева, CH, 19-27 марта 2019, JVET-N1001-v8 (далее "VVC-проект 5"), и доступен по адресу http://phenix.it-sudparis.eu/jvet/doc_end_user/documents/13_Marrakech/wg11/JVET-N1001-v8.zip.

[0056] Видеокодер 200 и видеодекодер 300 могут работать согласно стандарту кодирования видео, такому как ITU-T H.265, также называемому "стандартом высокоэффективного кодирования видео (HEVC)", либо его расширениям, таким как расширения кодирования многовидового видео и/или масштабируемого кодирования видео. Альтернативно, видеокодер 200 и видеодекодер 300 могут работать согласно другим собственным или отраслевым стандартам, таким как ITU-T (H.266), также называемый "стандартом универсального кодирования видео (VVC)". Более недавний проект VVC-стандарта описывается в работе авторов Bross и др. "Versatile Video Coding (Draft 9)", Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 18-ая конференция: в виде телеконференции, 15-24 апреля 2020 года, JVET-R2001-v8 (далее "VVC-проект 9"). Тем не менее, технологии этого раскрытия не ограничены каким-либо конкретным стандартом кодирования.

[0057] В общем, видеокодер 200 и видеодекодер 300 могут выполнять кодирование кадров на основе блоков. Термин "блок", в общем, означает структуру, включающую в себя данные, которые должны обрабатываться (например, кодироваться, декодироваться или иным образом использоваться в процессе кодирования и/или декодирования). Например, блок может включать в себя двумерную матрицу выборок данных яркости и/или цветности. В общем, видеокодер 200 и видеодекодер 300 могут кодировать видеоданные, представленные в YUV- (например, Y, Cb, Cr) формате. Таким образом, вместо кодирования данных красного цвета, зеленого цвета и синего цвета (RGB) для выборок кадра, видеокодер 200 и видеодекодер 300 могут кодировать компоненты яркости и цветности, при этом компоненты цветности могут включать в себя компоненты цветности оттенков красного цвета и оттенков синего цвета. В некоторых примерах, видеокодер 200 преобразует принимаемые RGB-отформатированные данные в YUV-представление до кодирования, и видеодекодер 300 преобразует YUV-представление в RGB-формат. Альтернативно, модули предварительной и постобработки (не показаны) могут выполнять эти преобразования.

[0058] Это раскрытие сущности, в общем, может означать кодирование (например, кодирование и декодирование) кадров, которое включает в себя процесс кодирования или декодирования данных кадра. Аналогично, это раскрытие может означать кодирование блоков кадра, которое включает в себя процесс кодирования или декодирования данных для блоков, например, прогнозное кодирование и/или остаточное кодирование. Кодированный поток видеобитов, в общем, включает в себя последовательность значений для синтаксических элементов, представляющих решения по кодированию (например, режимы кодирования) и сегментацию кадров на блоки. Таким образом, ссылки на кодирование кадра или блока, в общем, должны пониматься как кодирование значений для синтаксических элементов, формирующих кадр или блок.

[0059] HEVC задает различные блоки, включающие в себя единицы кодирования (CU), единицы прогнозирования (PU) и единицы преобразования (TU). Согласно HEVC, видеокодер (такой как видеокодер 200) сегментирует единицу дерева кодирования (CTU) на CU согласно структуре в виде дерева квадрантов. Таким образом, видеокодер сегментирует CTU и CU на четыре равных неперекрывающихся квадрата, и каждый узел дерева квадрантов имеет либо нуль, либо четыре дочерних узла. Узлы без дочерних узлов могут называться "узлами-листьями", и CU таких узлов-листьев могут включать в себя одну или более PU и/или одну или более TU. Видеокодер дополнительно может сегментировать PU и TU. Например, в HEVC, остаточное дерево квадрантов (RQT) представляет сегментацию TU. В HEVC, PU представляют данные взаимного прогнозирования, в то время как TU представляют остаточные данные. CU, которые внутренне прогнозируются, включают в себя информацию внутреннего прогнозирования, такую как индикатор внутреннего режима.

[0060] В качестве другого примера, видеокодер 200 и видеодекодер 300 могут быть выполнены с возможностью работать согласно VVC. Согласно VVC, видеокодер (к примеру, видеокодер 200) сегментирует кадр на множество единиц дерева кодирования (CTU). Видеокодер 200 может сегментировать CTU согласно древовидной структуре, такой как структура в виде дерева квадрантов и двоичного дерева (QTBT) или структура в виде многотипного дерева (MTT). QTBT-структура удаляет понятия нескольких типов сегментации, такие как разделение между CU, PU и TU HEVC. QTBT-структура включает в себя два уровня: первый уровень, сегментированный согласно сегментации на основе дерева квадрантов, и второй уровень, сегментированный согласно сегментации на основе двоичного дерева. Корневой узел QTBT-структуры соответствует CTU. Узлы-листья двоичных деревьев соответствуют единицам кодирования (CU).

[0061] В MTT-структуре сегментации, блоки могут сегментироваться с использованием сегмента дерева квадрантов (QT), сегмента двоичного дерева (BT) и одного или более типов сегментов троичного дерева (TT). Сегмент троичного дерева представляет собой сегмент, в котором блок разбивается на три субблока. В некоторых примерах, сегмент троичного дерева разделяет блок на три субблока без разделения исходного блока по центру. Типы сегментации в MTT (например, QT, BT и TT) могут быть симметричными или асимметричными.

[0062] В некоторых примерах, видеокодер 200 и видеодекодер 300 могут использовать одну QTBT- или MTT-структуру для того, чтобы представлять каждый из компонентов яркости и цветности, в то время как в других примерах, видеокодер 200 и видеодекодер 300 могут использовать две или более QTBT- или MTT-структур, к примеру, одну QTBT/MTT-структуру для компонента яркости и другую QTBT/MTT-структуру для обоих компонентов цветности (либо две QTBT/MTT-структуры для соответствующих компонентов цветности).

[0063] Видеокодер 200 и видеодекодер 300 могут быть выполнены с возможностью использовать сегментацию на основе дерева квадрантов согласно HEVC, QTBT-сегментацию, MTT-сегментацию либо другие структуры сегментации. Для целей пояснения, описание технологий этого раскрытия представляется относительно QTBT-сегментации. Тем не менее, следует понимать, что технологии этого раскрытия также могут применяться к видеокодерам, выполненным с возможностью использовать также сегментацию на основе дерева квадрантов или другие типы сегментации.

[0064] Это раскрытие может использовать "NxN" и "N на N" взаимозаменяемо, чтобы ссылаться на размеры в выборках блока (к примеру, CU или другого видеоблока) с точки зрения размеров по вертикали и горизонтали, например, на выборки 16×16 или выборки 16 на 16. В общем, CU 16×16 должна иметь 16 пикселов в вертикальном направлении (y=16) и 16 пикселов в горизонтальном направлении (x=16). Аналогично, CU NxN, в общем, имеет N выборок в вертикальном направлении и N выборок в горизонтальном направлении, при этом N представляет неотрицательное целочисленное значение. Выборки в CU могут размещаться в строках и столбцах. Кроме того, CU не обязательно должны иметь идентичное число выборок в горизонтальном направлении и в вертикальном направлении. Например, CU могут содержать NxM выборок, причем M не обязательно равно N.

[0065] Видеокодер 200 кодирует видеоданные для CU, представляющих информацию прогнозирования и/или остаточную информацию и другую информацию. Информация прогнозирования указывает то, как CU должна прогнозироваться, чтобы формировать блок прогнозирования для CU. Остаточная информация, в общем, представляет последовательные выборочные разности между выборками CU до кодирования и прогнозным блоком.

[0066] Чтобы прогнозировать CU, видеокодер 200, в общем, может формировать прогнозный блок для CU через взаимное прогнозирование или внутреннее прогнозирование. Взаимное прогнозирование, в общем, означает прогнозирование CU из данных ранее кодированного кадра, тогда как внутреннее прогнозирование, в общем, означает прогнозирование CU из ранее кодированных данных идентичного кадра. Чтобы выполнять взаимное прогнозирование, видеокодер 200 может формировать прогнозный блок с использованием одного или более векторов движения. Видеокодер 200, в общем, может выполнять поиск движения для того, чтобы идентифицировать опорный блок, который тесно совпадает с CU, например, с точки зрения разностей между CU и опорным блоком. Видеокодер 200 может вычислять разностный показатель с использованием суммы абсолютных разностей (SAD), суммы квадратов разности (SSD), средней абсолютной разности (MAD), среднеквадратических разностей (MSD) или других таких вычислений разности, чтобы определять то, совпадает или нет опорный блок тесно с текущей CU. В некоторых примерах, видеокодер 200 может прогнозировать текущую CU с использованием однонаправленного прогнозирования или двунаправленного прогнозирования.

[0067] VVC также может предоставлять аффинный режим компенсации движения, который может считаться режимом взаимного прогнозирования. В аффинном режиме компенсации движения, видеокодер 200 может определять два или более векторов движения, которые представляют непоступательное движение в пространстве, такое как увеличение или уменьшение масштаба, вращение, перспективное движение или другие типы нерегулярного движения.

[0068] Чтобы выполнять внутреннее прогнозирование, видеокодер 200 может выбирать режим внутреннего прогнозирования для того, чтобы формировать прогнозный блок. VVC может предоставлять шестьдесят семь режимов внутреннего прогнозирования, включающих в себя различные направленные режимы, а также планарный режим и DC-режим. В общем, видеокодер 200 выбирает режим внутреннего прогнозирования, который описывает соседние выборки относительно текущего блока (например, блока CU), из которых можно прогнозировать выборки текущего блока. Такие выборки, в общем, могут находиться выше, выше и слева или слева от текущего блока в идентичном кадре с текущим блоком, при условии, что видеокодер 200 кодирует CTU и CU в порядке растрового сканирования (слева направо, сверху вниз).

[0069] Видеокодер 200 кодирует данные, представляющие режим прогнозирования для текущего блока. Например, для режимов взаимного прогнозирования, видеокодер 200 может кодировать данные, представляющие то, какой из различных доступных режимов взаимного прогнозирования используется, а также информацию движения для соответствующего режима. Для однонаправленного или двунаправленного взаимного прогнозирования, например, видеокодер 200 может кодировать векторы движения с использованием усовершенствованного прогнозирования векторов движения (AMVP) или режима объединения. Видеокодер 200 может использовать аналогичные режимы для того, чтобы кодировать векторы движения для аффинного режима компенсации движения.

[0070] После прогнозирования, такого как внутреннее прогнозирование или взаимное прогнозирование блока, видеокодер 200 может вычислять остаточные данные для блока. Остаточные данные, такие как остаточный блок, представляют последовательные выборочные разности между блоком и блоком прогнозирования для блока, сформированные с использованием соответствующего режима прогнозирования. Видеокодер 200 может применять одно или более преобразований к остаточному блоку для того, чтобы формировать преобразованные данные в области преобразования вместо выборочной области. Например, видеокодер 200 может применять дискретное косинусное преобразование (DCT), целочисленное преобразование, вейвлет-преобразование или концептуально аналогичное преобразование к остаточным видеоданным. Дополнительно, видеокодер 200 может применять вторичное преобразование после первого преобразования, такое как зависимое от режима неразделимое вторичное преобразование (MDNSST), зависимое от сигнала преобразование, преобразование Карунена-Лоэва (KLT) и т.п. Видеокодер 200 формирует коэффициенты преобразования после применения одного или более преобразований.

[0071] Как отмечено выше, после преобразований для того, чтобы формировать коэффициенты преобразования, видеокодер 200 может выполнять квантование коэффициентов преобразования. Квантование, в общем, означает процесс, в котором коэффициенты преобразования квантуются, чтобы, возможно, уменьшать объем данных, используемых для того, чтобы представлять коэффициенты, обеспечивая дополнительное сжатие. Посредством выполнения процесса квантования, видеокодер 200 может уменьшать битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Например, видеокодер 200 может округлять n-битовое значение в меньшую сторону до m-битового значения во время квантования, где n больше m. В некоторых примерах, для того чтобы выполнять квантование, видеокодер 200 может выполнять побитовый сдвиг вправо значения, которое должно квантоваться.

[0072] После квантования, видеокодер 200 может сканировать коэффициенты преобразования, формирующие одномерный вектор, из двумерной матрицы, включающей в себя квантованные коэффициенты преобразования. Сканирование может проектироваться с возможностью размещать коэффициенты с более высокой энергией (и в силу этого с более низкой частотой) в начале вектора и размещать коэффициенты с более низкой энергией (и в силу этого с более высокой частотой) в конце вектора. В некоторых примерах, видеокодер 200 может использовать предварительно заданный порядок сканирования для того, чтобы сканировать квантованные коэффициенты преобразования, с тем чтобы формировать преобразованный в последовательную форму вектор, и затем энтропийно кодировать квантованные коэффициенты преобразования вектора. В других примерах, видеокодер 200 может выполнять адаптивное сканирование. После сканирования квантованных коэффициентов преобразования для того, чтобы формировать одномерный вектор, видеокодер 200 может энтропийно кодировать одномерный вектор, например, согласно контекстно-адаптивному двоичному арифметическому кодированию (CABAC). Видеокодер 200 также может энтропийно кодировать другие синтаксические элементы, описывающие метаданные, ассоциированные с кодированными видеоданными, для использования посредством видеодекодера 300 при декодировании видеоданных.

[0073] Чтобы выполнять CABAC, видеокодер 200 может назначать контекст в контекстной модели символу, который должен передаваться. Контекст может быть связан, например, с тем, являются соседние значения символа нульзначными или нет. Определение вероятности может быть основано на контексте, назначаемом символу.

[0074] Видеокодер 200 дополнительно может формировать синтаксические данные, к примеру, синтаксические данные на основе блоков, синтаксические данные на основе кадров и синтаксические данные на основе последовательностей, в видеодекодер 300, например, в заголовке кадра, заголовке блока, заголовке среза, либо другие синтаксические данные, к примеру, набор параметров последовательности (SPS), набор параметров кадра (PPS) или набор параметров видео (VPS). Видеодекодер 300 аналогично может декодировать такие синтаксические данные для того, чтобы определять то, как декодировать соответствующие видеоданные.

[0075] Таким образом, видеокодер 200 может формировать поток битов, включающий в себя кодированные видеоданные, например, синтаксические элементы, описывающие сегментацию кадра на блоки (например, CU), и информацию прогнозирования и/или остаточную информацию для блоков. В конечном счете, видеодекодер 300 может принимать поток битов и декодировать кодированные видеоданные.

[0076] В общем, видеодекодер 300 выполняет взаимообратный процесс относительно процесса, выполняемого посредством видеокодера 200, чтобы декодировать кодированные видеоданные потока битов. Например, видеодекодер 300 может декодировать значения для синтаксических элементов потока битов с использованием CABAC способом, практически аналогичным, хотя и взаимообратным, относительно процесса CABAC-кодирования видеокодера 200. Синтаксические элементы могут задавать сегментацию информации кадра на CTU и сегментацию каждой CTU согласно соответствующей структуре сегментации, такой как QTBT-структура, чтобы задавать CU CTU. Синтаксические элементы дополнительно могут задавать информацию прогнозирования и остаточную информацию для блоков (например, CU) видеоданных.

[0077] Остаточная информация может представляться, например, посредством квантованных коэффициентов преобразования. Видеодекодер 300 может обратно квантовать и обратно преобразовывать квантованные коэффициенты преобразования блока для того, чтобы воспроизводить остаточный блок для блока. Видеодекодер 300 использует передаваемый в служебных сигналах режим прогнозирования (внутреннее или взаимное прогнозирование) и связанную информацию прогнозирования (например, информацию движения для взаимного прогнозирования) для того, чтобы формировать прогнозный блок для блока. Видеодекодер 300 затем может комбинировать блок прогнозирования и остаточный блок (на основе каждой выборки), чтобы воспроизводить исходный блок. Видеодекодер 300 может выполнять дополнительную обработку, такую как выполнение процесса удаления блочности, чтобы уменьшать визуальные артефакты вдоль границ блока.

[0078] Как подробнее описано ниже, примерные технологии, описанные в этом раскрытии сущности, связаны с внутренним прогнозированием, к примеру, с прогнозированием во внутреннем DC-режиме. В одном или более примеров, видеокодер (например, видеокодер 200 или видеодекодер 300) может быть выполнен с возможностью определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока. Например, чтобы определять выборки, видеокодер может быть выполнен с возможностью определять множество выборок в несмежной строке или несмежном столбце, имеющем последнюю выборку в несмежной строке, которая находится в столбце, идентичном последнему столбцу текущего блока, или имеющем последнюю выборку в несмежном столбце, которая находится в строке, идентичной последней строке текущего блока. В некоторых примерах, множество выборок в несмежной строке или несмежном столбце могут иметь первую выборку в несмежной строке, которая находится в столбце, идентичном первому столбцу текущего блока, или иметь первую выборку в несмежном столбце, которая находится в строке, идентичной первой строке текущего блока. Таким образом, выборки, используемые для прогнозирования во внутреннем DC-режиме, совмещаются с текущим блоком, даже если выборки находятся в несмежной строке или столбце. Видеокодер может кодировать (например, кодировать или декодировать) текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок.

[0079] Это раскрытие сущности, в общем, может относиться к "передаче в служебных сигналах" определенной информации, такой как синтаксические элементы. Термин "передача служебных сигналов", в общем, может означать передачу значений для синтаксических элементов и/или других данных, используемых для того, чтобы декодировать кодированных видеоданные. Таким образом, видеокодер 200 может передавать в служебных сигналах значения для синтаксических элементов в потоке битов. В общем, передача служебных сигналов означает формирование значения в потоке битов. Как отмечено выше, исходное устройство 102 может транспортировать поток битов в целевое устройство 116 практически в реальном времени или не в реальном времени, к примеру, что может происходить при сохранении синтаксических элементов в устройство 112 хранения данных для последующего извлечения посредством целевого устройства 116.

[0080] Фиг. 2A и 2B является концептуальной схемой, иллюстрирующей примерную структуру 130 в виде дерева квадрантов и двоичного дерева (QTBT) и соответствующую единицу 132 дерева кодирования (CTU). Сплошные линии представляют разбиение на дерево квадрантов, и пунктирные линии указывают разбиение на двоичное дерево. В каждом разбитом (т.е. нелисте) узле двоичного дерева, один флаг передается в служебных сигналах то, чтобы указывать то, какой тип разбиения (т.е. горизонтальное или вертикальное) используется, где 0 указывает горизонтальное разбиение, и 1 указывает вертикальное разбиение в этом примере. Для разбиения на дерево квадрантов, нет необходимости указывать тип разбиения, поскольку узлы дерева квадрантов разбивают блок горизонтально и вертикально на 4 субблока с равным размером. Соответственно, видеокодер 200 может кодировать, и видеодекодер 300 может декодировать синтаксические элементы (к примеру, информацию разбиения) для древовидного уровня области QTBT-структуры 130 (т.е. сплошные линии) и синтаксические элементы (к примеру, информацию разбиения) для древовидного уровня прогнозирования QTBT-структуры 130 (т.е. пунктирные линии). Видеокодер 200 может кодировать, и видеодекодер 300 может декодировать видеоданные, такие как данные прогнозирования и преобразования, для CU, представленных посредством терминальных узлов-листьев QTBT-структуры 130.

[0081] В общем, CTU 132 по фиг. 2B может быть ассоциирована с параметрами, задающими размеры блоков, соответствующих узлам QTBT-структуры 130 на первом и втором уровнях. Эти параметры могут включать в себя CTU-размер (представляющий размер CTU 132 в выборках), минимальный размер дерева квадрантов (MinQTSize, представляющий минимальный разрешенный размер узлов-листьев дерева квадрантов), максимальный размер двоичного дерева (MaxBTSize, представляющий максимальный разрешенный размер корневых узлов двоичного дерева), максимальную глубину двоичного дерева (MaxBTDepth, представляющий максимальную разрешенную глубину двоичного дерева) и минимальный размер двоичного дерева (MinBTSize, представляющий минимальный разрешенный размер узлов-листьев двоичного дерева).

[0082] Корневой узел QTBT-структуры, соответствующей CTU, может иметь четыре дочерних узла на первом уровне QTBT-структуры, каждый из которых может сегментироваться согласно сегментации на основе дерева квадрантов. Таким образом, узлы первого уровня либо представляют собой узлы-листья (имеющие дочерние узлы), либо имеют четыре дочерних узла. Пример QTBT-структуры 130 представляет такие узлы как включающие в себя родительский узел и дочерние узлы, имеющие сплошные линии для ветвей. Если узлы первого уровня не превышают максимальный разрешенный размер корневых узлов двоичного дерева (MaxBTSize), то узлы дополнительно могут сегментироваться посредством соответствующих двоичных деревьев. Разбиение на двоичное дерево одного узла может обрабатываться с помощью итераций до этих пор, до тех пор, пока узлы, получающиеся в результате разбиения, не достигают минимального разрешенного размера узлов-листьев двоичного дерева (MinBTSize) или максимальной разрешенной глубины двоичного дерева (MaxBTDepth). Пример QTBT-структуры 130 представляет такие узлы как имеющие пунктирные линии для ветвей. Узел-лист двоичного дерева называется "единицей кодирования (CU)", которая используется для прогнозирования (например, внутрикадрового или межкадрового прогнозирования) и преобразования, без дальнейшей сегментации. Как пояснено выше, CU также могут называться "видеоблоками" или "блоками".

[0083] В одном примере QTBT-структуры сегментации, CTU-размер задается как 128×128 (выборки сигнала яркости и две соответствующих выборки сигнала цветности 64×64), MinQTSize задается как 16×16, MaxBTSize задается как 64×64, MinBTSize (для ширины и высоты) задается как 4, и MaxBTDepth задается как 4. Сегментация на основе дерева квадрантов применяется к CTU сначала, чтобы формировать узлы-листья дерева квадрантов. Узлы-листья дерева квадрантов могут иметь размер от 16×16 (т.е. от MinQTSize) до 128×128 (т.е. до CTU-размера). Если узел-лист дерева квадрантов представляет собой 128×128, то он не должен дополнительно разбиваться посредством двоичного дерева, поскольку размер превышает MaxBTSize (т.е. 64×64, в этом примере). В противном случае, узел-лист дерева квадрантов дополнительно сегментируется посредством двоичного дерева. Следовательно, узел-лист дерева квадрантов также представляет собой корневой узел для двоичного дерева и имеет глубину двоичного дерева в 0. Когда глубина двоичного дерева достигает MaxBTDepth (4, в этом примере), дополнительное разбиение не разрешается. Когда узел двоичного дерева имеет ширину, равную MinBTSize (4, в этом примере), это подразумевает то, что дополнительное горизонтальное разбиение не разрешается. Аналогично, узел двоичного дерева, имеющий высоту, равную MinBTSize, подразумевает то, что дополнительное вертикальное разбиение не разрешается для этого узла двоичного дерева. Как отмечено выше, узлы-листья двоичного дерева называются "CU" и дополнительно обрабатываются согласно прогнозированию и преобразованию без дополнительной сегментации.

[0084] Фиг. 3 является блок-схемой, иллюстрирующей примерный видеокодер 200, который может выполнять технологии этого раскрытия сущности. Фиг. 3 предоставляется для целей пояснения и не должен считаться ограничением технологий, проиллюстрированных и описанных в общих чертах в этом раскрытии сущности. Для целей пояснения, это раскрытие описывает видеокодер 200 в контексте стандартов кодирования видео, таких как стандарт HEVC-кодирования видео и разрабатываемый стандарт кодирования видео H.266. Тем не менее, технологии этого раскрытия не ограничены этими стандартами кодирования видео и являются, в общем, применимыми к кодированию и декодированию видео.

[0085] В примере по фиг. 3, видеокодер 200 включает в себя запоминающее устройство 230 видеоданных, модуль 202 выбора режима, модуль 204 формирования остатков, модуль 206 обработки преобразования, модуль 208 квантования, модуль 210 обратного квантования, модуль 212 обработки обратного преобразования, модуль 214 восстановления, модуль 216 фильтрации, буфер 218 декодированных кадров (DPB) и модуль 220 энтропийного кодирования. Любое из запоминающего устройства 230 видеоданных, модуля 202 выбора режима, модуля 204 формирования остатков, модуля 206 обработки преобразования, модуля 208 квантования, модуля 210 обратного квантования, модуля 212 обработки обратного преобразования, модуля 214 восстановления, модуля 216 фильтрации, DPB 218 и модуля 220 энтропийного кодирования может реализовываться в одном или более процессоров либо в схеме обработки. Кроме того, видеокодер 200 может включать в себя дополнительные или альтернативные процессоры либо схему обработки для того, чтобы выполнять эти и другие функции.

[0086] Запоминающее устройство 230 видеоданных может сохранять видеоданные, которые должны кодироваться посредством компонентов видеокодера 200. Видеокодер 200 может принимать видеоданные, сохраненные в запоминающем устройстве 230 видеоданных, например, из видеоисточника 104 (фиг. 1). DPB 218 может выступать в качестве запоминающего устройства опорных кадров, которое сохраняет опорные видеоданные для использования при прогнозировании последующих видеоданных посредством видеокодера 200. Запоминающее устройство 230 видеоданных и DPB 218 могут формироваться посредством любых из множества запоминающих устройств, к примеру, как динамическое оперативное запоминающее устройство (DRAM), включающее в себя синхронное DRAM (SDRAM), магниторезистивное RAM (MRAM), резистивное RAM (RRAM) или другие типы запоминающих устройств. Запоминающее устройство 230 видеоданных и DPB 218 могут предоставляться посредством идентичного запоминающего устройства или отдельных запоминающих устройств. В различных примерах, запоминающее устройство 230 видеоданных может быть внутримикросхемным с другими компонентами видеокодера 200, как проиллюстрировано, или внемикросхемным относительно этих компонентов.

[0087] В этом раскрытии сущности, ссылка на запоминающее устройство 230 видеоданных не должна интерпретироваться как ограниченная запоминающим устройством, внутренним для видеокодера 200, если не описывается конкретно в таком качестве, или запоминающим устройством, внешним для видеокодера 200, если не описывается конкретно в таком качестве. Наоборот, ссылка на запоминающее устройство 230 видеоданных должна пониматься как опорное запоминающее устройство, которое сохраняет видеоданные, которые видеокодер 200 принимает для кодирования (например, видеоданные для текущего блока, который должен кодироваться). Запоминающее устройство 106 по фиг. 1 также может предоставлять временное хранение выводов из различных модулей видеокодера 200.

[0088] Различные модули по фиг. 3 проиллюстрированы для того, чтобы помогать в понимании операций, выполняемых посредством видеокодера 200. Модули могут реализовываться как фиксированные функциональные схемы, программируемые схемы либо комбинация вышеозначенного. Фиксированные функциональные схемы означают схемы, которые предоставляют конкретную функциональность и предварительно установлены в отношении операций, которые могут выполняться. Программируемые схемы означают схемы, которые могут программироваться с возможностью выполнять различные задачи и предоставлять гибкую функциональность в операциях, которые могут выполняться. Например, программируемые схемы могут выполнять программное обеспечение или микропрограммное обеспечение, которое инструктирует программируемым схемам работать способом, заданным посредством инструкций программного обеспечения или микропрограммного обеспечения. Фиксированные функциональные схемы могут выполнять программные инструкции (например, чтобы принимать параметры или выводить параметры), но типы операций, которые выполняют фиксированные функциональные схемы, в общем, являются неизменными. В некоторых примерах, один или более модулей могут представлять собой различные схемные блоки (фиксированные функциональные или программируемые), и в некоторых примерах, один или более модулей могут представлять собой интегральные схемы.

[0089] Видеокодер 200 может включать в себя арифметико-логические устройства (ALU), элементарные функциональные модули (EFU), цифровые схемы, аналоговые схемы и/или программируемые ядра, сформированные из программируемых схем. В примерах, в которых операции видеокодера 200 выполняются с использованием программного обеспечения, выполняемого посредством программируемых схем, запоминающее устройство 106 (фиг. 1) может сохранять объектный код программного обеспечения, которое видеокодер 200 принимает и выполняет, или другое запоминающее устройство в видеокодере 200 (не показано) может сохранять такие инструкции.

[0090] Запоминающее устройство 230 видеоданных выполнено с возможностью сохранять принимаемые видеоданные. Видеокодер 200 может извлекать кадр видеоданных из запоминающего устройства 230 видеоданных и предоставлять видеоданные в модуль 204 формирования остатков и модуль 202 выбора режима. Видеоданные в запоминающем устройстве 230 видеоданных могут представлять собой необработанные видеоданные, которые должны кодироваться.

[0091] Модуль 202 выбора режима включает в себя модуль 222 оценки движения, модуль 224 компенсации движения и модуль 226 внутреннего прогнозирования. Модуль 202 выбора режима может включать в себя дополнительные функциональные модули, чтобы выполнять прогнозирование видео в соответствии с другими режимами прогнозирования. В качестве примера, модуль 202 выбора режима может включать в себя модуль палитровой обработки, модуль внутриблочного копирования (который может представлять собой часть модуля 222 оценки движения и/или модуля 224 компенсации движения), модуль аффинной обработки, модуль обработки на основе линейной модели (LM) и т.п.

[0092] Модуль 202 выбора режима, в общем, координирует несколько проходов кодирования, чтобы тестировать комбинации параметров кодирования и результирующих значений искажения в зависимости от скорости передачи для таких комбинаций. Параметры кодирования могут включать в себя сегментацию CTU на CU, режимы прогнозирования для CU, типы преобразования для остаточных данных CU, параметры квантования для остаточных данных CU и т.д. Модуль 202 выбора режима в конечном счете может выбирать комбинацию параметров кодирования, имеющих значения искажения в зависимости от скорости передачи, которые лучше других тестированных комбинаций.

[0093] Видеокодер 200 может сегментировать кадр, извлеченный из запоминающего устройства 230 видеоданных, на последовательность CTU и инкапсулировать одну или более CTU в срезе. Модуль 202 выбора режима может сегментировать CTU кадра в соответствии с древовидной структурой, такой как QTBT-структура или структура в виде дерева квадрантов HEVC, описанного выше. Как описано выше, видеокодер 200 может формировать одну или более CU из сегментации CTU согласно древовидной структуре. Такая CU также, в общем, может называться "видеоблоком" или "блоком".

[0094] В общем, модуль 202 выбора режима также управляет своими компонентами (например, модулем 222 оценки движения, модулем 224 компенсации движения и модулем 226 внутреннего прогнозирования) таким образом, чтобы формировать блок прогнозирования для текущего блока (например, текущей CU либо, в HEVC, перекрывающейся части PU и TU). Для взаимного прогнозирования текущего блока, модуль 222 оценки движения может выполнять поиск движения для того, чтобы идентифицировать один или более тесно совпадающих опорных блоков в одном или более опорных кадров (например, в одном или более ранее кодированных кадров, сохраненных в DPB 218). В частности, модуль 222 оценки движения может вычислять значение, представляющее то, насколько аналогичным является потенциальный опорный блок относительно текущего блока, например, согласно сумме абсолютных разностей (SAD), сумме квадратов разности (SSD), средней абсолютной разности (MAD), среднеквадратическим разностям (MSD) и т.п. Модуль 222 оценки движения, в общем, может выполнять эти вычисления с использованием последовательных выборочных разностей между текущим блоком и рассматриваемым опорным блоком. Модуль 222 оценки движения может идентифицировать опорный блок, имеющий наименьшее значение, получающееся в результате этих вычислений, указывающее опорный блок, который наиболее тесно совпадает с текущим блоком.

[0095] Модуль 222 оценки движения может формировать один или более векторов движения (MV), которые задают позиции опорных блоков в опорных кадрах относительно позиции текущего блока в текущем кадре. Модуль 222 оценки движения затем может предоставлять векторы движения в модуль 224 компенсации движения. Например, для однонаправленного взаимного прогнозирования, модуль 222 оценки движения может предоставлять один вектор движения, тогда как для двунаправленного взаимного прогнозирования, модуль 222 оценки движения может предоставлять два вектора движения. Модуль 224 компенсации движения затем может формировать блок прогнозирования с использованием векторов движения. Например, модуль 224 компенсации движения может извлекать данные опорного блока с использованием вектора движения. В качестве другого примера, если вектор движения имеет точность в дробную часть выборки, модуль 224 компенсации движения может интерполировать значения для блока прогнозирования согласно одному или более интерполяционных фильтров. Кроме того, для двунаправленного взаимного прогнозирования, модуль 224 компенсации движения может извлекать данные для двух опорных блоков, идентифицированных посредством соответствующих векторов движения, и комбинировать извлеченные данные, например, посредством последовательного выборочного усреднения или усреднения со взвешиванием.

[0096] В качестве другого примера, для внутреннего прогнозирующего кодирования или внутреннего прогнозирующего кодирования, модуль 226 внутреннего прогнозирования может формировать блок прогнозирования из выборок, соседних с текущим блоком. Например, для направленных режимов, модуль 226 внутреннего прогнозирования, в общем, может математически комбинировать значения соседних выборок и заполнять эти вычисленные значения в заданном направлении для текущего блока для того, чтобы формировать блок прогнозирования. В качестве другого примера, для прогнозирования во внутреннем DC-режиме, модуль 226 внутреннего прогнозирования может вычислять среднее соседних выборок по отношению к текущему блоку и формировать блок прогнозирования, который включает в себя это результирующее среднее для каждой выборки блока прогнозирования.

[0097] В одном или более примеров, описанных в этом раскрытии сущности, модуль 226 внутреннего прогнозирования, отдельно или в комбинации с одним или более других компонентов, может быть выполнен с возможностью выполнять одну или более примерных технологий, описанных в этом раскрытии сущности. В качестве одного примера, модуль 202 выбора режима может быть выполнен с возможностью определять то, что текущий блок видеоданных должен прогнозироваться с использованием прогнозирования во внутреннем DC-режиме. В некоторых примерах прогнозирования во внутреннем DC-режиме, выборки, используемые для того, чтобы формировать блок прогнозирования, представляют собой выборки в непосредственно смежной строке (например, в строке непосредственно выше текущего блока) или в столбце (например, в столбце непосредственно слева от текущего блока).

[0098] Тем не менее, в некоторых примерах прогнозирования во внутреннем DC-режиме, выборки могут исходить из несмежных строк и/или несмежных столбцов. Несмежная строка означает строку, которая может находиться выше текущего блока в идентичном кадре, но не представляет собой строку непосредственно выше текущего блока. Несмежный столбец означает столбец, который может находиться слева от текущего блока в идентичном кадре, но не представляет собой столбец непосредственно слева от текущего блока. Примеры несмежных строк и столбцов описываются ниже относительно примеров, проиллюстрированных на фиг. 11-19.

[0099] В качестве части прогнозирования во внутреннем DC-режиме, модуль 202 выбора режима может формировать информацию, указывающую то, какая из несмежной строки и/или несмежного столбца включает в себя выборки, которые могут использоваться для прогнозирования во внутреннем DC-режиме. Например, видеокодер 200 может передавать в служебных сигналах синтаксический элемент, указывающий число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока, или несмежный столбец выборок находится слева от текущего блока.

[0100] В одном или более примеров, модуль 226 внутреннего прогнозирования может быть выполнен с возможностью определять множество выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока. Например, модуль 226 внутреннего прогнозирования может быть выполнен с возможностью определять множество выборок по меньшей мере в одном из несмежной строки выборок, имеющих последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока. Несмежная строка выборок находится более чем на одну строку выше текущего блока. Модуль 226 внутреннего прогнозирования может быть выполнен с возможностью определять несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока. Несмежный столбец выборок находится более чем на один столбец слева от текущего блока. Например, как подробнее описано относительно фиг. 16-19, последняя выборка (например, самая дальняя правая выборка) из множества выборок в несмежной строке может находиться в идентичном столбце (например, иметь идентичную координату X) с последним столбцом (например, дальним правым столбцом) текущего блока, и последняя выборка (например, самая нижняя выборка) из множества выборок в несмежном столбце может находиться в идентичной строке (например, иметь идентичную координату Y) с последней строкой (например, самой нижней строкой) текущего блока.

[0101] В некоторых примерах, как подробнее описано относительно фиг. 16 и 17, первая выборка (например, дальняя правая выборка) из множества выборок в несмежной строке может находиться в идентичном столбце (например, иметь идентичную координату X) с первым столбцом (например, самым дальним левым столбцом) текущего блока. Первая выборка (например, самая верхняя выборка) из множества выборок в несмежном столбце может находиться в идентичной строке (например, иметь идентичную координату Y) с первой строкой (например, самой верхней строкой) текущего блока.

[0102] Таким образом, модуль 226 внутреннего прогнозирования может определять выборки из несмежной строки или столбца, которые должны использоваться для режима внутреннего DC-прогнозирования, которые совмещаются с текущим блоком. Некоторые другие технологии предполагают использование выборок из несмежной строки или столбца, которые не совмещаются с текущим блоком (например, последняя выборка или первая выборка в несмежной строке или столбце не находятся в строке или столбце, идентичной строке или столбцу последней строки или столбца либо первой строки или столбца текущего блока). Использование таких выборок из несмежной строки или столбца, которые не совмещаются с текущим блоком, может приводить к большим остаткам по сравнению с использованием выборок из несмежной строки или столбца, которые совмещаются с текущим блоком, и также может требовать дополнительного доступа к запоминающему устройству.

[0103] Как подробнее описано, модуль 204 формирования остатков, наряду с модулем 206 обработки преобразования, модулем 208 квантования и модулем 220 энтропийного кодирования может внутреннее прогнозирование кодировать текущий блок на основе определенных выборок из несмежной строки или столбца. Например, модуль 226 внутреннего прогнозирования может формировать блок прогнозирования с использованием выборок из несмежной строки и/или несмежного столбца. Модуль 204 формирования остатков может определять остаточный блок между блоком прогнозирования и текущим блоком, который может преобразовываться, квантоваться и энтропийно кодироваться посредством модуля 206 обработки преобразования, модуля 208 квантования и модуля 220 энтропийного кодирования, соответственно.

[0104] Модуль 202 выбора режима предоставляет прогнозный блок в модуль 204 формирования остатков. Модуль 204 формирования остатков принимает необработанную некодированную версию текущего блока из запоминающего устройства 230 видеоданных и прогнозный блок из модуля 202 выбора режима. Модуль 204 формирования остатков вычисляет последовательные выборочные разности между текущим блоком и прогнозным блоком. Результирующие последовательные выборочные разности задают остаточный блок для текущего блока. В некоторых примерах, модуль 204 формирования остатков также может определять разности между выборочными значениями в остаточном блоке, чтобы формировать остаточный блок с использованием остаточной дифференциальной импульсно-кодовой модуляции (RDPCM). В некоторых примерах, модуль 204 формирования остатков может формироваться с использованием одной или более схем вычитателя, которые выполняют двоичное вычитание.

[0105] В примерах, в которых модуль 202 выбора режима сегментирует CU на PU, каждая PU может быть ассоциирована с единицей прогнозирования сигналов яркости и соответствующими единицами прогнозирования сигналов цветности. Видеокодер 200 и видеодекодер 300 могут поддерживать PU, имеющие различные размеры. Как указано выше, размер CU может означать размер блока кодирования сигналов яркости CU, и размер PU может означать размер единицы прогнозирования сигналов яркости PU. При условии, что размер конкретной CU составляет 2Nx2N, видеокодер 200 может поддерживать PU-размеры в 2Nx2N или NxN для внутреннего прогнозирования и симметричные PU-размеры в 2Nx2N, 2NxN, Nx2N, NxN или аналогичные для взаимного прогнозирования. Видеокодер 200 и видеодекодер 300 также могут поддерживать асимметричное сегментирование для PU-размеров в 2NxnU, 2NxnD, nLx2N и nRx2N для взаимного прогнозирования.

[0106] В примерах, в которых модуль выбора режима дополнительно не сегментирует CU на PU, каждая CU может быть ассоциирована с блоком кодирования сигналов яркости и соответствующими блоками кодирования сигналов цветности. Как описано выше, размер CU может означать размер блока кодирования сигналов яркости CU. Видеокодер 200 и видеодекодер 300 могут поддерживать CU-размеры в 2Nx2N, 2NxN или Nx2N.

[0107] Для других технологий кодирования видео, таких как кодирование в режиме внутриблочного копирования, кодирование в аффинном режиме и кодирование в режиме на основе линейной модели (LM), в качестве нескольких примеров, модуль 202 выбора режима, через соответствующие модули, ассоциированные с технологиями кодирования, формирует прогнозный блок для кодируемого текущего блока. В некоторых примерах, таких как кодирование в палитровом режиме, модуль 202 выбора режима может не формировать блок прогнозирования и вместо этого формировать синтаксические элементы, которые указывают способ, которым следует восстанавливать блок на основе выбранной палитры. В таких режимах, модуль 202 выбора режима может предоставлять эти синтаксические элементы в модуль 220 энтропийного кодирования для кодирования.

[0108] Как описано выше, модуль 204 формирования остатков принимает видеоданные для текущего блока и соответствующего блока прогнозирования. Модуль 204 формирования остатков затем формирует остаточный блок для текущего блока. Чтобы формировать остаточный блок, модуль 204 формирования остатков вычисляет последовательные выборочные разности между блоком прогнозирования и текущим блоком.

[0109] Модуль 206 обработки преобразования применяет одно или более преобразований к остаточному блоку для того, чтобы формировать блок коэффициентов преобразования (называется в данном документе "блоком коэффициентов преобразования"). Модуль 206 обработки преобразования может применять различные преобразования к остаточному блоку для того, чтобы формировать блок коэффициентов преобразования. Например, модуль 206 обработки преобразования может применять дискретное косинусное преобразование (DCT), направленное преобразование, преобразование Карунена-Лоэва (KLT) или концептуально аналогичное преобразование к остаточному блоку. В некоторых примерах, модуль 206 обработки преобразования может выполнять несколько преобразований для остаточного блока, например, первичное преобразование и вторичное преобразование, такое как вращательное преобразование. В некоторых примерах, модуль 206 обработки преобразования не применяет преобразования к остаточному блоку.

[0110] Модуль 208 квантования может квантовать коэффициенты преобразования в блоке коэффициентов преобразования для того, чтобы формировать блок квантованных коэффициентов преобразования. Модуль 208 квантования может квантовать коэффициенты преобразования блока коэффициентов преобразования согласно значению параметра квантования (QP), ассоциированному с текущим блоком. Видеокодер 200 (например, через модуль 202 выбора режима) может регулировать степень квантования, применяемую к блокам коэффициентов преобразования, ассоциированным с текущим блоком, посредством регулирования QP-значения, ассоциированного с CU. Квантование может вводить потери информации, и в силу этого квантованные коэффициенты преобразования могут иметь меньшую точность, чем исходные коэффициенты преобразования, сформированные посредством модуля 206 обработки преобразования.

[0111] Модуль 210 обратного квантования и модуль 212 обработки обратного преобразования могут применять обратное квантование и обратные преобразования к блоку квантованных коэффициентов преобразования, соответственно, для того чтобы восстанавливать остаточный блок из блока коэффициентов преобразования. Модуль 214 восстановления может формировать восстановленный блок, соответствующий текущему блоку (хотя потенциально с определенной степенью искажения), на основе восстановленного остаточного блока и блока прогнозирования, сформированного посредством модуля 202 выбора режима. Например, модуль 214 восстановления может суммировать выборки восстановленного остаточного блока в соответствующие выборки из блока прогнозирования, сформированного посредством модуля 202 выбора режима, чтобы формировать восстановленный блок.

[0112] Модуль 216 фильтрации может выполнять одну или более операций фильтрации для восстановленных блоков. Например, модуль 216 фильтрации может выполнять операции удаления блочности, чтобы уменьшать артефакты блочности вдоль краев CU. Операции модуля 216 фильтрации могут пропускаться в некоторых примерах.

[0113] Видеокодер 200 сохраняет восстановленные блоки в DPB 218. Например, в примерах, в которых операции модуля 216 фильтрации не требуются, модуль 214 восстановления может сохранять восстановленные блоки в DPB 218. В примерах, в которых операции модуля 216 фильтрации необходимы, модуль 216 фильтрации может сохранять фильтрованные восстановленные блоки в DPB 218. Модуль 222 оценки движения и модуль 224 компенсации движения могут извлекать опорный кадр из DPB 218, сформированного из восстановленных (и потенциально фильтрованных) блоков для того, чтобы взаимно прогнозировать блоки последующих кодированных кадров. Помимо этого, модуль 226 внутреннего прогнозирования может использовать восстановленные блоки в DPB 218 текущего кадра, чтобы внутренне прогнозировать другие блоки в текущем кадре.

[0114] В общем, модуль 220 энтропийного кодирования может энтропийно кодировать синтаксические элементы, принимаемые из других функциональных компонентов видеокодера 200. Например, модуль 220 энтропийного кодирования может энтропийно кодировать блоки квантованных коэффициентов преобразования из модуля 208 квантования. В качестве другого примера, модуль 220 энтропийного кодирования может энтропийно кодировать синтаксические элементы прогнозирования (например, информацию движения для взаимного прогнозирования или информацию внутреннего режима для внутреннего прогнозирования) из модуля 202 выбора режима. Модуль 220 энтропийного кодирования может выполнять одну или более операций энтропийного кодирования для синтаксических элементов, которые представляют собой другой пример видеоданных, чтобы формировать энтропийно кодированные данные. Например, модуль 220 энтропийного кодирования может выполнять операцию контекстно-адаптивного кодирования переменной длины (CAVLC), CABAC-операцию, операцию кодирования переменно-переменной (V2V) длины, операцию синтаксического контекстно-адаптивного двоичного арифметического кодирования (SBAC), операцию энтропийного кодирования на основе сегментирования на интервалы вероятности (PIPE), операцию экспоненциального кодирования кодом Голомба или другой тип операции энтропийного кодирования для данных. В некоторых примерах, модуль 220 энтропийного кодирования может работать в обходном режиме, в котором синтаксические элементы не подвергаются энтропийному кодированию.

[0115] Видеокодер 200 может выводить поток битов, который включает в себя энтропийно кодированные синтаксические элементы, требуемые для того, чтобы восстанавливать блоки среза или кадра. В частности, модуль 220 энтропийного кодирования может выводить поток битов.

[0116] Операции, описанные выше, описываются относительно блока. Такое описание должно пониматься как операции для блока кодирования сигналов яркости и/или блоков кодирования сигналов цветности. Как описано выше, в некоторых примерах, блок кодирования сигналов яркости и блоки кодирования сигналов цветности представляют собой компоненты сигнала яркости и сигнала цветности CU. В некоторых примерах, блок кодирования сигналов яркости и блоки кодирования сигналов цветности представляют собой компоненты сигнала яркости и сигнала цветности PU.

[0117] В некоторых примерах, операции, выполняемые относительно блока кодирования сигналов яркости, не должны повторяться для блоков кодирования сигналов цветности. В качестве одного примера, операции для того, чтобы идентифицировать вектор движения (MV) и опорный кадр для блока кодирования сигналов яркости, не должны повторяться для идентификации MV и опорного кадра для блоков сигналов цветности. Наоборот, MV для блока кодирования сигналов яркости может масштабироваться с возможностью определять MV для блоков сигналов цветности, и опорный кадр может быть идентичным. В качестве другого примера, процесс внутреннего прогнозирования может быть идентичным для блока кодирования сигналов яркости и блоков кодирования сигналов цветности.

[0118] Как описано выше, видеокодер 200 представляет пример устройства, выполненного с возможностью кодировать видеоданные, включающего в себя запоминающее устройство, выполненное с возможностью сохранять видеоданные, и один или более модулей обработки, реализованных в схеме и выполненных с возможностью определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом определение выборок содержит определение множества выборок в несмежной строке или несмежном столбце, имеющем последнюю выборку в несмежной строке, которая находится в столбце, идентичном последнему столбцу текущего блока, или имеющем последнюю выборку в несмежном столбце, которая находится в строке, идентичной последней строке текущего блока. Видеокодер 200 может кодировать текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок.

[0119] Фиг. 4 является блок-схемой, иллюстрирующей примерный видеодекодер 300, который может выполнять технологии этого раскрытия сущности. Фиг. 4 предоставляется для целей пояснения и не представляет собой ограничение технологий, проиллюстрированных и описанных в общих чертах в этом раскрытии сущности. Для целей пояснения, это раскрытие описывает видеодекодер 300 согласно технологиям VVC и HEVC. Тем не менее, технологии этого раскрытия могут выполняться посредством устройств кодирования видео, которые сконфигурированы для других стандартов кодирования видео.

[0120] В примере по фиг. 4, видеодекодер 300 включает в себя буферное запоминающее устройство 320 кодированных кадров (CPB), модуль 302 энтропийного декодирования, модуль 304 обработки прогнозирования, модуль 306 обратного квантования, модуль 308 обработки обратного преобразования, модуль 310 восстановления, модуль 312 фильтрации и буфер 314 декодированных кадров (DPB). Любое из запоминающего CPB-устройства 320, модуля 302 энтропийного декодирования, модуля 304 обработки прогнозирования, модуля 306 обратного квантования, модуля 308 обработки обратного преобразования, модуля 310 восстановления, модуля 312 фильтрации и DPB 314 может реализовываться в одном или более процессоров либо в схеме обработки. Кроме того, видеодекодер 300 может включать в себя дополнительные или альтернативные процессоры либо схему обработки для того, чтобы выполнять эти и другие функции.

[0121] Модуль 304 обработки прогнозирования включает в себя модуль 316 компенсации движения и модуль 318 внутреннего прогнозирования. Модуль 304 обработки прогнозирования может включать в себя дополнительные модули для того, чтобы выполнять прогнозирование в соответствии с другими режимами прогнозирования. В качестве примера, модуль 304 обработки прогнозирования может включать в себя модуль палитровой обработки, модуль внутриблочного копирования (который может составлять часть модуля 316 компенсации движения), модуль аффинной обработки, модуль обработки на основе линейной модели (LM) и т.п. В других примерах, видеодекодер 300 может включать в себя большее, меньшее число или другие функциональные компоненты.

[0122] Запоминающее CPB-устройство 320 может сохранять видеоданные, такие как кодированный поток видеобитов, который должен декодироваться посредством компонентов видеодекодера 300. Видеоданные, сохраненные в запоминающем CPB-устройстве 320, могут получаться, например, из компьютерно-читаемого носителя 110 (фиг. 1). Запоминающее CPB-устройство 320 может включать в себя CPB, который сохраняет кодированные видеоданные (например, синтаксические элементы) из кодированного потока видеобитов. Кроме того, запоминающее CPB-устройство 320 может сохранять видеоданные, отличные от синтаксических элементов кодированного кадра, такие как временные данные, представляющие выводы из различных модулей видеодекодера 300. DPB 314, в общем, сохраняет декодированные кадры, которые видеодекодер 300 может выводить и/или использовать в качестве опорных видеоданных при декодировании последующих данных или кадров кодированного потока видеобитов. Запоминающее CPB-устройство 320 и DPB 314 могут формироваться посредством любого из множества запоминающих устройств, таких как DRAM, включающих в себя SDRAM, MRAM, RRAM или другие типы запоминающих устройств. Запоминающее CPB-устройство 320 и DPB 314 могут предоставляться посредством идентичного запоминающего устройства или отдельных запоминающих устройств. В различных примерах, запоминающее CPB-устройство 320 может быть внутримикросхемным с другими компонентами видеодекодера 300 или внемикросхемным относительно этих компонентов.

[0123] Дополнительно или альтернативно, в некоторых примерах, видеодекодер 300 может извлекать кодированные видеоданные из запоминающего устройства 120 (фиг. 1). Таким образом, запоминающее устройство 120 может сохранять данные, как пояснено выше для запоминающего CPB-устройства 320. Аналогично, запоминающее устройство 120 может сохранять инструкции, которые должны выполняться посредством видеодекодера 300, когда часть или вся функциональность видеодекодера 300 реализуется в программном обеспечении для выполнения посредством схемы обработки видеодекодера 300.

[0124] Различные модули, показанные на фиг. 4, проиллюстрированы для того, чтобы помогать в понимании операций, выполняемых посредством видеодекодера 300. Модули могут реализовываться как фиксированные функциональные схемы, программируемые схемы либо комбинация вышеозначенного. Аналогично фиг. 3, фиксированные функциональные схемы означают схемы, которые предоставляют конкретную функциональность и предварительно установлены в отношении операций, которые могут выполняться. Программируемые схемы означают схемы, которые могут программироваться с возможностью выполнять различные задачи и предоставлять гибкую функциональность в операциях, которые могут выполняться. Например, программируемые схемы могут выполнять программное обеспечение или микропрограммное обеспечение, которое инструктирует программируемым схемам работать способом, заданным посредством инструкций программного обеспечения или микропрограммного обеспечения. Фиксированные функциональные схемы могут выполнять программные инструкции (например, чтобы принимать параметры или выводить параметры), но типы операций, которые выполняют фиксированные функциональные схемы, в общем, являются неизменными. В некоторых примерах, один или более модулей могут представлять собой различные схемные блоки (фиксированные функциональные или программируемые), и в некоторых примерах, один или более модулей могут представлять собой интегральные схемы.

[0125] Видеодекодер 300 может включать в себя ALU, EFU, цифровые схемы, аналоговые схемы и/или программируемые ядра, сформированные из программируемых схем. В примерах, в которых операции видеодекодера 300 выполняются посредством программного обеспечения, выполняющегося в программируемых схемах, внутримикросхемное или внемикросхемное запоминающее устройство может сохранять инструкции (например, объектный код) программного обеспечения, которые принимает и выполняет видеодекодер 300.

[0126] Модуль 302 энтропийного декодирования может принимать кодированные видеоданные из CPB и энтропийно декодировать видеоданные, чтобы воспроизводить синтаксические элементы. Модуль 304 обработки прогнозирования, модуль 306 обратного квантования, модуль 308 обработки обратного преобразования, модуль 310 восстановления и модуль 312 фильтрации могут формировать декодированные видеоданные на основе синтаксических элементов, извлеченных из потока битов.

[0127] В общем, видеодекодер 300 восстанавливает кадр на поблочной основе. Видеодекодер 300 может выполнять операцию восстановления для каждого блока отдельно (причем блок, в данный момент восстанавливаемый, т.е. декодируемый, может называться "текущим блоком").

[0128] Модуль 302 энтропийного декодирования может энтропийно декодировать синтаксические элементы, задающие квантованные коэффициенты преобразования блока квантованных коэффициентов преобразования, а также информацию преобразования, такую как параметр квантования (QP) и/или индикатор(ы) режима преобразования. Модуль 306 обратного квантования может использовать QP, ассоциированный с блоком квантованных коэффициентов преобразования для того, чтобы определять степень квантования и, аналогично, степень обратного квантования для модуля 306 обратного квантования, которая должна применяться. Модуль 306 обратного квантования, например, может выполнять операцию побитового сдвига влево, чтобы обратно квантовать квантованные коэффициенты преобразования. Модуль 306 обратного квантования в силу этого может формировать блок коэффициентов преобразования, включающий в себя коэффициенты преобразования.

[0129] После того, как модуль 306 обратного квантования формирует блок коэффициентов преобразования, модуль 308 обработки обратного преобразования может применять одно или более обратных преобразований к блоку коэффициентов преобразования для того, чтобы формировать остаточный блок, ассоциированный с текущим блоком. Например, модуль 308 обработки обратного преобразования может применять обратное DCT, обратное целочисленное преобразование, обратное преобразование Карунена-Лоэва (KLT), обратное вращательное преобразование, обратное направленное преобразование или другое обратное преобразование к блоку коэффициентов.

[0130] Кроме того, модуль 304 обработки прогнозирования формирует блок прогнозирования согласно синтаксическим элементам с информацией прогнозирования, которые энтропийно декодированы посредством модуля 302 энтропийного декодирования. Например, если синтаксические элементы с информацией прогнозирования указывают то, что текущий блок взаимно прогнозируется, модуль 316 компенсации движения может формировать блок прогнозирования. В этом случае, синтаксические элементы с информацией прогнозирования могут указывать опорный кадр в DPB 314, из которого можно извлекать опорный блок, а также вектор движения, идентифицирующий местоположение опорного блока в опорном кадре относительно местоположения текущего блока в текущем кадре. Модуль 316 компенсации движения, в общем, может выполнять процесс взаимного прогнозирования таким способом, который является практически аналогичным способу, описанному относительно модуля 224 компенсации движения (фиг. 3).

[0131] В качестве другого примера, если синтаксические элементы с информацией прогнозирования указывают то, что текущий блок внутренне прогнозируется, модуль 318 внутреннего прогнозирования может формировать блок прогнозирования согласно режиму внутреннего прогнозирования, указываемому посредством синтаксических элементов с информацией прогнозирования. С другой стороны, модуль 318 внутреннего прогнозирования, в общем, может выполнять процесс внутреннего прогнозирования таким способом, который является практически аналогичным способу, описанному относительно модуля 226 внутреннего прогнозирования (фиг. 3). Модуль 318 внутреннего прогнозирования может извлекать данные соседних выборок по отношению к текущему блоку из DPB 314.

[0132] В одном или более примеров, описанных в этом раскрытии сущности, модуль 318 внутреннего прогнозирования, отдельно или в комбинации с одним или более других компонентов, может быть выполнен с возможностью выполнять одну или более примерных технологий, описанных в этом раскрытии сущности. В качестве одного примера, модуль 304 обработки прогнозирования может быть выполнен с возможностью определять то, что текущий блок видеоданных должен прогнозироваться с использованием прогнозирования во внутреннем DC-режиме использования (например, на основе приема информации, передаваемой в служебных сигналах посредством видеокодера 200, указывающей режим прогнозирования для текущего блока). В некоторых примерах прогнозирования во внутреннем DC-режиме, выборки, используемые для того, чтобы формировать блок прогнозирования, представляют собой выборки в непосредственно смежной строке (например, в строке непосредственно выше текущего блока) или в столбце (например, в столбце непосредственно слева от текущего блока).

[0133] Тем не менее, в некоторых примерах прогнозирования во внутреннем DC-режиме, выборки могут исходить из несмежных строк и/или несмежных столбцов. Несмежная строка означает строку, которая может находиться выше текущего блока в идентичном кадре, но не представляет собой строку непосредственно выше текущего блока. Несмежный столбец означает столбец, который может находиться слева от текущего блока в идентичном кадре, но не представляет собой столбец непосредственно слева от текущего блока. Примеры несмежных строк и столбцов описываются ниже относительно примеров, проиллюстрированных на фиг. 11-19.

[0134] В качестве части прогнозирования во внутреннем DC-режиме, модуль 304 обработки прогнозирования может формировать информацию, указывающую то, какая из несмежной строки и/или несмежного столбца включает в себя выборки, которые могут использоваться для прогнозирования во внутреннем DC-режиме. Например, видеодекодер 300 может принимать синтаксический элемент, указывающий число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока, или несмежный столбец выборок находится слева от текущего блока. Модуль 304 обработки прогнозирования может использовать синтаксический элемент, чтобы определять то, какая несмежная строка и/или несмежный столбец включают в себя выборки, которые используются для прогнозирования во внутреннем DC-режиме текущего блока.

[0135] В одном или более примеров, модуль 318 внутреннего прогнозирования может быть выполнен с возможностью определять множество выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока. Например, модуль 318 внутреннего прогнозирования может быть выполнен с возможностью определять множество выборок по меньшей мере в одном из несмежной строки выборок, имеющих последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока. Несмежная строка выборок находится более чем на одну строку выше текущего блока. Модуль 318 внутреннего прогнозирования может быть выполнен с возможностью определять несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока. Несмежный столбец выборок находится более чем на один столбец слева от текущего блока. Например, как подробнее описано относительно фиг. 16-19, последняя выборка (например, самая дальняя правая выборка) из множества выборок в несмежной строке может находиться в идентичном столбце (например, иметь идентичную координату X) с последним столбцом (например, дальним правым столбцом) текущего блока, и последняя выборка (например, самая нижняя выборка) из множества выборок в несмежном столбце может находиться в идентичной строке (например, иметь идентичную координату Y) с последней строкой (например, самой нижней строкой) текущего блока.

[0136] В некоторых примерах, как подробнее описано относительно фиг. 16 и 17, первая выборка (например, дальняя правая выборка) из множества выборок в несмежной строке может находиться в идентичном столбце (например, иметь идентичную координату X) с первым столбцом (например, самым дальним левым столбцом) текущего блока. Первая выборка (например, самая верхняя выборка) из множества выборок в несмежном столбце может находиться в идентичной строке (например, иметь идентичную координату Y) с первой строкой (например, самой верхней строкой) текущего блока.

[0137] Таким образом, модуль 318 внутреннего прогнозирования может определять выборки из несмежной строки или столбца, которые должны использоваться для режима внутреннего DC-прогнозирования, которые совмещаются с текущим блоком. Некоторые другие технологии предполагают использование выборок из несмежной строки или столбца, которые не совмещаются с текущим блоком (например, последняя выборка или первая выборка в несмежной строке или столбце не находятся в строке или столбце, идентичной строке или столбцу последней строки или столбца либо первой строки или столбца текущего блока). Использование таких выборок из несмежной строки или столбца, которые не совмещаются с текущим блоком, может приводить к большим остаткам по сравнению с использованием выборок из несмежной строки или столбца, которые совмещаются с текущим блоком, и также может требовать считывания дополнительных выборок.

[0138] Как подробнее описано, видеодекодер 300 может быть выполнен с возможностью декодировать текущий блок с использованием режима внутреннего DC-прогнозирования с использованием определенных выборок из несмежной строки или столбца. Например, модуль 318 внутреннего прогнозирования может формировать блок прогнозирования с использованием выборок из несмежной строки и/или несмежного столбца. Как описано выше, модуль 302 энтропийного декодирования, модуль 306 обратного квантования и модуль 308 обработки обратного преобразования могут определять остаточный блок.

[0139] Модуль 310 восстановления может восстанавливать текущий блок с использованием блока прогнозирования и остаточного блока. Например, модуль 310 восстановления может суммировать выборки остаточного блока с соответствующими выборками блока прогнозирования для того, чтобы восстанавливать текущий блок.

[0140] Модуль 312 фильтрации может выполнять одну или более операций фильтрации для восстановленных блоков. Например, модуль 312 фильтрации может выполнять операции удаления блочности, чтобы уменьшать артефакты блочности вдоль краев восстановленных блоков. Операции модуля 312 фильтрации не обязательно выполняются во всех примерах.

[0141] Видеодекодер 300 может сохранять восстановленные блоки в DPB 314. Как пояснено выше, DPB 314 может предоставлять ссылочную информацию, такую как выборки текущего кадра для внутреннего прогнозирования и ранее декодированных кадров для последующей компенсации движения, в модуль 304 обработки прогнозирования. Кроме того, видеодекодер 300 может выводить декодированные кадры из DPB 314 для последующего представления на устройстве отображения, таком как устройство 118 отображения по фиг. 1.

[0142] Таким образом, видеодекодер 300 представляет пример устройства декодирования видео, включающего в себя запоминающее устройство, выполненное с возможностью сохранять видеоданные, и один или более модулей обработки, реализованных в схеме и выполненных с возможностью определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом определение выборок содержит определение множества выборок в несмежной строке или несмежном столбце, имеющем последнюю выборку в несмежной строке, которая находится в столбце, идентичном последнему столбцу текущего блока, или имеющем последнюю выборку в несмежном столбце, которая находится в строке, идентичной последней строке текущего блока. Видеодекодер 300 может быть выполнен с возможностью декодировать текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок.

[0143] Как описано выше, примерные технологии, описанные в этом раскрытии сущности, могут быть связаны с режимом внутреннего прогнозирования. Далее описывается углы внутреннего прогнозирования и широкоугольное внутреннее прогнозирование. Внутреннее прогнозирование заключает в себе режим DC-прогнозирования, режим планарного прогнозирования и направленный (или угловой) режим прогнозирования. Направленное прогнозирование для квадратных блоков использует направления от -135 градусов до 45 градусов текущего блока в тестовой VVC-модели 2 (VTM2), работа авторов J. Chen, Y. Ye, S. Kim "Algorithm description for Versatile Video Coding and Test Model 2 (VTM2)", 11-ая JVET-конференция, Любляна, SI, июль 2018 года, JVET-K1002, как проиллюстрировано на фиг. 5.

[0144] В VTM2, блочная структура, используемая для указания блока прогнозирования для внутреннего прогнозирования, не ограничивается квадратом (ширина w=высота h). Прямоугольные или неквадратные блоки прогнозирования (w>h или w<h) могут увеличивать эффективность кодирования на основе характеристик контента.

[0145] В таких прямоугольных блоках, ограничение направления внутреннего прогнозирования рамками от -135 градусов до 45 градусов может приводить к ситуациям, когда более далекие опорные выборки используются, а не более близкие опорные выборки для внутреннего прогнозирования. Данное проектное решение с большой вероятностью имеет влияние на эффективность кодирования. Может быть более преимущественным иметь диапазон ограничений, ослабленный таким образом, что более близкие опорные выборки (за пределами угла от -135 до 45 градусов) могут использоваться для прогнозирования. Пример такого случая приводится на фиг. 6. Например, фиг. 6 иллюстрирует пример прямоугольного блока 8×4, идентифицированного в качестве текущего блока 500, в котором более близкие опорные выборки не используются (например, такие как опорная выборка 502), но более далекие опорные выборки могут использоваться (например, такие как опорная выборка 504), вследствие ограничения направления внутреннего прогнозирования диапазоном от -135 градусов до 45 градусов.

[0146] VTM2 также использует широкие углы. Один пример широких углов, которые приспосабливаются в VTM2, проиллюстрирован на фиг. 8.

[0147] Во время 12-ой JVET-конференции, модификация широкоугольного внутреннего прогнозирования адаптирована к тестовой VVC-модели 3.0 (VTM3), как описано в следующих документах: работа авторов L. Zhao, X. Zhao, S. Liu, X. Li, "CE3-related: Unification of angular intra prediction for square and non-square blocks",12-ая JVET-конференция, Макао SAR, CN, октябрь 2018 года, JVET-L0279; работа авторов J. Chen, Y. Ye, S. Kim "Algorithm description for Versatile Video Coding and Test Model 3 (VTM3)", 12-ая JVET-конференция, Макао SAR, CN, октябрь 2018 года, JVET-L1002; и работа авторов B. Bross, J. Chen, S. Liu "Versatile Video Coding (Draft 3)", 12-ая JVET-конференция, Макао SAR, CN, октябрь 2018 года, JVET-L1001.

[0148] Это приспособление широкоугольного внутреннего прогнозирования включает в себя две модификации, чтобы унифицировать угловое внутреннее прогнозирование для квадратных и неквадратных блоков. Во-первых, направления углового прогнозирования модифицируются, чтобы покрывать диагональные направления всех форм блоков. Во-вторых, все угловые направления остаются в пределах диапазона между левым нижним диагональным направлением и правым верхним диагональным направлением для всех соотношений сторон блоков (квадратных и неквадратных), как проиллюстрировано на фиг. 7A-7C. Фиг. 7A иллюстрирует, что квадратный блок (например, единица 602 кодирования) не требует повторного преобразования угловых режимов (например, угловые направления между диагональным направлением 604 и диагональным направлением 606 доступны). Фиг. 7B иллюстрирует повторное преобразование угловых режимов для горизонтального неквадратного блока (например, единицы 612 кодирования). Например, может быть предусмотрено преобразование режимов для задания режима A и режима B, которые находятся за пределами диагонального направления 614, в диагональном направлении 614 и диагональном направлении 616. Фиг. 7C иллюстрирует угловое повторное преобразование для вертикального неквадратного блока (например, единицы 622 кодирования). Например, может быть предусмотрено преобразование режимов для задания режима A и режима B, которые находятся за пределами диагонального направления 624, в диагональном направлении 624 и диагональном направлении 626.

[0149] Помимо этого, число опорных выборок в верхней опорной строке и в левом опорном столбце ограничивается 2*ширина+1 и 2*высота+1 для всех форм блоков. Иллюстрация более широких углов, которые приспосабливаются в VTM3, предоставляется на фиг. 9 (например, относительно фиг. 8). Хотя VTM3 задает 95 режимов, для любого размера блока, могу разрешаться только 67 режимов. Точные режимы, которые разрешаются, зависят от отношения ширины блока в высоту. Разрешение точных режимов осуществляется посредством ограничения диапазона режима для определенных размеров блоков.

[0150] Фиг. 10 указывает таблицу преобразования между predModeIntra и угловым параметром intraPredAngle внутреннего прогнозирования в VTM3, как описано в JVET-L1001. Угловые режимы, соответствующие диагональным режимам для неквадратных блоков, вертикальным и горизонтальным режимам и диагональным режимам для квадратных блоков, используются. На фиг. 10, угловые режимы с положительным значением intraPredAngle упоминаются как положительные угловые режимы (индекс режима <18 или>50), в то время как угловые режимы с отрицательным значением intraPredAngle упоминаются как отрицательные угловые режимы (индекс режима>18 и <50).

[0151] Обратный угловой параметр invAngle извлекается на основе intraPredAngle следующим образом:

- invAngle=Round (2-1)

[0152] В некоторых примерах, значения intraPredAngle, которые являются кратными числами 32 (0, 32, 64, 128, 256, 512), могут всегда соответствовать прогнозированию из недробных опорных выборок массива, как и в случае в VTM3-спецификации.

Табл. 1

Соотношение сторон блока (ширина/высота) Диагональные режимы 1 (квадратное) 2, 34, 66 2 8, 28, 72 4 12, 24, 76 8 14, 22, 78 16 16, 20, 80 1/2 -6, 40, 60 1/4 -10, 44, 56 1/8 -12, 46, 54 1/16 -14, 48, 52

[0153] Далее описывается прогнозирование на основе нескольких опорных линий. Выборки в окружении блока кодирования используются для внутреннего прогнозирования блока. Типично, линии восстановленных опорных выборок, которые являются ближайшими к левой и верхней границам блока кодирования, используются в качестве опорных выборок для внутреннего прогнозирования. Тем не менее, VVC WD4 также обеспечивает возможность другим выборкам в окружении блока кодирования использоваться в качестве опорных выборок. Фиг. 11 иллюстрирует линии опорных выборок, которые могут использоваться для внутреннего прогнозирования. Для каждого блока кодирования, индекс передается в служебных сигналах, который указывает опорную линию, которая используется.

[0154] В VVC WD4, только опорные линии с MRLIdx, равным 0, 1 и 3, могут использоваться. Индекс для опорной линии, используемой для кодирования блока (значения 0, 1 и 2, указывающие линии с MRLIdx 0, 1 и 3, соответственно), кодируется с усеченным унарным кодовым словом. Планарные и DC-режимы не используются для используемой опорной линии, имеет MRLIdx>0.

[0155] Например, на фиг. 11, для текущего блока 700, модуль 226 внутреннего прогнозирования видеокодера 200 и модуль 318 внутреннего прогнозирования видеодекодера 300 могут определять то, какая строка и столбец включает в себя опорные выборки, которые могут использоваться для внутреннего прогнозирования. На фиг. 11, опорные выборки 702 означают опорные выборки из строк выше текущего блока 700, и опорные выборки 704 означают опорные выборки из столбцов слева от текущего блока 700. Видеокодер 200 может передавать в служебных сигналах синтаксический элемент (например, MRLIdx), указывающий число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока, или несмежный столбец выборок находится слева от текущего блока. Аналогично, видеодекодер 300 может принимать синтаксический элемент (например, MRLIdx), указывающий число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока, или несмежный столбец выборок находится слева от текущего блока. Например, если MRLIdx равен 0, то выборки в строке и столбце непосредственно выше и слева от текущего блока 700 могут использоваться. Если MRLIdx равен 1, то выборки в несмежной строке или несмежном столбце, который находится на две строки выше или на два столбца слева от текущего блока 700, могут использоваться. Если MRLIdx равен 3, то выборки в несмежной строке или несмежном столбце, который находится на четыре строки выше или на четыре столбца слева от текущего блока 700, могут использоваться.

[0156] Далее описывается режим внутреннего DC-прогнозирования. Режим внутреннего DC-прогнозирования представляет собой один из режимов прогнозирования, в котором блок прогнозирования заполняется "DC-значением", которое извлекается из соседних опорных выборок. В VVC, опорные выборки, которые находятся около верхней и левой границ блока, используются для извлечения DC-значения. Точное извлечение зависит от соотношения сторон блока, и извлечение выполняется следующим образом (воспроизведено из раздела 8.4.5.2.11 из JVET WD5):

Вводы в этот процесс представляют собой следующее:

- переменная nTbW, указывающая ширину блока преобразования,

- переменная nTbH, указывающая высоту блока преобразования,

- переменная refIdx, указывающая индекс опорной линии внутреннего прогнозирования,

- соседние выборки p[x][y], с x=-1-refIdx, y=-1-refIdx...nTbH-refIdx-1 и x=-refIdx...nTbW-1-refIdx, y=-1-refIdx.

Выводы этого процесса представляют собой прогнозированные выборки predSamples[x][y], с x=0...nTbW-1, y=0...nTbH-1.

Значения прогнозных выборок predSamples[x][y], с x=0...nTbW-1, y=0...nTbH-1, извлекаются посредством следующих упорядоченных этапов:

1. Переменная dcVal извлекается следующим образом:

- Когда nTbW равна nTbH:

- dcVal=( +(8-114)

+nTbW)>>(Log2(nTbW)+1)

- Когда nTbW больше nTbH:

- dcVal=( +(nTbW>>1))>>Log2(nTbW) (8-115)

- Когда nTbW меньше nTbH:

- dcVal=( +(nTbH>>1))>>Log2(nTbH) (8-116)

2. Прогнозные выборки predSamples[x][y] извлекаются следующим образом:

- predSamples[x][y]=dcVal, с x=0...nTbW-1, y=0...nTbH-1 (8-117)

[0157] Некоторые технологии, используемые для прогнозирования во внутреннем DC-режиме, могут иметь технические проблемы, которые оказывают отрицательное влияние на процесс кодирования. Например, для случаев, в которых непосредственно смежная опорная линия (например, строка или столбец) используется для прогнозирования, т.е. MRLIdx равен 0, DC-значение может вычисляться из выборок, которые находятся выше и слева от текущего блока. Опорные выборки, которые используются, совмещаются с верхней и левой границами текущего блока 706, как показано на фиг. 12.

[0158] Когда MRLIdx превышает 0, опорные выборки (из соответствующей линии (например, строки или столбца)) более не совмещаются с верхней и левой границами текущего блока. Как показано на фиг. 13 и 14, когда MRLIdx>0 (например, что указывает опорные выборки из несмежной строки или столбца), опорные выборки сдвигаются посредством смещения (следовательно, неправильно совмещаются) относительно границ блока. На фиг. 13, MRLIdx равен 1, и как проиллюстрировано, выборки, которые могут использоваться для внутреннего DC-прогнозирования для текущего блока 708, неправильно совмещаются на 1 выборку. На фиг. 14, MRLIdx равен 3, и как проиллюстрировано, выборки, которые могут использоваться для внутреннего DC-прогнозирования для текущего блока 710, неправильно совмещаются на 3 выборки.

[0159] В случаях, если одна или более границ являются небольшими (например, блок 4×4), это неправильное совмещение является более существенным, с перекрытием только одной выборки для MRLIdx=3, как показано на фиг. 15. Например, фиг. 15 иллюстрирует текущий блок 712. В этом случае, неправильное совмещение выборок, используемых для внутреннего прогнозирования текущего блока 712, составляет 3 выборки. Поскольку текущий блок 712 составляет 4×4, как проиллюстрировано на фиг. 15, имеется только одна выборка из выборок в столбце слева от текущего блока, который совмещается с верхней строкой текущего блока 712 и только одна выборка из выборок в строке выше текущего блока, который совмещается с первым столбцом текущего блока 712.

[0160] Такое неправильное совмещение может приводить к менее точному прогнозированию DC-значения и в силу этого к менеее качественному и/или менее оптимальному DC-прогнозированию. Хотя иллюстрации здесь иллюстрируют квадратные блоки, такое неправильное совмещение также происходит в случаях прямоугольных блоков, но для одного направления в VVC (верхнего или левого на основе соотношения сторон).

[0161] Это раскрытие описывает примерные технологии для того, чтобы улучшать проектирование прогнозирования во внутреннем DC-режиме. Примерные технологии могут реализовываться отдельно или вместе. В общем, видеокодер может определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока. Чтобы определять выборки, видеокодер может быть выполнен с возможностью определять множество выборок в несмежной строке или несмежном столбце, имеющем последнюю выборку в несмежной строке, которая находится в столбце, идентичном последнему столбцу текущего блока, или имеющем последнюю выборку в несмежном столбце, которая находится в строке, идентичной последней строке текущего блока.

[0162] Например, как проиллюстрировано на фиг. 16-19, затемненные блоки иллюстрируют опорные выборки из несмежных строк или столбцов (например, несмежных линий) выборок, используемых для прогнозирования во внутреннем DC-режиме (например, внутреннего прогнозирования в DC-режиме). Для несмежной строки, последняя выборка (например, самая дальняя правая) в несмежной строке может находиться в идентичном столбце с последним столбцом кодируемого текущего блока. Для несмежного столбца, последняя выборка (например, самая дальняя нижняя) в несмежном столбце может представлять собой строку, идентичную последней строке кодируемого текущего блока.

[0163] В некоторых примерах, первая выборка (например, самая дальняя левая) в несмежной строке может находиться в идентичном столбце с первым столбцом кодируемого текущего блока. Тем не менее, в некоторых примерах, первая выборка в несмежной строке может находиться в столбце слева от первого столбца кодируемого текущего блока. В некоторых примерах, первая выборка (например, самая дальняя верхняя) в несмежной строке может находиться в идентичной строке с первой строкой кодируемого текущего блока. Тем не менее, в некоторых примерах, первая выборка в несмежном столбце может находиться в строке выше первой строки кодируемого текущего блока.

[0164] Например, видеокодер (например, видеокодер 200 или видеодекодер 300) может быть выполнен с возможностью определять выборки, которые следует использовать для внутреннего DC-прогнозирования для текущего блока 714 по фиг. 16. Чтобы определять выборки, видеокодер может быть выполнен с возможностью определять множество выборок по меньшей мере в одном из несмежной строки выборок (например, строки 716 по фиг. 16), имеющей последнюю выборку 722, которая находится в столбце, идентичном последнему столбцу текущего блока 714, или несмежного столбца выборок (например, столбца 718), имеющего последнюю выборку 726, которая находится в строке, идентичной последней строке текущего блока 714.

[0165] Например, на фиг. 16, выборка 722 представляет собой последнюю выборку из множества выборок 716, которая находится в столбце, идентичном последнему столбцу текущего блока 714, и выборка 726 представляет собой последнюю выборку из множества выборок в столбце 718, который находится в строке, идентичной последней строке текущего блока 714. Может быть предусмотрено больше выборок справа от выборки 722 в строке 716 и больше выборок ниже выборки 726 в столбце 718. Тем не менее, выборки, используемые для внутреннего DC-прогнозирования текущего блока 714, могут не протягиваться вправо от выборки 722 в строке 716 или ниже выборки 726 в столбце 718. На фиг. 16, несмежная строка выборок (например, выборки в строке 716) находится более чем на одну строку выше текущего блока 714, и несмежный столбец выборок (например, выборки в столбце 718) находится более чем на один столбец слева от текущего блока 714.

[0166] Видеокодер может быть выполнен с возможностью кодировать (например, кодировать или декодировать) текущий блок 714 с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок. Например, видеодекодер 300 может быть выполнен с возможностью формировать блок прогнозирования на основе множества выборок, определять остаточный блок, причем остаточный блок указывает разность между текущим блоком 714 и блоком прогнозирования, и восстанавливать текущий блок 714 на основе остаточного блока и блока прогнозирования. Видеокодер 200 может быть выполнен с возможностью формировать блок прогнозирования на основе множества выборок, определять остаточный блок, причем остаточный блок указывает разность между текущим блоком 714 и блоком прогнозирования, и передавать в служебных сигналах информацию, указывающую остаточный блок.

[0167] В вышеприведенном описании, выборка 722 совмещается с последним столбцом текущего блока 714, и выборка 726 совмещается с последней строкой текущего блока 714. В некоторых примерах, несмежная строка выборок (например, строка 716), имеющая последнюю выборку 722, которая находится в столбце, идентичном последнему столбцу текущего блока 714, включает в себя первую выборку 720, которая находится в столбце, идентичном первому столбцу текущего блока 714. Кроме того, в некоторых примерах, несмежный столбец выборок (например, столбец 718), имеющий последнюю выборку 726, которая находится в строке, идентичной последней строке текущего блока 714, включает в себя первую выборку 724, которая находится в строке, идентичной первой строке текущего блока 714. Могут быть предусмотрены выборки слева от выборки 720 и выборки выше выборки 724. Тем не менее, в некоторых примерах, для внутреннего прогнозирования, выборки из строки 716, используемой для прогнозирования во внутреннем DC-режиме, могут быть ограничены выборками, которые совмещаются с самыми левыми столбцами и самыми правыми столбцами текущего блока 714, и выборки из столбца 718, используемого для прогнозирования во внутреннем DC-режиме, могут быть ограничены выборками, которые совмещаются с самым верхним и самыми нижними строками текущего блока 714.

[0168] Текущий блок 714 по фиг. 16 может рассматриваться как первый блок, и текущий блок 728 по фиг. 17 может рассматриваться как второй блок. В некоторых примерах, совмещение выборок текущего блока 728 может быть аналогичным совмещению текущего блока 714; тем не менее, строка и столбец, из которых выборки используются для прогнозирования во внутреннем DC-режиме, могут находиться на еще большем расстоянии от текущего блока 728 по сравнению с текущим блоком 714.

[0169] Например, видеокодер (например, видеокодер 200 или видеодекодер 300) может быть выполнен с возможностью определять выборки, которые следует использовать для внутреннего DC-прогнозирования для текущего блока 728 по фиг. 17. Чтобы определять выборки, видеокодер может быть выполнен с возможностью определять множество выборок по меньшей мере в одном из несмежной строки выборок (например, строки 730 по фиг. 17), имеющей последнюю выборку 736, которая находится в столбце, идентичном последнему столбцу текущего блока 728, или несмежного столбца выборок (например, столбца 732), имеющего последнюю выборку 740, которая находится в строке, идентичной последней строке текущего блока 728.

[0170] Например, на фиг. 17, выборка 736 представляет собой последнюю выборку из множества выборок 730, которая находится в столбце, идентичном последнему столбцу текущего блока 728, и выборка 740 представляет собой последнюю выборку из множества выборок в столбце 732, который находится в строке, идентичной последней строке текущего блока 728. Может быть предусмотрено больше выборок справа от выборки 736 в строке 730 и больше выборок ниже выборки 740 в столбце 732. Тем не менее, выборки, используемые для внутреннего DC-прогнозирования текущего блока 728, могут не протягиваться вправо от выборки 736 в строке 730 или ниже выборки 740 в столбце 732. На фиг. 17, несмежная строка выборок (например, выборки в строке 730) находится более чем на три строки выше текущего блока 728, и несмежный столбец выборок (например, выборки в столбце 732) находится более чем на три столбца слева от текущего блока 728.

[0171] Видеокодер может быть выполнен с возможностью внутреннее прогнозирующее кодировать (например, кодировать или декодировать) текущий блок 728 на основе определенных выборок. Например, видеодекодер 300 может быть выполнен с возможностью формировать блок прогнозирования на основе множества выборок, определять остаточный блок, причем остаточный блок указывает разность между текущим блоком 728 и блоком прогнозирования, и восстанавливать текущий блок 728 на основе остаточного блока и блока прогнозирования. Видеокодер 200 может быть выполнен с возможностью формировать блок прогнозирования на основе множества выборок, определять остаточный блок, причем остаточный блок указывает разность между текущим блоком 728 и блоком прогнозирования, и передавать в служебных сигналах информацию, указывающую остаточный блок.

[0172] В вышеприведенном описании, выборка 736 совмещается с последним столбцом текущего блока 728, и выборка 740 совмещается с последней строкой текущего блока 728. В некоторых примерах, несмежная строка выборок (например, строка 730), имеющая последнюю выборку 736, которая находится в столбце, идентичном последнему столбцу текущего блока 728, включает в себя первую выборку 734, которая находится в столбце, идентичном первому столбцу текущего блока 728. Кроме того, в некоторых примерах, несмежный столбец выборок (например, столбец 732), имеющий последнюю выборку 740, которая находится в строке, идентичной последней строке текущего блока 728, включает в себя первую выборку 738, которая находится в строке, идентичной первой строке текущего блока 728. Могут быть предусмотрены выборки слева от выборки 734 и выборки выше выборки 738. Тем не менее, в некоторых примерах, для внутреннего прогнозирования, выборки из строки 730, используемой для прогнозирования во внутреннем DC-режиме, могут быть ограничены выборками, которые совмещаются с самыми левыми столбцами и самыми правыми столбцами текущего блока 728, и выборки из столбца 732, используемого для прогнозирования во внутреннем DC-режиме, могут быть ограничены выборками, которые совмещаются с самым верхним и самыми нижними строками текущего блока 728.

[0173] В примерах по фиг. 16 и 17, для MRLIdx, большего нуля, видеокодер может использовать опорные выборки, которые совмещаются с границами блоков для DC-прогнозирования. Пусть (x0, y0) обозначает позицию левой верхней выборки текущего блока 714 или текущего блока 728, и nW и nH обозначают ширину и высоту текущего блока 714 или 728, соответственно. Пусть MRLIdx обозначает индекс для опорной линии. Верхние опорные выборки, используемые для DC-прогнозирования, могут включать в себя выборки в следующих местоположениях: (x, y0-MRLIdx-1), где x=x0...x0+nW-1. Левые опорные выборки, используемые для DC-прогнозирования, могут включать в себя выборки в следующих местоположениях: (x0-MRLIdx-1, y), где y=y0...y0+nH-1. Например, опорные выборки, используемые для MRLIdx, равного 1, и MRLIdx, равного 3, показаны на фиг. 16 и 17, соответственно.

[0174] Для MRLIdx, большего нуля, видеокодер может использовать опорные выборки, которые совмещаются с границами блоков для DC-прогнозирования, и помимо этого большее число опорных выборок для более точного прогнозирования. Пусть (x0, y0) обозначает позицию левой верхней выборки текущего блока, и nW и nH обозначают ширину и высоту блока. Пусть MRLIdx обозначает индекс для опорной линии. Верхние опорные выборки, используемые для DC-прогнозирования, могут включать в себя выборки в следующих местоположениях: (x-MRLIdx, y0-MRLIdx-1), где x=x0...x0+nW+MRLIdx-1. Левые опорные выборки, используемые для DC-прогнозирования, включают в себя выборки в следующих местоположениях: (x0-MRLIdx-1, y-MRLIdx), где y=y0...y0+nH+MRLIdx-1. Например, опорные выборки, используемые для MRLIdx, равного 1, и MRLIdx, равного 3, показаны на фиг. 19 с текущим блоком 742 и на фиг. 20 с текущим блоком 744, соответственно.

[0175] В некоторых примерах, опорная выборка в позиции (x0-MRLIdx-1, y0-MRLIdx-1) может использоваться наряду с верхней или левой из обеих верхней и левой опорных выборок при вычислении DC-значения для текущего блока. Видеокодер может использовать среднее взвешенное опорных выборок, причем весовые коэффициенты определяются посредством одного или более следующих коэффициентов: размер блока, соотношение сторон, ширина, высота, MRLIdx, внутренний режим соседних блоков и т.д.

[0176] Пусть valSumTop является суммой вершины опорных выборочных значений текущего блока, используемого для DC-прогнозирования для конкретного MRLIdx. Пусть valSumLeft является суммой опорных выборочных значений слева от текущего блока, используемого для DC-прогнозирования для конкретного MRLIdx. DC-значение, используемое для внутреннего DC-прогнозирования, получается следующим образом: dcVal=(wT*valSumTop+wL*valSumLeft+off)>>sh, где off обозначает смещение и sh, обозначает сдвиг (в некоторых примерах, вышеприведенное вычисление с использованием off и sh может заменяться посредством операции деления); wT и wL являются весовыми коэффициентами, ассоциированными с верхней и левой опорными выборками, и могут извлекаться в качестве функции блочных характеристик. Например, wT и wL может указываться следующим образом:

Весовой коэффициент MRLIdx=0 MRLIdx=1 MRLIdx=3 wT nW>nH?4:((nW<nH)?0:2) nW>nH?3:((nW<nH)?1:2) 2 wL nW<nH?4:((nW>nH)?0:2) nW<nH?3:((nW>nH)?1:2) 2

Значение off и sh может зависеть от значений wT, wL, nW и nH. В вышеприведенном примере, sh=2+((nW>nH)?Log2(nW):(nW<nH?Log2(nH): Log2(2*nW)), off=1<<(sh-1).

[0177] В некоторых примерах, DC-значения, полученные из различных весовых коэффициентов, могут рассматриваться в отдельных DC-режимах. Например, может задаваться множество DC-режимов, причем каждый DC-режим может обращаться к конкретному набору весовых коэффициентов, используемых для верхней и левой опорных выборок. В некоторых примерах, позиции опорных выборок, используемые при вычислении DC-значения, могут рассматриваться в отдельных DC-режимах. Может задаваться множество DC-режимов, причем каждый DC-режим может означать конкретный набор соседних узлов, которые должны использоваться для верхней и левой опорных выборок.

[0178] Следующие справочные материалы также могут предоставлять некоторую информацию для внутреннего прогнозирования: работа авторов S. De Luxán Hernández, H. Schwarz, D. Marpe, T. Wiegand (HHI) "CE3: Line-based intra coding mode", JVET-L0076, работа авторов S. De Luxán Hernández, V. George, J. Ma, T. Nguyen, H. Schwarz, D. Marpe, T. Wiegand (HHI), "CE3: Intra Sub-Partitions Coding Mode", JVET-M0102, работа авторов J. Chen, Y. Ye, S. H. Kim, "Algorithm description for Versatile Video Coding and Test Model 3 (VTM3)", JVET-L1002, Макао, Китай, октябрь 2018 года, работа авторов F. Bossen, K. Misra, "Non-CE3: A unified luma intra mode list construction process", JVET-M0528, и работа авторов J. Yao, J. Zhu, W. Cai, K. Kazui, "Non-CE3: Intra prediction information coding", JVET-M0210.

[0179] Ниже приводится примерная технология, в которой опорные выборки, которые могут использоваться для DC-прогнозирования, совмещаются с верхней и левой границами прогнозированного блока (например, на фиг. 16 и 17). Ниже приводятся предложенные изменения спецификации (например, VVC-проект 5). Двойные скобки ([[...]]) с выделением полужирным указывают удаление/стирание.

8.4.5.2.12. Спецификация режима INTRA_DC внутреннего прогнозирования

Вводы в этот процесс представляют собой следующее:

- переменная nTbW, указывающая ширину блока преобразования,

- переменная nTbH, указывающая высоту блока преобразования,

- переменная refIdx, указывающая индекс опорной линии внутреннего прогнозирования,

- соседние выборки p[x][y], с x=-1-refIdx, y=-1-refIdx...nTbH[[-refIdx]]-1 и x=- refIdx...nTbW-1 [[-refIdx]], y=-1-refIdx.

Выводы этого процесса представляют собой прогнозированные выборки predSamples[x][y], с x=0...nTbW-1, y=0...nTbH-1.

Значения прогнозных выборок predSamples[x][y], с x=0...nTbW-1, y=0...nTbH-1, извлекаются посредством следующих упорядоченных этапов:

3. Переменная dcVal извлекается следующим образом:

- Когда nTbW равна nTbH:

- dcVal=( + +nTbW)>>(Log2(nTbW)+1) (8-114)

- Когда nTbW больше nTbH:

- dcVal=( +(nTbW>>1))>>Log2(nTbW) (8-115)

- Когда nTbW меньше nTbH:

- dcVal=( +(nTbH>>1))>>Log2(nTbH)(8-116)

4. Прогнозные выборки predSamples[x][y] извлекаются следующим образом:

- predSamples[x][y]=dcVal, с x=0...nTbW-1, y=0...nTbH-1 (8-117)

[0180] Фиг. 19 является блок-схемой последовательности операций, иллюстрирующей примерный способ для кодирования текущего блока. Текущий блок может содержать текущую CU. Хотя описывается относительно видеокодера 200 (фиг. 1 и 3), следует понимать, что другие устройства могут быть выполнены с возможностью осуществлять способ, аналогичный способу по фиг. 19. Запоминающее устройство (например, запоминающее устройство 106, запоминающее устройство 230 видеоданных, DPB 218 или некоторое другое запоминающее устройство) может быть выполнено с возможностью сохранять одну или более выборок строк или столбцов, которые являются несмежными относительно текущего блока.

[0181] Схема обработки видеокодера 200 (например, схема обработки включает в себя модуль 226 внутреннего прогнозирования, модуль 202 выбора режима и один или более других компонентов видеокодера 200) может быть выполнена с возможностью определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, причем для того, чтобы определять выборки, схема обработки может быть выполнена с возможностью определять множество выборок по меньшей мере в одном из несмежной строки выборок, имеющих последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок находится более чем на одну строку выше текущего блока, или несмежного столбца выборок, имеющего последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок находится более чем на один столбец слева от текущего блока (800). В некоторых примерах, несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, включает в себя первую выборку, которая находится в столбце, идентичном первому столбцу текущего блока, и/или несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, включает в себя первую выборку, которая находится в строке, идентичной первой строке текущего блока.

[0182] В качестве одного примера, координата для левой верхней выборки текущего блока представляет собой (x0,y0), nW является шириной текущего блока, и nH является высотой текущего блока, и MRLIdx указывает число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока, или несмежный столбец выборок находится слева от текущего блока. Схема обработки видеокодера 200 может быть выполнена с возможностью определять по меньшей мере одно из несмежной строки выборок, имеющих координаты (x, y0-MRLIdx-1), где x=x0...x0+nW-1, или несмежного столбца выборок, имеющего координаты (x0-MRLIdx-1, y), где y=y0...y0+nH-1.

[0183] Схема обработки видеокодера 200 может формировать блок прогнозирования на основе множества выборок (802). Схема обработки видеокодера 200 может определять остаточный блок, указывающий разность между блоком прогнозирования и текущим блоком (804). Схема обработки видеокодера 200 может передавать в служебных сигналах информацию, указывающую остаточный блок (806). Схема обработки видеокодера 200 также может передавать в служебных сигналах синтаксический элемент (например, MRLIdx), указывающий число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока, или несмежный столбец выборок находится слева от текущего блока (808).

[0184] Фиг. 20 является блок-схемой последовательности операций, иллюстрирующей примерный способ для декодирования текущего блока видеоданных. Текущий блок может содержать текущую CU. Хотя описывается относительно видеодекодера 300 (фиг. 1 и 4), следует понимать, что другие устройства могут быть выполнены с возможностью осуществлять способ, аналогичный способу по фиг. 20. Запоминающее устройство (например, запоминающее устройство 120, запоминающее CPB-устройство 320, DPB 314 или некоторое другое запоминающее устройство) может быть выполнено с возможностью сохранять одну или более выборок строк или столбцов, которые являются несмежными относительно текущего блока. Схема обработки видеодекодера 300 может принимать синтаксический элемент (например, MRLIdx), указывающий число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока, или несмежный столбец выборок находится слева от текущего блока (900).

[0185] Схема обработки видеодекодера 300 (например, схема обработки включает в себя модуль 318 внутреннего прогнозирования, модуль 304 обработки прогнозирования и один или более других компонентов видеодекодера 300) может быть выполнена с возможностью определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, причем для того, чтобы определять выборки, схема обработки может быть выполнена с возможностью определять множество выборок по меньшей мере в одном из несмежной строки выборок, имеющих последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок находится более чем на одну строку выше текущего блока, или несмежного столбца выборок, имеющего последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок находится более чем на один столбец слева от текущего блока (902). В некоторых примерах, несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, включает в себя первую выборку, которая находится в столбце, идентичном первому столбцу текущего блока, и/или несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, включает в себя первую выборку, которая находится в строке, идентичной первой строке текущего блока.

[0186] В качестве одного примера, координата для левой верхней выборки текущего блока представляет собой (x0,y0), nW является шириной текущего блока, и nH является высотой текущего блока, и MRLIdx указывает число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока, или несмежный столбец выборок находится слева от текущего блока. Схема обработки видеодекодера 300 может быть выполнена с возможностью определять по меньшей мере одно из несмежной строки выборок, имеющих координаты (x, y0-MRLIdx-1), где x=x0...x0+nW-1, или несмежного столбца выборок, имеющего координаты (x0-MRLIdx-1, y), где y=y0...y0+nH-1.

[0187] Схема обработки видеодекодера 300 может формировать блок прогнозирования на основе множества выборок (904). Схема обработки видеодекодера 300 может определять остаточный блок, указывающий разность между блоком прогнозирования и текущим блоком (906). Схема обработки видеодекодера может восстанавливать текущий блок на основе остаточного блока и блока прогнозирования (908).

[0188] Ниже описываются один или более примеров. Примерные технологии могут использоваться отдельно или в комбинации.

[0189] Пример 1. Способ кодирования видеоданных, при этом способ содержит определение выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом определение выборок содержит определение множества выборок в несмежной строке или несмежном столбце, имеющем последнюю выборку в несмежной строке, которая находится в столбце, идентичном последнему столбцу текущего блока, или имеющем последнюю выборку в несмежном столбце, которая находится в строке, идентичной последней строке текущего блока и внутреннего прогнозирующего кодирования текущий блок на основе определенных выборок.

[0190] Пример 2. Способ по примеру 1, в котором внутреннее прогнозирующее кодирование содержит внутреннее прогнозирующее декодирование текущего блока.

[0191] Пример 3. Способ по примеру 2, в котором внутреннее прогнозирующее декодирование содержит определение блока прогнозирования на основе множества выборок, определение остаточного блока, причем остаточный блок указывает разность между текущим блоком и блоком прогнозирования, и восстановление текущего блока на основе остаточного блока и блока прогнозирования.

[0192] Пример 4. Способ по примеру 1, в котором внутреннее прогнозирующее кодирование содержит внутреннее прогнозирующее кодирование текущего блока.

[0193] Пример 5. Способ по примеру 4, в котором внутреннее прогнозирующее кодирование содержит определение блока прогнозирования на основе множества выборок, определение остаточного блока, причем остаточный блок указывает разность между текущим блоком и блоком прогнозирования, и передачу в служебных сигналах информации, указывающей остаточный блок.

[0194] Пример 6. Способ по любому из примеров 1-5, в котором множество выборок в несмежной строке или несмежном столбце, имеющем последнюю выборку в несмежной строке, которая находится в столбце, идентичном последнему столбцу текущего блока, или имеющем последнюю выборку в несмежном столбце, которая находится в строке, идентичной последней строке текущего блока, содержит множество выборок в несмежной строке или несмежном столбце, имеющем первую выборку в несмежной строке, которая находится в столбце, идентичном первому столбцу текущего блока, или имеющем первую выборку в несмежном столбце, который находится в строке, идентичной первой строке текущего блока.

[0195] Пример 7. Способ по любому из примеров 1-5, в котором множество выборок в несмежной строке или несмежном столбце, имеющем последнюю выборку в несмежной строке, которая находится в столбце, идентичном последнему столбцу текущего блока, или имеющем последнюю выборку в несмежном столбце, которая находится в строке, идентичной последней строке текущего блока, содержит множество выборок в несмежной строке или несмежном столбце, имеющем первую выборку в несмежной строке, которая находится в столбце слева от первого столбца текущего блока, или имеющем первую выборку в несмежном столбце, который находится в строке выше первой строки текущего блока.

[0196] Пример 8. Устройство для кодирования видеоданных, причем устройство содержит запоминающее устройство, выполненное с возможностью сохранять одну или более выборок строк и столбцов, которые являются несмежными относительно текущего блока и видеокодер, содержащий по меньшей мере одну из фиксированной функциональной или программируемой схемы, при этом видеокодер выполнен с возможностью осуществлять способ по любому либо комбинации примеров 1-7.

[0197] Пример 9. Устройство по примеру 8, дополнительно содержащее дисплей, выполненный с возможностью отображать декодированные видеоданные.

[0198] Пример 10. Устройство по примеру 8 и 9, при этом устройство содержит одно или более из камеры, компьютера, мобильного устройства, широковещательного приемного устройства или абонентской приставки.

[0199] Пример 11. Компьютерно-читаемый носитель хранения данных, имеющий сохраненные инструкции, которые при выполнении инструктируют одному или более процессоров осуществлять способ по любому из примеров 1-7.

[0200] Пример 12. Устройство для кодирования видеоданных, причем устройство содержит средство для осуществления способа по любому из примеров 1-7.

[0201] Следует признавать то, что в зависимости от примера, определенные этапы или события любой из технологий, описанных в данном документе, могут выполняться в другой последовательности, могут добавляться, объединяться или вообще исключаться (например, не все описанные этапы или события требуются для практической реализации технологий). Кроме того, в определенных примерах, этапы или события могут выполняться одновременно, например, посредством многопоточной обработки, обработки прерывания или посредством нескольких процессоров, а не последовательно.

[0202] В одном или более примеров, описанные функции могут реализовываться в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или в любой комбинации вышеозначенного. При реализации в программном обеспечении, функции могут сохраняться или передаваться, в качестве одной или более инструкций или кода, по компьютерно-читаемому носителю и выполняться посредством аппаратного модуля обработки. Компьютерно-читаемые носители могут включать в себя компьютерно-читаемые носители хранения данных, которые соответствуют материальному носителю, такие как носители хранения данных, или среды связи, включающие в себя любую среду, которая упрощает перенос компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, компьютерно-читаемые носители, в общем, могут соответствовать (1) материальному компьютерно-читаемому носителю хранения данных, который является энергонезависимым, или (2) среде связи, такой как сигнал или несущая. Носители хранения данных могут представлять собой любые доступные носители, к которым может осуществляться доступ посредством одного или более компьютеров или одного или более процессоров, с тем чтобы извлекать инструкции, код и/или структуры данных для реализации технологий, описанных в этом раскрытии сущности. Компьютерный программный продукт может включать в себя компьютерно-читаемый носитель.

[0203] В качестве примера, а не ограничения, эти компьютерно-читаемые носители хранения данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое устройство хранения данных на оптических дисках, устройство хранения данных на магнитных дисках или другие магнитные устройства хранения, флэш-память либо любой другой носитель, который может использоваться для того, чтобы сохранять требуемый программный код в форме инструкций или структур данных, и к которому можно осуществлять доступ посредством компьютера. Кроме того, любое соединение корректно называть компьютерно-читаемым носителем. Например, если инструкции передаются из веб-узла, сервера или другого удаленного источника с помощью коаксиального кабеля, оптоволоконного кабеля, "витой пары", цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасные, радиопередающие и микроволновые среды, то коаксиальный кабель, оптоволоконный кабель, "витая пара", DSL или беспроводные технологии, такие как инфракрасные, радиопередающие и микроволновые среды, включаются в определение носителя. Тем не менее, следует понимать, что компьютерно-читаемые носители хранения данных и носители хранения данных не включают в себя соединения, несущие, сигналы или другие энергозависимые носители, а вместо этого направлены на энергонезависимые материальные носители хранения данных. Диск (disk) и диск (disc) при использовании в данном документе включают в себя компакт-диск (CD), лазерный диск, оптический диск, универсальный цифровой диск (DVD), гибкий диск и диск Blu-Ray, при этом диски (disk) обычно воспроизводят данные магнитно, тогда как диски (disc) обычно воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также следует включать в число компьютерно-читаемых носителей.

[0204] Инструкции могут выполняться посредством одного или более процессоров, например, одного или более процессоров цифровых сигналов (DSP), микропроцессоров общего назначения, специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA) либо других эквивалентных интегральных или дискретных логических схем. Соответственно, термины "процессор" и "схема обработки", при использовании в данном документе могут означать любую из вышеприведенных структур или любую другую структуру, подходящую для реализации технологий, описанных в данном документе. Помимо этого, в некоторых аспектах функциональность, описанная в данном документе, может предоставляться в пределах специализированных аппаратных и/или программных модулей, выполненных с возможностью кодирования или декодирования либо встроенных в комбинированный кодек. Кроме того, технологии могут полностью реализовываться в одной или более схем или логических элементов.

[0205] Технологии этого раскрытия могут реализовываться в широком спектре устройств или оборудования, в том числе в беспроводном переносном телефоне, в интегральной схеме (IC), или в наборе IC (к примеру, в наборе микросхем). Различные компоненты, модули или блоки описываются в этом раскрытии для того, чтобы подчеркивать функциональные аспекты устройств, выполненных с возможностью осуществлять раскрытые технологии, но необязательно требуют реализации посредством различных аппаратных модулей. Наоборот, как описано выше, различные модули могут комбинироваться в аппаратный модуль кодека или предоставляться посредством набора взаимодействующих аппаратных модулей, включающих в себя один или более процессоров, как описано выше, в сочетании с надлежащим программным обеспечением и/или микропрограммным обеспечением.

[0206] Выше описаны различные примеры. Эти и другие примеры находятся в пределах объема прилагаемой формулы изобретения.

Похожие патенты RU2817294C2

название год авторы номер документа
ПОЗИЦИОННО-ЗАВИСИМОЕ КОМБИНИРОВАНИЕ С ВНУТРЕННИМ ПРОГНОЗИРОВАНИЕМ С ШИРОКОУГОЛЬНЫМ ВНУТРЕННИМ ПРОГНОЗИРОВАНИЕМ 2019
  • Ван Дер Аувера, Герт
  • Рамасубрамониан, Адарш Кришнан
  • Карчевич, Марта
RU2781854C2
КОМБИНАЦИЯ ПОЗИЦИОННО-ЗАВИСИМОГО ИНТРА-ПРЕДСКАЗАНИЯ, РАСШИРЕННАЯ УГЛОВЫМИ РЕЖИМАМИ 2019
  • Ван Дер Аувера, Герт
  • Серегин, Вадим
  • Саид, Амир
  • Карчевич, Марта
RU2785816C2
АФФИННОЕ ЛИНЕЙНОЕ ВЗВЕШЕННОЕ ВНУТРЕННЕЕ ПРОГНОЗИРОВАНИЕ ПРИ КОДИРОВАНИИ ВИДЕО 2020
  • Рамасубрамониан, Адарш Кришнан
  • Ван Дер Аувера, Герт
  • Фам Ван, Луонг
  • Карчевич, Марта
RU2816748C2
ПАЛИТРОВОЕ ПРОГНОЗИРОВАНИЕ ПРИ КОДИРОВАНИИ ВИДЕО НА ОСНОВЕ ПАЛИТР 2014
  • Го Ливэй
  • Карчевич Марта
  • Соле Рохальс Джоэль
  • Джоши Раджан Лаксман
  • Ким Воо-Шик
  • Пу Вэй
RU2641252C2
РЕЖИМ ВЗАИМНО-ВНУТРЕННЕГО ПРОГНОЗИРОВАНИЯ ДЛЯ ВИДЕОДАННЫХ 2020
  • Фам Ван, Луонг
  • Ван Дер Аувера, Герт
  • Рамасубрамониан, Адарш Кришнан
  • Карчевич, Марта
RU2803896C2
СКАНИРОВАНИЕ КОЭФФИЦИЕНТОВ ПРИ КОДИРОВАНИИ ВИДЕО 2012
  • Джоши Раджан Лаксман
  • Соле Рохальс Хоэль
  • Карчевич Марта
  • Чжэн Юньфэй
  • Ван Сянлинь
RU2604421C2
НЕЯВНЫЙ ВЫБОР ПРЕОБРАЗОВАНИЯ ПРИ КОДИРОВАНИИ ВИДЕО 2020
  • Эгылмез, Хилми Энес
  • Саид, Амир
  • Серегин, Вадим
  • Карчевич, Марта
RU2807684C2
КОДИРОВАНИЕ КОЭФФИЦИЕНТОВ ДЛЯ РЕЖИМА ПРОПУСКА ПРЕОБРАЗОВАНИЯ 2020
  • Карчевич, Марта
  • Кобан, Мухаммед Зейд
  • Ван, Хунтао
RU2813008C2
КОДИРОВАНИЕ ФЛАГОВ КОДИРОВАННЫХ БЛОКОВ 2013
  • Го Ливэй
  • Ван Сянлинь
  • Карчевич Марта
RU2627119C2
УКАЗАНИЕ ИСПОЛЬЗОВАНИЯ ПАРАЛЛЕЛЬНОЙ ВОЛНОВОЙ ОБРАБОТКИ В КОДИРОВАНИИ ВИДЕО 2012
  • Ван Е-Куй
  • Кобан Мухаммед Зейд
RU2609073C2

Иллюстрации к изобретению RU 2 817 294 C2

Реферат патента 2024 года ПРОГНОЗИРОВАНИЕ ВО ВНУТРЕННЕМ DC-РЕЖИМЕ ПРИ КОДИРОВАНИИ ВИДЕО

Изобретение относится к кодированию и декодированию видео. Технический результат заключается в повышении эффективности кодирования и декодирования видео. Такой результат обеспечивается за счет определения выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме, если выборки находятся в строке или столбце, которая(ый) не находится непосредственно выше или непосредственно слева от текущего блока. Выборки могут совмещаться с текущим блоком таким образом, что последняя выборка в выборках в строке выше текущего блока находится в столбце, идентичном последнему столбцу текущего блока, и таким образом, что последняя выборка в выборках в столбце слева от текущего блока находится в строке, идентичной последней строке текущего блока. 6 н. и 19 з.п. ф-лы, 1 табл., 24 ил.

Формула изобретения RU 2 817 294 C2

1. Способ декодирования видеоданных, при этом способ содержит этапы, на которых:

- определяют выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом текущий блок содержит первый блок, причем определение выборок содержит этап, на котором определяют множество выборок в по меньшей мере одном из следующего:

несмежной строке выборок, имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок содержит первую несмежную строку выборок и несмежная строка выборок находится более чем на одну строку выше текущего блока, или

несмежном столбце выборок, имеющем последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок содержит первый несмежный столбец выборок и несмежный столбец выборок находится более чем на один столбец слева от текущего блока; и

- декодируют текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок,

- определяют выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, при этом определение выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, содержит этап, на котором определяют множество выборок в по меньшей мере одном из следующего:

второй несмежной строке выборок, имеющей первую выборку, которая находится в первом столбце второго блока, и имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом вторая несмежная строка выборок находится более чем на три строки выше второго блока, или

втором несмежном столбце выборок, имеющем первую выборку, которая находится в первой строке второго блока, и имеющем последнюю выборку, которая находится в строке, идентичной последней строке второго блока, при этом второй несмежный столбец выборок находится более чем на три столбца слева от второго блока; и

- декодируют второй блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока.

2. Способ по п. 1, в котором по меньшей мере одно из следующего:

- несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, включает в себя первую выборку, которая находится в столбце, идентичном первому столбцу текущего блока, или

- несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, включает в себя первую выборку, которая находится в строке, идентичной первой строке текущего блока.

3. Способ по п. 1, дополнительно содержащий этап, на котором

принимают синтаксический элемент, указывающий число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока или несмежный столбец выборок находится слева от текущего блока.

4. Способ по п. 1, в котором координата для левой верхней выборки текущего блока представляет собой (x0, y0), nW является шириной текущего блока, и nH является высотой текущего блока, и MRLIdx указывает число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока или несмежный столбец выборок находится слева от текущего блока, при этом способ дополнительно содержит этап, на котором определяют по меньшей мере одно из следующего:

несмежную строку выборок, имеющую координаты (x, y0-MRLIdx-1), где x=x0...x0+nW-1, или

несмежный столбец выборок, имеющий координаты (x0-MRLIdx-1, y), где y=y0...y0+nH-1.

5. Способ по п. 1, дополнительно содержащий этап, на котором

выполняют среднее взвешенное определенных выборок,

при этом декодирование текущего блока содержит этап, на котором декодируют текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием среднего взвешенного определенных выборок.

6. Способ по п. 1, в котором декодирование содержит этапы, на которых:

- формируют блок прогнозирования на основе множества выборок;

- определяют остаточный блок, причем остаточный блок указывает разность между текущим блоком и блоком прогнозирования; и

- восстанавливают текущий блок на основе остаточного блока и блока прогнозирования.

7. Способ кодирования видеоданных, при этом способ содержит этапы, на которых:

- определяют выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом текущий блок содержит первый блок, причем определение выборок содержит этап, на котором определяют множество выборок в по меньшей мере одном из следующего:

несмежной строке выборок, имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок содержит первую несмежную строку выборок и несмежная строка выборок находится более чем на одну строку выше текущего блока, или

несмежном столбце выборок, имеющем последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок содержит первый несмежный столбец выборок и несмежный столбец выборок находится более чем на один столбец слева от текущего блока; и

- кодируют текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок,

- определяют выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, при этом определение выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, содержит этап, на котором определяют множество выборок в по меньшей мере одном из следующего:

второй несмежной строке выборок, имеющей первую выборку, которая находится в первом столбце второго блока, и имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом вторая несмежная строка выборок находится более чем на три строки выше второго блока, или

втором несмежном столбце выборок, имеющем первую выборку, которая находится в первой строке второго блока, и имеющем последнюю выборку, которая находится в строке, идентичной последней строке второго блока, при этом второй несмежный столбец выборок находится более чем на три столбца слева от второго блока; и

- кодируют второй блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока.

8. Способ по п. 7, в котором по меньшей мере одно из следующего:

несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, включает в себя первую выборку, которая находится в столбце, идентичном первому столбцу текущего блока, или

несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, включает в себя первую выборку, которая находится в строке, идентичной первой строке текущего блока.

9. Способ по п. 7, дополнительно содержащий этап, на котором

передают в служебных сигналах синтаксический элемент, указывающий число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока или несмежный столбец выборок находится слева от текущего блока.

10. Способ по п. 7, в котором координата для левой верхней выборки текущего блока представляет собой (x0, y0), nW является шириной текущего блока, и nH является высотой текущего блока, и MRLIdx указывает число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока или несмежный столбец выборок находится слева от текущего блока, при этом способ дополнительно содержит этап, на котором определяют по меньшей мере одно из следующего:

- несмежную строку выборок, имеющую координаты (x, y0-MRLIdx-1), где x=x0...x0+nW-1, или

- несмежный столбец выборок, имеющий координаты (x0-MRLIdx-1, y), где y=y0...y0+nH-1.

11. Способ по п. 7, дополнительно содержащий этап, на котором

выполняют среднее взвешенное определенных выборок,

при этом кодирование текущего блока содержит этап, на котором кодируют текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием среднего взвешенного определенных выборок.

12. Способ по п. 7, в котором кодирование содержит этапы, на которых:

- формируют блок прогнозирования на основе множества выборок;

- определяют остаточный блок, причем остаточный блок указывает разность между текущим блоком и блоком прогнозирования; и

- передают в служебных сигналах информацию, указывающую остаточный блок.

13. Устройство для декодирования видеоданных, при этом устройство содержит:

- запоминающее устройство, выполненное с возможностью сохранять одну или более выборок строк и столбцов, которые являются несмежными относительно текущего блока; и

- схему обработки, выполненную с возможностью:

определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом текущий блок содержит первый блок, причем для того, чтобы определять выборки, схема обработки выполнена с возможностью определять множество выборок в по меньшей мере одном из следующего:

несмежной строке выборок, имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок содержит первую несмежную строку выборок и несмежная строка выборок находится более чем на одну строку выше текущего блока, или

несмежном столбце выборок, имеющем последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок содержит первый несмежный столбец выборок и несмежный столбец выборок находится более чем на один столбец слева от текущего блока; и

декодировать текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок;

определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, при этом определение выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, содержит этап, на котором определяют множество выборок в по меньшей мере одном из следующего:

второй несмежной строке выборок, имеющей первую выборку, которая находится в первом столбце второго блока, и имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом вторая несмежная строка выборок находится более чем на три строки выше второго блока, или

втором несмежном столбце выборок, имеющем первую выборку, которая находится в первой строке второго блока, и имеющем последнюю выборку, которая находится в строке, идентичной последней строке второго блока, при этом второй несмежный столбец выборок находится более чем на три столбца слева от второго блока; и

декодировать второй блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока.

14. Устройство по п. 13, в котором по меньшей мере одно из следующего:

- несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, включает в себя первую выборку, которая находится в столбце, идентичном первому столбцу текущего блока, или

- несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, включает в себя первую выборку, которая находится в строке, идентичной первой строке текущего блока.

15. Устройство по п. 13, в котором схема обработки выполнена с возможностью

принимать синтаксический элемент, указывающий число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока или несмежный столбец выборок находится слева от текущего блока.

16. Устройство по п. 13, в котором координата для левой верхней выборки текущего блока представляет собой (x0, y0), nW является шириной текущего блока, и nH является высотой текущего блока, и MRLIdx указывает число строк или столбцов, на которое несмежная строка выборок находится выше текущего блока или несмежный столбец выборок находится слева от текущего блока, при этом схема обработки выполнена с возможностью определять по меньшей мере одно из следующего:

- несмежную строку выборок, имеющую координаты (x, y0-MRLIdx-1), где x=x0...x0+nW-1, или

- несмежный столбец выборок, имеющий координаты (x0-MRLIdx-1, y), где y=y0...y0+nH-1.

17. Устройство по п. 13, в котором схема обработки выполнена с возможностью

выполнять среднее взвешенное определенных выборок,

при этом для того, чтобы декодировать текущий блок, схема обработки выполнена с возможностью декодировать текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием среднего взвешенного определенных выборок.

18. Устройство по п. 13, в котором для того, чтобы декодировать, схема обработки выполнена с возможностью:

- формировать блок прогнозирования на основе множества выборок;

- определять остаточный блок, причем остаточный блок указывает разность между текущим блоком и блоком прогнозирования; и

- восстанавливать текущий блок на основе остаточного блока и блока прогнозирования.

19. Устройство по п. 13, дополнительно содержащее дисплей, выполненный с возможностью отображать декодированные видеоданные.

20. Устройство по п. 13, при этом устройство содержит одно или более из камеры, компьютера, мобильного устройства, широковещательного приемного устройства или абонентской приставки.

21. Устройство для кодирования видеоданных, при этом устройство содержит:

- запоминающее устройство, выполненное с возможностью сохранять одну или более выборок строк и столбцов, которые являются несмежными относительно текущего блока; и

- схему обработки, выполненную с возможностью:

определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом текущий блок содержит первый блок, причем для того, чтобы определять выборки, схема обработки выполнена с возможностью определять множество выборок в по меньшей мере одном из следующего:

несмежной строке выборок, имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок содержит первую несмежную строку выборок и несмежная строка выборок находится более чем на одну строку выше текущего блока, или

несмежном столбце выборок, имеющем последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок содержит первый несмежный столбец выборок и несмежный столбец выборок находится более чем на один столбец слева от текущего блока; и

кодировать текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок,

определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, при этом определение выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, содержит этап, на котором определяют множество выборок в по меньшей мере одном из следующего:

второй несмежной строке выборок, имеющей первую выборку, которая находится в первом столбце второго блока, и имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом вторая несмежная строка выборок находится более чем на три строки выше второго блока, или

втором несмежном столбце выборок, имеющем первую выборку, которая находится в первой строке второго блока, и имеющем последнюю выборку, которая находится в строке, идентичной последней строке второго блока, при этом второй несмежный столбец выборок находится более чем на три столбца слева от второго блока; и

кодировать второй блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока.

22. Устройство по п. 21, в котором по меньшей мере одно из следующего:

- несмежная строка выборок, имеющая последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, включает в себя первую выборку, которая находится в столбце, идентичном первому столбцу текущего блока, или

- несмежный столбец выборок, имеющий последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, включает в себя первую выборку, которая находится в строке, идентичной первой строке текущего блока.

23. Устройство по п. 21, в котором для того, чтобы кодировать, схема обработки выполнена с возможностью:

- формировать блок прогнозирования на основе множества выборок;

- определять остаточный блок, причем остаточный блок указывает разность между текущим блоком и блоком прогнозирования; и

- передавать в служебных сигналах информацию, указывающую остаточный блок.

24. Компьютерно-читаемый носитель хранения данных, сохраняющий инструкции, которые при выполнении инструктируют одному или более процессоров:

- определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом текущий блок содержит первый блок, причем инструкции, которые инструктируют одному или более процессоров определять выборки, содержат инструкции, которые инструктируют одному или более процессоров определять множество выборок в по меньшей мере одном из следующего:

несмежной строке выборок, имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок содержит первую несмежную строку выборок и несмежная строка выборок находится более чем на одну строку выше текущего блока, или

несмежном столбце выборок, имеющем последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок содержит первый несмежный столбец выборок и несмежный столбец выборок находится более чем на один столбец слева от текущего блока; и

- декодировать текущий блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок;

- определять выборки, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, при этом определение выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, содержит этап, на котором определяют множество выборок в по меньшей мере одном из следующего:

второй несмежной строке выборок, имеющей первую выборку, которая находится в первом столбце второго блока, и имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом вторая несмежная строка выборок находится более чем на три строки выше второго блока, или

втором несмежном столбце выборок, имеющем первую выборку, которая находится в первой строке второго блока, и имеющем последнюю выборку, которая находится в строке, идентичной последней строке второго блока, при этом второй несмежный столбец выборок находится более чем на три столбца слева от второго блока; и

- декодировать второй блок с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока.

25. Устройство для декодирования видеоданных, при этом устройство содержит:

- средство для определения выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для текущего блока, при этом текущий блок содержит первый блок, причем средство для определения выборок содержит средство для определения множества выборок в по меньшей мере одном из следующего:

несмежной строке выборок, имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом несмежная строка выборок содержит первую несмежную строку выборок и несмежная строка выборок находится более чем на одну строку выше текущего блока, или

несмежном столбце выборок, имеющем последнюю выборку, которая находится в строке, идентичной последней строке текущего блока, при этом несмежный столбец выборок содержит первый несмежный столбец выборок и несмежный столбец выборок находится более чем на один столбец слева от текущего блока; и

- средство для декодирования текущего блока с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок;

- средство для определения выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, при этом средство для определения выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока, содержит средство для определения множества выборок в по меньшей мере одном из следующего:

второй несмежной строке выборок, имеющей первую выборку, которая находится в первом столбце второго блока, и имеющей последнюю выборку, которая находится в столбце, идентичном последнему столбцу текущего блока, при этом вторая несмежная строка выборок находится более чем на три строки выше второго блока, или

втором несмежном столбце выборок, имеющем первую выборку, которая находится в первой строке второго блока, и имеющем последнюю выборку, которая находится в строке, идентичной последней строке второго блока, при этом второй несмежный столбец выборок находится более чем на три столбца слева от второго блока; и

- средство для декодирования второго блока с использованием прогнозирования во внутреннем DC-режиме с использованием определенных выборок, которые следует использовать для прогнозирования во внутреннем DC-режиме для второго блока.

Документы, цитированные в отчете о поиске Патент 2024 года RU2817294C2

WO 2017190288 A1, 09.11.2017
US 20180332284 A1, 15.11.2018
US 20180255295 A1, 06.09.2018
ПОЛУЧЕНИЕ РЕЖИМА ВНУТРЕННЕГО ПРОГНОЗИРОВАНИЯ ДЛЯ ЦВЕТОРАЗНОСТНЫХ ЗНАЧЕНИЙ 2013
  • Гэмей Джеймс Александр
  • Сондерс Николас Ян
  • Шарман Карл Джеймс
  • Силкок Пол Джеймс
RU2603548C2

RU 2 817 294 C2

Авторы

Рамасубрамониан, Адарш Кришнан

Ван Дер Аувера, Герт

Фам Ван, Луонг

Карчевич, Марта

Даты

2024-04-12Публикация

2020-06-19Подача