СИГНАЛИЗАЦИЯ СИНТАКСИЧЕСКИХ ЭЛЕМЕНТОВ НА УРОВНЕ БЕЗ ИЗОБРАЖЕНИЙ НА УРОВНЕ ИЗОБРАЖЕНИЙ Российский патент 2024 года по МПК H04N19/174 H04N19/70 

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

Перекрестная ссылка на родственную заявку

Данная заявка испрашивает приоритет предварительной заявки США № 62/905,244, поданной 24 сентября 2019 года компанией Фьючервэй Текнолоджиз, Инк. и озаглавленной “Signalling of Non-Picture Level Syntax Elements in Picture Header In Video Coding”, которая включена в данный документ путем ссылки.

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

Объем видеоданных, необходимых для отображения даже относительно короткого видео, может быть значительным, что может привести к трудностям в тех случаях, когда данные должны передаваться в потоковом режиме или передаваться иным образом по сети связи с ограниченной пропускной способностью. Таким образом, видеоданные, как правило, сжимаются перед передачей по современным телекоммуникационным сетям. Размер видео также может быть проблемой, когда видео хранится в запоминающем устройстве, так как ресурсы памяти могут быть ограничены. Устройства для сжатия видео часто используют программное обеспечение и/или аппаратные средства в источнике для кодирования видеоданных перед передачей или хранением, тем самым уменьшая количество данных, необходимых для представления цифровых видеоизображений. Затем сжатые данные принимаются в пункте назначения устройством для распаковки видео, которое декодирует видеоданные. При ограниченных сетевых ресурсах и постоянно растущих требованиях к более высокому качеству видео желательны улучшенные технологии сжатия и распаковки, которые улучшают коэффициент сжатия практически без ущерба для качества изображения.

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

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

В вариантах осуществления синтаксические элементы включены в заголовок изображения тогда, когда синтаксические элементы являются одинаковыми, или включены в заголовок слайса тогда, когда синтаксические элементы являются разными. Однако в некоторых вариантах осуществления синтаксические элементы могут не включаться ни в то, ни в другое. Во-первых, в PH могут присутствовать синтаксические элементы на уровне без изображений. Синтаксические элементы на уровне без изображений представляют собой синтаксические элементы, которые находятся на уровне битового видеопотока, отличном от уровня изображений. Во-вторых, для каждой категории синтаксических элементов на уровне без изображений, флаг задает то, когда синтаксические элементы категории присутствуют в заголовках PH или слайсов. Флаг может находиться в PH. Синтаксические элементы на уровне без изображений включают в себя то, что относится к сигнализации RPL, объединенные флаги знаков Cb Cr, разрешение и параметры инструмента SAO, разрешение и параметры инструмента ALF, разрешение и параметры инструмента LMCS и разрешение и параметры инструмента списка масштабирования. В-третьих, когда в PH присутствуют синтаксические элементы на уровне без изображений, соответствующие синтаксические элементы не должны присутствовать ни в одном слайсе изображения, ассоциированного с заголовком изображения, содержащим синтаксические элементы. Значения синтаксических элементов на уровне без изображений, которые присутствуют в PH, применяются ко всем слайсам изображения, ассоциированным с заголовком изображения, содержащим синтаксические элементы. В-четвертых, когда синтаксические элементы на уровне без изображений отсутствуют в PH, соответствующие синтаксические элементы могут присутствовать в заголовках слайсов изображения, ассоциированного с заголовком изображения. Перемещая сигнализацию синтаксических элементов на уровне без изображений на уровень изображений, уменьшается избыточность, и в кодированном битовом потоке остается меньше бесполезных битов.

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

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

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

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

При необходимости в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой битовый поток дополнительно содержит флаг SPS RPL, где флаг SPS RPL задает то, что RPL i получен на основе одного из синтаксисов ref_pic_list_struct(listIdx, rplsIdx) структуры при listIdx, равным i в SPS, или задает то, что RPL i получен на основе одной из синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, которая непосредственно включена.

При необходимости в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой битовый поток дополнительно содержит индекс RPL, где индекс RPL задает индекс, в списке синтаксических структур ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, включенном в набор параметров последовательности (SPS) синтаксической структуры ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, которая используется для получения RPL i текущего изображения.

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

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

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

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

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

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

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

При необходимости в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой способ дополнительно содержит выработку флага SPS RPL, где флаг SPS RPL задает то, что RPL i получен на основе одной из синтаксических структур ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i в SPS, или задает то, что RPL i получен на основе одной из синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, которая непосредственно включена.

При необходимости в любом из предыдущих аспектов предусмотрена другая реализация аспекта, в которой способ дополнительно содержит выработку индекса RPL, где индекс RPL задает индекс, в списке синтаксических структур ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, включенном в SPS, синтаксической структуры ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, которая используется для получения RPL i текущего изображения.

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

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

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

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

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

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

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

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

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

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

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

Седьмой аспект относится к способу, реализованному видеодекодером и содержащему: прием, видеодекодером, битового видеопотока, содержащего синтаксический элемент, где синтаксический элемент задает то, что информация может присутствовать или отсутствовать в PH. или задает то, что информация может присутствовать или отсутствовать в заголовках слайсов; и декодирование, видеодекодером, с использованием синтаксического элемента кодированного изображения для получения декодированного изображения.

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

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

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

Фиг. 1 – блок-схема последовательности операций примерного способа кодирования видеосигнала.

Фиг. 2 – схематичное представление примерной системы кодирования и декодирования (кодека) для кодирования видео.

Фиг. 3 – схематичное представление, иллюстрирующее примерный видеокодер.

Фиг. 4 – схематичное представление, иллюстрирующее примерный видеодекодер.

Фиг. 5 иллюстрирует вариант осуществления битового видеопотока.

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

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

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

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

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

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

Фиг. 12 – схематичное представление устройства для кодирования видео.

Фиг. 13 – схематичное представление варианта осуществления средства кодирования.

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

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

В данном документе применяются следующие сокращения:

ALF: адаптивный контурный фильтр

APS: набор параметров адаптации

ASIC: специализированная интегральная схема

AU: единица доступа

AUD: разделитель единиц доступа

BT: бинарное дерево

CABAC: контекстно-адаптивное двоичное арифметическое кодирование

CAVLC: контекстно-адаптивное кодирование переменной длины

Cb: синий цветоразностный компонент

CLVS: послойно кодированная видеопоследовательность

CLVS: слой кодированной видеопоследовательности

CPU: центральный процессор

Cr: красный цветоразностный компонент

CRA: чистый произвольный доступ

CTB: блок дерева кодирования

CTU: единица дерева кодирования

CU: единица кодирования

CVS: кодированная видеопоследовательность

DC: постоянный ток

DCI: информация о возможностях декодирования

DCT: дискретное косинусное преобразование

DMM: режим моделирования глубины

DPB: буфер декодированного изображения

DPS: набор параметров декодирования

DSP: процессор цифровых сигналов

DST: дискретное синусоидальное преобразование

EO: электрически-оптический

FPGA: программируемая пользователем вентильная матрица

GDR: постепенное обновление при декодировании

HEVC: высокоэффективное кодирование видео

ID: идентификатор

IDR: мгновенное обновление декодирования

IEC: международная электротехническая комиссия

I/O: ввод/вывод

IRAP: точка произвольного доступа при внутрикадровом предсказании

ISO: международная организация по стандартизации

ITU: международный союз электросвязи

ITU-T: сектор стандартизации электросвязи ITU

LMCS: сопоставление яркости с масштабированием цветности

LTRP: долгосрочное опорное изображение

MVP: предиктор вектора движения

NAL: слой сетевой абстракции

OE: оптико-электрический

PH: заголовок изображения

PIPE: энтропийное кодирование с разделением интервала вероятности

POC: счетчик очередности изображений

PPS: набор параметров изображения

PU: единица изображения

QT: квадродерево

RADL: опережающее декодируемое изображение с произвольным доступом

RAM: оперативное запоминающее устройство

RASL: пропускающие произвольный доступ ведущие изображения

RBSP: полезная нагрузка последовательности необработанных байтов

RDO: оптимизация характеристики «скорость-искажение»

ROM: постоянное запоминающее устройство

RPL: список опорных изображений

Rx: блок приемника

SAD: сумма абсолютных разностей

SAO: адаптивное смещение выборки

SBAC: арифметическое кодирование на основе синтаксиса

SOP: последовательность изображений

SPS: набор параметров последовательности

SRAM: статическое RAM

SSD: сумма квадратов разностей

TCAM: троичная память с адресацией по содержимому

ТТ: троичное дерево

TU: единица преобразования

Tx: блок передатчика

VCL: слой кодирования видео

VPS: набор параметров видео

VVC: универсальное кодирование видео

Применяются следующие определения, если они не изменены в другом месте: Битовый поток представляет собой последовательность битов, включающую в себя видеоданные, которые сжимаются для передачи между кодером и декодером. Кодер – это устройство, использующее процессы кодирования для сжатия видеоданных в битовый поток. Декодер – это устройство, которое использует процессы декодирования для восстановления видеоданных из битового потока для отображения. Изображение представляет собой массив выборок яркости или выборок цветности, который создает кадр или поле. Изображение, которое кодируется или декодируется, может называться текущим изображением. Опорное изображение содержит опорные выборки, которые можно использовать при кодировании других изображений путем ссылки в соответствии с межслойным предсказанием или межслойным предсказанием. Список опорных изображений представляет собой список опорных изображений, используемых для межкадрового или межслойного предсказания. Флаг представляет собой переменную или однобитовый синтаксический элемент, который может принимать одно из двух возможных значений: 0 или 1. Некоторые системы кодирования видео используют два списка опорных изображений, которые можно обозначить как список один опорных изображений и список ноль опорных изображений. Структура списка опорных изображений представляет собой адресуемую синтаксическую структуру, которая содержит несколько списков опорных изображений. Межкадровое предсказание – это механизм кодирования выборок текущего изображения путем ссылки на указанные выборки в опорном изображении, которое отличается от текущего изображения, где опорное изображение и текущее изображение находятся в одном и том же слое. Запись структуры списка опорных изображений представляет собой адресуемое местоположение в структуре списка опорных изображений, которое указывает опорное изображение, ассоциированное со списком опорных изображений. Заголовок слайса является частью кодированного слайса, содержащего элементы данных, относящиеся ко всем видеоданным в тайле, представленном в слайсе. PPS содержит данные, которые относятся ко всему изображению. Более конкретно, PPS представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются к нулевым или более полным кодированным изображениям, которые определены синтаксическим элементом, находящимся в каждом заголовке изображения. SPS содержит данные, которые относятся к последовательности изображений. AU представляет собой набор из одного или более кодированных изображений, ассоциированных с одним и тем же временем отображения (например, с одним и тем же счетчиком очередности изображений) для вывода из DPB (например, для отображения пользователю). AUD указывает начало AU или границу между AU. Декодированная видеопоследовательность представляет собой последовательность изображений, восстановленных декодером при подготовке к отображению пользователю.

На фиг. 1 показана блок-схема последовательности операций примерного способа 100 кодирования видеосигнала. В частности, видеосигнал кодируется в кодере. Процесс кодирования сжимает видеосигнал, используя различные механизмы, чтобы уменьшить размер видеофайла. Меньший размер файла позволяет передавать сжатый видеофайл пользователю, уменьшая при этом ассоциированные с этим издержки на полосу пропускания. Затем декодер декодирует сжатый видеофайл, чтобы восстановить исходный видеосигнал для отображения конечному пользователю. Процесс декодирования, как правило, повторяет процесс кодирования, что позволяет декодеру последовательно восстанавливать видеосигнал.

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

