ИСПОЛЬЗОВАНИЕ ПАЛИТРЫ ПРЕДИКТОРА В ВИДЕОКОДИРОВАНИИ Российский патент 2024 года по МПК G06V10/20 H04N19/159 

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

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

Этот патентный документ относится к технологиям, устройствам и системам видеокодирования.

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

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

Раскрытие сущности изобретения

Описываются устройства, системы и способы, связанные с кодированием цифрового видео и, конкретно, с управлением векторами движения. Описанные способы могут применяться к существующим стандартам видеокодирования (например, видеокодирование высокой эффективности (High Efficiency Video Coding, HEVC) или универсальное видеокодирование (Versatile Video Coding)) и к будущим стандартам видеокодирования или видеокодекам.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 1 - пример блока, кодированного в режиме палитры.

Фиг. 2 - пример использования палитры предиктора для сообщения записей палитры.

Фиг. 3 - пример горизонтального поперечного сканирования и вертикального поперечного сканирования.

Фиг. 4 - примеры кодирования индексов палитры.

Фиг. 5 - пример изображения с CTU яркости 18х12, который делится на 12 плиток и 3 секции растрового сканирования.

Фиг. 6 - пример изображения с CTU яркости 18х12, который делится в 24 плитки и 9 прямоугольных секций.

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

Фиг. 8 - пример изображения с 28 субизображениями.

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

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

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

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

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

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

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

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

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

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

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

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

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

Осуществление изобретения

1. Видеокодирование в HEVC/H.265

Стандарты видеокодирования развивались прежде всего посредством развития известных стандартов ITU-T и ISO/IEC. ITU-T создал H.261 и H.263, ISO/IEC создал MPEG 1 и MPEG 4 Visual и эти две организации совместно создали стандарты H.262/MPEG-2 Video и H.264/MPEG-4 Advanced Video Coding (AVC) и стандарты H.265/HEVC. Начиная с H.262, стандарты видеокодирования основаны на гибридной структуре видеокодирования, в которой используются временное предсказание плюс кодирование преобразования. Чтобы исследовать будущие технологии видеокодирования после HEVC, в 2015 г. VCEG и MPEG вместе основали совместную группу исследований по видео (Joint Video Exploration Team, JVET). С тех пор JVET было принято много новых способов, помещенных в справочное программное обеспечение под названием Joint Exploration Model (JEM). В апреле 2018 г. между VCEG (Q6/16) и ISO/IEC JTC1 SC29/WG11 (MPEG) была создана объединенная группа экспертов по видео (Joint Video Expert Team, JVET) для работы над стандартом VVC, направленным на 50-типроцентное снижение битовой скорости по сравнению с HEVC.

2. Режим палитры

2.1 Режим палитры в расширениях кодирования контента экрана HEVC (HEVC Screen Content Coding, HEVC-SCC)

2.1.1. Концепция режима палитры

Основная идея, стоящая за режимом палитры, состоит в том, что пиксели в CU представляются малым набором репрезентативных цветовых значений. Этот набор упоминается как палитра. А также можно указать отсчет, который находится вне палитры, сообщая символ escape, сопровождаемый (возможно квантованными) значениями компонент. Этот вид пикселя вызывают пикселем escape. Режим палитры показан на фиг. 1. Как показано на фиг. 1, для каждого пикселя с тремя цветовыми компонентами (яркость и два компонента цветности) в палитре устанавливается индекс и блок может быть реконструирован, основываясь на установленных в палитре значениях.

2.1.2. Кодирование записей палитры

Для кодированных блоков палитры вводятся следующие ключевые подходы:

1) Создают текущую палитру, основываясь на палитре предиктора и новых записях, сообщаемых для текущей палитры, если они существуют.

2) Классифицируют текущие отсчеты/пиксели на две категории: одна (1-ая категория), чтобы включить отсчеты/пиксели в текущую палитру, и вторая (2-ая категория), чтобы включить отсчеты/пиксели за пределы текущей палитры.

a. Для отсчетов/пикселей во 2-ой категории квантование (в кодере) применяется к отсчетам/пикселям и квантованные значения сообщаются; и применяется деквантование (в декодере).

2.1.2.1. Палитра предиктора

Для кодирования записей палитра предиктора сохраняется, когда она обновляется после декодирования кодированного блока палитры.

2.1.2.1.1. Инициализация палитры предиктора

Палитра предиктора инициализируется в начале каждой секции и каждой плитки.

Максимальный размер палитры, а также палитры предиктора сообщается в SPS. В HEVC-SCC в PPS водится флаг palette_predictor_initializer_present_flag. Когда этот флаг равен 1, записи для инициализации палитры предиктора сообщаются в битовом потоке.

В зависимости от значения флага palette_predictor_initializer_present_flag, размер палитры предиктора устанавливается в исходное состояние, равное 0, или инициализируется, используя записи инициализатора палитры предиктора, сообщенные в PPS. В HEVC-SCC инициализатор палитры предиктора размером 0 был разрешен, чтобы позволить явное запрещение инициализации палитры предиктора на уровне PPS.

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

7.3.2.2.3 Синтаксис расширения кодирования контента экрана набора параметров последовательности

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

palette_max_size определяет максимально допустимый размер палитры. При его отсутствии значение palette_max_size принимается равным 0.

delta_palette_max_predictor_size определяет разность между максимально допустимым размером предиктора палитры и максимально допустимым размером палитры. При его отсутствии значение delta_palette_max_predictor_size принимается равным 0. Переменную PaletteMaxPredictorSize получают следующим образом:

PaletteMaxPredictorSize = palette_max_size + delta_palette_max_predictor_size … (2-1)

Требование соответствия битового потока состоит в том, что значение delta_palette_max_predictor_size должно быть равно 0, когда palette_max_size равно 0.

Флаг sps_palette_predictor_initializer_present_flag, равный 1, указывает, что предикторы палитры последовательности инициализируются, используя sps_palette_predictor_initializers, указанный в пункте sps_palette_predictor_initializer_flag. Флаг, равный 0, указывает, что записи в предикторе палитры последовательности инициализируются как 0. При их отсутствии значение sps_palette_predictor_initializer_flag принимается равным 0.

Требование соответствия битового потока состоит в том, что значение sps_palette_predictor_initializer_present_flag должно быть равным 0, когда palette_max_size равен 0.

sps_num_palette_predictor_initializer_minus1 плюс 1 указывает количество записей в инициализаторе предиктора палитры последовательности.

Требование соответствия битового потока состоит в том, что значение sps_num_palette_predictor_initializer_minus1 плюс 1 должно быть меньше или равно PaletteMaxPredictorSize.

sps_palette_predictor_initializers[comp ][i] определяет значение comp-ого компонента i-ой записи палитры в SPS, которая используется для инициализации массива PredictorPaletteEntries. Для значений i в диапазоне от 0 до sps_num_palette_predictor_initializer_minus1, включительно, значение sps_palette_predictor_initializers[0][i] будет в диапазоне от 0 до (1 <<BitDepthY) − 1, включительно, и значения sps_palette_predictor_initializers[1][i] и sps_palette_predictor_initializers[2][i] будут в диапазоне от 0 до (1 <<BitDepthC) − 1, включительно.

7.3.2.3.3 Синтаксис расширения кодирования контента экрана набора параметров изображения

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

Требование соответствия битового потока состоит в том, что значение pps_palette_predictor_initializer_present_flag должно быть равным 0, когда размер palette_max_size равен 0 или флаг palette_mode_enabled_flag равен 0.

pps_num_palette_predictor_initializer указывает количество записей в инициализаторе предиктора палитры изображения.

Требование соответствия битового потока состоит в том, что значение pps_num_palette_predictor_initializer должно быть меньше или равно PaletteMaxPredictorSize.

Переменные предиктора палитры инициализируются следующим образом:

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

- Процесс инициализации для переменных предиктора палитры инициируется, как определено в пункте 9.3.2.3.

- В противном случае, если флаг entropy_coding_sync_enabled_flag равен 1 и CtbAddrInRs%PicWidthInCtbsY равно 0 или TileId[CtbAddrInTs] не равно TileId[CtbAddrRsToTs [CtbAddrInRs − 1]], применяется следующее :

- Местоположение (xNbT, yNbT) верхнего левого отсчета яркости пространственного соседнего блока T (фиг. 2) получают, используя местоположение (x0, y0) верхнего левого отсчета яркости текущего блока дерева кодирования следующим образом:

(xNbT, yNbT) = (x0 + CtbSizeY, y0 − CtbSizeY) … (9-3)

