ПЕРЕКРЕСТНАЯ ССЫЛКА НА СВЯЗАННЫЕ ЗАЯВКИ
Настоящая заявка испрашивает приоритет заявки PCT/CN2019/107594, поданной 24 сентября 2019 г. Раскрытие вышеупомянутой патентной заявки включается в данный документ путем ссылки в полном объеме.
ОБЛАСТЬ ТЕХНИКИ
Варианты осуществления настоящей заявки (раскрытие) в целом относятся к области обработки картинки и, более конкретно, к межуровневому предсказанию.
УРОВЕНЬ ТЕХНИКИ
Видеокодировка (кодирование и декодирование видео) используется в широком диапазоне применений цифрового видео, например, в широковещательном цифровом телевидении, передаче видео через Интернет и мобильные сети, в диалоговых приложениях в реальном времени, таких как видеочат, видеоконференцсвязь, DVD и Blu-Ray диски, системы сбора и редактирования видеоконтента и видеокамеры приложений безопасности.
Объем видеоданных, необходимых для представления даже относительно короткого видео, может быть значительным, что может привести к трудностям, когда эти данные должны передаваться в потоковом режиме или иным образом передаваться по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные, как правило, сжимаются перед тем, как передаваться через современные телекоммуникационные сети. Размер видео также может быть проблемой, когда видео хранится на запоминающем устройстве, поскольку ресурсы памяти могут быть ограничены. Устройства сжатия видео часто используют программное и/или аппаратное обеспечение в источнике для кодировки видеоданных перед передачей или хранением, тем самым уменьшая количество данных, необходимых для представления цифровых видеокартинок. Сжатые данные затем принимаются устройством декомпрессии видео получателя, которое декодирует видеоданные. С ограниченными сетевыми ресурсами и постоянно растущими требованиями к более высокому качеству видео, желательны улучшенные методы сжатия и декомпрессии, которые улучшают степень сжатия с минимальными потерями качества картинки или вообще без таких потерь.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Варианты осуществления настоящей заявки обеспечивают аппаратуры и способы для кодирования и декодирования согласно независимым пунктам формулы изобретения.
Вышеупомянутые и другие цели достигаются изобретением по независимым пунктам формулы изобретения. Дополнительные формы реализации очевидны из зависимых пунктов формулы изобретения, описания и фигур.
Конкретные варианты осуществления изложены в прилагаемых независимых пунктах формулы изобретения, а другие варианты осуществления - в зависимых пунктах формулы изобретения.
Согласно первому аспекту изобретение относится к способу декодирования кодированного битового потока видео. Способ осуществляется декодирующим устройством. Способ включает в себя: получение синтаксического элемента уровня набора параметров последовательности (SPS) из битового потока, при этом синтаксический элемент уровня SPS, равный предустановленному значению, указывает, что SPS не ссылается на набор параметров видео (VPS), и синтаксический элемент уровня SPS, превышающий предустановленное значение, указывает, что SPS ссылается на VPS; получение, поскольку синтаксический элемент уровня SPS больше предустановленного значения, синтаксического элемента с межуровневой поддержкой, указывающего, разрешено ли использование одной или нескольких межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок; и предсказание одной или более кодированных картинок на основании значения синтаксического элемента с межуровневой поддержкой.
При межуровневом предсказании кодированная картинка и опорная картинка кодированной картинки принадлежат разным уровням, при этом разные уровни могут соответствовать разному разрешению, и низкое пространственное разрешение может использоваться в качестве эталона высокого пространственного разрешения. Синтаксический элемент с межуровневой поддержкой указывает, разрешено ли межуровневое предсказание, поэтому синтаксические элементы, относящиеся к межуровневому предсказанию, не должны сигнализироваться, когда синтаксический элемент с межуровневой поддержкой указывает, что межуровневое предсказание отключено, таким образом битовая скорость может быть уменьшена. Кроме того, набор параметров видео (VPS) предназначен для множественных уровней, ни один VPS не обращается к SPS, что означает, что множественные уровни не требуются при декодировании картинок, обращающихся к SPS, другими словами, при декодировании картинок, обращающихся к SPS, используется только один уровень. Межуровневое предсказание не может быть выполнено, когда имеется только один уровень, поэтому отсутствие сигнализации синтаксического элемента с межуровневой поддержкой, когда SPS не обращается к VPS, приведет к дополнительному снижению битовой.
При этом битовый поток представляет собой последовательность битов, формирующих одну или более кодированных видеопоследовательностей (CVS).
При этом кодированная видеопоследовательность (CVS) представляет собой последовательность AU.
При этом кодированная видеопоследовательность уровня (CLVS) представляет собой последовательность PU с одинаковым значением nuh_layer_id.
При этом единица доступа (AU) представляет собой набор PU, принадлежащих разным уровням и содержащих кодированные картинки, ассоциированные с одним и тем же временем для вывода из DPB.
При этом единица картинки (PU) представляет собой набор единиц NAL, которые ассоциированы друг с другом в соответствии с указанным правилом классификации, являются последовательными в порядке декодирования и содержат только одну кодированную картинку.
При этом межуровневая опорная картинка (ILRP) представляет собой картинку в той же AU с текущей картинкой, где nuh_layer_id меньше, чем nuh_layer_id текущей картинки.
При этом SPS представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются к нулю или более полным CLVS.
В возможной форме реализации способа согласно первому аспекту как таковому, где VPS содержит синтаксические элементы, описывающие информацию межуровневого предсказания уровней в кодированной видеопоследовательности (CVS), а SPS содержит синтаксисический элемент уровня SPS и синтаксический элемент с межуровневой поддержкой , причем CVS содержит один или более ILRP и одну или более кодированных картинок.
При этом, когда SPS ссылается на VPS, VPS содержит синтаксические элементы, описывающие информацию межуровневого предсказания уровней, которым принадлежат одна или более ILRP и одна или более кодированных картинок.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией первого аспекта или первого аспекта как такового, в котором предсказание одной или более кодированных картинок на основе значения синтаксического элемента с межуровневой поддержкой содержит: когда значение синтаксического элемента с межуровневой поддержкой, указывающего одну или более межуровневых опорных картинок (ILRP), может использоваться для внешнего предсказания одной или более кодированных картинок, предсказание одной или более кодированных картинок посредством ссылки на одну или более ILRP, при этом одна или более ILRP получаются на основе информации межуровневого предсказания, включенной в VPS, на которую ссылается SPS.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией первого аспекта или первого аспекта как такового, в котором кодированная картинка и ILRP кодированной картинки принадлежат разным уровням.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией первого аспекта или первого аспекта как такового, в котором синтаксический элемент уровня SPS, равный предустановленному значению, дополнительно указывает, что кодированная видеопоследовательность (CVS) содержит кодированные картинки только одного уровня.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией первого аспекта или первого аспекта как такового, предустановленное значение равно 0.
В возможной форме реализации способа в соответствии с любой предыдущей реализацией первого аспекта или первого аспекта как такового, в котором предсказание одной или более кодированных картинок на основе значения синтаксического элемента с межуровневой поддержкой содержит: предсказание одной или более кодированных картинок без ссылки на какую-либо ILRP в случае, если значение синтаксического элемента с межуровневой поддержкой, указывающего одну или более ILRP, не используются для внешнего предсказания одной или более кодированных картинок.
Согласно второму аспекту изобретение относится к способу кодирования кодированного битового потока видео. Способ осуществляется кодирующим устройством. Способ содержит: кодирование синтаксического элемента уровня набора параметров последовательности (SPS) в битовый поток, при этом синтаксический элемент уровня SPS, равный предустановленному значению, указывает, что SPS не ссылается на набор параметров видео (VPS), и синтаксический элемент уровня SPS, превышающий предустановленное значение, указывает, что SPS ссылается на VPS; кодирование, поскольку синтаксический элемент уровня SPS больше, чем предустановленное значение, синтаксического элемента с межуровневой поддержкой в битовый поток, при этом синтаксический элемент с межуровневой поддержкой указывает, разрешены ли одна или более межуровневых опорных картинок (ILRP) для использования для внешнего предсказания одной или более кодированных картинок.
В возможной форме реализации способа согласно второму аспекту как таковому, VPS содержит синтаксические элементы, описывающие информацию межуровневого предсказания уровней в кодированной видеопоследовательности (CVS), а SPS содержит синтаксический элемент уровня SPS и синтаксический элемент с межуровневой поддержкой, при этом CVS содержит одну или более ILRP и одну или более кодированных картинок.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией второго аспекта или второго аспекта как такового, кодированная картинка и ILRP кодированной картинки принадлежат разным уровням.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией второго аспекта или второго аспекта как такового, синтаксический элемент уровня SPS, равный предустановленному значению, дополнительно указывает, что кодированная видеопоследовательность (CVS) содержит кодированные картинки только одного уровня.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией второго аспекта или второго аспекта как такового, предустановленное значение равно 0.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией второго аспекта или второго аспекта как такового, кодирование синтаксического элемента с межуровневой поддержкой в битовый поток содержит: кодирование синтаксического элемента с межуровневой поддержкой, указывающего одна или более ILRP могут использоваться для внешнего предсказания одной или более кодированных картинок в битовом потоке на основании определения, что одна или более ILRP могут использоваться для внешнего предсказания одной или более кодированных картинок.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией второго аспекта или второго аспекта как такового, кодирование синтаксического элемента с межуровневой поддержкой в битовый поток содержит: кодирование синтаксического элемента с межуровневой поддержкой, указывающего, что одна или более ILRP не используется для внешнего предсказания одной или более кодированных картинок в битовый поток на основе определения, что одна или более ILRP не используются для внешнего предсказания одной или более кодированных картинок.
В соответствии с третьим аспектом изобретение относится к декодеру для декодирования кодированного битового потока видео. Декодер содержит: блок получения, сконфигурированный для получения синтаксического элемента уровня набора параметров последовательности (SPS) из битового потока, при этом синтаксический элемент уровня SPS, равный предустановленному значению, указывает, что SPS не ссылается ни на один набор видеопараметров (VPS), а синтаксический элемент уровня SPS, превышающий предустановленное значение, указывает, что SPS ссылается на VPS; блок получения дополнительно сконфигурирован для получения, поскольку синтаксический элемент уровня SPS больше предустановленного значения, синтаксического элемента с межуровневой поддержкой, указывающего, разрешено ли использование одной или нескольких межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок; и модуль предсказания, выполненный с возможностью предсказания одной или более кодированных картинок на основе значения синтаксического элемента с межуровневой поддержкой.
В возможной форме реализации способа в соответствии с третьим аспектом как таковым, VPS содержит синтаксические элементы, описывающие информацию межуровневого предсказания уровней в кодированной видеопоследовательности (CVS), а SPS содержит синтаксический элемент уровня SPS и синтаксический элемент с межуровневой поддержкой, при этом CVS содержит одну или более ILRP и одну или более кодированных картинок.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией третьего аспекта или третьего аспекта как такового блок предсказания сконфигурирован для предсказания, в качестве значения синтаксического элемента с межуровневой поддержкой, определяющего одну или более межуровневых опорных картинок (ILRP), которые разрешено использовать для внешнего предсказания одной или более кодированных картинок, одной или более кодированных картинок посредством ссылки на одну или более ILRP, при этом одну или более ILRP получают на основе информации межуровневого предсказания, включенной в VPS, на которую ссылается SPS.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией третьего аспекта или третьего аспекта как такового, кодированная картинка и ILRP кодированной картинки принадлежат разным уровням.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией третьего аспекта или третьего аспекта как такового, синтаксический элемент уровня SPS, равный предустановленному значению, дополнительно указывает, что кодированная видеопоследовательность (CVS) содержит кодированные картинки только одного уровня.
В возможной форме реализации способа в соответствии с любой предыдущей реализацией третьего аспекта или третьего аспекта как такового, предустановленное значение равно 0.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией третьего аспекта или третьего аспекта как такового блок предсказания сконфигурирован для предсказания одной или более кодированных картинок без ссылки на какую-либо ILRP в случае, если значение синтаксического элемента с межуровневой поддержкой, указывает, что одна или более ILRP не используются для внешнего предсказания одной или более кодированных картинок.
В соответствии с четвертым аспектом изобретение относится к кодеру для кодирования кодированного битового потока видео. Кодер содержит: первый блок кодирования, сконфигурированный для кодирования синтаксического элемента уровня набора параметров последовательности (SPS) в битовый поток, при этом синтаксический элемент уровня SPS, равный предустановленному значению, указывает, что SPS не ссылается на на один набор видеопараметров (VPS), и синтаксический элемент уровня SPS, превышающий предустановленное значение, указывает, что SPS ссылается на VPS; второй блок кодирования, сконфигурированный для кодирования, поскольку синтаксический элемент уровня SPS больше предустановленного значения, синтаксического элемента с межуровневой поддержкой в битовый поток, при этом синтаксический элемент с межуровневой поддержкой указывает, могут ли одна или более межуровневых опорных картинок (ILRP) использоваться для внешнего предсказания одной или более кодированных картинок.
В возможной форме реализации способа в соответствии с четвертым аспектом как таковым кодер дополнительно содержит блок определения, сконфигурированный для определения, превышает ли синтаксический элемент уровня SPS предустановленное значение.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией четвертого аспекта или четвертого аспекта как такового, VPS содержит синтаксические элементы, описывающие информацию межуровневого предсказания уровней в кодированной видеопоследовательности (CVS), и SPS содержит синтаксический элемент уровня SPS и синтаксический элемент с межуровневой поддержкой, при этом CVS содержит одну или более ILRP и одну или более кодированных картинок.
В возможной форме реализации способа согласно любой предыдущей реализации четвертого аспекта или четвертого аспекта как такового, кодированная картинка и ILRP кодированной картинки принадлежат разным уровням.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией четвертого аспекта или четвертого аспекта как такового, синтаксический элемент уровня SPS, равный предустановленному значению, дополнительно указывает, что кодированная видеопоследовательность (CVS) содержит кодированные картинки только одного уровня.
В возможной форме реализации способа в соответствии с любой предыдущей реализацией четвертого аспекта или четвертого аспекта как такового, в котором предустановленное значение равно 0.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией четвертого аспекта или четвертого аспекта как такового, второй блок кодирования сконфигурирован для кодирования синтаксического элемента с межуровневой поддержкой, указывающего, что одна или более ILRP разрешено использовать для внешнего предсказания одной или более кодированных картинок в битовый поток на основании определения, что одну или более ILRP разрешено использовать для внешнего предсказания одной или более кодированных картинок.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией четвертого аспекта или четвертого аспекта как такового, второй блок кодирования сконфигурирован для кодирования синтаксического элемента с межуровневой поддержкой, указывающего, что одна или более ILRP не используются для внешнего предсказания одной или более кодированных картинок в битовый поток на основе определения, что одна или более ILRP не используются для внешнего предсказания одной или более кодированных картинок.
В возможной форме реализации способа в соответствии с любой предшествующей реализацией четвертого аспекта или четвертого аспекта как такового кодер дополнительно содержит блок определения, сконфигурированный для определения разрешено ли использовать одну или более ILRP для внешнего предсказания одной или более кодированных картинок.
Способ согласно первому аспекту изобретения может быть выполнен аппаратурой согласно третьему аспекту изобретения. Дополнительные особенности и формы реализации способа согласно третьему аспекту изобретения соответствуют особенностям и формам реализации аппаратуры согласно первому аспекту изобретения.
Способ согласно второму аспекту изобретения может быть выполнен аппаратурой согласно четвертому аспекту изобретения. Дополнительные особенности и формы реализации способа согласно четвертому аспекту изобретения соответствуют особенностям и формам реализации апаратуры согласно второму аспекту изобретения.
Способ согласно второму аспекту может быть расширен до форм реализации, соответствующих формам реализации первой аппаратуры согласно первому аспекту. Следовательно, форма реализации способа содержит оссобенность(и) соответствующей формы реализации первой аппаратуры.
Преимущества способов согласно второму аспекту такие же, как у соответствующих форм реализации первой аппаратуры согласно первому аспекту.
Согласно пятому аспекту изобретение относится к аппаратуре для декодирования видеопотока, включающей в себя процессор и память. Память хранит инструкции, которые предписывают процессору выполнять способ согласно первому аспекту.
Согласно шестому аспекту изобретение относится к аппаратуре для кодирования видеопотока, включающей в себя процессор и память. Память хранит инструкции, которые заставляют процессор выполнять способ согласно второму аспекту.
Согласно седьмому аспекту предложен считываемый компьютером носитель, на котором хранятся инструкции, которые при исполнении обеспечивают работу одного или более процессоров, выполненных с возможностью кодирования видеоданных. Инструкции побуждают один или более процессоров выполнять способ согласно первому или второму аспекту или любому возможному варианту осуществления первого или второго аспекта.
Согласно восьмому аспекту изобретение относится к компьютерной программе, содержащей программный код для выполнения способа согласно первому или второму аспекту или любому возможному варианту осуществления первого или второго аспекта при исполнении на компьютере.
В соответствии с девятым аспектом изобретение относится к энергонезависимому носителю данных, который включает в себя закодированный битовый поток, декодированный устройством декодирования изображения, причем битовый поток генерируется путем разделения кадра видеосигнала или сигнала изображения на множество блоков, и включает в себя множество синтаксических элементов, при этом множество синтаксических элементов содержит синтаксический элемент с межуровневой поддержкой, указывающий, разрешено ли использовать одну или более межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок при условии что синтаксический элемент уровня SPS больше предустановленного значения, при этом синтаксический элемент уровня SPS, равный предустановленному значению, указывает, что SPS не ссылается на набор параметров видео (VPS), и синтаксический элемент уровня SPS больше предустановленного значения указывает, что SPS ссылается на VPS.
Подробности одного или более вариантов осуществления изложены на прилагаемых чертежах и в нижеследующем описании. Другие особенности, цели и преимущества будут очевидны из описания, чертежей и формулы изобретения.
Кроме того, предусмотрены следующие варианты осуществления.
В одном варианте осуществления предоставляется способ декодирования кодированного битового потока видео, причем способ содержит:
синтаксический анализ первого синтаксического элемента, указывающего, использует ли уровень с индексом i межуровневое предсказание, i является целым числом и i больше 0;
когда первое условие удовлетворено, синтаксический анализ второго синтаксического элемента, указывающего, является ли уровень с индексом j прямым опорным уровнем для уровня с индексом i, где j является целым числом, и j меньше i и больше или равно 0, при этом первое условие содержит первый синтаксический элемент, указывающий, что уровень с индексом i может использовать межуровневое предсказание, и i больше предустановленного значения (например, 1);
предсказание картинки уровня с индексом i на основе значения второго синтаксического элемента.
В одном варианте осуществления способ дополнительно содержит:
когда удовлетворено второе условие, предсказание картинки уровня с индексом i с использованием уровня с индексом j в качестве прямого опорного уровня для уровня с индексом i, где j является целым числом, и j меньше i и больше или равно на 0, при этом второе условие содержит синтаксический элемент, указывающий, что уровень с индексом i может использовать межуровневое предсказание, и i равно предустановленному значению.
В одном варианте осуществления способ дополнительно содержит:
когда второе условие удовлетворено, определение значения второго синтаксического элемента, указывающего, что уровень с индексом j является прямым опорным уровнем для уровня с индексом i.
В одном варианте осуществления картинка уровня с индексом i содержит картинку в уровне с индексом i или картинку, относящуюся к уровню с индексом i.
В одном варианте осуществления предоставляется способ декодирования кодированного битового потока видео, причем способ содержит:
синтаксический анализ синтаксического элемента, указывающего, использует ли уровень с индексом i межуровневое предсказание, i является целым числом и i больше 0;
когда условие удовлетворено, предсказание картинки уровня с индексом i с использованием уровня с индексом j в качестве прямого опорного уровня для уровня с индексом i, где j является целым числом, и j равно i-1, при этом условие содержит синтаксический элемент, указывающий, что уровень с индексом i может использовать межуровневое предсказание.
В одном варианте осуществления картинка уровня с индексом i содержит картинку уровня с индексом i или картинку, относящуюся к уровню с индексом i.
В одном варианте осуществления предоставляется способ декодирования кодированного битового потока видео, содержащий:
анализ синтаксического элемента, указывающего, используется ли по меньшей мере одна долгосрочная опорная картинка (LTRP) для внешнего предсказания любой кодированной картинки в кодированной видеопоследовательности (CVS), при этом каждая картинка по меньшей мере одной LTRP помечается как «используемая для долгосрочной ссылки», а не межуровневая опорная картинка (ILRP);
предсказание одной или более кодированных картинок в CVS на основе значения синтаксического элемента.
В одном варианте осуществления предоставляется способ декодирования кодированного битового потока видео, содержащий:
определение, удовлетворено ли условие, при этом условие содержит индекс уровня текущего уровня, превышающий предустановленное значение;
когда условие удовлетворяется, синтаксический анализ первого синтаксического элемента, указывающего, используется ли по меньшей мере одна межуровневая опорная картинка (ILRP) для внешнего предсказания любой кодированной картинки в кодированной видеопоследовательности (CVS);
предсказание одной или более кодированных картинок в CVS на основе значения первого синтаксического элемента.
В одном варианте осуществления предустановленное значение равно 0.
В одном варианте осуществления условие дополнительно содержит второй синтаксический элемент (например, sps_video_parameter_set_id) больше 0.
В одном варианте осуществления предоставляется способ декодирования кодированного битового потока видео, содержащий:
определение, удовлетворено ли условие, при этом условие содержит индекс уровня текущего уровня, превышающий предустановленное значение, и текущая запись в структуре списка опорных картинок является записью ILRP;
когда условие удовлетворено, синтаксический анализ синтаксического элемента, указывающего индекс для списка непосредственно зависимых уровней текущего уровня;
предсказание одной или более кодированных картинок в CVS на основе структуры списка опорных картинок, текущая запись которой ILRP получается с использованием индекса для списка непосредственно зависимого уровня.
В одном варианте осуществления предустановленное значение равно 1.
В одном варианте осуществления предусмотрен кодер (20), содержащий схему обработки для выполнения способа в соответствии с любым из предыдущих вариантов осуществления.
В одном варианте осуществления предусмотрен декодер (30), содержащий схему обработки для выполнения способа в соответствии с любым из предыдущих вариантов осуществления.
В одном варианте осуществления предоставляется компьютерный программный продукт, содержащий программный код для выполнения способа в соответствии с любым из предыдущих вариантов осуществления при выполнении на компьютере или процессоре.
В одном варианте осуществления предоставляется декодер, содержащий:
один или более процессоров; и
энергонезависимый машиночитаемый носитель данных, соединенный с процессорами и хранящий программу для выполнения процессорами, при этом программа, когда выполняется процессорами, конфигурирует декодер для выполнения способа согласно любому из предыдущих вариантов осуществленияs.
В одном варианте осуществления предоставляется кодер, содержащий:
один или более процессоров; и
энергонезависимый машиночитаемый носитель данных, соединенный с процессорами и хранящий программу для выполнения процессорами, при этом программа, когда выполняется процессорами, конфигурирует кодер для выполнения способа согласно любому из предыдущих вариантов осуществленияs.
В одном варианте осуществления предоставляется энергонезависимый машиночитаемый носитель, содержащий программный код, который при выполнении компьютерным устройством заставляет компьютерное устройство выполнять способ любого из предыдущих вариантов осуществления.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Далее варианты осуществления изобретения описаны более подробно со ссылкой на сопровождающие фигуры и чертежи, на которых:
Фиг. 1A является блок-схемой, показывающей пример системы видеокодировки, выполненной с возможностью реализации вариантов осуществления изобретения;
Фиг.1B является блок-схемой, показывающей другой пример системы видеокодировки, выполненной с возможностью реализации вариантов осуществления изобретения;
Фиг. 2 является блок-схемой, показывающей пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;
Фиг. 3 является блок-схемой, показывающей пример структуры видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения;
Фиг. 4 является блок-схемой, иллюстрирующей пример аппаратуры кодирования или аппаратуры декодирования;
Фиг. 5 является блок-схемой, иллюстрирующей другой пример аппаратуры кодирования или аппаратуры декодирования;
Фиг. 6 представляет собой блок-схему, показывающую масштабируемую кодировку с 2 уровнями;
Фиг. 7 - блок-схема, показывающая примерную структуру системы 3100 поставки контента, которая реализует услугу поставки контента.
Фиг. 8 является блок-схемой, показывающей структуру примерного терминального устройства.
Фиг. 9 представляет собой блок-схему способа декодирования согласно одному варианту осуществления.
Фиг. 10 представляет собой блок-схему способа кодирования согласно одному варианту осуществления.
Фиг. 11 представляет собой схематическое представление кодера согласно одному варианту осуществления.
Фиг. 12 представляет собой схематическое представление декодера согласно одному варианту осуществления.
Следующие одинаковые ссылочные позиции относятся к идентичным или, по меньшей мере, функционально эквивалентным функциям, если явно не указано иное.
ПОДРОБНОЕ ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
В нижеследующем описании делается ссылка на сопроводительные чертежи, которые составляют часть данного раскрытия и которые показывают, в качестве иллюстрации, конкретные аспекты вариантов осуществления изобретения или конкретные аспекты, в которых варианты осуществления настоящего изобретения могут быть использованы. Понятно, что варианты осуществления данного изобретения могут быть использованы в других аспектах и содержат структурные или логические изменения, не показанные на фигурах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.
Например, понятно, что раскрытие, связанное с описанным способом, также может быть справедливо для соответствующего устройства или системы, выполненных с возможностью выполнения способа, и наоборот. Например, если описан один или множество конкретных этапов способа, соответствующее устройство может включать в себя один или множество блоков, например функциональных блоков, чтобы выполнять описанный один или множество этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или более из множества этапов), даже если такой один или более блоков не описаны явным образом или не проиллюстрированы на фигурах. С другой стороны, например, если конкретная аппаратура описана на основе одного или множества блоков, например функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков, или множество этапов, каждый из которых выполняет функциональные возможности одного или более из множества блоков), даже если такой один или множество этапов не описаны явным образом или не проиллюстрированы на фигурах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если конкретно не указано иное.
Видеокодировка обычно относится к обработке последовательности картинок, которые образуют видео или видеопоследовательность. Вместо термина «картинка» термины «кадр» или «изображение» могут использоваться как синонимы в области видеокодировки. Видеокодировка (или кодировка (coding) в общем) содержит две части: видеокодирование и видеодекодирование. Видеокодирование выполняется на стороне источника и обычно содержит обработку (например, посредством сжатия) исходных видеокартинок для сокращения объема данных, требуемого для представления видеокартинок (для более эффективного хранения и/или передачи). Видеодекодирование выполняется на стороне места назначения (адресата) и обычно содержит обратную обработку по сравнению с кодером для восстановления видеокартинок. Варианты осуществления, относящиеся к «кодировке» видеокартинок (или картинок в общем), должны пониматься как относящиеся к «кодированию» или «декодированию» видеокартинок или соответствующих видеопоследовательностей. Комбинация кодирующей части и декодирующей части также называется CODEC (Coding and Decoding).
В случае видеокодировки без потерь исходные видеокартинки могут быть восстановлены, т.е. восстановленные видеокартинки имеют такое же качество, что и исходные видеокартинки (при условии отсутствия потерь передачи или других потерь данных во время хранения или передачи). В случае видеокодировки с потерями выполняется дополнительное сжатие, например посредством квантования, для сокращения объема данных, представляющих видеокартинки, которые не могут быть полностью восстановлены на декодере, т.е. качество восстановленных видеокартинок ниже или хуже по сравнению с качеством исходных видеокартинок.
Несколько стандартов видеокодировки принадлежат к группе «гибридных видеокодеков с потерями» (т.е. сочетают пространственное и временное предсказание в области выборки и кодирование с 2D преобразованием для применения квантования в области преобразования). Каждая картинка видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть кодируется, на уровне блока (видеоблока), например с использованием пространственного (внутри картинки) предсказания и/или временного (вне картинки) предсказания для генерирования блока предсказания, блок предсказания вычитается из текущего блока (блока, который в настоящее время обрабатывается/подлежит обработке) для получения остаточного блока, остаточный блок преобразуется и этот остаточный блок квантуется в области преобразования для сокращения объема данных (сжатия), которые подлежат передаче, тогда как в декодере обратная обработка по сравнению с кодером применяется к кодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует цикл обработки декодера, так что они оба будут генерировать идентичные предсказания (например, внутренне и внешнее предсказания) и/или восстановления для обработки, то есть кодировки, последующих блоков.
В нижеследующих вариантах осуществления системы 10 видеокодировки, видеокодер 20 и видеодекодер 30 описаны на основе Фиг. с 1 по 3.
Фиг. 1A представляет собой схематичное блочное представление, иллюстрирующее примерную систему 10 кодировки, например, систему 10 видеокодировки (или сокращенно систему 10 кодировки), которая может использовать методы из настоящей заявки. Видеокодер 20 (или сокращенно кодер 20) и видеодекодер 30 (или сокращенно декодер 30) системы 10 видеокодировки представляют примеры устройств, которые могут быть выполнены с возможностью выполнения методов в соответствии с различными примерами, описанными в настоящей заявке.
Как показано на ФИГ. 1A, система 10 кодировки содержит устройство-источник 12, выполненное с возможностью предоставления кодированных данных 21 картинки, например в устройство-получатель 14 для декодирования кодированных данных 13 картинки.
Устройство-источник 12 содержит кодер 20 и может дополнительно, т.е. необязательно, содержать источник 16 картинки, препроцессор (или блок предварительной обработки) 18, например, препроцессор 18 картинки, а также интерфейс связи или блок 22 связи.
Источник 16 картинки может содержать или быть устройством захвата картинки любого типа, например, камерой для захвата картинки реального мира, и/или устройством генерирования картинки любого типа, например, процессором компьютерной графики для генерирования компьютерной анимированной картинки, или любым типом другого устройства для получения и/или предоставления картинки реального мира, генерируемой компьютером картинки (например, содержимого экрана, картинки виртуальной реальности (VR)) и/или любой их комбинации (например, картинки дополненной реальности (AR)). Источником картинки может быть любой тип памяти или хранилища, в котором хранятся любые из вышеупомянутых картинок.
В отличие от препроцессора 18 и обработки, выполняемой посредством блока 18 предварительной обработки, картинка или данные 17 картинки также могут именоваться необработанной картинкой или необработанными данными 17 картинки.
Препроцессор 18 выполнен с возможностью приема (необработанных) данных 17 картинки и выполнения предварительной обработки в отношении этих данных 17 картинки для получения предварительно обработанной картинки 19 или предварительно обработанных данных 19 картинки. Предварительная обработка, выполняемая препроцессором 18, может, например, содержать обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или шумоподавление. Можно понять, что блок 18 предварительной обработки может быть необязательным компонентом.
Видеокодер 20 выполнен с возможностью приема предварительно обработанных данных 19 картинки и предоставления кодированных данных 21 картинки (дополнительные подробности будут описаны ниже, например, на основе Фиг. 2).
Интерфейс 22 связи устройства-источника 12 может быть выполнен с возможностью приема кодированных данных 21 картинки и передачи этих кодированных данных 21 картинки (или любой их дополнительной обработанной версии) по каналу 13 связи в другое устройство, например, устройство-получатель 14 или любое другое устройство, для сохранения или непосредственного восстановления.
Устройство-получатель 14 содержит декодер 30 (например, видеодекодер 30) и может дополнительно, т.е. необязательно, содержать интерфейс связи или блок 28 связи, постпроцессор 32 (или блок 32 постобработки) и устройство 34 отображения.
Интерфейс 28 связи устройства-получателя 14 выполнен с возможностью приема кодированных данных 21 картинки (или любой их дополнительной обработанной версии), например, непосредственно от устройства-источника 12 или из любого другого источника, например, запоминающего устройства, например устройства хранения кодированных данных картинки, и предоставления кодированных данных 21 картинки в декодер 30.
Интерфейс 22 связи и интерфейс 28 связи могут быть выполнены с возможностью передачи или приема кодированных данных 21 картинки или кодированных данных 13 через прямую линию связи между устройством-источником 12 и устройством-получателем 14, например, прямое проводное или беспроводное соединение, или через сеть любого типа, например, проводную или беспроводную сеть или любое их сочетание, или любую частную и общедоступную сеть, или любое их сочетание.
Интерфейс 22 связи может быть, например, выполнен с возможностью упаковки закодированных данных 21 картинки в соответствующий формат, например, в пакеты, и/или обработки закодированных данных картинки с использованием любого типа кодирования передачи или обработки для передачи по каналу связи или сети связи.
Интерфейс 28 связи, являющийся аналогом интерфейса 22 связи, может быть, например, выполнен с возможностью приема переданных данных и обработки данных передачи с использованием любого вида соответствующего декодирования или обработки и/или распаковки передачи для получения закодированных данных 21 картинки.
Как интерфейс 22 связи, так и интерфейс 28 связи могут быть выполнены как интерфейсы однонаправленной связи, как показано стрелкой для канала 13 связи на Фиг. 1A, указывающей от устройства-источника 12 к устройству-получателю 14, или как интерфейсы двунаправленной связи, и могут быть выполнены с возможностью, например, отправки и приема сообщений, например для установления соединения, для подтверждения и обмена любой другой информацией, относящейся к линии связи и/или передаче данных, например передаче закодированных данных картинки.
Декодер 30 выполнен с возможностью приема закодированных данных 21 картинки и предоставления декодированных данных 31 картинки или декодированной картинки 31 (дополнительные подробности будут описаны ниже, например, на основе Фиг.3 или Фиг.5.
Постпроцессор 32 устройства-получателя 14 выполнен с возможностью постобработки декодированных данных 31 картинки (также называемых данными восстановленной картинки), таких как декодированная картинка 31, чтобы получить пост-обработанные данные 33 картинки, такие как пост-обработанная картинка 33. Постобработка, выполняемая блоком 32 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную выборку, или любую другую обработку, например, для подготовки декодированных данных 31 картинки для отображения, например, с помощью устройства 34 отображения.
Устройство 34 отображения упомянутог устройства-получателя 14 выполнено с возможностью приема пост-обработанных данных 33 картинки для отображения картинки, например, пользователю или зрителю. Устройство 34 отображения может представлять собой или содержать дисплей любого типа для представления восстановленной картинки, например, интегрированного или внешнего дисплея или монитора. Дисплеи могут, например, содержать жидкокристаллические дисплеи (LCD), дисплеи на органических светодиодах (OLED), плазменные дисплеи, проекторы, дисплеи на микро-LED, жидкий кристалл на кремнии (LCoS), цифровой световой процессор (DLP) или другой дисплей любого типа.
Хотя Фиг. 1A иллюстрирует устройство-источник 12 и устройство-получатель 14 как отдельные устройства, варианты осуществления устройств также могут содержать оба или обе функциональные возможности, устройство-источник 12 или соответствующую функциональную возможность и устройство-получатель 14 или соответствующую функциональную возможность. В таких вариантах осуществления устройство-источник 12 или соответствующая функциональная возможность и устройство-получатель 14 или соответствующая функциональная возможность могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельного аппаратного и/или программного обеспечения или любой их комбинации.
Как будет очевидно для специалиста на основании описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве-источнике 12 и/или устройстве-получателе 14, как показано на Фиг.1A, может варьироваться в зависимости от фактического устройства и применения.
Кодер 20 (например, видеокодер 20) или декодер 30 (например, видеодекодер 30) или и кодер 20, и декодер 30 могут быть реализованы через схему обработки, как показано на Фиг. 1B, такую как один или более микропроцессоров, цифровые сигнальные процессоры (DSP), специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA), дискретную логику, аппаратное обеспечение, выделенную видеокодировку или любые их комбинации. Кодер 20 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении кодера 20 с Фиг. 2 и/или любой другой системы кодера или подсистемы, описанной в данном документе. Декодер 30 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении декодера 30 с Фиг. 3 и/или любой другой системы декодера или подсистемы, описанной в данном документе. Схема обработки может быть выполнена с возможностью выполнения различных операций, которые будут описаны ниже. Как показано на Фиг.5, если методики частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем долговременном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения методик этого раскрытия. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть объединенного кодера/декодера (CODEC) в одном устройстве, например, как показано на Фиг.1B.
Устройство-источник 12 и устройство-получатель 14 могут содержать любое из широкого диапазона устройств, в том числе любые виды портативных или стационарных устройств, например, ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые консоли, устройства потоковой передачи видео (например, серверы служб контента или серверы поставки контента), широковещательное приемное устройство, широковещательное передающее устройство или подобное, и могут использовать операционную систему любого типа или обходиться без нее. В некоторых случаях устройство-источник 12 и устройство-получатель 14 могут быть оборудованы для беспроводной связи. Таким образом, устройство-источник 12 и устройство-получатель 14 могут быть устройствами беспроводной связи.
В некоторых случаях система 10 видеокодировки, проиллюстрированная на Фиг. 1A, является лишь примером, а методы настоящей заявки могут применяться к настройкам видеокодировки (такой как видеокодирование или видеодекодирование), которые не обязательно включают в себя передачу каких-либо данных между устройствами кодирования и декодирования. В других примерах данные извлекаются из локальной памяти, передаются в потоковом режиме по сети или подобное. Устройство видеокодирования может кодировать и сохранять данные в память, и/или устройство видеодекодирования может извлекать и декодировать данные из памяти. В некоторых примерах кодирование и декодирование выполняется устройствами, которые связь друг с другом не осуществляют, а просто кодируют данные в память и/или извлекают и декодируют данные из памяти.
Для удобства описания здесь описаны варианты осуществления данного изобретения, например, со ссылкой на высокоэффективное видеокодирование (HEVC) или на эталонное программное обеспечение универсального видеокодирования (VVC), стандарт видеокодирования следующего поколения, разрабатываемый объединенной группой сотрудничества по видеокодированию (JCT-VC) экспертной группы по видеокодированию ITU-T (VCEG) и экспертной группы по движущимся изображениям ISO/IEC (MPEG). Обычный специалист в данной области техники поймет, что варианты осуществления данного изобретения не ограничиваются HEVC или VVC.
Кодер и способ кодирования
Фиг. 2 показывает схематичное блочное представление примерного видеокодера 20, который выполнен с возможностью реализации методов настоящей заявки. В примере на Фиг. 2 видеокодер 20 содержит ввод 201 (или входной интерфейс 201), блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, блок 220 контурного фильтра, буфер 230 (DPB) декодированных картинок, блок 260 выбора режима, блок 270 энтропийной кодировки и вывод 272 (или выходной интерфейс 272). Блок 260 выбора режима может включать в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 262 разделения. Блок 244 внешнего предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг.2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.
Блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 выбора режима могут относится к формированию прямого пути прохождения сигнала кодера 20, тогда как блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 (DPB) декодированных картинок, блок 244 внешнего предсказания и блок 254 внутреннего предсказания могут относится к формированию обратного пути прохождения сигнала видеокодера 20, при этом обратный путь прохождения сигнала видеокодера 20 соответствует пути прохождения сигнала декодера (см. видеодекодер 30 на Фиг. 3). Блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер декодированных картинок (DPB) 230, блок 244 внешнего предсказания и блок 254 внутреннего предсказания также относятся к формированию «встроенного декодера» видеокодера 20.
Картинки и разделение картинок (картинки и блоки)
Кодер 20 может быть выполнен с возможностью приема, например, через ввод 201 картинки 17 (или данных 17 картинки), например, картинки из последовательности картинок, образующих видео или видеопоследовательность. Принятая картинка или данные картинки также могут представлять собой предварительно обработанную картинку 19 (или предварительно обработанные данные 19 картинки). Для простоты нижеследующее описание относится к картинке 17. Картинка 17 также может именоваться текущей картинкой или картинкой, которая подлежит кодировке (в частности, при видеокодировании, чтобы отличать текущую картинку от других картинок, например, ранее кодированных и/или декодированных картинок той же видеопоследовательности, т.е. видеопоследовательности, которая также содержит текущую картинку).
(Цифровая) картинка является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может упоминаться как пиксель (сокращенная форма элемента картинки) или пел (pel). Число выборок в горизонтальном и вертикальном направлении (или оси) массива или картинки определяет размер и/или разрешение картинки. Для представления цвета обычно используются три цветовые компоненты, т.е. картинка может быть представлена или включать в себя три массива выборок. В формате RBG или цветовом пространстве картинка содержит соответствующий массив красных, зеленых или синих выборок. Однако при видеокодировке каждый пиксель обычно представлен в формате яркости и цветности или цветовом пространстве, например YCbCr, которое содержит компоненту яркости, обозначаемую Y (иногда вместо этого также используется L), и две компоненты цветности (цветоразностные компоненты), обозначаемые Cb и Cr. Компонента Y яркости (luminance) (или сокращенно яркость (luma)) представляет яркость (brightness) или интенсивность уровня серого (например, как в полутоновой картинке), в то время как две компоненты Cb и Cr цветности (chrominance) (или сокращенно цветности (chroma)) представляют компоненты информации о цветности (chromaticity) или цвете. Соответственно, картинка в формате YCbCr содержит массив выборок яркости со значениями (Y) выборок яркости и два массива выборок цветности со значениями (Cb и Cr) цветности. Картинки в формате RGB могут быть конвертированы или преобразованы в формат YCbCr и наоборот, процесс также известен как цветовое преобразование или конвертация. Если картинка является монохромной, она может содержать только массив выборок яркости. Соответственно, картинка может быть, например, массивом выборок яркости в монохромном формате или массивом выборок яркости и двумя соответствующими массивами выборок цветности в цветовом формате 4:2:0, 4:2:2 и 4:4:4.
Варианты осуществления видеокодера 20 могут содержать блок разделения картинки (не показан на Фиг. 2), выполненный с возможностью разделения картинки 17 на множество (обычно не перекрывающихся) блоков 203 картинки. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодировки (CTB) или единицами дерева кодировки (CTU) (H.265/HEVC и VVC). Блок разделения картинки может быть выполнен с возможностью использования одного и того же размера блока для всех картинок в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между картинками или подмножествами или группами картинок и разделения каждой картинки на соответствующие блоки.
В дополнительных вариантах осуществления видеокодер может быть выполнен с возможностью приема непосредственно блока 203 картинки 17, например, одного, нескольких или всех блоков, формирующих картинку 17. Блок 203 картинки также может именоваться текущим блоком картинки или блоком картинки, подлежащим кодировке.
Подобно картинке 17, блок 203 картинки снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем картинка 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромной картинки 17 или массив яркости или цветности в случае цветной картинки) или три массива выборок (например, яркость и два массива цветности в случае цветной картинки 17) или любое другое число и/или вид массивов в зависимости от применяемого цветового формата. Число выборок в горизонтальном и вертикальном направлении (или оси) блока 203 определяет размер блока 203. Соответственно, блок может, например, иметь массив дискретных выборок MxN (M-столбец на N-строка) или массив MxN коэффициентов преобразования.
Варианты осуществления видеокодера 20, показанные на Фиг. 2, могут быть выполнены с возможностью кодирования картинки 17 блок за блоком, например кодирование и предсказание выполняется для каждого блока 203.
Варианты осуществления видеокодера 20, как показано на фиг.2, могут быть дополнительно выполнены с возможностью разбиения и/или кодирования картинки с использованием слайсов (также называемых видеослайсами), при этом картинка может быть разделена или кодирована с использованием одного или более слайсов (обычно без перекрытия), и каждый слайс может содержать один или более блоков (например, CTU) или одну или более групп блоков (например, тайлы (H.265/HEVC и VVC) или фрагменты (VVC)).
Варианты осуществления видеокодера 20, как показано на фиг.2, могут быть дополнительно выполнены с возможностью разбиения и/или кодирования картинки с использованием групп слайсов/тайлов (также называемых группами тайлов) и/или тайлов (также называемых видеотайлами), причем картинка может быть разделена или кодирована с использованием одной или более групп слайсов/тайлов (обычно не перекрывающихся), и каждая группа слайсов/тайлов может содержать, например, один или более блоков (например, CTU) или один или более тайлов, при этом каждый тайл, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например полные или дробные блоки.
Вычисление остатка
Блок 204 вычисления остатка может быть выполнен с возможностью вычисления остаточного блока 205 (также именуемого остатком 205) на основе блока 203 картинки и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания приведены ниже), например, путем вычитания значений выборок блока 265 предсказания из значений выборок блока 203 картинки, выборка за выборкой (пиксель за пикселем), чтобы получить остаточный блок 205 в области выборок.
Преобразование
Блок 206 обработки преобразования может быть выполнен с возможностью применения преобразования, например дискретного косинусного преобразования (DCT) или дискретного синусного преобразования (DST), к значениям выборок остаточного блока 205, чтобы получить коэффициенты 207 преобразования в области преобразования. Коэффициенты 207 преобразования могут также именоваться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.
Блок 206 обработки преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как преобразования, определенные для H.265/HEVC. По сравнению с ортогональным преобразованием DCT такие целочисленные аппроксимации обычно масштабируются с некоторым коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, дополнительные коэффициенты масштабирования применяются как часть процесса преобразования. Коэффициенты масштабирования обычно выбираются на основе некоторых ограничений, например, коэффициенты масштабирования представляют собой степень двойки для операций сдвига, битовая глубина коэффициентов преобразования, компромисс между точностью и затратами на реализацию и т. д. Конкретные коэффициенты масштабирования, например, задаются для обратного преобразования, например, блоком 212 обработки обратного преобразования (и соответствующим обратным преобразованием, например, блоком 312 обработки обратного преобразования в видеодекодере 30), и соответствующие коэффициенты масштабирования для прямого преобразования, например, блоком 206 обработки преобразования, могут быть заданы надлежащим образом в кодере 20.
Варианты осуществления видеокодера 20 (соответственно блока 206 обработки преобразования) могут быть выполнены с возможностью вывода параметров преобразования, например, типа преобразования или преобразований, например, непосредственно или кодированы или сжаты через блок 270 энтропийной кодировки, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.
Квантование
Блок 208 квантования может быть выполнен с возможностью квантования коэффициентов 207 преобразования для получения квантованных коэффициентов 209, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 также могут упоминаться как квантованные коэффициенты 209 преобразования или квантованные остаточные коэффициенты 209.
Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битного коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена посредством регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более точного или более грубого квантования. Меньшие размеры шагов квантования соответствуют более точному квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, представлять собой индекс для предопределенного набора применимых размеров шагов квантования. Например, небольшие параметры квантования могут соответствовать точному квантованию (небольшим размерам шагов квантования), а большие параметры квантования могут соответствовать грубому квантованию (большим размерам шагов квантования) или наоборот. Квантование может включать в себя деление на размер шага квантования, а соответствующее и/или обратное деквантование, например, блоком 210 обратного квантования, может включать в себя умножение на размер шага квантования. Варианты осуществления в соответствии с некоторыми стандартами, например, HEVC, могут быть выполнены с возможностью использования параметра квантования для определения размера шага квантования. Как правило, размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации фиксированной точки уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, которая могла быть изменена из-за масштабирования, используемого в аппроксимации фиксированной точки упомянутого уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантование могут быть объединены. В качестве альтернативы настроенные таблицы квантования могут использоваться и сигнализироваться от кодера к декодеру, например, в битовом потоке. Квантование является операцией с потерями, при которой потери возрастают с увеличением размеров шагов квантования.
Варианты осуществления видеокодера 20 (соответственно блока 208 квантования) могут быть выполнены с возможностью вывода параметров квантования (QP), например, напрямую или кодированных через блок 270 энтропийной кодировки, так что, например, видеодекодер 30 может принимать и применять параметры квантования для декодирования.
Обратное квантование
Блок 210 обратного квантования выполнен с возможностью применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, путем применения обратной схемы квантования относительно таковой, применяемой блоком 208 квантования, на основе или с использованием того же размера шага квантования, что и блок 208 квантования. Деквантованные коэффициенты 211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствовать - хотя они обычно не идентичны коэффициентам преобразования из-за потери при квантовании - коэффициентам 207 преобразования.
Обратное преобразование
Блок 212 обработки обратного преобразования выполнен с возможностью применения обратного преобразования относительно преобразования, применяемого блоком 206 обработки преобразования, например, обратного дискретного косинусного преобразования (DCT) или обратного дискретного синусного преобразования (DST) или других обратных преобразований для получения восстановленного остаточного блока 213 (или соответствующих деквантованных коэффициентов 213) в области выборок. Восстановленный остаточный блок 213 также может именоваться блоком 213 преобразования.
Восстановление
Блок 214 восстановления (например, блок сложения или сумматор 214) выполнен с возможностью сложения блока 213 преобразования (т. е. восстановленного остаточного блока 213) с блоком 265 предсказания, чтобы получить восстановленный блок 215 в области выборок, например, посредством сложения - выборка за выборкой - значений выборок восстановленного остаточного блока 213 и значений выборок блока 265 предсказания.
Фильтрация
Блок 220 контурного фильтра (или сокращенно «контурный фильтр» 220) сконфигурирован для фильтрации восстановленного блока 215 для получения отфильтрованного блока 221 или, в общем случае, для фильтрации восстановленных выборок для получения отфильтрованных значений выборки. Блок контурного фильтра, например, выполнен с возможностью сглаживания переходов пикселей или иного улучшения качества видео. Блок 220 контурного фильтра может содержать один или более контурных фильтров, таких как фильтр устранения блочности, фильтр с адаптивным смещением выборки (SAO) или один или более других фильтров, например, адаптивный контурный фильтр (ALF), фильтр подавления шума ( NSF) или любую их комбинацию. В примере блок 220 контурного фильтра может содержать фильтр устранения блочности, SAO-фильтр и ALF-фильтр. Порядок процесса фильтрации может быть фильтром устранения блочности, SAO и ALF. В другом примере добавляется процесс, называемый сопоставлением яркости с масштабированием цветности (LMCS) (а именно, адаптивный преобразователь в цикле). Этот процесс выполняется перед устранением блочности. В другом примере процесс фильтра устранения блочности может также применяться к внутренним краям субблоков, например, к краям аффинных субблоков, краям субблоков ATMVP, краям преобразования субблока (SBT) и краям внутреннего подраздела (ISP). Хотя блок 220 контурного фильтра показан на Фиг.2 как контурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Отфильтрованный блок 221 также может именоваться отфильтрованным восстановленным блоком 221.
Варианты осуществления видеокодера 20 (соответственно блока 220 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра (таких как параметры фильтра SAO или параметры фильтра ALF или параметры LMCS), например, напрямую или кодированных с помощью блока 270 энтропийной кодировки, так что, например, декодер 30 может принимать и применять одни и те же параметры контурного фильтра или соответствующие контурные фильтры для декодирования.
Буфер декодированных картинок
Буфер 230 декодированных картинок (DPB) может быть памятью, в которой хранятся опорные картинки или, в общем, данные опорных картинок для кодирования видеоданных посредством видеокодера 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как динамическая память с произвольным доступом (DRAM), в том числе синхронная DRAM (SDRAM), магниторезистивная RAM (MRAM), резистивная RAM (RRAM) или запоминающие устройства других типов. Буфер 230 (DPB) декодированных картинок может быть выполнен с возможностью сохранения одного или более фильтрованных блоков 221. Буфер 230 декодированных картинок может быть дополнительно выполнен с возможностью сохранения других ранее отфильтрованных блоков, например ранее восстановленных и отфильтрованных блоков 221, той же самой текущей картинки или разных картинок, например ранее восстановленных картинок, и может предоставлять полные ранее восстановленные, т.е. декодированные, картинки (и соответствующие опорные блоки и выборки) и/или частично восстановленную текущую картинку (и соответствующие опорные блоки и выборки), например, для внешнего предсказания. Буфер 230 декодированных картинок (DPB) также может быть выполнен с возможностью сохранения одного или более нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованных восстановленных выборок, например если восстановленный блок 215 не фильтруется блоком 220 контурного фильтра, или любой другой дополнительно обработанной версии восстановленных блоков или выборок.
Выбор режима (разделение и предсказание)
Блок 260 выбора режима содержит блок 262 разделения, блок 244 внешнего предсказания и блок 254 внутреннего предсказания и выполнен с возможностью приема или получения данных исходной картинки, например, исходного блока 203 (текущего блока 203 текущей картинки 17), и данных восстановленной картинки, например отфильтрованных и/или нефильтрованных восстановленных выборок или блоков той же самой (текущей) картинки и/или из одного или множества ранее декодированных картинок, например из буфера 230 декодированных картинок или других буферов (например, линейного (строкового) буфера, не показан). Данные восстановленной картинки используются в качестве данных опорной картинки для предсказания, например, внешнего предсказания или внутреннего предсказания, чтобы получить блок 265 предсказания или предиктор 265.
Блок 260 выбора режима может быть выполнен с возможностью определения или выбора разделения для текущего режима предсказания блока (включая отсутствие разделения) и режима предсказания (например, режима внутреннего или внешнего предсказания) и генерации соответствующего блока 265 предсказания, который используется для вычисления остаточного блока 205 и для восстановления восстановленного блока 215.
Варианты осуществления блока 260 выбора режима могут быть выполнены с возможностью выбора разделения и режима предсказания (например, из тех, которые поддерживаются блоком 260 выбора режима или доступны для него), которые обеспечивают наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения), или минимальные непроизводительные затраты на сигнализацию (минимальные непроизводительные затраты на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или балансирует оба фактора. Блок 260 выбора режима может быть выполнен с возможностью определения режима разделения и предсказания на основе оптимизации скорость/искажение (RDO), то есть выбора режима предсказания, который обеспечивает минимальное искажение при некоторой скорости. Такие термины, как «лучший», «минимальный», «оптимальный» и т. д. в этом контексте не обязательно относятся к всеобъемлющему «лучшему», «минимуму», «оптимальному» и т. д., но также могут относиться к выполнению критерия выбора или прекращения, например, когда значение превышает или падает ниже порогового значения, или других ограничений, потенциально ведущих к «субоптимальному выбору», но уменьшающих сложность и время обработки.
Другими словами, блок 262 разделения может быть выполнен с возможностью разделения картинки из видеопоследовательности на последовательность единиц дерева кодировки (CTU), а CTU 203 может быть дополнительно разделена на более мелкие блочные разделы или субблоки (которые снова образуют блоки), например, итеративно с использованием разделения на квадранты (QT), двоичного разбиения (BT) или разделения на троичное дерево (TT) или любого их сочетания, и для выполнения, например, предсказания для каждого из разделений блока или субблоков, при этом выбор режима включает в себя выбор древовидной структуры разделенного блока 203, и режимы предсказания применяются к каждому из разделений или субблоков блока.
Далее более подробно поясняется разделение (например, посредством блока 260 разделения) и обработка предсказания (посредством блока 244 внешнего предсказания и блока 254 внутреннего предсказания), выполняемые примерным видеокодером 20.
Разделение
Блок 262 разделения может быть сконфигурирован для разделения картинки из видеопоследовательности на последовательность единиц дерева кодировки (CTU), и блок 262 разделения может разделять (или разбивать) единицу дерева кодировки (CTU) 203 на более мелкие части, например более мелкие блоки квадратного или прямоугольного размера. Для картинки, которая имеет три массива выборок, CTU состоит из блока N×N выборок яркости вместе с двумя соответствующими блоками выборок цветности. Максимально допустимый размер блока яркости в CTU указан равным 128×128 при разработке универсальной кодировки видео (VVC), но в будущем он может быть указан как значение, отличное от 128×128, например, 256×256. CTU картинки могут быть кластеризованы/сгруппированы в виде групп слайсов/тайлов, тайлов или кирпичей. Тайл покрывает прямоугольную область картинки, и тайл может быть разделен на один или более кирпичей. Блок состоит из нескольких рядов CTU внутри тайла. Тайл, который не разделен на несколько кирпичей, может называться кирпичом. Однако кирпич является настоящим подмнабором тайла и не называется тайлом. В VVC поддерживаются два режима групп тайлов, а именно режим растрового сканирования слайса/группы тайлов и режим прямоугольного слайса. В групповом режиме растрового сканирования группа слайслв/тайлов содержит последовательность тайлов в тайловом растровом сканировании картинки. В режиме прямоугольного слайса слайс содержит ряд кирпичей картинки, которые вместе образуют прямоугольную область картинки. Кирпичи в прямоугольном слайсе располагаются в порядке растрового сканирования кирпичей слайса. Эти меньшие блоки (которые также могут именоваться субблоками) могут быть дополнительно разделены на еще меньшие разделы. Это также называется разделением дерева или иерархическим разделением дерева, в котором корневой блок, например на корневом уровне 0 дерева (уровне 0 иерархии, глубине 0), может быть рекурсивно разделен, например разделен на два или более блоков следующего более низкого уровня дерева, например, узлов на уровне 1 дерева (уровне 1 иерархии, глубине 1), при этом эти блоки могут быть снова разделены на два или более блоков следующего более низкого уровня, например уровня 2 дерева (уровня 2 иерархии, глубины 2), и т. д. пока разделение не будет завершено, например из-за выполнения критерия прекращения, например, достижения максимальной глубины дерева или минимального размера блока. Блоки, которые далее не разделяются, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два раздела, называется двоичным деревом (BT), дерево, использующее разделение на три раздела, называется троичным деревом (TT), а дерево, использующее разделение на четыре раздела, называется квадродеревом (QT).
Например, единица дерева кодировки (CTU) может быть или содержать CTB выборок яркости, две соответствующих CTB выборок цветности картинки, которая имеет три массива выборок, или CTB выборок монохромной картинки или картинки, которая кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодировки выборок. Соответственно, блок дерева кодировки (CTB) может быть N×N блоком выборок для некоторого значения N, так что деление компоненты на CTB является разделением. Единица кодировки (CU) может быть или содержать блок кодировки выборок яркости, два соответствующих блока кодировки выборок цветности картинки, которая имеет три массива выборок, или блок кодировки выборок монохромной картинки или картинки, которая кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодировки выборок. Соответственно, блок кодировки (CB) может быть M×N блоком выборок для некоторых значений M и N, так что деление CTB на блоки кодировки является разделением.
В вариантах осуществления, например, согласно HEVC, единица дерева кодировки (CTU) может быть разбита на CU с использованием структуры квадродерева, обозначенной в качества дерева кодировки. Решение о том, кодировать ли область картинки с использованием предсказания вне картинки (временного) или внутри картинки, принимается на уровне листовой CU. Каждая листовая CU может быть дополнительно разделена на одну, две или четыре PU в соответствии с типом разделения PU. Внутри одной PU применяется один и тот же процесс предсказания, а релевантная информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания, основанного на типе разделения PU, листовая CU может быть разделена на единицы преобразования (TU) в соответствии с другой структурой дерева квадрантов, аналогичной дереву кодировки для CU.
В вариантах осуществления, например, в соответствии с последним разрабатываемым в настоящее время стандартом видеокодировки, который упоминается как универсальная кодировка видео (VVC), комбинированное вложенное многотипное дерево квадрантов с использованием структуры сегментации двоичных и троичных разделений, например, используется для разделения единицы дерева кодировки. В структуре дерева кодировки в единице дерева кодировки CU может иметь либо квадратную, либо прямоугольную форму. Например, единица дерева кодировки (CTU) сначала разбивается четвертичным деревом. Затем листовые узлы четвертичного дерева могут быть дополнительно разделены многотипной древовидной структурой. Существует четыре типа разделения в многотипной древовидной структуре: вертикальное двоичное разделение (SPLIT_BT_VER), горизонтальное двоичное разделение (SPLIT_BT_HOR), вертикальное троичное разделение (SPLIT_TT_VER) и горизонтальное троичное разделение (SPLIT_TT_HOR). Листовые узлы многотипного дерева называются единицами кодировки (CU), и, если CU не слишком велика для максимальной длины преобразования, эта сегментация используется для предсказания и обработки преобразования без какого-либо дополнительного разделения. Это означает, что в большинстве случаев CU, PU и TU имеют одинаковый размер блока в дереве квадрантов с вложенной блочной структурой многотипной древовидной кодировки. Исключение возникает, когда максимальная поддерживаемая длина преобразования меньше, чем ширина или высота цветового компонента CU. VVC развивает уникальный механизм сигнализации разделения информации о разделении в дереве квадрантов с вложенной многотипной древовидной структурой кодировки дерева. В механизме сигнализации единица дерева кодировки (CTU) рассматривается как корень четвертичного дерева и сначала разделяется четвертичной древовидной структурой. Каждый листовой узел четвертичного дерева (когда он достаточно велик, чтобы позволить это) затем дополнительно разделяется многотипной древовидной структурой. В многотипной древовидной структуре сигнализируется первый флаг (mtt_split_cu_flag), указывающий, разделен ли узел дополнительно; когда узел дополнительно разделяется, сигнализируется второй флаг (mtt_split_cu_vertical_flag), указывающий направление разделения, а затем сигнализируется третий флаг (mtt_split_cu_binary_flag), указывающий, является ли разделение двоичным или тройным разделением. Основываясь на значениях mtt_split_cu_vertical_flag и mtt_split_cu_binary_flag, режим разбиения многотипного дерева (MttSplitMode) CU может быть получен декодером на основе предопределенного правила или таблицы. Следует отметить, что для некоторого исполнения, например, для 64×64 блока яркости и схемы конвейерной обработки зветности 32×32 в аппаратных декодерах VVC, разбиение TT запрещено, когда ширина или высота блока кодировки яркости больше 64, т.к. показано на рисунке 6. Разбиение TT также запрещено, когда ширина или высота блока кодировки цветности больше 32. Схема конвейерной обработки разделит картинку на блоки данных виртуального конвейера (VPDU), которые определяются как неперекрывающиеся блоки картинки. В аппаратных декодерах последовательные VPDU обрабатываются несколькими этапами конвейера одновременно. Размер VPDU примерно пропорционален размеру буфера на большинстве этапов конвейера, поэтому важно, чтобы размер VPDU был небольшим. В большинстве аппаратных декодеров размер VPDU может быть установлен равным максимальному размеру блока преобразования (ТБ). Однако в VVC разделение троичного дерева (TT) и двоичного дерева (BT) может привести к увеличению размера VPDU.
Кроме того, следует отметить, что, когда часть блока узла дерева превышает нижнюю или правую границу картинки, блок узла дерева принудительно разделяется до тех пор, пока все выборки каждой кодированной CU не окажутся внутри границ картинки.
В качестве примера инструмент внутреннийх субразделений (Intra Sub-Partitions (ISP)) может разделять блоки яркости с внутренним предсказанием по вертикали или горизонтали на 2 или 4 субразделения в зависимости от размера блока.
В одном примере блок 260 выбора режима видеокодера 20 может быть выполнен с возможностью выполнения любого сочетания способов разделения, описанных в данном документе.
Как описано выше, видеокодер 20 выполнен с возможностью определения или выбора наилучшего или оптимального режима предсказания из набора (например, предопределенных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы внутреннего предсказания и/или режимы внешнего предсказания.
Внутреннее предсказание
Набор режимов внутреннего предсказания может содержать 35 различных режимов внутреннего предсказания, например ненаправленные режимы, такие как режим DC (или среднего) и планарный режим, или направленные режимы, например, как определены в HEVC, или может содержать 67 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как режим DC (или среднего) и планарный режим, или направленные режимы, например, как определены для VVC. Например, несколько обычных режимов углового внутреннего предсказания адаптивно заменяются режимами широкоугольного внутреннего предсказания для неквадратных блоков, например, как определено в VVC. В качестве другого примера, чтобы избежать операций деления для предсказания DC, только более длинная сторона используется для вычисления среднего значения для неквадратных блоков. Кроме того, результаты внутреннего предсказания планарного режима могут быть дополнительно изменены с помощью способа комбинации внутреннего предсказания, зависящего от положения (PDPC).
Блок 254 внутреннего предсказания выполнен с возможностью использования восстановленных выборок соседних блоков одной и той же текущей картинки для генерации блока 265 внутреннего предсказания согласно режиму внутреннего предсказания набора режимов внутреннего предсказания.
Блок 254 внутреннего предсказания (или, в общем, блок 260 выбора режима) дополнительно выполнен с возможностью вывода параметров внутреннего предсказания (или, в общем, информации, указывающей выбранный режим внутреннего предсказания для блока) в блок 270 энтропийной кодировки в форме синтаксисических элементов 266 для включения в данные 21 кодированной картинки, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.
Внешнее предсказание (содержащее межуровневое предсказание)
Набор (или возможно) режимов внешнего предсказания зависит от доступных опорных картинок (т.е. предыдущих, по меньшей мере, частично декодированных картинок, например, хранимых в DBP 230) и других параметров внешнего предсказания, например, используется ли вся опорная картинка или только часть, например, область окна поиска вокруг области текущего блока, опорной картинки для поиска наилучшего соответствия опорного блока, и/или, например, применяются ли интерполяции пикселей, например, интерполяция половины/полу-пикселя, четверть пикселя и/или 1/16 пикселя, или нет.
В дополнение к вышеупомянутым режимам предсказания может применяться режим пропуска, прямой режим и/или другой режим внешнего предсказания.
Например, расширенное предсказание слияния, список кандидатов на слияние в таком режиме создается путем включения следующих пяти типов кандидатов по порядку: пространственный MVP из соседних пространственных CU, временной MVP из совместно расположенных CU, MVP на основе истории из таблицы FIFO, парный средний MVP и нулевые MV. И уточнение вектора движения стороны декодера на основе двустороннего согласования (DMVR) может применяться для повышения точности MV режима слияния. Режим слияния с MVD (MMVD), который исходит из режима слияния с различиями векторов движения. Флаг MMVD сигнализируется сразу после отправки флага пропуска и флага слияния, чтобы указать, используется ли режим MMVD для CU. И может применяться схема адаптивного разрешения вектора движения (AMVR) на уровне CU. АМВР позволяет кодировать MVD CU с разной точностью. В зависимости от режима предсказания для текущей CU можно адаптивно выбирать MVD текущей CU. Когда CU кодируется в режиме слияния, режим комбинированного внешнего/внутреннего предсказания (CIIP) может применяться к текущей CU. Взвешенное усреднение сигналов внешнего и внутреннего предсказания выполняется для получения предсказания CIIP. Предсказание с компенсацией аффинного движения, поле аффинного движения блока описывается информацией о движении двух векторов движения контрольных точек (4 параметра) или трех векторов движения контрольных точек (6 параметров). Предсказание временного вектора движения на основе субблока (SbTMVP), которое аналогично предсказанию временного вектора движения (TMVP) в HEVC, но предсказывает векторы движения субблоков в пределах текущей CU. Двунаправленный оптический поток (BDOF), ранее называемый BIO, представляет собой более простую версию, требующую гораздо меньше вычислений, особенно с точки зрения количества умножений и размера множителя. Режим треугольного разделения, в таком режиме CU равномерно делится на два треугольных раздела, используя либо диагональное разделение, либо антидиагональное разделение. Кроме того, режим двойного предсказания расширен за пределы простого усреднения, чтобы обеспечить взвешенное усреднение двух сигналов предсказания.
Блок 244 внешнего предсказания может включать в себя блок оценки движения (ME) и блок компенсации движения (MC) (оба на Фиг. 2 не показаны). Блок оценки движения может быть выполнен с возможностью приема или получения блока 203 картинки (текущего блока 203 картинки текущей картинки 17) и декодированной картинки 231, или по меньшей мере одного или множества ранее восстановленных блоков, например, восстановленных блоков одного или множества других/отличных ранее декодированных картинок 231, для оценки движения. Например, видеопоследовательность может содержать текущую картинку и ранее декодированные картинки 231 или, другими словами, текущая картинка и ранее декодированные картинки 231 могут быть частью или формировать последовательность картинок, образующих видеопоследовательность.
Кодер 20 может, например, быть выполнен с возможностью выбора опорного блока из множества опорных блоков одинаковых или разных картинок из множества других картинок и обеспечения опорной картинки (или индекса опорной картинки) и/или смещения (пространственного смещения) между позицией (x, y координатами) опорного блока и позицией текущего блока в качестве параметров внешнего предсказания в блок оценки движения. Это смещение также называется вектором движения (MV).
Блок компенсации движения выполнен с возможностью получения, например, приема параметра внешнего предсказания и выполнения внешнего предсказания на основе или с использованием параметра внешнего предсказания для получения блока 265 внешнего предсказания. Компенсация движения, выполняемая блоком компенсации движения, может включать в себя получение или генерирование блока предсказания на основе вектора движения/блока, определенного посредством оценки движения, возможно с выполнением интерполяций с точностью до субпикселя. Интерполяционная фильтрация может генерировать дополнительные пиксельные выборки из известных пиксельных выборок, таким образом потенциально увеличивая число кандидатных блоков предсказания, которые могут использоваться для кодировки блока картинки. После приема вектора движения для PU текущего блока картинки блок компенсации движения может определить местоположение блока предсказания, на который указывает вектор движения, в одном из списков опорных картинок.
Блок компенсации движения может также генерировать синтаксические элементы, ассоциированные с блоками и слайсами видео, для использования видеодекодером 30 при декодировании блоков картинки слайса видео. В дополнение или в качестве альтернативы слайсам и соответствующим синтаксическим элементам могут генерироваться или использоваться группы тайлов и/или тайлы и соответствующие синтаксические элементы.
Энтропийная кодировка
Блок 270 энтропийной кодировки выполнен с возможностью применения, например, алгоритма или схемы энтропийной кодировки (например, схемы кодировки с переменной длиной (VLC), схемы контекстно-адаптивного VLC (CAVLC), схемы арифметической кодировки, бинаризации, контекстно-адаптивной двоичной арифметической кодировки (CABAC), основанной на синтаксисе контекстно-адаптивной двоичной арифметической кодировки (SBAC), энтропийной кодировки с разделением интервала вероятности (PIPE) или другого метода или методологии энтропийной кодировки) или обхода (без сжатия) в отношении квантованных коэффициентов 209, параметров внешнего предсказания, параметров внутреннего предсказания, параметров контурного фильтра и/или других синтаксических элементов для получения кодированных данных 21 картинки, которые могут выводиться через вывод 272, например в форме кодированного битового потока 21, так что, например, видеодекодер 30 может принимать и использовать эти параметры для декодирования. Кодированный битовый поток 21 может быть передан на видеодекодер 30 или сохранен в памяти для последующей передачи или извлечения видеодекодером 30.
Другие изменения в структуре видеокодера 20 могут использоваться для кодирования видеопотока. могут использоваться для кодирования видеопотока. Например, кодер 20, не основанный на преобразовании, может квантовать остаточный сигнал напрямую без блока 206 обработки преобразования. В другой реализации кодер 20 может иметь блок 208 квантования и блок 210 обратного квантования, объединенные в единый блок.
Декодер и способ декодирования
Фиг. 3 показывает пример видеодекодера 30, который выполнен с возможностью реализации методов настоящей заявки. Видеодекодер 30 выполнен с возможностью приема кодированных данных 21 картинки (например, кодированного битового потока 21), например кодированных кодером 20, чтобы получить декодированную картинку 331. Кодированные данные картинки или битовый поток содержит информацию для декодирования кодированных данных картинки, например, данных, которые представляют блоки картинки кодированного слайса видео (и/или тайлов или групп тайлов) и связанные синтаксические элементы.
В примере на Фиг. 3, декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), контурный фильтр 320, буфер 330 (DPB) декодированных картинок, блок 360 применения режима, блок 344 внешнего предсказания и блок 354 внутреннего предсказания. Блок 344 внешнего предсказания может быть или включать в себя блок компенсации движения. Видеодекодер 30 может, в некоторых примерах, выполнять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 100 на Фиг.2.
Как объяснено в отношении кодера 20, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер декодированных картинок (DPB) 230, блок 344 внешнего предсказания и блок 354 внутреннего предсказания также упоминаются как формирующие «встроенный декодер» видеокодера 20. Соответственно, блок 310 обратного квантования может быть идентичен по функции блоку 110 обратного квантования, блок 312 обработки обратного преобразования может быть идентичен по функции блоку 212 обработки обратного преобразования, блок 314 восстановления может быть идентичен по функции блоку 214 восстановления, контурный фильтр 320 может быть идентичен по функции контурному фильтру 220, а буфер 330 декодированных картинок может быть идентичен по функции буферу 230 декодированных картинок. Следовательно, пояснения, предоставленные для соответствующих блоков и функций видеокодера 20, применимы соответственно и к соответствующим блокам и функциям видеодекодера 30.
Энтропийное декодирование
Модуль 304 энтропийного декодирования выполнен с возможностью синтаксического анализа битового потока 21 (или, в общем, данных 21 кодированной картинки) и выполнения, например, энтропийного декодирования для данных 21 кодированной картинки, чтобы получить, например, квантованные коэффициенты 309 и/или декодированные параметры кодирования (не показаны на Фиг.3), например, любые или все из параметров внешнего предсказания (например, индекс опорной картинки и вектор движения), параметр внутреннего предсказания (например, индекс или режим внутреннего предсказания), параметры преобразования, параметры квантования, параметры контурного фильтра и/или другие синтаксические элементы. Блок 304 энтропийного декодирования может быть выполнен с возможностью применения алгоритмов или схем декодирования, соответствующих схемам кодирования, как описано в отношении блока 270 энтропийной кодировки кодера 20. Блок 304 энтропийного декодирования может быть дополнительно выполнен с возможностью предоставления параметров внешнего предсказания, параметра внутреннего предсказания и/или других синтаксических элементов блоку 360 применения режима и других параметров другим блокам декодера 30. Видеодекодер 30 может принимать синтаксические элементы на уровне слайса видео и/или уровне видеоблока. В дополнение или в качестве альтернативы слайсам и соответствующим синтаксическим элементам могут приниматься и/или использоваться группы тайлов и/или тайлы и соответствующие синтаксические элементы.
Обратное квантование
Блок 310 обратного квантования может быть выполнен с возможностью приема параметров квантования (QP) (или, в общем, информации, относящейся к обратному квантованию) и квантованных коэффициентов из кодированных данных 21 картинки (например, посредством синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования) и применения, на основе параметров квантования, обратного квантования в отношении декодированных квантованных коэффициентов 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами 311 преобразования. Процесс обратного квантования может включать в себя использование параметра квантования, определенного видеокодером 20 для каждого видеоблока в видеослайсе (слайсе видео) (или тайле или группе тайлов), для определения степени квантования и, аналогично, степени обратного квантования, которая должна быть применена.
Обратное преобразование
Блок 312 обработки обратного преобразования может быть выполнен с возможностью приема деквантованных коэффициентов 311, также именуемых коэффициентами 311 преобразования, и применения преобразования к деквантованным коэффициентам 311 для того, чтобы получить восстановленные остаточные блоки 213 в области выборок. Восстановленные остаточные блоки 213 также могут именоваться блоками 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или концептуально аналогичным процессом обратного преобразования. Блок 312 обработки обратного преобразования может быть дополнительно выполнен с возможностью приема параметров преобразования или соответствующей информации из кодированных данных 21 картинки (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования), чтобы определять преобразование, которое подлежит применению к деквантованным коэффициентам 311.
Восстановление
Блок 314 восстановления (например, блок сложения или сумматор 314) может быть выполнен с возможностью сложения восстановленного остаточного блока 313 с блоком 365 предсказания, чтобы получить восстановленный блок 315 в области выборок, например, посредством сложения значений выборок восстановленного остаточного блока 313 и значений выборок блока 365 предсказания.
Фильтрация
Модуль 320 контурного фильтра (либо в контуре кодировки, либо после контура кодировки) выполнен с возможностью фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. Блок 320 контурного фильтра может содержать один или более контурных фильтров, таких как фильтр устранения блочности, фильтр с адаптивным смещением выборки (SAO) или один или более других фильтров, например, адаптивный контурный фильтр (ALF), фильтр подавления шума ( NSF) или любую их комбинацию. В примере блок 220 контурного фильтра может содержать фильтр устранения блочности, SAO-фильтр и ALF-фильтр. Порядок процесса фильтрации может быть фильтром устранени яблочности, SAO и ALF. В другом примере добавляется процесс, называемый отображением яркости с масштабированием цветности (LMCS) (а именно, адаптивный преобразователь в цикле). Этот процесс выполняется перед устранением блочности. В другом примере процесс фильтра устранения блочности может также применяться к внутренним краям субблоков, например, к аффинным краям субблоков, краям субблоков ATMVP, краям преобразования субблока (SBT) и краям внутреннего подраздела (ISP). Хотя блок 320 контурного фильтра показан на Фиг.3 как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.
Буфер декодированных картинок
Декодированные видеоблоки 321 картинки затем сохраняются в буфере 330 декодированных картинок, который сохраняет декодированные картинки 331 в качестве опорных картинок для последующей компенсации движения для других картинок и/или для вывода, соответственно, отображения.
Декодер 30 выполнен с возможностью вывода декодированной картинки 311, например, через вывод 312 для представления или просмотра пользователю.
Предсказание
Блок 344 внешнего предсказания может быть идентичен блоку 244 внешнего предсказания (в частности, блоку компенсации движения), а блок 354 внутреннего предсказания может быть идентичен блоку 254 внешнего предсказания по функции, и принимает решения по разбиению или разделению и выполняет предсказание на основе параметров разделения и/или предсказания или соответствующей информации, принимаемой из кодированных данных 21 картинки (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования). Модуль 360 применения режима может быть сконфигурирован для выполнения предсказания (внутреннего или внешнего предсказания (может содержать межуровневое предсказание)) для каждого блока на основе восстановленных картинок, блоков или соответствующих выборок (отфильтрованных или нефильтрованных) для получения блока 365 предсказания.
Когда видеослайс кодируется как внутренне кодируемый (I) слайс, блок 354 внутреннего предсказания блока 360 применения режима выполнен с возможностью генерирования блока 365 предсказания для блока картинки текущего видеослайса на основе просигнализированного режима внутреннего предсказания и данных из ранее декодированных блоков текущей картинки. Когда видеокартинка кодируется как внешне кодируемый (т.е. B или P) слайс, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 применения режима выполнен с возможностью создания блоков 365 предсказания для видеоблока текущего видеослайса на основе векторов движения и других синтаксических элементов, принимаемых от блока 304 энтропийного декодирования. Для внешнего предсказания блоки предсказания могут быть созданы из одной из опорных картинок в пределах одного из списков опорных картинок. Видеодекодер 30 может строить списки опорных кадров, Список 0 и Список 1, используя методы построения по умолчанию на основе опорных картинок, хранящихся в DPB 330. То же самое или подобное может применяться для или посредством вариантов осуществления с использованием групп тайлов (например, групп видеотайлов) и/или тайлов (например, видеотайлов) в дополнение или альтернативно к слайсам (например, видеослайсам), например, видео может быть кодировано с использованием групп I, P или B тайлов и/или тайлов.
Блок 360 применения режима выполнен с возможностью определения информации предсказания для видеоблока текущего видеослайса путем синтаксического анализа векторов движения или связанной информации и других синтаксических элементов, и использует информацию предсказания для создания блоков предсказания для текущего декодируемого видеоблока. Например, блок 360 применения режима использует некоторые из принятых синтаксических элементов для определения режима предсказания (например, внутреннее или внешнее предсказание), используемого для кодировки видеоблоков видеослайса, типа слайса внешнего предсказания (например, B-слайс, P-слайс или GPB-слайс), информации построения для одного или более списков опорных картинок для слайса, векторов движения для каждого внешне кодированного видеоблока слайса, статуса внешнего предсказания для каждого внешне кодированного видеоблока слайса, а также другой информации для декодирования видеоблоков в текущем видеослайсе. То же самое или подобное может применяться для или посредством вариантов осуществления с использованием групп тайлов (например, групп видеотайлов) и/или тайлов (например, видеотайлов) в дополнение или альтернативно к слайсам (например, видеослайсам), например, видео может быть кодировано с использованием групп I, P или B тайлов и/или тайлов.
Варианты осуществления видеодекодера 30, как показано на фиг.3, могут быть выполнены с возможностью разделения и/или декодирования картинки с использованием слайсов (также называемых видеослайсами), при этом картинка может быть разделена на или декодирована с использованием одного или более слайсов (обычно без перекрытия), и каждый слайс может содержать один или более блоков (например, CTU) или одну или более групп блоков (например, тайлы (H.265/HEVC и VVC) или кирпичи (VVC)).
Варианты осуществления видеодекодера 30, как показано на фиг.3, могут быть выполнены с возможностью разделения и/или декодирования картинки с использованием групп слайсов/тайлов (также называемых группами тайлов) и/или тайлов (также называемых видеотайлами), при этом картинка может быть разделена на или декодирована с использованием одной или более групп слайсов/тайлов (обычно не перекрывающихся), и каждая группа слайсов/тайлов может содержать, например, один или более блоков (например, CTU) или один или более тайлов, при этом каждый слайс, например, может иметь прямоугольную форму и может содержать один или более блоков (например, CTU), например, полные или дробные блоки.
Другие варианты видеодекодера 30 могут использоваться для декодирования кодированных данных 21 картинки. Например, декодер 30 может создавать выходной видеопоток без блока 320 контурной фильтрации. Например, декодер 30, не основанный на преобразовании, может выполнять обратное квантование остаточного сигнала напрямую без блока 312 обработки обратного преобразования для некоторых блоков или кадров. В другой реализации видеодекодер 30 может иметь блок 310 обратного квантования и блок 312 обработки обратного преобразования, объединенные в один блок.
Следует понимать, что в кодере 20 и декодере 30 результат обработки некоторого текущего этапа может быть обработан дополнительно, а затем выведен на следующий этап. Например, после интерполяционной фильтрации, получения вектора движения или контурной фильтрации, дополнительная операция, такая как усечение или смещение, может выполняться над результатом обработки интерполяционной фильтрации, получения вектора движения или контурной фильтрации.
Следует отметить, что дополнительные операции могут применяться к получаемым векторам движения текущего блока (в том числе, но без ограничения, к векторам движения контрольной точки аффинного режима, векторам движения субблока в аффинном, планарном, ATMVP режимах, временным векторам движения и тому подобному). Например, значение вектора движения ограничивается предопределенным диапазоном в соответствии с его представляющим битом. Если представляющий бит вектора движения является bitDepth, тогда диапазон составляет -2^(bitDepth-1) ~ 2^(bitDepth-1)-1, где «^» означает возведение в степень. Например, если bitDepth установлена равной 16, диапазон составляет -32768 ~ 32767; если bitDepth установлена равной 18, диапазон составляет -131072~131071. Например, значение получаемого вектора движения (например, MV четырех субблоков 4×4 в одном блоке 8×8) ограничивается таким образом, чтобы максимальная разность между целыми частями MV четырех субблоков 4×4 не превышала N пикселей, например, была не более 1 пикселя. Здесь представлены два способа ограничения вектора движения в соответствии с bitDepth.
Фиг. 4 является схематичным представлением устройства видеокодировки согласно варианту осуществления настоящего раскрытия. Устройство видеокодировки подходит для реализации раскрытых вариантов осуществления, которые описаны в данном документе. В варианте осуществления устройство видеокодировки может быть декодером, таким как видеодекодер 30 по ФИГ. 1A, или кодером, таким как видеокодер 20 по ФИГ. 1А.
Устройство видеокодировки содержит входные порты 410 (или порты 410 ввода) и блоки 420 (Rx) приемника для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки 440 (Tx) передатчика и выходные порты 450 (или порты 450 вывода) для передачи данных; и память 460 для хранения данных. Устройство видеокодировки также может содержать компоненты преобразования оптических сигналов в электрические (OE) и компоненты преобразования электрических сигналов в оптические (EO), подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для обеспечения входа или выхода оптических или электрических сигналов.
Процессор 430 реализуется аппаратным обеспечением и программным обеспечением. Процессор 430 может быть реализован в виде одного или более CPU-чипов, ядер (например, в виде многоядерного процессора), FPGA, ASIC и DSP. Процессор 430 поддерживает связь с входными портами 410, блоками 420 приемника, блоками 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 содержит модуль 470 кодировки. Модуль 470 кодировки реализует раскрытые варианты осуществления, описанные выше. Например, модуль 470 кодировки реализует, обрабатывает, подготавливает или предоставляет различные операции кодировки. Следовательно, включение модуля 470 кодировки обеспечивает существенное улучшение функциональных возможностей устройства видеокодировки и обеспечивает трансформацию устройства видеокодировки в другое состояние. В качестве альтернативы модуль 470 кодировки реализуется как инструкции, хранящиеся в памяти 460 и исполняемые процессором 430.
Память 460 может содержать один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных переполнения для хранения программ, когда такие программы выбраны для исполнения, и для хранения инструкций и данных, которые считываются во время исполнения программ. Память 460 может быть, например, энергозависимой и/или энергонезависимой и может быть постоянной памятью (ROM), оперативной памятью (RAM), троичной ассоциативной памятью (TCAM) и/или статической оперативной памятью (SRAM).
Фиг. 5 является упрощенной блок-схемой аппаратуры 500, которая может использоваться как одно или оба из устройства-источника 12 и устройства-получателя 14 с Фиг. 1 согласно примерному варианту осуществления.
Процессор 502 в аппаратуре 500 может быть центральным процессором. В качестве альтернативы, процессор 502 может быть устройством любого другого типа или множеством устройств, способных манипулировать или обрабатывать информацию, которая существует в настоящее время или будет разработана в будущем. Хотя раскрытые реализации могут быть осуществлены на практике с одним процессором, как показано, например, с процессором 502, преимущества в скорости и эффективности могут быть достигнуты с использованием более одного процессора.
Память 504 в аппаратуре 500 может быть постоянной памятью (ROM) или устройством оперативной памяти (RAM) в некоторой реализации. В качестве памяти 504 может использоваться запоминающее устройство любого другого подходящего типа устройства. Память 504 может включать в себя код и данные 506, доступ к которым осуществляется процессором 502 с использованием шины 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, причем прикладные программы 510 включают в себя по меньшей мере одну программу, которая позволяет процессору 502 выполнять описанные в данном документе способы. Например, прикладные программы 510 могут включать в себя приложения с 1 по N, которые дополнительно включают в себя приложение видеокодировки, которое выполняет описанные в данном документе способы.
Аппаратура 500 может также включать в себя одно или более устройств вывода, например дисплей 518. Дисплей 518 может быть, в одном примере, дисплеем, чувствительным к касанию, который объединяет дисплей с элементом, чувствительным к касанию, способным воспринимать вводы касанием. Дисплей 518 может быть соединен с процессором 502 через шину 512.
Хотя здесь изображена как одна шина, шина 512 аппаратуры 500 может состоять из многочисленных шин. Кроме того, вторичное хранилище 514 может быть напрямую связано с другими компонентами аппаратуры 500 или может быть доступно через сеть и может содержать один встраиваемый блок, такой как карта памяти, или множество блоков, таких как множество карт памяти. Таким образом, аппаратура 500 может быть реализована в самых разнообразных конфигурациях.
Масштабируемая кодировка
Масштабируемая кодировка, включая масштабируемую по качеству (PSNR scalable), пространственно масштабируемую и т.д. Например, как показано на фиг.6, последовательность может быть подвергнута понижающей дискретизации до версии с низким пространственным разрешением. Будет закодирована как версия с низким пространственным разрешением, так и версия с исходным пространственным разрешением (с высоким пространственным разрешением). Как правило, сначала кодируется низкое пространственное разрешение, и оно будет использоваться в качестве ссылки для более поздней кодировки высокого пространственного разрешения.
Для описания информации о уровнях (количество, зависимость, вывод) существует VPS (набор параметров видео), определяемый следующим образом:
vps_max_layers_minus1 плюс 1 указывает максимально допустимое количество уровней в каждой CVS, ссылающейся на VPS.
vps_all_independent_layers_flag, равный 1, указывает, что все уровни в CVS кодируются независимо без использования межуровневого предсказания. vps_all_independent_layers_flag, равный 0, указывает, что один или более уровней в CVS могут использовать межуровневое предсказание. Если он отсутствует, предполагается, что значение vps_all_independent_layers_flag равно 1. Когда vps_all_independent_layers_flag равен 1, предполагается, что значение vps_independent_layer_flag[i] равно 1. Когда vps_all_independent_layers_flag равен 0, предполагается, что значение vps_independent_layer_flag[0] равно 1.
vps_layer_id[ i ] указывает значение nuh_layer_id i-го уровня. Для любых двух неотрицательных целых значений m и n, когда m меньше n, значение vps_layer_id[m] должно быть меньше, чем vps_layer_id[n].
vps_independent_layer_flag[ i ], равный 1, указывает, что уровень с индексом i не использует межуровневое предсказание. vps_independent_layer_flag[i], равный 0, указывает, что уровень с индексом i может использовать межуровневое предсказание, а vps_layer_dependency_flag[i] присутствует в VPS.
vps_direct_dependency_flag[ i ][ j ], равный 0, указывает, что уровень с индексом j не является прямым опорным уровнем для уровня с индексом i. vps_direct_dependency_flag [ i ][ j ], равный 1, указывает, что уровень с индексом j является прямым опорным уровнем для уровня с индексом i. Когда vps_direct_dependency_flag[ i ][ j ] отсутствует для i и j в диапазоне от 0 до vps_max_layers_minus1 включительно, предполагается, что он равен 0.
Переменная DirectDependentLayerIdx[ i ][ j ], определяющая j-й непосредственно зависимый уровень от i-го уровня, выводится следующим образом:
Переменная GeneralLayerIdx[ i], указывающая индекс уровня уровня с nuh_layer_id, равным vps_layer_id[i], выводится следующим образом:
простое описание следующее:
vps_max_layers_minus1 add 1 означает количество уровней
vps_all_independent_layers_flag указывает, кодируются ли все уровни независимо
vps_layer_id[ i ] указывает идентификатор уровня i-го уровня.
vps_independent_layer_flag[ i ] указывает, закодирован ли i-й уровень независимо.
vps_direct_dependency_flag[ i ][ j ] указывает, используется ли j-й уровень для ссылки на i-й уровень.
При этом синтаксические элементы vps_independent_layer_flag[i] и vps_direct_dependency_flag[i][j] являются информацией межуровневого предсказания уровней, где i и j являются идентификаторами уровня, причем разные уровни соответствуют разным идентификаторам уровня.
Администрирование DPB и маркировка опорной картинки.
Чтобы администрировать эти опорные картинки в процессе декодирования, декодированные картинки необходимо хранить в буфере декодированных картинок (DPB) для использования опорных картинок для последующего декодирования картинок. Чтобы указать эти картинки, их информация о подсчете порядка картинок (POC) должна сигнализироваться непосредственно или опосредованно в заголовке слайса. Как правило, существует два списка опорных картинок: list0 и list1. Также необходимо включить индекс опорной картинки, чтобы сигнализировать картинку в списке. Для одинарного предсказания опорные картинки выбираются из одного списка опорных картинок, для двойного предсказания опорные картинки выбираются из двух списков опорных картинок.
Все опорные картинки хранятся в DPB. Все картинки в DPB помечены как «используется для долгосрочной ссылки», «используется для краткосрочной ссылки» или «не используется для ссылки», и только одно из трех состояний. Как только картинка помечена как «не используется для ссылки», она больше не будет использоваться для ссылки. Если она также не нуждается в сохранении для вывода, то ее можно удалить из DPB. Статус опорных картинок может сигнализироваться в заголовке слайса или может быть получен из информации заголовка слайса.
Был предложен новый метод администрирования опорных картинок, названный методом RPL (список опорных картинок). RPL предлагает весь набор опорных картинок или наборы для текущего кодирования картинки, причем опорная картинка в наборе опорных картинок используется для декодирования текущей картинки или будущей (позднее или следующего) картинки. Таким образом, RPL отражает информацию картинки в DPB, даже опорная картинка не используется в качестве опорной для текущей картинки, если она будет использоваться в качестве опорной для следующей картинки, ее необходимо сохранить в RPL.
После того, как картинка восстановлена, она будет сохранена в DPB и по умолчанию помечена как «используется для краткосрочной ссылки». Операция управления DPB начнется после анализа информации RPL в заголовке слайса.
Построение списка опорных картинок.
Информация об опорной картинке может передаваться через заголовок слайса. Кроме того, в наборе параметров последовательности (SPS) могут быть некоторые кандидаты RPL, в этом случае заголовок слайса может включать в себя индекс RPL для получения необходимой информации RPL без сигнализации всей синтаксической структуры RPL. Или вся синтаксическая структура RPL может быть указана в заголовке слайса.
Внедрение метода RPL.
Чтобы сэкономить биты затрат на сигнализацию RPL, в SPS могут быть кандидатные RPL. Картинка может использовать индекс RPL (ref_pic_list_idx[i]), чтобы получить информацию RPL от SPS. Кандидатные RPL сигнализируются следующим образом:
Семантика следующая:
rpl1_same_as_rpl0_flag, равный 1, указывает, что синтаксические структуры num_ref_pic_lists_in_sps[ 1 ] и ref_pic_list_struct( 1, rplsIdx ) отсутствуют, и применяется следующее:
- Предполагается, что значение num_ref_pic_lists_in_sps[1] равно значению num_ref_pic_lists_in_sps[0].
- Предполагается, что значение каждого синтаксического элемента в ref_pic_list_struct(1, rplsIdx) равно значению соответствующего синтаксического элемента в ref_pic_list_struct(0, rplsIdx) для rplsIdx в диапазоне от 0 до num_ref_pic_lists_in_sps[0] - 1.
num_ref_pic_lists_in_sps[ i ] указывает количество синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) с listIdx, равным i, включенных в SPS. Значение num_ref_pic_lists_in_sps[i] должно находиться в диапазоне от 0 до 64 включительно.
Помимо получения информации RPL на основе индекса RPL из SPS, информация RPL может сигнализироваться в заголовке слайса.
ref_pic_list_sps_flag[ i ], равный 1, указывает, что список i опорных картинок текущего слайса выводится на основе одной из синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) с listIdx, равным i в SPS. ref_pic_list_sps_flag[ i ], равный 0, указывает, что список i опорных картинок текущего слайса выводится на основе синтаксической структуры ref_pic_list_struct( listIdx, rplsIdx ) с listIdx, равным i, который непосредственно включен в заголовки слайсов текущей картинки.
Когда ref_pic_list_sps_flag[ i ] отсутствует, применяется следующее:
Если num_ref_pic_lists_in_sps[i] равно 0, предполагается, что значение ref_pic_list_sps_flag[i] равно 0.
В противном случае (num_ref_pic_lists_in_sps[i] больше 0), если rpl1_idx_present_flag равен 0, значение ref_pic_list_sps_flag[1] предполагается равным ref_pic_list_sps_flag[0].
В противном случае предполагается, что значение ref_pic_list_sps_flag[i] равно pps_ref_pic_list_sps_idc[i] - 1.
ref_pic_list_idx[ i ] указывает индекс, в списке синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) с listIdx, равным i, включенных в SPS, синтаксической структуры ref_pic_list_struct( listIdx, rplsIdx ) с listIdx, равным i, которая используется для получение списка i опорных картинок текущей картинки. Синтаксический элемент ref_pic_list_idx[i] представлен битами Ceil(Log2(num_ref_pic_lists_in_sps[i])). Если он отсутствует, предполагается, что значение ref_pic_list_idx[ i ] равно 0. Значение ref_pic_list_idx[i] должно находиться в диапазоне от 0 до num_ref_pic_lists_in_sps[i] - 1 включительно. Когда ref_pic_list_sps_flag[i] равно 1, и num_ref_pic_lists_in_sps[i] равно 1, предполагается, что значение ref_pic_list_idx[i] равно 0. Когда ref_pic_list_sps_flag[i] равен 1, а rpl1_idx_present_flag равен 0, предполагается, что значение ref_pic_list_idx[1] равно ref_pic_list_idx[0].
Переменная RplsIdx[ i ] получается следующим образом:
slice_poc_lsb_lt[ i ][ j ] задает значение счетчика порядка картинок по модулю MaxPicOrderCntLsb j-й записи LTRP в i-м списке опорных картинок. Длина синтаксического элемента slice_poc_lsb_lt[i][j] составляет log2_max_pic_order_cnt_lsb_minus4+4 бита.
Переменная PocLsbLt[i][j] получается следующим образом:
delta_poc_msb_present_flag[i][j], равное 1, указывает, что delta_poc_msb_cycle_lt[i][j] присутствует. Значение delta_poc_msb_present_flag[ i][j], равное 0, указывает, что delta_poc_msb_cycle_lt[i][j] отсутствует.
Пусть prevTid0Pic будет предыдущей картинкой в порядке декодирования, которая имеет nuh_layer_id такое же, как у текущей картинки, имеет TemporalId, равное 0, и не является картинкой RASL или RADL. Пусть setOfPrevPocVals будет набором, состоящим из следующего:
- PicOrderCntVal для prevTid0Pic, Data
- PicOrderCntVal каждой картинки, на которую ссылаются записи в RefPicList[0] или RefPicList[1] prevTid0Pic, и которая имеет такой же nuh_layer_id, что и текущая картинка,
- PicOrderCntVal каждой картинки, которая следует за prevTid0Pic в порядке декодирования, имеет nuh_layer_id, такой же, как у текущей картинки, и предшествует текущей картинке в порядке декодирования.
Когда в setOfPrevPocVals имеется более одного значения, для которого значение по модулю MaxPicOrderCntLsb равно PocLsbLt[i][j], значение delta_poc_msb_present_flag[i][j] должно быть равно 1.
delta_poc_msb_cycle_lt[i][ j] указывает значение переменной FullPocLt[i][j] следующим образом:
Значение delta_poc_msb_cycle_lt[i][j] должно находиться в диапазоне от 0 до 2(32 − log2_max_pic_order_cnt_lsb_minus4 − 4) включительно. Если он отсутствует, предполагается, что значение delta_poc_msb_cycle_lt[ i ][ j ] равно 0.
Синтаксическая структура RPL следующая:
num_ref_entries[ listIdx ][ rplsIdx ] указывает количество записей в синтаксической структуре ref_pic_list_struct( listIdx, rplsIdx ). Значение num_ref_entries[ listIdx ][ rplsIdx ] должно находиться в диапазоне от 0 до sps_max_dec_pic_buffering_minus1+14 включительно.
ltrp_in_slice_header_flag[listIdx][rplsIdx], равный 0, указывает, что POC LSB записей LTRP в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx) присутствуют в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx). ltrp_in_slice_header_flag[listIdx][rplsIdx], равное 1, указывает, что POC LSB записей LTRP в синтаксической структуре ref_pic_list_struct( listIdx, rplsIdx) отсутствуют в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx).
inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ], равный 1, указывает, что i-я запись в синтаксической структуре ref_pic_list_struct( listIdx, rplsIdx ) является записью ILRP. inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ], равный 0, указывает, что i-я запись в синтаксической структуре ref_pic_list_struct( listIdx, rplsIdx ) не является записью ILRP. Если он отсутствует, предполагается, что значение inter_layer_ref_pic_flag[ listIdx ][ rplsIdx ][ i ] равно 0.
st_ref_pic_flag[ listIdx ][ rplsIdx ][ i ], равный 1, указывает, что i-я запись в синтаксической структуре ref_pic_list_struct( listIdx, rplsIdx ) является записью STRP. st_ref_pic_flag[ listIdx ][ rplsIdx ][ i ], равный 0, указывает, что i-я запись в синтаксической структуре ref_pic_list_struct( listIdx, rplsIdx ) является записью LTRP. Когда inter_layer_ref_pic_flag[listIdx][rplsIdx][i] равен 0, а st_ref_pic_flag[listIdx][rplsIdx][i] отсутствует, значение st_ref_pic_flag[listIdx][rplsIdx][i] считается равным 1.
Переменная NumLtrpEntries[listIdx][rplsIdx] получается следующим образом:
abs_delta_poc_st[listIdx][rplsIdx][i] указывает значение переменной AbsDeltaPocSt[listIdx][rplsIdx][i] следующим образом:
Значение abs_delta_poc_st[listIdx][rplsIdx][i] должно быть в диапазоне от 0 до 215-1 включительно..
strp_entry_sign_flag[listIdx][rplsIdx][i] равное 1 указывает, что i-я запись в синтаксической структуре ref_pic_list_struct(listIdx, rplsIdx) имеет значение больше или равное 0. strp_entry_sign_flag[listIdx][rplsIdx][i] equal значение 0 указывает, что i-я запись в синтаксической структуре ref_pic_list_struct( listIdx, rplsIdx ) имеет значение меньше 0. Если он отсутствует, предполагается, что значение strp_entry_sign_flag[listIdx][rplsIdx][i] равно 1.
Список DeltaPocValSt[ listIdx ][ rplsIdx ] получается следующим образом:
rpls_poc_lsb_lt[ listIdx ][ rplsIdx ][ i ] задает значение счетчика порядка картинок по модулю MaxPicOrderCntLsb картинки, на которую ссылается i-я запись в синтаксической структуре ref_pic_list_struct( listIdx, rplsIdx ). Длина синтаксического элемента rpls_poc_lsb_lt[listIdx][rplsIdx][i] составляет log2_max_pic_order_cnt_lsb_minus4+4 бита.
Некоторое общее описание структуры RPL.
Для каждого списка существует структура RPL. Во-первых, сигнализируется num_ref_entries[listIdx istrplsIdx], чтобы указать количество опорных картинок в списке. ltrp_in_slice_header_flag[listIdx istrplsIdx] используется для указания того, сигнализируется ли информация LSB (младший бит) в заголовке слайса. Если текущее опорная картинка не является межуровневой опорной картинкой, то st_ref_pic_flag[listIdx][rplsIdx][i] указывает, является ли она картинкой долгосрочной ссылки. Если это картинка краткосрочной ссылки, то сигнализируется информация POC (abs_delta_poc_st и strp_entry_sign_flag). Если ltrp_in_slice_header_flag[tlistIdx istrplsIdx] равен нулю, то rpls_poc_lsb_lt[plistIdx istrplsIdx plsj++] используется для получения информации LSB текущей опорной картинки. MSB (старший бит) может быть получен напрямую или получен на основе информации (delta_poc_msb_present_flag[ei][j] и delta_poc_msb_cycle_lt[ei][j]) в заголовке слайса.
Процесс декодирования для построения списков опорных картинок
Этот процесс вызывается в начале процесса декодирования для каждого слайса картинки, отличной от IDR.
Опорные картинки адресуются через опорные индексы. Опорный индекс представляет собой индекс в списке опорных картинок. При декодировании слайса I список опорных картинок не используется при декодировании данных слайса. При декодировании слайса P при декодировании данных слайса используется только список 0 опорных картинок (т.е. RefPicList[0]). При декодировании слайса B при декодировании данных слайса используются как список 0 опорных картинок, так и список 1 опорных картинок (т.е. RefPicList[1]).
В начале процесса декодирования для каждого слайса картинки, отличной от IDR, выводятся списки опорных картинок RefPicList[0] и RefPicList[1]. Списки опорных картинок используются для маркировки опорных картинок, как указано в пункте 8.3.3, или при декодировании данных слайса.
ПРИМЕЧАНИЕ 1. - Для слайса I картинки, отличной от IDR, который не является первым слайсом картинки, RefPicList[ 0 ] и RefPicList[ 1 ] могут быть получены для целей проверки соответствия битового потока, но их получение не обязательно для декодирования текущей картинки или картинок, следующих за текущей картинкой в порядке декодирования. Для слайса P, который не является первым слайсом картинки, RefPicList[ 1 ] может быть получен для целей проверки соответствия битового потока, но его получение не обязательно для декодирования текущей картинки или картинок, следующих за текущей картинкой в порядке декодирования.
Списки опорных картинок RefPicList[0] и RefPicList[1] строятся следующим образом:
После построения RPL, где refPicLayerId является идентификатором уровня ILRP, PicOrderCntVal является значением POC, процесс маркировки выглядит следующим образом:
Процесс декодирования для маркировки опорной картинки
Этот процесс вызывается один раз для каждой картинки после декодирования заголовка слайса и процесса декодирования для построения списка опорных картинок для слайса, как указано в пункте 8.3.2, но до декодирования данных слайса. Этот процесс может привести к тому, что одна или более опорных картинок в DPB будут помечены как «неиспользуемые для ссылки» или «используемые для долгосрочной ссылки».
Декодированная картинка в DPB может быть помечена как «неиспользуемая для ссылки», «используемая для краткосрочной ссылки» или «используемая для долгосрочной ссылки», но только одним из этих трех в любой заданный момент во время операции процесса декодирования. Присвоение одной из этих меток картинке неявно удаляет другую из этих меток, когда это применимо. Когда картинка упоминается как помеченная как «используемая для ссылки», это в совокупности относится к картинке, помеченной как «используемая для краткосрочной ссылки» или «используемая для долгосрочной ссылки» (но не оба).
STRP и ILRP идентифицируются по их значениям nuh_layer_id и PicOrderCntVal. LTRP идентифицируются по их значениям nuh_layer_id и младшим битам Log2(MaxLtPicOrderCntLsb) их значений PicOrderCntVal.
Если текущая картинка является картинкой CLVSS, все опорные картинки, находящиеся в настоящее время в DPB (если есть) с тем же nuh_layer_id, что и у текущей картинки, помечаются как «неиспользуемые для ссылки».
Иначе применяется следующее:
Для каждой записи LTRP в RefPicList[0] или RefPicList[1], когда картинка, на которую делается ссылка, представляет собой STRP с тем же nuh_layer_id, что и у текущей картинки, картинка помечается как «используемая для долгосрочной ссылки».
Каждое опорная картинка с тем же nuh_layer_id, что и у текущей картинки в DPB, на которую не ссылается никакая запись в RefPicList[0] или RefPicList[1], помечается как «неиспользуемая для ссылки».
Для каждой записи ILRP в RefPicList[0] или RefPicList[1] опорная картинка помечается как «используемая для долгосрочной ссылки».
Здесь обратите внимание, что ILRP (межуровневое опорная картинка) помечена как «используемая для долгосрочной ссылки».
В SPS есть два синтаксиса, которые относятся к межуровневой опорной информации.
sps_video_parameter_set_id больше 0, указывает значение vps_video_parameter_set_id для VPS, на которую ссылается SPS. Когда sps_video_parameter_set_id равно 0, SPS не ссылается на VPS, и на VPS не ссылаются при декодировании каждой CVS, ссылающейся на SPS.
long_term_ref_pics_flag, равное 0, указывает, что LTRP не используется для внешнего предсказания любого кодированной картинки в CVS. Значение long_term_ref_pics_flag, равное 1, указывает, что LTRP могут использоваться для внешнего предсказания одной или более кодированных картинок в CVS.
inter_layer_ref_pics_present_flag, равный 0, указывает, что ILRP не используется для внешнего предсказания любой кодированной картинки в CVS.
inter_layer_ref_pics_flag, равный 1, указывает, что ILRP могут использоваться для внешнего предсказания одной или более кодированных картинок в CVS. Когда значение sps_video_parameter_set_id равно 0, предполагается, что значение inter_layer_ref_pics_present_flag равно 0.
Простое описание, как показано ниже:
long_term_ref_pics_flag используется для указания, можно ли использовать LTRP в процессе декодирования.
inter_layer_ref_pics_present_flag используется для указания, может ли ILRP использоваться в процессе декодирования.
Таким образом, когда inter_layer_ref_pics_present_flag равен 1, может существовать ILRP, который используется в процессе декодирования, и он помечен как «используется для долгосрочной ссылки». В этом случае в процессе декодирования используется LTRP, даже если флаг long_term_ref_pics_flag равен 0. Таким образом, имеется несоответствие с семантикой long_term_ref_pics_flag.
В существующем способе некоторые синтаксические элементы для межуровневой опорной информации сигнализируются всегда, без учета индекса текущего уровня. В этом изобретении предлагается добавить некоторые условия к элементам синтаксиса для повышения эффективности сигнализации.
Поскольку long_term_ref_pics_flag используется только для управления синтаксическим анализом ltrp_in_slice_header_flag и st_ref_pic_flag, семантика изменена для управления синтаксическим анализом флагов в RPL.
Синтаксические элементы для межуровневой опорной информации сигнализируются с учетом индекса текущего уровня. Если информация может быть получена по индексу текущего уровня, информация не требуется для сингализирования.
Поскольку long_term_ref_pics_flag используется только для управления синтаксическим анализом ltrp_in_slice_header_flag и st_ref_pic_flag, семантика изменена для управления синтаксическим анализом флагов в RPL.
Синтаксические элементы для межуровневой опорной информации сигнализируются с учетом индекса текущего уровня. Если информация может быть получена по индексу текущего уровня, информация не требуется для сигнализирования.
Первый вариант осуществления (модифицировать семантику long_term_ref_pics_flag, чтобы удалить несоответствие LTRP и ILRP)
Поскольку long_term_ref_pics_flag используется только для управления синтаксическим анализом ltrp_in_slice_header_flag и st_ref_pic_flag, семантика модифицируется следующим образом:
Кроме того, семантику можно модифицировать, чтобы исключить ILRP следующим образом:
long_term_ref_pics_flag, равное 0, указывает, что LTRP не используется для внешнего предсказания любой кодированной картинки в CVS. long_term_ref_pics_flag, равное 1, указывает, что LTRP могут использоваться для внешнего предсказания одной или более кодированных картинок в CVS. Здесь LTRP не включает в себя ILRP (межуровневую опорную картинку).
Второй вариант осуществления
Здесь обратите внимание, что когда i равен 1, это означает, что уровень 1 должен относиться к другому уровеню. Хотя опорным уровнем может быть только уровень 0, поэтому vps_direct_dependency_flag[ i ][ j ] не нужно сигнализировать. Только когда i больше 1, необходимо сигнализировать vps_direct_dependency_flag[i][j].
vps_direct_dependency_flag[ i ][ j ], равный 0, указывает, что уровень с индексом j не является непосредственным опорным уровнем для уровня с индексом i. vps_direct_dependency_flag [ i ][ j ], равный 1, указывает, что уровень с индексом j является непосредственным опорным уровнем для уровня с индексом i. Когда vps_direct_dependency_flag[i][j] отсутствует для i и j в диапазоне от 0 до vps_max_layers_minus1 включительно, если i равно 1 и vps_independent_layer_flag[i] равно 0, vps_direct_dependency_flag[i][j] считается равен 1, в противном случае предполагается, что он равен 0.
Третий вариант осуществления
Здесь обратите внимание, что если sps_video_parameter_set_id (синтаксический элемент уровня SPS) равен 0, то это означает, что нет нескольких уровней, поэтому нет необходимости сигнализировать inter_layer_ref_pics_flag (синтаксический элемент с межуровневой поддержкой), а флаг равен 0 по умолчанию.
Здесь обратите внимание, что когда GeneralLayerIdx[nuh_layer_id] равен 0, то текущий уровень является 0-м уровнем, он не может относиться ни какому другому уровеню. Таким образом, нет необходимости сигнализировать inter_layer_ref_pics_present_flag, и значение по умолчанию равно 0.
Кодирование обоих случаев, упомянутых выше, еще один пример применения показан ниже:
Четвертый вариант осуществления (межуровневая опорная информация сигнализируется с учетом индекса текущего уровня, чтобы удалить сигнализацию избыточной информации, чтобы повысить эффективность кодировки.)
Здесь обратите внимание, что когда GeneralLayerIdx[nuh_layer_id] равен 1, то текущий уровень - это уровень1, и он может ссылаться только на уровень0, а ilrp_idc уровня0 должен быть равен 0. Таким образом, в этом случае нет необходимости сигнализировать ilrp_idc.
ilrp_idc[ listIdx ][ rplsIdx ][ i ] указывает индекс в списке непосредственно зависимых уровней ILRP i-й записи в синтаксической структуре ref_pic_list_struct( listIdx, rplsIdx ) в списке непосредственно зависимых уровней. Значение ilrp_idc[listIdx][rplsIdx][i] должно находиться в диапазоне от 0 до GeneralLayerIdx[nuh_layer_id] − 1 включительно. Когда GeneralLayerIdx[nuh_layer_id] равен 1, предполагается, что значение ilrp_idc[listIdx][rplsIdx][i] равно 0
Пятый вариант осуществления
Здесь следует отметить, что часть или все варианты осуществления варианта 1~варианта 4 могут быть объединены для формирования нового варианта осуществления.
Например, вариант 1 осуществления + вариант 2 осуществления + вариант 3 осуществления + вариант 4 осуществления или вариант 2 осуществления + вариант 3 осуществления + вариант 4 осуществления или другие комбинации.
Ниже приводится объяснение применений способа кодирования, а также способа декодирования, как показано в вышеупомянутых вариантах осуществления, и системы, использующей их.
Фиг. 7 является блок-схемой, показывающей систему 3100 поставки контента для реализации услуги распространения контента. Данная система 3100 поставки контента включает в себя устройство 3102 захвата, терминальное устройство 3106 и необязательно включает в себя дисплей 3126. Устройство 3102 захвата осуществляет связь с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, но без ограничения упомянутым, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любую их комбинацию, или подобное.
Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, показанным в вышеуказанных вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на Фигурах), а сервер кодирует эти данные и передает кодированные данные на терминальное устройство 3106. Устройство 3102 захвата включает в себя, но без ограничения упомянутым, камеру, смартфон или планшет, компьютер или ноутбук, систему видеоконференцсвязи, КПК, устанавливаемое на транспортное средство устройство, или комбинацию любых из них, или подобное. Например, устройство 3102 захвата может включать в себя устройство-источник 12, описанное выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку видеокодирования. Когда данные включают в себя аудио (т.е. речь), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку аудиокодирования. Для некоторых практических сценариев устройство 3102 захвата распространяет закодированные видео- и аудиоданные путем их совместного мультиплексирования. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата распространяет закодированные аудиоданные и закодированные видеоданные на терминальное устройство 3106 по отдельности.
В системе 3100 поставки контента терминальное устройство 310 принимает и воспроизводит закодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и извлечения данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеорегистратор (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, карманный персональный компьютер (КПК) 3122, устанавливаемое на транспортное средство устройство 3124, или их комбинация, или подобное, способное декодировать вышеупомянутые закодированные данные. Например, терминальное устройство 3106 может включать в себя устройство-получатель 14, описанное выше. Когда закодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения видеодекодирования. Когда закодированные данные включают в себя аудио, аудиодекодеру, включенному в терминальное устройство, отдается приоритет для выполнения обработки аудиодекодирования.
Для терминального устройства со своим дисплеем, например, смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеорегистратора (DVR) 3112, телевизора 3114, карманного персонального компьютера (КПК) 3122 или устанавливаемого на транспортное средство устройства 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, такого как STB 3116, система 3118 видеоконференцсвязи или система 3120 видеонаблюдения, контакт в нем устанавливается с внешним дисплеем 3126 для приема и показа декодированных данных.
Когда каждое устройство в этой системе выполняет кодирование или декодирование, может использоваться устройство кодирования картинки или устройство декодирования картинки, как показано в вышеупомянутых вариантах осуществления.
Фиг. 8 является схемой, показывающей структуру примерного терминального устройства 3106. После того, как терминальное устройство 3106 принимает поток от устройства 3102 захвата, блок 3202 обработки протокола анализирует протокол передачи упомянутого потока. Протокол включает в себя, но без ограничения упомянутым, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи HTTP Live (HLS), MPEG-DASH, транспортный протокол реального времени (RTP), протокол обмена сообщениями в реальном времени (RTMP) или любую их комбинацию, или подобное.
После того, как блок 3202 обработки протокола обработает поток, генерируется файл потока. Файл выводится в блок 3204 демультиплексирования. Блок 3204 демультиплексирования может разделять мультиплексированные данные на закодированные аудиоданные и закодированные видеоданные. Как описано выше, в других практических сценариях, например, в системе видеоконференцсвязи, закодированные аудиоданные и закодированные видеоданные не мультиплексируются. В этой ситуации кодированные данные передаются на видеодекодер 3206 и аудиодекодер 3208 без использования блока 3204 демультиплексирования.
Посредством обработки демультиплексирования генерируются элементарный поток (ES) видео, ES аудио и, необязательно, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, описанный в вышеупомянутых вариантах осуществления, декодирует ES видео с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерирования видеокадра и подает эти данные в блок 3212 синхронизации. Аудиодекодер 3212 декодирует аудио ES для генерации аудиокадра и подает эти данные в блок 3212 синхронизации. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на ФИГ. Y) перед его подачей в блок 3212 синхронизации. Аналогично аудиокадр может сохраняться в буфере (не показан на ФИГ. Y) перед его подачей в блок 3212 синхронизации.
Блок 3212 синхронизации синхронизирует видеокадр и аудиокадр и подает видео/аудио в видео/аудио дисплей 3214. Например, блок 3212 синхронизации синхронизирует представление видео и аудио информации. Информация может кодироваться в синтаксисе с использованием временных меток, касающихся представления кодированных аудио- и видеоданных, а также временных меток, касающихся поставки самого потока данных.
Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и аудиокадром и передает видео/аудио/субтитры на дисплей 3216 видео/аудио/субтитров.
Настоящее изобретение не ограничивается вышеупомянутой системой, и либо устройство кодирования картинки, либо устройство декодирования картинки в вышеупомянутых вариантах осуществления может быть включено в другую систему, например, автомобильную систему.
Математические операторы
Математические операторы, используемые в этой заявке, аналогичны тем, которые используются в языке программирования C. Однако результаты операций целочисленного деления и арифметического сдвига определяются более точно, а также определяются дополнительные операции, такие как возведение в степень и вещественнозначное деление. Соглашения о нумерации и подсчете определяют начало с 0, например, «первый» эквивалентен 0-му, «второй» эквивалентен 1-му и т. д.
Арифметические операторы
Следующие арифметические операторы определены следующим образом:
и -7 / -4 усекаются до 1, а -7/4 и 7 / -4 усекаются до -1.
с x >= 0 and y > 0.
Логические операторы
Следующие логические операторы определены следующим образом:
x && y
х || y Булево логическое "или" для x и y
! Булево логическое «не»
x?y:z Если x равен ИСТИНЕ или не равен 0, вычисляется значение y; в противном случае вычисляется значение z.
Операторы отношения
Следующие операторы отношения определены следующим образом:
> Больше
>= Больше или равно
< Меньше
<= Меньше или равно
== Равно
!= Не равно
Когда оператор сравнения применяется к синтаксическому элементу или переменной, которому(ой) присвоено значение «na» (не применимо), значение «na» обрабатывается как отдельное значение для синтаксического элемента или переменной. Значение «na» не считается равным любому другому значению.
Битовые операторы
Следующие битовые операторы определены следующим образом:
& битовое «и». При работе над целочисленными аргументами оперирует над представлением дополнения до двойки целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.
| битовое или. При работе над целочисленными аргументами оперирует над представлением дополнения до двойки целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.
^ исключающее или. При работе над целочисленными аргументами оперирует над представлением дополнения до двойки целочисленного значения. При работе над двоичным аргументом, который содержит меньше битов, чем другой аргумент, более короткий аргумент расширяется путем добавления более значащих битов, равных 0.
x >> y Арифметический сдвиг вправо целочисленного представления дополнения до двойки x на y двоичных разрядов. Эта функция определена только для неотрицательных целочисленных значений y. Биты, сдвинутые в старшие биты (MSB) в результате сдвига вправо, имеют значение, равное MSB для x до операции сдвига.
x << y Арифметический сдвиг влево целочисленного представления дополнения до двойки x на y двоичных разрядов. Эта функция определена только для неотрицательных целочисленных значений y. Биты, сдвинутые в младшие биты (LSB) в результате сдвига влево, имеют значение, равное 0.
Операторы присваивания
Следующие арифметические операторы определены следующим образом:
= оператор присваивания
+ + Приращение, т.е. x+ + эквивалентно x=x+1; при использовании в индексе массива оценивается в значение переменной до операции приращения.
− − Уменьшение, т.е. x− − эквивалентно x=x - 1; при использовании в индексе массива оценивает значение переменной до операции уменьшения.
+=Приращение на указанную величину, т.е. x += 3 эквивалентно x=x+3, а x += (−3) эквивалентно x=x + (−3).
−=Уменьшение на указанную величину, т.е. x −= 3 эквивалентно x=x − 3, а x −= (−3) эквивалентно x=x − (−3).
Обозначение диапазона
Следующее обозначение используется для обозначения диапазона значений:
x=y..z x принимает целочисленные значения от y до z, включительно, где x, y и z являются целыми числами, а z больше y.
Математические функции
Определены следующие математические функции:
Abs( x )=
Asin (x) тригонометрическая обратная синусоидальная функция, работающая с аргументом x, который находится в диапазоне от −1,0 до 1,0 включительно, с выходным значением в диапазоне от −π ÷ 2 до π ÷ 2 включительно, в единицах радиан.
Atan( x ) тригонометрическая функция арктангенса, работающая с аргументом x, с выходным значением в диапазоне от −π÷2 до π÷2 включительно в единицах радиан.
Atan2( y, x )=
Ceil( x ) наименьшее целое, большее или равное x
Clip1Y( x )=Clip3( 0, ( 1 << BitDepthY ) − 1, x )
Clip1C( x )=Clip3( 0, ( 1 << BitDepthC ) − 1, x )
Clip3( x, y, z )=
Cos( x ) тригонометрическая функция косинуса, работающая с аргументом x в единицах радиан.
Floor( x ) наибольшее целое число, меньшее или равное x.
GetCurrMsb( a, b, c, d )=
Ln( x ) натуральный логарифм x (логарифм по основанию e, где e - постоянная основания натурального логарифма 2.718 281 828...).
Log2( x ) логарифм x по основанию 2.
Log10( x ) логарифм x по основанию 10.
Min( x, y )=
Max( x, y )=
Round( x )=Sign( x ) * Floor( Abs( x ) + 0,5)
Sign( x )=
Sin( x ) тригонометрическая функция синуса, работающая с аргументом x в единицах радиан.
Sqrt( x )=
Swap( x, y )=( y, x )
Tan( x ) тригонометрическая функция тангенса, работающая с аргументом x в единицах радиан.
Порядок приоритетности операций
Когда порядок приоритетности в выражении явно не указан с помощью круглых скобок, применяются следующие правила:
Операции с более высоким приоритетом оцениваются перед любой операцией с более низким приоритетом.
Операции с одинаковым приоритетом оцениваются последовательно слева направо.
В таблице ниже указан приоритет операций от наивысшего к низшему; более высокая позиция в таблице указывает на более высокий приоритет.
Для тех операторов, которые также используются в языке программирования C, порядок приоритетности, используемый в этом описании, является таким же, что и в языке программирования C.
Таблица: Приоритетность операций от наивысшего (в верхней части таблицы) до низшего (в нижней части таблицы)
Текстовое описание логических операций
В тексте определение логических операций, которое математически бы описывалось в следующей форме:
если ( условие 0 ) определение 0
иначе если( условие 1 )
определение 1 ...
иначе /* информативный комментарий по оставшемуся условию */ определение n
может быть описано следующим образом:
... как указано ниже / ... применяется следующее:
- если условие 0, определение 0
- Иначе, если условие 1, определение 1
- ...
- Иначе (информативный комментарий по оставшемуся условию), определение n.
Каждое определение «если ... иначе, если ... иначе, ...» в тексте вводится словами «... как указано ниже» или «...применяется следующее», за которым сразу следует «если ...». Последним условием «если ... иначе, если ... иначе ...» всегда может быть «иначе ...» Чередование определений «если ... иначе если ... иначе, ...» могут быть идентифицированы путем сопоставления «... как указано ниже» или «... применяется следующее» с завершающим «иначе, ...».
В тексте определение логических операций, которое математически бы описывалось в следующей форме:
если( условие 0a && условие 0b ) определение 0
иначе если( условие 1a | | условие 1b ) определение 1 ... иначе определение n
может быть описано следующим образом:
... как указано ниже / ... применяется следующее:
- Если все из следующих условий истинны, определение 0:
- условие 0a
- условие 0b
- Иначе, если истинными являются одно или более из следующих условий, определение 1:
- условие 1a
- условие 1b
- ...
- Иначе, определение n
В тексте определение логических операций, которое математически бы описывалось в следующей форме:
если ( условие 0 ) определение 0 если ( условие 1 ) определение 1
может быть описано следующим образом:
Когда условие 0, определение 0
Когда условие 1, определение 1
Хотя варианты осуществления данного изобретения были в основном описаны на основе видеокодировки, следует отметить, что варианты осуществления системы 10 кодировки, кодера 20 и декодера 30 (и, соответственно, системы 10), а также другие варианты осуществления, описанные в данном документе, также могут быть выполнены с возможностью обработки или кодировки неподвижной картинки, т.е. обработки или кодировки отдельной картинки независимо от любой предшествующей или последующей картинки, как при видеокодировке. В общем, только блоки 244 внешнего предсказания (кодер) и 344 (декодер) могут не быть доступны в случае, если кодировка для обработки картинки ограничена одной картинкой 17. Все другие функциональные возможности (также именуемые инструментами или технологиями) видеокодера 20 и видеодекодера 30 могут в равной степени использоваться для обработки неподвижных картинок, например, вычисления 204/304 остатка, преобразования 206, квантования 208, обратного квантования 210/310, (обратного) преобразования 212/312, разделения 262/362, внутреннего предсказания 254/354 и/или контурной фильтрации 220, 320 и энтропийной кодировки 270 и энтропийного декодирования 304.
Варианты осуществления, например кодера 20 и декодера 30, а также описанные в данном документе функции, например применительно к кодеру 20 и декодеру 30 могут быть реализованы аппаратным обеспечением, программным обеспечением, микропрограммным обеспечением или любой их комбинацией. Если реализованы в программном обеспечении, функции могут храниться на считываемом компьютером носителе или передаваться через среду связи в виде одной или более инструкций или кода и исполняться аппаратным блоком обработки. Считываемые компьютером носители могут включать в себя считываемые компьютером носители, которые соответствуют материальному носителю, например носителю данных, или среде связи, в том числе любой среде, которая обеспечивает передачу компьютерной программы из одного места в другое, например, согласно протоколу связи. Таким образом, считываемые компьютером носители обычно могут соответствовать (1) материальным считываемым компьютером запоминающим носителям, которые являются долговременными, или (2) среде связи, такой как сигнал или несущая волна. Носители данных могут быть любыми доступными носителями, к которым может быть осуществлен доступ одним или более компьютерами или одним или более процессорами для извлечения инструкций, кода и/или структур данных для реализации методик, описанных в этом раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.
В частности, предоставляется способ декодирования закодированного битового потока видео, реализованный в декодере, как показано на фиг. 9, причем способ содержит: этап S901 получения синтаксического элемента уровня набора параметров последовательности (SPS) из битового потока, при этом то, что синтаксический элемент уровня SPS равен предустановленному значению, указывает, что SPS не ссылается на набор параметров видео (VPS), и то, что синтаксический элемент уровня SPS больше предустановленного значения указывает, что SPS ссылается на VPS. Этап S902 получения, поскольку синтаксический элемент уровня SPS больше предустановленного значения, синтаксического элемента с межуровневой поддержкой, указывающего разрешено ли использовать одну или более межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок; и этап S903 предсказания одной или более кодированных картинок на основе значения синтаксического элемента с межуровневой поддержкой.
Аналогично, предоставляется способ кодирования битового потока видео, содержащего кодированные данные, для реализации в кодере, как показано на фиг. 10, при этом способ содержит: этап S1001 кодирования синтаксического элемента уровня набора параметров последовательности (SPS) в битовый поток, при этом синтаксический элемент уровня SPS, равный предустановленному значению, указывает, что SPS не ссылается на набор параметров видео (VPS), и синтаксический элемент уровня SPS, превышающий предустановленное значение, указывает, что SPS ссылается на VPS; этап S1003 кодирования, поскольку синтаксический элемент уровня SPS больше, чем предустановленное значение, синтаксического элемента с межуровневой поддержкой в битовый поток, при этом синтаксический элемент с межуровневой поддержкой указывает, разрешено ли использовать одну или более межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок.
Кроме того, способ может дополнительно содержать: этап S1002 определения, превышает ли синтаксический элемент уровня SPS предустановленное значение.
На фиг.11 показан декодер 1100, сконфигурированный для декодирования битового потока видео, содержащего закодированные данные для множества картинок. Декодер 1100 в соответствии с показанным примером содержит: блок 1110 получения, сконфигурированный для получения синтаксического элемента уровня набора параметров последовательности (SPS) из битового потока, при этом то, что синтаксический элемент уровня SPS равен предустановленному значению, указывает, что на набор параметров виждео (VPS) не ссылается SPS, и синтаксический элемент уровня SPS, превышающий предустановленное значение, указывает, что SPS ссылается на VPS; блок 1110 получения дополнительно сконфигурирован для получения, поскольку синтаксический элемент уровня SPS больше предустановленного значения, синтаксического элемента с межуровневой поддержкой, указывающего разрешено ли использование одной или более межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок; и блок 1120 предсказания, выполненный с возможностью предсказания одной или более кодированных картинок на основе значения синтаксического элемента с межуровневой поддержкой.
При этом блок получения может быть блоком 304 энтропийного декодирования. Блок 1120 предсказания может быть блоком 344 межкадрового предсказания. Декодер 1100 может быть устройством-получателем 14, декодером 30, аппаратурой 500, видеодекодером 3206 или терминальным устройством 3106.
Аналогично предоставляется кодер 1200, сконфигурированный для кодирования битового потока видео, содержащего закодированные данные для множества картинок, как показано на фиг. 12. Кодер 1200 содержит: первый блок 1210 кодирования, сконфигурированный для кодирования синтаксического элемента уровня набора параметров последовательности (SPS) в битовый поток, при этом синтаксический элемент уровня SPS, равный предустановленному значению, указывает, что на набор параметров видео (VPS) не ссылается SPS, и синтаксический элемент уровня SPS, превышающий предустановленное значение, указывает, что SPS ссылается на VPS; второй модуль 1220 кодирования, сконфигурированный для кодирования, поскольку синтаксический элемент уровня SPS больше предустановленного значения, синтаксического элемента с межуровневой поддержкой в битовый поток, при этом синтаксический элемент с межуровневой поддержкой указывает разрешено ли использовать одну или более межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок.
В возможной форме реализации способа в соответствии с четвертым аспектом как таковым кодер дополнительно содержит блок определения, сконфигурированный для определения, превышает ли синтаксический элемент уровня SPS предустановленное значение.
При этом первый блок 1210 кодирования и второй блок 1220 кодирования могут быть блоком 270 энтропийного кодирования. Блок определения может быть блоком 260 выбора режима. Кодер 1200 может быть исходным устройством 12, кодером 20 или аппаратурой 500.
В качестве примера, а не ограничения, такие считываемые компьютером носители могут содержать RAM, ROM, EEPROM, CD-ROM или другое хранилище на оптическом диске, хранилище на магнитном диске или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Кроме того, любое соединение правильно называть считываемым компьютером носителем. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная-, радио- и микроволновая- связь, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасная-, радио- и микроволновая- связь, включаются в определение носителя. Однако следует понимать, что считываемые компьютером носители и носители хранения данных не включают в себя соединения, несущие волны, сигналы или другие кратковременные носители, а вместо этого направлены на долговременные, материальные запоминающие носители. Диск (disk) и диск (disc), используемые используемые в данном документе, включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где диски (disks) обычно воспроизводят данные магнитным образом, а диски (discs) воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем считываемых компьютером носителей.
Инструкции могут исполняться одним или более процессорами, такими как один или более цифровых сигнальных процессоров (DSP), микропроцессоров общего назначения, интегральных схем специального назначения (ASIC), программируемых вентильных матриц (FPGA) или других эквивалентных интегральных или дискретных логических схем. Соответственно, термин «процессор», используемый в данном документе, может относиться к любой из вышеупомянутой структуры или любой другой структуре, подходящей для реализации методик, описанных в данном документе. Кроме того, в некоторых аспектах функциональные возможности, описанные в данном документе, могут быть предоставлены в рамках специализированных аппаратных и/или программных модулей, сконфигурированных для кодирования и декодирования, или включены в комбинированный кодек. Кроме того, методики могут быть полностью реализованы в одной или более схемах или логических элементах.
Методики этого раскрытия могут быть реализованы в большом количестве устройств или аппаратур, в том числе беспроводной телефон, интегральная схема (IC) или набор IC (например, набор микросхем). В этом раскрытии описаны различные компоненты, модули или блоки, чтобы подчеркнуть функциональные аспекты устройств, выполненных с возможностью выполнения раскрытых технологий, но не обязательно требующих реализации различными аппаратными блоками. Скорее, как описано выше, различные блоки могут быть объединены в аппаратный блок кодека или предоставлены совокупностью взаимодействующих аппаратных блоков, в том числе один или более процессоров, как описано выше, вместе с подходящим программным обеспечением и/или микропрограммным обеспечением.
Изобретение относится к кодированию и декодированию видео, а более конкретно, к межуровневому предсказанию. Техническим результатом является повышение эффективности кодирования без снижения точности кодирования. Результат достигается тем, что получают синтаксический элемент уровня набора параметров последовательности (SPS) из битового потока, при этом синтаксический элемент уровня SPS равен предустановленному значению, указывающему, что SPS не ссылается на набор параметров видео (VPS), и синтаксический элемент уровня SPS, превышающий предустановленное значение, указывает, что SPS ссылается на VPS; получают, когда синтаксический элемент уровня SPS больше предустановленного значения, синтаксического элемента с межуровневой поддержкой, указывающего, разрешено ли использование одной или более межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок; и выполняют предсказание одной или более кодированных картинок на основании значения синтаксического элемента с межуровневой поддержкой. 10 н. и 14 з.п. ф-лы, 13 ил., 1 табл.
1. Способ декодирования кодированного битового потока видео, содержащий:
получение синтаксического элемента уровня набора параметров последовательности (SPS) из битового потока, при этом то, что синтаксический элемент уровня SPS равен предустановленному значению, указывает, что SPS не ссылается на набор параметров видео (VPS), и синтаксический элемент уровня SPS, превышающий предустановленное значение, указывает, что SPS ссылается на VPS;
получение, когда синтаксический элемент уровня SPS больше предустановленного значения, синтаксического элемента с межуровневой поддержкой, указывающего, разрешено ли использование одной или более межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок, при этом, когда синтаксический элемент уровня SPS равен предустановленному значению, синтаксический элемент с межуровневой поддержкой не присутствует в битовом потоке, и значение синтаксического элемента с межуровневой поддержкой выводится равным 0; и
предсказание одной или более кодированных картинок на основе значения синтаксического элемента с межуровневой поддержкой.
2. Способ по п. 1, отличающийся тем, что VPS содержит синтаксические элементы, описывающие информацию межуровневого предсказания уровней в кодированной видеопоследовательности (CVS), и SPS содержит синтаксический элемент уровня SPS и синтаксический элемент с межуровневой поддержкой, при этом CVS содержит один или более ILRP и одну или более кодированных картинок.
3. Способ по п. 2, в котором предсказание одной или более кодированных картинок на основе значения синтаксического элемента с межуровневой поддержкой содержит: когда значение синтаксического элемента с межуровневой поддержкой, указывающего, что разрешено использовать одну или более межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок, предсказание одной или более кодированных картинок посредством ссылки на одну или более ILRP, при этом одну или более ILRP получают на основе информации межуровневого предсказания, включенной в упомянутую VPS, на который ссылается упомянутый SPS.
4. Способ по любому из пп. 1-3, в котором кодированная картинка и ILRP кодированной картинки принадлежат разным уровням.
5. Способ по любому из пп. 1-4, отличающийся тем, что синтаксический элемент уровня SPS, равный предустановленному значению, дополнительно указывает, что кодированная видеопоследовательность (CVS) содержит кодированные картинки только одного уровня.
6. Способ по любому из пп. 1-5, отличающийся тем, что предустановленное значение равно 0.
7. Способ по любому из пп. 1-6, отличающийся тем, что предсказание одной или более кодированных картинок на основе значения синтаксического элемента с межуровневой поддержкой содержит:
предсказание одной или более кодированных картинок без ссылки на какую-либо ILRP в случае, если значение синтаксического элемента с межуровневой поддержкой, указывающего одну или более ILRP, не используются для внешнего предсказания одной или более кодированных картинок.
8. Способ кодирования кодированного битового потока видео, содержащий:
кодирование синтаксического элемента уровня набора параметров последовательности (SPS) в битовый поток, при этом синтаксический элемент уровня SPS, равный предустановленному значению, указывает, что SPS не ссылается на набор параметров видео (VPS), а синтаксический элемент уровня SPS, превышающий предустановленное значение, указывает, что SPS ссылается на VPS;
кодирование, когда синтаксический элемент уровня SPS больше, чем предустановленное значение, синтаксического элемента с межуровневой поддержкой в битовый поток, при этом синтаксический элемент с межуровневой поддержкой указывает, разрешено ли использовать одну или более межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок, и при этом, когда синтаксический элемент уровня SPS равен предустановленному значению, синтаксический элемент с межуровневой поддержкой не присутствует в битовом потоке, и значение синтаксического элемента с межуровневой поддержкой выводится равным 0.
9. Способ по п. 8, отличающийся тем, что VPS содержит синтаксические элементы, описывающие информацию межуровневого предсказания уровней в кодированной видеопоследовательности (CVS), а SPS содержит синтаксический элемент уровня SPS и синтаксический элемент с межуровневой поддержкой, при этом CVS содержит одну или более ILRP и одну или более кодированных картинок.
10. Способ по п. 8 или 9, в котором кодированная картинка и ILRP кодированной картинки принадлежат разным уровням.
11. Способ по любому из пп. 8-10, отличающийся тем, что синтаксический элемент уровня SPS, равный предустановленному значению, дополнительно указывает, что кодированная видеопоследовательность (CVS) содержит кодированные картинки только одного уровня.
12. Способ по любому из пп. 8-11, отличающийся тем, что предустановленное значение равно 0.
13. Способ по любому из пп. 8-12, отличающийся тем, что кодирование синтаксического элемента с межуровневой поддержкой в битовый поток содержит: кодирование синтаксического элемента с межуровневой поддержкой, указывающего, что одну или более ILRP разрешено использовать для внешнего предсказания одной или более кодированных картинок в битовый поток на основании определения, что разрешено использовать одну или более ILRP для внешнего предсказания одной или более кодированных картинок.
14. Способ по любому из пп. 8-12, отличающийся тем, что кодирование синтаксического элемента с межуровневой поддержкой в битовый поток содержит: кодирование синтаксического элемента с межуровневой поддержкой, указывающего, что одна или более ILRP не используются для внешнего предсказания одной или более кодированных картинок в битовый поток на основе определения того, что одна или более ILRP не используются для внешнего предсказания одной или более кодированных картинок.
15. Устройство (30) декодирования, содержащее схему обработки для осуществления способа по любому из пп. 1-7.
16. Устройство (20) кодирования, содержащее схему обработки для осуществления способа по любому из пп. 8-14.
17. Устройство декодирования, содержащее:
один или более процессоров; и
энергонезависимый машиночитаемый носитель данных, соединенный с процессорами и хранящий программу для выполнения процессорами, при этом программа, когда выполняется процессорами, конфигурирует упомянутый декодер для выполнения способа по любому из предшествующих пунктов 1-7.
18. Устройство кодирования, содержащее:
один или более процессоров; и
энергонезависимый машиночитаемый носитель данных, соединенный с процессорами и хранящий программу для выполнения процессорами, при этом программа, когда выполняется процессорами, конфигурирует упомянутый кодер для выполнения способа по любому из пп. 8-14.
19. Невременный машиночитаемый носитель, содержащий программный код, который при выполнении компьютерным устройством заставляет компьютерное устройство выполнять способ по любому из предыдущих пунктов 1-7.
20. Невременный машиночитаемый носитель, содержащий программный код, который при выполнении компьютерным устройством заставляет компьютерное устройство выполнять способ по любому из предыдущих пунктов 8-14.
21. Невременный носитель данных, который включает в себя закодированный битовый поток, декодированный устройством декодирования изображения, при этом битовый поток генерируется путем разделения кадра видеосигнала или сигнала изображения на множество блоков и включает в себя множество синтаксических элементов, при этом множество синтаксических элементов содержит синтаксический элемент уровня набора параметров последовательности (SPS), при этом то, что синтаксический элемент уровня SPS равен предустановленному значению, указывает, что SPS не ссылается на набор параметров видео (VPS), и синтаксический элемент уровня SPS, превышающий предустановленное значение, указывает, что SPS ссылается на VPS, причем, когда синтаксический элемент уровня SPS превышает предустановленное значение, множество синтаксических элементов дополнительно содержит синтаксический элемент с межуровневой поддержкой, который указывает, разрешено ли использовать одну или более межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок, и при этом, когда синтаксический элемент уровня SPS равен предустановленному значению, синтаксический элемент с межуровневой поддержкой не присутствует в битовом потоке, и значение синтаксического элемента с межуровневой поддержкой выводится равным 0.
22. Способ декодирования кодированного битового потока, причем способ содержит:
синтаксический анализ синтаксического элемента уровня набора параметров последовательности (SPS) из битового потока,
определение значения синтаксического элемента уровня набора параметров последовательности (SPS), причем то, что синтаксический элемент уровня SPS равен 0, указывает, что SPS не ссылается на набор параметров видео (VPS), и синтаксический элемент уровня SPS, больший 0, указывает, что SPS ссылается на VPS;
когда значение синтаксического элемента уровня набора параметров последовательности (SPS) равно 0, получение синтаксического элемента с межуровневой поддержкой сигнала по значению по умолчанию, причем синтаксический элемент с межуровневой поддержкой сигнала указывает, разрешено ли использование одной или более межуровневых опорных картинок (ILRP) для внешнего предсказания одной или более кодированных картинок, когда синтаксический элемент уровня SPS равен 0, синтаксический элемент с межуровневой поддержкой не присутствует в битовом потоке, и значение синтаксического элемента с межуровневой поддержкой выводится равным значению по умолчанию, не указывая множественные уровни; и
предсказание одной или более кодированных картинок на основе значения синтаксического элемента с межуровневой поддержкой.
23. Способ по п. 22, причем, если синтаксический элемент уровня SPS (sps_video_parameter_set_id) больше 0, определение, что inter_layer_ref_pics_present_flag равен 0, указывает, что ILRP не используется для внешнего предсказания какой-либо кодированной картинки в CVS.
24. Способ по п. 23, дополнительно содержащий:
определение, что синтаксический элемент с межуровневой поддержкой (inter_layer_ref_pics_flag) равный 1 указывает, что ILRP используются для внешнего предсказания одной или более кодированных картинок в CVS.
US 2019007692 A1, 2019.01.03 | |||
WO 2019161102 A1, 2019.08.22 | |||
US 10200702 B2, 2019.02.05 | |||
US 10187662 B2, 2019.01.22 | |||
US 10003815 B2, 2018.06.19 | |||
US 9161039 B2, 2015.10.13 | |||
US 2016255350 A1, 2016.09.01 | |||
ИНДИКАЦИЯ И АКТИВАЦИЯ НАБОРОВ ПАРАМЕТРОВ ДЛЯ КОДИРОВАНИЯ ВИДЕО | 2013 |
|
RU2646381C2 |
КОДИРОВАНИЕ НАБОРОВ ПАРАМЕТРОВ И ЗАГОЛОВКОВ ЕДИНИЦ NAL ДЛЯ КОДИРОВАНИЯ ВИДЕО | 2013 |
|
RU2633117C2 |
СИГНАЛИЗАЦИЯ ДАННЫХ ДЛЯ ДОЛГОСРОЧНЫХ ЭТАЛОННЫХ ИЗОБРАЖЕНИЙ ДЛЯ КОДИРОВАНИЯ ВИДЕО | 2013 |
|
RU2635248C2 |
US 2018115787 A1, 2018.04.26. |
Авторы
Даты
2024-07-29—Публикация
2020-09-24—Подача