На этапе 103 видео разделяется на блоки. Разделение включает в себя разделение пикселей в каждом кадре на квадратные и/или прямоугольные блоки для сжатия. Например, в HEVC кадр может быть сначала разделен на CTU, которые представляют собой блоки заданного размера (например, шестьдесят четыре пикселя на шестьдесят четыре пикселя). CTU содержат как выборки яркости, так и выборки цветности. Деревья кодирования могут использоваться для разделения CTU на блоки, и затем для рекурсивного подразделения блоков до тех пор, пока не будут достигнуты конфигурации, поддерживающие дальнейшее кодирование. Например, компоненты яркости кадра могут разделяться до тех пор, пока отдельные блоки не будут содержать относительно однородные значения света. Кроме того, компоненты цветности кадра могут разделяться до тех пор, пока отдельные блоки не будут содержать относительно однородные значения цвета. Соответственно, механизмы разделения различаются в зависимости от содержания видеокадров.

На этапе 105 используются различные механизмы сжатия для сжатия блоков изображения, разделенных на этапе 103. Например, может использоваться межкадровое предсказание и/или внутрикадровое предсказание. Межкадровое предсказание предназначено для использования того факта, что объекты в общей сцене имеют тенденцию появляться в виде следующих друг за другом кадрах. Соответственно, блок, изображающий объект в опорном кадре, не нужно повторно описывать в соседних кадрах. В частности, объект, такой как таблица, может оставаться в постоянной позиции в течение нескольких кадров. Следовательно, таблица описывается один раз, и соседние кадры могут ссылаться на опорный кадр. Механизмы сопоставления шаблонов могут использоваться для сопоставления объектов в нескольких кадрах. Кроме того, движущиеся объекты могут быть представлены в нескольких кадрах, например, из-за движения объекта или движения камеры. В качестве конкретного примера видео может показывать автомобиль, который движется на экране в течение нескольких кадров. Для описания такого движения можно использовать векторы движения. Вектор движения – это двумерный вектор, обеспечивающий смещение координат объекта в кадре до координат объекта в опорном кадре. Таким образом, межкадровое предсказание позволяет кодировать блок изображения в текущем кадре как набор векторов движения, указывающих смещение от соответствующего блока в опорном кадре.

При внутрикадровом предсказании блоки кодируются в общем кадре. Внутрикадровое предсказание использует тот факт, что компоненты яркости и цветности имеют тенденцию группироваться в кадре. Например, участок зелени в части дерева имеет тенденцию располагаться рядом с аналогичными участками зелени. Внутрикадровое предсказание использует несколько режимов направленного предсказания (например, 33 в HEVC), планарный режим и режим DC. Направленные режимы указывают, что текущий блок является аналогичным/таким же, как выборки соседнего блока в соответствующем направлении. Планарный режим указывает то, что последовательность блоков по строкам/столбцам (например, в плоскости) может быть интерполирована на основе соседних блоков на краях строки. Планарный режим по существу указывает на плавный переход света/цвета по строке/столбцу за счет использования относительно постоянного наклона при изменении значений. Режим DC используется для сглаживания границ и указывает то, что блок является аналогичным/таким же, как среднее значение, ассоциированное с выборками всех соседних блоков, ассоциированных с угловыми направлениями режимов направленного предсказания. Соответственно, блоки внутрикадрового предсказания могут представлять блоки изображений как различные относительные значения режима предсказания вместо фактических значений. Кроме того, блоки межкадрового предсказания могут представлять блоки изображений как значения векторов движения вместо фактических значений. Так или иначе, в некоторых случаях блоки предсказания могут не точно представлять блоки изображений. Любые различия сохраняются в остаточных блоках. Преобразования могут быть применены к остаточным блокам для дальнейшего сжатия файла.

На этапе 107 могут применяться различные технологии фильтрации. В HEVC фильтры применяются в соответствии со схемой внутриконтурной фильтрации. Предсказание на основе блоков, рассмотренное выше, может привести к созданию блочных изображений в декодере. Кроме того, схема предсказания на основе блоков позволяет кодировать блок, и затем восстанавливать кодированный блок для последующего использования в качестве опорного блока. Схема внутриконтурной фильтрации итеративно применяет к блокам/кадрам фильтры подавления шума, деблокирующие фильтры, адаптивные контурные фильтры и фильтры SAO. Эти фильтры уменьшают такие артефакты блокировки для того, чтобы можно было точно восстановить кодированный файл. Кроме того, эти фильтры уменьшают артефакты в восстановленных опорных блоках, так что артефакты с меньшей вероятностью создают дополнительные артефакты в последующих блоках, которые кодируются на основе восстановленных опорных блоков.

После того, как видеосигнал был разделен, сжат и отфильтрован, результирующие данные кодируются в битовый поток на этапе 109. Битовый поток включает в себя данные, рассмотренные выше, а также любые данные сигнализации, необходимые для поддержки надлежащего восстановления видеосигнала в декодере. Например, такие данные могут включать в себя данные разделения, данные предсказания, остаточные блоки и различные флаги, предоставляющие декодеру инструкции по кодированию. Битовый поток может храниться в памяти для передачи в декодер по запросу. Битовый поток может быть также широковещательно и/или многоадресно передан в множество декодеров. Создание битового потока является итеративным процессом. Соответственно, этапы 101, 103, 105, 107 и 109 могут выполняться непрерывно и/или одновременно во многих кадрах и блоках. Порядок, показанный на фиг. 1, представлен для ясности и простоты обсуждения и не предназначен для ограничения процесса кодирования видео определенным порядком.

Декодер принимает битовый потока и начинает процесс декодирования на этапе 111. В частности, декодер использует схему энтропийного декодирования для преобразования битового потока в соответствующий синтаксис и видеоданные. Декодер использует синтаксические данные из битового потока для определения разделов для кадров на этапе 111. Разделение должно совпадать с результатами разделения блоков на этапе 103. Теперь будет описано энтропийное кодирование/декодирование, используемое на этапе 111. В процессе сжатия кодер делает выбор из различных вариантов, например, выбирает схемы разделения блоков из нескольких возможных вариантов на основе пространственного позиционирования значений во входном(ых) изображении(ях). Сигнализация точного выбора может использовать большое количество бинов. В используемом в данном документе значении бин представляет собой двоичное значение, которое обрабатывается как переменная (например, битовое значение, которое может изменяться в зависимости от контекста). Энтропийное кодирование позволяет кодеру отбрасывать любые варианты, которые явным образом не подходят для конкретного случая, оставляя набор допустимых вариантов. Затем каждому допустимому варианту присваивается кодовое слово. Длина кодовых слов зависит от количества допустимых вариантов (например, один бин для двух вариантов, два бина для трех-четырех вариантов и т.д.). Затем кодер кодирует кодовое слово для выбранного варианта. Эта схема уменьшает размер кодовых слов, так как кодовые слова настолько велики, насколько это необходимо, чтобы однозначно указывать выбор из небольшого подмножества допустимых вариантов, в отличие от однозначного указания выбора из потенциально большого набора всех возможных вариантов. Затем декодер декодирует выбранный вариант, определяя набор допустимых опций аналогично кодеру. Определив набор допустимых вариантов, декодер может считать кодовое слово и определить выбор, сделанный кодером.

На этапе 113 декодер выполняет блочное декодирование. В частности, декодер использует обратные преобразования для выработки остаточных блоков. Затем декодер использует остаточные блоки и соответствующие блоки предсказания для восстановления блоков изображения в соответствии с разделением. Блоки предсказания могут включать в себя как блоки внутрикадрового предсказания, так и блоки межкадрового предсказания, выработанные кодером на этапе 105. Блоки восстановленного изображения затем помещаются в кадры восстановленного видеосигнала в соответствии с данными разделения, определенными на этапе 111. Синтаксис на этапе 113 также может быть обозначен в битовом потоке с помощью энтропийного кодирования, как обсуждалось выше.

На этапе 115 выполняется фильтрация кадров восстановленного видеосигнала способом, аналогичным этапу 107 в кодере. Например, фильтры подавления шума, фильтры устранения блочности, адаптивные контурные фильтры и фильтры SAO могут применяться к кадрам для удаления артефактов блочности. Как только кадры отфильтрованы, видеосигнал может быть выведен на дисплей на этапе 117 для просмотра конечным пользователем.

На фиг. 2 показано схематичное представление примерной системы 200 кодирования и декодирования (кодека) для кодирования видео. В частности, система 200 кодирования/декодирования обеспечивает функциональные возможности для поддержки реализации способа 100 функционирования. Система 200 кодирования/декодирования обобщена для отображения компонентов, используемых как в кодере, так и в декодере. Система 200 кодирования/декодирования принимает и разделяет видеосигнал, как описано в отношении этапов 101 и 103 в способе 100 функционирования, в результате чего получается разделенный видеосигнал 201. Затем система 200 кодирования/декодирования сжимает разделенный видеосигнал 201 в кодированный битовый поток, действуя в качестве кодера, как описано в отношении этапов 105, 107 и 109 в способе 100. При работе в качестве декодера система 200 кодирования/декодирования вырабатывает выходной видеосигнал из битового потока, как описано в отношении этапов 111, 113, 115 и 117 в способе 100 функционирования. Система 200 кодирования/декодирования включает в себя компонент 211 общего управления кодером, компонент 213 преобразования с масштабированием и квантования, компонент 215 внутрикадровой оценки, компонент 217 внутрикадрового предсказания, компонент 219 компенсации движения, компонент 221 оценки движения, компонент 229 масштабирования и обратного преобразования, компонент 227 анализа управления фильтром, компонент 225 внутриконтурных фильтров, компонент 223 буфера декодированного изображения и компонент 231 форматирования заголовка и CABAC. Такие компоненты соединены так, как показано на чертеже. На фиг. 2 черные линии указывают перемещение данных, подлежащих кодированию/декодированию, и пунктирные линии указывают перемещение управляющих данных, которые управляют работой других компонентов. Все компоненты системы 200 кодирования/декодирования могут присутствовать в кодере. Декодер может включать в себя подмножество компонентов системы 200 кодирования/декодирования. Например, декодер может включать в себя компонент 217 внутрикадрового предсказания, компонент 219 компенсации движения, компонент 229 масштабирования и обратного преобразования, компонент 225 внутриконтурных фильтров, и компонент 223 буфера декодированного изображения. Теперь эти компоненты будут описаны.

Разделенный видеосигнал 201 представляет собой захваченную видеопоследовательность, которая была разделена на блоки пикселей с помощью дерева кодирования. Дерево кодирования использует различные режимы разделения для разделения блока пикселей на более мелкие блоки пикселей. Затем эти блоки можно разделить на еще более мелкие блоки. Блоки могут называться узлами дерева кодирования. Более крупные родительские узлы разделяются на более мелкие дочерние узлы. Количество раз, когда узел подразделяется, называется глубиной узла/дерева кодирования. В некоторых случаях разделенные блоки могут быть включены в CU. Например, CU может быть частью CTU, которая содержит блок яркости, блок(и) Cr и блок(и) Cb вместе с соответствующими синтаксическими инструкциями для КР. Режимы разделения могут включать в себя BT, TT и QT, используемые для разделения узла на два, три или четыре дочерних узла, соответственно, различной формы в зависимости от используемых режимов разделения. Разделенный видеосигнал 201 направляется в компонент 211 общего управления кодером, компонент 213 преобразования с масштабированием и квантования, компонент 215 внутрикадровой оценки, компонент 227 анализа управления фильтром и компонент 221 оценки движения для сжатия.