- Процесс получения доступности для блока в порядке z-сканирования, как указано в пункте 6.4.1, инициируется с местоположением (xCurr, yCurr), установленным равным (x0, y0), и соседнее местоположение (xNbY, yNbY) устанавливается равным (xNbT, yNbT) в качестве вводов, а вывод назначается как availableFlagT.

- Процесс синхронизации для переменных контекста, состояния инициализации параметров Райса и переменные предиктора палитры инициализируются следующим образом:

- Если availableFlagT равен 1, процесс синхронизации для переменных контекста, состояния инициализации параметров Райса и переменные предиктора палитры, указанные в пункте 9.3.2.5, инициализируются с помощью TableStateIdxWpp, TableMpsValWpp, TableStatCoeffWpp, PredictorPaletteSizeWpp, и TablePredictorPaletteEntriesWpp в качестве вводов.

- В противном случае, применяется следующее:

- Процесс инициализации переменных предиктора палитры инициализируется, как указано в пункте 9.3.2.3.

- В противном случае, если CtbAddrInRs равно slice_segment_address и dependent_slice_segment_flag равен 1, процесс синхронизации переменных контекста и состояния инициализации параметров Райса, как указано в пункте 9.3.2.5, инициализируются с помощью TableStateIdxDs, TableMpsValDs, TableStatCoeffDs, PredictorPaletteSizeDs и TablePredictorPaletteEntriesDs в качестве вводов.

- В противном случае, применяется следующее:

- Процесс инициализации для переменных предиктора палитры инициализируется, как указано в пункте 9.3.2.3.

9.3.2.3 Процесс инициализации записей предиктора палитры

Результатами этого процесса являются инициализированные переменные предиктора палитры PredictorPaletteSize и PredictorPaletteEntries.

Переменную numComps получают следующим образом:

numComps = (ChromaArrayType = = 0)? 1: 3 … (9-8)

- Если флаг pps_palette_predictor_initializer_present_flag равен 1, применяется следующее:

- Размер PredictorPaletteSize устанавливается равным pps_num_palette_predictor_initializer.

- Массив PredictorPaletteEntries получают следующим образом:

for( comp = 0; comp < numComps; comp++ )

for( i = 0; i < PredictorPaletteSize; i++ ) … (9-9)

PredictorPaletteEntries[comp ][i] = pps_palette_predictor_initializers[ comp ][ i ]

- В противном случае, флаг (pps_palette_predictor_initializer_present_flag равен 0), если флаг sps_palette_predictor_initializer_present_flag равен 1, применяют следующее:

- Размер PredictorPaletteSize устанавливается равным sps_num_palette_predictor_initializer_minus1 плюс 1.

- Массив PredictorPaletteEntries получают следующим образом:

for( comp = 0; comp < numComps; comp++ )

for( i = 0; i < PredictorPaletteSize; i++ ) … (9-10)

PredictorPaletteEntries[ comp ][ i ] = sps_palette_predictor_initializers[ comp ][ i ]

- В противном случае, (pps_palette_predictor_initializer_present_flag равен 0 и sps_palette_predictor_initializer_present_flag, равен 0), PredictorPaletteSize устанавливается равным 0.

2.1.2.1.2. Использование палитры предиктора

Для каждой записи в предиктор палитры сообщается флаг повторного использования, чтобы указать, является ли она частью текущей палитры. Это показано на фиг. 2. Флаги повторного использования посылаются, используя последовательное кодирование нулей. После этого сообщается количество новых записей палитры, используя код Exponential Golomb (EG) порядка 0, например, EG-0. Наконец, сообщаются значения компонент для новых записей палитры.

2.1.2.2. Обновление палитры предиктора

Обновление палитры предиктора выполняют с помощью следующих этапов:

(1) перед декодированием текущего блока существует палитра предиктора, обозначенная как PltPred0

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

(3) Построение PltPred1:

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

b. если таблица не полна, добавляют не имеющие ссылок записи в PltPred0 в соответствии с возрастающим индексом записи.

2.1.3. Кодирование индексов палитры

Индексы палитры кодируются, используя горизонтальные и вертикальные поперечные сканирования как показано на фиг. 3. Порядок сканирования явно сообщается в битовом потоке, используя флаг palette_transpose_flag. В остальной части подраздела предполагается, что сканирование является горизонтальным.

Индексы палитры кодируются, используя два режима отсчетов палитры: 'COPY_LEFT' и 'COPY_ABOVE'. В режиме 'COPY_LEFT' индекс палитры присваивается декодированному индексу. В режиме 'COPY_ABOVE' копируется индекс палитры отсчета в строке, расположенной выше. Для обоих режимов, 'COPY_LEFT' и 'COPY_ABOVE', сообщается текущее значение, которое определяет количество последовательных отсчетов, которые также кодируются, используя тот же самый режим.

В режиме палитры значение индекса для отсчета escape является количеством записей палитры. И, когда символ escape является частью выполнения в режиме 'COPY_LEFT’ или 'COPY_ABOVE', значения компонент escape сообщаются для каждого символа escape. Кодирование индексов палитры показывается на фиг. 4.

Этот порядок синтаксиса осуществляется следующим образом. Сначала сообщается количество индексных значений для CU. Это сопровождается сообщением фактических индексных значений для всего CU, используя усеченное двоичное кодирование. Как количество индексов, так и значения индексов кодируются в байпасном режиме. Это позволяет группировать вместе связанные с индексом байпасные накопители. Затем режим отсчета палитры (в случае необходимости) и выполнение сообщаются чередующимся способом. Наконец, значения компонент escape, соответствующие отсчетам escape для всего CU, группируются и кодируются в байпасном режиме. Бинаризация отсчетов escape является кодированием EG 3-го порядка, например, EG-3.

Дополнительный синтаксический элемент, last_run_type_flag, сообщается после сообщений значений индексов. Этот синтаксический элемент, в сочетании с количеством индексов, избавляет от необходимости сообщать значение выполнения, соответствующее последнему выполнению в блоке.

В HEVC-SCC режим палитры также разрешается для форматов цветности 4:2:2, 4:2:0 и монохромного формата цветности. Сообщение записей палитры и индексов палитры почти идентично для всех форматов цветности. В случае немонохромных форматов, каждая запись палитры состоит из 3 компонентов. Для монохромного формата каждая запись палитры состоит из одного единственного компонента. Для субвыборочных направлений цветности отсчета цветности связываются с индексами отсчетов яркости, которые являются делимыми на 2. После реконструкции индексов палитры для CU, если отсчет имеет только единственный компонент, связанный с ним, используется только первый компонент записи палитры. Единственная разница в сигнализации состоит в значениях компонент escape. Для каждого отсчета escape количество сообщаемых значений компонентов escape может отличаться в зависимости от количества компонентов, связанных с этим отсчетом.

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

Тексты, связанные с этой частью, показаны ниже, где CurrPaletteIndex - текущий индекс палитры и adjustedRefPaletteIndex - индекс предсказания.

Переменная PaletteIndexMap [xC] [yC] определяет индекс палитры, который является индексом массива, представленного посредством CurrentPaletteEntries. Индексы xC, yC массива указывают местоположение (xC, yC) отсчета относительно верхнего левого отсчета яркости изображения. Значение PaletteIndexMap [xC] [yC] должно быть в диапазоне от 0 до MaxPaletteIndex, включительно.

Переменную adjustedRefPaletteIndex получают следующим образом:

adjustedRefPaletteIndex = MaxPaletteIndex + 1
if( PaletteScanPos > 0 ) {
xcPrev = x0 + TraverseScanOrder[ log2CbWidth ][ log2bHeight ][ PaletteScanPos − 1 ][ 0 ]
ycPrev = y0 + TraverseScanOrder[ log2CbWidth ][ log2bHeight ][ PaletteScanPos − 1 ][ 1 ]
if( CopyAboveIndicesFlag[ xcPrev ][ ycPrev ] = = 0 ) {
adjustedRefPaletteIndex = PaletteIndexMap[ xcPrev ][ ycPrev ] { (7-157)
}
else {
if( !palette_transpose_flag )
adjustedRefPaletteIndex = PaletteIndexMap[ xC ][ yC − 1 ]
else
adjustedRefPaletteIndex = PaletteIndexMap[ xC − 1 ][ yC ]
}
}

Когда CopyAboveIndicesFlag[xC][yC] равно 0, переменную CurrPaletteIndex получают следующим образом:

if( CurrPaletteIndex >= adjustedRefPaletteIndex )
CurrPaletteIndex++

2.1.3.1. Процесса декодирования кодированного блока палитры

1) Считывают информацию предсказания, чтобы отметить, какая из записей в палитре предиктора будет использована повторно; (palette_predictor_run).

