Область техники, к которой относится изобретения
Настоящий документ относится к технологиям кодирования видео и изображений.
Уровень техники
Цифровое видео занимает наибольшую долю полосы частот в сети Интернет и в других цифровых сетях связи. Поскольку число присоединенных пользовательских устройств, способных принимать и представлять видео на дисплее, увеличивается, ожидается, что потребности в полосе для использования цифровым видео будут продолжать расти.
Раскрытие сущности изобретения
Предлагаемая технология может быть использована в вариантах декодирующих устройств или кодирующих устройств для видео или изображений, в которых применяется кодирование в режиме палитры.
Согласно примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между видеообластью видео и представлением видео в виде потока битов данных. Представление в виде потока битов данных обрабатывается согласно первому правилу форматирования, которое определяет, сообщать ли первую индикацию режима палитры в виде сигнализации для рассматриваемого блока, и второму правилу форматирования, которое определяет позицию первой индикации относительно второй индикации использования режим прогнозирования для указанного блока.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором определяют, для преобразования между блоком видеообласти видео и представлением видео в виде потока битов данных, режим прогнозирования на основе одного или более допустимых режимов прогнозирования, которые содержат по меньшей мере режим палитры, для указанного блока. Индикация использования режима палитры определяется согласно режиму прогнозирования. Способ содержит также этап, на котором выполняют преобразование на основе указанного одного или более допустимых режимов прогнозирования.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между блоком видео и представлением видео в виде потока битов данных. Представление в виде потока битов данных обрабатывается в соответствии с правилом форматирования, которое определяет первую индикацию использования режима палитры и вторую индикацию использования режима внутрикадрового копирования блоков (intra block copy (IBC)), которые передаются в виде сигнализации в зависимости друг от друга.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, наличие индикации использования режима палитры в представлении в виде потока битов данных на основе размера указанного блока; и выполняют преобразование на основе указанного определения.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, наличие индикации для использования режима внутрикадрового копирования блоков (IBC) в представлении в виде потока битов данных на основе размера указанного блока; и выполняют преобразование на основе указанного определения.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, допустим ли режим палитры для указанного блока, на основе второй индикации для видеообласти, содержащей указанный блок; и выполняют преобразование на основе указанного определения.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, допустим ли режим внутрикадрового копирования блоков (IBC) для указанного блока, на основе второй индикации для видеообласти, содержащей указанный блок; и выполняют преобразование на основе указанного определения.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором определяют, для преобразования между блоком видео и представлением видео в виде потока битов данных, первую битовую глубин первого отсчета, ассоциированного с позицией палитры в режиме палитры. Первая битовая глубина отличается от второй битовой глубины, ассоциированной с указанным блоком. Способ содержит также этап, на котором выполняют преобразование на основе указанного определения.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором определяют, для преобразования между текущим блоком видео и представлением видео в виде потока битов данных, что соседний блок относительно текущего блока, кодированного в режиме палитры, обрабатывается как блок, кодированный в режиме внутрикадрового прогнозирования, имеющий режим по умолчанию в процессе построения списка наиболее вероятных режимов-кандидатов (most probable modes (MPM)) для текущего блока в случае, когда соседний блок расположен сверху или слева от текущего блока. Способ содержит также этап, на котором выполняют преобразование на основе указанного определения.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором определяют, для блока видео, кодированного в представление видео в виде потока битов данных как блок, кодированный в режиме палитры, параметр для деблокирующей фильтрации в соответствии с правилом. Способ также содержит этап, на котором выполняют преобразование между блоком видео и представлением видео в виде потока битов данных с использованием указанного параметра для деблокирующей фильтрации.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором определяют, для преобразования между текущим блоком видео и представлением видео в виде потока битов данных, что соседний блок относительно текущего блока, кодированного в режиме палитры, обрабатывается как блок, кодированный не в режиме внутрикадрового прогнозирования, в процессе построения списка наиболее вероятных режимов-кандидатов (MPM) для текущего блока. Способ содержит также этап, на котором выполняют преобразование на основе указанного определения.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, для блока видео, параметра квантования, ассоциированный с указанным блоком, кодируют указанный блок видео в представление видео в виде потока битов данных как блок, кодированный в режиме палитры, частично на основе модифицированного значения указанного параметра квантования, и передают в виде сигнализации кодированную информацию, относящуюся к параметру квантования в представлении видео в виде потока битов данных.
Согласно другому примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют параметр квантования на основе представления видео в виде потока битов данных и декодируют кодированный в режиме палитры блок частично на основе модифицированного параметра квантования, определяемого путем модификации указанного параметра квантования.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором определяют, для блока видео, кодированного в представление видео в виде потока битов данных как блок, кодированный в режиме палитры, представление выпадающего отсчета блока в представлении в виде потока битов данных независимо от того, активизирован ли режим обхода для указанного блока. Способ также содержит этап, на котором выполняют преобразование между блоком и представлением в виде потока битов данных на основе указанного определения.
Согласно еще одному примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором определяют, для блока видео, кодированного в виде представления видео в виде потока битов данных как блок, кодированный в режиме палитры, первую процедуру квантования. Первая процедура квантования отличается от второй процедуры квантования, применимой к блоку, кодированному не в режиме палитры. Способ содержит также этап, на котором выполняют преобразование между указанным блоком и представлением в виде потока битов данных на основе указанного определения.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, что режим палитры подлежит использованию для обработки единицы преобразования, блока кодирования или области, причем использование режима палитры кодируется отдельно от режима прогнозирования, и выполняют дальнейшую обработку указанной единицы преобразования, блока кодирования или области в режиме палитры.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этапы, на которых определяют, для текущего видеоблока, что отсчет, ассоциированный с одной позицией палитры в режиме кодирования палитры, имеет первую битовую глубину, отличную от второй битовой глубины, ассоциированной с текущим видеоблоком, и выполняют, на основе указанной по меньшей мере одной позиции палитры, дальнейшую обработку текущего видеоблока.
Согласно другому примерному аспекту предложен способ обработки видео. Способ содержит этап, на котором выполняют преобразование между текущим видеоблоком изображения видео и представлением видео в виде потока битов данных, в котором информация о том, используется ли для указанного преобразования режим внутрикадрового кодирования блоков, сообщается в виде сигнализации в представлении в виде потока битов данных или получается на основе состояния кодирования текущего видеоблока; причем режим внутрикадрового копирования блоков содержит кодирование текущего видеоблока, исходя из другого видеоблока в изображении.
Согласно еще одному примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют, следует ли применить деблокирующий фильтр в процессе преобразования текущего видеоблока изображения видео, причем текущий видеоблок кодирован с использованием режима кодирования палитры, в котором текущий видеоблок представлен с использованием репрезентативных значений отсчетов, число которых меньше общего числа пикселей текущего видеоблока, и выполняют преобразование так, что применяют деблокирующий фильтр в случае, когда определено, что деблокирующий фильтр нужно применить.
Согласно еще одному другому примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют, что следует использовать процедуру квантования или процедуру обратного квантования в процессе преобразования между текущим видеоблоком изображения видео и представлением видео в виде потока битов данных, причем текущий видеоблок кодируется с использованием режима кодирования палитры, в котором текущий видеоблок представлен с использованием репрезентативных значений отсчетов, число которых меньше общего числа пикселей текущего видеоблока, и выполняют преобразование на основе определения процедуры квантования или процедуры обратного квантования.
Согласно еще одному другому примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между текущим видеоблоком видео, содержащего множество видеоблоков, и представлением видео в виде потока битов данных, что текущий видеоблок является блоком, кодированных в режиме кодирования палитры; на основе результата определения выполняют процедуру построения списка наиболее вероятных режимов с учетом того, что текущий видеоблок является блоком, кодированным в режиме внутрикадрового прогнозирования, и выполняют преобразование на основе результата построения списка; при этом блок, кодированный в режиме кодирования палитры, кодируется или декодируется с использованием палитры или значений репрезентативных отсчетов.
Согласно еще одному другому примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между текущим видеоблоком видео, содержащим множество видеоблоков, и представлением видео в виде потока битов данных, что текущий видеоблок является блоком, кодированным в режиме палитры; на основе указанного определения выполняют процедуру построения списка наиболее вероятных режимов с учетом того, что текущий видеоблок является блоком, кодированным не в режиме внутрикадрового прогнозирования, и выполняют преобразование на основе результата процедуры построения списка; причем блок, кодированный в режиме кодирования палитры, кодируется или декодируется с использованием палитры или значений репрезентативных отсчетов.
Согласно еще одному другому примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют, для преобразования между текущим видеоблоком видео, содержащего множество видеоблоков, и представлением видео в виде потока битов данных, что текущий видеоблок является блоком, кодированным в режиме палитры; на основе указанного определения выполняют процедуру построения списка наиболее вероятных режимов с учетом того, что текущий видеоблок является недоступным блоком, и выполняют преобразование на основе результата построения списка; причем блок, кодированный в режиме кодирования палитры, кодируется или декодируется с использованием палитры или значений репрезентативных отсчетов.
Согласно еще одному другому примерному аспекту предложен другой способ обработки видео. Способ содержит этапы, на которых определяют, в процессе преобразования между текущим видеоблоком и представлением текущего видеоблока в виде потока битов данных, что текущий видеоблок является блоком, кодированным в режиме кодирования палитры, определяют на основе того, что текущий видеоблок является блоком, кодированным в режиме палитры, диапазон бинов, кодированных контекстно-адаптивным способом и используемых для преобразования; и выполняют преобразование на основе указанного диапазона бинов, кодированных контекстно-адаптивным способом.
Согласно еще одному другому примерному аспекту описанный выше способ может быть реализован посредством кодирующего устройства для видео, содержащего процессор.
Согласно еще одному другому примеру аспекта, эти способы могут быть реализованы в виде выполняемых процессором команд и сохранены на читаемом компьютером носителе программы.
Эти и другие аспекты дополнительно описаны в настоящем документе.
Краткое описание чертежей
Фиг. 1 показывает пример внутрикадрового копирования блоков.
Фиг. 2 показывает пример блока, кодированного в режиме палитры.
Фиг. 3 показывает пример использования предиктора палитры для передачи сигнализации о входных позициях в палитре.
Фиг. 4 показывает пример горизонтального и вертикального поперечного сканирования.
Фиг. 5 показывает пример кодирования индексов палитры.
Фиг. 6 представляет блок-схему примера устройства для обработки видео.
Фиг. 7 показывает блок-схему примера реализации видео кодирующего устройства.
Фиг. 8 представляет логическую схему примера способа обработки видео.
Фиг. 9 показывает пример пикселей, вовлеченных в принятие решения о включении/выключении фильтра и в выбор сильного/слабого фильтра.
Фиг. 10 показывает пример бинаризации четырех режимов.
Фиг. 11 показывает пример бинаризации четырех режимов.
Фиг. 12 показывает примеры 67 направлений для внутрикадрового прогнозирования.
Фиг. 13 показывает примеры соседних видеоблоков.
Фиг. 14 показывает примеры форм ALF-фильтров (цветностная составляющая: 5×5 ромб, яркостная составляющая: 7×7 ромб).
Фиг. 15A показывает примеры вычислений субдискретизированного оператора Лапласа для вертикального градиента.
Фиг. 15B показывает примеры вычислений субдискретизированного оператора Лапласа для горизонтального градиента.
Фиг. 15C показывает примеры вычислений субдискретизированного оператора Лапласа для диагонального градиента.
Фиг. 15D показывает примеры вычислений субдискретизированного оператора Лапласа для диагонального градиента.
Фиг. 16 показывает примеры модифицированной классификации блоков по виртуальным границам.
Фиг. 17 показывает примеры модифицированной ALF-фильтрации для яркостной составляющей на виртуальных границах.
Фиг. 18 показывает пример четырех одномерных (1-D) 3-пиксельных структур для классификации пикселей в структуре со смещением края (EO).
Фиг. 19 показывает представленный позицией стартовой полосы пример четырех полос, сгруппированных вместе.
Фиг. 20 показывает пример верхнего и левого соседних блоков, используемых для вывода весовых коэффициентов для режима прогнозирования CIIP.
Фиг. 21 показывает пример архитектуры для отображения яркостной составляющей с масштабированием цветностной составляющей.
Фиг. 22 показывает пример порядка сканирования для блока размером 4×4.
Фиг. 23 показывает другой пример порядка сканирования для блока размером 4×4.
Фиг. 24 представляет блок-схему, показывающую пример системы 2400 обработки видео, в которой могут быть реализованы различные предлагаемые здесь технологии.
Фиг. 25 показывает представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 26 показывает представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 27 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 28 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 29 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 30 показывает другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 31 показывает еще одно другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 32 показывает еще одно другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 33 показывает еще одно другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 34 показывает еще одно другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 35 показывает еще одно другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 36A показывает еще одно другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 36B показывает еще одно другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 37 показывает еще одно другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Фиг. 38 показывает еще одно другое представление логической схемы другого способа обработки видео в соответствии с предлагаемой технологией.
Осуществление изобретения
Настоящий документ предлагает различные способы, которые могут быть использованы декодирующими устройствами для декодирования изображения или потока битов данных видео с целью улучшения качества расширенного или декодированного цифрового видео или изображений. Для краткости, термин «видео» используется здесь для того, чтобы охватывать как последовательность изображений (традиционно называемую «видео»), так и индивидуальные изображения. Более того, видео кодирующее устройство может также реализовать эти способы в процессе кодирования с целью реконструировать декодированные кадры, используемые для дальнейшего кодирования.
Заголовки разделов в настоящем документе используются для облегчения понимания и не ограничивают варианты и способы только соответствующими разделами. Поэтому, варианты из одного раздела можно комбинировать с вариантами из других разделов.
1. Краткое изложение существа изобретения
Настоящий документ относится к технологиям кодирования видео. В частности, документ относится к кодированию в режиме палитры с использованием представления на основе базовых цветов при кодировании видео. Документ может быть применен к существующим стандартам кодирования видео, таких как «Высокоэффективное видео кодирование» (HEVC) или стандарт «Универсальное видео кодирование» (VVC (Versatile Video Coding)), разработка которого еще не завершена. Он может быть также применим к стандартам будущего для обработки видео или к видео кодекам.
2. Первоначальное обсуждение
Стандарты кодирования видео развивались главным образом через разработку хорошо известных стандартов 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, группа экспертов по кодированию видео (VCEG) и группа экспертов по кинематографии (MPEG) в 2015 г. совместно основали Объединенную группу исследований в области видео (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.
На фиг. 7 представлена блок-схема примера реализации видео кодирующего устройства. На фиг. 7 показано, что реализация кодирующего устройства имеет встроенную цепь обратной связи, в которое видео кодирующее устройство также осуществляет функции декодирования видео (реконструкцию сжатого представления данных видео для использования при кодировании следующих данных видео).
2.1 Режим внутрикадрового копирования блоков
Режим внутрикадрового копирования блоков (IBC), который также называется использованием текущего изображения в качестве опоры, был принят в расширениях кодирования контента экрана (HEVC Screen Content Coding extensions (HEVC-SCC)) и в тестовой модели сегодняшней версии стандарта кодирования VVC (VTM-4.0). Принцип копирования IBC расширяет концепцию компенсации движения от кодирования с межкадровым прогнозированием на кодирование с внутрикадровым прогнозированием. Как показано на фиг. 1, когда применяется копирование IBC, текущий блок прогнозируют на основе опорного блока из того же самого изображения. Отсчеты из опорного блока должны быть уже реконструированы прежде, чем текущий блок будет кодирован или декодирован. Хотя режим копирования IBC не является таким же эффективным, как большинство захватываемых видеокамерой последовательностей, он демонстрирует значительный выигрыш по кодированию контента экрана. Причиной этого является наличие больших групп из повторяющихся структур, таких как иконки и текстовые символы, в изображении контента экрана. Режим копирования IBC может эффективно устранить избыточность между этими повторяющимися структурами. В стандарте HEVC-SCC, единица кодирования (coding unit (CU)) с применением межкадрового прогнозирования может применить режим копирования IBC, если она выберет текущее изображение в качестве опорного изображения. В этом случае вектор движения (MV) переименовывают в блочный вектор (block vector (BV)), причем этот вектор BV всегда имеет точность до целого пикселя. Для обеспечения совместимости с главным профилем кодирования HEVC, текущее изображение маркируют как «долговременное» (“long-term”) опорное изображение в буфере декодированных изображений (Decoded Picture Buffer (DPB)). Следует отметить, что аналогично, в стандартах многовидового/3D кодирования видео, межвидовое опорное изображение также маркируют в качестве «долговременного» опорного изображения.
Следуя за вектором BV, чтобы найти опорный блок, прогнозирование можно генерировать путем копирования опорного блока. Остаток может быть получен путем вычитания опорных пикселей из исходных сигналов. Затем может быть применена трансформация и квантование, как и в других режимах кодирования.
Однако, когда опорный блок находится вне изображения, либо накладывается на текущий блок, либо находится вне реконструированной области, либо находится вне действительной области, ограниченной некоторыми ограничивающими факторами, часть или все значения пикселей не определены. В основном имеются два технических решения для работы с такой проблемой. Одно решение состоит в том, чтобы не допустить такой ситуации, например, в соответствии потоков битов данных. Другое решение состоит в том, чтобы применить заполнение для неопределенных значений пикселей. Следующие подразделы описывают эти технические решения подробно.
2.2 Режим копирования IBC в расширениях HEVC Screen Content Coding
В расширениях с кодированием контента экрана в стандарте кодирования HEVC, когда какой-либо блок использует текущее изображение в качестве опоры, он должен гарантировать, что весь опорный блок находится в пределах доступной реконструированной области, как это обозначено в следующем специальном тексте:
Переменные offsetX и offsetY выводят следующим образом:
Одно из требований соответствия потоков битов данных состоит в том, что когда опорное изображение является текущим изображеннием, вектор mvLX движения яркостной составляющей должен подчиняться следующим ограниченниям:
- Когда процедура вывода для доступности блоков в порядке z-сканирования, как это специфицировано в статье 6.4.1, привлекается при ( xCurr, yCurr ), установленных равным ( xCb, yCb ), и соседнем положении яркостной составляющей ( xNbY, yNbY ), установленном равным ( xPb + (mvLX[ 0 ] >> 2) - offsetX, yPb + ( mvLX[ 1 ] >> 2 ) - offsetY ), в качестве входных данных, выходной сигнал должен иметь значение «Истинно» (TRUE).
- Когда процедура вывода для доступности блоков в порядке z-сканирования, как это специфицировано в статье 6.4.1, привлекается при ( xCurr, yCurr ), установленных равным ( xCb, yCb ), и соседнем положении яркостной составляющей ( xNbY, yNbY ), установленном равным ( xPb + (mvLX[ 0 ] >> 2) + nPbW - 1 + offsetX, yPb + (mvLX[ 1 ] >> 2) + nPbH - 1 + offsetY), в качестве входных данных, выходной сигнал должен иметь значение «Истинно» (TRUE).
- Одно или оба из следующим условий должно быть «истинным»:
- Значение ( mvLX[ 0 ] >> 2 ) + nPbW + xB1 + offsetX не больше 0.
- Значение ( mvLX[ 1 ] >> 2 ) + nPbH + yB1 + offsetY не больше 0.
- Следующее условие должно быть истинным:
Таким образом, случай, когда опорный блок накладывается на текущий блок или опорный блок находится вне изображения, не возникнет. Поэтому, нет необходимости «заполнять» опорный или прогнозируемый блок.
2.3 Копирование IBC в тестовой модели для кодирования VVC
В сегодняшней тестовой модели кодирования VVC, например, проект документа VTM-4.0, весь опорный блок должен быть в текущей единице дерева кодирования (current coding tree unit (CTU)) и не должен накладываться на текущий блок. Таким образом, нет необходимости «заполнять» опорный или прогнозируемый блок. Флаг копирования IBC кодируют в качестве обозначения режима прогнозирования для текущей единицы CU. Таким образом, имеются всего три режима прогнозирования, MODE_INTRA, MODE_INTER и MODE_IBC для каждой единицы CU.
2.3.1 Режим копирования с объединением (IBC Merge)
В режиме копирования IBC с объединением, индекс, указывающий на входную позицию в список кандидатов для этого режима копирования IBC с объединением, выделяют посредством синтаксического анализа из потока битов данных. Процедура построения списка для режима копирования IBC с объединением может быть суммирована в соответствии со следующей последовательностью этапов:
Этап 1: Формирование пространственных кандидатов
Этап 2: Вставка кандидатов для прогнозирования HMVP
Этап 3: Вставка попарно усредненных кандидатов
При формировании пространственных объединяемых кандидатов, выбирают максимум четырех объединяемых кандидатов из совокупности кандидатов, расположенных в позициях, показанных на чертежах. Кандидатов выбирают в следующем порядке A1, B1, B0, A0 и B2. Позицию B2 учитывают только тогда, когда какая-либо из единиц прогнозирования (Prediction Unit (PU)), которые должны быть в позициях A1, B1, B0, A0, недоступна (например, потому что эта единица принадлежит другому срезу или плитке) или не кодирована в режиме копирования IBC. После добавления кандидата в позиции A1 добавление остальных кандидатов должно происходить с контролем избыточности, что обеспечивает исключение кандидатов с одинаковой информацией о движении из списка, так что эффективность кодирования улучшается. Для уменьшения вычислительной сложности не все возможные пары кандидатов рассматривают в процессе упомянутого контроля избыточности. Напротив, учитывают только пары, связанные стрелкой, как показано на чертежах, и какого-либо кандидата добавляют в список только в том случае, если соответствующий кандидат, использованный для контроля избыточности, не имеет такую же самую информацию о движении.
После вставки пространственных кандидатов, если размер списка кандидатов для режима копирования IBC с объединением все еще остается меньше максимального размера списка кандидатов для режима копирования IBC с объединением, могут быть вставлены кандидаты для режима копирования IBC из таблицы прогнозирования HMVP. При вставке кандидатов из таблицы прогнозирования HMVP выполняется контроль избыточности.
Наконец, попарно усредненных кандидатов добавляют в список кандидатов для режима копирования IBC с объединением.
Когда опорный блок, идентифицированный объединяемым кандидатом, находится вне изображения, либо накладывается на текущий блок, либо находится вне реконструированной области, либо находится вне действительной области, ограниченной некоторыми ограничивающими факторами, этот объединяемый кандидат называется недействительным объединяемым кандидатом.
Отметим, что недействительные объединяемые кандидаты могут быть вставлены в список кандидатов для режима копирования IBC с объединением.
2.3.2 Режим прогнозирования AMVP с копированием IBC
В режиме прогнозирования AMVP с копированием IBC (далее - режим IBC AMVP) индекс прогнозирования AMVP, указывающий на входную позицию в списке режима IBC AMVP, получают посредством синтаксического анализа из потока битов данных. Построение списка режима IBC AMVP может быть суммировано в соответствии со следующей последовательностью этапов:
Этап 1: Формирование пространственных кандидатов
Проверка A0, A1 пока не будет найден доступный кандидат.
Проверка B0, B1, B2 пока не будет найден доступный кандидат.
Этап 2: Вставка кандидатов для прогнозирования HMVP
Этап 3: Вставка нулевых кандидатов
После вставки пространственных кандидатов, если размер списка для режима IBC AMVP все еще меньше максимального размера списка для этого режима IBC AMVP, могут быть вставлены кандидаты для режима копирования IBC из таблицы прогнозирования HMVP.
В конце концов, в этот список для режима IBC AMVP вставляют нулевых кандидатов.
2.4 Режим палитры
Базовая идея, лежащая в основе режима палитры, состоит в том, что отсчеты в единице CU представлены небольшим набором репрезентативных цветовых значений. Этот набор называется палитрой. Можно также обозначить отсчет, находящийся вне палитры, путем передачи в виде сигнализации символа выпадения, за которым следует (возможно квантованные) значения компонентов. Это иллюстрировано на фиг. 2.
2.5 Режим палитры в стандарте кодирования HEVC с расширениями кодирования контента экрана (HEVC-SCC)
В режиме палитры в стандарте HEVC-SCC, прогнозирование используется для кодирования палитры и индексной карты.
2.5.1 Кодирование входных позиций палитры
Для кодирования входных позиций палитры поддерживают предиктор палитры. Максимальный размер палитры, равно как и предиктор палитры, сообщают в виде сигнализации в наборе (Sequence Parameter Set (SPS)). В стандарте кодирования HEVC-SCC, в набор PPS вставляют флаг palette_predictor_initializer_present_flag. Когда этот флаг равен 1, входные позиции для инициализации предиктора палитры сообщают в виде сигнализации в потоке битов данных. Предиктор палитры инициализируют в начале каждой строки единиц CTU, каждого среза и каждой плитки. В зависимости от значения флага palette_predictor_initializer_present_flag, предиктор палитры устанавливают на 0 или инициализируют с использованием входных позиций инциализатора предиктора палитры, сообщаемых в виде сигнализации в наборе PPS. В стандарте кодирования HEVC-SCC, был активизирован инициализатор предиктора палитры размером 0, чтобы допустить отмену в явной форме инициализации предиктора палитры на уровне набора PPS.
Для каждой входной позиции в предикторе палитры, сообщают в виде сигнализации флаг повторного использования для индикации, является ли это частью текущей палитры. Это иллюстрирует фиг. 3. Флаги повторного использования передают с применением кодирования длин серий нулей. После этого, число новых входных позиций передают в виде сигнализации с использованием экспоненциального кода Голомба порядка 0. Наконец, передают в виде сигнализации значения компонентов для новых входных позиций палитры.
2.5.2 Кодирование индексов палитры
Индексы палитры кодируют с использованием горизонтальных и вертикальных поперечных сканирующих проходов, как показано на фиг. 4. Порядок сканирования передают в виде сигнализации в потоке битов данных с использованием флага palette_transpose_flag. В остальной части этого подраздела предполагается, что сканирование является горизонтальным.
Индексы палитры кодируют с использованием двух главных режимов для отсчетов палитры: «индексный режим» ('INDEX') и «режим копирования верхнего» 'COPY_ABOVE'. Как объясняется ранее, символ выпадения также передают в виде сигнализации как режим 'INDEX' и назначают ему индекс, равный максимальному размеру палитры. Указание режима передают в виде сигнализации с использованием флага за исключением верхней строки или случая, когда предшествующий режим был режимом 'COPY_ABOVE'. В режиме 'COPY_ABOVE' копируют индекс палитры из строки сверху. В режиме 'INDEX' индекс палитры передают в форме сигнализации в явном виде. Для обоих режимов 'INDEX' и 'COPY_ABOVE' сообщают в форме сигнализации длину серии, которая специфицирует число последовательных отсчетов, также кодируемых в том же самом режиме. Когда символ выпадения является частью серии в режиме 'INDEX' или 'COPY_ABOVE', для каждого символа выпадения передают в виде сигнализации значения компонентов этого символа. Кодирование индексов палитры иллюстрировано на фиг. 5.
Синтаксический порядок этого установлен следующим образом. Сначала сообщают число значений индексов для единицы CU. За этим следует сигнализация фактических значений индексов для всей единицы CU с использованием усеченного двоичного кодирования. И число индексов, и значения индексов кодируют в режиме обхода. Это группирует относящиеся к индексам обходные секции вместе. Затем о режиме отсчетов палитры (если необходимо) и о значении серии сообщают в виде сигнализации перемежающимся образом. Затем значения компонентов выпадения, соответствующие выпадающим отсчетам, для всей единицы CU группируют вместе и кодируют в режиме обхода.
Дополнительный синтаксический элемент, флаг last_run_type_flag, передают в виде сигнализации после сигнализации значений индексов. Этот синтаксический элемент, в сочетании с числом индексов, исключает необходимость передавать в виде сигнализации значение серии, соответствующее последней серии в блоке.
В стандарте кодирования HEVC-SCC, режим палитры также активизирован для цветовых форматов 4:2:2, 4:2:0 и для черно-белого формата. Сигнализация входных позиций палитры и индексов палитры является почти идентичной для всех цветовых форматов. В случае не черно-белых (не одноцветных) форматов каждая входная позиция палитры состоит из 3 компонентов. Для черно-белого формата каждая входная позиция палитры состоит из одного компонента. Для направлений субдискретизированной цветностной составляющей отсчеты цветностной составляющей ассоциированы с индексами отсчетов яркостной составляющей, которые делятся на 2. После реконструкции индексов палитры для единицы CU, если с каким-либо отсчетом ассоциирована только одна составляющая, используется только первый компонент входной позиции палитры. Единственное различие в сигнализации предусмотрено только для значений выпадающих компонентов. Для каждого выпадающего отсчета число передаваемых в виде сигнализации значений выпадающих компонентов может быть различным в зависимости от числа компонентов, ассоциированных с этим отсчетом.
В стандарте кодирования VVC, две структуры дерева кодирования используются при кодировании срезов с внутрикадровым прогнозированием, так что яркостная составляющая и две цветностные составляющие могут иметь различные палитры и индексы палитры. Кроме того, указанные две цветностные составляющие совместно используют одну и ту же палитру и одинаковые индексы палитры.
2.6 Схема деблокирования в стандарте кодирования VVC
Отметим, что в последующих описаниях, символ pNM обозначает N-ый отсчет в M-ой строке на левой стороне относительно вертикального края или N-ый отсчет в M-ом столбце на верхней стороне относительно горизонтального края, символ qNM обозначает N-ый отсчет M-ой строке на правой стороне относительно вертикального края или N-ый отсчет в M-ом столбце на нижней стороне относительно горизонтального края. Пример символов pNM и qNM показан на фиг. 9.
Отметим, что в последующих описаниях, символ pN обозначает N-ый отсчет в строке на левой стороне относительно вертикального края или N-ый отсчет в столбце на верхней стороне относительно горизонтального края, символ qN обозначает N-ый отсчет в строке на правой стороне относительно вертикального края или N-ый отсчет в столбце на нижней стороне относительно горизонтального края.
Решение о включении/выключении фильтра принимают для четырех строк как одной единицы. Фиг. 9 иллюстрирует пиксели, вовлеченные в принятие решений о включении/выключении фильтра. 6 пикселей в двух красных рамках для первых четырех строк используются для определения включения/выключения фильтра для 4 строк. 6 пикселей в двух красных рамках для вторых четырех строк используются для определения включения/выключения фильтра для этих вторых четырех строк.
В некоторых вариантах, вертикальные края в изображении фильтруют первыми. Затем фильтруют горизонтальные края изображения, используя в качестве входных данных отсчеты, модифицированные в результате фильтрации вертикальных краев. Вертикальные и горизонтальные края в блоках CTB каждой единицы CTU обрабатывают по отдельности на основе единиц кодирования. Вертикальные края блоков кодирования в единице кодирования фильтруют, начиная с края на левой стороне блоков кодирования и продвигаясь через края в направлении правой стороны блоков кодирования в их геометрическом порядке. Горизонтальные края блоков кодирования в единице кодирования фильтруют, начиная с верхнего края блоков кодирования и продвигаясь через края в направлении к нижней стороне блоков кодирования в их геометрическом порядке.
2.6.1 Решение о границах
К границам блоков размером 8x8 применяют фильтрацию. В дополнение к этому, это должна быть граница блока преобразования или граница субблока кодирования (например, из-за использования аффинного прогнозирования движения, ATMVP). Для объектов, не являющихся такими границами, фильтрацию не активизируют.
2.6.2 Вычисление жесткости границы
Для границы блока преобразования/границы субблока кодирования, если она располагается в сетке 8x8, она может быть фильтрована и установление параметра жесткости границы bS[ xDi ][ yDj ] (где [ xDi ][ yDj ] обозначает координаты) для этого края определено следующим образом:
- Если отсчеты p0 или q0 находятся в блоке кодирования в единице кодирования, которую кодируют в режиме внутрикадрового прогнозирования, параметр bS[ xDi ][ yDj ] устанавливают равным 2.
- В противном случае, если край блока также является краем блока преобразования, и отсчет p0 или q0 находится в блоке преобразования, имеющем один или несколько уровней ненулевых коэффициентов трансформации, параметр bS[ xDi ][ yDj ] устанавливают равным 1.
- В противном случае, если режим прогнозирования для субблока кодирования, содержащего отсчет p0, отличается от режима прогнозирования для субблока кодирования, содержащего отсчет q0, параметр bS[ xDi ][ yDj ] устанавливают равным 1.
- В противном случае, если одно или несколько из следующих условий является истинным, параметр bS[ xDi ][ yDj ] устанавливают равным 1:
- Оба субблока - субблок кодирования, содержащий отсчет p0, и субблок кодирования, содержащий отсчет q0, кодируют в режиме прогнозирования с копированием IBC, и абсолютная разница между горизонтальными или вертикальными компонентами векторов движения, используемыми при прогнозировании указанных двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.
- Для прогнозирования субблока кодирования, содержащего отсчет p0, используются опорные изображения или число векторов движения, отличающиеся от тех изображений и числа векторов, используемых при прогнозировании субблока кодирования, содержащего отсчет q0.
Примечание 1 - Определение, являются ли опорные изображения, используемые для указанных двух субблоков кодирования, одинаковыми или разными, основано только на том, на какие изображения даются ссылки в качестве опорных, независимо от того, выполнено ли прогнозирование с использованием индекса, указывающего в список 0 опорных изображенний, или с использованием индекса, указывающего в список 1 опорных изображений, а также независимо от того, отличается ли индексированная позиция в списке опорных изображений.
Примечание 2 - Число векторов движения, используемых для прогнозирования субблока кодирования, в котором верхний-левый отсчет покрывает точку ( xSb, ySb ), равно PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ].
- Один вектор движения используется для прогнозирования субблока кодирования, содержащего отсчет p0, и один вектор движения используется для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разница между горизонтальными или вертикальными компонентами используемых векторов движения не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.
- Два вектора движения и два разных опорных изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для тех же двух опорных изображений используются для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разница между горизонтальными или вертикальными компонентами этих двух векторов движения, используемых для прогнозирования указанных двух субблоков кодирования для одного и того же опорного изображения не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.
- Два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет q0, и оба следующих условия являются истинными:
- Абсолютная разница между горизонтальными или вертикальными компонентами векторов движения из списка 0, используемых при прогнозировании двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей, или абсолютная разница между горизонтальными или вертикальными компонентами векторов движения из списка 1, используемых при прогнозировании двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.
- Абсолютная разница между горизонтальными или вертикальными компонентами вектора движения из списка 0, используемого при прогнозировании субблока кодирования, содержащего отсчет p0, и вектора движения из списка 1, используемого при прогнозировании субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей, или абсолютная разница между горизонтальными или вертикальными компонентами вектора движения из списка 1, используемого при прогнозировании субблока кодирования, содержащего отсчет p0, и вектора движения из списка 0, используемого при прогнозировании субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.
- В противном случае, переменную bS[ xDi ][ yDj ] устанавливают равной 0.
Таблицы 2-1 и 2-2 суммируют правила вычисления жесткости границы (BS).
2.6.3 Решение о деблокировании для яркостной составляющей
В этом подразделе описана процедура решения о деблокировании.
Более широкие - более сильные фильтры для яркостной составляющей используются только в том случае, когда все три условия - Условие1, Условие2 и Условие3 являются ИСТИННЫМИ (TRUE).
Условие 1 представляет собой «условие большого блока». Это условие определяет, принадлежат ли отсчеты на P-стороне и на Q-стороне большим блокам, что представлено переменными bSidePisLargeBlk и bSideQisLargeBlk соответственно. Эти переменные bSidePisLargeBlk и bSideQisLargeBlk определены следующим образом.
bSidePisLargeBlk = ((тип края является вертикальным и отсчет p0 принадлежит единице CU с шириной >= 32) | | (тип края является горизонтальным и отсчет p0 принадлежит единице CU с высотой >= 32))? TRUE: FALSE
bSideQisLargeBlk = ((тип края является вертикальным и отсчет q0 принадлежит единице CU с шириной >= 32) | | (тип края является горизонтальным и отсчет q0 принадлежит единице CU с высотой >= 32))? TRUE: FALSE
На основе переменных bSidePisLargeBlk и bSideQisLargeBlk, условие 1 определено следующим образом.
Условие1 = (bSidePisLargeBlk || bSidePisLargeBlk) ? TRUE: FALSE
Далее, если Условие 1 является истинным, должно быть далее проверено условие 2. Сначала определяют следующие переменные:
- dp0, dp3, dq0, dq3 сначала определяют, как в стандарте кодирования HEVC
если (сторона p не меньше 32)
dp0 = ( dp0 + Abs( p50 - 2 * p40 + p30 ) + 1 ) >> 1
dp3 = ( dp3 + Abs( p53 - 2 * p43 + p33 ) + 1 ) >> 1
- если (сторона q не меньше 32)
dq0 = ( dq0 + Abs( q50 - 2 * q40 + q30 ) + 1 ) >> 1
dq3 = ( dq3 + Abs( q53 - 2 * q43 + q33 ) + 1 ) >> 1
Условие2 = (d < β) ? TRUE: FALSE
где d= dp0 + dq0 + dp3 + dq3, как показано в разделе 2.2.4.
Если Условие1 и Условия2 удовлетворяются, далее проверяют, использует ли какой-либо из блоков субблоки:
Если (bSidePisLargeBlk)
Если (режим блока P = SUBBLOCKMODE)
Sp =5
Иначе
Sp =7
Иначе
Sp = 3
Если (bSideQisLargeBlk)
Если (режим блока Q = SUBBLOCKMODE)
Sq =5
Иначе
Sq =7
Иначе
Sq = 3
Наконец, если Условие 1 и Условие 2 оба действительны, предлагаемый способ деблокирования будет проверять условие 3 (условие сильного фильтра для большого блока), которое определено следующим образом.
Для Условия 3 (Условия сильного фильтра) - StrongFilterCondition, определяют следующие переменные:
dpq определено как в стандарте кодирования HEVC.
sp3 = Abs( p3 - p0 ), определено как в стандарте кодирования HEVC
если (сторона p не меньше 32)
если(Sp=5)
sp3 = ( sp3 + Abs( p5 - p3 ) + 1) >> 1
Иначе
sp3 = ( sp3 + Abs( p7 - p3 ) + 1) >> 1
sq3 = Abs( q0 - q3 ), определено как в стандарте кодирования HEVC
если (сторона q не меньше 32)
Если(Sq=5)
sq3 = ( sq3 + Abs( q5 - q3 ) + 1) >> 1
Иначе
sq3 = ( sq3 + Abs( q7 - q3 ) + 1) >> 1
Как в стандарте кодирования HEVC, StrongFilterCondition = (dpq меньше чем ( β >> 2 ), sp3 + sq3 меньше чем ( 3*β >> 5 ), и Abs( p0 - q0 ) меньше чем ( 5 * tC + 1 ) >> 1) ? TRUE : FALSE.
2.6.4 Более сильный деблокирующий фильтр для яркостной составляющей (рассчитан на работу с блоками большего размера)
Когда отсчеты с какой-либо стороны от границы принадлежат большому блоку, применяется билинейный фильтр. Факт принадлежности отсчета большому блоку устанавливают, когда ширина >= 32 для вертикального края, и когда высота >= 32 для горизонтального края.
Ниже описан билинейный фильтр.
Расположенные на границе блоков отсчеты pi для i=0 по Sp-1 и qi для j=0 по Sq-1 (pi и qi представляют собой i-ый отсчет в строке для фильтрации вертикального края, или i-ый отсчет в столбце для фильтрации горизонтального края) в описанном выше деблокирующем фильтре согласно стандарту кодирования HEVC затем заменяют посредством линейной интерполяции следующим образом:
-
-
где слагаемые и определяют зависимое от положения усечение, описываемое в Разделе 2.3.6 и параметры , , , и приведены в таблице 2-3:
7, 7
(сторона p: 7,
сторона
q: 7)
(сторона p: 7
сторона q: 3)
(сторона p: 3
сторона q: 7)
(сторона p: 7
сторона q: 5)
(сторона p: 5
сторона q: 7)
(сторона p: 5
сторона q: 5)
(сторона p: 5
сторона q: 3)
(сторона p: 3
сторона q: 5)
2.6.5 Управление деблокированием для цветностной составляющей
Сильные фильтры для цветностной составляющей используют по обе стороны от границы между блоками. Здесь фильтр для цветностной составляющей выбирают, когда обе стороны края цветностной составляющей не меньше 8 (позиция цветностной составляющей), и удовлетворяется следующее решение с тремя условиями: первое условие относится к жесткости границы, равно как к большому блоку. Предлагаемый фильтр может быть применен, когда ширина или высота блока, ортогонально пересекающая край блока, не меньше 8 в области отсчетов цветностной составляющей. Второе и третье условия являются в основном такими же, как и решения о применении деблокирования для яркостной составляющей в стандарте кодирования HEVC, а именно решение о включении/выключении и решение о сильном фильтре, соответственно.
Согласно первому решению, жесткость границы (boundary strength (bS)) модифицируют для фильтрации цветностной составляющей, как показано в таблице 2-2. Условия по таблице 2-2 проверяют последовательно. Если какое-либо из условий удовлетворяется, то остальные условия с более низким приоритетом пропускают.
Деблокирующая фильтрация цветностной составляющей осуществляется, когда жесткость bS равна 2, или когда жесткость bS равна 1 и при этом обнаружена большая граница блока.
Второе и третье условия являются в основном такими же, как решение для сильного фильтра яркостной составляющей в стандарте кодирования HEVC, а именно.
Для второго условия: параметр d определяют, как для деблокирующего фильтра яркостной составляющей в стандарте кодирования HEVC.
Второе условие будет истинным (TRUE), когда параметр d меньше β.
Третье условие StrongFilterCondition определяют следующим образом:
dpq определяют как в стандарте кодирования HEVC
sp3=Abs(p3-p0), определяют как в стандарте кодирования HEVC
sq3=Abs(q0-q3), определяют как в стандарте кодирования HEVC
Как в стандарте кодирования HEVC, StrongFilterCondition = (dpq меньше чем ( β >> 2 ), sp3 + sq3 меньше чем ( β >> 3 ), и Abs( p0 - q0 ) меньше чем ( 5 * tC + 1 ) >> 1)
2.6.6 Сильный деблокирующий фильтр для цветностной составляющей
Для цветностной составляющей определен следующий сильный деблокирующий фильтр:
p2'=(3*p3+2*p2+p1+p0+q0+4) >> 3
p1'=(2*p3+p2+2*p1+p0+q0+q1+4) >> 3
p0'=(p3+p2+p1+2*p0+q0+q1+q2+4) >> 3
Предлагаемый фильтр для цветностной составляющей осуществляет деблокирование на сетке отсчетов 4×4 цветностной составляющей.
2.6.7 Зависимое от позиции усечение
Зависимый от позиции параметр tcPD усечения применяют к выходным отсчетам после процедуры фильтрации яркостной составляющей, вовлекающей сильные и длинные фильтры, модифицирующие 7, 5 и 3 отсчетов на границе. В предположении распределения погрешности квантования предлагается увеличить уровень усечения для отсчетов, для которых ожидается более высокий уровень шумов квантования и потому для них ожидается большее отклонение реконструированного значения отсчета от истинного значения отсчета.
Для каждой из границ P или Q, фильтрованной с применением асимметричного фильтра, в зависимости от результатов процедуры принятия решения в разделе 2.3.3, выбирают таблицу зависимых от позиции пороговых значений из двух таблиц (т.е. таблиц Tc7 и Tc3 приведенных ниже), переданных декодирующему устройству в качестве дополнительной информации:
Tc7 = { 6, 5, 4, 3, 2, 1, 1}; Tc3 = { 6, 4, 2 };
tcPD = (Sp = 3) ? Tc3 : Tc7;
tcQD = (Sq = 3) ? Tc3 : Tc7;
Для границы P или Q, фильтрованной с применением короткого асимметричного фильтра, применяют зависимое от позиции пороговое значение с меньшей амплитудой:
Tc3 = { 3, 2, 1 };
После определения порогового значения выполняют усечение фильтрованных значений отсчетов p' и q'i, в соответствии с параметрами усечения tcP и tcQ:
p''i = Clip3(p'i + tcPi, p'i - tcPi, p'i);
q''j = Clip3(q'j + tcQj, q'j - tcQ j, q'j);
где p'i и q'i представляют собой фильтрованные значения отсчетов, p''i и q''j представляют собой выходные значения отсчетов после усечения и tcPi tcPi представляют собой пороговые значения усечения, получаемые из используемых в стандарте кодирования VVC значений параметра tc и параметров tcPD и tcQD. Функция Clip3 представляет собой функцию усечения, как это специфицировано в стандарте кодирования VVC.
2.6.8 Регулирование деблокирования субблоков
Для того чтобы позволить осуществлять параллельное дружественное деблокирование с использованием и длинных фильтров, и деблокирования субблоков, функции длинных фильтров ограничивают для модификации самое большее 5 отсчетов на стороне, использующей деблокирование субблоков (режим AFFINE или прогнозирование ATMVP или уточнение DMVR), как показано в разделе управления яркостной составляющей для длинных фильтров. В качестве дополнения, процедуру деблокирования субблоков регулируют таким образом, что границы субблоков на сетке размером 8x8, близкие к единице CU или к границе неявной единицы TU, ограничивают для модификации самое большее двумя отсчетами на каждой стороне.
Следующее применяется к границам субблоков, не совмещенным с границей единицы CU.
Если (режим блока Q = SUBBLOCKMODE && edge !=0) {
если (!(implicitTU && (edge = (64 / 4))))
если (край = 2 || edge = (orthogonalLength - 2) || край = (56 / 4) || край = (72 / 4))
Sp = Sq = 2;
Иначе
Sp = Sq = 3;
Иначе
Sp = Sq = bSideQisLargeBlk ? 5:3
}
Где параметр «край», равный 0, соответствует границе единицы CU, параметр «край», равным 2, или равный orthogonalLength-2 соответствует границе субблока, отстоящей на 8 отсчетов от границы единицы CU и т.п. Где неявная единица TU является истинной, если используется неявное разбиение единицы TU.
2.6.9 Ограничение буферов строк 4CTU/2CTU для яркостной/цветностной составляющей
Фильтрация горизонтальных краев является ограничивающей до Sp = 3 для яркостной составляющей, Sp=1 и Sq=1 для цветностной составляющей, когда горизонтальный край совмещен с границей единицы CTU.
2.7 Кодирование в режиме внутрикадрового прогнозирования в стандарте кодирования VVC
Для захвата произвольных направлений края, представленных в естественном видео, число направленных режимов с внутрикадровым прогнозированием в документе VTM5 увеличивают с 33, как это используется при кодировании HEVC, до 65. Новые направленные режимы, которых нет в стандарте кодировании HEVC, обозначены красными пунктирными стрелками на фиг. 12, а планарный режим и DC-режим остаются теми же самыми. Такое более плотное распределение направленных режимов внутрикадрового прогнозирования применимо для всех размеров блоков и для режимов внутрикадрового прогнозирования обеих - яркостной и цветностной составляющих.
В документе VTM5, несколько обычных угловых режимов внутрикадрового прогнозирования адаптивно заменены широкоугольными режимами внутрикадрового прогнозирования для неквадратных блоков. Широкоугольное внутрикадровое прогнозирование описано в Разделе 3.3.1.2.
В стандарте кодирования HEVC, каждый блок, кодируемый в режиме внутрикадрового прогнозирования, имеет квадратную форму, а длина каждой его стороны равна степени 2. Таким образом, для генерации предиктора внутрикадрового прогнозирования с использованием DC-режима никакие операции разбиения не требуется. В документе VTM5, блоки могут иметь прямоугольную форму, что в общем случае делает необходимым использование операции разбиения для каждого блока. Чтобы избежать операций разбиения для DC-прогнозирования, только длинную сторону используют для вычисления среднего для неквадратных блоков.
Для поддержания низкой сложности генерации списка наиболее вероятных режимов (most probable mode (MPM)), вариант режима внутрикадрового прогнозирования с 6 режимами MPM используется путем учета двух соседних доступных режимов внутрикадрового прогнозирования. При построении списка режимов MPM учитываются следующие три аспекта:
1. Режим внутрикадрового прогнозирования по умолчанию
2. Соседние режимы внутрикадрового прогнозирования
3. Выводимые режимы внутрикадрового прогнозирования
Унифицированный список 6-MPM используется для блоков с внутрикадровым прогнозированием независимо от того, применяется ли инструменты кодирования MRL (с несколькими опорными строками) и ISP, или нет. Список режимов MPM конструируют на основе режимов внутрикадрового прогнозирования для левого или верхнего соседних блоков. В предположении, что режим для блока слева обозначен Left и режим для блока сверху обозначен Above, унифицированный список режимов MPM конструируют следующим образом (Блоки слева и сверху показаны на фиг. 13).
- Когда соседний блок недоступен, для него по умолчанию устанавливают планарный режим внутрикадрового прогнозирования.
- Если оба режима - Left и Above, являются неугловыми режимами:
* Список режимов MPM → {Planar, DC, V, H, V-4, V+4}
- Если один из режимов Left и Above является угловым режимом, а другой является неугловым режимом:
* Установление режима «Максимальный» (Max) в качестве более «высокого» режима из режимов Left и Above
* Список режимов MPM → {Planar, Max, DC, Max -1, Max +1, Max -2}
- Если оба режима - Left и Above, являются угловыми режимами и при этом разными:
* Установление режима Max в качестве более «высокого» режима из режимов Left и Above
* если разница между режимами Left и Above находится в диапазоне от 2 до 62 включительно
Список режимов MPM → {Planar, Left, Above, DC, Max -1, Max +1}
* В противном случае
Список режимов MPM → {Planar, Left, Above, DC, Max -2, Max +2}
Если оба режима - Left и Above, являются угловыми режимами и при этом одинаковыми:
* Список режимов MPM → {Planar, Left, Left -1, Left +1, DC, Left -2}
Кроме того, первую секцию (разряд) индексного кодового слова списка mpm кодируют с применением контекстно-зависимого двоичного арифметического кодирования (CABAC). Используются всего три контекста, соответствующие тому, является ли текущий блок с внутрикадровым прогнозированием блоком с активизированным режимом MRL, блоком с активизированным режимом ISP или нормальным блоком с внутрикадровым прогнозированием.
В процессе генерации списка из 6 режимов MPM применяется отсечение для исключения дублированных режимов, так что только уникальные режимы могут быть включены в список режимов MPM. Для энтропийного кодирования 61 режимов, не входящих в список режимов MPM, используют усеченный двоичный код (Truncated Binary Code (TBC)).
Для кодирования цветностной составляющей в режиме внутрикадрового прогнозирования допустимы всего 8 режимов внутрикадрового прогнозирования. Совокупность этих режимов содержит пять традиционных режимов внутрикадрового прогнозирования и три режима кросс-компонентной линейной модели (cross-component linear model modes (CCLM)) (CCLM, LM_A и LM_L). Процедуры сигнализации и формирования режимов кодирования цветностной составляющей, приведены в Табл. 2-4. Режимы кодирования цветностной составляющей прямо зависят от режима внутрикадрового прогнозирования для соответствующего блока яркостной составляющей. Поскольку в I-срезах активизированы раздельные структуры для яркостной и цветностной составляющих, один блок цветностной составляющей может соответствовать нескольким блокам яркостной составляющей. Поэтому для DM-режима для цветностной составляющей непосредственно «наследуется» режим внутрикадрового прогнозирования для соответствующего блока яркостной составляющей, покрывающего центр текущего блока цветностной составляющей.
2.8 Дифференциальная импульсно-кодовая модуляция квантованного блока остатка (Quantized residual Block Differential Pulse-code Modulation(QR-BDPCM))
В некоторых вариантах, предложен способ дифференциальной импульсно-кодовой модуляции квантованного блока остатка (QR-BDPCM) для эффективного кодирования контента экрана.
Направления прогнозирования, используемые при модуляции QR-BDPCM, могут соответствовать вертикальным и горизонтальным режимам прогнозирования. Внутрикадровое прогнозирование осуществляется для всего блока путем копирования отсчетов в направлении прогнозирования (горизонтальное или вертикальное прогнозирование). Остаток квантуют и разницу между квантованным остатком и квантованным значением его предиктора (горизонтального или вертикального) кодируют. Это может быть описано следующим образом: Для блока размером M (строк) × N (столбцов), пусть представляет собой остаток прогнозирования после осуществления внутрикадрового прогнозирования в горизонтальном направлении (копирование значения соседнего слева пикселя по прогнозируемому блоку строка за строкой) или в вертикальном направлении (копирование соседней сверху строки на каждую строку в прогнозируемом блоке) с использованием нефильтрованных отсчетов сверху или слева от отсчетов на границе блока. Пусть обозначает квантованную версию остатка , где остаток представляет собой разность между значениями из исходного блока и прогнозируемого блока. Затем модуляцию DPCM блока применяют к квантованным отсчетам остатка, результатом чего является модифицированная матрица размером M × N с элементами . Когда в виде сигнализации сообщают о модуляции BDPCM в вертикальном направлении:
Для горизонтального прогнозирования применяются аналогичные правила, и квантованные отсчеты остатка получают по формуле
Квантованные отсчеты остатка передают декодирующему устройству.
На стороне декодирующего устройства приведенные выше вычисления инвертируют для получения . Для случая вертикального прогнозирования,
Для горизонтального случая,
Обратно квантованные остатки, , добавляют к прогнозируемым значениям в блоке при внутрикадровом прогнозировании для получения реконструированных значений отсчетов.
Главным преимуществом этой схемы является то, что обратная модуляция DPCM может быть выполнена в реальном времени («на лету») в процессе синтаксического анализа коэффициентов просто путем добавления предиктора в ходе синтаксического анализа этих коэффициентов или после такого синтаксического анализа.
2.9 Адаптивный контурный фильтр
В документе VTM5, применяется адаптивный контурный фильтр (Adaptive Loop Filter (ALF)) с адаптацией этого фильтра на блочной основе. Для яркостной составляющей выбирают один из 25 фильтров для каждого блока размером 4×4, на основе направления и активности локальных градиентов.
2.9.1 Форма фильтра
В документе VTM5, используют два фильтра в форме ромба (как показано на фиг. 14). Форма ромба размером 7×7 применяется для яркостной составляющей, и форма ромба размером 5×5 применяется для цветностных составляющих.
2.9.2 Классификация блоков
Для яркостной составляющей каждый из блоков 4×4 классифицируют и относят к одному из 25 классов. Индекс C классификации выводят, на основе направленности D и квантованного значения активности , следующим образом:
Для вычисления параметров D и , сначала вычисляют градиенты для горизонтального, вертикального и двух диагональных направлений с использованием одномерного (1-D) оператора Лапласа:
Где индексы i и j обозначают координаты верхнего левого отсчета в блоке 4×4 и обозначает реконструированный с координатами .
Для уменьшения сложности классификации блока применяют вычисление субдискретизированного одномерного оператора Лапласа. Как показано на фиг. 15 A-D, одни и те же субдискретизированные позиции используются для вычисления градиентов во всех направлениях.
Затем максимальные и минимальные значения градиентов в горизонтальном и вертикальном направлениях устанавливают в виде:
Максимальные и минимальные значения градиента в двух диагональных направлениях устанавливают в виде:
Для вывода значения направленности D эти значения сравнивают друг с другом и с двумя пороговыми значениями t1 и t2:
Этап 1. Если оба соотношения и являются истинными, направленность устанавливают равной .
Этап 2. Если , далее продолжают от Этапа 3; в противном случае продолжают от Этапа 4.
Этап 3. Если , D устанавливают равной 2; в противном случае D устанавливают равной 1.
Этап 4. Если , D устанавливают равной 4; в противном случае D устанавливают равной 3.
Значение активности A вычисляют как:
Значение A далее квантуют в диапазон 0-4, включительно, и квантованное значение обозначают как .
Для цветностных составляющих в изображении никакие способы классификации не применяются, т.е. единственный набор коэффициентов фильтрации ALF применяется для каждой цветностной составляющей.
2.9.3. Геометрическая трансформация коэффициентов фильтрации и уровней усечения
Прежде фильтрации каждого блока размером 4×4 яркостной составляющей, к коэффициентам фильтрации и к уровням усечения фильтра применяют геометрические трансформации, такие как поворот, либо переворачивание вокруг диагональной или вертикальной оси, в зависимости от значения градиента, вычисленного для рассматриваемого блока. Это эквивалентно применению такой трансформации к области поддержки фильтра. Идея состоит в том, чтобы сделать разные блоки, к которым применяется фильтрация ALF, более похожими один на другой путем совмещения их направленностей.
Введены три вида геометрических трансформаций, включая переворачивание вокруг диагонали, переворачивание вокруг вертикали и поворот:
Переворачивание вокруг диагонали:
Переворачивание вокруг вертикали:
Поворот:
где K обозначает размер фильтра и обозначают координаты коэффициентов фильтрации, так что пункт (0,0) находится в верхнем левом углу и пункт находится в нижнем правом углу. Указанные трансформации применяют к коэффициентам f (k, l) фильтрации и к уровням усечения в зависимости от значений градиентов, вычисленных для рассматриваемого блока. Соотношения между трансформацией и четырьмя градиентами для четырех направлений суммированы в следующей таблице.
2.9.4 Сигнализация параметров фильтра
В документе VTM5, параметры фильтра ALF сообщают в виде сигнализации в наборе параметров адаптации (Adaptation Parameter Set (APS)). В одном наборе APS, можно передать в виде сигнализации до 25 групп коэффициентов фильтрации яркостной составляющей и индексов значений усечения и до одной группы коэффициентов фильтрации цветностной составляющей и индексов значений усечения. Для уменьшения битовых издержек коэффициенты фильтрации для разных классификационных категорий могут быть объединены. В заголовке среза, передают в виде сигнализации индексы наборов APS, используемых для текущего среза.
Индексы значений усечения, декодированные из набора APS, позволяют определить значения усечения с использованием таблицы таких значений усечения для яркостной составляющей и таблицы значений усечения для цветностной составляющей. Эти значения усечения зависят от внутренней битовой глубины. Более точно эти таблицу значений усечения для яркостной составляющей и таблицу значений усечения для цветностной составляющей получают с использованием следующих формул M:
где B равно внутренней битовой глубине и N равно 4, что обозначает число допустимых значений усечения согласно документу VTM5.0.
Процедурой фильтрации можно управлять на уровне блоков CTB. Всегда в виде сигнализации передают флаг для индикации, применима ли фильтрация ALF к блоку CTB яркостной составляющей. Блок CTB яркостной составляющей может выбрать группу коэффициентов фильтрации из совокупности 16 фиксированных групп коэффициентов фильтрации и групп коэффициентов фильтрации из наборов APS. Индекс группы коэффициентов фильтрации сообщают в виде сигнализации для блока CTB яркостной составляющей для индикации, какая именно группа коэффициентов применяется. 16 фиксированных групп коэффициентов фильтрации задают предварительно и жестко кодируют и в кодирующем устройстве, и в декодирующем устройстве.
Эти коэффициенты фильтрации квантуют с нормой, равной 128. С целью ограничения сложности умножения, соответствие потоков битов данных применяют таким образом, что значение коэффициента, находящееся не в центральной позиции, должно быть в диапазоне от -27 по 27 - 1, включительно. Коэффициент, находящийся в центральной позиции не сообщают в потоке битов данных и считают равным 128.
2.9.5 Процедура фильтрации
На стороне декодирующего устройства, когда фильтр ALF активизирован для блока CTB, фильтруют каждый отсчет в единице CU, результатом чего является значение отсчета, как показано ниже,
где обозначает декодированные коэффициенты фильтрации, обозначает функцию усечения и обозначает декодированные параметры усечения. Переменные k и l варьируются между и , где L обозначает длину фильтра. Функция усечения имеет вид , что соответствует функции
2.9.6 Процедура фильтрации виртуальной границы для уменьшения буфера строки
В документе VTM5, для уменьшения требований к буферу строки для фильтра ALF, используют модифицированную классификацию блоков и фильтрацию применительно к отсчетам возле горизонтальных границ единиц CTU. Для этой цели виртуальную границу определяют как строку путем сдвига горизонтальной границы единицы CTU с “N” отсчетами, как показано на фиг. 16, где N равно 4 для яркостной составляющей и равно 2 для цветностной составляющей.
Модифицированная классификация блоков применяется к яркостной составляющей, как показано на фиг. 2-11. Для вычисления одномерного (1D) градиента оператора Лапласа для блока размером 4×4 выше виртуальной границы используются только отсчеты, расположенные выше виртуальной границы. Аналогично, для вычисления одномерного (1D) градиента оператора Лапласа для блока размером 4×4 ниже виртуальной границы используются только отсчеты, расположенные ниже виртуальной границы. Квантование значения активности A соответственно масштабируют с учетом уменьшенного числа отсчетов, используемых для вычисления одномерного (1D) градиента оператора Лапласа.
Для процедуры фильтрации, используют операцию симметричного заполнения на виртуальных границах и для яркостной, и для цветностной составляющей. Как показано на фиг. 17, когда фильтруемый отсчет расположен ниже виртуальной границы, заполняют соседние отсчеты, расположенные выше этой виртуальной границы. В то же время, соответствующие отсчеты на других сторонах также заполняют симметрично.
2.10 Процедура нелинейной фильтрации с адаптивным смещением (SAO)
Процедура нелинейной фильтрации с адаптивным смещением (sample adaptive offset (SAO)) применяется к реконструированным отсчетам после деблокирующего фильтра с использованием смещения, специфицируемого для каждого блока CTB посредством кодирующего устройства. Кодирующее устройство модели HM сначала принимает решение, следует ли применить процедуру фильтрации SAO к текущему срезу. Если фильтрацию SAO применяют к рассматриваемому срезу, каждый блок CTB классифицируют как принадлежащий одному из пяти типов SAO, как показано в таблице 2-6. Концепция фильтрации SAO состоит в классификации пикселей по категориям и уменьшает искажения путем добавления смещения к пикселям каждой категории. Операция SAO содержит смещение края (Edge Offset (EO)), которое использует смещение края для классификации пикселей по типам 1-4 SAO и смещение полосы (Band Offset (BO)), которое использует интенсивность пикселей для классификации пикселей и отнесения к типу 5 SAO. Каждый применимый блок CTB имеет параметры смещения SAO, совокупность которых содержит флаг sao_merge_left_flag, флаг sao_merge_up_flag, тип смещения SAO и четыре значения смещения. Если флаг sao_merge_left_flag равен 1, текущий блок CTB будет повторно использовать тип смещения SAO и смещения, присущие блоку CTB слева. Если флаг sao_merge_up_flag равен 1, текущий блок CTB будет повторно использовать тип смещения SAO и смещения, присущие блоку CTB сверху.
2.10.1. Работа каждого типа смещения SAO
Смещение края использует четыре одномерных (1-D) 3-пиксельных рисунка для классификации текущего пикселя p посредством учета информации о направлении края, как показано на фиг. 18. Слева направо эти смещения равны: 0-градусов, 90-градусов, 135-градусов и 45-градусов.
Каждый блок CTB классифицируют для отнесения к одной из пяти категорий согласно таблице 2-7.
Смещение полосы (BO) классифицирует все пиксели в области одного блока CTB на 32 одинаковых полосы путем использования пяти самых старших значимых битов значения пикселя в качестве индекса полосы. Другими словами, диапазон интенсивности пикселей разбивают на 32 равных сегмента от нуля до максимального значения интенсивности (например, 255 для 8-битовых пикселей). Четыре соседние полосы группируют вместе и каждую группу обозначают по ее крайней левой позиции, как показано на фиг. 19. Кодирующее устройство осуществляет поиск все позиций для обнаружения группы с максимальным уменьшением искажением путем компенсации смещения каждой полосы.
2.11 Комбинированный режим с внутрикадровым и межкадровым прогнозированием (CIIP)
В документе VTM5, когда единицу CU кодируют в режиме объединения, если единица CU содержит по меньшей мере 64 отсчета яркостной составляющей (иными словами, произведение ширины единицы CU на высоту единицы CU не меньше 64), и если оба размера - ширина единицы CU и высота единицы CU, меньше 128 отсчетов яркостной составляющей, передают в виде сигнализации дополнительный флаг для индикации, применяется ли комбинированный режим с внутрикадровым и межкадровым прогнозированием (combined inter/intra prediction (CIIP)) к текущей единице CU. Как указывает само название, прогнозирование CIIP комбинирует сигнал межкадрового прогнозирования с сигналом внутрикадрового прогнозирования. Сигнал межкадрового прогнозирования в режиме прогнозирования CIIP, , получают с использованием той же самой процедуры межкадрового прогнозирования, какая применяется в обычном режиме объединения; и сигнал внутрикадрового прогнозирования получают с использованием обычной процедуры внутрикадрового прогнозирования с планарным режимом. Затем сигналы внутрикадрового и межкадрового прогнозирования комбинируют с применением взвешенного усреднения, где весовые коэффициенты вычисляют в зависимости от режимов кодирования для верхнего и левого соседних блоков (показаны на фиг. 20) следующим образом:
- Если сосед сверху доступен и кодирован в режиме внутрикадрового прогнозирования, тогда параметр isIntraTop устанавливают равным 1, в противном случае этот параметр isIntraTop устанавливают равным 0;
- Если сосед слева доступен и кодирован в режиме внутрикадрового прогнозирования, тогда параметр isIntraLeft устанавливают равным 1, в противном случае этот параметр isIntraLeft устанавливают равным 0;
- Если (isIntraLeft + isIntraLeft) равно 2, тогда параметр wt устанавливают равным 3;
- В противном случае, если (isIntraLeft + isIntraLeft) равно 1, тогда параметр wt устанавливают равным 2;
- В противном случае, параметр wt устанавливают равным 1.
Прогнозирование CIIP осуществляют следующим образом:
2.12 Отображение яркостной составляющей с масштабированием цветностной составляющей (LMCS)
В документе VTM5, инструмент кодирования, называемый отображением яркостной составляющей с масштабированием цветностной составляющей (luma mapping with chroma scaling (LMCS)), добавлен в качестве нового процессорного блока прежде контурной фильтрации. Режим LMCS имеет два главных компонента: 1) внутриконтурное отображение яркостной составляющей на основе адаптивных кусочно-линейных моделей; 2) применение зависящего от яркостной составляющей масштабирования остатка цветностной составляющей для цветностных составляющих. Фиг. 21 показывает архитектуру осуществления режима LMCS с точки зрения декодирующего устройства. Заштрихованные светло-синим блоки на фиг. 21 указывают, что обработка применяется в отображенной области; сюда входит обратное квантование, обратная трансформация, внутрикадровое прогнозирование яркостной составляющей и суммирование прогнозирования яркостной составляющей с остатком яркостной составляющей. Незаштрихованные блоки на фиг. 21 указывают, где обработка применяется в исходной (т.е. неотображенной) области; и сюда входят контурные фильтры, такие как деблокирующие фильтры, фильтры ALF и фильтры SAO, прогнозирование с компенсацией движения, внутрикадровое прогнозирование цветностной составляющей, суммирование прогнозирования цветностной составляющей с остатком цветностной составляющей, и сохранение декодированных изображений в качестве опорных изображений. Блоки, заштрихованные светло-желтым, на фиг. 21 представляют собой новые функциональные блоки для режима LMCS, включая прямое и обратное отображение сигнала яркостной составляющей и процедуру зависящего от яркостной составляющей масштабирования цветностной составляющей. Как и большинство других инструментов в стандарте кодирования VVC, режим LMCS может быть активизирован/активизация отменена на уровне последовательности с использованием флага набора SPS.
3. Примеры проблем, решаемых вариантами
Один флаг палитры обычно применяется для индикации, используется ли режим палитры для текущей CU, которая может иметь различные ограничения и вариации применительно к энтропийному кодированию. Однако в предшествующих стандартах кодирования видео вопрос о том, как лучше кодировать флаг палитры, еще не был полностью изучен.
Отсчеты палитры могут иметь визуальный артефакт, если их обрабатывать посредством процедуры после контурной фильтрации.
Порядок сканирования палитры может быть усовершенствован для неквадратных блоков.
4. Примеры вариантов
Приведенные ниже описания предложений следует рассматривать в качестве примеров для пояснения общих концепций. Эти предложения не следует интерпретировать в узком смысле. Далее, эти предложения могут быть комбинированы любым способом.
1. Индикация использования режима палитры для единицы преобразования/единицы прогнозирования/блока кодирования/области может быть кодирована отдельно от режима прогнозирования.
a. В одном примере, указание режима прогнозирования может быть кодировано прежде индикации использования палитры.
i. Кроме того, в качестве альтернативы, индикация использования палитры может быть условно передана в виде сигнализации на основе режима прогнозирования.
1. В одном из примеров, когда режим прогнозирования является режимом внутрикадрового копирования блоков (т.е. режимом MODE_IBC), передача в виде сигнализации индикации использования режима палитры может быть пропущена. Кроме того, в качестве альтернативы, индикация использования палитры может быть признана ложной, когда текущий режим прогнозирования является режимом MODE_IBC.
2. В одном из примеров, когда режим прогнозирования является режимом межкадрового прогнозирования (т.е. MODE_INTER), передача в виде сигнализации индикации использования режима палитры может быть пропущена. Кроме того, в качестве альтернативы, индикация использования палитры может быть признана ложной, когда текущий режим прогнозирования является режимом MODE_INTER.
3. В одном из примеров, когда режим прогнозирования является режимом внутрикадрового прогнозирования (т.е. MODE_INTRA), передача в виде сигнализации индикации использования режима палитры может быть пропущена. Кроме того, в качестве альтернативы, индикация использования палитры может быть признана ложной, когда текущий режим прогнозирования является режимом MODE_INTRA.
4. В одном из примеров, когда режим прогнозирования является режимом пропуска (т.е. флаг пропуска равен 1), передача в виде сигнализации индикации использования режима палитры может быть пропущена. Кроме того, в качестве альтернативы, индикация использования палитры может быть признана ложной, когда для текущей единицы CU используется режим пропуска.
5. В одном из примеров, когда режим прогнозирования является режимом внутрикадрового прогнозирования (т.е. MODE_INTRA), индикация использования режима палитры может быть передана в виде сигнализации. Кроме того, в качестве альтернативы, передача в виде сигнализации индикации использования палитры может быть пропущена, когда режим прогнозирования является режимом межкадрового прогнозирования или режимом внутрикадрового копирования блоков.
a) Кроме того, в качестве альтернативы, когда режим прогнозирования является режимом внутрикадрового прогнозирования и не является режимом импульсно-кодовой модуляции (ИКМ (Pulse-code modulation (PCM))), может быть передана сигнализация об использовании режима палитры.
b) Кроме того, в качестве альтернативы, когда режим прогнозирования является режимом внутрикадрового прогнозирования, индикация использования режима палитры может быть сообщена в виде сигнализации прежде индикации использования режима модуляции ИКМ. В одном из примеров, когда применяется режим палитры, сигнализация об использовании режима модуляции ИКМ может быть пропущена.
c) Кроме того, в качестве альтернативы, когда режим прогнозирования является режимом межкадрового прогнозирования или режимом внутрикадрового копирования блоков, передача сигнализации с индикацией использования режима палитры может быть пропущена.
6. В одном из примеров, когда режим прогнозирования является режимом межкадрового прогнозирования (например, MODE_INTER), может быть в виде сигнализации передана индикация использования режима палитры.
a) В качестве альтернативы, когда режим прогнозирования является режимом внутрикадрового прогнозирования, передача сигнализации с индикацией использования режима палитры может быть пропущена.
7. В одном из примеров, когда режим прогнозирования является режимом внутрикадрового копирования блоков, может быть в виде сигнализации передана индикация использования режима палитры. Кроме того, в качестве альтернативы, когда режим прогнозирования является режимом межкадрового прогнозирования или режимом внутрикадрового прогнозирования, передача сигнализации с индикацией использования режима палитры может быть пропущена.
ii. Кроме того, в качестве альтернативы, сигнализация с индикацией использования режима палитры может быть условно передана на основе изображения/среза/типа группы плиток.
b. В одном из примеров, указание режима прогнозирования может быть закодировано после индикации использования режима палитры.
c. В одном из примеров, сигнализация с индикацией использования режима палитры может быть передана, когда режим прогнозирования является режимом INTRA или INTER_MODE.
i. В одном из примеров, индикация использования режима палитры может быть закодирована после флага пропуска, указания режима прогнозирования и флага режима с модуляцией ИКМ.
ii. В одном из примеров, индикация использования режима палитры может быть закодирована после флага пропуска, указания режима прогнозирования и прежде флага режима с модуляцией ИКМ
iii. В одном из примеров, когда текущий блок кодируют в режиме внутрикадрового прогнозирования, далее может быть передана сигнализация с указаниями режима палитры и режима копирования IBC.
1. В одном из примеров, может быть передан в виде сигнализации однобитовый флаг для индикации, сообщается ли о режиме палитры или режиме копирования IBC.
2. В одном из примеров, передача в виде сигнализации однобитового флага может быть пропущена при определенных условиях, таких как размеры блока и то, активизирован ли режим копировании IBC или режим палитры для одной плитки/группы плиток/среза/изображения/последовательности.
d. В одном из примеров, указание режима прогнозирования (такое как, используется ли режим внутрикадрового прогнозирования или режим межкадрового прогнозирования) может быть закодировано первым, после чего будет следовать условная передача сигнализации, является ли этот режим режимом палитры или нет.
i. В одном из примеров, когда режим прогнозирования является режимом внутрикадрового прогнозирования, может быть дополнительно передан в виде сигнализации другой флаг для индикации, является ли этот режим режимом палитры или нет.
i. В одном из примеров, указанный «другой флаг» может быть передан в виде сигнализации, когда режим палитры активизирован для одной единицы данных видео (например, последовательности/изображения/группы плиток/плитки).
2. В одном из примеров, указанный «другой флаг» может быть сообщен в виде сигнализации при условии соответствующего размера блока.
3. Кроме того, в качестве альтернативы, если режим не является режимом палитры, один флаг может быть далее передан в виде сигнализации для индикации, является ли этот режим режимом модуляции ИКМ или нет.
4. В одном из примеров, указанный «другой флаг» может быть подвергнут контекстному кодированию в соответствии с информацией о соседних блоках. В качестве альтернативы, этот «другой флаг» может быть подвергнут контекстному кодированию в соответствии только с одним контекстом. В качестве альтернативы, этот «другой флаг» может быть кодирован «в обход», т.е. без контекста.
ii. В качестве альтернативы, когда режим прогнозирования является режимом межкадрового прогнозирования, может быть далее передан в виде сигнализации другой флаг для индикации, является ли этот режим режимом копирования IBC.
1. В одном из примеров, указанный «другой флаг» может быть передан в виде сигнализации, когда активизирован режим копирования IBC для одной единицы данных видео (например, последовательности/ изображения/группы плиток/плитки).
2. В одном из примеров, указанный «другой флаг» может быть сообщен в виде сигнализации при условии соответствующего размера блока
2. Предлагается добавить режим палитры в качестве дополнительного кандидата на роль режима прогнозирования. Поэтому, нет необходимости передавать в виде сигнализации индикацию использования режима палитры отдельно от индикации режима прогнозирования.
a. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры для подлежащих кодированию с внутрикадровым прогнозированием срезов/I-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.
b. В качестве альтернативы, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим палитры для подлежащих кодированию с внутрикадровым прогнозированием срезов/I-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.
c. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры для блоков размером 4×4.
d. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры для подлежащих кодированию с внутрикадровым прогнозированием срезов/P и/или B-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.
e. В одном из примеров, совокупность режимов прогнозирования может содержать режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, режим внутрикадрового копирования блоков для подлежащих кодированию с внутрикадровым прогнозированием срезов/P и/или B-кадров/подлежащих кодированию с внутрикадровым прогнозированием групп плиток.
f. В качестве альтернативы, совокупность режимов прогнозирования может содержать по меньшей мере два режима из следующего списка - режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры.
g. В одном из примеров, режим межкадрового прогнозирования может не быть включен в совокупность режимов прогнозирования для блоков размером 4×4.
h. В одном из примеров, когда блок не кодирован в режиме пропуска (что является специальным случаем режима межкадрового прогнозирования), индекс режима прогнозирования может быть передан в виде сигнализации.
i. В одном из примеров, представление в двоичном виде (бинаризация) указанных четырех режимов определено как: режим внутрикадрового прогнозирования (1), режим межкадрового прогнозирования (00), режим копирования IBC (010) и режим палитры (011).
ii. В одном из примеров, бинаризация указанных четырех режимов определена как: режим внутрикадрового прогнозирования (10), режим межкадрового прогнозирования (00), режим копирования IBC (01) и режим палитры (11), как показано на фиг. 10.
iii. В одном из примеров, если текущий срез является срезом, кодируемым с внутрикадровым прогнозированием, и режим копирования IBC не активизирован в наборе SPS, бинаризация режима палитры и режима внутрикадрового прогнозирования определена как: режим палитры (1) и режим внутрикадрового прогнозирования (0).
iv. В одном из примеров, если текущий срез не является срезом, кодируемым с внутрикадровым прогнозированием, и режим копирования IBC не активизирован в наборе SPS, бинаризация режима палитры, режимов межкадрового и внутрикадрового прогнозирования определена как: режим внутрикадрового прогнозирования (1), режим межкадрового прогнозирования (00) и режим палитры (01).
v. В одном из примеров, если текущий срез, является срезом, кодируемым в режиме внутрикадрового прогнозирования и режим копирования IBC активизирован в SPS, бинаризация режима палитры и режима внутрикадрового прогнозирования определена как: режим копирования IBC (1), режим палитры (01) и режим внутрикадрового прогнозирования (00).
vi. В одном из примеров, бинаризация указанных четырех режимов определена как: режим межкадрового прогнозирования (1), режим внутрикадрового прогнозирования (01), режим копирования IBC (001) и режим палитры (000).
vii. В одном из примеров, бинаризация указанных четырех режимов определена как: режим внутрикадрового прогнозирования (1), режим межкадрового прогнозирования (01), режим копирования IBC (001) и режим палитры (000).
viii. В одном из примеров, бинаризация указанных четырех режимов определена как: режим межкадрового прогнозирования (0), режим внутрикадрового прогнозирования (10), режим копирования IBC (111) и режим палитры (110), как показано на фиг. 11.
3. Передача в виде сигнализации индикации использования режима палитры/режима копирования IBC может зависеть от информации о другом режиме.
a. В одном из примеров, индикация использования режима палитры может быть передана в виде сигнализации, когда текущий режим прогнозирования является режимом внутрикадрового прогнозирования и не является режимом копирования IBC.
b. В одном из примеров, индикация использования режима копирования IBC может быть передана в виде сигнализации, когда текущий режим прогнозирования является режимом внутрикадрового прогнозирования и не является режимом палитры.
4. Как именно передать информацию о режиме в виде сигнализации может зависеть от среза/изображения/типа группы плиток.
a. В одном из примеров, когда рассматривается I-срез/группа плиток, кодируемая с применением внутрикадрового прогнозирования, один флаг может быть передан в виде сигнализации для индикации, является ли рассматриваемый режим режимом копирования IBC. Если этот режим не является режимом копирования IBC, может быть дополнительно передан другой флаг для индикации, является ли этот режим режимом палитры или режимом внутрикадрового прогнозирования.
b. В одном из примеров, когда рассматривается I-срез/группа плиток, кодируемая с применением внутрикадрового прогнозирования, один флаг может быть передан в виде сигнализации для индикации, является ли рассматриваемый режим режимом внутрикадрового прогнозирования. Если этот режим не является режимом внутрикадрового прогнозирования, может быть дополнительно передан другой флаг для индикации, является ли этот режим режимом палитры или режимом копирования IBC.
5. Индикация использования режима палитры может быть передана в виде сигнализации и/или сформирована на основе следующих условий.
a. размеры текущего блока
i. В одном из примеров, индикация использования режима палитры может быть передана в виде сигнализации только для блоков, для которых произведение «ширина * высота» не больше порогового значения, такого как 64*64.
ii. В одном из примеров, индикация использования режима палитры может быть передана в виде сигнализации только для блоков, для которых и ширина, и высота не меньше порогового значения, такого как 64
iii. В одном из примеров, индикация использования режима палитры может быть передана в виде сигнализации только для блоков, для которых все приведенные ниже условия являются истинными (true):
1. ширина и/или высота не меньше порового значения, такого как 16;
2. ширина и/или высота не больше порового значения, такого как 32 или 64
iv. В одном из примеров, индикация использования режима палитры может быть сообщена в виде сигнализации только для блоков, у которых ширина равна высоте (т.е. квадратных блоков)
b. режим прогнозирования для текущего блока
c. Текущий параметр квантования для текущего блока
d. Флаг режима палитры для соседних блоков
e. Флаги режима внутрикадрового копирования блоков для соседних блоков
f. Индикация цветового формата (такого как 4:2:0, 4:4:4)
g. Раздельная/двойная структура дерева кодирования
h. Тип среза/группы плиток и/или тип изображения
6. Индикация использования режима копирования IBC может быть передана в виде сигнализации и/или получена на основе следующих условий.
a. размеры текущего блока
i. В одном из примеров, индикация использования режима копирования IBC может быть передана в виде сигнализации только для блоков, для которых и высота, и ширина меньше 128
b. режим прогнозирования для текущего блока
c. Текущий параметр квантования для текущего блока
d. Флаг режима палитры для соседних блоков
e. Флаги режима внутрикадрового копирования блоков для соседних блоков
f. Индикация цветового формата (такого как 4:2:0, 4:4:4)
g. Раздельная/двойная структура дерева кодирования
h. Тип среза/группы плиток и/или тип изображения
7. Режим палитры можно рассматривать в качестве режима внутрикадрового прогнозирования (e.g MODE_INTRA) в процессе принятия решения о деблокировании.
a. В одном из примеров, если отсчеты на стороне p или на стороне q кодируют в режиме палитры, жесткость границы устанавливают равной 2.
b. В одном из примеров, если отсчеты на обеих сторонах - и на стороне p, и на стороне q, кодируют в режиме палитры, жесткость границы устанавливают равной 2
c. В качестве альтернативы, режим палитры можно рассматривать в качестве режима межкадрового прогнозирования (например, MODE_INTER) в процессе принятия решения о деблокировании.
8. Режим палитры можно рассматривать в качестве отдельного режима (например, MODE_PLT) в процессе принятия решения о деблокировании.
a. В одном из примеров, если отсчеты на стороне p или на стороне q кодируют в режиме палитры, жесткость границы устанавливают равной 0.
i. В качестве альтернативы, если отсчеты на одной стороне кодируют в режиме палитры, жесткость границы устанавливают равной 0.
b. В одном из примеров, если отсчеты на стороне p кодируют в режиме копирования IBC и отсчеты на стороне q кодируют в режиме палитры, жесткость границы устанавливают равной 1, и наоборот.
c. В одном из примеров, если отсчеты на стороне p кодируют в режиме внутрикадрового прогнозирования и отсчеты на стороне q кодируют в режиме палитры, жесткость границы устанавливают равной 2, и наоборот.
9. Режим палитры можно рассматривать в качестве режима трансформации-пропуска блока в процессе деблокирования
a. В качестве альтернативы, режим палитры можно рассматривать в качестве режима модуляции BDPCM блока в процессе деблокирования.
10. Индикация использования режима палитры для блока может быть передана в виде сигнализации и/или получена на основе флага на уровне среза/группы плиток/изображения
a. В одном из примеров, этот указывает, является ли дробная разность векторов движения (motion vector difference (MVD)) допустимой в режиме объединения с разностями вектором движения (merge with motion vector difference (MMVD, также называется UMVE)) и/или в режиме адаптивного разрешения вектора движения (adaptive motion vector resolution (AMVR)), (например, флаг slice_fracmmvd_flag). Кроме того, в качестве альтернативы, если флаг slice_fracmmvd_flag указывает, что режим дробной разности MVD активизирован, передачу сигнализации, указывающей использование режима палитры, пропускают, и режим палитры считают не активизированным.
b. В одном из примеров, этот флаг указывает, активизирован ли режим палитры для среза/группы плиток/изображения. Кроме того, в качестве альтернативы, когда такой флаг указывает, что режим палитры не активизирован, передачу сигнализации, указывающей использование режима палитры, для блока пропускают, и режим палитры считают не активизированным.
11. Индикацию использования режима внутрикадрового копирования блоков (IBC) для блока можно передать в виде сигнализации и/или вывести на основе флага на уровне среза/группы плиток/изображения.
a. В одном из примеров, флаг указывает, является ли дробная разность векторов движения (MVD) допустимой в режиме объединения с разностями вектором движения (MMVD, также называется UMVE) и/или в режиме адаптивного разрешения вектора движения (AMVR), (например, slice_fracmmvd_flag). Кроме того, в качестве альтернативы, если флаг slice_fracmmvd_flag указывает, что режим дробной разности MVD активизирован, передачу индикации режима копирования IBC в виде сигнализации пропускают, и считают, что режим копирования IBC не активизирован.
b. В одном из примеров, этот флаг указывает, активизирован ли режим копирования IBC для среза/группы плиток/изображения. Кроме того, в качестве альтернативы, когда этот флаг указывает, что режим копирования IBC не активизирован, передачу сигнализации использования режима копирования IBC для блока пропускают, и считают, что режим копирования IBC не активизирован.
12. Отсчет, ассоциированный с одной входной позицией палитры, может иметь битовую глубину, отличную от внутренней битовой глубины и/или от битовой глубины исходных/реконструированных отсчетов.
a. В одном из примеров, если обозначить битовую глубину, ассоциированную с отсчетом, как N, может быть применимо следующее:
i. В одном из примеров, N может быть целым числом (например, 8).
ii. В одном из примеров, N может быть больше, чем внутренняя битовая глубина и/или битовая глубина исходных/реконструированных отсчетов.
iii. В одном из примеров, N может быть меньше, чем внутренняя битовая глубина и/или битовая глубина исходных/реконструированных отсчетов.
iv. В одном из примеров, N может зависеть от
1. Размеры текущего блока
2. Текущий параметр квантования для текущего блока
3. Индикация цветового формата (такого как 4:2:0, 4:4:4)
4. Раздельная/двойная структура дерева кодирования
5. Срез/тип группы плиток и/или тип изображения
6. Число входных позиций палитры
7. Число прогнозируемых входных позиций палитры
8. Индекс цветовой составляющей
b. В одном из примеров, отсчеты, ассоциированные с несколькими входными позициями палитры, могут иметь различные битовые глубины.
i. В одном из примеров, пусть C0, C1 являются двумя входными позициями текущей палитры и могут иметь битовую глубину, равную b0 и b1, соответственно. Здесь b0 может быть не равно b1
1. В одном из примеров, b0 может быть больше/меньше внутренней битовой глубины и/или битовой глубины исходных/реконструированных отсчетов, и/или b1 может быть больше/меньше внутренней битовой глубины и/или битовой глубины исходных/реконструированных отсчетов.
c. В одном из примеров, в режиме палитры, отсчеты могут быть реконструированы в соответствии со смещенными значениями отсчетов, ассоциированных с входными позициями палитры.
i. В одном из примеров, отсчеты могут быть реконструированы путем левого смещения отсчетов во входных позициях палитры на M бит.
ii. В одном из примеров, реконструированное значение может быть (C<<M) + (1<<(M-1)), где C обозначает входную позицию палитры.
iii. В одном из примеров, отсчеты могут быть реконструированы путем правого смещения отсчетов во входных позициях палитры на M бит.
iv. В одном из примеров, реконструированное значение может быть усечением ((C+(1<<(M-1)))>>M, 0, (1<<N)-1), где C обозначает входную позицию палитры, и N обозначает битовую глубину реконструкцию.
v. Кроме того, в качестве альтернативы, в одном из примеров, значение M может зависеть от разности битовых глубин между отсчетами, ассоциированными с входными позициями палитры, и внутренней битовой глубиной реконструированных отсчетов/исходных отсчетов.
1. В одном из примеров, число M может быть равно внутренней битовой глубине минус битовая глубина отсчетов во входных позициях палитры
2. В одном из примеров, число M может быть равно битовой глубине отсчетов во входных позициях палитры минус внутренняя битовая глубина
3. В одном из примеров, число M может быть равно битовой глубине исходных отсчетов минус битовая глубина отсчетов во входных позициях палитры
4. В одном из примеров, число M может быть равно битовой глубине отсчетов во входных позициях палитры минус битовая глубина исходных отсчетов.
5. В одном из примеров, число M может быть равно битовой глубине реконструированных отсчетов минус битовая глубина отсчетов во входных позициях палитры
6. В одном из примеров, число M может быть равно битовой глубине отсчетов во входных позициях палитры минус битовая глубина реконструированных отсчетов
vi. В одном из примеров, число M может быть целым числом (например, 2).
vii. Кроме того, в качестве альтернативы, в одном из примеров, число M может зависеть от
1. Размеры текущего блока
2. Текущий параметр квантования для текущего блока
3. Индикация цветового формата (такого как 4:2:0, 4:4:4)
4. Раздельная/двойная структура дерева кодирования
5. Срез/тип группы плиток и/или тип изображения
6. Число входных позиций палитры
7. Число прогнозируемых входных позиций палитры
8. Позиция отсчета в блоке/изображении/срезе/плитке
9. Индекс цветовой составляющей
vii. В одном из примеров, в процессе реконструкции отсчетов может быть использована операция просмотра преобразовательной таблицы на основе отсчетов во входных позициях палитры.
1. В одном из примеров, значения из преобразовательной таблицы могут быть переданы в виде сигнализации в составе набора параметров последовательности (SPS)/набора параметров видео (VPS)/набора параметров изображения (PPS)/заголовка изображения/заголовка среза/заголовка группы плиток/строки единиц LCU/группы единиц LCU.
2. В одном из примеров, значения из преобразовательной таблицы могут быть выведены в составе набора SPS/набора VPS/набора PPS/заголовка изображения/заголовка среза/заголовка группы плиток/строки единиц LCU/группы единиц LCU.
13. Переданный в виде сигнализации/выведенный параметр квантования (quantization parameter (QP)) для блоков, кодируемых в режиме кодирования палитры, может быть сначала модифицирован прежде использования для вывода выпадающих пикселей/отсчетов, например, усечением.
a. В одном из примеров, применимый диапазон параметра QP для блоков, кодируемых в режиме кодирования палитры, можно рассматривать таким же способом, как в режиме пропуска трансформации и/или в режиме модуляции BDPCM.
b. В одном из примеров, применимый параметр QP для блоков, кодируемых в режиме кодирования палитры, может быть пересмотрен и сделан равным max(Qp, 4 + T), где T - целое число, и Qp представляет собой передаваемый в виде сигнализации или выводимый параметр квантования для соответствующего блока.
i. В одном из примеров, параметр T может представлять собой предварительно заданное пороговое значение.
ii. В одном из примеров, параметр T может быть равен (4 + min_qp_prime_ts_ minus4), где параметр min_qp_prime_ts_ minus4 может быть передан в виде сигнализации.
14. Способ кодирования выпадающих отсчетов/символов может быть унифицирован независимо от того, активизирован ли режим обхода трансформации и квантования или нет.
a. В одном из примеров, выпадающий отсчет может быть передан в виде сигнализации с фиксированной длиной.
b. В одном из примеров, выпадающий отсчет может быть передан в виде сигнализации с фиксированной длиной с использованием N бит.
i. В одном из примеров, число N может быть целым числом (например, 8 или 10) и может зависеть от
1. Сообщение передают в виде сигнализации в составе набора SPS/набора VPS/набора PPS/заголовка изображения/заголовка среза/заголовка группы плиток/строки единиц LCU/группы единиц LCU.
2. Внутренняя битовая глубина
3. Входная битовая глубина
4. Размеры текущего блока
5. Текущий параметр квантования текущего блока
6. Индикация цветового формата (такого как 4:2:0, 4:4:4)
7. Раздельная/двойная структура дерева кодирования
8. Срез/тип группы плиток и/или тип изображения
c. В одном из примеров, длина кода для передачи выпадающего пикселя/отсчета в виде сигнализации может зависеть от внутренней битовой глубины.
i. В качестве альтернативы, длина кода для передачи выпадающего пикселя/отсчета в виде сигнализации может зависеть от входной битовой глубины.
d. В одном из примеров, длина кода для передачи выпадающего пикселя/отсчета в виде сигнализации может зависеть от параметра квантования.
i. В одном из примеров, длина кода для передачи выпадающего пикселя/отсчета в виде сигнализации может быть равна f(Qp)
1. В одном из примеров, функция f может быть определена как (внутренняя битовая длина - (Qp - 4)/6).
15. Процедуры квантования и/или обратного квантования для блоков, кодируемых в режиме кодирования палитры, и для блоков, кодируемых в режиме кодирования палитры, могут быть определены разными способами.
a. В одном из примеров, правое смещение битов может быть использовано для квантования выпадающего отсчета вместо использования процедуры квантования для коэффициентов трансформации или остатков.
b. В одном из примеров, левое смещение битов может быть использовано для обратного квантования выпадающего отсчета вместо использования процедуры обратного квантования для коэффициентов трансформации или остатков.
c. На стороне кодирующих устройств может быть применимо следующее:
i. В одном из примеров, значение выпадающего пикселя может быть передано в виде сигнализации как f(p, Qp), где p обозначает значение пикселя/отсчета.
ii. В одном из примеров, функция f может быть определена как p>>((Qp-4)/6), где p обозначает значение пикселя/отсчета и Qp обозначает параметр квантования.
iii. В одном из примеров, значение выпадающего пикселя может быть передано в виде сигнализации как p>>N, где p обозначает значение пикселя/отсчета.
1. В одном из примеров, число N может быть целым числом (например, 2) и может зависеть от
a) Сообщение передают в виде сигнализации в составе набора SPS/набора VPS/набора PPS/заголовка изображения/заголовка среза/заголовка группы плиток/строки единиц LCU/группы единиц LCU.
b) Внутренняя битовая глубина
c) Входная битовая глубина
d) Размеры текущего блока
e) Текущий параметр квантования текущего блока
f) Индикация цветового формата (такого как 4:2:0, 4:4:4)
g) Раздельная/двойная структура дерева кодирования
h) Срез/тип группы плиток и/или тип изображения
d. На стороне декодирующего устройства может применяться следующее:
i. В одном из примеров значение выпадающего пикселя/отсчета может быть передано в виде сигнализации как f(bd,p,Qp)
1. В одном из примеров, функция f может быть определена как clip(0, (1<<(bd-(Qp-4)/6))-1, (p + (1<<(bd-1)))>>((Qp-4)/6)).
ii. В одном из примеров значение выпадающего пикселя/отсчета может быть реконструировано как f(p,Qp), где p обозначает декодированное значение выпадающего пикселя/отсчета.
1. В одном из примеров функция f может быть определена как p<<((Qp-4)/6)
iii. В одном из примеров значение выпадающего пикселя/отсчета может быть реконструировано как f(bd,p,Qp), где p обозначает декодированное значение выпадающего пикселя/отсчета.
1. В одном из примеров, функция усечения может быть определена как clip(0, (1<<bd)-1, p<<((Qp-4)/6))
iv. В приведенных выше примерах, функция усечения clip(a,i,b) может быть определена как (i < a ? a : (i > b ? b : i)).
v. В приведенных выше примерах, функция усечения clip(a,i,b) может быть определена как (i <= a ? a : (i >= b ? b : i)).
vi. В приведенных выше примерах, p может обозначать значение пикселя/отсчета, bd может обозначать внутреннюю битовую глубину или входную битовую глубину, и Qp обозначает параметр квантования.
16. Блок, кодируемый в режиме палитры, можно рассматривать в качестве блока, кодируемого в режиме внутрикадрового прогнозирования, (например, MODE_INTRA) в ходе процедуры построения списка наиболее вероятных режимов (MPM).
a. В одном из примеров, при выборке режимов внутрикадрового прогнозирования соседних (смежных или несмежных) блоков в ходе построения списка режимов MPM, если соседний блок (например, слева или сверху) кодируют в режиме палитры, его можно рассматривать в качестве блока, кодируемого в обычном режиме внутрикадрового прогнозирования, (например, MODE_INTRA) с режимом по умолчанию.
i. В одном из примеров, режим по умолчанию может представлять собой режим DC/PLANAR/VER/HOR.
ii. В одном из примеров, режим по умолчанию может представлять собой какой-либо один из режимов внутрикадрового прогнозирования.
iii. В одном из примеров, сигнализация о режиме по умолчанию может быть передана в составе набора параметров зависимости (Dependency Parameter Set (DPS))/набора SPS/набора VPS/набора PPS/набора APS/заголовка изображения/заголовка среза/заголовка группы плиток/наибольшей единицы кодирования (Largest coding unit (LCU))/единицы кодирования (CU)/строки единиц LCU/группы единиц LCU/единицы TU/блока единиц PU/единицы кодирования видео.
17. Блок, кодируемый в режиме палитры, можно рассматривать в качестве блока, не подвергаемого режиму внутрикадрового прогнозирования, (например, рассматривать в качестве блока, с режимом прогнозирования MODE_PLT) в ходе построения списка наиболее вероятных режимов (MPM).
a. В одном из примеров, при выборке режимов внутрикадрового прогнозирования соседних блоков в ходе построения списка режимов MPM, если соседний блок (например, слева или сверху) кодируют в режиме палитры, его можно рассматривать таким же или аналогичным образом, как блоки, кодируемые в режиме межкадрового прогнозирования.
b. В одном из примеров, при выборке режимов внутрикадрового прогнозирования соседних блоков в ходе построения списка режимов MPM, если соседний блок (например, слева или сверху) кодируют в режиме палитры, его можно рассматривать таким же или аналогичным образом, как блоки, кодируемые в режиме копирования IBC.
18. Блок яркостной составляющей, кодируемый в режиме палитры, и соответствующий блоку цветностной составляющей, кодируемому в DM-режиме, можно интерпретировать как блок, имеющий режим внутрикадрового прогнозирования по умолчанию.
a. В одном из примеров, соответствующий блок яркостной составляющей, кодируемый в режим палитры, можно рассматривать в качестве блока с внутрикадровым прогнозированием (например, MODE_PLT), когда блок цветностной составляющей кодирован в DM-режиме.
b. В одном из примеров, режим прогнозирования по умолчанию может представлять собой режим DC/PLANAR/VER/HOR.
c. В одном из примеров, режим прогнозирования по умолчанию может представлять собой какой-либо один из режимов внутрикадрового прогнозирования.
d. В одном из примеров, сигнализация о режиме прогнозирования по умолчанию может быть передана в составе набора DPS/набора SPS/набора VPS/набора PPS/набора APS/заголовка изображения/заголовка среза/заголовка группы плиток/наибольшей единицы кодирования (LCU)/единицы кодирования (CU)/строки единиц LCU/группы единиц LCU/единицы TU/блока единиц PU/единицы кодирования видео.
19. Блок, кодированный в режиме палитры, можно рассматривать в качестве недоступного блока в ходе построения списка для режима прогнозирования вектора движения на основе предыстории (history-based motion vector prediction) (HMVP), режима объединения (MERGE) и/или режима усовершенствованного прогнозирования вектора движения (advanced motion vector prediction (AMVP)).
a. В одном из примеров, недоступный блок может представлять собой блок, о котором нет информации о движении, либо информация о его движении не может быть использована для прогнозирования других блоков.
b. В одном из примеров, блок, кодируемый в режиме палитры, можно рассматривать в качестве блока с внутрикадровым прогнозированием (например, MODE_INTRA) или блока в режиме палитры (например, MODE_PLT) в процессе построения списка для режимов прогнозирования HMVP, объединения MERGE и/или прогнозирования AMVP.
i. В качестве альтернативы, в одном из примеров, при выборке информации о движении соседних блоков в процессе построения списка для режимов прогнозирования HMVP, объединения MERGE и/или прогнозирования AMVP, соседний блок, кодируемый в режиме палитры можно рассматривать в качестве блока с недействительным индексом опоры.
ii. В качестве альтернативы, в одном из примеров, при выборке информации о движении соседних блоков в процессе построения списка для режимов прогнозирования HMVP, объединения MERGE и/или прогнозирования AMVP, соседний блок, кодируемый в режиме палитры можно рассматривать в качестве блока с межкадровым прогнозированием, имеющего индекс опоры, равный 0.
iii. В качестве альтернативы, в одном из примеров, при выборке информации о движении соседних блоков в процессе построения списка для режимов прогнозирования HMVP, объединения MERGE и/или прогнозирования AMVP, соседний блок, кодируемый в режиме палитры можно рассматривать в качестве блока с межкадровым прогнозированием, имеющего нулевой вектор движения.
20. Решение о том, как именно рассматривать блок, кодированный в режиме палитры, (например, следует ли применять описываемые выше способы, и/или, каким образом их применять) может быть основано на:
a. Контент видео (например, контент экрана или естественный контент)
b. Сообщение, переданное в виде сигнализации в составе набора DPS/набора SPS/набора VPS/набора PPS/набора APS/заголовка изображения/заголовка среза/заголовка группы плиток/наибольшей единицы кодирования (LCU)/единицы кодирования (CU)/строки единиц LCU/группы единиц LCU/единицы TU/блока единиц PU/единицы кодирования видео
c. Положение единицы CU/единицы PU/единицы TU/блока/единицы кодирования видео
d. Размеры текущего блока и/или соседних с ним блоков
e. Форма текущего блока и/или соседних с ним блоков
f. Индикация цветового формата (такого как 4:2:0, 4:4:4, RGB или YUV)
g. Структура дерева кодирования (такая, как двойное дерево или одиночное дерево)
h. Срез/тип группы плиток и/или тип изображения
i. Цветовая составляющая (например, может быть применима только к яркостной составляющей и/или цветностной составляющей)
j. Идентификатор ID временного уровня
k. Профили/Уровни/Ярусы стандарта
21. Секции (разряды) с контекстно-зависимым кодированием для блока, кодируемого в режиме кодирования палитры, могут быть ограничены в пределах некоторого диапазона.
a. В одном из примеров, с блоком ассоциируют счетчик для записи того, как много секций (разрядов) было подвергнуто контекстно-зависимому кодированию. Когда число в счетчике превышает пороговое значение, применяют обходное кодирование вместо контекстно-зависимого кодирования.
i. В качестве альтернативы, счетчики NumColorComp могут быть назначены для записи того, как много секций (разрядов) было подвергнуты контекстно-зависимому кодированию для каждой цветовой составляющей. Число NumColorComp представляет собой число цветовых составляющих, подлежащих кодированию в одном блоке, (например, для одной единицы CU в формате YUV, число NumColorComp устанавливают равным 3).
ii. В качестве альтернативы, счетчик может быть инициализирован на нуль, а после кодирования одной секции (разряда) контекстно-зависимым способом число в счетчике увеличивают на единицу.
b. В качестве альтернативы, счетчик может быть инициализирован некоторым значением больше нуля (например, W*H*K), и после кодирования одной секции (разряда) контекстно-зависимым способом число в счетчике уменьшают на единицу. Когда число в счетчике не больше значения T, применяют обходное кодирование вместо контекстно-зависимого кодирования.
i. В одном из примеров значение T устанавливают равным 0 или 1.
ii. В одном из примеров значение T устанавливают в соответствии с декодированной информацией или числом проходов кодирования и т.п.
c. В одном из примеров, блоки, кодируемые в режиме кодирования палитры, могут иметь такие же или другие пороговые значения по сравнению с блоками, кодированными в режиме TS, или с блоками, кодированными в режиме не-TS, в терминах секций с контекстно-зависимым кодированием.
i. В одном из примеров, число секций (разрядов) с контекстно-зависимым кодированием для блока, кодируемого в режиме кодирования палитры, может быть установлено равным (W*H*T), где W и H представляют собой ширину и высоту одного блока, соответственно, и T является целым числом. В одном из примеров, число T устанавливают таким же, как это используется для блоков, кодируемых в режиме TS, таким как 1.75 или 2.
ii. В одном из примеров, число секций (разрядов) с контекстно-зависимым кодированием для блока, кодируемого в режиме кодирования палитры, может быть установлено равным (W*H*NumColorComp*T), где W и H представляют собой ширину и высоту одного блока, соответственно; NumColorComp обозначает число цветовых составляющих, подлежащих кодированию для одного блока (например, для одной единицы CU в формате YUV, число NumColorComp устанавливают равным 3), и T является целым числом. В одном из примеров, число T устанавливают таким же, как это используется для блоков, кодируемых в режиме TS, таким как 1.75 или 2.
d. В одном из примеров, пороговое значение для блоков, кодируемых в режиме палитры, может быть меньше, чем для блоков, кодируемых в режиме TS, или для блоков, кодируемых в режиме не-TS, в терминах секций (разрядов) с контекстно-зависимым кодированием.
e. В одном из примеров пороговое значение для блоков, кодируемых в режиме палитры, может быть больше, чем для блоков, кодируемых в режиме TS, или для блоков, кодируемых в режиме не-TS, в терминах секций (разрядов) с контекстно-зависимым кодированием.
22. Блок, кодируемый в режиме палитры, можно рассматривать в качестве блока, кодируемого не в режиме внутрикадрового прогнозирования, (например, рассматривать в качестве блока с режимом прогнозирования, равным MODE_PLT) в процессе подсчета соседних блоков с внутрикадровым прогнозированием в режиме прогнозировании CIIP.
a. В одном из примеров, при выборке режимов с внутрикадровым прогнозированием для соседних блоков в процессе подсчета соседних блоков с внутрикадровым прогнозированием в режиме прогнозирования CIIP, если соседний блок (например, слева и/или сверху) кодируют в режиме палитры, его можно рассматривать таким же или аналогичным образом, как блоки, кодированные в режиме с межкадровым прогнозированием.
b. В одном из примеров, при выборке режимов с внутрикадровым прогнозированием для соседних блоков в процессе подсчета соседних блоков с внутрикадровым прогнозированием в режиме прогнозирования CIIP, если соседний блок (например, слева и/или сверху) кодируют в режиме палитры, его можно рассматривать таким же или аналогичным образом, как блоки, кодированные в режиме копирования IBC.
c. В качестве альтернативы, блок, кодируемый в режиме палитры, можно рассматривать в качестве блока с внутрикадровым прогнозированием в процессе подсчета соседних блоков с внутрикадровым прогнозированием в режиме прогнозирования CIIP.
23. Предлагается пропустить процедуры пред-фильтрации и/или пост-фильтрации для отсчетов, кодируемых в режиме палитры.
a. В одном из примеров, отсчеты, кодируемые в режиме палитры, могут не подвергаться деблокированию.
b. В одном из примеров, отсчеты, кодируемые в режиме палитры, могут не подвергаться компенсации смещении в процессе SAO.
c. В одном из примеров, отсчеты, кодируемые в режиме палитры, могут не подвергаться фильтрации в ходе фильтрации ALF.
i. В одном из примеров, классификация в процессе фильтрации ALF может пропускать отсчеты, кодируемые в режиме палитры
d. В одном из примеров, режим LMCS может быть не активизирован для отсчетов, кодируемых в режиме палитры.
24. Предлагается добавить больше порядков сканирования в режим палитры.
a. В одном из примеров, может быть использован обратный порядок горизонтального поперечного сканирования, определяемый следующим образом.
i. В одном из примеров, направление сканирования для нечетных строк может быть слева направо.
ii. В одном из примеров, направление сканирования для четных строк может быть справа налево.
iii. В одном из примеров, порядок сканирования для блока размером 4×4 может быть таким, как показано на фиг. 22.
b. В одном из примеров, может быть использован обратный порядок вертикального поперечного сканирования, определяемый следующим образом.
i. В одном из примеров, направление сканирования для нечетных строк может быть сверху вниз.
ii. В одном из примеров, направление сканирования для четных строк может быть снизу вверх.
iii. В одном из примеров, порядок сканирования для блока размером 4×4 может быть таким, как показано на фиг. 23.
25. Комбинация допустимых порядков сканирования может зависеть от формы блока.
a. В одном из примеров, когда отношение ширины к высоте блока больше порогового значения, могут быть применены только горизонтальный поперечный порядок сканирования и обратный горизонтальный поперечный порядок сканирования.
i. В одном из примеров пороговое значение равно 1.
ii. В одном из примеров пороговое значение равно 4.
b. В одном из примеров, когда отношение высоты к ширине блока больше порогового значения, могут быть применены только вертикальный поперечный порядок сканирования и обратный вертикальный поперечный порядок сканирования.
i. В одном из примеров пороговое значение равно 1.
ii. В одном из примеров пороговое значение равно 4.
26. Предложено, чтобы в режиме модуляции QR-BDPCM было допустимо только одно направление внутрикадрового прогнозирования и/или одно направление сканирования.
a. В одном из примеров, только вертикальное направление допустимо для блока, у которого ширина больше высоты.
b. В одном из примеров, только горизонтальное направление допустимо для блока, у которого ширина меньше высоты.
c. В одном из примеров, индикация направления в режиме модуляции QR-BDPCM может быть выведена для неквадратного блока.
i. В одном из примеров, кроме того, индикация направления в режиме модуляции QR-BDPCM может указывать вертикальное направление для блока, у которого ширина больше высоты.
ii. В одном из примеров, кроме того, индикация направления в режиме модуляции QR-BDPCM может указывать горизонтальное направление для блока, у которого ширина меньше высоты.
27. Способы согласно п. 24, 25 и 26 могут быть применены только к блокам, для которых w*Th >= h или h*Th >= w, где w и h обозначают ширину и высоту соответственно, и Th обозначает пороговое значение.
a. В одном из примеров, значение Th является целым числом (например, 4 или 8) и может быть основана на
i. Контент видео (например, контент экрана или естественный контент)
ii. Сообщение, переданное в виде сигнализации в составе набора DPS/набора SPS/набора VPS/набора PPS/набора APS/заголовка изображения/заголовка среза/заголовка группы плиток/наибольшей единицы кодирования (LCU)/единицы кодирования (CU)/строки единиц LCU/группы единиц LCU/единицы TU/блока единиц PU/единицы кодирования видео
iii. Положение единицы CU/единицы PU/единицы TU/блока/единицы кодирования видео
iv. Размеры текущего блока и/или соседних с ним блоков
v. Форма текущего блока и/или соседних с ним блоков
vi. Индикация цветового формата (такого как 4:2:0, 4:4:4, RGB или YUV)
vii. Структура дерева кодирования (такая, как двойное дерево или одиночное дерево)
viii. Срез/тип группы плиток и/или тип изображения
ix. Цветовая составляющая (например, может быть применима только к яркостной составляющей и/или цветностной составляющей)
x. Идентификатор ID временного уровня
xi. Профили/Уровни/Ярусы стандарта
5. Дополнительные варианты
В следующих вариантах, вновь добавленный текст выделен жирным курсивом, а удаляемый текст маркирован посредством “[[ ]]”.
5.1 Вариант 1
Этот раздел показывает пример варианта, в котором представление видео в виде потока битов данных может быть изменено по сравнению с базовым синтаксисом потока битов данных.
5.2 Вариант #2
Этот вариант описывает переменную modeType.
Может быть использована переменная modeType, специфицирующая, могут ли быть использованы режимы кодирования с внутрикадровым прогнозированием, с копированием IBC, режим палитры и режим с межкадровым прогнозированием (MODE_TYPE_ALL), или могут ли быть использованы только режимы кодирования с внутрикадровым прогнозированием, режим палитры, режим с копированием IBC (MODE_TYPE_INTRA), или могут ли быть использованы только режимы кодирования с межкадровым прогнозированием (MODE_TYPE_INTER) для единиц кодирования внутри узла дерева кодирования.
5.3 Вариант #3
Этот вариант описывает синтаксис единицы кодирования. В этом варианте передают в виде сигнализации флаг pred_mode_plt_flag после флага the pred_mode_ibc_flag.
7.3.7.5 Синтаксис единицы кодирования
5.4 Вариант #4
Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_plt_flag передают в виде сигнализации после флага pred_mode_ibc_flag, и флаг pred_mode_plt_flag передают в виде сигнализации только тогда, когда текущий режим прогнозирования представляет собой режим MODE_INTRA.
7.3.7.5 Синтаксис единицы кодирования
5.5 Вариант #5
Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_ibc_flag передают в виде сигнализации после флага pred_mode_plt_flag.
7.3.7.5 Синтаксис единицы кодирования
5.6 Вариант #6
Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_ibc_flag передают в виде сигнализации после флага pred_mode_plt_flag, и флаг pred_mode_plt_flag передают в виде сигнализации только тогда, когда текущий режим прогнозирования представляет собой режим MODE_INTRA.
7.3.7.5 Синтаксис единицы кодирования
5.7 Вариант #7
Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_plt_flag и флаг pred_mode_ibc_flag передают в виде сигнализации, когда режим прогнозирования представляет собой режим MODE_INTRA.
7.3.7.5 Синтаксис единицы кодирования
5.8 Вариант #8
Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_plt_flag и флаг pred_mode_ibc_flag передают в виде сигнализации, когда режим прогнозирования не является режим MODE_INTRA.
7.3.7.5 Синтаксис единицы кодирования
5.9 Вариант #9
Этот вариант описывает синтаксис единицы кодирования. В этом варианте флаг pred_mode_plt_flag и флаг pred_mode_ibc_flag передают в виде сигнализации, когда режим прогнозирования представляет собой режим MODE_INTER.
7.3.7.5 Синтаксис единицы кодирования
5.10 Вариант #10
Этот вариант описывает семантику флага pred_mode_plt_flag.
5.11 Вариант #11
Этот вариант описывает семантику флага pred_mode_plt_flag.
5.12 Вариант #12
Этот вариант описывает определение жесткости границы.
8.8.3.5 Процедура определения жесткости фильтрации границы
Входными данными для этой процедуры являются:
матрица recPicture отсчетов изображения,
позиция ( xCb, yCb ), специфирующая верхний-левый отсчет текущего блока кодирования относительно верхнего-левого отсчета текущего изображения,
переменная nCbW, специфицирующая ширину текущего блока кодирования,
переменная nCbH, специфицирующая высоту текущего блока кодирования,
переменная edgeType, специфицирующая, фильтруют ли вертикальный (EDGE_VER) или горизонтальный (EDGE_HOR) край,
переменная cIdx, специфицирующая цветовую составляющую текущего блока кодирования,
двумерная (nCbW)x(nCbH) матрица edgeFlags.
Выходными данными для этой процедуры является двумерная (nCbW)x(nCbH) матрица bS, специфицирующая жесткость фильтрации границы.
…
Переменную bS[ xDi ][ yDj ] определяют следующим образом:
Если параметр cIdx равен 0 и оба отсчета p0 и q0 находятся в блоке кодирования, для которого флаг intra_bdpcm_flag равен 1, значение bS[ xDi ][ yDj ] устанавливают равным 0.
В противном случае, если отсчет p0 или q0 находится в блоке кодирования из единицы кодирования, которую кодируют в режиме внутрикадрового прогнозирования, параметр bS[ xDi ][ yDj ] устанавливают равным 2.
В противном случае, если край блока является также краем блока преобразования и отсчет p0 или q0 находится в блоке кодирования, для которого флаг ciip_flag равен 1, параметр bS[ xDi ][ yDj ] устанавливают равнм 2.
В противном случае, если край блока является также краем блока преобразования и отсчет p0 или q0 находится в блоке преобразования, содержащем один или несколько ненулевых уровней трансформации, параметр bS[ xDi ][ yDj ] устанавливают равным 1.
В противном случае, если режим прогнозирования субблока кодирования, содержащего отсчет p0, отличается от режима прогнозирования субблока кодирования, содержащего отсчет q0, параметр bS[ xDi ][ yDj ] устанавливают равным 1.
В противном случае, если параметр cIdx равен 0 и одно или несколько из следующих условий являются истинными, параметр bS[ xDi ][ yDj ] устанавливают равным 1:
Оба субблока - субблок кодирования, содержащий отсчет p0, и субблок кодирования, содержащий отсчет q0, кодируют в режиме прогнозирования с копированием IBC, и абсолютная разница между горизонтальными или вертикальными составляющими векторов движения, используемых при прогнозировании этих двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.
Для прогнозирования субблока кодирования, содержащего отсчет p0, используют другие опорные изображения или другое число векторов движения по сравнению с тем, что используется для прогнозирования субблока кодирования, содержащего отсчет q0.
Примечание 1 - Определение, являются ли опорные изображения, используемые для двух субблоков кодирования, одинаковыми или разными, основано только на том, на какие изображения даны ссылки, независимо от того, формируется ли прогнозирование с использованием индекса в список 0 опорных изображений или индекса в список 1 опорных изображений, и независимо от того, являются индексированные позиции в списке опорных изображений различными.
Примечание 2 - Число векторов движения, используемых для прогнозирования субблока кодированимя с верхним-левым отсчетом, покрывающим точку ( xSb, ySb ), равно PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ].
Один вектор движения, используется для прогнозирования субблока кодирования. содержащего отсчет p0, и один вектор движения используется для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальными или вертикальными компонентами используемых векторов движения не меньше 4 в единицах отсчетов яркостной составляющей.
Два вектора движения и два разных опорных изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для тех же самых двух опорных изображений используются для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальными или вертикальными компонентами двух векторов движения, используемых для прогнозирования указанных двух субблоков кодирования для одного и того же опорного изображения не меньше 4 в единицах четвертей отсчетов яркостной составляющей.
Два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет q0, и оба следующих условия являются истинными:
Абсолютная разность между горизонтальными или вертикальными компонентами векторов движения из списка 0, используемых для прогнозирования указанных двух субблоков кодирования, не меньше 4 в единицах четвертей отсчетов яркостной составляющей, или абсолютная разность между горизонтальными или вертикальными компонентами векторов движения из списка 1, используемых для прогнозирования указанных двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.
Абсолютная разность между горизонтальными или вертикальными компонентами вектора движения из списка 0, используемого для прогнозирования субблока кодирования, содержащего отсчет p0, и вектора движения из списка 1, используемого для прогнозирования субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей, или абсолютная разность между горизонтальными или вертикальными компонентами вектора движения из списка 1, используемого для прогнозирования субблока кодирования, содержащего отсчет p0, и вектора движения из списка 0, используемого для прогнозирования субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.
В противном случае, переменную bS[ xDi ][ yDj ] устанавливают равной 0.
5.13a Вариант #13a
Этот вариант описывает определение жесткости границы.
8.8.3.5 Процедура определения жесткости фильтрации границы
Входными данными для этой процедуры являются:
матрица recPicture отсчетов изображения,
позиция ( xCb, yCb ), специфирующая верхний-левый отсчет текущего блока кодирования относительно верхнего-левого отсчета текущего изображения,
переменная nCbW, специфицирующая ширину текущего блока кодирования,
переменная nCbH, специфицирующая высоту текущего блока кодирования,
переменная edgeType, специфицирующая, фильтруют ли вертикальный (EDGE_VER) или горизонтальный (EDGE_HOR) край,
переменная cIdx, специфицирующая цветовую составляющую текущего блока кодирования,
двумерная (nCbW)x(nCbH) матрица edgeFlags.
Выходными данными для этой процедуры является двумерная (nCbW)x(nCbH) матрица bS, специфицирующая жесткость фильтрации границы.
…
Переменную bS[ xDi ][ yDj ] определяют следующим образом:
Если параметр cIdx равен 0 и оба отсчета p0 и q0 находятся в блоке кодирования, для которого флаг intra_bdpcm_flag равен 1, значение bS[ xDi ][ yDj ] устанавливают равным 0.
В противном случае, если отсчет p0 или q0 находится в блоке кодирования из единицы кодирования, которую кодируют в режиме внутрикадрового прогнозирования, параметр bS[ xDi ][ yDj ] устанавливают равным 2.
В противном случае, если край блока является также краем блока преобразования и отсчет p0 или q0 находится в блоке кодирования, для которого флаг ciip_flag равен 1, параметр bS[ xDi ][ yDj ] устанавливают равным 2.
В противном случае, если край блока является также краем блока преобразования и отсчет p0 или q0 находится в блоке преобразования, содержащем один или несколько ненулевых уровней трансформации, параметр bS[ xDi ][ yDj ] устанавливают равным 1.
В противном случае, если режим прогнозирования субблока кодирования, содержащего отсчет p0, отличается от режима прогнозирования субблока кодирования, содержащего отсчет q0, параметр bS[ xDi ][ yDj ] устанавливают равным 1.
В противном случае, если параметр cIdx равен 0 и одно или несколько из следующих условий являются истинными, параметр bS[ xDi ][ yDj ] устанавливают равным 1:
Оба субблока - субблок кодирования, содержащий отсчет p0, и субблок кодирования, содержащий отсчет q0, кодируют в режиме прогнозирования с копированием IBC, и абсолютная разница между горизонтальными или вертикальными компонентами векторов движения, используемых при прогнозировании этих двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.
Для прогнозирования субблока кодирования, содержащего отсчет p0, используют другие опорные изображения или другое число векторов движения по сравнению с тем, что используется для прогнозирования субблока кодирования, содержащего отсчет q0.
Примечание 1 - Определение, являются ли опорные изображения, используемые для двух субблоков кодирования, одинаковыми или разными, основано только на том, на какие изображения даны ссылки, независимо от того, формируется ли прогнозирование с использованием индекса в список 0 опорных изображений или индекса в список 1 опорных изображений, и также независимо от того, являются индексированные позиции в списке опорных изображений различными.
Примечание 2 - Число векторов движения, используемых для прогнозирования субблока кодированимя с верхним-левым отсчетом, покрывающим точку ( xSb, ySb ), равно PredFlagL0[ xSb ][ ySb ] + PredFlagL1[ xSb ][ ySb ].
Один вектор движения, используется для прогнозирования субблока кодирования. содержащего отсчет p0, и один вектор движения используется для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальными или вертикальными компонентами используемых векторов движения не меньше 4 в единицах отсчетов яркостной составляющей.
Два вектора движения и два разных опорных изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для тех же самых двух опорных изображений используются для прогнозирования субблока кодирования, содержащего отсчет q0, и абсолютная разность между горизонтальными или вертикальными составляющими двух векторов движения, используемых для прогнозирования указанных двух субблоков кодирования для одного и того же опорного изображения не меньше 4 в единицах четвертей отсчетов яркостной составляющей.
Два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет p0, два вектора движения для одного и того же опорного изображения используются для прогнозирования субблока кодирования, содержащего отсчет q0, и оба следующих условия являются истинными:
Абсолютная разность между горизонтальными или вертикальными компонентами векторов движения из списка 0, используемых для прогнозирования указанных двух субблоков кодирования, не меньше 4 в единицах четвертей отсчетов яркостной составляющей, или абсолютная разность между горизонтальными или вертикальными компонентами векторов движения из списка 1, используемых для прогнозирования указанных двух субблоков кодирования, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.
Абсолютная разность между горизонтальными или вертикальными составляющими вектора движения из списка 0, используемого для прогнозирования субблока кодирования, содержащего отсчет p0, и вектора движения из списка 1, используемого для прогнозирования субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей, или абсолютная разность между горизонтальными или вертикальными компонентами вектора движения из списка 1, используемого для прогнозирования субблока кодирования, содержащего отсчет p0, и вектора движения из списка 0, используемого для прогнозирования субблока кодирования, содержащего отсчет q0, не меньше 4 в четвертях единицы измерения отсчетов яркостной составляющей.
В противном случае, переменную bS[ xDi ][ yDj ] устанавливают равной 0.
5.13b Вариант #13b
Этот вариант описывает кодирование и реконструкцию выпадающих отсчетов.
[[Список levelScale[ ] специфицирован как levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } при k = 0..5.]]
Применяется следующее:
[[tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] * levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6 (8-77)
recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal ) (8-78)]]
5.14 Вариант #14
8.4.5.3 Процедура декодирования для режима палитры
Входными данными для этой процедуры являются:
- позиция ( xCb, yCb ), специфицирующая верхний-левый отсчет яркостной составляющей текущего блока относительно верхнего-левого отсчета текущего изображения,
- переменная startComp специфицирующая первую цветовую составляющую в таблице палитры,
- переменная cIdx, специфицирующая цветовую составляющую текущего блока,
- две переменные nCbW и nCbH, специфицирующие ширину и высоту текущего блока, соответственно.
Выходными данными процедуры является матрица recSamples[ x ][ y ], при x = 0.. nCbW - 1, y = 0.. nCbH - 1, специфицирующая реконструированные значения отсчетов блока.
В зависимости от значения переменной cIdx, переменные nSubWidth и nSubHeight определяют следующим образом:
- Если переменная cIdx равна 0, переменную nSubWidth устанавливают равной 1, и переменную nSubHeight устанавливают равной 1.
- В противном случае, переменную nSubWidth устанавливают равной SubWidthC и переменную nSubHeight устанавливают равной SubHeightC.
Блок ( nCbW x nCbH ) матрицы recSamples реконструированных отсчетов в позиции ( xCb, yCb ) представлен recSamples[ x ][ y ] при x = 0..nCTbW - 1 и y = 0..nCbH - 1, и значение recSamples[ x ][ y ] для каждого x в диапазоне от 0 до nCbW - 1, включительно, и каждого y в диапазоне от 0 до nCbH - 1, включительно, определяют следующим образом:
- Переменные xL и yL определяют следующим образом:
xL = palette_transpose_flag ? x * nSubHeight : x * nSubWidth (8-234)
yL = palette_transpose_flag ? y * nSubWidth : y * nSubHeight (8-235)
- Переменную bIsEscapeSample определяют следующим образом:
- Если PaletteIndexMap[ xCb + xL ][ yCb + yL ] равно MaxPaletteIndex и флаг palette_escape_val_present_flag равен 1, параметр bIsEscapeSample устанавливают равным 1.
- В противном случае, параметр bIsEscapeSample устанавливают равным 0.
- Если параметр bIsEscapeSample равен 0, применяется следующее:
recSamples[ x ][ y ] = CurrentPaletteEntries[ cIdx ][ PaletteIndexMap[ xCb + xL ][ yCb + yL ] ] (8-236)
- В противном случае, если флаг cu_transquant_bypass_flag равен 1, применяется следующее:
recSamples[ x ][ y ] = PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] (8-237)
- В противном случае (параметр bIsEscapeSample равен 1 и флаг cu_transquant_bypass_flag равен 0), применяются следующие упорядоченные этапы:
1. Процедуру определения параметров квантования, как это специфицировано в статье 8.7.1, привлекают с позиции ( xCb, yCb ), специфицирующей верхний-левый отсчет текущего блока относительно верхнего-левого отсчета текущего изображения.
[Ed. (BB): параметры QP уже определены в начале процедуры декодирования единицы CU, кодированной с применением внутрикадрового прогнозирования, так что нет необходимости определять их снова в этой подстатье. Хотя это похоже на стандарт кодирования HEVC v4 SCC, я думаю, что эту избыточность можно устранить. Пожалуйста подтвердите. ]
QpPrimeTsMin = 4 + min_qp_prime_ts_ minus4
3. Переменную bitDepth определяют следующим образом:
bitDepth = ( cIdx = = 0 ) ? BitDepthY : BitDepthC (8-241)
4. Список levelScale[ ] специфицирован как levelScale[ k ] = { 40, 45, 51, 57, 64, 72 } при k = 0..5.
[Ed. (BB): Для единиц CU, кодируемых не в режиме палитры, параметр levelScale зависит от rectNonTsFlag, это должно быть применено здесь тоже?]
5. Применяется следующее:
tmpVal = ( PaletteEscapeVal[ cIdx ][ xCb + xL ][ yCb + yL ] * levelScale[ qP%6 ] ) << ( qP / 6 ) + 32 ) >> 6 (8-242)
recSamples[ x ][ y ] = Clip3( 0, ( 1 << bitDepth ) - 1, tmpVal ) (8-243)
Когда одно из следующих условий является истинным:
- переменная cIdx равна 0 и параметр numComps равен 1;
- переменная cIdx равна 3;
переменную PredictorPaletteSize[startComp] и матрицу PredictorPaletteEntries определяют или модифицируют следующим образом:
for( i = 0; i < CurrentPaletteSize[ startComp ]; i++ ) for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ ) newPredictorPaletteEntries[ cIdx ][ i ] = CurrentPaletteEntries[ cIdx ][ i ]newPredictorPaletteSize = CurrentPaletteSize[ startComp ]for( i = 0; i < PredictorPaletteSize && newPredictorPaletteSize < PaletteMaxPredictorSize; i++ ) if( !PalettePredictorEntryReuseFlags[ i ] ) { for( cIdx = startComp; cIdx < (startComp + numComps); cIdx++ ) (8-244) newPredictorPaletteEntries[ cIdx ][ newPredictorPaletteSize ] = PredictorPaletteEntries[ cIdx ][ i ] newPredictorPaletteSize++ }for( cIdx = startComp; cIdx < ( startComp + numComps ); cIdx++ ) for( i = 0; i < newPredictorPaletteSize; i++ ) PredictorPaletteEntries[ cIdx ][ i ] = newPredictorPaletteEntries[ cIdx ][ i ]PredictorPaletteSize[ startComp ] = newPredictorPaletteSize
Требование соответствия потоков битов данных состоит в том, что значение PredictorPaletteSize[ startComp ] должно быть в диапазоне от 0 до PaletteMaxPredictorSize, включительно.
5.15 Вариант # 15
8.4.2 Процедура определения режима внутрикадрового прогнозирования для яркостной составляющей
…
- В противном случае (и skip_intra_flag[ xPb ][ yPb ], и DimFlag[ xPb ][ yPb ] равны 0), параметр IntraPredModeY[ xPb ][ yPb ] определяют посредством следующих упорядоченных этапов:
1. Соседние позиции ( xNbA, yNbA ) и ( xNbB, yNbB ) устанавливают равными ( xPb - 1, yPb ) и ( xPb, yPb - 1 ), соответственно.
2. Для X, заменяемого на A или B, переменные candIntraPredModeX определяют следующим образом:
- Процедуру определения доступности для блока в порядке z-сканирования, как это специфицировано в статье 6.4.1, привлекают, при позиции ( xCurr, yCurr ), установленной равной ( xPb, yPb ), и соседней позиции ( xNbY, yNbY ), установленной равной ( xNbX, yNbX ), в качестве входных данных, и выходные данные назначают переменной availableX.
- Режим-кандидат внутрикадрового прогнозирования candIntraPredModeX определяют следующим образом:
- Если переменная availableX равна FALSE, candIntraPredModeX устанавливают равным INTRA_DC.
[[- В противном случае, если CuPredMode[ xNbX ][ yNbX ] не равно MODE_INTRA или pcm_flag[ xNbX ][ yNbX ] равно 1 или , candIntraPredModeX устанавливают равным INTRA_DC, ]]
- В противном случае, если X равно B и yPb - 1 меньше чем ( ( yPb >> CtbLog2SizeY ) << CtbLog2SizeY ), candIntraPredModeB устанавливают равным INTRA_DC.
- В противном случае, если IntraPredModeY[ xNbX ][ yNbX ] больше чем 34, candIntraPredModeX устанавливают равным INTRA_DC.
…
5.16 Вариант #16
8.4.2 Процедура определения режима внутрикадрового прогнозирования для яркостной составляющей
Входными данными для этой процедуры являются:
- позиция ( xCb , yCb ) яркостной составляющей, специфицирующая верхний-левый отсчет текущего блока кодирования яркостной составляющей относительно верхнего-левого отсчета яркостной составляющей текущего изображения,
- переменная cbWidth, специфицирующая ширину текущего блока кодирования в яркостных отсчетах,
- переменная cbHeight, специфицирующая высоту текущего блока кодирования в яркостных отсчетах.
В этой процедуре определяют режим IntraPredModeY[ xCb ][ yCb ] внутрикадрового прогнозирования для яркостных отсчетов.
1. Для X, заменяемого на A или B, переменные candIntraPredModeX определяют следующим образом:
- Режим-кандидат внутрикадрового прогнозирования candIntraPredModeX определяют следующим образом:
- Если одно или несколько следующих условий являются истинными, candIntraPredModeX устанавливают равным INTRA_PLANAR.
- Переменная availableX равна FALSE.
- CuPredMode[ xNbX ][ yNbX ] не равно MODE_INTRA.
- intra_mip_flag[ xNbX ][ yNbX ] равно 1.
- X равно B и yCb - 1 меньше чем ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY ).
- В противном случае, candIntraPredModeX устанавливают равным IntraPredModeY[ xNbX ][ yNbX ].
…
Переменную IntraPredModeY[ x ][ y ] при x = xCb..xCb + cbWidth - 1 и y = yCb..yCb + cbHeight - 1 устанавливают равной IntraPredModeY[ xCb ][ yCb ].
5.17 Вариант #17
8.4.3 Процедура определения режима внутрикадрового прогнозирования для яркостной составляющей
Входными данными для этой процедуры являются:
- позиция ( xCb , yCb ) яркостной составляющей, специфицирующая верхний-левый отсчет текущего блока кодирования яркостной составляющей относительно верхнего-левого отсчета яркостной составляющей в текущем изображении,
- переменная cbWidth, специфицирующая ширину текущего блока кодирования в отсчетах яркостной составляющей,
- переменная cbHeight, специфицирующая высоту текущего блока кодирования в отсчетах яркостной составляющей.
В этой процедуре определяют режим IntraPredModeY[ xCb ][ yCb ] внутрикадрового прогнозирования яркостной составляющей.
1. Для X, заменяемого на A или B, переменные candIntraPredModeX определяют следующим образом:
- Процедуру определения доступности для блока, как это специфицировано в статье 6.4.X, [Ed. (BB): Процедура проверки доступности соседних блоков еще должна быть разработана] привлекают при позиции ( xCurr, yCurr ), установленной равной ( xCb, yCb ), и соседней позиции ( xNbY, yNbY ), установленной равной ( xNbX, yNbX ) в качестве входных данных, и выходные данные назначают переменной availableX.
- Режим-кандидат внутрикадрового прогнозирования candIntraPredModeX определяют следующим образом:
- Если одно или несколько следующих условий являются истинными, candIntraPredModeX устанавливают равным [[INTRA_PLANAR]] INTRA_DC.
- Переменная availableX равна FALSE.
- CuPredMode[ xNbX ][ yNbX ] не равно MODE_INTRA.
- Флаг intra_mip_flag[ xNbX ][ yNbX ] равен 1.
- X равно B и yCb - 1 меньше чем ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY ).
- В противном случае, candIntraPredModeX устанавливают равным IntraPredModeY[ xNbX ][ yNbX ].
…
Переменную IntraPredModeY[ x ][ y ] при x = xCb..xCb + cbWidth - 1 и y = yCb..yCb + cbHeight - 1 устанавливают равной IntraPredModeY[ xCb ][ yCb ].
5.18 Вариант #18
8.4.3 Процедура определения режима внутрикадрового прогнозирования для яркостной составляющей
Входными данными для этой процедуры являются:
- позиция ( xCb , yCb ) яркостной составляющей, специфицирующая верхний-левый отсчет текущего блока кодирования яркостной составляющей относительно верхнего-левого отсчета яркостной составляющей в текущем изображении,
- переменная cbWidth, специфицирующая ширину текущего блока кодирования в отсчетах яркостной составляющей,
- переменная cbHeight, специфицирующая высоту текущего блока кодирования в отсчетах яркостной составляющей.
- В этой процедуре определяют режим IntraPredModeY[ xCb ][ yCb ] внутрикадрового прогнозирования яркостной составляющей.
- 1. Для X, заменяемого на A или B, переменные candIntraPredModeX определяют следующим образом:
- Режим-кандидат внутрикадрового прогнозирования candIntraPredModeX определяют следующим образом:
- Если одно или несколько следующих условий являются истинными, candIntraPredModeX устанавливают равным [[INTRA_PLANAR]] INTRA_DC.
- Переменная availableX равна FALSE.
- CuPredMode[ xNbX ][ yNbX ] не равно MODE_INTRA.
- Флаг intra_mip_flag[ xNbX ][ yNbX ] равен 1.
- X равно B и yCb - 1 меньше чем ( ( yCb >> CtbLog2SizeY ) << CtbLog2SizeY ).
- В противном случае, candIntraPredModeX устанавливают равным IntraPredModeY[ xNbX ][ yNbX ].
…
Переменную IntraPredModeY[ x ][ y ] при x = xCb..xCb + cbWidth - 1 и y = yCb..yCb + cbHeight - 1 устанавливают равной IntraPredModeY[ xCb ][ yCb ].
5.19 Вариант #19
5.20 Вариант #20
5.21 Вариант #21
5.22 Вариант #22
Этот вариант описывает синтаксис единицы кодирования. В этом вариантие флаг pred_mode_plt_flag передают в виде сигнализации после флага pred_mode_ibc_flag. Вновь добавленный текст выделен жирным курсивом, а удаленный текст маркируют “[[ ]]”.
7.3.7.5 Синтаксис единицы кодирования
5.23 Вариант #23
5.24 Вариант #24
Этот вариант описывает синтаксис единицы кодирования. В этом варианте, флаг pred_mode_plt_flag передают в виде сигнализации после флага pred_mode_ibc_flag.
7.3.7.5 Синтаксис единицы кодирования
5.25 Вариант #25
Этот вариант описывает синтаксис единицы кодирования. В этом варианте, синтаксис палитры передают в виде сигнализации, если текущий режим прогнозирования прендставляет собой режим MODE_PLT.
7.3.7.5 Синтаксис единицы кодирования
5.26 Вариант #26
Этот вариант описывает процедуру определения режима внутрикадрового прогнозирования для цветностной составляющей.
Процедура определения режима внутрикадрового прогнозирования для цветностной составляющей
Входными данными для этой процедуры являются:
- позиция ( xCb, yCb ) яркостной составляющей, специфицирующая верхний-левый отсчет текущего блока кодирования цветностной составляющей относительно верхнего-левого отсчета яркостной составляющей в текущем изображении,
- переменная cbWidth, специфицирующая ширину текущего блока кодирования в отсчетах яркостной составляющей,
- переменная cbHeight, специфицирующая высоту текущего блока кодирования в отсчетах яркостной составляющей.
В этой процедуре определяют режим IntraPredModeC[ xCb ][ yCb ] внутрикадрового прогнозирования цветностной составляющей.
Соответствующий режим lumaIntraPredMode внутрикадрового прогнозирования яркостной составляющей определяют следующим образом:
- Если флаг intra_mip_flag[ xCb ][ yCb ] равен 1, параметр lumaIntraPredMode устанавливают равным INTRA_PLANAR.
- В противном случае, если параметр CuPredMode[ 0 ][ xCb ][ yCb ] равен MODE_IBC или MODE_PLT, параметр lumaIntraPredMode устанавливают равным INTRA_DC.
- В противном случае, параметр lumaIntraPredMode устанавливают равным IntraPredModeY[ xCb + cbWidth / 2 ][ yCb + cbHeight / 2 ].
…
5.27 Вариант #27
Этот вариант описывает процедуру реконструкции изображения с процедурой отображения для отсчетов яркостной составляющей.
Реконструкция изображения с процедурой отображения яркостной составляющей. Входными данными для этой процедуры являются:
- позиция ( xCurr, yCurr ) верхнего левого отсчета текущего блока относительно верхнего левого отсчета текущего изобрпажения,
- переменная nCurrSw, специфицирующая ширину блока,
- переменная nCurrSh, специфицирующая высоту блока,
- матрица (nCurrSw)x(nCurrSh) отсчетов predSamples, специфицирующая прогнозируемые отсчеты яркостной составляющей для текущего блока,
- матрица (nCurrSw)x(nCurrSh) отсчетов resSamples, специфицирующая отсчеты остатков яркостной составляющей для текущего блока.
Выходные данные этой процедуры представляют собой матрицу реконструированных отсчетов recSamples яркостной составляющей изображения.
Матрицу (nCurrSw)x(nCurrSh) отображенных прогнозируемых отсчетов predMapSamples яркостной составляющей определяют следующим образом:
- Если одно из следующих условий является истинным, отсчеты predMapSamples[ i ][ j ] устанавливают равными predSamples[ i ][ j ] для i = 0..nCurrSw - 1, j = 0..nCurrSh - 1:
- переменная CuPredMode[ 0 ][ xCurr ][ yCurr ] равна MODE_INTRA.
- переменная CuPredMode[ 0 ][ xCurr ][ yCurr ] равна MODE_IBC.
- переменная CuPredMode[ 0 ][ xCurr ][ yCurr ] равна MODE_INTER и флаг ciip_flag[ xCurr ][ yCurr ] равна 1.
- В противном случае параметр (CuPredMode[ 0 ][ xCurr ][ yCurr ] равен MODE_INTER и флаг ciip_flag[ xCurr ][ yCurr ] равен 0), применяется следующим:
…
5.28 Вариант #28
Этот вариант описывает пример порядков сканирования, соответствующих разделу 24 в Разделе 4.
Входными данными для этой процедуры являются ширина blkWidth блока и высота blkHeight блока.
Выходными данными этой процедуры являются матрицы hReverScan[ sPos ][ sComp ] и vReverScan[ sPos ][ sComp ]. Матрица hReverScan представляет горизонтальный обратный порядок сканирования, и матрица vReverScan представляет вертикальный обратный порядок сканирования. Индекс sPos матрицы специфицирует позицию сканирования в пределах от 0 до ( blkWidth * blkHeight ) - 1, включительно. Индекс sComp матрицы, равный 0, специфицирует горизонтальную составляющую, и индекс sComp матрицы, равный 1, специфицирует вертикальную составляющую. В зависимости от значения blkWidth и blkHeight, матрицы hTravScan и vTravScan определяют следующим образом:
i = 0for(y = 0; y < blkHeight; y++ )
{ if( y % 2 != 0 ) { for( x = 0; x < blkWidth; x++ ) { hReverScan[ i ][ 0 ] = x hReverScan [ i ][ 1 ] = y i++ }
} else
{
for( x = blkWidth - 1; x >= 0; x- - ) { hReverScan [ i ][ 0 ] = x hReverScan [ i ][ 1 ] = y i++ }
}
}
i = 0for( x = 0; x < blkWidth; x++ )
{ if( x % 2 != 0 )
{ for( y = 0; y < blkHeight; y++ ) { vReverScan[ i ][ 0 ] = x vReverScan [ i ][ 1 ] = y i++ }
} else
{
for( y = blkHeight - 1; y >= 0; y- - ) { vReverScan [ i ][ 0 ] = x vReverScan [ i ][ 1 ] = y i++ }
}
}
На фиг. 6 представлена блок-схема устройства 600 для обработки видео. Устройство 600 может быть использовано для реализации одного или нескольких описываемых здесь способов. Устройство 600 может быть реализовано в виде смартфона, планшета, компьютера, приемник Интернета вещей (Internet of Things (IoT)) и т.д. Устройство 600 может содержать один или несколько процессоров 602, одно или несколько запоминающих устройств 604 и аппаратуру 606 обработки видео. Процессор (ы) 602 может быть конфигурирован для реализации одного или нескольких способов, описываемых в настоящем документе. Запоминающее устройство (устройства) 604 могут быть использованы для сохранения данных и кода, применяемых для реализации способов и технологий, описываемых здесь. Аппаратура 606 для обработки видео может быть использована для реализации, в аппаратной схеме, некоторых технологий, описываемых в настоящем документе.
На фиг. 8 представлена логическая схема для способа 800 обработки видео. Этот способ 800 содержит определение (805), что следует использовать режим палитры для обработки единицы преобразования, блока кодирования или области, применение режима палитры кодируют отдельно от режима прогнозирования, и осуществление (810) дальнейшей обработки единицы преобразования, блока кодирования или области с использованием режима палитры.
Что касается способа 800, некоторые примеры кодирования в режиме палитры и его использования описаны в Разделе 4 настоящего документа.
Что касается способа 800, блок видео может быть кодирован в потоке битов данных видео, в котором битовая эффективность может быть достигнута с использованием правила генерации потока битов данных, относящегося к кодированию в режиме палитры.
Предлагаемые способы могут содержать вариант, в котором указание режима прогнозирования кодируют прежде индикации использования режима палитры.
Предлагаемые способы могут содержать вариант, в котором об использовании режима палитры сообщают условно в виде сигнализации на основе режима прогнозирования.
Предлагаемые способы могут содержать вариант, в котором режим прогнозирования представляет собой режим внутрикадрового копирования блоков, и передачу сигнализации с индикацией использования режима палитры пропускают.
Предлагаемые способы могут содержать вариант, в котором определяют, что индикация использования режима палитры является ложной (false) на основе того, что текущий режим прогнозирования является режимом внутрикадрового копирования блоков.
Предлагаемые способы могут содержать вариант, в котором режим прогнозирования является режимом межкадрового прогнозирования и передачу сигнализации с индикацией использования режима палитры пропускают.
Предлагаемые способы могут содержать вариант, в котором определяют, что индикация использования режима палитры является ложной (false), на основе того, что текущий режим прогнозирования является режимом межкадрового прогнозирования.
Предлагаемые способы могут содержать вариант, в котором режим прогнозирования является режимом внутрикадрового прогнозирования, и передачу сигнализации с индикацией использования режима палитры пропускают.
Предлагаемые способы могут содержать вариант, в котором определяют, что индикация использования режима палитры является ложной (false), на основе того, что текущий режим прогнозирования является режимом внутрикадрового прогнозирования.
Предлагаемые способы могут содержать вариант, в котором режим прогнозирования является режимом внутрикадрового прогнозирования, и передачу сигнализации с индикацией использования режима палитры пропускают.
Предлагаемые способы могут содержать вариант, в котором режим прогнозирования является режимом внутрикадрового копирования блоков, и осуществляют передачу сигнализации с индикацией использования режима палитры.
Предлагаемые способы могут содержать вариант, в котором индикацию использования режима палитры передают в виде сигнализации на основе изображения, среза или типа группы плиток.
Предлагаемые способы могут содержать вариант, в котором режим палитры добавляют в качестве кандидата на роль режима прогнозирования.
Предлагаемые способы могут содержать вариант, в котором совокупность режимов прогнозирования может содержать один или несколько режимов из следующего списка: режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков или режимы палитры для срезов с внутрикадровым прогнозированием, срезов с межкадровым прогнозированием, I-кадров, P-кадров, B-кадров или групп плиток с внутрикадровым прогнозированием.
Предлагаемые способы могут содержать вариант, в котором совокупность режимов прогнозирования содержит два или более режимов из следующего списка: режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, режим внутрикадрового копирования блоков или режим палитры.
Предлагаемые способы могут содержать вариант, в котором использование режима палитры обозначают посредством сигнализации или определяют на основе некоторого условия.
Предлагаемые способы могут содержать вариант, в котором указанное условие может представлять собой одну или несколько позиций из следующего списка: размеры текущего блока, режим прогнозирования для текущего блока, параметр квантования (QP) для текущего блока, флаг режима палитры для соседних блоков, флаг режима внутрикадрового копирования для соседних блоков, индикация цветового формата, раздельная или сдвоенная структура дерева кодирования, либо тип среза, или тип группы или тип изображения.
Предлагаемые способы могут содержать вариант, в котором указание использования режима палитры сообщают в виде сигнализации или определяют на основе флага на уровне среза, флага на уровне группы плиток или флага на уровне изображения.
Предлагаемые способы могут содержать вариант, в котором индикацию использования режима внутрикадрового копирования блоков передают в виде сигнализации или определяют на основе флага на уровне среза, флага на уровне группы плиток или флага на уровне изображения.
С учетом позиций 6-9, описываемых в предыдущем разделе, некоторые варианты могут предпочтительно использовать следующие технические решения.
Одно техническое решение может содержать способ обработки видео, содержащий осуществление преобразования между текущим видеоблоком из одного изображения видео и представлением рассматриваемого видео в виде потока битов данных, где информацию о том, используется ли для этого преобразования режим внутрикадрового копирования блоков, передают в виде сигнализации в составе представления в виде потока битов данных или определяют на основе условия кодирования текущего видеоблока; где режим внутрикадрового копирования блоков содержит кодирование текущего видеоблока от другого видеоблока в изображении. В различных вариантах могут быть реализованы следующие признаки
- где указанное условие кодирования содержит размеры текущего видеоблока.
- где указанное условие кодирования содержит режим прогнозирования для текущего видеоблока или параметр квантования, используемые при преобразовании для текущего видеоблока.
С учетом позиций 13-15, описываемых в предыдущем разделе, некоторые варианты могут предпочтительно реализовывать следующие технические решения.
Техническое решение может содержать способ определения, следует ли применять деблокирующий фильтр в процессе преобразования текущего видеоблока из одного изображения видео, где текущий видеоблок кодируют с использованием кодирования в режиме палитры, в котором текущий видеоблок представлен с использованием значений репрезентативных отсчетов, число каковых меньше общего числа пикселей в текущем видеоблоке; и осуществление преобразования с применением деблокирующего фильтра в случае, когда результат указанного определения показывает, что следует применить деблокирующий фильтр.
Другое техническое решение может содержать способ обработки видео, предусматривающий определение процедуры квантования или процедуры обратного квантования для использования в процессе преобразования между текущим видеоблоком из одного изображения видео и представлением рассматриваемого видео в виде потока битов данных, где текущий видеоблок кодируют с использованием кодирования в режиме палитры, в котором текущий видеоблок представляют с использованием значений репрезентативных отсчетов, число каковых меньше общего числа пикселей текущего видеоблока; и осуществления преобразования на основе указанного определения процедуры квантования или процедуры обратного квантования. Совокупность дополнительных признаков может содержать:
- где процедура квантования или процедура обратного квантования, выбранная путем указанного определения для текущего видеоблока, отличается от другой процедуры квантования или от другой процедуры обратного квантования, применяемой к другому видеоблоку, кодируемому способом, отличным от кодирования в режиме палитры.
- где процедура преобразования содержит кодирование текущего видеоблока и превращение его в представление в виде потока битов данных.
- где процедура преобразования содержит декодирование представления в виде потока битов данных для генерации текущего видеоблока рассматриваемого видео.
- где процедура преобразования использует процедуру принятия решения, идентичную другой процедуре принятия решения, используемой для преобразования другого видеоблока, кодированного с применением внутрикадрового прогнозирования.
Следует понимать, что описываемые технологии могут быть реализованы в кодирующих устройствах видео или в декодирующих устройствах видео для повышения эффективности сжатия с использованием усовершенствованных структур дерева кодирования.
С учетом позиций 16-21 в предыдущем разделе, некоторые технические решения могут быть следующими:
Способ обработки видео, содержащий: определение, для преобразования между текущим видеоблоком видео, содержащего множество видеоблоков, и представлением этого видео в виде потока битов данных, что текущий видеоблок представляет собой блок, кодируемый в режиме кодирования палитры; на основе указанного определения, осуществление процедуры построения списка наиболее вероятных режимов путем рассмотрения текущего видеоблока в качестве блока, кодируемого с использованием внутрикадрового прогнозирования, и осуществление преобразования на основе результата процедуры построения списка; где блок, кодируемый в режиме кодирования палитры, кодируют или декодируют с использованием палитры или значений репрезентативных отсчетов.
Приведенный выше способ, где процедура построения списка рассматривает соседний блок, кодируемый в режиме палитры, в качестве блока с внутрикадровым прогнозированием в режиме по умолчанию.
Способ обработки видео, содержащий: определение, для преобразования между текущим видеоблоком видео, содержащего множество видеоблоков, и представлением этого видео в виде потока битов данных, что текущий видеоблок представляет собой блок, кодируемый в режиме кодирования палитры; на основе указанного определения, осуществление процедуры построения списка наиболее вероятных режимов путем рассмотрения текущего видеоблока в качестве блока, кодируемого не с использованием внутрикадрового прогнозирования, и осуществление преобразования на основе результата процедуры построения списка; где блок, кодируемый в режиме кодирования палитры, кодируют или декодируют с использованием палитры или значений репрезентативных отсчетов.
Приведенный выше способ, в котором процедура построения списка рассматривает соседний блок, кодируемый в режиме палитры, в качестве блока, кодируемого с применением внутрикадрового прогнозирования, при выборке режима внутрикадрового прогнозирования для соседнего блока, кодируемого в режиме кодирования палитры.
Способ обработки видео, содержащий: определение, для преобразования между текущим видеоблоком видео, содержащего множество видеоблоков, и представлением этого видео в виде потока битов данных, что текущий видеоблок представляет собой блок, кодируемый в режиме кодирования палитры; на основе указанного определения, осуществление процедуры построения списка путем рассмотрения текущего видеоблока в качестве недоступного блока, и осуществление преобразования на основе результата процедуры построения списка; где блок, кодируемый в режиме кодирования палитры, кодируют или декодируют с использованием палитры или значений репрезентативных отсчетов.
Приведенный выше способ, где процедура построения списка предназначена для прогнозирования вектора движения на основе предыстории.
Приведенный выше способ, где процедура построения списка применяется для режима с объединением (MERGE) или усовершенствованного режима прогнозирования вектора движения.
Приведенные выше способы, где процедура определения далее содержит определение на основе контента видео.
Приведенные выше способы, где процедура определения соответствует полю в представлении в виде потока битов данных.
Способ обработки видео, содержащий: определение, в ходе преобразования между текущим видеоблоком и представлением этого текущего видеоблока в виде потока битов данных, что текущий видеоблок представляет собой блок, кодируемый в режиме кодирования палитры, определение, на основе того, что текущий видеоблок является блоком, кодируемым в режиме кодирования палитры, диапазона секций (разрядов) с контекстно-зависимым кодированием, используемых для преобразования; и осуществление преобразования на основе этого диапазона секций (разрядов) с контекстно-зависимым кодированием.
Приведенный выше способ, где секции (разряды) текущего видеоблока, попадающие вне этого диапазона, кодируют с применением способа кодирования в режиме обхода или декодируют с использованием способа декодирования в режиме обхода в процессе преобразования
Приведенные выше способы, где процедура преобразования содержит кодирование видео с преобразованием его в представление в виде потока битов данных.
Приведенные выше способы, где процедура преобразования содержит декодирование представления в виде потока битов данных для генерации видео.
На фиг. 24 представлена блок-схема, показывающая пример системы 2400 обработки видео, в которой могут быть реализованы разнообразные описываемые здесь способы. Разнообразные варианты реализации могут содержать некоторые или все компоненты системы 2400. Система 2400 может содержать вход 2402 для приема видео контента. Этот видео контент может быть принят в исходном или несжатом формате, 8 или 10-битовые значения многокомпонентных пикселей, либо может быть в сжатом или в кодированном формате. Этот вход 2402 может представлять собой сетевой интерфейс, интерфейс шины периферийных устройств или интерфейс запоминающих устройств. К примерам сетевых интерфейсов относятся проводные интерфейсы шин, такие Этернет, пассивная оптическая сеть (passive optical network (PON)) и т.п., и беспроводные интерфейсы, такие как Wi-Fi или сотовые интерфейсы.
Система 2400 может содержать кодирующий компонент 2404, способный реализовать различные способы кодирования, описываемые в настоящем документе. Кодирующий компонент 2404 может уменьшить среднюю скорость передачи битов данных видео от входа 2402 к выходу кодирующего компонента 2404 для получения кодированного представления видео. Поэтому, эти способы кодирования иногда называют способами сжатия видео или транскодирования видео. Выходные данные кодирующего компонента 2404 могут быть либо сохранены, либо переданы через присоединенные средства связи, представленные здесь компонентом 2406. Сохраняемое или передаваемое (или кодированное) представление видео в виде потока битов данных, принимаемое на вход 2402, может быть использовано компонентом 2408 для генерации значений пикселей или представляемого на дисплее видео, передаваемого интерфейсу 2410 дисплея. Процедура генерации просматриваемого пользователем видео из его представления в виде потока битов данных иногда называется декомпрессией (расширением) видео. Кроме того, хотя некоторые операции обработки видео называются операциями или инструментами «кодирования», следует понимать, что инструменты или операции кодирования используются в кодирующих устройствах и соответствующие инструменты или операции декодирования, которые обращают результаты кодирования, будут осуществляться декодирующим устройством.
Примеры интерфейса шины периферийных устройств или интерфейса дисплея могут представлять собой универсальную последовательную шину (universal serial bus (USB)) или мультимедийный интерфейс высокой четкости (high definition multimedia interface (HDMI)) или Displayport, и т.д. К примерам интерфейса запоминающих устройств относятся интерфейс усовершенствованного последовательного соединения (SATA (serial advanced technology attachment)), интерфейс периферийных устройств (PCI), интерфейс IDE и другие подобные интерфейсы. Способы, описываемые в настоящем документе, могут быть реализованы в разнообразных электронных устройствах, таких как мобильные телефоны, портативные компьютеры, смартфоны или другие устройства, способные осуществлять цифровую обработку данных и/или представлять видео на дисплее.
На фиг. 25 представлена логическая схема способа 2500 обработки видео в соответствии с предлагаемой технологией. Способ 2500 содержит, в ходе операции 2510, осуществление преобразования между блоком видеообласти видео и представлением этого видео в виде потока битов данных. Это представление в виде потока битов данных обрабатывают согласно первому правилу форматирования, специфицирующему, передавать ли в виде сигнализации первую индикацию использования режима палитры для блока, и второму правилу форматирования, специфицирующему позицию первой индикации относительно второй индикации использования режима прогнозирования для этого блока.
В некоторых вариантах, видеообласть содержит единицу преобразования, единицу кодирования, единицу прогнозирования или область видео. В некоторых вариантах, вторая индикация использования режима прогнозирования расположена в представлении видео в виде потока битов данных прежде первой индикации использования режима палитры.
В некоторых вариантах, первую индикацию использования режима палитры условно включают в представление видео в виде потока битов данных на основе второй индикации использования режима прогнозирования. В некоторых вариантах, первую индикацию использования режима палитры пропускают в представлении видео в виде потока битов данных, если вторая индикация использования режима прогнозирования обозначает режим прогнозирования с применением внутрикадрового копирования блоков (IBC). В некоторых вариантах, первую индикацию использования режима палитры пропускают в представлении видео в виде потока битов данных, если вторая индикация использования режима прогнозирования обозначает режим межкадрового прогнозирования. В некоторых вариантах, первую индикацию использования режима палитры пропускают в представлении видео в виде потока битов данных, если вторая индикация использования режима прогнозирования обозначает режим внутрикадрового прогнозирования. В некоторых вариантах, первую индикацию использования режима палитры пропускают в представлении видео в виде потока битов данных, если вторая индикация использования режима прогнозирования обозначает режим пропуска. В некоторых вариантах, пропуск первой индикации использования режима палитры в представлении видео в виде потока битов данных означает, что режим палитры не используется.
В некоторых вариантах, первую индикацию использования режима палитры кодируют с преобразованием в поток битов данных, если вторая индикация использования режима прогнозирования обозначает режим прогнозирования с копированием IBC. В некоторых вариантах, первую индикацию использования режима палитры кодируют с преобразованием в поток битов данных, если вторая индикация использования режима прогнозирования обозначает режим внутрикадрового прогнозирования. В некоторых вариантах, режим прогнозирования не является режимом импульсно-кодовой модуляции (ИКМ (Pulse-Code Modulation (PCM))). В некоторых вариантах, первую индикацию использования режима палитры кодируют прежде индикации использования режима модуляции ИКМ в представлении видео в виде потока битов данных. В некоторых вариантах, индикацию использования режима модуляции ИКМ пропускают в представлении видео в виде потока битов данных. В некоторых вариантах, индикацию режима копирования IBC кодируют и преобразуют в представление в виде потока битов данных. В некоторых вариантах, если используется режим внутрикадрового прогнозирования, флаг в представлении в виде потока битов данных указывает, что в этом представлении в виде потока битов данных передают в форме сигнализации указание режима палитры или режима копирования IBC. В некоторых вариантах, этот флаг пропускают на основе условия, характеризующего блок, это условие содержит размер блока, указание активизирован ли режим копирования IBC для области, ассоциированной с этим блоком, или активизирован ли режим палитры для указанной области, ассоциированной с этим блоком.
В некоторых вариантах, первую индикацию использования режима палитры кодируют с преобразованием в поток битов данных, если вторая индикация использования режима прогнозирования обозначает режим межкадрового прогнозирования. В некоторых вариантах, первую индикацию использования режима палитры кодируют после по меньшей мере одного из объектов: индикации режима пропуска, режима прогнозирования или индикации использования режима модуляции ИКМ. В некоторых вариантах, первую индикацию использования режима палитры кодируют после индикации режима пропуска или режима прогнозирования и кодируют прежде индикации использования режима модуляции ИКМ.
В некоторых вариантах, первую индикацию использования режима палитры позиционируют прежде второй индикации использования режима прогнозирования в представлении в виде потока битов данных. В некоторых вариантах, первую индикацию использования режима палитры позиционируют после второй индикации использования режима прогнозирования, эта вторая индикация использования режима прогнозирования указывает режим внутрикадрового или межкадрового прогнозирования в представлении видео в виде потока битов данных. В некоторых вариантах, первую индикацию использования режима палитры передают в виде сигнализации на основе изображения, среза или типа группы плиток. В некоторых вариантах, первая индикация использования режима палитры содержит первый флаг, указывающий, что режим палитры активизирован для блока. В некоторых вариантах, первую индикацию использования режима палитры условно включают в представление видео в виде потока битов данных на основе первого флага, указывающего, что режим палитры активизирован на уровне последовательности, уровне изображения, уровне группы плиток или уровне плитки. В некоторых вариантах, другой флаг, указывающий режим модуляции ИКМ для блока, включают в представление в виде потока битов данных, если режим палитры для рассматриваемого блока не активизирован. В некоторых вариантах, первый флаг подвергают контекстно-зависимому кодированию на основе информации об одном или нескольких соседних блоках относительно текущего блока. В некоторых вариантах, этот первый флаг кодируют без контекстной информации от одного или нескольких соседних блоков относительно текущего блока.
В некоторых вариантах, вторая индикация использования режим прогнозирования содержит второй флаг, указывающий режим прогнозирования. В некоторых вариантах, если второй флаг в представлении в виде потока битов данных указывает, что режим прогнозирования является режимом межкадрового прогнозирования, это представление в виде потока битов данных далее содержит третий флаг, указывающий, что активизирован режим внутрикадрового копирования блока. В некоторых вариантах, если второй флаг в представлении в виде потока битов данных указывает, что режим прогнозирования является режимом внутрикадрового прогнозирования, это представление в виде потока битов данных далее содержит третий флаг, указывающий, что активизирован режим внутрикадрового копирования блока. В некоторых вариантах, третий флаг условно включают в представление в виде потока битов данных на основе размеров блока.
В некоторых вариантах, рассматриваемый блок является единицей кодирования, и второй флаг в представлении в виде потока битов данных указывает, что режим прогнозирования является режимом внутрикадрового прогнозирования. В некоторых вариантах, указанный первый флаг условно включают в представление в виде потока битов данных на основе размеров этого блока.
На фиг. 26 показано представление логической схемы способа 2600 обработки видео в соответствии с предлагаемой технологией. Способ 2600 содержит, в ходе операции 2610, определение, для преобразования между блоком видеообласти в пределах видео и представлением этого видео в виде потока битов данных, режима прогнозирования на основе одного или нескольких допустимых режимов прогнозирования, включая по меньшей мере режим палитры для рассматриваемого блока. Индикацию использования режима палитры определяют в соответствии с режимом прогнозирования. Способ 2600 содержит, в ходе операции 2620, осуществление преобразования на основе указанного определения.
В некоторых вариантах, совокупность одного или нескольких допустимых режимов прогнозирования содержит режим внутрикадрового прогнозирования. В некоторых вариантах, совокупность одного или нескольких допустимых режимов прогнозирования содержит режим внутрикадрового копирования блоков (IBC). В некоторых вариантах, совокупность одного или нескольких допустимых режимов прогнозирования содержит режим межкадрового прогнозирования.
В некоторых вариантах, рассматриваемая видеообласть содержит срез, кодируемый с применением внутрикадрового прогнозирования, изображение, кодируемое с применением внутрикадрового прогнозирования или группу плиток, кодируемую с применением внутрикадрового прогнозирования. В некоторых вариантах, совокупность одного или нескольких допустимых режимов прогнозирования содержит режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков и режим палитры.
В некоторых вариантах, рассматриваемая видеообласть содержит срез, кодируемый с применением межкадрового прогнозирования, изображение, кодируемое с применением межкадрового прогнозирования или группу плиток, кодируемую с применением межкадрового прогнозирования, P-срез, B-слез, P-кадр или B-кадр. В некоторых вариантах, совокупность одного или нескольких допустимых режимов прогнозирования содержит режим внутрикадрового прогнозирования, режим внутрикадрового копирования блоков, режим палитры и режим межкадрового прогнозирования.
В некоторых вариантах, блок имеет размер 4×4. В некоторых вариантах, из указанной совокупности одного или нескольких допустимых режимов прогнозирования исключен режим межкадрового прогнозирования, если рассматриваемый блок имеет размер 4×4.
В некоторых вариантах, представление в виде потока битов данных содержит по меньшей мере индекс режима прогнозирования, представляющий один или несколько допустимых режимов прогнозирования, если рассматриваемый блок не кодируют в режиме пропуска, где индекс режима прогнозирования представлен с использованием одной или нескольких секций.
В некоторых вариантах, индекс режима прогнозирования представлен с использованием трех двоичных секций (разрядов), где значение «1» в первой секции обозначает режим внутрикадрового прогнозирования, значение «0» в первой секции и значение «0» во второй секции указывает режим межкадрового прогнозирования, значение «0» в первой секции, значение «1» во второй секции и значение «0» в третьей секции указывает режим копирования IBC, и значение «0» в первой секции», значение «1» во второй секции и значение «1» в третьей секции указывает режим палитры.
В некоторых вариантах, индекс режима прогнозирования представлен с использованием двух двоичных секций (разрядов), где значение «1» в первой секции и значение «0» во второй секции обозначает режим внутрикадрового прогнозирования, значение «0» в первой секции и значение «0» во второй секции указывает режим межкадрового прогнозирования, и значение «0» в первой секции» и значение «1» во второй секции указывает режим копирования IBC, и значение «1» в первой секции и значение «1» во второй секции указывает режим палитры.
В некоторых вариантах индекс режима прогнозирования представлен с использованием одной двоичной секции (разряда), если текущей срез видео является срезом, кодируемым с внутрикадровым прогнозированием, и режим копирования IBC не активизирован, первое значение «0» в этой секции обозначает режим внутрикадрового прогнозирования и второе значение «1» в этой секции обозначает режим палитры.
В некоторых вариантах, индекс режима прогнозирования представлен с использованием двух двоичных секций (разрядов), если текущий срез видео не является срезом, кодируемым с применением внутрикадрового прогнозирования, и режим копирования IBC не активизирован, где значение «1» в первой секции обозначает режим внутрикадрового прогнозирования, значение «0» в первой секции и значение «0» во второй секции обозначает режим межкадрового прогнозирования, и значение «0» в первой секции и значение «1 во второй секции обозначает режим палитры. В некоторых вариантах, индекс режима прогнозирования представлен с использованием двух двоичных секций (разрядов), если текущий срез видео является срезом, кодируемым с применением внутрикадрового прогнозирования, и режим копирования IBC активизирован, где значение «1» в первой секции обозначает режим копирования IBC, значение «0» в первой секции и значение «1» во второй секции указывает режим палитры, и значение «0» в первой секции и значение «0» во второй секции указывает режим внутрикадрового прогнозирования. В некоторых вариантах, индикацию использования режима копирования IBC передают в виде сигнализации в наборе параметров последовательности (SPS) в представлении в виде потока битов данных.
В некоторых вариантах, индекс режима прогнозирования представлен с использованием трех двоичных секций (разрядов),
где значение «1» в первой секции обозначает режим межкадрового прогнозирования, значение «0» в первой секции и значение «1» во второй секции указывает режим внутрикадрового прогнозирования, значение «0» в первой секции, значение «0» во второй секции и значение «1» в третьей секции обозначают режим копирования IBC, и значение «0» в первой секции, значение «0» во второй секции и значение «0» в третьей секции обозначают режим палитры.
В некоторых вариантах, индекс режима прогнозирования представлен с использованием трех двоичных секций (разрядов),
где значение «1» в первой секции обозначает режим внутрикадрового прогнозирования, значение «0» в первой секции и значение «1» во второй секции указывает режим межкадрового прогнозирования, значение «0» в первой секции, значение «0» во второй секции и значение «1» в третьей секции обозначают режим копирования IBC, и значение «0» в первой секции, значение «0» во второй секции и значение «0» в третьей секции обозначают режим палитры.
В некоторых вариантах, индекс режима прогнозирования представлен с использованием трех двоичных секций (разрядов), где значение «0» в первой секции обозначает режим межкадрового прогнозирования, значение «1» в первой секции и значение «0» во второй секции указывает режим внутрикадрового прогнозирования, значение «1» в первой секции, значение «1» во второй секции и значение «1» в третьей секции обозначают режим копирования IBC, и значение «1» в первой секции, значение «1» во второй секции и значение «0» в третьей секции обозначают режим палитры.
В некоторых вариантах, передачу сигнализации относительно одной или нескольких двоичных секций (разрядов) в представлении в виде потока битов данных пропускают, если удовлетворяется некое условие. В некоторых вариантах, это условие содержит размер рассматриваемого блока. В некоторых вариантах, это условие содержит указание, что некий режим прогнозирования не активизирован, и в таком случае двоичную секцию (разряд), соответствующую этому режиму прогнозирования, пропускают в представлении в виде потока битов данных.
На фиг. 27 показано представление логической схемы способа 2700 обработки видео в соответствии с настоящей технологией. Этот способ 2700 содержит, в ходе операции 2710, осуществление преобразования между блоком видео представлением этого видео в виде потока битов данных. Это представление в виде потока битов данных обрабатывают в соответствии с правилом форматирования, специфицирующим, что первую индикацию использования режима палитры и вторую индикацию использования режима внутрикадрового копирования блоков (IBC) передают в виде сигнализации одну в зависимости от другой.
В некоторых вариантах, это правило форматирования специфицирует, что первую индикацию передают в виде сигнализации в представлении в виде потока битов данных, если режим прогнозирования для рассматриваемого блока совпадает с первым режимом прогнозирования, который не является режимом копирования IBC. В некоторых вариантах, это правило форматирования специфицирует, что вторую индикацию передают в виде сигнализации в представлении в виде потока битов данных, если режим прогнозирования для рассматриваемого блока совпадает с первым режимом прогнозирования, который не является режимом палитры. В некоторых вариантах, указанный первый режим прогнозирования является режимом внутрикадрового прогнозирования.
На фиг. 28 показано представление логической схемы способа 2800 обработки видео в соответствии с настоящей технологией. Этот способ 2800 содержит, в ходе операции 2810, определение, для преобразования между блоком видео и представлением этого видео в виде потока битов данных, присутствия индикации использования режима палитры в представлении в виде потока битов данных на основе размера рассматриваемого блока. Способ 2800 также содержит, в ходе операции 2820, осуществление преобразования на основе указанного определения.
На фиг. 29 показано представление логической схемы способа 2900 обработки видео в соответствии с настоящей технологией. Этот способ 2900 содержит, в ходе операции 2910, определение, для преобразования между блоком видео и представлением этого видео в виде потока битов данных, присутствия индикации использования режима внутрикадрового копирования блоков (IBC) в представлении в виде потока битов данных на основе размера рассматриваемого блока. Способ 2900 также содержит, в ходе операции 2920, осуществление преобразования на основе указанного определения. В некоторых вариантах, указание размера блока содержит по меньшей мере один из параметров: число отсчетов в блоке, ширину блока или высоту блока.
В некоторых вариантах, индикацию передают в виде сигнализации в представлении в виде потока битов данных, если ширина блока не больше порогового значения. В некоторых вариантах, индикацию передают в виде сигнализации в представлении в виде потока битов данных, если высота блока не больше порогового значения. В некоторых вариантах, указанная пороговое значение равно 64.
В некоторых вариантах, индикацию передают в виде сигнализации в представлении в виде потока битов данных, если ширина и высота рассматриваемого блока больше порогового значения. В некоторых вариантах, эта пороговое значение равно 4. В некоторых вариантах, индикацию передают в виде сигнализации в представлении в виде потока битов данных, если число отсчетов рассматриваемом блоке больше порогового значения. В некоторых вариантах, эта пороговое значение равно 16. В некоторых вариантах, индикацию передают в виде сигнализации в представлении в виде потока битов данных, если ширина рассматриваемого блока равна высоте этого блока.
В некоторых вариантах индикация не присутствует в представлении в виде потока битов данных, если (1) ширина рассматриваемого блока больше первого порогового значения, (2) высота этого блока больше второго порогового значения или (3) число отсчетов рассматриваемого блоке не больше третьего порогового значения. В некоторых вариантах первое пороговое значение и второе пороговое значение равны 64. В некоторых вариантах третье пороговое значение равно 16.
В некоторых вариантах, указанное определение далее основано на некой характеристике, ассоциированной с рассматриваемым блоком. В некоторых вариантах, эта характеристика содержит указание режима прогнозирования для блока. В некоторых вариантах, эта характеристика содержит параметр квантования для блока. В некоторых вариантах, эта характеристика содержит флаг палитры для блока, соседнего с рассматриваемым блоком. В некоторых вариантах, эта характеристика содержит флаг режима копирования IBC для блока, соседнего с рассматриваемым блоком. В некоторых вариантах, эта характеристика содержит индикацию цветового формата для рассматриваемого блока. В некоторых вариантах, эта характеристика содержит структуру дерева кодирования для рассматриваемого блока. В некоторых вариантах, эта характеристика содержит указание типа группы срезов, типа группы плиток или типа изображения для рассматриваемого блока.
На фиг. 30 показано представление логической схемы способа 3000 обработки видео в соответствии с настоящей технологией. Этот способ 3000 содержит, в ходе операции 3010, определение, для преобразования между блоком видео и представлением этого видео в виде потока битов данных, является ли режим палитры допустимым для рассматриваемого блока, на основе второй индикации для видеообласти, содержащей этот блок. Способ 3000 также содержит, в ходе операции 3020, осуществление преобразования на основе указанного определения.
В некоторых вариантах, видеообласть содержит срез, группу плиток или изображение. В некоторых вариантах, представление в виде потока битов данных исключает явную индикацию того, является ли режим палитры допустимым, если вторая индикация указывает, что активизирована дробная разность векторов движения. В некоторых вариантах, вторая индикация представлена в виде флага, присутствующего в представлении в виде потока битов данных. В некоторых вариантах, вторая индикация указывает, активизирован ли режим палитры для видеообласти. В некоторых вариантах, представление в виде потока битов данных исключает явную индикацию того, является ли режим палитры допустимым, если вторая индикация указывает, что режим палитры не активизирован для видеообласти. В некоторых вариантах, режим палитры является недопустимым для рассматриваемого блока, если представление в виде потока битов данных исключает явную индикацию того, является ли режим палитры допустимым.
На фиг. 31 показано представление логической схемы способа 3100 обработки видео в соответствии с настоящей технологией. Этот способ 3100 содержит, в ходе операции 3110, определение, для преобразования между блоком видео и представлением этого видео в виде потока битов данных, является ли режим внутрикадрового копирования блоков (IBC) допустимым для рассматриваемого блока, на основе второй индикации для видеообласти, содержащей этот блок. Способ 3100 также содержит, в ходе операции 3120, осуществление преобразования на основе указанного определения.
В некоторых вариантах, указанная видеообласть содержит срез, группу плиток или изображение. В некоторых вариантах, представление в виде потока битов данных исключает явную индикацию того, является ли режим копирования IBC допустимым, если вторая индикация указывает, что активизирована дробная разность векторов движения. В некоторых вариантах, вторая индикация представлена в виде флага, присутствующего в представлении в виде потока битов данных. В некоторых вариантах, вторая индикация указывает, активизирован ли режим копирования IBC для рассматриваемой видеообласти. В некоторых вариантах, представление в виде потока битов данных исключает явную индикацию того, является ли режим копирования IBC допустимым, если вторая индикация указывает, что режим копирования IBC не активизирован для рассматриваемой видеообласти. В некоторых вариантах, режим копирования IBC является недопустимым для блока, если представление в виде потока битов данных исключает явную индикацию того, является ли режим копирования IBC допустимым.
На фиг. 32 представлена логическая схема способа 3200 обработки видео в соответствии с предлагаемой технологией. Этот способ 3200 содержит, в ходе операции 3210, определение, для преобразования между блоком видео и представлением этого видео в виде потока битов данных, первой битовой глубины для первого отсчета, ассоциированного с одной из входных позиций палитры в режиме палитры. Эта первая битовая глубина отличается от второй битовой глубины, ассоциированной с указанным блоком. Этот способ 3200 также содержит, в ходе операции 3220, осуществление преобразования на основе результата этого определения.
В некоторых вариантах вторая битовая глубина представляет собой внутреннюю битовую глубину для блока. В некоторых вариантах, эта вторая битовая глубина представляет собой битовую глубину, ассоциированную с исходным отсчетом из этого блока. В некоторых вариантах, вторая битов глубина представляет собой битовую глубину, ассоциированную с реконструированным отсчетом из этого блока. В некоторых вариантах, первая битовая глубина представляет собой положительное целое число. В некоторых вариантах, первая битовая глубина равна 8. В некоторых вариантах, первая битовая глубина больше второй битовой глубины. В некоторых вариантах, первая битовая глубина меньше второй битовой глубины. В некоторых вариантах, первую битовую глубину определяют на основе размера блока. В некоторых вариантах, первую битовую глубину определяют на основе параметра квантования для рассматриваемого блока. В некоторых вариантах, первую битовую глубину определяют на основе индикации цветового формата для рассматриваемого блока. В некоторых вариантах, первую битовую глубину определяют на основе структуры дерева кодирования для этого блока. В некоторых вариантах, первую битовую глубину определяют на основе типа группы срезов, типа группы плиток или типа изображения для рассматриваемого блока.
В некоторых вариантах, первую битовую глубину определяют на основе числа входных позиций палитры, ассоциированных с блоком. В некоторых вариантах, первую битовую глубину определяют на основе числа входных позиций предиктора палитры, ассоциированного с блоком. В некоторых вариантах, первую битовую глубину определяют на основе одного или нескольких индексов цветовой составляющей для этого блока.
В некоторых вариантах, второй отсчет ассоциирован с другой входной позицией палитры в режиме палитры, этот второй отсчет имеет третью битовую глубину, отличную от первой битовой глубины. В некоторых вариантах, третья битовая глубина больше второй битовой глубины. В некоторых вариантах, третья битовая глубина меньше второй битовой глубины.
В некоторых вариантах третий отсчет блока реконструируют на основе сдвига значения первого отсчета на M бит, где M - положительное целое число. В некоторых вариантах сдвиг значения первого отсчета представляет собой сдвиг первого отсчета влево на M бит. В некоторых вариантах первый отсчет имеет значения C, и тогда реконструированный второй отсчет имеет значения (C<<M) + (1<<(M-1)). В некоторых вариантах сдвиг значения первого отсчета представляет собой сдвиг первого отсчета вправо на M бит. В некоторых вариантах, первый отсчет имеет значение C, и тогда реконструированный второй отсчет имеет значение, определяемое на основе (C + (1 << (M-1))) >> M, это значение ограничено минимальным значением, равным 0, и максимальным значением (1<<N)-1. В некоторых вариантах M определяют на основе разности между первой битовой глубиной и второй битовой глубиной. В некоторых вариантах, M равно второй битовой глубине минус первая битовая глубина. В некоторых вариантах, M равно первой битовой глубине минус вторая битовая глубина. В некоторых вариантах, M равно 2. В некоторых вариантах, M определяют на основе размера блока. В некоторых вариантах, M определяют на основе параметра квантования блока. В некоторых вариантах, M определяют на основе индикации цветового формате блока. В некоторых вариантах, M определяют на основе структуры дерева кодирования для блока. В некоторых вариантах, M определяют на основе типа группы срезов, типа группы плиток или типа изображения для рассматриваемого блока. В некоторых вариантах, M определяют на основе числа входных позиций палитры, ассоциированных с блоком. В некоторых вариантах, M определяют на основе числа входных позиций предиктора палитры, ассоциированного с блоком. В некоторых вариантах, M определяют на основе позиций первого отсчета и третьего отсчета в блоке. В некоторых вариантах, M определяют на основе индекса цветовой составляющей для этого блока.
В некоторых вариантах, способ содержит определение первого отсчета, ассоциированного с рассматриваемой входной позицией палитры на основе операции просмотра (поиска), осуществляемой в таблице отсчетов. В некоторых вариантах значения в таблице отсчетов сообщают в виде сигнализации в наборе параметров последовательности (SPS), наборе параметров видео (VPS), наборе параметров изображения (PPS), заголовке изображения, заголовке среза, заголовке группы плиток, строке наибольших единиц кодирования (Largest Coding Unit (LCU)) или группе единиц LCU в представлении в виде потока битов данных. В некоторых вариантах значения в таблице отсчетов определяют на основе информации в наборе параметров последовательности (SPS), наборе параметров видео (VPS), наборе параметров изображения (PPS), заголовке изображения, заголовке среза, заголовке группы плиток, строке наибольших единиц кодирования (Largest Coding Unit (LCU)) или группе единиц LCU в представлении в виде потока битов данных.
На фиг. 33 представлена логическая схема способа 3300 обработки видео в соответствии с предлагаемой технологией. Этот способ 3300 содержит, в ходе операции 3310, определение, для преобразования между текущим блоком видео и представлением этого видео в виде потока битов данных, что соседний блок относительно текущего блока, кодированного в режиме палитры, обрабатывают как блок, кодируемый в режиме внутрикадрового прогнозирования и имеющий режим по умолчанию, в процессе построения списка наиболее вероятных режимов-кандидатов (MPM) в случае, когда этот соседний блок расположен сверху или слева от текущего блока. Этот способ 3300 содержит, в ходе операции 3320, осуществление преобразования на основе результата определения.
В некоторых вариантах, режим по умолчанию представляет собой планарный режим. В некоторых вариантах, режим по умолчанию может представлять собой DC-режим, вертикальный режим или горизонтальный режим. В некоторых вариантах, о режиме по умолчанию сообщают в виде сигнализации в наборе параметров зависимости, наборе параметров, последовательности, наборе параметров видео, наборе параметров изображения (PPS), заголовке изображения, заголовке среза, заголовке группы плиток, наибольшей единице кодирования (LCU), единице кодирования (CU), строке единиц LCU, группе единиц LCU, единице преобразования (Transform Unit (TU)), единице прогнозирования (PU) или единице кодирования видео в представлении в виде потока битов данных.
На фиг. 34 представлена логическая схема способа 3400 обработки видео в соответствии с предлагаемой технологией. Этот способ 3400 содержит, в ходе операции 3410, определение, для блока видео, кодированного в виде представления этого видео в виде потока битов данных в качестве блока, кодируемого в режиме палитры, параметра деблокирующей фильтрации в соответствии с некоторым правилом. Этот способ 3400 также содержит, в ходе операции 3420, осуществление преобразования между рассматриваемым блоком и представлением видео в виде потока битов данных с использованием указанного параметра деблокирующей фильтрации.
В некоторых вариантах, это правило специфицирует, что для определения указанного параметра деблокирующей фильтрации рассматриваемый блок обрабатывают как блок видео, кодируемый с использованием внутрикадрового прогнозирования.
В некоторых вариантах, жесткость границы для деблокирующей фильтрации равна 2 в случае, когда область с первой стороны от границы блока или область со второй стороны от границы блока кодирована в режиме палитры. В некоторых вариантах, жесткость границы для деблокирующей фильтрации определяют как равную 2 в случае, когда область с первой стороны от границы блока и область со второй стороны от границы блока кодирована в режиме палитры. В некоторых вариантах, указанное правило специфицирует, что для определения параметра деблокирующей фильтрации рассматриваемый блок обрабатывают как блок видео, кодируемый с применением межкадрового прогнозирования.
В некоторых вариантах, указанное правило специфицирует, что для определения параметра деблокирующей фильтрации, режим палитры обрабатывают отдельно от других режимов при деблокирующей фильтрации. В некоторых вариантах, жесткость границы для деблокирующей фильтрации определяют как равную 0 в случае, когда область с первой стороны от этой границы блока или область со второй стороны от этой границы блока кодирована в режиме палитры. В некоторых вариантах, жесткость границы для деблокирующей фильтрации равна 1 в случае, когда область с первой стороны от этой границы блока и область со второй стороны от этой границы блока кодированы в режиме внутрикадрового копирования блоков (IBC). В некоторых вариантах, жесткость границы для деблокирующей фильтрации равна 2 в случае, когда область с первой стороны от этой границы блока кодирована в режиме палитры, а область со второй стороны от этой границы блока кодирована в режиме внутрикадрового прогнозирования.
В некоторых вариантах, указанное правило специфицирует, что для определения параметра деблокирующей фильтрации, режим палитры рассматривают в качестве режима пропуска преобразования при деблокирующей фильтрации. В некоторых вариантах, указанное правило специфицирует, что для определения параметра деблокирующей фильтрации, режим палитры рассматривают в качестве режима дельта импульсно-кодовой модуляции на блочной основе (block-based delta pulse code modulation (BDPCM)) при деблокирующей фильтрации.
На фиг. 35 представлена логическая схема способа 3500 обработки видео в соответствии с предлагаемой технологией. Этот способ 3500 содержит, в ходе операции 3510, определение, для преобразования между текущим блоком видео и представлением этого видео в виде потока битов данных, что соседний блок относительно текущего блока, кодируемого в режиме палитры, обрабатывают как блок, кодируемый не в режиме внутрикадрового прогнозирования, в процессе построения списка наиболее вероятных режимов-кандидатов (MPM) для текущего блока. Этот способ 3500 также содержит, в ходе операции 3520, осуществление преобразования на основе результата этого определения.
В некоторых вариантах, указанный соседний блок обрабатывают в качестве блока, кодируемого в режиме межкадрового прогнозирования, в случае, когда этот соседний блок располагается сверху или слева от текущего блока. В некоторых вариантах, соседний блок обрабатывают в качестве блока, кодируемого в режиме внутрикадрового копирования (IBC), в случае, когда этот соседний блок расположен сверху или слева от текущего блока.
На фиг. 36A представлена логическая схема способа 3600 обработки видео в соответствии с предлагаемой технологией. Этот способ 3600 содержит, в ходе операции 3610, определение, для блока видео, параметра квантования, ассоциированного с этим блоком. Этот способ 3600 содержит, в ходе операции 3620, кодирование блока видео и преобразование его в представление видео в виде потока битов данных в качестве блока, кодируемого в режиме палитры, частично на основе модифицированного значения параметра квантования. Этот способ 3600 также содержит, в ходе операции 3630, передачу в виде сигнализации кодированной информации относительно параметра квантования в представлении в форме потока битов.
На фиг. 36B представлена логическая схема способа 3650 обработки видео в соответствии с предлагаемой технологией. Этот способ 3650 содержит, в ходе операции 3660, определение параметра квантования на основе представления видео в виде потока битов данных. Этот способ 3650 также содержит, в ходе операции 3670, декодирование блока, кодированного в режиме палитры, частично на основе модифицированного параметра квантования, получаемого посредством модификации параметра квантования.
В некоторых вариантах, параметр квантования модифицируют на основе установления наивысшего предела для параметра квантования. В некоторых вариантах, параметр квантования модифицируют основе установления наименьшего предела для параметра квантования. В некоторых вариантах, параметр квантования модифицируют таким же способом, как и второй параметр квантования, ассоциированный с блоком, кодированным в режиме пропуска преобразования. В некоторых вариантах, параметр квантования модифицируют таким же способом, как третий параметр квантования, ассоциированный с блоком, кодируемым в режиме дельта импульсно-кодовой модуляции на блочной основе (BDPCM).
В некоторых вариантах параметр квантования обозначают как Qp, и процедура модификации параметра квантования содержит присвоение параметру Qp значения max (Qp, 4+T), T - неотрицательное целое число. В некоторых вариантах значение T основано на заданном пороговом значении. В некоторых вариантах T равно 4 + Ts, и значение Ts сообщают в виде сигнализации в представлении в виде потока битов данных. В некоторых вариантах значение Ts сообщают в виде сигнализации в синтаксическом элементе min_qp_prime_ts_ minus4 в представлении в виде потока битов данных.
На фиг. 37 представлена логическая схема способа 3700 обработки видео в соответствии с предлагаемой технологией. Этот способ 3700 содержит, в ходе операции 3710, определение, для блока видео, кодированного с преобразованием в представление этого видео в виде потока битов данных в качестве блока, кодированного в режиме палитры, представления выпадающего отсчета блока в составе представления в виде потока битов данных независимо от того, активизирован ли режим обхода для рассматриваемого блока. Этот способ 3700 также содержит, в ходе операции 3720, осуществление преобразования между рассматриваемым блоком и представлением в виде потока битов данных на основе результата определения.
В некоторых вариантах, выпадающий отсчет представляют в составе представления в виде потока битов данных с использованием фиксированной длины. В некоторых вариантах, эта фиксированная длина равна N бит, N - положительное целое число. В некоторых вариантах, N равно 8 или 10.
В некоторых вариантах, выпадающий отсчет представляют в составе представления в виде потока битов данных с использованием длины, определяемой на основе внутренней битовой глубины блока. В некоторых вариантах, выпадающий отсчет представляют в составе представления в виде потока битов данных с использованием длины, определяемой на основе входной битовой глубины блока. В некоторых вариантах, выпадающий отсчет представляют в составе представления в виде потока битов данных с использованием длины, определяемой на основе параметра квантования блока. В некоторых вариантах, указанную длину определяют в функции параметра квантования, обозначенной как f(Qp). В некоторых вариантах, внутренняя битовая глубина блока равна d, и f(Qp) = (d - (Qp-4)/6).
На фиг. 38 представлена логическая схема способа 3800 обработки видео в соответствии с предлагаемой технологией. Этот способ 3800 содержит, в ходе операции 3810, определение, для блока видео, кодированного с преобразованием в представление этого видео в виде потока битов данных, как блок, кодированный в режиме палитры, первой процедуры квантования. Эта первая процедура квантования отличается от второй процедуры квантования, применимой к блоку, кодированному не в режиме палитры. Этот способ 3800 также содержит, в ходе операции 3820, осуществление преобразования между рассматриваемым блоком и представлением этого блока в виде потока битов данных на основе результата определения.
В некоторых вариантах, первая процедура квантования содержит сдвиг вправо битов выпадающего отсчета из рассматриваемого блока для квантования этого выпадающего отсчета. В некоторых вариантах, первая процедура квантования содержит сдвиг влево битов выпадающего отсчета из рассматриваемого блока для обратного квантования этого выпадающего отсчета. В некоторых вариантах, отсчет обозначают как p, параметр квантования обозначают как Qp, и тогда значение выпадающего отсчета кодируют в функции отсчета p и параметра Qp, обозначенной как f(p, Qp). В некоторых вариантах f(p, Qp) = p >> ((Qp-4)/6). В некоторых вариантах отсчет обозначают как p, и значение выпадающего отсчета кодируют как p>>N, где N - целое число. В некоторых вариантах N равно 2. В некоторых вариантах N определяют на основе характеристики, ассоциированной с блоком.
В некоторых вариантах указанная характеристика имеет значение, сообщаемое в виде сигнализации в наборе параметров последовательности, наборе параметров видео, наборе параметров изображения, заголовке изображения, заголовке среза, заголовке группы плиток, строке наибольших единиц кодирования (LCU) или группе единиц LCU. В некоторых вариантах, указанная характеристика представляет собой внутреннюю битовую глубину блока. В некоторых вариантах, указанная характеристика представляет собой входную битовую глубину блока. В некоторых вариантах, указанная характеристика представляет собой размер блока. В некоторых вариантах, указанная характеристика представляет собой параметр квантования блока. В некоторых вариантах, указанная характеристика представляет собой индикацию цветового формата блока. В некоторых вариантах, указанная характеристика представляет собой структуру дерева кодирования для блока. В некоторых вариантах, указанная характеристика представляет собой тип среза, тип группы плиток или тип изображения, ассоциированный с рассматриваемым блоком.
В некоторых вариантах, отсчет обозначают как p, битовую глубину, ассоциированную с блоком, обозначают как bd, и параметр квантования обозначают как Qp, и значение выпадающего отсчета сообщают посредством сигнализации как функцию bd, p и Qp, обозначенную как f(bd, p, Qp). В некоторых вариантах, f(bd, p, Qp) = clip (0, (1<<(bd-(Qp-4)/6))-1, (p + (1<<(bd-1)))>>((Qp-4)/6)). В некоторых вариантах, f(bd, p, Qp) = clip(0, (1<<bd)-1, p<<((Qp-4)/6)). В некоторых вариантах, функцию clip определяют как clip(a, i, b) = (i < a ? a : (i > b ? b : i)). В некоторых вариантах, функцию clip определяют как clip(a, i, b) = (i <= a ? a : (i >= b ? b : i)). В некоторых вариантах, указанная битовая глубина представляет собой внутреннюю битовую глубину или входную битовую глубину.
В некоторых вариантах, процедура преобразования генерирует текущий блок из представления в виде потока битов данных. В некоторых вариантах, процедура преобразования генерирует представление в виде потока битов данных из текущего блока.
Некоторые варианты предлагаемой технологии содержат принятие решение или определение, что следует активизировать инструмент или режим обработки видео. В одном из примеров, когда инструмент или режим обработки видео активизирован, кодирующее устройство будет использовать этот инструмент или режим при обработке блока видео, но может не обязательно модифицировать результирующий поток битов данных на основе использования этого инструмента или режима. Иными словами, процедура преобразования от блока видео к представлению этого видео в виде потока битов данных будет использовать указанный инструмент или режим обработки видео, когда он активизирован на основе принятого решения или определения. В другом примере, когда инструмент или режим обработки видео активизирован, декодирующее устройство будет обрабатывать поток битов данных, зная, что поток битов данных был модифицирован на основе инструмента или режима обработки видео. Иными словами, преобразование от представления этого видео в виде потока битов данных в блок видео будет осуществляться с использованием упомянутого инструмента или режима обработки видео на основе указанного режима или определения.
Некоторые варианты предлагаемой технологии содержат принятие решение или определение, что следует отменить активизацию инструмента или режима обработки видео. В одном из примеров, когда инструмент или режим обработки видео не активизирован, кодирующее устройство не будет использовать этот инструмент или режим при преобразовании блока видео в представление этого видео в виде потока битов данных. В другом примере, когда инструмент или режим обработки видео не активизирован, декодирующее устройство будет обрабатывать поток битов данных, зная, что этот поток битов данных не был модифицирован с использованием указанного инструмента или режима обработки видео, который был активизирован на основе принятого решения или определения.
Предлагаемые и другие решения, примеры, варианты, модули и функциональные операции, описываемые в этом документе, могут быть реализованы в цифровой электронной схеме или в компьютерном загружаемом программном обеспечении, встроенном программном обеспечении или аппаратуре, включая структуры, рассматриваемые в настоящем документе, и их структурные эквиваленты, либо в комбинации одного или нескольких перечисленных компонентов. Рассмотренные и другие варианты могут быть реализованы в одном или нескольких компьютерных программных продуктах, т.е. в одном или нескольких модулях компьютерных программных команд, закодированных на читаемом компьютером носителе информации для выполнения посредством устройства обработки данных или для управления работой этого устройства обработки данных. Этот читаемый компьютером носитель может представлять собой машиночитаемое устройство для хранения информации, машиночитаемую подложку для хранения информации, запоминающее устройство, композицию объектов, генерирующую машиночитаемый распространяющийся сигнал или комбинацию одного или нескольких перечисленных объектов. Термин «устройство обработки данных» охватывает все устройства, аппаратуру и машины для обработки данных, включая, например, программируемый процессор, компьютер, либо нескольких процессоров или компьютеров. Такое устройство может содержать, в дополнение к аппаратуре, код, создающий среду для выполнения рассматриваемой компьютерной программы, например, код, составляющий встроенное программное обеспечение процессора, стек протоколов, систему управления базой данных, операционную систему или комбинацию одного или нескольких перечисленных объектов. Распространяющийся сигнал представляет собой искусственно генерируемый сигнал, например, генерируемый машиной электрический, оптический или электромагнитный сигнал, генерируемый для кодирования информации с целью передачи подходящему приемному устройству.
Компьютерная программа (также известная как программа, программное обеспечение, программное приложение, сценарий (скрипт) или код) может быть написана на каком-либо языке программирования, включая компилируемые или интерпретируемые языки, и может быть развернута в любой форме, включая автономную программу или в виде модуля, компонента, подпрограммы или другой единицы, подходящей для использования в компьютерной среде. Компьютерная программа необязательно соответствует файлу в файловой системе. Программа может быть сохранена в части файла, который содержит также другие программы или данные (например, один или несколько сценариев сохраняются в документе на языке разметки), в одном файле, специально предназначенном только для рассматриваемой программы, или в нескольких координированных файлах (например, в файлах, сохраняющих один или несколько модулей, подпрограмм или фрагментов кода). Компьютерная программа может быть развернута для выполнения на одном компьютере или на нескольких компьютерах, расположенных в одном пункте или распределенных по нескольким пунктам и соединенных посредством сети связи.
Процедуры и логические схемы, описываемые в настоящем документе, могут быть осуществлены одним или несколькими программируемыми процессорами, выполняющими одну или несколько компьютерных программ для реализации функций путем оперирования над входными данными и генерации выходных данных. Эти процедуры и логические схемы могут также быть осуществлены посредством, и аппаратура может также быть реализована в виде, логической схемы специального назначения, например, программируемой пользователем вентильной матрицы (FPGA (field programmable gate array)) или специализированной интегральной схемы (ASIC (application specific integrated circuit)).
К процессорам, подходящим для выполнения компьютерной программы, относятся, например, микропроцессоры общего и специального назначения и какие-либо один или несколько процессоров цифрового компьютера какого-либо типа. В общем случае, процессор будет принимать команды и данные из постоянного запоминающего устройства и/или из запоминающего устройства с произвольной выборкой. Основными элементами компьютера являются процессор для выполнения команд и одно или несколько запоминающих устройств для сохранения команд и данных. В общем случае, компьютер должен также содержать или быть оперативно связанным для приема данных и/или для передачи данных, одно или несколько запоминающих устройств большой емкости для хранения данных, например, магнитные устройства, магнитооптические диски или оптические диски. Однако компьютеру необязательно иметь такие устройства. К читаемым компьютером носителям для сохранения команд компьютерных программ и данных относятся все формы энергонезависимых запоминающих устройств и носителей информации, включая, например, полупроводниковые запоминающие устройства, например, стираемое, программируемое постоянное запоминающее устройство (СППЗУ (EPROM)), электрически стираемое программируемое запоминающее устройство (ЭСППЗУ (EEPROM)) и устройства флэш-памяти; магнитные диски, например, встроенные жесткие диски или съемные диски; магнитооптические диски; и диски CD ROM и DVD-ROM. Процессор и запоминающее устройство могут быть дополнены или встроены в логическую схему специального назначения.
Хотя настоящий патентный документ содержит много конкретных деталей, их не следует толковать в качестве ограничений объема какого-либо предмета изобретения или того, что может быть заявлено в Формуле изобретения, а всего лишь как описание признаков, которые могут быть специфичны для конкретных вариантов конкретных способов. Некоторые признаки, описываемые в настоящем патентном документе в контексте раздельных вариантов, могут также быть реализованы в сочетании в одном варианте. Напротив, различные признаки, описываемые в контексте одного варианта, могут также быть реализованы в нескольких вариантах по отдельности или в какой-либо подходящей субкомбинации. Более того, хотя признаки могут быть описаны выше как действующие в некоторых комбинациях и даже первоначально заявлены таковыми, один или несколько признаков из заявленной комбинации могут, в некоторых случаях, быть исключены из такой комбинации, и заявленная комбинация может быть превращена в субкомбинацию или в вариацию субкомбинации.
Аналогично, хотя операции показаны на чертежах в конкретном порядке, это не следует понимать как требование, чтобы такие операции всегда осуществлялись именно в показанном конкретном порядке, или в последовательном порядке, или чтобы все показанные операции были выполнены, для достижения желаемого результата. Более того, разделение разнообразных компонентов системы в описываемых в настоящем патентном документе вариантах не следует понимать как требование такого разделения во всех вариантах.
Здесь описано только небольшое число реализаций и примеров, но и другие варианты реализации, усовершенствования и вариации могут быть сделаны на основе того, что описано и иллюстрируется в настоящем патентном документе.
Изобретение относится к области обработки видео. Технический результат заключается в обеспечении возможности кодирования в режиме палитры с использованием представления на основе базовых цветов при кодировании видео. Такой результат достигается тем, что определяют, для блока видео, параметр квантования, ассоциированный с указанным блоком, кодируют блок видео в представление видео в виде потока битов данных в качестве блока, кодированного в режиме палитры, частично на основе модифицированного значения параметра квантования, и сообщают, в виде сигнализации, кодированную информацию, относящуюся к параметру квантования, в указанном представлении в виде потока битов данных. 4 н. и 7 з.п. ф-лы, 38 ил.
1. Способ обработки видеоданных, содержащий этапы, на которых:
определяют, для преобразования между текущим видеоблоком видео и представлением видео в виде потока битов данных, что для текущего видеоблока активирован первый режим прогнозирования, причем в первом режиме прогнозирования реконструированные отсчеты текущего видеоблока представлены набором репрезентативных цветовых значений, при этом набор репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов или 3) информации о палитре,
определяют, для текущего видеоблока, параметр квантования, ассоциированный с текущим видеоблоком,
формируют выпадающие отсчеты на основе модифицированного значения параметра квантования и
выполняют преобразование по меньшей мере на основе модифицированного значения параметра квантования,
при этом один выпадающий отсчет из выпадающих отсчетов дополнительно формируют на основе шкалы уровней, выбранной из списка {40, 45, 51, 57, 64, 72}, и индекс выбранной шкалы уровней в списке определяют на основе модифицированного значения параметра квантования, и
модифицированное значение параметра квантования равно Max (QpPrimeTsMin, Qp), где Qp обозначает параметр квантования, а QpPrimeTsMin указывает минимально допустимый параметр квантования для режима пропуска преобразования и определяется на основе значения первого синтаксического элемента, включенного в поток битов данных.
2. Способ по п. 1, в котором модифицированное значение параметра квантования формируется на основе функции усечения.
3. Способ по п. 1, в котором модифицированное значение параметра квантования и параметр квантования, применяемый в режиме пропуска преобразования, имеют одинаковое ограничивающее значение.
4. Способ по п. 3, в котором модифицированное значение параметра квантования и параметр квантования, применяемый в режиме пропуска преобразования, имеют одинаковое минимально разрешенное значение.
5. Способ по п. 1, в котором первая индикация, указывающая, следует ли активировать первый режим прогнозирования для первого видеоблока, передается в виде сигнализации в потоке битов данных, когда ширина и высота текущего видеоблока меньше или равны первому пороговому значению, соответственно.
6. Способ по п. 1, в котором первая индикация, указывающая, следует ли активировать первый режим прогнозирования для первого видеоблока, передается в виде сигнализации в потоке битов данных, когда режим прогнозирования для первого видеоблока является режимом внутрикадрового прогнозирования.
7. Способ по п. 1, в котором на этапе преобразования кодируют текущий видеоблок в представление в виде потока битов данных.
8. Способ по п. 1, в котором на этапе преобразования декодируют текущий видеоблок из представления в виде потока битов данных.
9. Устройство для обработки видеоданных, содержащее процессор и энергонезависимое запоминающее устройство с записанными в нем командами, причем команды при исполнении процессором вызывают выполнение процессором:
определения, для преобразования между текущим видеоблоком видео и представлением видео в виде потока битов данных, что для текущего видеоблока активирован первый режим прогнозирования, причем в первом режиме прогнозирования реконструированные отсчеты текущего видеоблока представлены набором репрезентативных цветовых значений, при этом набор репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов или 3) информации о палитре,
определения, для текущего видеоблока, параметра квантования, ассоциированного с текущим видеоблоком,
формирования выпадающих отсчетов на основе модифицированного значения параметра квантования и
выполнения преобразования по меньшей мере на основе модифицированного значения параметра квантования,
при этом один выпадающий отсчет из выпадающих отсчетов дополнительно формируется на основе шкалы уровней, выбранной из списка {40, 45, 51, 57, 64, 72}, и индекс выбранной шкалы уровней в списке определяется на основе модифицированного значения параметра квантования, и
модифицированное значение параметра квантования равно Max (QpPrimeTsMin, Qp), где Qp обозначает параметр квантования, а QpPrimeTsMin указывает минимально допустимый параметр квантования для режима пропуска преобразования и определяется на основе значения первого синтаксического элемента, включенного в поток битов данных.
10. Энергонезависимый читаемый компьютером носитель для хранения информации, хранящий команды, которые вызывают выполнение процессором:
определения, для преобразования между текущим видеоблоком видео и представлением видео в виде потока битов данных, что для текущего видеоблока активирован первый режим прогнозирования, причем в первом режиме прогнозирования реконструированные отсчеты текущего видеоблока представлены набором репрезентативных цветовых значений, при этом набор репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов или 3) информации о палитре,
определения, для текущего видеоблока, параметра квантования, ассоциированного с текущим видеоблоком,
формирования выпадающих отсчетов на основе модифицированного значения параметра квантования и
выполнения преобразования по меньшей мере на основе модифицированного значения параметра квантования,
при этом один выпадающий отсчет из выпадающих отсчетов дополнительно формируется на основе шкалы уровней, выбранной из списка {40, 45, 51, 57, 64, 72}, и индекс выбранной шкалы уровней в списке определяется на основе модифицированного значения параметра квантования, и
модифицированное значение параметра квантования равно Max (QpPrimeTsMin, Qp), где Qp обозначает параметр квантования, а QpPrimeTsMin указывает минимально допустимый параметр квантования для режима пропуска преобразования и определяется на основе значения первого синтаксического элемента, включенного в поток битов данных.
11. Энергонезависимый читаемый компьютером носитель для записи информации, хранящий поток битов данных, генерируемый способом, выполняемым устройством для обработки видео, причем способ содержит этапы, на которых:
определяют, для текущего видеоблока видео, что для текущего видеоблока активирован первый режим прогнозирования, причем в первом режиме прогнозирования реконструированные отсчеты текущего видеоблока представлены набором репрезентативных цветовых значений, при этом набор репрезентативных цветовых значений содержит по меньшей мере одно из 1) предикторов палитры, 2) выпадающих отсчетов или 3) информации о палитре,
определяют, для текущего видеоблока, параметр квантования, ассоциированный с текущим видеоблоком,
формируют выпадающие отсчеты на основе модифицированного значения параметра квантования и
генерируют поток битов данных из текущего видеоблока по меньшей мере на основе модифицированного значения параметра квантования,
при этом один выпадающий отсчет из выпадающих отсчетов дополнительно формируется на основе шкалы уровней, выбранной из списка {40, 45, 51, 57, 64, 72}, и индекс выбранной шкалы уровней в списке определяется на основе модифицированного значения параметра квантования, и
модифицированное значение параметра квантования равно Max (QpPrimeTsMin, Qp), где Qp обозначает параметр квантования, а QpPrimeTsMin указывает минимально допустимый параметр квантования для режима пропуска преобразования и определяется на основе значения первого синтаксического элемента, включенного в поток битов данных.
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Устройство для закрепления лыж на раме мотоциклов и велосипедов взамен переднего колеса | 1924 |
|
SU2015A1 |
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
Станок для придания концам круглых радиаторных трубок шестигранного сечения | 1924 |
|
SU2019A1 |
ОПРЕДЕЛЕНИЕ РАЗМЕРА ПАЛИТРЫ, ЗАПИСЕЙ ПАЛИТРЫ И ФИЛЬТРОВАНИЕ БЛОКОВ, КОДИРОВАННЫХ НА ОСНОВЕ ПАЛИТРЫ, ПРИ КОДИРОВАНИИ ВИДЕО | 2015 |
|
RU2678490C2 |
Авторы
Даты
2023-09-18—Публикация
2020-07-20—Подача