Компонент 211 общего управления кодером выполнен с возможностью принятия решений, ассоциированных с кодированием изображений видеопоследовательности в битовый поток в соответствии с ограничениями приложения. Например, компонент 211 общего управления кодером управляет оптимизацией размер битовой скорости/битового потока в зависимости от качества восстановления. Такие решения могут приниматься на основе наличия дискового пространства/пропускной способности и запросов разрешения изображения. Компонент 211 общего управления кодером также управляет использованием буфера в свете скорости передачи, чтобы смягчить проблемы опустошения и переполнения буфера. Чтобы справиться с этими проблемами, компонент 211 общего управления кодером управляет разделением, предсказанием и фильтрацией с помощью других компонентов. Например, компонент 211 общего управления кодером может динамически увеличивать сложность сжатия для увеличения разрешения и увеличения использования полосы пропускания или уменьшать сложность сжатия для уменьшения разрешения и использования полосы пропускания. Следовательно, компонент 211 общего управления кодером управляет другими компонентами системы 200 кодирования/декодирования, чтобы сбалансировать качество восстановления видеосигнала с проблемами скорости передачи битов. Компонент 211 общего управления кодером создает управляющие данные, которые управляют работой других компонентов. Управляющие данные также направляются в компонент 231 форматирования заголовка и CABAC для кодирования в битовый поток для сигнализации параметров для декодирования в декодере.

Разделенный видеосигнал 201 также отправляется в компонент 221 оценки движения и компонент 219 компенсации движения для межкадрового предсказания. Кадр или часть разделенного видеосигнала 201 может быть разделена на множество видеоблоков. Компонент 221 оценки движения и компонент 219 компенсации движения выполняют межкадровое кодирование с предсказанием принятого видеоблока относительно одного или более блоков в одном или более опорных кадрах для обеспечения временного предсказания. Система 200 кодирования/декодирования может выполнять несколько проходов кодирования, например, для выбора соответствующего режима кодирования для каждого блока видеоданных.

Компонент 221 оценки движения и компонент 219 компенсации движения могут быть в высокой степени интегрированы, но проиллюстрированы отдельно для концептуальных целей. Оценка движения, выполняемая компонентом 221 оценки движения, представляет собой процесс выработки векторов движения, в котором оценивается движение для видеоблоков. Например, вектор движения может указывать смещение кодированного объекта относительно блока предсказания. Блок предсказания – это блок, который точно соответствует кодируемому блоку с точки зрения разности пикселей. Блок предсказания также может упоминаться как опорный блок. Такая разность пикселей может быть определена с помощью SAD, SSD или другими показателями разности. HEVC использует несколько кодированных объектов, включая CTU, CTB и CU. Например, CTU можно разделить на CTB, которые затем можно разделить на CB для включения в CU. CU может быть закодирована как единица предсказания, содержащая данные предсказания, и/или TU, содержащую преобразованные остаточные данные для CU. Компонент 221 оценки движения вырабатывает векторы движения, единицы предсказания и TU, используя анализ характеристики «скорость-искажение» как часть процесса оптимизации характеристики «скорость-искажение». Например, компонент 221 оценки движения может определить несколько опорных блоков, множество векторов движения и т.д. для текущего блока/кадра и может выбирать опорные блоки, векторы движения и т.д., имеющие наилучшие характеристики «скорость-искажение». Наилучшие характеристики «скорость-искажение» уравновешивают качество восстановления видео (например, объем потерь данных при сжатии) с эффективностью кодирования (например, размер окончательного кодирования).

В некоторых примерах система 200 кодирования/декодирования может вычислять значения для позиций субцелых пикселей опорных изображений, сохраненных в компоненте 223 буфера декодированных изображений. Например, система 200 кодирования/декодирования видео может интерполировать значения позиций четверти пикселей, позиции одной восьмой пикселей или другие позиции дробных пикселей опорного изображения. Таким образом, компонент 221 оценки движения может выполнять поиск движения относительно позиций целых пикселей и позиций дробных пикселей и выводить вектор движения с точностью до дробных пикселей. Компонент 221 оценки движения вычисляет вектор движения для единицы предсказания видеоблока в межкадровом кодированном слайсе путем сравнения позиции единицы предсказания с позицией блока предсказания опорного изображения. Компонент 221 оценки движения выводит вычисленный вектор движения в виде данных движения для форматирования заголовка, и компонент 231 CABAC для кодирования и движения к компоненту 219 компенсации движения.

Компенсация движения, выполняемая компонентом 219 компенсации движения, может включать выборку или выработку блока предсказания на основе вектора движения, определенного компонентом 221 оценки движения. Опять же, в некоторых примерах компонент 221 оценки движения и компонент 219 компенсации движения могут быть функционально интегрированы. После приема вектора движения для единицы предсказания текущего видеоблока компонент 219 компенсации движения может определить местонахождение блока предсказания, на который указывает вектор движения. Затем формируется остаточный видеоблок путем вычитания значений пикселей блока предсказания из значений пикселей текущего кодируемого видеоблока, формируя значения разности пикселей. В общем, компонент 221 оценки движения выполняет оценку движения относительно компонентов яркости, и компонент 219 компенсации движения использует векторы движения, вычисленные на основе компонентов яркости как для компонентов цветности, так и для компонентов яркости. Блок предсказания и остаточный блок направляются в компонент 213 преобразования с масштабированием и квантования.

Разделенный видеосигнал 201 также отправляется в компонент 215 внутрикадровой оценки и компонент 217 внутрикадрового предсказания. Как и в случае компонента 221 оценки движения и компонента 219 компенсации движения, компонент 215 внутрикадровой оценки и компонент 217 внутрикадрового предсказания могут быть сильно интегрированы, но они проиллюстрированы по отдельности для концептуальных целей. Компонент 215 внутрикадровой оценки и компонент 217 внутрикадрового предсказания внутрикадрово предсказывают текущий блок относительно блоков в текущем кадре в качестве альтернативы межкадровому предсказанию, выполняемому компонентом 221 оценки движения и компонентом 219 компенсации движения между кадрами, как описано выше. В частности, компонент 215 внутрикадровой оценки определяет режим внутрикадрового предсказания, который используется для кодирования текущего блока. В некоторых примерах компонент 215 внутрикадровой оценки выбирает соответствующий режим внутрикадрового предсказания для кодирования текущего блока из нескольких протестированных режимов внутрикадрового предсказания. Выбранные режимы внутрикадрового предсказания затем направляются в компонент форматирования заголовка и CABAC 231 для кодирования.

Например, компонент 215 внутрикадровой оценки вычисляет значения скорости-искажения, используя анализ характеристики «скорость-искажение» для различных протестированных режимов внутрикадрового предсказания и выбирает режим внутрикадрового предсказания, имеющий наилучшие характеристики скорости-искажения среди протестированных режимов. Как правило, анализ характеристики «скорость-искажение» определяет степень искажения (или ошибки) между кодированным блоком и исходным некодированным блоком, который был закодирован для получения кодированного блока, а также битовой скорости (например, количества битов), используемой для получения кодированного блока. Компонент 215 внутрикадровой оценки вычисляет соотношения из искажений и скоростей для различных кодированных блоков, чтобы определить, какой режим внутрикадрового предсказания демонстрирует наилучшее значение скорости-искажения для блока. В дополнение к этому, компонент 215 внутрикадровой оценки может быть выполнен с возможностью кодирования блоков глубины карты глубины с использованием DMM на основе RDO.

Компонент 217 внутрикадрового предсказания может вырабатывать остаточный блок из блока предсказания на основе выбранных режимов внутрикадрового предсказания, определенных компонентом 215 внутрикадровой оценки, когда он реализован в кодере, или считывать остаточный блок из битового потока в случае реализации в декодере. Остаточный блок включает в себя разность значений между блоком предсказания и исходным блоком, представленным в виде матрицы. Затем остаточный блок направляется компоненту 213 преобразования с масштабированием и квантования. Компонент 215 внутрикадровой оценки и компонент 217 внутрикадрового предсказания могут работать как с компонентами яркости, так и с компонентами цветности.

Компонент 213 преобразования с масштабированием и квантования выполнен с возможностью дополнительного сжатия остаточного блока. Компонент 213 преобразования с масштабированием и квантования применяет преобразование, такое как DCT, DST или концептуально аналогичное преобразование, к остаточному блоку, создавая видеоблок, содержащий остаточные значения коэффициентов преобразования. Кроме того, можно также использовать вейвлет-преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразований. Преобразование позволяет преобразовать информацию остатка из области пиксельных значений в область преобразования, такую как частотная область. Компонент 213 преобразования с масштабированием и квантования также выполнен с возможностью масштабирования преобразованной остаточной информации, например, на основе частоты. Такое масштабирование включает применение коэффициента масштабирования к остаточной информации таким образом, чтобы информация о разных частотах квантовалась с разной степенью детализации, что может повлиять на конечное визуальное качество восстановленного видео. Компонент 213 преобразования с масштабированием и квантования также выполнен с возможностью квантования коэффициентов преобразования для дальнейшего снижения скорости передачи битов. Процесс квантования позволяет уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть изменена посредством регулировки параметра квантования. В некоторых примерах компонент 213 преобразования с масштабированием и квантования может затем выполнять сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. Квантованные коэффициенты преобразования направляются в компонент форматирования заголовка и CABAC 231 для кодирования в битовый поток.

Компонент 229 масштабирования и обратного преобразования применяет обратную операцию компонента 213 преобразования с масштабированием и квантования для поддержки оценки движения. Компонент 229 масштабирования и обратного преобразования применяет обратное масштабирование, преобразование и/или квантование для восстановления остаточного блока в пиксельной области, например, для последующего использования в качестве опорного блока, который может стать блоком предсказания для другого текущего блока. Компонент 221 оценки движения и/или компонент 219 компенсации движения могут вычислять опорный блок путем добавления остаточного блока обратно к соответствующему блоку предсказания для использования при оценке движения более позднего блока/кадра. К восстановленным опорным блокам применяются фильтры для устранения артефактов, возникающих во время масштабирования, квантования и преобразования. В противном случае такие артефакты могут вызвать неточное предсказание (и создать дополнительные артефакты) при предсказании последующих блоков.

Компонент 227 анализа управления фильтром и компонент 225 внутриконтурных фильтров применяют фильтры к остаточным блокам и/или к восстановленным блокам изображения. Например, преобразованный остаточный блок из компонента 229 масштабирования и обратного преобразования может быть объединен с соответствующим блоком предсказания из компонента 217 внутрикадрового предсказания и/или компонента 219 компенсации движения для восстановления исходного блока изображения. Затем фильтры могут быть применены к восстановленному блоку изображения. В некоторых примерах вместо этого фильтры могут применяться к остаточным блокам. Как и в случае с другими компонентами, показанными на фиг. 2, компонент 227 анализа управления фильтром и компонент 225 внутриконтурных фильтров в высокой степени интегрированы и могут быть реализованы вместе, но изображены отдельно для концептуальных целей. Фильтры, применяемые к восстановленным опорным блокам, применяются к конкретным областям пространства и включают в себя несколько параметров для регулировки применения таких фильтров. Компонент 227 анализа управления фильтром анализирует восстановленные опорные блоки, чтобы определить то, где такие фильтры должны применяться, и устанавливает соответствующие параметры. Такие данные направляются в компонент 231 форматирования заголовка и CABAC в качестве данных управления фильтром для кодирования. Компонент 225 внутриконтурных фильтров применяет такие фильтры на основе данных управления фильтром. Фильтры могут включать в себя фильтр устранения блочности, фильтр подавления шума, фильтр SAO и адаптивный контурной фильтр. В зависимости от примера такие фильтры могут применяться в пространственной/пиксельной области (например, к восстановленному блоку пикселей) или в частотной области.

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