2) Считывают новые записи палитры для текущего блока.

a. num_signaled_palette_entries

b. new_palette_entries

3) Создают CurrentPaletteEntries, основываясь на a) и b).

4) Считывают флаг присутствия символа escape: palette_escape_val_present_flag, чтобы получить MaxPaletteIndex.

5) Кодируют количество отсчетов, которые не кодированы с помощью режима копирования/режима выполнения.

a. num_palette_indices_minus1

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

2.2. Режим палитры в VVC

2.2.1. Палитра в двоичном дереве

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

2.2.2. Палитра как отдельный режим

В некоторых вариантах осуществления режимами предсказания блока кодирования могут быть MODE_INTRA, MODE_INTER, MODE_IBC и MODE_PLT. Бинаризация режимов предсказания изменяется соответственно.

Когда IBC выключается, на плитках I используется один первый накопитель, чтобы указать, является ли текущий режим предсказания режимом MODE_PLT или нет. В то же время на плитках P/B первый накопитель используется, чтобы указать, является ли текущий режим предсказания режимом MODE_INTRA или нет. Если нет, то используется один дополнительный накопитель, чтобы указать, что текущим режимом предсказания является режим MODE_PLT или MODE_INTER.

Когда IBC включен, на плитках I первый накопитель используется, чтобы указать, является ли текущий режим предсказания режимом MODE_IBC или нет. Если нет, используется второй накопитель, чтобы указать, является ли текущий режим предсказания режимом MODE_PLT или MODE_INTRA. Хотя на плитках P/B первый накопитель используется, чтобы указать, является ли текущий режим предсказания режимом MODE_INTRA или нет. Если это режим Intra, второй накопитель используется, чтобы указать, что текущим режимом предсказания является режим MODE_PLT или MODE_INTRA. Если нет, второй накопитель используется, чтобы указать, что текущим режимом предсказания является режим MODE_IBC или MODE_INTER.

Примерные тексты синтаксиса приводятся ниже.

Синтаксис блока кодирования

2.3. Деление изображений, субизображений, секций, плиток, бриков и CTU

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

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

Плитка: прямоугольная область CTU в пределах конкретного столбца плитки и конкретной строки плитки в изображении.

Брик: прямоугольная область строк CTU внутри конкретной плитки в изображении. Плитка может разделяться на множество бриков, каждый из которых состоит из одной или более строк CTU внутри плитки. Плитка, которая не делится на многочисленные брики, также упоминается как брик. Однако, брик, который является действительным поднабором плитки, не упоминается как плитка.

Сканирование брика: определенное последовательное упорядочивание CTU, разделяющих изображение, в котором CTU упорядочиваются друг за другом при растровом сканировании CTU в брике, где брики внутри плитки упорядочиваются друг за другом при растровом сканировании бриков плитки и плитки в изображении упорядочиваются друг за другом при растровом сканировании плиток изображения.

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

Плитка делится на один или более бриков, каждый из который состоит из множества строк CTU внутри плитки.

Плитка, которая не делится во многочисленные брики, также упоминается как брик. Однако, брик, который является действительным поднабором плитки, не упоминается как плитка.

Секция содержит либо множество плиток изображения, либо множество бриков плитки.

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

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

На фиг. 5 показан пример деления изображения на секции растрового сканирования, где изображение делится на 12 плиток и 3 секции растрового сканирования.

На фиг. 6 показан пример деления изображения на прямоугольные секции, где изображение делится на 24 плитки (6 столбцов плиток и 4 строки плиток) и 9 прямоугольных секций.

На фиг. 7 показан пример изображения, разделенного на плитки, брики и прямоугольные секции, где изображение делится на 4 плитки (2 столбца плиток и 2 строки плиток), 11 бриков (верхняя левая плитка содержит 1 брик, верхняя правая плитка содержит 5 бриков, нижняя левая плитка содержит 2 брика и нижняя правая плитка содержит 3 брика), и 4 прямоугольные секции.

На фиг. 8 показан пример разделения изображения на субизображения, где изображение делится на 28 субизображений переменного размера.

Когда изображение кодируется, используя три отдельных цветовых плоскости (флаг separate_colour_plane_flag равен 1), секция содержит только CTU одного цветового компонента, идентифицируемого соответствующим значением colour_plane_id, и каждый массив цветовых компонентов изображения состоит из секций, имеющих то же самое значение идентификатора colour_plane_id. Кодированные секции с различными значениями colour_plane_id внутри изображения могут чередоваться друг с другом при ограничении, что для каждого значения colour_plane_id блоки NAL кодированной секции с таким значением colour_plane_id должно следовать в порядке увеличения адреса CTU в порядке сканирования бриков для первого CTU каждого блока NAL кодированной секции.

Когда флаг separate_colour_plane_flag равен 0, каждый CTU изображения содержится точно в одной секции. Когда separate_colour_plane_flag равен 1, каждый CTU цветового компонента содержится точно в одной секции (например, информация для каждого CTU изображения присутствует точно в трех секциях и эти три секции имеют различные значения colour_plane_id).

2.4. Волновая обработка с задержкой на 1 CTU

В VVC используется волновая параллельная обработка с задержкой на один CTU (WPP) вместо задержки на два CTU как в HEVC. Обработка WPP способна обрабатывать множество WPP параллельно с ограниченными потерями кодирования, но задержка на два CTU может препятствовать возможностям параллельной обработки. Поскольку целевая разрешающая способность получается больше и количество CPU увеличивается, утверждается, что большая возможность параллельной обработки, поддерживаемая предложенной задержкой на CTU выгодна, чтобы понизить задержку кодирования и это должно полностью использовать возможности CTU.

3. Примеры проблем в существующих реализациях

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

(1) Текущая палитра создается с помощью предсказания на основе предыдущего кодирования. Она повторно инициализируется перед декодированием новой строки CTU или новой плитки, только когда флаг entropy_coding_sync_enabled_flag равен 1. Однако, при реальных применениях параллельный кодер предпочтителен там, где различные строки CTU могут предварительно кодированы, не обращаясь к информации других строк CTU.

(2) Способ обращения с процессом обновления палитры предиктора является фиксированным. То есть, записи, полученные от предыдущей палитры предиктора, и новые записи в текущей палитре вставляются по порядку. Если количество записей все еще меньше, чем размер палитры предиктора, дополнительно добавляются записи, которые получены не из предыдущей палитры предиктора. Такое построение не учитывает важность различных записей в текущей и предыдущей палитре предиктора.

(3) Размер палитры предиктора фиксируется и после декодирования блока он должен быть обновлен, чтобы заполнить все записи, которые могут быть субоптимальными, так как на некоторые из них могут никогда не ссылаться.

(4) Размер текущей палитры фиксируется независимо от цветовых компонентов, так что по сравнению с яркостью может использоваться меньше отсчетов цветности.

4. Примеры технологий и варианты осуществления

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

Способы, описанные ниже, могут также применяться к другим технологиям получения информации декодера о движении в дополнение к DMVR и BIO, упомянутым ниже.

Переклассификация палитры предиктора

1. Предлагается установить в исходное состояние или повторно инициализировать палитру предиктора (например, записи и/или размер палитры предиктора), прежде чем декодировать первый блок в новом блоке видео.

a. Альтернативно, палитра предиктора (например, записи и/или размер палитры предиктора) может быть установлена в исходное состояние или повторно инициализирована после декодирования последнего блока в блоке видео.

b. В одном примере блок видео является субобластью CTU (например, VPDU)/CTU/CTB/многочисленные CTU/многочисленные CU/строка CTU/плитка/брик/ субизображение/вид, и т.д.

i. Альтернативно, дополнительно, вышеупомянутый способ инициируется, даже когда волновая обработка запрещается (например, флаг entropy_coding_sync_enabled_flag равен 0).

c. В одном примере блок видео является строкой цветности CTU.

i. Альтернативно, дополнительно, палитра предиктора может устанавливаться в исходное состояние или повторно инициализироваться перед декодированием первого CTB цветности в новой строка CTU цветности.

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

d. В одном примере размер палитры предиктора (например, PredictorPaletteSize в спецификации) устанавливается в исходное состояние на 0.

e. В одном примере размер палитры предиктора (например, PredictorPaletteSize в спецификации) устанавливается в исходное состояние на количество записей в инициализаторе палитры предиктора последовательности (например, sps_num_palette_predictor_initializer_minus1 плюс 1) или на максимальное количество записей, разрешенных в палитре предиктора (например, PaletteMaxPredictorSize).