Компонент 231 форматирования заголовка и CABAC принимает данные из различных компонентов системы 200кодирования/декодирования и кодирует такие данные в кодированный битовый поток для передачи в декодер. В частности, компонент 231 форматирования заголовка и CABAC вырабатывает различные заголовки для кодирования данных управления, таких как общие данные управления и данные управления фильтром. Кроме того, данные предсказания, включая данные внутрикадрового предсказания и движения, а также остаточные данные в виде данных квантованных коэффициентов преобразования, кодируются полностью в битовый поток. Окончательный битовый поток включает в себя всю информацию, необходимую декодеру для восстановления исходного разделенного видеосигнала 201. Такая информация может также включать в себя таблицы индексов внутрикадрового режима предсказания (также называемые таблицами сопоставления кодовых слов), определения контекстов кодирования для различных блоков, указания наиболее вероятных режимов внутрикадрового предсказания, указание информации раздела и т.д. Такие данные могут быть закодированы с применением энтропийного кодирования. Например, информация может быть закодирована с использованием CAVLC, CABAC, SBAC, PIPE или другого способа энтропийного кодирования. После энтропийного кодирования кодированный битовый поток может быть передан в другое устройство (например, видеодекодер) или заархивирован для последующей передачи или извлечения.

На фиг. 3 показана блок-схема, иллюстрирующая примерный видеокодер 300. Видеокодер 300 может использоваться для реализации функций кодирования системы 200 кодирования/декодирования и/или реализации этапов 101, 103, 105, 107 и/или 109 способа 100 функционирования. Кодер 300 разделяет входной видеосигнал, в результате чего получается разделенный видеосигнал 301, который по существу аналогичен разделенному видеосигналу 201. Затем разделенный видеосигнал 301 сжимается и кодируется в битовый поток компонентами кодера 300.

В частности, разделенный видеосигнал 301 направляется в компонент 317 внутрикадрового предсказания для внутрикадрового предсказания. Компонент 317 внутрикадрового предсказания может быть по существу аналогичен компоненту 215 внутрикадровой оценки и компоненту 217 внутрикадрового предсказания. Разделенный видеосигнал 301 также направляется в компонент 321 компенсации движения для межкадрового предсказания на основе опорных блоков в компоненте 323 буфера декодированных изображений. Компонент 321 компенсации движения может быть по существу аналогичен компоненту 221 оценки движения и компоненту 219 компенсации движения. Блоки предсказания и остаточные блоки из компонента 317 внутрикадрового предсказания и компонента 321 компенсации движения направляются в компонент 313 преобразования и квантования для преобразования и квантования остаточных блоков. Компонент 313 преобразования и квантования может быть по существу аналогичен компоненту 213 преобразования с масштабированием и квантования. Преобразованные и квантованные остаточные блоки и соответствующие блоки предсказания (вместе с соответствующими управляющими данными) направляются в компонент 331 энтропийного кодирования для кодирования в битовый поток. Компонент 331 энтропийного кодирования может быть по существу аналогичен компоненту 231 форматирования заголовка и CABAC.

Преобразованные и квантованные остаточные блоки и/или соответствующие блоки предсказания также направляются из компонента 313 преобразования и квантования в компонент 329 обратного преобразования и квантования для восстановления в опорные блоки для использования компонентом 321 компенсации движения. Компонент 329 обратного преобразования и квантования может быть по существу аналогичен компоненту 229 масштабирования и обратного преобразования. Внутриконтурные фильтры в компоненте 325 внутриконтурных фильтров также применяются к остаточным блокам и/или восстановленным опорным блокам, в зависимости от примера. Компонент 325 внутриконтурных фильтров может быть по существу аналогичен компоненту 227 анализа управления фильтром и компоненту 225 внутриконтурных фильтров. Компонент 325 внутриконтурных фильтров может включать в себя множество фильтров, как описано в отношении компонента 225 внутриконтурных фильтров. Отфильтрованные блоки затем сохраняются в компоненте 323 буфера декодированных изображений для использования в качестве опорных блоков компонентом 321 компенсации движения. Компонент 323 буфера декодированных изображений может быть по существу аналогичен компоненту 223 буфера декодированных изображений.

На фиг. 4 показана блок-схема, иллюстрирующая примерный видеодекодер 400. Видеодекодер 400 может использоваться для реализации функций декодирования системы 200 кодирования/декодирования и/или реализации этапов 111, 113, 115 и/или 117 способа 100 функционирования. Декодер 400 принимает битовый поток, например, из кодера 300, и вырабатывает восстановленный выходной видеосигнал на основе битового потока для отображения конечному пользователю.

Битовый поток принимается компонентом 433 энтропийного декодирования. Компонент 433 энтропийного декодирования выполнен с возможностью реализации схемы энтропийного декодирования, такой как кодирование CAVLC, CABAC, SBAC, PIPE или другие технологии энтропийного кодирования. Например, компонент 433 энтропийного декодирования может использовать информацию заголовка для предоставления контекста для интерпретации дополнительных данных, кодированных как кодовые слова в битовый поток. Декодированная информация включает в себя любую требуемую информацию для декодирования видеосигнала, такую как общие данные управления, данные управления фильтром, информацию разделения, данные движения, данные предсказания и квантованные коэффициенты преобразования из остаточных блоков. Квантованные коэффициенты преобразования направляются в компонент 429 обратного преобразования и квантования для восстановления в остаточные блоки. Компонент 429 обратного преобразования и квантования может быть аналогичен компоненту 329 обратного преобразования и квантования.

Восстановленные остаточные блоки и/или блоки предсказания направляются в компонент 417 внутрикадрового предсказания для восстановления в блоки изображений на основе операций внутрикадрового предсказания. Компонент 417 внутрикадрового предсказания может быть аналогичен компоненту 215 внутрикадровой оценки и компоненту 217 внутрикадрового предсказания. В частности, компонент 417 внутрикадрового предсказания использует режимы предсказания для обнаружения опорного блока в кадре и применяет остаточный блок к результату для восстановления внутрикадрово предсказанных блоков изображения. Восстановленные внутрикадрово предсказанные блоки изображения, и/или остаточные блоки и соответствующие данные межкадрового предсказания направляются в компонент 423 буфера декодированных изображений через компонент 425 внутриконтурных фильтров, который может быть по существу аналогичен компоненту 223 буфера декодированных изображений и в компонент 225 внутриконтурных фильтров, соответственно. Компонент 425 внутриконтурных фильтров фильтрует восстановленные блоки изображений, остаточные блоки и/или блоки предсказания, и такая информация сохраняется в компоненте 423 буфера декодированного изображения. Восстановленные блоки изображений из компонента 423 буфера декодированного изображения направляются в компонент 421 компенсации движения для межкадрового предсказания. Компонент 421 компенсации движения может быть по существу аналогичен компоненту 221 оценки движения и/или компоненту 219 компенсации движения. В частности, компонент 421 компенсации движения использует векторы движения из опорного блока для формирования блока предсказания и применяет остаточный блок к результату для восстановления блока изображения. Результирующие восстановленные блоки также могут быть перенаправлены через компонент 425 внутриконтурных фильтров в компонент 423 буфера декодированных изображений. Компонент 423 буфера декодированных изображений продолжает хранить дополнительные восстановленные блоки изображений, которые могут быть восстановлены в кадры с использованием информации разделения. Такие кадры также могут быть помещены в последовательность. Последовательность выводится на дисплей в виде восстановленного выходного видеосигнала.

На фиг. 5 показан вариант осуществления битового видеопотока 500. Битовый видеопоток 500 также может называться кодированным битовым видеопотоком, битовым потоком или их вариантами. Битовый поток 500 содержит по меньшей мере одну PU 501. Хотя на фиг. 5 показаны три PU 501, в случае практического применения в битовом потоке 500 может присутствовать другое количество PU 501. Каждая PU 501 представляет собой набор единиц NAL, которые ассоциированы друг с другом в соответствии с заданным правилом классификации, являются последовательными в порядке декодирования и содержат ровно одно кодированное изображение (например, изображение 514). В варианте осуществления каждая PU 501 имеет или ассоциируется с временным ID 519.

В варианте осуществления каждая PU 501 содержит одно или несколько из следующего: DCI 502, VPS 504, SPS 506, PPS 508, PH 512 и изображение 514. Каждое из: DCI 502, VPS 504, SPS 506 и PPS 508 в общем случае может называться набором параметров. Другие наборы параметров, не показанные на фиг. 5, также могут быть включены в битовый поток 500, такой, например, как APS, который представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются к нулевым или более слайсам, которые определены нулевым или более синтаксическими элементами, обнаруженными в заголовках 520 слайсов.

DCI 502, которая также может называться DPS, представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются ко всему битовому потоку. DCI 502 включает в себя параметры, которые остаются постоянными в течение времени существования битового видеопотока (например, битового потока 500), что может быть преобразовано во время существования сеанса. DCI 502 может включать в себя информацию о профиле, уровне и подпрофиле для определения точки взаимодействия максимальной сложности, которая гарантированно никогда не будет превышена, даже если в сеансе происходит объединение видеопоследовательностей. Кроме того, при необходимости она дополнительно включает в себя флаги ограничений, которые указывают то, что битовый видеопоток будет ограничен использованием определенных функций, как это указано значениями этих флагов. В связи с этим битовый поток может быть помечен как не использующий определенные инструменты, что позволяет, среди прочего, распределять ресурсы при реализации декодера. Как и все наборы параметров, DCI 502 присутствует при первой ссылке, и на нее ссылается самое первое изображение в видеопоследовательности, подразумевая, что оно должно быть отправлено среди первых единиц NAL в битовом потоке. Хотя в битовом потоке может быть несколько DCI 502, значение синтаксических элементов в нем не может быть несовместимым при ссылке на него.

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

SPS 506 содержит данные, которые являются общими для всех изображений в SOP. SPS 506 представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются к нулевым или более полным CLVS, что определяется содержанием синтаксического элемента, обнаруженного в PPS, на который ссылается синтаксический элемент, обнаруженный в заголовке каждого изображения. Напротив, PPS 508 содержит данные, общие для всего изображения. PPS 508 представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются к нулевым или более полным кодированным изображениям, что определено синтаксическим элементом, найденным в каждом заголовке изображения (например, PH 512).

DCI 502, VPS 504, SPS 506 и PPS 508 содержатся в единицах NAL разных типов. Единица NAL представляет собой синтаксическую структуру, содержащую указание типа данных, которому необходимо следовать (например, кодированные видеоданные). Единицы NAL подразделяются на единицы NAL VCL и единицы без VCL. Единицы NAL VCL содержат данные, которые представляют значения выборок в видеоизображениях, и единицы NAL без VCL содержат любую ассоциированную дополнительную информацию, такую как наборы параметров (важные данные, которые могут применяться к ряду единиц NAL VCL) и дополнительную информацию расширения (информацию о времени и другие дополнительные данные, которые могут повысить удобство использования декодированного видеосигнала, но не являются необходимыми для декодирования значений выборок в видеоизображениях).

PH 512 представляет собой синтаксическую структуру, содержащую синтаксические элементы, которые применяются ко всем слайсам (например, к слайсам 518) кодированного изображения (например, к изображению 514). В варианте осуществления PH 512 находится в единице NAL без VCL нового типа, обозначенного как единица NAL PH. Таким образом, единица NAL PH имеет NUT PH (например, PH_NUT). В варианте осуществления имеется один и только один PH 512, включенный в каждую PU 501. То есть PU 501 содержит один или единственный PH 512. В варианте осуществления для каждого изображения 501 в битовом потоке 500 присутствует только одна единица NAL PH.

Изображение 514 представляет собой массив выборок яркости в монохромном формате или массив выборок яркости и два соответствующих массива выборок цветности в цветовом формате 4:2:0, 4:2:2 и 4:4:4. В варианте осуществления имеется одно и только одно изображение 514, включенное в каждую PU 501. Таким образом, имеется только один PH 512 и только одно изображение 514, соответствующее этому PH 512 в каждой PU 501. То есть PU 501 содержит одно или единственное изображение 514.

Каждое изображение 514 содержит один или более слайсов 518. Слайс 518 представляет собой целое число полных слайсов или целое число последовательных полных строк CTU в слайсе изображения (например, изображения 514). Каждый слайс 518 содержится исключительно в одном блоке NAL (например, блоке NAL VCL). В одном варианте осуществления один единица NAL ассоциирован с идентификатором 515 уровня или имеет его. Тайл (не показан) представляет собой прямоугольную область CTU в конкретном столбце тайлов и конкретной строке тайлов в изображении (например, изображении 514). Тайл – это разделенная часть изображения, созданная горизонтальными и вертикальными границами. Тайлы могут быть прямоугольными и/или квадратными. В частности, тайл включает в себя четыре стороны, соединенные под прямым углом. Четыре стороны включают в себя две пары параллельных сторон. Кроме того, стороны в паре параллельных сторон имеют одинаковую длину. Таким образом, тайл может иметь любую прямоугольную форму, где квадрат является частным случаем прямоугольника, все четыре стороны которого имеют одинаковую длину. Изображение/картинка может содержать один или более тайлов. CTU (не показана) представляет собой CTB выборок яркости, два соответствующих CTB выборок цветности изображения, которое имеет три массива выборок, или CTB выборок монохромного изображения или изображения, которое закодировано с использованием трех отдельных цветовых плоскостей и синтаксической структуры, используемой для кодирования выборок. CTB (не показан) представляет собой блок выборок N×N для некоторого значения N, так что разделение компонента на CTB представляет собой разделение. Блок (не показан) представляет собой массив M×N (M столбцов на N строк) выборок (например, пикселей) или массив M×N коэффициентов преобразования.

Изображения 514 и их слайсы 518 содержат данные, ассоциированные с кодируемыми или декодируемыми изображениями или видео. Таким образом, изображения 514 и их слайсы 518 могут просто называться полезной нагрузкой или данными, переносимыми в битовом потоке 500. PH 512 и заголовки 520 слайсов могут содержать флаг 522. Флаг 522 может быть флагом RPL, флагом SAO или флагом ALF, как описано ниже.

В то время как спецификация VVC задает только небольшое количество синтаксических элементов, которые находятся на уровне изображений, в случаях общего использования существует больше синтаксических элементов, значения которых могут быть разными среди слайсов одного и того же изображения, но обычно являются одинаковыми для всех слайсов одного и того же изображения. Примерами таких синтаксических элементов являются синтаксические элементы, которые относятся к RPL, объединенные флаги знаков цветности, флаги разрешения SAO, флаги и параметры разрешения ALF, флаги и параметры разрешения LMCS и флаги и параметры разрешения списка масштабирования. Синтаксические элементы на уровне без изображений, такие как те, не сигнализируются в PH, поэтому, даже тогда, когда они имеют одинаковые значения для всех слайсов одного и того же изображения, они все равно должны повторяться в каждом заголовке слоя этих слоев. Другими словами, в некоторых подходах эти синтаксические элементы сигнализировались в заголовке слайса. Это объясняется тем, что данные, которые они несут, могут варьироваться от слайса к слайсу. Однако в большинстве случаев они являются одинаковыми для всего изображения, содержащего слайсы. Результатом является то, что эти элементы сигнализируются несколько раз в расчете на изображение, но значения при этом, как правило, являются одинаковыми, что приводит к избыточности и бесполезной трате битов в кодированном битовом потоке.

В данном документе раскрыты варианты осуществления для сигнализации синтаксиса на уровне без изображений на уровне изображений. В вариантах осуществления синтаксические элементы включены в заголовок изображения тогда, когда синтаксические элементы являются одинаковыми, или включены в заголовок слайса тогда, когда синтаксические элементы являются разными. Однако в некоторых вариантах осуществления синтаксические элементы могут не включаться ни в то, ни в другое. Во-первых, синтаксические элементы на уровне без изображений могут присутствовать в PH. Синтаксические элементы на уровне без изображений представляют собой синтаксические элементы, которые находятся на уровне битового видеопотока, отличном от уровня изображений. Во-вторых, для каждой категории синтаксических элементов на уровне без изображений, флаг задает то, когда синтаксические элементы категории присутствуют в PH или заголовках слайсов. Флаг может находиться в PH. Синтаксические элементы на уровне без изображений включают в себя то, что относится к сигнализации RPL, объединенные флаги знаков Cb Cr, разрешение и параметры инструмента SAO, разрешение и параметры инструмента ALF, разрешение и параметры инструмента LMCS и разрешение и параметры инструмента списка масштабирования. В-третьих, когда в PH присутствуют синтаксические элементы на уровне без изображений, соответствующие синтаксические элементы не должны присутствовать ни в одном слайсе изображения, ассоциированного с заголовком изображения, содержащим синтаксические элементы. Значения синтаксических элементов на уровне без изображений, которые присутствуют в PH, применяются ко всем слайсам изображения, ассоциированным с заголовком изображения, содержащим синтаксические элементы. В-четвертых, когда синтаксические элементы на уровне без изображений отсутствуют в PH, соответствующие синтаксические элементы могут присутствовать в заголовках слайсов изображения, ассоциированного с заголовком изображения. При перемещении сигнализации синтаксических элементов на уровне без изображений на уровень изображений, уменьшается избыточность, и в кодированном битовом потоке остается меньше бесполезных битов.

Синтаксис RBSP PH

Синтаксис RBSP заголовка слайса

Семантика RBSP PH

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

pic_type указывает характеристику кодированных изображений, перечисленных в таблице 1, для заданного значения pic_type. Значение pic_type должно быть равно от 0 до 5 включительно в битовых потоках, соответствующих этой версии данной спецификации. Другие значения pic_type зарезервированы для будущего использования ISO/IEC ITU-T. Декодеры, соответствующие этой версии данной спецификации, должны игнорировать зарезервированные значения pic_type.

Таблица 1. Интерпретация pic_type

pic_type Характеристика кодированного изображения 0 Кодированное изображение является изображением IDR. 1 Кодированное изображение является изображением CRA. 2 Кодированное изображение является изображением GDR. 3 Кодированное изображение является изображением, без IRAP и без GDR и содержит только I-слайсы. 4 Кодированное изображение является изображением, без IRAP и без GDR и содержит только слайсы P и I. 5 Кодированное изображение является изображением, без IRAP и без GDR и содержит слайсы B, P и I.

pic_parameter_set_id задает значение pps_pic_parameter_set_id для используемого PPS. Значение pic_parameter_set_id должно находиться в диапазоне от 0 до 63 включительно.

non_reference_picture_flag, равный 1, задает то, что изображение, ассоциированное с PH, никогда не используется в качестве опорного изображения. non_reference_picture_flag, равный 0, задает то, что изображение может использоваться или не использоваться в качестве опорного изображения.

color_plane_id задает цветовую плоскость, ассоциированную с изображением, ассоциированным с PH, когда component_colour_plane_flag равен 1. Значение color_plane_id должно находиться в диапазоне от 0 до 2 включительно. Значения 0, 1 и 2 color_plane_id соответствуют плоскостям Y, Cb и Cr, соответственно. Нет никакой зависимости между процессами декодирования изображений, имеющих разные значения color_plane_id.

pic_order_cnt_lsb задает счетчик очередности изображений по модулю MaxPicOrderCntLsb для изображения, ассоциированного с PH. Длина синтаксического элемента pic_order_cnt_lsb равна log2_max_pic_order_cnt_lsb_minus4 + 4 бита. Значение pic_order_cnt_lsb должно находиться в диапазоне от 0 до MaxPicOrderCntLsb – 1 включительно.

recovery_poc_cnt задает точку восстановления декодированных изображений в порядке вывода. Если имеется изображение picA, которое следует за текущим изображением GDR в порядке декодирования в CVS и имеет PicOrderCntVal, равный PicOrderCntVal текущего изображения GDR плюс значение recovery_poc_cnt, изображение picA называется изображением точки восстановления. В противном случае первое изображение в порядке вывода, у которого PicOrderCntVal больше, чем PicOrderCntVal текущего изображения плюс значение recovery_poc_cnt, называется изображением точки восстановления. Изображение точки восстановления не должно предшествовать текущему изображению GDR в порядке декодирования. Значение recovery_poc_cnt должно находиться в диапазоне от 0 до MaxPicOrderCntLsb - 1 включительно.

Переменная RpPicOrderCntVal получается следующим образом: RpPicOrderCntVal = PicOrderCntVal + recovery_poc_cnt.

no_output_of_prior_pics_flag влияет на вывод ранее декодированных изображений в буфере декодированных изображений после декодирования изображения CLVSS, которое не является первым изображением в битовом потоке, как задано в приложении C.

pic_output_flag влияет на процессы вывода и удаления декодированного изображения, как задано в приложении C. Когда pic_output_flag отсутствует, предполагается, что он равен 1.

pic_rpl_present_flag, равный 1, задает то, что сигнализация RPL присутствует в PH. pic_rpl_present_flag, равный 0, задает то, что сигнализация RPL отсутствует в PH и может присутствовать в заголовках слайсов изображения. Если значение pic_rpl_present_flag отсутствует, предполагается, что его значение равно 0. Сигнализация RPL представляет собой информацию RPL, содержащуюся в битовом видеопотоке 500.

pic_rpl_sps_flag[ i ], равный 1, задает то, что RPL 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, которая непосредственно включен в заголовок изображения.

Когда pic_rpl_sps_flag[ i ] отсутствует, применяется следующее: если num_ref_pic_lists_in_sps[i] равен 0, значение pic_rpl_sps_flag[ i ] предполагается равным 0. В противном случае (num_ref_pic_lists_in_sps[ i ] больше, чем 0), если rpl1_idx_present_flag равен 0, предполагается, что значение pic_rpl_sps_flag[ i ] равно pic_rpl_sps_flag[0]. В противном случае предполагается, что значение pic_rpl_sps_flag[ i ] равно pps_ref_pic_list_sps_idc[ i ] - 1.

pic_rpl_idx[ i ] задает индекс, в списке синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, включенном в SPS, синтаксической структуры ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, которая используется для получения RPL i текущего изображения. Синтаксический элемент pic_rpl_idx[ i ] представлен битами Ceil(Log2(num_ref_pic_lists_in_sps[ i ] ) ). Если он отсутствует, предполагается, что значение pic_rpl_idx[ i ] равно 0. Значение pic_rpl_idx[ i ] должно находиться в диапазоне от 0 до num_ref_pic_lists_in_sps[ i ] - 1 включительно. Когда pic_rpl_sps_flag[ i ] равен 1, и num_ref_pic_lists_in_sps[ i ] равен 1, значение pic_rpl_idx[i] считается равным 0. Когда pic_rpl_sps_flag[ i ] равен 1, и rpl1_idx_present_flag равен 0, предполагается, что значение pic_rpl_idx[ 1 ] равно pic_rpl_idx[ 0 ].

Переменная PicRplsIdx[ i ] получается следующим образом: PicRplsIdx[ i ] = pic_rpl_sps_flag[ i ] ? pic_rpl_idx[ i ]: num_ref_pic_lists_in_sps[ i ].

pic_poc_lsb_lt[ i ][ j ] задает значение счетчика очередности изображений по модулю MaxPicOrderCntLsb j-й записи LTRP в i-м списке опорных изображений для изображения, ассоциированного с PH. Длина синтаксического элемента pic_poc_lsb_lt[ i ][ j ] равна log2_max_pic_order_cnt_lsb_minus4 + 4 бита.

Переменная PicPocLsbLt[ i ][ j ] получается следующим образом: PicPocLsbLt[ i ][ j ] = ltrp_in_slice_header_flag[ i ][PicRplsIdx[ i ]] ? pic_poc_lsb_lt[ i ][ j ]: rpls_poc_lsb_lt[listIdx][PicRplsIdx[ i ]][ j ].

pic_delta_poc_msb_present_flag[ i ][ j ], равный 1, задает то, что pic_delta_poc_msb_cycle_lt[ i ][ j ] присутствует. pic_delta_poc_msb_present_flag[ i ][ j ], равный 0, задает то, что pic_delta_poc_msb_cycle_lt[ i ][ j ] отсутствует.