f. Инициализация палитры предиктора (например, PredictorPaletteEntries) перед кодированием/декодированием новой последовательности/изображения может использоваться для инициализации палитры предиктора перед кодированием/декодированием нового блока видео.

g. В одном примере, когда флаг entropy_coding_sync_enabled_flag равен 1, палитра предиктора после кодирования/декодирования верхнего CTB/CTU может использоваться для инициализации палитры предиктора перед кодированием/декодированием текущего CTB/CTU.

2. Предлагается запретить обновление палитры предиктора после кодирования/декодирования определенного кодированного блока палитры.

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

i. В одном примере, обновление палитра предиктора может зависеть от размера блока для текущего блока.

1. В одном примере, если ширина текущего блока не больше первого порога (обозначенного T1) и высота текущего блока не больше второго порога (обозначенного T2), процесс обновления запрещается.

2. В одном примере, если ширина текущего блока, умноженная на высоту блока не больше первого порога (обозначенного T1), процесс обновления запрещается.

3. В одном примере, если ширина текущего блока не меньше первого порога (обозначенного T1) и высота текущего блока не больше второго порога (обозначенного T2), процесс обновления запрещается.

4. В одном примере, если ширина текущего блока, умноженная на высоту блока не меньше первого порога (обозначенного T1), процесс обновления запрещается.

5. В вышеупомянутых примерах T1/T2 может быть заданным или сообщается.

a) В одном примере T1/T2 может быть установлено равным 4, 16 или 1024.

b) В одном примере T1/T2 может зависеть от цветовых компонентов.

3. Может быть определена совместно используемая палитра предиктора, в которой для всех CU/PU под совместно используемой областью, может использовать одна и та же палитра предиктора.

a. В одном примере совместно используемая область может быть определена для области MxN (например, для области 16x4 или 4x16) с помощью разбиения TT.

b. В одном примере совместно используемая область может быть определена для области MxN (например, для области 8x4 или 4x8) с помощью разбиения BT.

c. В одном примере совместно используемая область может быть определена для области MxN (например, для области 8x8) с помощью разбиения QT.

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

e. В одном примере индикации предсказанных записей в палитре предиктора (например, palette_predictor_run) могут сообщаться вместе с первым кодированным блоком палитры в пределах совместно используемой области.

i. Альтернативно, дополнительно, сообщение индикаций предсказанных записей в палитру предиктора (например, palette_predictor_run) может быть пропущено для остающихся кодированных блоков внутри совместно используемой области.

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

4. Счетчик может поддерживаться для каждой записи палитры предиктора, чтобы указать, как часто он использовался.

a. В одном примере счетчик может устанавливаться на постоянное значение K для каждой новой записи, добавленной к палитре предиктора.

i. В одном примере K может быть установлено равным 0.

b. В одном примере, когда запись помечается как повторно используемая при кодировании/раскодировании блока палитры, соответствующий счетчик может быть увеличен на постоянное значение N.

i. В одном примере N может быть установлено равным 1.

5. Вместо использования фиксированного размера палитры предиктора, предлагается адаптивно изменять размер палитры предиктора.

a. В одном примере он может быть изменяться от одного блока видео (block/CU/CTU/tile/brick/subpicture) к другому блоку видео.

b. В одном примере размер палитры предиктора может быть обновлен в соответствии с размером текущей палитры.

i. В одном примере размер палитры предиктора может быть установлен равным размеру текущей палитры после декодирования/кодирования текущего блока.

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

1. В одном примере K может сообщаться/получаться по ходу дела.

а. В одном примере размер палитры предиктора может зависеть от размера блока. Пусть S – заданный размер палитры предиктора для кодированного блока палитры.

i. В одном примере кодированный блок палитры с размером, меньшим или равным T, может использовать палитра предиктора с размером, меньшим S.

1. В одном примере может использоваться первое значение K записей (K <= S) в предикторе палитры.

2. В одном примере может использоваться субвыборочная версия предиктора палитры.

ii. В одном примере кодированный блок палитры с размером, большим или равным T, может использовать палитра предиктора с размером, равным S.

iii. В вышеупомянутых примерах K и/или T - целые числа и могут быть основаны на следующем:

1. Видеоконтенты (например, контенты экрана или естественные контенты),

2. Сообщение, переданное в DPS/SPS/VPS/PPS/APS/заголовке изображения/заголовки секции/групповом заголовке плитки/ наибольшем блоке кодирования (largest coding unit, LCU)/блоке кодирования (coding unit, CU)/строке LCU/группе блоков LCU/TU/PU/блоке видеокодирования

3. Положение блока кодирования CU/PU/TU/блока/видео

4. Индикация цветового формата (такого как 4:2:0, 4:4:4, RGB или YUV)

5. Кодирование древовидной структуры (такой как двоичное дерево или одиночное дерево)

6. Тип группы секций/плиток и/или тип изображения

7. Цветовой компонент

8. Идентификатор (ID) временного уровня

9. Профили/Уровни/Категории стандарта

d. В одном примере, после кодирования/декодирования блока палитры, палитра предиктора может быть адаптирован согласно счетчикам записей.

i. В одном примере запись с помощью счетчика, меньшая чем порог T, может быть отброшена.

ii. В одном примере записи с наименьшими значениями счетчика могут быть отброшены, пока размер палитры предиктора меньше порога T.

e. Альтернативно, дополнительно, после декодирования/кодирования кодированного блока палитры палитра предиктора может быть обновлена, только основываясь на текущей палитре.

i. Альтернативно, дополнительно, после декодирования/кодирования кодированного блока палитры, палитра предиктора может быть обновлены, чтобы стать текущей палитрой.

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

a. В одном примере переупорядочение может применяться в соответствии с декодированной информацией/реконструкцией текущего отсчета.

b. В одном примере переупорядочение может применяться в соответствии со значениями счетчика записей.

c. Альтернативно, дополнительно, может подсчитываться, сколько раз происходит отсчет/пиксель (в текущей палитре и/или вне текущей палитры).

i. Альтернативно, дополнительно, отсчет/пиксель с большим счетчиком (например, с отсчетами, происходящими более часто) может быть помещена перед другой отсчетом/пикселем с меньшим счетчиком.

7. Информация об исключенных отсчетах может использоваться для обновления палитры предиктора.

a. Альтернативно, дополнительно, обновление палитры предиктора исключенной информацией, может быть обусловлено инициированным.

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

8. Обновление/инициализация/установка в исходное состояние палитры предиктора может зависеть от цветового компонента.

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

9. Набор многочисленных палитр предиктора может сохраняться и/или обновляться.

a. В одном примере одна палитра предиктора может иметь информацию для одного или всех цветовых компонентов.

b. В одном примере одна палитра предиктора может иметь информацию для двух цветовых компонентов (например, Cb и Cr).

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

i. В одном примере палитра предиктора может обновляться в соответствии с глобальной палитрой и локальной палитрой.

d. В одном примере палитры, связанные с последними K кодированными блоками палитры (в порядке кодирования/декодирования), могут сохраняться.

e. В одном примере палитра для компонент яркости и цветовых компонент может быть предсказана, исходя их различных палитр предиктора, например, с различными индексами в наборе многочисленных палитр предиктора.

f. Альтернативно, дополнительно, отметка 1 может применяться для набора палитр предиктора.

g. Альтернативно, дополнительно, индекс/индексы палитры предиктора в наборе палитр предиктора могут быть сообщены для CU/PU/CTU/CTB/субобласти CTU или CTB.

О размерах палитры/палитры предиктора

10. Размер палитры может изменяться от одного блока видео к другому.

a. В одном примере он может изменяться от одного блока видео (блок/CU/CTU/плитка/брик/субизображение) к другому блоку видео.

b. В одном примере он может зависеть от декодированной информации текущего блока и/или от соседних (смежных или несмежных) блоков.

11. Размер палитры и/или палитры предиктора может зависеть от размера блоков и/или параметров квантования.

12. Размеры (или номер записей) палитры и/или палитра предиктора могут различаться для различных цветовых компонентов.

a. В одном примере могут явно или неявно сообщаться индикации размеров палитры и/или палитры предиктора для компонентов яркости и цветности.

b. В одном примере могут явно или неявно сообщаться индикации размеров палитры и/или палитры предиктора для каждого цветового компонента.

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

Сигнализация палитры