Пусть prevTid0Pic будет предыдущим изображением в порядке декодирования, которое имеет nuh_layer_id, такой же, как PH, имеет TemporalId, равный 0, и не является изображением RASL или RADL. Пусть setOfPrevPocVals будет набором, состоящим из следующего: PicOrderCntVal prevTid0Pic; PicOrderCntVal каждого изображения, на которое ссылаются записи в RefPicList[ 0 ] или RefPicList[ 1 ] prevTid0Pic и которое имеет nuh_layer_id, такой же, как у текущего изображения; и PicOrderCntVal каждого изображения, которое следует за prevTid0Pic в порядке декодирования, имеет nuh_layer_id, такой же, как у текущего изображения, и предшествует текущему изображению в порядке декодирования.

Когда в setOfPrevPocVals имеется более одного значения, для которого значение по модулю MaxPicOrderCntLsb равно PicPocLsbLt[ i ] [ j ], значение pic_delta_poc_msb_present_flag[ i ][ j ] должно быть равно 1.

pic_delta_poc_msb_cycle_lt[i][j] задает значение переменной PicFullPocLt[ i ][ j ] следующим образом:

if( j = = 0 )

deltaPocMsbCycleLt[ i ][ j ] = pic_delta_poc_msb_cycle_lt[ i ][ j ]

else … (7 97)

deltaPocMsbCycleLt[ i ][ j ] = pic_delta_poc_msb_cycle_lt[ i ][ j ] + deltaPocMsbCycleLt[ i ][ j − 1 ]

PicFullPocLt[ i ][ j ] = PicOrderCntVal – deltaPocMsbCycleLt[ i ][ j ] * MaxPicOrderCntLsb −

( PicOrderCntVal & ( MaxPicOrderCntLsb − 1 ) ) + PicPocLsbLt[ i ][ j ]

Значение pic_delta_poc_msb_cycle_lt[ i ][ j ] должно находиться в диапазоне от 0 до 2(32 − log2_max_pic_order_cnt_lsb_minus4 − 4) включительно. Если оно отсутствует, предполагается, что значение pic_delta_poc_msb_cycle_lt[ i ][ j ] равно 0.

pic_temporal_mvp_enabled_flag задает то, могут ли временные MVP использоваться для межкадрового предсказания. Если pic_temporal_mvp_enabled_flag равен 0, синтаксические элементы изображения, ассоциированные с заголовком изображения, должны быть ограничены таким образом, чтобы временной MVP не использовался при декодировании изображения. В противном случае (pic_temporal_mvp_enabled_flag равен 1) при декодировании изображения могут использоваться временные MVP.

Когда pic_temporal_mvp_enabled_flag отсутствует, применяется следующее: Если sps_temporal_mvp_enabled_flag равен 0, значение pic_temporal_mvp_enabled_flag предполагается равным 0. В противном случае (sps_temporal_mvp_enabled_flag равен 1), значение pic_temporal_mvp_enabled_flag равно beinferred_mvp_ в pps_temporal_mvp_enabled_idc – 1.

pic_level_joint_cbcr_sign_flag, равный 1, задает то, что slice_joint_cbcr_sign_flag отсутствует в заголовке слайса. pic_level_joint_cbcr_sign_flag, равный 0, задает то, что в заголовке слайса может присутствовать slice_joint_cbcr_sign_flag. Если он отсутствует, предполагается, что значение pic_level_joint_cbcr_sign_flag равно 0.

pic_level_alf_enabled_flag, равный 1, задает то, что ALF разрешен для всех слайсов, принадлежащих изображению, ассоциированному с PH, и может применяться к цветовому компоненту Y, Cb или Cr в слайсах. pic_level_alf_enabled_flag, равный 0, задает то, что ALF может быть запрещен для одного, нескольких или всех слайсов, принадлежащих изображению, ассоциированному с PH. Когда pic_level_alf_enabled_flag отсутствует, предполагается, что его значение равно 0.

pic_num_alf_aps_ids_luma задает количество APS ALF, которые принадлежат изображению, ассоциированному с PH, к которому относится PH. Значение slice_num_alf_aps_ids_luma должно находиться в диапазоне от 0 до 7 включительно.

pic_alf_aps_id_luma[ i ] задает adaptation_parameter_set_id i-го APS ALF, к которому относится компонент яркости слайсов изображения, ассоциированного с PH.

pic_alf_chroma_idc, равный 0, задает то, что ALF не применяется к цветовым компонентам Cb и Cr. pic_alf_chroma_idc, равный 1, задает то, что ALF применяется к цветовому компоненту Cb. pic_alf_chroma_idc, равный 2, задает то, что ALF применяется к цветовому компоненту Cr. pic_alf_chroma_idc, равный 3, задает то, что ALF применяется к цветовым компонентам Cb и Cr. Когда pic_alf_chroma_idc отсутствует, предполагается, что его значение равно 0.

pic_alf_aps_id_chroma задает adaptation_parameter_set_id APS ALF, на который ссылается компонент цветности слайсов изображения, ассоциированного с заголовком изображения.

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

pic_lmcs_aps_id задает adaptation_parameter_set_id LMCS APS, к которому относятся слайсы изображения, ассоциированные с заголовком изображения.

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

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

pic_scaling_list_aps_id задает adaptation_parameter_set_id списка APS масштабирования.

Семантика RBSP заголовка слайса

slice_rpl_sps_flag[ i ], равный 1, задает то, что RPL i текущего слайса получается на основе одной из синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i в SPS. slice_rpl_sps_flag[ i ], равный 0, задает то, что RPL i текущего слайса получается на основе синтаксической структуры ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, которая непосредственно включена в заголовки слайсов текущего изображения.

Когда slice_rpl_sps_flag[ i ] отсутствует, применяется следующее: Если pic_rpl_present_flag равен 1, значение slice_rpl_sps_flag[ i ] предполагается равным pic_rpl_sps_flag[ i ]. В противном случае, если num_ref_pic_lists_in_sps[ i ] равен 0, значение slice_rpl_sps_flag[ i ] считается равным 0. В противном случае (num_ref_pic_lists_in_sps[ i ] больше 0), если rpl1_idx_present_flag равен 0, значение slice_rpl_sps_flag[ 1 ] предполагается равным slice_rpl_sps_flag[ 0 ]. В противном случае предполагается, что значение slice_rpl_sps_flag[i] равен pps_ref_pic_list_sps_idc[ i ] - 1.

slice_rpl_idx[ i ] задает индекс, в списке синтаксических структур ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, включенном в SPS, синтаксической структуры ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, которая используется для получения списка опорных изображений i текущего слайса. Синтаксический элемент slice_rpl_idx[ i ] представлен битами Ceil(Log2(num_ref_pic_lists_in_sps[ i ])). Значение slice_rpl_idx[ i ] должно находиться в диапазоне от 0 до num_ref_pic_lists_in_sps[ i ] - 1 включительно. Когда slice_rpl_sps_flag[ i ] равен 1, и num_ref_pic_lists_in_sps[ i ] равен 1, значение slice_rpl_idx[ i ] считается равным 0. Когда slice_rpl_sps_flag[ i ] равен 1, и rpl1_idx_present_flag равен 0, предполагается, что значение slice_rpl_idx[ 1 ] равно slice_rpl_idx[ 0 ].

Переменная RplsIdx[ i ] получается следующим образом:

if( pic_rpl_present_flag )

RplsIdx[ i ] = PicRplsIdx[ i ]

else

RplsIdx[ i ] = slice_rpl_sps_flag[ i ] ? slice_rpl_idx[ i ] : num_ref_pic_lists_in_sps[ 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 ] получается следующим образом:

if( pic_rpl_present_flag )

PocLsbLt[ i ][ j ] = PocLsbLt[ i ][ j ]

else

PocLsbLt[ i ][ j ] = ltrp_in_slice_header_flag[ i ][ RplsIdx[ i ] ] ? slice_poc_lsb_lt[ i ][ j ] : rpls_poc_lsb_lt[ listIdx ][ RplsIdx[ i ] ][ j ]

slice_delta_poc_msb_present_flag[i][j], равный 1, задает то, что slice_delta_poc_msb_cycle_lt[ i ][ j ] присутствует. slice_delta_poc_msb_present_flag[ i ][ j ], равный 0, задает то, что slice_delta_poc_msb_cycle_lt[ i ][ j ] отсутствует.

Пусть prevTid0Pic будет предыдущим изображением в порядке декодирования, которое имеет nuh_layer_id, такой же, как у текущего изображения, имеет TemporalId, равный 0, и не является изображением RASL или RADL. Пусть setOfPrevPocVals будет набором, состоящим из следующего: PicOrderCntVal для prevTid0Pic, PicOrderCntVal для каждого изображения, на которое ссылаются записи в RefPicList[ 0 ] или RefPicList[ 1 ] prevTid0Pic и которое имеет nuh_layer_id, такой же, как у текущего изображения, PicOrderCntVal каждого изображения, которое следует за prevTid0Pic в порядке декодирования, имеет nuh_layer_id, такой же, как у текущего изображения, и предшествует текущему изображению в порядке декодирования.

Когда pic_rpl_present_flag равен 0 и существует более одного значения в setOfPrevPocVals, для которых значение по модулю MaxPicOrderCntLsb равно PocLsbLt[ i ][ j ], значение slice_delta_poc_msb_present_flag[ i ][ j ] должно быть равно 1.

slice_delta_poc_msb_cycle_lt[ i ][ j ] задает значение переменной FullPocLt[ i ][ j ] следующим образом:

if( pic_rpl_present_flag )

FullPocLt[ i ][ j ] = PicFullPocLt[ i ][ j ]

else {

if( j = = 0 )

deltaPocMsbCycleLt[ i ][ j ] = slice_delta_poc_msb_cycle_lt[ i ][ j ]

else

deltaPocMsbCycleLt[ i ][ j ] = slice_delta_poc_msb_cycle_lt[ i ][ j ] + deltaPocMsbCycleLt[ i ][ j − 1 ]

FullPocLt[ i ][ j ] = PicOrderCntVal − deltaPocMsbCycleLt[ i ][ j ] * MaxPicOrderCntLsb − ( PicOrderCntVal & ( MaxPicOrderCntLsb – 1 ) ) + PocLsbLt[ i ][ j ]

}

Значение slice_delta_poc_msb_cycle_lt[i][j] должно находиться в диапазоне от 0 до 2(32 − log2_max_pic_order_cnt_lsb_minus4 − 4) включительно. Если оно отсутствует, предполагается, что значение slice_delta_poc_msb_cycle_lt[i][j] равно 0.

slice_joint_cbcr_sign_flag задает то, имеют ли, в единицах преобразования при tu_joint_cbcr_residual_flag[ x0 ][ y0 ], равным 1, совмещенные остаточные выборки обоих компонентов цветности инвертированные знаки. Когда tu_joint_cbcr_residual_flag[ x0 ][ y0 ] равен 1 для единицы преобразования, slice_joint_cbcr_sign_flag, равный 0, задает то, что знак каждой остаточной выборки компонента Cr (или Cb) идентичен знаку совмещенной остаточной выборки Cb (или Cr ), и slice_joint_cbcr_sign_flag, равный 1, задает то, что знак каждой остаточной выборки компонента Cr (или Cb) задается инвертированным знаком совмещенной остаточной выборки Cb (или Cr). Если он отсутствует, предполагается, что значение slice_joint_cbcr_sign_flag равно pic_level_joint_cbcr_sign_flag.

slice_sao_luma_flag, равный 1, задает то, что SAO разрешен для компонента яркости в текущем слайсе. slice_sao_luma_flag, равный 0, задает то, что SAO запрещен для компонента яркости в текущем слайсе. Когда slice_sao_luma_flag отсутствует, предполагается, что его значение равно pic_level_sao_luma_enabled_flag.

slice_sao_chroma_flag, равный 1, задает то, что SAO разрешен для компонента цветности в текущем слайсе. slice_sao_chroma_flag, равный 0, задает то, что SAO запрещен для компонента цветности в текущем слайсе. Когда slice_sao_chroma_flag отсутствует, предполагается, что его значение равно pic_level_sao_chroma_enabled_flag.

slice_alf_enabled_flag, равный 1, задает то, что ALF разрешен и может применяться к цветовому компоненту Y, Cb или Cr в слайсе. slice_alf_enabled_flag, равный 0, задает то, что ALF запрещен для всех цветовых компонентов в слайсе. Если он отсутствует, предполагается, что значение slice_alf_enabled_flag равно pic_level_alf_enabled_flag.

slice_num_alf_aps_ids_luma задает количество APS ALF, на которые ссылается слайс. Когда slice_alf_enabled_flag равен 1, и slice_num_alf_aps_ids_luma отсутствует, предполагается, что значение slice_num_alf_aps_ids_luma равно значению pic_num_alf_aps_ids_luma. Значение slice_num_alf_aps_ids_luma должно находиться в диапазоне от 0 до 7 включительно.

slice_alf_aps_id_luma[i] задает id_adposition_parameter_set_id i-го APS ALF, на который ссылается компонент яркости слайса. TemporalId единицы NAL APS, имеющей тип aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_luma[i], должен быть меньше или равен TemporalId единицы NAL кодированного слайса. Когда slice_alf_enabled_flag равен 1, и slice_alf_aps_id_luma[i] отсутствует, значение slice_alf_aps_id_luma[i] предполагается равным значению pic_alf_aps_id_luma[i].

Для внутрикадровых слайсов и слайсов в изображении IRAP, slice_alf_aps_id_luma[ i ] должен ссылаться не на APS ALF, ассоциированный с другими изображениями, а на изображение, содержащее внутрикадровые слайсы или изображение IRAP.

slice_alf_chroma_idc, равный 0, задает то, что ALF не применяется к цветовым компонентам Cb и Cr. slice_alf_chroma_idc, равный 1, указывает то, что ALF применяется к цветовому компоненту Cb. slice_alf_chroma_idc, равный 2, указывает то, что ALF применяется к цветовому компоненту Cr. slice_alf_chroma_idc, равный 3, указывает то, что ALF применяется к цветовым компонентам Cb и Cr. Когда slice_alf_chroma_idc отсутствует, предполагается, что его значение равно pic_alf_chroma_idc.

slice_alf_aps_id_chroma задает adaptation_parameter_set_id APS ALF, на который ссылается компонент цветности слайса. TemporalId единицы NAL APS, имеющей aps_params_type, равный ALF_APS, и adaptation_parameter_set_id, равный slice_alf_aps_id_chroma, должен быть меньше или равен TemporalId единицы NAL кодированного слайса. Когда slice_alf_enabled_flag равен 1, и slice_alf_aps_id_chroma отсутствует, предполагается, что значение slice_alf_aps_id_chroma равно значению pic_alf_aps_id_chroma.

Для внутрикадровых слайсов и слайсов в изображении IRAP slice_alf_aps_id_chroma не должен относиться к APS ALF, ассоциированному с другими изображениями, а не к изображению, содержащему внутрикадровые слайсы, или к изображению IRAP.

slice_lmcs_enabled_flag, равный 1, задает то, что сопоставление яркости с масштабированием цветности разрешено для текущего слайса. slice_lmcs_enabled_flag, равный 0, задает то, что сопоставление яркости с масштабированием цветности не разрешено для текущего слайса. Когда slice_lmcs_enabled_flag отсутствует, предполагается, что его значение равно pic_lmcs_enabled_flag.

slice_lmcs_aps_id задает adaptation_parameter_set_id LMCS APS, на который ссылается слайс. TemporalId единицы NAL APS, имеющей aps_params_type, равный LMCS_APS, и adaptation_parameter_set_id, равный slice_lmcs_aps_id, должен быть меньше или равен TemporalId единицы NAL кодированного слайса. Когда slice_lmcs_enabled_flag равен 1, и slice_lmcs_aps_id отсутствует, предполагается, что значение slice_lmcs_aps_id равно значению pic_lmcs_aps_id.

При наличии slice_lmcs_aps_id его значение должно быть одинаковым для всех слайсов изображения.

slice_chroma_residual_scale_flag, равный 1, задает то, что масштабирование остатка цветности разрешено для текущего слайса. slice_chroma_residual_scale_flag, равный 0, задает то, что масштабирование остатка цветности не разрешено для текущего слайса. Когда slice_chroma_residual_scale_flag отсутствует, предполагается, что его значение равно pic_chroma_residual_scale_flag.

slice_scaling_list_present_flag, равный 1, задает то, что данные списка масштабирования, используемые для текущего слайса, получаются на основе данных списка масштабирования, содержащихся в опорном списке APS масштабирования. slice_scaling_list_present_flag, равный 0, задает то, что данные списка масштабирования, используемые для текущего изображения, являются данными списка масштабирования по умолчанию, полученными в соответствии с пунктом 7.4.3.16. Если он отсутствует, предполагается, что значение slice_scaling_list_present_flag равно pic_level_scaling_list_present_flag.

slice_scaling_list_aps_id задает id_adposition_parameter_set_id списка APS масштабирования. TemporalId единицы NAL APS, имеющей aps_params_type, равный SCALING_APS, и adaptation_parameter_set_id, равный slice_scaling_list_aps_id, должен быть меньше или равен TemporalId единицы NAL кодированного слайса. Когда slice_scaling_list_enabled_flag равен 1, и slice_scaling_list_aps_id отсутствует, предполагается, что значение slice_scaling_list_aps_id равно значению pic_scaling_list_aps_id.

На фиг. 6 показана блок-схема последовательности операций, иллюстрирующая способ 600 декодирования битового потока согласно первому варианту осуществления. Декодер 400 может реализовать способ 600. На этапе 610 принимается битовый видеопоток, содержащий флаг RPL. Флаг RPL, равный первому значению, задает то, что сигнализация RPL присутствует в PH. Флаг RPL, равный второму значению, задает то, что сигнализация RPL отсутствует в PH и может присутствовать в заголовках слайсов. Наконец, на этапе 620 кодированное изображение декодируется с использованием флага RPL для получения декодированного изображения.

Способ 600 позволяет реализовывать дополнительные варианты осуществления. Например, первое значение равно 1. Второе значение равно 0. Битовый поток дополнительно содержит флаг SPS RPL, где флаг SPS RPL задает то, что RPL i получен на основе одной из синтаксических структур ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, в SPS или задает то, что RPL i получен на основе одной из синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, который непосредственно включена. Битовый поток дополнительно содержит индекс RPL, где индекс RPL задает индекс, в списке синтаксических структур ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, включенном в SPS, из синтаксической структуры ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, которая используется для получения RPL i текущего изображения. Декодированное изображение отображается на дисплее электронного устройства.

На фиг. 7 показана блок-схема последовательности операций, иллюстрирующая способ 700 кодирования битового потока согласно первому варианту осуществления. Кодер 300 может реализовать способ 700. На этапе 710 вырабатывается флаг RPL. Флаг RPL, равный первому значению, задает то, что сигнализация RPL присутствует в PH. Флаг RPL, равный второму значению, задает то, что сигнализация RPL отсутствует в PH и может присутствовать в заголовках слайсов. Наконец, на этапе 730 битовый видеопоток сохраняется для его дальнейшей передачи в видеодекодер.

Способ 700 позволяет реализовывать дополнительные варианты осуществления. Например, первое значение равно 1. Второе значение равно 0. Вырабатывается флаг SPS RPL, где флаг SPS RPL задает то, что RPL i получен на основе одной из синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i в SPS или задает то, что RPL i получен на основе одной из синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, которая непосредственно включена. Вырабатывается индекс RPL, в котором индекс RPL задает индекс, в списке синтаксических структур ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, включенном в набор параметров последовательности (SPS), синтаксической структуры ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, которая используется для получения RPL i текущего изображения.

На фиг. 8 показана блок-схема последовательности операций, иллюстрирующая способ 800 декодирования битового потока согласно второму варианту осуществления. Декодер 400 может реализовать способ 800. На этапе 810 принимается битовый видеопоток, содержащий флаг SAO. Флаг SAO, равный первому значению, задает то, что сигнализация SAO присутствует в PH, и флаг SAO, равный второму значению, задает то, что сигнализация SAO отсутствует в PH и может присутствовать в заголовках слайсов. Наконец, на этапе 820 кодированное изображение декодируется с использованием флага SAO для получения декодированного изображения. Способ 800 позволяет реализовывать дополнительные варианты осуществления. Например, декодированное изображение может отображаться на дисплее электронного устройства.

На фиг. 9 показана блок-схема последовательности операций, иллюстрирующая способ 900 кодирования битового потока согласно второму варианту осуществления. Кодер 300 может реализовать способ 900. На этапе 910 вырабатывается флаг SAO. Флаг SAO, равный первому значению, задает то, что сигнализация SAO присутствует в PH, и флаг SAO, равный второму значению, задает то, что сигнализация SAO отсутствует в PH и может присутствовать в заголовках слайсов. На этапе 920 флаг RPL кодируется в битовый видеопоток. Наконец, на этапе 930 битовый видеопоток сохраняется для его дальнейшей передачи в видеодекодер.

На фиг. 10 показана блок-схема последовательности операций, иллюстрирующая способ 1000 декодирования битового потока согласно третьему варианту осуществления. Декодер 400 может реализовать способ 1000. На этапе 1010 принимается битовый видеопоток, содержащий флаг ALF. Флаг ALF, равный первому значению, задает то, что сигнализация ALF присутствует в PH, и флаг ALF, равный второму значению, задает то, что сигнализация ALF отсутствует в PH и может присутствовать в заголовках слайсов. Наконец, на этапе 1020 кодированное изображение декодируется с использованием флага ALF для получения декодированного изображения. Способ 1000 позволяет реализовывать дополнительные варианты осуществления. Например, декодированное изображение может отображаться на дисплее электронного устройства.

На фиг. 11 показана блок-схема последовательности операций, иллюстрирующая способ 1100 кодирования битового потока согласно третьему варианту осуществления. Кодер 300 может реализовать способ 1100. На этапе 1110 вырабатывается флаг ALF. Флаг ALF, равный первому значению, задает то, что сигнализация ALF присутствует в PH, и флаг ALF, равный второму значению, задает то, что сигнализация ALF отсутствует в PH и может присутствовать в заголовках слайсов. На этапе 1120 флаг ALF кодируется в битовый видеопоток. Наконец, на этапе 1130 битовый видеопоток сохраняется для его дальнейшей передачи в видеодекодер.

На фиг. 12 показано схематичное представление устройства 1200 для кодирования видео (например, видеокодера 300 или видеодекодера 400) согласно варианту осуществления настоящего раскрытия. Устройство 1200 для кодирования видео подходит для реализации раскрытых вариантов осуществления. Устройство 1200 для кодирования видео содержит входные порты 1210 и Rx 1220 для приема данных; процессор, логический блок или CPU 1230 для обработки данных; Tx 1240 и выходные порты 1250 для передачи данных; и память 1260 для хранения данных. Устройство 1200 для кодирования видео может также содержать OE компоненты и EO-компоненты, подключенные к входным портам 1210, блокам 1220 приемника, блокам 1240 передатчика и выходным портам 1250 для вывода или ввода оптических или электрических сигналов.