13. Соответствующий требованиям битовый поток должен удовлетворять тому, чтобы количество напрямую сообщаемых записей для текущего блока (например, num_signaled_palette_entries) было в пределах [0, palette_max_size-NumPredictedPaletteEntries], закрытого диапазона, включающего 0 и palette_max_size-NumPredictedPaletteEntries.

a. Как бинаризировать binarize num_signaled_palette_entries, может зависеть от допустимого диапазона.

i. Усеченное двоичное кодирование может быть использовано вместо EG-0.

b. Как бинаризировать binarize num_signaled_palette_entries, может зависеть от декодированной информации (например, размеров блока).

О волновой обработке с 1-CTU

14. Предлагается повторно инициализировать палитра предиктора (например, записи и/или размер), когда заканчивается синтаксический анализ (парсинг) синтаксиса CTU (например, в пункте 7.3.8.2 VVC), флаг entropy_coding_sync_enabled_flag равен 1 и либо текущий CTB является первым в новой строке CTU или текущий CTB не находится в том же самом брике, что и его предыдущий CTB.

a. Альтернативно, дополнительно, PredictorPaletteSizeWpp и PredictorPaletteEntriesWpp сохраняются, чтобы записать обновленный размер и записи палитры предиктора после окончания кодирования/декодирования вышеупомянутого CTU.

i. Альтернативно, кроме того, PredictorPaletteSizeWpp и PredictorPaletteEntriesWpp могут быть использованы для кодирования/декодирования текущего блока в текущем CTU.

b. В одном примере при окончании парсинга синтаксиса CTU по пункту 7.3.8.2, флаг entropy_coding_sync_enabled_flag равен 1 и либо CtbAddrInRs% PicWidthInCtbsY равен 0, либо BrickId [CtbAddrInBs] не равен BrickId [CtbAddrRsToBs [CtbAddrInRs − 1]], процесс хранения для переменных контекста как указано в пункте 9.3.2.3 инициируется с помощью TableStateIdx0Wpp, TableStateIdx1Wpp и TableMpsValWpp, и PredictorPaletteSizeWpp и PredictorPaletteEntriesWpp, когда флаг palette_mode_enabled_flag равен 1 в качестве выходного результата.

Общие положения

15. Применять ли и/или как применять вышеупомянутые способы, может быть основано на следующем:

a. Видеоконтенты (например, экранные контенты или естественные контенты).

b. Сообщение, переданное в DPS/SPS/VPS/PPS/APS/заголовке изображения/заголовке секции/групповом заголовке плиток/наибольшем блоке кодирования (LCU)/блоке кодирования (CU)/строке LCU/группе блоков LCU/TU/PU блока/блока видеокодирования.

c. Положение CU/PU/TU/блока/блока видеокодирования.

d. Декодированная информация текущего блока и/или его соседних блоков.

i. Размеры блока/ фома блока для текущего блока и/или его соседних блоков.

e. Индикация цветового формата (такого как 4:2:0, 4:4:4, RGB или YUV)

f. Структура дерева кодирования (такая как двоичное дерево или одиночное дерево).

g. Тип группы секций/плиток и/или тип изображения.

h. Цветовой компонент (например, может применяться только на компоненте яркости и/или на компоненте цветности),

i. Временный ID уровня.

j. Профили/уровни/категории стандарта

5. Дополнительные варианты осуществления

В нижеследующих вариантах осуществления вновь добавленные тексты показаны полужирным шрифтом и подчеркнутым выделенным курсивом. Любые стертые тексты помечаются как [[]].

5.1. Вариант 1 осуществления

9.3.1 Общие положения

Этот процесс инициируется, анализируя синтаксические элементы с помощью дескриптора ae(v) в пунктах 7.3.8.1-7.3.8.12.

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

Выходным результатом этого процесса является значение синтаксического элемента.

Процесс инициализации, как определено в пункте 9.3.2, инициируется при запуске парсинга одного или более из следующего:

1. Синтаксис данных сегмента секции, определенный в пункте 7.3.8.1.

2. Синтаксис CTU, указанный в пункте 7.3.8.2 и CTU, является первым CTU в брике [[плитке]].

3. Синтаксис CTU, определенный в пункте 7.3.8.2, [[флаг entropy_coding_sync_enabled_flag равен 1 и]], связанный CTB яркости первым CTB яркости в строке CTU брика [[плитки]].

Парсинг синтаксических элементов продолжается следующим образом:

Когда флаг cabac_bypass_alignment_enabled_flag равен 1, запрос значения синтаксического элемента предназначается либо для синтаксических элементов coeff_abs_level_remaining [], либо для coeff_sign_flag [], и escapeDataPresent равно 1, инициируется процесс выравнивания, предшествующий выровненному байпасному декодированию, как указано в пункте 9.3.4.3.6.

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

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

В случае, когда запрос значения синтаксического элемента обрабатывается для синтаксического элемента pcm_flag и декодированное значение pcm_flag равно 1, механизм декодирования инициализируется после декодирования любого из pcm_alignment_zero_bit и всех данных pcm_sample_luma и pcm_sample_chroma, как определено в пункте 9.3.2.6.

Процесс хранения переменных контекста применяется следующим образом:

- Когда заканчивается парсинг синтаксиса CTU согласно пункту 7.3.8.2, флаг entropy_coding_sync_enabled_flag равен 1 и либо CtbAddrInRs % PicWidthInCtbsY равно 1, либо оба CtbAddrInRs больше 1 и TileId [CtbAddrInTs] не равно TileId [CtbAddrRsToTs [CtbAddrInRs − 2]], процесс хранения переменных контекста, состояния инициализации параметров Райса, и переменные предиктора палитры, как определено в пункте 9.3.2.4, инициализируются с помощью TableStateIdxWpp, TableMpsValWpp, TableStatCoeffWpp, когда флаг persistent_rice_adaptation_enabled_flag равен 1, и PredictorPaletteSizeWpp и PredictorPaletteEntriesWpp, когда флаг palette_mode_enabled_flag равен 1, выводятся как результат.

- Когда заканчивается парсинг общего синтаксиса данных сегмента пластины согласно пункту 7.3.8.1, флаг dependent_slice_segments_enabled_flag равен 1, и флаг end_of_slice_segment_flag равен 1, процесс хранения переменных контекста, состояний инициализации параметров Райса, и переменных предиктора палитры, как указано в пункте 9.3.2.4, инициируется с помощью TableStateIdxDs, TableMpsValDs, TableStatCoeffDs, когда флаг persistent_rice_adaptation_enabled_flag равен 1, и PredictorPaletteSizeDs и PredictorPaletteEntriesDs, когда флаг palette_mode_enabled_flag равен 1, выводятся как результат.

5.2. Вариант 2 осуществления

9.3 Процесс анализа CABAC данных секции

9.3.1 Общие положения

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

Выходным результатом этого процесса является значение синтаксического элемента.

Процесс инициализации, как указано в пункте 9.3.2, инициируется, начиная парсинг синтаксиса CTU, определенный в пункте 7.3.8.2, и одно или более следующих условий являются действительными:

- CTU является первым CTU в брике.

- Значение флага entropy_coding_sync_enabled_flag равно 1 и CTU является первым CTU в строке CTU брика.

Парсинг синтаксических элементов продолжается следующим образом:

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

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

Процесс хранения для переменных контекста применяется следующим образом:

- Заканчивая парсинг синтаксиса CTU в пункте 7.3.8.2, флаг entropy_coding_sync_enabled_flag равен 1 и либо CtbAddrInRs % PicWidthInCtbsY равен 0, либо BrickId [CtbAddrInBs] не равен BrickId [CtbAddrRsToBs [CtbAddrInRs − 1]], процесс хранения переменных контекста, как определено в пункте 9.3.2.3, инициируется с

9.3.2 Процесс инициализации

9.3.2.1 Общие положения

- Выходные результаты этого процесса являются инициализированными внутренними переменными CABAC.

- Переменные контекста механизма арифметического декодирования инициализируются следующим образом:

- Если CTU является первым CTU в брике, процесс инициализации для переменных контекста инициируется как определено в пункте 9.3.2 и переменная PredictorPaletteSize [0/1/2] инициализируется на 0.

- В противном случае, если флаг entropy_coding_sync_enabled_flag равен 1 и или CtbAddrInRs % PicWidthInCtbsY равен 0 или BrickId [CtbAddrInBs] не равно BrickId [CtbAddrRsToBs [CtbAddrInRs − 1]], применяется следующее:

- Местоположение (xNbT, yNbT) верхнего левого отсчета яркости пространственного соседнего блока T (фиг. 9-2) получают, используя местоположение (x0, y0) верхнего левого отсчета яркости текущего CTB следующим образом:

- (xNbT, yNbT) = (x0, y0 − CtbSizeY) … (9-3)

- Процесс получения доступности соседнего блока, как указывается в пункте 6.4.4, инициируется с помощью местоположения (xCurr, yCurr), установленного равным (x0, y0), соседнее местоположение (xNbY, yNbY) устанавливается равным (xNbT, yNbT), checkPredModeY устанавливается равным FALSE (ложь) и cIdx устанавливается равным 0 в качестве входных данных, и выходные данные присваиваются availableFlagT.

- Процесс синхронизации для контекстных переменных инициируется следующим образом:

- Если availableFlagT равен 1, процесс синхронизации контекстных переменных, как определено в пункте 9.3.2.4, инициируется с TableStateIdx0Wpp, TableStateIdx1Wpp, TableMpsValWpp в качестве входных данных и переменная PredictorPaletteSize инициализируются на 0.

- В противном случае, процесс инициализации для контекстных переменных инициируется, как определено в пункте 9.3.2.2, и переменная PredictorPaletteSize инициализируется на 0.

- В противном случае, процесс инициализации для контекстных переменных инициируется, как определено в пункте 9.3.2.2, и переменная PredictorPaletteSize инициализируется на 0.

- Регистры механизма декодирования ivlCurrRange и ivlOffset, оба с точностью 16-тиразрядного регистра, инициализируются посредством инициирования процесса инициализации механизма арифметического декодирования, как определено в подпункте 9.3.2.5.

9.3.2.3 Процесс хранения контекстных переменных

Входными данными к этому процессу являются:

- Контекстные переменные CABAC, индексированные посредством ctxTable и ctxIdx.

Выходными данными этого процесса являются:

- Переменные tableStateSync0, tableStateSync1 и tableMPSSync, содержащие значения переменных pStateIdx0, pStateIdx1 и valMps, используемые в процессе инициализации контекстных переменных, которые присваиваются всем синтаксическим элементам в пунктах 7.3.8.1-7.3.8.11, кроме end_of_brick_one_bit и end_of_subset_one_bit.

Для каждой контекстной переменной соответствующие записи pStateIdx0, pStateIdx1 и valMps таблиц tableStateSync0, tableStateSync1 и tableMPSSync инициализируются до соответствующих pStateIdx0, pStateIdx1 и valMps.

Альтернативно, может применяться следующее:

5.3. Вариант 3 осуществления

Альтернативно, PredictorPaletteSize в приведенной выше таблице может быть установлен на другое целочисленное значение, такое как фиксированное значение или размер палитры предиктора.

6. Примерные реализации раскрытой технологии

На фиг. 9 представлена блок-схема устройства 900 видеообработки. Устройство 900 может использоваться для реализации одного или более способов, описанных здесь. Устройство 900 может быть реализовано в смартфоне, планшете, компьютере, приемнике Интернета вещей (Internet of Things, IoT) и так далее. Устройство 900 может содержать один или более процессоров 902, одну или более памятей 904 и аппаратные средства 906 видеообработки. Процессор(-ы) 902 может быть выполнен с возможностью реализаций одного или более способов, описанных в настоящем документе. Память(-и) 904 может использоваться для хранения данных и управляющей программы, используемых для реализации описанных здесь способов и технологий. Аппаратные средства 906 видеообработки могут использоваться для реализации в схемах аппаратных средств, некоторых способах, описанных в настоящем документе, и могут быть частично или полностью быть частью процессоров 902 (например, ядро графического процессора, GPU, или другая схема обработки сигналов).

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

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

На фиг. 10 представлена блок-схема примерной системы 1000 видеообработки, в которой здесь могут быть реализованы различные раскрытые здесь технологии. Различные реализации могут содержать некоторые или все компоненты системы 1000. Система 1000 может содержать ввод 1002 для приема видеоконтента. Видеоконтент может приниматься в сыром или несжатом формате, например, 8-ми- или 10-тибитные многокомпонентные пиксельные значения или может быть в сжатом или кодированном формате. Вход 1002 может представлять собой сетевой интерфейс, периферийный шинный интерфейс или интерфейс запоминающего устройства. Примеры сетевого интерфейса содержат проводные интерфейсы, такие как Ethernet, пассивную оптическую сеть (passive optical network, PON) и т.д., и беспроводные интерфейсы, такие как Wi-Fi или сотовые интерфейсы.

Система 1000 может содержать компонент 1004 кодирования, который может реализовывать различные способы кодирования или декодирования, описанные в настоящем документе. Компонент 1004 кодирования может снизить среднюю битовую скорость передачи видео от входа 1002 к выходу компонента 1004 кодирования, чтобы создать кодированное представление видео. Технологии кодирования поэтому иногда называют видеосжатием или технологиями транскодирования видео. Выход 1004 компонента кодирования может либо сохраняться, либо передаваться через подключенный канал связи, как представлено компонентом 1006. Сохраненное или передаваемое представление (или кодированное) представление битового потока видео, принятого на входе 1002, может использоваться компонентом 1008 для формирования пиксельных значений или отображаемого видео, которое посылается на интерфейс 1010 дисплея. Процесс формирования просматриваемого пользователем видео от представления битового потока иногда называют видеораспаковкой. Дополнительно, хотя некоторые операции видеообработки упоминаются как операции или инструменты "кодирования", следует понимать, что инструменты или операции кодирования используются в кодере, а соответствующие инструменты или операции декодирования, которые преобразуют обратно результаты кодирования, будет выполняться декодером.

Примеры периферийного шинного интерфейса или интерфейса дисплея могут содержать универсальную последовательную шину (universal serial bus, USB) или мультимедийный интерфейс высокой четкости (high definition multimedia interface, HDMI) или Displayport и так далее. Примеры интерфейсов запоминающего устройства содержат подключение по последовательной передовой технологии (advanced technology attachment, SATA), PCI, интерфейс IDE и т.п. Технологии, описанные в настоящем документе, могут быть реализованы в различных электронных устройствах, таких как мобильные телефоны, ноутбуки, смартфоны или другие устройства, которые способны выполнять обработку цифровых данных и/или отображение видео.

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

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

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

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

2. Способ по п. 1, в котором блок видео содержит одно из следующего: один или более блоков (unit) дерева кодирования, один или более блоков (block) дерева кодирования, субобласть блока дерева кодирования или строка/плитка/брик/субизображение/вид блока (block) дерева кодирования для блока (unit) дерева кодирования.

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

4. Способ по п. 3, в котором флаг entropy_coding_sync_enabled_flag устанавливается равным 0.

5. Способ по п. 1, в котором блок видео является строкой цветности блока дерева кодирования.

6. Способ по п. 5, в котором палитра предиктора устанавливается в исходное состояние перед декодированием первого блока дерева кодирования цветности (coding tree block, CTB) в новой строке CTU цветности.

7. Способ по п. 5, в котором палитра предиктора устанавливается в исходное состояние, когда применяется двоичное дерево кодирования и текущее разделение двоичного дерева кодирования является блоком дерева кодирования цветности.

8. Способ по п. 1, в котором размер палитры предиктора устанавливается в исходное состояние на ноль.

9. Способ по п. 1, в котором размер палитры предиктора устанавливается в исходное состояние на количество записей в последовательном инициализаторе предиктора палитры или на максимально допустимое количество записей.

10. Способ по п. 9, в котором последовательный инициализатор предиктора палитры используется для инициализации предиктора палитры перед применением на блоке видео.

11. Способ по п. 1, в котором когда флаг entropy_coding_sync_enabled_flag устанавливается равным 1, предиктор палитры, применяемый на предыдущем блоке видео, инициализируется повторно перед применением на блоке видео.

12. Способ по п. 1, в котором обновление палитра предиктора запрещается, основываясь на кодированной информации, связанной с блоком видео.

13. Способ по п. 12, в котором кодированная информация содержит размер блока видео.

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

15. Способ по п. 14, в котором одно или более пороговых условий являются заданными.

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

17. Способ видеообработки, содержащий этап, на котором:

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

18. Способ по п. 17, в котором совместно используемая область связывается с любым из следующего: разбиение TT, разбиение BT, разбиение QT.

19. Способ по п. 17, в котором совместно используемая палитра предиктора создается перед применением на многочисленных блоках кодирования.

20. Способ по п. 17, в котором индикации использования совместно используемой палитры предиктора явно или неявно сообщаются в кодированном представлении в соединении с первым кодированным блоком палитры совместно используемой области.