Процессор 1230 реализован с помощью аппаратных средств и программного обеспечения. Процессор 1230 может быть реализован в виде одной или нескольких микросхем CPU, ядер (например, в виде многоядерного процессора), FPGA, ASIC и DSP. Процессор 1230 взаимодействует с входными портами 1210, Rx 120, Tx 1240, выходными портами 1250 и памятью 1260. Процессор 1230 содержит модуль 1270 кодирования. Модуль 1270 кодирования реализует раскрытые варианты осуществления. Например, модуль 1270 кодирования реализует, обрабатывает, подготавливает или обеспечивает различные функции кодека. Таким образом, включение модуля 1270 кодирования обеспечивает существенное улучшение функциональных возможностей устройства 1200 для кодирования видео и осуществляет преобразование устройства 1200 для кодирования видео в другое состояние. Альтернативно, модуль 1270 кодирования реализован как инструкции, хранящиеся в памяти 1260 и исполняемые процессором 1230.

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

Память 1260 содержит один или несколько дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства для хранения данных при переполнении для хранения программ, когда такие программы выбираются для выполнения, и для хранения инструкций и данных, которые считываются во время выполнения программы. Память 1260 может быть энергозависимой и/или энергонезависимой и может представлять собой ROM, RAM, TCAM или SRAM.

На фиг. 13 показано схематичное представление варианта осуществления средства 1300 кодирования. В варианте осуществления средство 1300 кодирования реализовано в устройстве 1302 для кодирования видео (например, видеокодере 300 или видеодекодере 400). Устройство 1302 для кодирования видео включает в себя средство 1301 приема. Средство 1301 приема выполнено с возможностью приема изображения для кодирования или приема битового потока для декодирования. Устройство 1302 для кодирования видео включает в себя средство 1307 передачи, подключенное к средству 1301 приема. Средство 1307 передачи выполнено с возможностью передачи битового потока в декодер или передачи декодированного изображения в средство отображения (например, в одно из устройств 1280 ввода-вывода).

Устройство 1302 для кодирования видео включает в себя средство 1303 хранения. Средство 1303 хранения подключено по меньшей мере к одному из: средства 1301 приема или средства 1307 передачи. Средство 1303 хранения выполнено с возможностью хранения инструкций. Устройство 1302 для кодирования видео также включает в себя средство 1305 обработки. Средство 1305 обработки подключено к средству 1303 хранения. Средство 1305 обработки выполнено с возможностью исполнения инструкций, хранящихся в средстве 1303 хранения, для выполнения способов, раскрытых в данном документе.

В варианте осуществления средство приема принимает битовый видеопоток, содержащий флаг RPL. Флаг RPL задает то, что сигнализация RPL присутствует или отсутствует в PH, или задает то, что сигнализация RPL может присутствовать в заголовках слайсов. Средство обработки декодирует кодированное изображение с использованием флага RPL для получения декодированного изображения.

Термин «приблизительно» означает диапазон, включающий в себя ±10% от последующего числа, если не указано иное. Несмотря на то, что в настоящем раскрытии было представлено несколько вариантов осуществления, должно быть понятно, что раскрытые системы и способы могут быть воплощены в многих других конкретных формах без отклонения от сущности или объема настоящего раскрытия. Настоящие примеры следует рассматривать как иллюстративные, а не ограничительные, и примеры не имеют намерения ограничивать изобретение деталями, приведенными в данном документе. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или некоторые функции могут быть опущены или не реализованы.

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

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

название год авторы номер документа
СПОСОБ И УСТРОЙСТВО СОГЛАСОВАНИЯ ВЗВЕШЕННОГО ПРЕДСКАЗАНИЯ С НЕПРЯМОУГОЛЬНЫМИ РЕЖИМАМИ СЛИЯНИЯ 2021
  • Филиппов, Алексей Константинович
  • Чэнь, Хуаньбан
  • Руфицкий, Василий Алексеевич
  • Ян, Хайтао
  • Алшина, Елена Александровна
RU2821011C1
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ 2020
  • Ма, Сян
  • Ян, Хайтао
RU2823668C1
СПОСОБ И АППАРАТНЫЙ КОМПОНЕНТ СИГНАЛИЗАЦИИ ЧИСЛА КАНДИДАТОВ ДЛЯ РЕЖИМА СЛИЯНИЯ 2021
  • Филиппов, Алексей Константинович
  • Руфицкий, Василий Алексеевич
  • Алшина, Елена Александровна
RU2823267C1
УПРАВЛЕНИЕ ОПОРНЫМ ИЗОБРАЖЕНИЕМ ПРИ ВИДЕОКОДИРОВАНИИ 2019
  • Хендри, Фну
  • Ван, Е-Куй
RU2795700C2
МЕЖКОМПОНЕНТНАЯ АДАПТИВНАЯ КОНТУРНАЯ ФИЛЬТРАЦИЯ ДЛЯ КОДИРОВАНИЯ ВИДЕО 2020
  • Котра, Ананд Меер
  • Эсенлик, Семих
  • Алшина, Елена Александровна
  • Гао, Хань
  • Ван, Бяо
RU2827439C1
ПРЕДОТВРАЩЕНИЕ ИЗБЫТОЧНОЙ СИГНАЛИЗАЦИИ В МНОГОСЛОЙНЫХ БИТОВЫХ ВИДЕОПОТОКАХ 2020
  • Ван, Е-Куй
RU2827899C1
СПОСОБ И УСТРОЙСТВО СИГНАЛИЗАЦИИ ВЫСОКОГО УРОВНЯ ДЛЯ ВЗВЕШЕННОГО ПРОГНОЗИРОВАНИЯ 2020
  • Филиппов, Алексей Константинович
  • Руфицкий, Василий Алексеевич
  • Алшина, Елена Александровна
RU2822506C1
СИГНАЛИЗАЦИЯ ЗАГОЛОВКА ИЗОБРАЖЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕО 2020
  • Хендри, Фну
  • Ван, Е-Куй
  • Чен, Цзянле
RU2819585C1
СИГНАЛИЗАЦИЯ ЗАГОЛОВКА ИЗОБРАЖЕНИЯ ПРИ КОДИРОВАНИИ ВИДЕО 2020
  • Хендри, Фну
  • Ван, Е-Куй
  • Чен, Цзянле
RU2822313C1
УКАЗАНИЕ ТОЧКИ ПРОИЗВОЛЬНОГО ДОСТУПА И ВЫВОД ИЗОБРАЖЕНИЯ В КОДИРОВАННОМ ВИДЕОПОТОКЕ 2021
  • Чой Бёнду
  • Венгер Стефан
  • Лю Шань
RU2787579C1

Иллюстрации к изобретению RU 2 826 697 C1

Реферат патента 2024 года СИГНАЛИЗАЦИЯ СИНТАКСИЧЕСКИХ ЭЛЕМЕНТОВ НА УРОВНЕ БЕЗ ИЗОБРАЖЕНИЙ НА УРОВНЕ ИЗОБРАЖЕНИЙ

Изобретение относится к средствам декодирования. Технический результат - улучшение коэффициента сжатия практически без ущерба для качества изображения. Осуществляют прием видеодекодером битового видеопотока, содержащего флаг RPL, где флаг RPL, равный первому значению, задает то, что сигнализация RPL присутствует в заголовке изображения (PH), и где флаг RPL, равный второму значению, задает то, что сигнализация RPL отсутствует в PH и может присутствовать в заголовках слайсов. Декодируют кодированное изображение видеодекодером с использованием флага RPL для получения декодированного изображения. 6 н. и 7 з.п. ф-лы, 13 ил.

Формула изобретения RU 2 826 697 C1

1. Способ декодирования битового потока, реализованный видеодекодером и содержащий:

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

в котором сигнализация PRL представляет собой информацию PRL, содержащуюся в битовом потоке видео, при этом информация PRL содержит индекс PRL или синтаксическую структуру ref_pic_list_struct( listIdx, rplsIdx ), при этом индекс RPL задает индекс, в списке синтаксических структур ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, включенном в набор параметров последовательности (SPS), синтаксической структуры ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, которая используется для получения RPL i текущего изображения; в котором битовый поток видео дополнительно содержит флаг адаптивного контурного фильтра (ALF), при этом флаг ALF, равный первому значению, задает то, что сигнализация ALF присутствует в PH, и отсутствует в заголовках слайсов, и при этом флаг ALF, равный второму значению, задает то, что сигнализация ALF отсутствует в PH и может присутствовать в заголовках слайсов, при этом сигнализация ALF содержит флаг разрешения ALF; и

декодирование видеодекодером с использованием флага RPL и флага ALF кодированного изображения для получения декодированного изображения.

2. Способ по п. 1, в котором первое значение равно 1.

3. Способ по п. 1 или 2, в котором второе значение равно 0.

4. Способ по любому одному из пп. 1-3, в котором битовый поток дополнительно содержит флаг набора параметров последовательности (SPS) RPL, где флаг SPS RPL задает то, что RPL i получен на основе одной из синтаксических структур ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i в SPS, или задает то, что RPL i получен на основе одной из синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, которая непосредственно включена.

5. Способ по любому одному из пп. 1-4, дополнительно содержащий отображение декодированного изображения на дисплее электронного устройства.

6. Способ кодирования битового потока, реализованный видеокодером и содержащий:

выработку флага списка опорных изображений (RPL), где флаг RPL, равный первому значению, задает то, что сигнализация RPL присутствует в заголовке изображения (PH), и отсутствует в заголовках слайса, где флаг RPL, равный второму значению, задает то, что сигнализация RPL отсутствует в PH и может присутствовать в заголовках слайсов;

в котором сигнализация PRL представляет собой информацию PRL, содержащуюся в битовом потоке видео, при этом информация PRL содержит индекс PRL или синтаксическую структуру ref_pic_list_struct( listIdx, rplsIdx ), при этом индекс RPL задает индекс, в списке синтаксических структур ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, включенном в набор параметров последовательности (SPS), синтаксической структуры ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, которая используется для получения RPL i текущего изображения;

кодирование видеокодером флага RPL в битовый видеопоток; и

кодирование видеокодером флага адаптивного контурного фильтра (ALF) в битовый видеопоток, при этом флаг ALF, равный первому значению, задает то, что сигнализация ALF присутствует в PH, и отсутствует в заголовках слайсов, и при этом флаг ALF, равный второму значению, задает то, что сигнализация ALF отсутствует в PH и может присутствовать в заголовках слайсов, при этом сигнализация ALF содержит флаг разрешения ALF;

сохранение видеокодером битового видеопотока для его дальнейшей передачи в видеодекодер.

7. Способ по п. 6, в котором первое значение равно 1.

8. Способ по п. 6 или 7, в котором второе значение равно 0.

9. Способ по любому одному из пп. 6-8, дополнительно содержащий выработку флага набора параметров последовательности (SPS) RPL, где флаг SPS RPL задает то, что RPL i получен на основе одной из синтаксических структур ref_pic_list_struct(listIdx, rplsIdx) при listIdx, равным i, в SPS или задает то, что RPL i получен на основе одной из синтаксических структур ref_pic_list_struct( listIdx, rplsIdx ) при listIdx, равным i, которая непосредственно включена.

10. Видеодекодер, содержащий:

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

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

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

12. Видеокодер, содержащий:

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

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

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

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

Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса 1924
  • Шапошников Н.П.
SU2015A1
Способ защиты переносных электрических установок от опасностей, связанных с заземлением одной из фаз 1924
  • Подольский Л.П.
SU2014A1
Многоступенчатая активно-реактивная турбина 1924
  • Ф. Лезель
SU2013A1
СИГНАЛИЗАЦИЯ ИНФОРМАЦИИ СОСТОЯНИЯ ДЛЯ БУФЕРА ДЕКОДИРОВАННЫХ КАРТИНОК И СПИСКОВ ОПОРНЫХ КАРТИНОК 2012
  • Салливан Гари Дж.
  • Ву Юнцзюнь
RU2613738C2

RU 2 826 697 C1

Авторы

Хендри, Фну

Ван, Е-Куй

Чэнь, Цзяньлэ

Даты

2024-09-16Публикация

2020-09-23Подача