21. Способ по п. 17, дополнительно содержащий:

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

22. Способ видеообработки, содержащий этап, на котором:

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

23. Способ по п. 22, в котором одно или более условий связываются, по меньшей мере: с размером предыдущей информации о палитре, размерами блока видео, контентом блока видео, цветовым форматом блока видео, цветовым компонентом блока видео, структурой дерева кодирования блока видео, относительным положением блока видео в кодированном представлении, временным ID уровня блока видео, типом группы секций/плиток и/или типом изображения блока видео или профилем/уровнем/категорией блока видео.

24. Способ видеообработки, содержащий этап, на котором:

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

25. Способ по п. 24, в котором размер палитры предиктора обновляется от предыдущего видеоблока до текущего видеоблока.

26. Способ по п. 24, в котором размер палитры предиктора неявно или явно сообщается в кодированном представлении.

27. Способ по п. 24, в котором размер палитры предиктора зависит от одного или более из следующего: размеры видеоблока, параметры квантования видеоблока или один или более цветовых компонентов видеоблока.

28. Способ видеообработки, содержащий этап, на котором:

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

29. Способ по п. 28, в котором записи палитры предиктора переупорядочиваются или модифицируются, когда флаг entropy_coding_sync_enabled_flag равен 1.

30. Способ по п. 28, в котором записи палитры предиктора переупорядочиваются или модифицируются, когда встречается конец синтаксиса блока дерева кодирования.

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

32. Способ видеообработки, содержащий этап, на котором:

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

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

34. Способ по любому из вышеупомянутых пунктов, в котором во время преобразования используются одна или более палитр предиктора.

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

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

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

38. Способ, устройство или система, описанные в настоящем документе.

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

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

В некоторых вариантах осуществления первый порог или второй порог задается или сообщается в кодированном представлении. В некоторых вариантах осуществления первый порог равен 4, 16 или 1024. В некоторых вариантах осуществления второй порог равен 4, 16 или 1024. В некоторых вариантах осуществления первый порог или второй порог основан на цветовом компоненте текущего блока.

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

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

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

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

На фиг. 15 представлена блок-схема последовательности выполнения операций способа 1500 видеообработки в соответствии с настоящей технологией. Способ 1500 содержит на этапе 1510 выполнение преобразование между текущим блоком в блоке видео из видео и кодированным представлением видео, используя режим палитры, в котором палитра репрезентативных значений отсчетов используется для кодирования текущего блока. Во время преобразования палитра предиктора используется для предсказания палитры репрезентативных значений отсчетов. Палитра предиктора устанавливается в исходное состояние или повторно инициализируется перед преобразованием первого блока в блоке видео или после преобразования последнего блока видео в предыдущем блоке видео в соответствии с правилом.

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

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

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

В некоторых вариантах осуществления к блоку видео применяется деление третичного дерева, и в котором совместно используемая палитра предиктора используется для блока видео, имеющего размер 16×4 или 4×16. В некоторых вариантах осуществления к блоку видео применяется деление двоичного дерева и совместно используемая палитра предиктора используется для блока видео, имеющего размер 8×4 или 4×8. В некоторых вариантах осуществления к блоку видео применяется четвертичное дерево и совместно используемая палитра предиктора используется для блока видео, имеющего размер 8×8. В некоторых вариантах осуществления совместно используемая палитра предиктора создается одной перед преобразованиями всех многочисленных блоков внутри блока видео.

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

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

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

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

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

На фиг. 18 представлена блок-схема последовательности выполнения операций способа 1800 видеообработки в соответствии с настоящей технологией. Способ 1800 содержит на этапе 1810 выполнение преобразования между текущим видеоблоком и кодированным представлением видео, используя режим палитры, в котором палитра репрезентативных значений отсчетов используется для кодирования текущего блока для предсказания палитры репрезентативных значений отсчетов для текущего блока. Количество записей палитры, сообщенное в кодированном представлении, находится в пределах диапазона [0, максимально допустимый размер палитры - количество записей палитры, полученных во время преобразования], который является закрытым диапазоном, содержащим 0 и максимально допустимый размер палитры – количество записей палитры, полученных во время преобразования.

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

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

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

В некоторых вариантах осуществления правило определяет заданный размер палитры предиктора для текущего блока как S и дополнительное правило определяет, что размер палитры предиктора регулируется в соответствии с размером текущего блока. В некоторых вариантах осуществления в случае, если размер текущего блока меньше или равен T, размер палитры предиктора регулируется, чтобы быть меньше заданного размера S, T и S - целые числа. В некоторых вариантах осуществления первые K записей в палитре предиктора используются для преобразования, где K - целое число и K ≤ S. В некоторых вариантах осуществления для преобразования используется субвыборочная палитра предиктора, имеющая меньший размер, чем заданный размер S. В некоторых вариантах осуществления, в случае, если размер текущего блока больше или равен T, размер палитры предиктора регулируется, чтобы равняться заданному размеру S.

В некоторых вариантах осуществления K или T определяются, основываясь на характеристике видео. В некоторых вариантах осуществления характеристика видео содержит контент видео. В некоторых вариантах осуществления характеристика видео содержит информацию, сообщаемую в наборе параметров декодера, наборе параметров секции, наборе параметров видео, наборе параметров изображения, наборе параметров адаптации, заголовке изображения, заголовке секции, заголовке группы плиток, наибольшем блоке кодирования (LCU), блоке кодирования, строке LCU, группе LCU, блоке преобразования, блоке изображения или блоке видеокодирования в кодированном представлении. В некоторых вариантах осуществления характеристика видео содержит положение блока кодирования, блока изображения, блока преобразования, блока или блока видеокодирования внутри видео. В некоторых вариантах осуществления характеристика видео содержит индикацию цветового формата видео. В некоторых вариантах осуществления характеристика видео содержит структуру дерева кодирования, применяемую к видео. В некоторых вариантах осуществления характеристика видео содержит тип секции, тип группы плиток, или тип изображения видео. В некоторых вариантах осуществления характеристика видео содержит цветовой компонент видео. В некоторых вариантах осуществления характеристика видео содержит временной идентификатор уровня видео. В некоторых вариантах осуществления характеристика видео содержит профиль, уровень или категорию видеостандарта.

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

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

На фиг. 20 представлена блок-схема последовательности выполнения действий способа 2000 видеообработки в соответствии с настоящей технологией. Способ 2000 содержит на этапе 2010 выполнение преобразования между текущим блоком в видеоблоке видео и кодированным представлением видео, используя режим палитры, в котором палитра репрезентативных значений отсчетов используется для кодирования текущего блока. Во время преобразования палитра предиктора используется для предсказания палитры репрезентативных значений отсчетов и размер палитры репрезентативных отсчетов или палитры предиктора определяется согласно правилу, которое разрешает размеру изменяться между видеоблоками видео.

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

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

На фиг. 21 представлена блок-схема последовательности выполнения операций способа 2100 видеообработки в соответствии с настоящей технологией. Способ 2100 содержит на этапе 2110 выполнение преобразования между текущим блоком в видеоблоке видео и кодированным представлением видео, используя режим палитры, в котором палитра репрезентативных значений отсчетов используется для кодирования текущего блока. Во время преобразования палитра предиктора используется для предсказания палитры репрезентативных отсчетов. Палитра предиктора повторно инициализируется при удовлетворении условия, где условие удовлетворяется в случае, если видеоблок является первым видеоблоком в строке видеоблоков и синтаксический элемент содержится в кодированном представлении, указывая, что для видеоблока разрешается волновая параллельная обработка.

В некоторых вариантах осуществления видеоблок содержит блок (unit) дерева кодирования или блок (block) дерева кодирования. В некоторых вариантах осуществления условие удовлетворяется в случае, если текущий блок и предыдущий блок находятся не в одном и том же брике. В некоторых вариантах осуществления после преобразования видеоблока по меньшей мере один синтаксический элемент сохраняется, чтобы записать размер палитры предиктора и/или количество записей в палитре предиктора. В некоторых вариантах осуществления по меньшей мере один синтаксический элемент используется для преобразования текущего блока.

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

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

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

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

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

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

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

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

Процессоры, пригодные для выполнения компьютерной программы, содержат, например, универсальные микропроцессоры и микропроцессоры специального назначения, и любой один или более процессоров любого вида цифрового компьютера. Обычно, процессор принимает команды и данные из постоянной памяти или из оперативной памяти или из них обоих. Существенными элементами компьютера являются процессор для выполнения команд и одно или более запоминающих устройств для хранения команд и данных. Обычно компьютер будет также содержать или оперативно связываться, чтобы принимать данные или передавать данные одному или более устройствам массового хранения для хранения данных, например, магнитные, магнитооптические диски или оптические диски. Однако, компьютер может не иметь таких устройств. Считываемые компьютером носители, пригодные для хранения команд компьютерной программы и данных, содержат все формы долговременной памяти, устройств хранения данных и запоминающих устройств, включая, например, устройства полупроводниковой памяти, например, EPROM, EEPROM, и устройства флэш-памяти; магнитные диски, например, внутренние жесткие диски или съемные диски; магнитооптические диски; и диски CD-ROM и DVD-ROM. Процессор и память могут дополняться или включаться в логическую схему специального назначения.

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

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

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

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

название год авторы номер документа
ОГРАНИЧЕНИЕ РАЗМЕРА НА ОСНОВЕ ВНУТРИКАДРОВОГО РЕЖИМА ЦВЕТНОСТИ 2020
  • Сюй, Цзичжэн
  • Дэн, Чжипинь
  • Чжан, Ли
  • Лю, Хунбинь
  • Чжан, Кай
RU2807441C2
РАЗДЕЛЕНИЕ ВИДЕООБЛАСТИ НА ОСНОВЕ ЦВЕТОВОГО ФОРМАТА 2020
  • Сюй, Цзичжэн
  • Дэн, Чжипинь
  • Чжан, Ли
  • Лю, Хунбинь
RU2811644C2
СПОСОБ КОНТЕКСТНО-ЗАВИСИМОГО КОДИРОВАНИЯ ДЛЯ РЕЖИМА С ПРОПУСКОМ ПРЕОБРАЗОВАНИЯ 2020
  • Чжу, Вэйцзя
  • Чжан, Ли
  • Сюй, Цзичжэн
RU2817139C2
ОГРАНИЧЕНИЕ ПРЕДСТАВЛЕНИЯ ДИФФЕРЕНЦИАЛЬНОЙ ИМПУЛЬСНО-КОДОВОЙ МОДУЛЯЦИИ КВАНТОВОГО ОСТАТКА КОДИРОВАННОГО ВИДЕО 2020
  • Чжу, Вэйцзя
  • Чжан, Ли
  • Сюй, Цзичжэн
  • Чуан, Хсяо Чиан
RU2807214C2
СПОСОБ И УСТРОЙСТВО ДЛЯ РЕЖИМА КОДИРОВАНИЯ НА ОСНОВЕ ПАЛИТРЫ ПОД СТРУКТУРОЙ ЛОКАЛЬНОГО ДВОЙСТВЕННОГО ДЕРЕВА 2021
  • Сюй Сяочжун
  • Лю Шань
RU2801430C1
ПАРАМЕТР КВАНТОВАНИЯ ДЛЯ ДЕБЛОКИРУЮЩЕЙ ФИЛЬТРАЦИИ ЦВЕТНОСТИ 2020
  • Чжу, Вэйцзя
  • Чжан, Ли
  • Сюй, Цзичжэн
RU2822510C1
СПОСОБ ОПРЕДЕЛЕНИЯ РЕЖИМА КОДИРОВАНИЯ НА ОСНОВЕ ЦВЕТОВОГО ФОРМАТА 2020
  • Сюй, Цзичжэн
  • Дэн, Чжипинь
  • Чжан, Ли
  • Лю, Хунбинь
  • Чжан, Кай
RU2816857C2
ПРОЦЕДУРА КВАНТОВАНИЯ ДЛЯ РЕЖИМА ПАЛИТРЫ 2020
  • Чжу, Вэйцзя
  • Чжан, Ли
  • Сюй, Цзичжэн
  • Чжан, Кай
  • Лю, Хунбинь
  • Ван, Юэ
RU2803621C2
ОПРЕДЕЛЕНИЕ РЕЖИМА РАЗДЕЛЕНИЯ ИЗОБРАЖЕНИЯ НА ОСНОВЕ РАЗМЕРА БЛОКА 2020
  • Дэн, Чжипинь
  • Чжан, Ли
  • Чжан, Кай
  • Лю, Хунбинь
RU2815443C2
СОВМЕСТНОЕ КОДИРОВАНИЕ ИНДИКАЦИИ ИСПОЛЬЗОВАНИЯ РЕЖИМА ПАЛИТРЫ 2020
  • Чжу, Вэйцзя
  • Чжан, Ли
  • Сюй, Цзичжэн
  • Чжан, Кай
  • Лю, Хунбинь
  • Ван, Юэ
RU2810950C2

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

Реферат патента 2024 года ИСПОЛЬЗОВАНИЕ ПАЛИТРЫ ПРЕДИКТОРА В ВИДЕОКОДИРОВАНИИ

Изобретение относится к технологиям видеокодирования. Техническим результатом является повышение эффективности видеокодирования. Результат достигается тем, что выполняют преобразование между текущим блоком видео и кодированным представлением видео с использованием режима палитры. Во время преобразования палитра предиктора используется для предсказания палитры репрезентативных значений отсчетов для текущего блока в режиме палитры. Обновление палитры предиктора после преобразования текущего блока запрещено в соответствии с правилом, основанным на характеристике текущего блока. 4 н. и 10 з.п. ф-лы, 21 ил.

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

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

определяют для преобразования между текущим блоком видео и битовым потоком видео, что к текущему блоку применяется режим предсказания, причем в режиме предсказания реконструированные отсчеты представлены набором репрезентативных цветовых значений, и набор репрезентативных цветовых значений содержит по меньшей мере одно из: 1) предикторов палитры, 2) скрытых отсчетов или 3) информации о палитре, включенной в битовый поток;

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

выполняют преобразование на основе текущей палитры; и

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

при этом таблица предсказания палитры обновляется на основе текущей палитры.

2. Способ по п. 1, в котором характеристика текущего блока содержит цветовой компонент.

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

4. Способ по п. 2 или 3, в котором характеристика текущего блока дополнительно содержит размеры текущего блока.

5. Способ по п. 4, в котором обновление таблицы предсказания палитры разрешено, когда ширина текущего блока и высота текущего блока больше заданного порога.

6. Способ по п. 5, в котором текущий блок является блоком цветности, а заданный порог равен 8, или текущий блок является блоком яркости, а заданный порог равен 16.

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

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

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

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

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

10. Способ по любому из пп. 1-9, в котором на этапе преобразования кодируют текущий блок в битовый поток.

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

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

определения, для преобразования между текущим блоком видео и битовым потоком видео, что к текущему блоку применяется режим предсказания, причем в режиме предсказания реконструированные отсчеты представлены набором репрезентативных цветовых значений, и набор репрезентативных цветовых значений содержит по меньшей мере одно из: 1) предикторов палитры, 2) скрытых отсчетов или 3) информации о палитре, включенной в битовый поток;

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

выполнения преобразования на основе текущей палитры; и

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

при этом таблица предсказания палитры обновляется на основе текущей палитры.

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

определения для преобразования между текущим блоком видео и битовым потоком видео, что к текущему блоку применяется режим предсказания, причем в режиме предсказания реконструированные отсчеты представлены набором репрезентативных цветовых значений, и набор репрезентативных цветовых значений содержит по меньшей мере одно из: 1) предикторов палитры, 2) скрытых отсчетов или 3) информации о палитре, включенной в битовый поток;

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

выполнения преобразования на основе текущей палитры; и

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

при этом таблица предсказания палитры обновляется на основе текущей палитры.

14. Способ сохранения битового потока видео, содержащий этапы, на которых:

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

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

формируют битовый поток на основе текущей палитры;

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

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

при этом таблица предсказания палитры обновляется на основе текущей палитры.

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

US 10038915 B2, 2018.07.31
US 2019149843 A1, 2019.05.16
ПАЛИТРОВОЕ ПРОГНОЗИРОВАНИЕ ПРИ КОДИРОВАНИИ ВИДЕО НА ОСНОВЕ ПАЛИТР 2014
  • Го Ливэй
  • Карчевич Марта
  • Соле Рохальс Джоэль
  • Джоши Раджан Лаксман
  • Ким Воо-Шик
  • Пу Вэй
RU2641252C2
US 2017127058 A1, 2017.05.04
US 2016100179 A1, 2016.04.07
US 9788004 B2, 2017.10.10
US 10097848 B2, 2018.10.09
US 2018115787 A1, 2018.04.26.

RU 2 822 611 C2

Авторы

Чжан, Ли

Чжу, Вэйцзя

Сюй, Цзичжэн

Даты

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

2020-09-10Подача